УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ СОДЕРЖИМОГО ВЕБ-РЕСУРСА В БРАУЗЕРЕ
DEVICE AND METHOD FOR PROCESSING CONTENT OF WEB RESOURCE IN BROWSER

Перекрестная ссылка
Отсутствует.
Область техники
Настоящая технология относится к веб-браузерам в общем, и в частности к устройству и способу обработки содержимого веб-ресурса в браузере.
Уровень техники
Различные глобальные или локальные сети (Интернет, "Всемирная паутина", локальные сети и тому подобные) предоставляют пользователю огромное количество информации. Информация содержит большое количество контекстных тем, например, помимо прочего, новости и текущие события, карты, информация о компаниях, финансовая информация, а также информация, связанная с играми и развлечениями. Пользователь использует различные клиентские устройства (стационарные ПК, переносные ПК, ноутбуки, смартфоны, планшеты и тому подобные) для доступа к богатому содержимому (такому, как изображения, аудио, видео, анимация и другому мультимедийному содержимому из таких сетей).
Для доступа к веб-ресурсам пользователь обычно использует браузер. На Фиг. 1 проиллюстрирован снимок экрана 102 отображающий браузер 104, реализованный в соответствии с существующим уровнем техники. Браузер 104 может быть запущен на большинстве известных электронных устройствах (переносных ПК, стационарных ПК, смартфонах, планшетах и тому подобных). Изображенный снимок экрана 102 иллюстрирует браузер 104, при этом браузер 104 реализован в виде браузера Mozilla Firefox. Тем не менее, специалистам в данной области техники известны многие другие типы браузеров 104, например, Google™ Chrome™, Yandex™ а также дополнительные коммерческие или запатентованные браузеры.
Независимо от того, как реализован браузер 104, браузер 104 обычно имеет интерфейс команд 106 и интерфейс просмотра 108. В общем смысле, данный пользователь может получить доступ к ресурсу в коммуникационной сети двумя основными способами. Данный конкретный пользователь может получить доступ к определенному ресурсу напрямую, путем ввода адреса ресурса (который обычно называется URL или универсальный локатор ресурсов, например, www.webpage.com) в интерфейсе команд 106 или путем щелчка мышью по ссылке в электронном письме или в другом веб-ресурсе (такое действие будет иметь тот же смысл, что и "копирование и вставка" URL-адреса, связанного со ссылкой, в интерфейс команд 106).
В другом варианте, данный конкретный пользователь выполняет поиск и использованием поисковой системы для определения расположения ресурса, представляющего интерес. Последнее особенно подходит для тех случаев, когда пользователю известна интересующая его тематика, но неизвестен конкретный адрес интересующего ресурса. Поисковая система обычно возвращает страницу результатов поиска (SERP), содержащую ссылки на один или более веб-ресурс, отвечающий критериям поиска, заданным пользователем. В свою очередь, когда пользователь щелкает по одной или более ссылке, предоставленной SERP, он может открыть требуемый веб-ресурс.
Следовательно, задачей интерфейса команд 106 является предоставление пользователю возможности ввода или копирования и вставки универсального локатора ресурсов (URL) или, проще, адреса, связанного с веб-ресурсом, который ищет пользователь. Задачей интерфейса просмотра 108 является отображение веб-ресурса, размещенного по определенному адресу, этот адрес (URL) введен в интерфейсе команд 106.
В современных браузерах 104 интерфейс команд 106 обычно реализован в виде поля, называемого "омнибокс" - с общей интегрированной функциональностью поля для ввода URL-адреса и поля для ввода поискового запроса для поисковой системы, связанной браузером 104, для выполнения поиска. Другими словами, внутри предшествующего уровня техники, пользователь может использовать интерфейс команд 106 как для ввода поискового запроса, так и для ввода URL-адреса. По этой причине, интерфейс просмотра 108 может демонстрировать пользователю как (i) веб-ресурс, соответствующий введенному в интерфейсе команд 106 URL-адресу, так и (ii) страницы результатов работы поисковой системы (SERP), сформированные в ответ на поисковый запрос, введенный в интерфейсе команд 106.
Теперь, приводится краткое описание браузера 104, браузер 104 содержит панель командных кнопок 112, панель командных кнопок 112 содержит общеизвестные названия, например, "Файл", "Редактирование", "Просмотр", "История", "Закладки", "Инструменты", "Помощь". Браузер 104 содержит панель кнопок управления 111, при этом панель кнопок управления 111 содержит хорошо известные кнопки, используемые для сворачивания окна браузера, разворачивания окна браузера и закрытия окна браузера (все они не пронумерованы).
Браузер 104 также содержит общеизвестную кнопку Назад 116, кнопка Назад 116 позволяет пользователю вернуться назад, на один или более, ранее просмотренный веб-ресурс. Браузер 104 также содержит кнопку Вперед 118 (выделена серым) для пролистывания "вперед" после возможного использования кнопки Назад 116. Браузер 104 содержит некоторое количество дополнительных кнопок 120, например, кнопку Перезагрузить, кнопку Закрыть и кнопку "Домой" (все они не пронумерованы), обычно хорошо известные специалистам в данной области техники.
Также имеется область 122 для размещения одной или более вкладок просматриваемых страниц. Как правило, она предназначена для тех пользователей, которые используют многозадачность при одновременном просмотре нескольких веб-ресурсов с использованием браузера 104. Например, данный конкретный пользователь может "открыть" одновременно несколько веб-ресурсов. Такая ситуация может возникнуть при одновременном "просмотре" нескольких ресурсов. Такая ситуация также может возникнуть в том случае, если пользователь просмотрел один или более ресурсов и решил "держать" их в браузере 104, чтобы просмотреть позднее.
Чтобы избежать подобной ситуации, пользователь должен запустить несколько экземпляров браузера 104, в этом случае, каждый экземпляр отображает свой отдельный ресурс (так называемый, просмотр с помощью окон). В другом варианте, пользователь может открыть несколько "вкладок" в одном экземпляре браузера 104, в этом случае, каждая вкладка отображает свой отдельный ресурс (так называемый, просмотр с помощью вкладок). Графическая информация о каждой открытой вкладке появляется в области 122. Пользователь может переключаться между различными открытыми веб-ресурсами за счет выбора соответствующего окна (то есть экземпляра браузера 104) или за счет выбора соответствующей вкладки внутри одного экземпляра браузера 104. Излишне говорить, что эти два способа могут смешиваться и дублироваться пользователем в одной сессии просмотра веб-ресурсов.
Согласно Фиг. 2, где проиллюстрирован снимок экрана 200, на снимке экрана 200 проиллюстрирован браузер 104 с открытыми в нем пятнадцатью экземплярами вкладок 202. Пятнадцать экземпляров вкладок 202 отображают пятнадцать веб-ресурсов, просматриваемых пользователем в настоящий момент. Согласно показанной иллюстрации, четырнадцать вкладок из пятнадцати просматриваемых в настоящий момент веб-ресурсов представляют собой различные статьи с веб-ресурса под названием Wikipedia, каждая из статей связана с одной из выделенных пятнадцати экземпляров вкладок 202.
Раскрытие изобретения
Целью настоящей технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники. Технический результат заключается в обеспечении возможности сохранения спящего режима для вкладок браузера и точного восстановления содержимого вкладки.
Варианты реализации настоящей технологии разработаны на основании анализа одной (или нескольких) проблем(ы) в известном уровне техники. Согласно снимку экрана 200 на Фиг. 2 (приведенную в качестве изображения подходов в известном уровне техники), одной из проблем, связанных с подходами в известном уровне техники, является значительная нагрузка на вычислительные мощности при обработке данных, которые возникают на электронных устройствах, на которых запущен браузер 104. Эти нагрузки возникают в результате использования вычислительной мощности для поддержания в фоне содержимого каждого из пятнадцати экземпляров вкладок 202. Более того, содержимое пятнадцати экземпляров вкладок 202 может быть динамическим и может требовать постоянного обновления от связанного источника этого содержимого, что приводит к дополнительным нагрузкам на вычислительную мощность, а также увеличивает требования к пропускной способности каналов связи.
В соответствии с первым общим аспектом настоящей технологии, предлагается способ сохранения содержимого веб-страницы, при этом веб-страница имеет статические и динамические объекты. Веб-страница отображается в браузере, запущенном на электронном устройстве, электронное устройство имеет память. Способ выполняется электронным устройством. Способ включает: сохранение в архивном файле информации о статических объектах; сохранение в архивном файле информации о динамических объектах; идентификацию по меньшей мере одной связи между динамическими объектами и статическими объектами, связь с объектами изображена в виде ссылки между ними; сохранение информации о связи в архивном файле, сохранение архивного файла в памяти.
В некоторых вариантах реализации способа, архивный файл содержит файлы формата MHTML (формат передачи сообщений языка гипертекстовой разметки).
В некоторых вариантах реализации способа, процедура сохранения информации о связи объектов включает формирование трекера сообщений, трекер сообщений отвечает за привязки статических объектов к соответствующему идентификатору спящего режима, идентификатор спящего режима отображает связь объектов.
В некоторых вариантах реализации способа, процедура сохранения информации о связи объектов дополнительно включает формирование таблицы информационных элементов, отображающей идентификатор статического объекта и связанный идентификатор спящего режима.
В некоторых вариантах реализации способа, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектам, и при этом привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации способа, процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML, способ дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
В некоторых вариантах реализации способа, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектам, и при этом привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации способ дополнительно включает восстановление архивного файла.
В некоторых вариантах реализации способ выполняется как часть алгоритма спящего режима вкладки, алгоритм спящего режима связан с вкладкой в браузере, которая в свою очередь связана с веб-страницей.
В некоторых вариантах реализации способа, алгоритм спящего режима для вкладки выполняется в ответ на обнаружение отсутствия активности пользователя, связанной с вкладкой.
В некоторых вариантах реализации способ дополнительно включает запуск алгоритма восстановления.
В некоторых вариантах реализации способа, алгоритм восстановления запускается в ответ на повторную активацию пользователем вкладки.
В некоторых вариантах реализации способа, память содержит оперативное запоминающее устройство и жесткий диск, и при этом статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения способа, а на жестком диске они сохраняются после выполнения способа.
В соответствии с другим общим аспектом настоящей технологии, предлагается сервер. Сервер содержит: коммуникационный интерфейс для взаимодействия с электронным устройством через коммуникационную сеть, память; процессор, функционально связанный с коммуникационным интерфейсом и памятью, при этом процессор выполнен с возможностью сохранения содержимого веб-страницы, которая имеет статические объекты и динамические объекты, при этом веб-страница отображается в браузере, запущенном процессором, процессор дополнительно выполнен с возможностью: хранения в архивном файле информации о статических объектах, информации о динамических объектах; идентификации по меньшей мере одной связи динамических объектов со статическими объектами, при этом связь изображена в виде направленной линии между ними; хранения информации о связи в архивном файле; хранения архивного файла в памяти.
В некоторых вариантах реализации сервера, архивный файл содержит файлы формата MHTML.
В некоторых вариантах реализации сервера, для хранения информации о статических объектах, процессор выполнен с возможностью хранения элементов дерева объектной модели документов (DOM) в файле формата MHTML.
В некоторых вариантах реализации сервера, для хранения информации о привязке, процессор выполнен с возможностью формирования трекера ссылок, трекер ссылок служит для привязки статических объектов к связанным идентификаторам спящего режима, идентификатор спящего режима отображает, таким образом, связь объектов.
В некоторых вариантах реализации сервера, для хранения информации о связи объектов, процессор выполнен с возможностью формирования таблицы информационных элементов, отвечающей за привязку к идентификаторам статических объектов и связанных идентификаторах спящего режима, привязка имеет уникальный идентификатор записи.
В некоторых вариантах реализации сервера, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектами, и при этом, привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации сервера, для хранения информации о статических объектах процессор выполнен с возможностью хранения дерева объектной модели документов (DOM) в файле формата MHTML, способ дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
В некоторых вариантах реализации сервера, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектами, и при этом, привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации сервера, процессор дополнительно выполнен с возможностью восстановления архивного файла.
В некоторых вариантах реализации сервера, память содержит оперативное запоминающее устройство и жесткий диск, и при этом статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения способа, а на жестком диске они сохраняются после выполнения способа.
В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Аппаратное обеспечение представляет собой физический компьютер или физическую компьютерную систему, однако ни то, ни другое не является обязательным в соответствии с настоящей технологией. В контексте настоящего описания, использование выражения "сервер" не означает, что каждая задача (например, получение инструкций или запросов) или любая отдельная задача будет получена, выполнена, или обеспечено ее выполнение таким сервером (то есть, таким программным и/или аппаратным обеспечением); это означает, что любое количество программных средств или аппаратных устройств могут быть задействованы в получении/отправке, выполнении, обеспечении выполнения любых задач или запросов; и все эти программные средства и аппаратные средства могут представлять собой один сервер или множество серверов, которые вместе могут быть включены в выражение "по меньшей мере один сервер".
В контексте настоящего описания, "клиентское устройство" представляет собой компьютерные аппаратные средства, способные запускать программное обеспечение, обеспечивающее выполнение текущих задач. Таким образом, помимо прочего, некоторые примеры клиентских устройств содержат персональные компьютеры (стационарные компьютеры, переносные компьютеры, нетбуки и так далее), смартфоны, и планшеты, а также сетевое оборудование, например, маршрутизаторы, концентраторы и шлюзы. Следует помнить, что устройства, хотя и работают, как клиентские устройства в настоящем контексте, что не мешает им выполнять роль сервера по отношению к другим клиентским устройствам. Использование выражения "клиентское устройство" не мешает использовать множество клиентских устройств для получения/отправки, выполнения или обеспечения выполнения любых задач или запросов, или процедур способа, описанных в данном документе.
В контексте настоящего описания, термин "база данных" означает любой структурированный набор данных, независимо от их отдельных структур, программное обеспечение для управления данными или компьютерное аппаратное обеспечение, на котором хранятся данные, реализованные или, в противном случае, преобразованные для возможности их использования. База данных может находиться на тех же аппаратных средствах, что и процессы, выполняющие обработку или позволяющие использовать информацию, сохраненную в базе данных, или она может находиться на отдельных аппаратных средствах, например, на выделенном сервере или множестве серверов.
В контексте настоящего описания, выражение "информация" содержит информацию о любом типе или разновидности данных, которые можно сохранить в базе данных. Таким образом, информация содержит, помимо прочего, аудиовизуальные работы (изображения, фильмы, звукозаписи, презентации и тому подобное), данные (данные о местоположении, числовые данные, и тому подобное), текст (заключения, комментарии, сообщения и тому подобное), документы, электронные таблицы и тому подобное.
В контексте настоящего описания, выражение "компонент" представляет собой подключаемое программное обеспечение (присущее отдельному контексту аппаратных средств), другими словами, необходимое и достаточное для достижения выполнения указанных функций.
В контексте настоящего описания, выражение "используемый компьютером носитель информации" представляет собой носитель, предназначенный для любых типов и разновидностей данных, включая ОЗУ, ПЗУ, диски (CD-ROM, DVD, дискеты, жесткие диски и тому подобные), ключи USB, твердотельные накопители, кассетные устройства и тому подобные.
В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий «второй сервер» обязательно должен существовать в той или иной ситуации. Дополнительно, как указано в настоящем документе, в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления настоящей технологии включает по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеуказанной цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
Для лучшего понимания настоящей технологии, а также других ее аспектов и характеристик сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
На Фиг. 1 проиллюстрирован снимок экрана 102, отображающий браузер 104, реализованный обычным способом в соответствии с известным уровнем техники.
На Фиг. 2 проиллюстрирован снимок экрана 200, на снимке экрана 200 изображен браузер 104 с пятнадцатью экземплярами открытых вкладок 202, в соответствии с известным уровнем техники.
На Фиг. 3 проиллюстрирована схема электронного устройства 302, электронное устройство 302 предназначено для реализации вариантов настоящей технологии.
На Фиг. 4 проиллюстрирован снимок экрана 400, на снимке экрана 400 показана часть экрана, на которую выведен браузер 340, отображающий веб-страницу 404.
Фиг. 5 иллюстрирует схематическое представление содержимого архивного файла 500.
Фиг. 6 иллюстрирует блок-схему способа 600, способ 600 выполняется в соответствии с вариантом технологии, не ограничивающем объем настоящей технологии.
Осуществление изобретения
Согласно Фиг. 3, на которой проиллюстрирована схема электронного устройства 302, электронное устройство 302 предназначено для реализации вариантов настоящей технологии. Физическая реализация электронного устройства 302 ничем не ограничена, однако, в качестве примера, электронное устройство 302 может быть реализовано в виде персонального компьютера (стационарного компьютера, переносного компьютера, нетбука и тому подобного), беспроводного электронного устройства (мобильного телефона, смартфона, планшета и тому подобного), а также в виде сетевого оборудования (маршрутизатора, концентратора или шлюза).
Электронное устройство 302 содержит аппаратно и/или программное обеспечение, и/или встроенное программное обеспечение (или и комбинацию), как известно в предыдущем уровне техники, для запуска браузера 340, браузер 340 реализован в соответствии с вариантом настоящей технологии, не ограничивающем ее объем.
Электронное устройство 302 может содержать процессор 303. В отдельных вариантах реализации технологии, процессор 303 может содержать один или более процессоров и/или один или более микроконтроллеров, сконфигурированных для выполнения инструкций и выполнения операций, связанных с работой электронного устройства 302. В различных вариантах реализации технологии, процессор 303 может быть реализован в виде одного однокристальной ИС, многокристальной ИС и/или других электрических компонентов, содержащих одну или более интегральных схем и печатных плат. Процессор 303 может дополнительно содержать модуль кэш-памяти (не показана) для временного локального хранения инструкций, данных или компьютерных адресов. В качестве примера, процессор 303 может содержать один или более процессоров или один или более контролеров, выделенных для определенных задач обработки данных на электронном устройстве 302 или один многофункциональный процессор или контроллер.
Процессор 303 функционально подключен к модулю памяти 304. Модуль памяти 304 может охватывать один или более носителей информации и, как правило, предоставляет место для хранения компьютерного кода (например, программного обеспечения и/или встроенного программного обеспечения). В качестве примера, модуль памяти 304 может содержать машиночитаемый компьютерный носитель информации, включающий ПЗУ (постоянное запоминающее устройство) и/или ОЗУ (оперативное запоминающее устройство). Как хорошо известно, в данной области техники, ПЗУ выполняет перенос данных к процессору 303 в одном направлении, а ОЗУ, как правило, используется для переноса данных и инструкций в обоих направлениях. Модуль памяти 304 также может содержать один или более постоянных запоминающих устройств, в качестве примера, выполненных в виде жесткого диска (HDD), твердотельного накопителя (SSD), карт флеш-памяти (например, карт Secured Digital.SD-карт, встроенных карт формата ММС или формата eMMD), среди прочих подходящих форм памяти, подключенных двунаправленным способом к процессору 303. Информация также может находиться на одном или более носителей, загруженных или установленных в электронное устройство 302, при необходимости. В качестве примера, любая из подходящих карт памяти (например, SD-карта) может быть загружена в электронное устройство 302 на постоянной или временной основе.
Согласно вариантам реализации настоящей технологии, модуль памяти 304 содержит часть памяти в виде ОЗУ и часть в виде постоянного носителя (SSD). Естественно, согласно этим вариантам реализации настоящей технологии, модуль памяти 304 может быть реализован в виде отдельных структурных компонентов: один может быть реализован в виде части ОЗУ и второй может быть реализован в виде части постоянного носителя (SSD).
Модуль памяти 304 может хранить, в том числе, ряд машиночитаемых инструкций, которые запускаются процессором 303 (а также другими компонентами электронного устройства 302) для выполнения различных операций, описанных в данном документе.
Электронное устройство 302 дополнительно содержит модуль ввода/вывода 306. Модуль ввода/вывода 306 может содержать один или более устройств ввода/вывода, функционально подключенных к процессору 303. Например, модуль ввода/вывода 206 может содержать клавиатуру, мышь, одну или более кнопок, колесо прокрутки и/или экран (например, жидкокристаллический экран (LCD), экран со светодиодной подсветкой (LED), экран с интерферометрическом модуляторе (IMOD), или любой другой экран, использующий подходящую технологию). Как правило, устройства ввода сконфигурированы для передачи данных, команд и ответных действий из внешнего мира на электронное устройство 302. Экран, как правило, выполнен с возможностью отображения графического интерфейса пользователя (GUI), предоставляющего простой в использовании визуальный интерфейс между пользователем электронного устройства 302 и операционной системой или приложением(-ями), выполняемой на электронном устройстве 302. Как правило, графический интерфейс пользователя представляет набор программ, файлов и дополнительных опций для работы с графическими изображениями. Во время работы, пользователь может выбирать и активировать различные графические изображения, отображаемые на экране, для инициализации функций и задач, связанных с ними. Модуль ввода/вывода 306 также содержит устройства, работающие за счет касаний, например, сенсорную панель или сенсорный экран. Сенсорная панель представляет собой устройство ввода, содержащее поверхность, реагирующую на касания ее пользователем. Аналогично, сенсорный экран представляет собой экран, определяющий наличие и местоположение касаний экрана пользователем. Модуль ввода/вывода 306 также содержит экраны двойного касания или мультисенсорные экраны или сенсорные панели, которые идентифицируют наличие, местоположение и перемещение более чем одного касания, например, касания двумя или тремя пальцами.
В отдельных вариантах реализации электронного устройства 302, оно реализовано в виде смартфона, модуль ввода/вывода 306 может быть реализован в виде сенсорного экрана.
В отдельных вариантах реализации технологии, электронное устройство 302 может дополнительно содержать аудио модуль 308, модуль камеры 310, беспроводной коммуникационный модуль 312, модуль датчиков 314, и/или проводной коммуникационный модуль 316, все эти модули функционально подключены к процессору 303 для выполнения различных функций на электронном устройстве 302.
Например, модуль камеры 208, содержит оптический датчик (например, на основе полупроводниковой светочувствительной матрицы (CCD), или на основе комплементарных металлооксидных полупроводников (CMOS)), который используется для выполнения функций камеры, например, записи фотографий и видеоклипов. Например, проводной коммуникационный модуль 216 может содержать порт универсальной последовательной шины (USB) для передачи файлов или порт Ethernet для подключения к локальной сети (LAN). Дополнительно, питание электронного устройства 302 может осуществляться за счет модуля источника питания 218, который может быть выполнен в виде аккумуляторных батарей и тому подобного.
Беспроводной коммуникационный модуль 212 создан для работы в одной или более беспроводных сетей, например, частных беспроводных сетей (WPAN) (например, сетей BLUETOOTH WPAN, инфракрасных частных сетей), сетей Wi-Fi (например, сетей Wi-Fi 802.11 a/b/g/n, сетей в виде ячеистой структуры 802.11), сетей Wi-MAX, сетей мобильных телефонов (например, глобальных сетей мобильной связи (GSM)), сетей, поддерживающих технологию EDGE, сетей универсальной системы мобильной связи (UMTS), и/или сетей стандарта "Долгосрочное развитие" (LTE)). Дополнительно, беспроводной коммуникационный модуль 212 может содержать серверные протоколы, таким образом, электронное устройство 302 может быть сконфигурировано в качестве базовой станции для других беспроводных устройств.
Модуль датчиков 314 содержит один или более датчиков, позволяющих осуществлять дополнительный ввод и расширяющих функциональные возможности электронного устройства 302.
2
В отельных вариантах реализации технологии, различные компоненты электронного устройства 302 функционально все вместе подключены к одной или более шин данных (включая аппаратные и/или программные компоненты). В отдельных вариантах реализации технологии, различные компоненты электронного устройства 302 функционально все вместе подключены к одной или более шин данных (включая аппаратные и/или программные компоненты). В качестве примера, не ограничивающего объема технологии, одна или более шин данных может содержать ускоренный графический порт (AGP) или другую графическую шину, улучшенную архитектуру промышленной шины (EISA), внешнюю шину (FSB), гипертранспортную шину (НТ), шину INFINIBAND, шину с малым количеством выводов (LPC), шину памяти, шину микроканальной архитектуры (МСА), шину соединений периферийных устройств (PCI), шину последовательного интерфейса PCI-Express (PCI-X), шину последовательного интерфейса ATA (SATA), интерфейс приема/передачи УАПП (UART), шину соединений интегральных схем (IC), шину последовательного периферийного интерфейса (SPI), интерфейс памяти SD, интерфейс мультимедийных карт (ММС), интерфейс памяти флеш-карт (MS), интерфейс ввода/вывода SD (SDIO), шину многоканального буферизированного последовательного ввода/вывода (McBSP), универсальную последовательную шину (USB), шину контроллера универсальной памяти (GPMC), шину контроллера SDRAM (SDRC), шину универсального ввода/вывода (GPIO), шину двухкомпонентного видеосигнала (S-Video), интерфейс последовательной шины дисплея (DSI), расширенную шинную архитектуру для микроконтроллеров (АМВА), или другую подходящую шину данных или комбинацию двух или более шин.
Процессор 303 способен обеспечить (а модуль памяти 304 способен хранить машиночитаемые инструкции для) работы модуля сохранения и восстановления 320. Проще говоря, задачей модуля сохранения и восстановления 320 является обеспечение спящего режима для содержимого одной или более вкладок, открытых в браузере 340, аналогично, и для пятнадцати экземпляров вкладок 202, изображенных на Фиг. 2.
Для иллюстрации варианта реализации настоящей технологии, будет использоваться ссылка на Фиг. 4, на которой изображен снимок экрана 400, снимок экрана 400 представляет собой часть экрана, на которую выведен браузер 340. Снимок экрана 400 показывает иллюстративное содержимое веб-страницы 404, изображенной во вкладке 402, которая представляет собой одну из множества вкладок, которая потенциально может быть отображена в браузере 340 (во многом похожей на пятнадцать экземпляров вкладок 202, изображенных согласно Фиг. 2).
Согласно вариантам реализации настоящей технологии, веб-страница 404 может быть преобразована в страницу на языке гипертекстовой разметки (HTML), который известен специалистам в данной области техники, как язык для создания содержимого веб-страниц 404. Тем не менее, важно понимать, что руководства, представленные в данном документе, не ограничиваются преобразованием вебстраницы 404 в формат HTML.
С целью иллюстрации, следует предположить, что веб-страница 404 создана с использованием следующего HTML кода:
В соответствии с вариантом реализации настоящей технологии, может возникнуть необходимость в сохранении содержимого веб-страницы 404 для его последующего восстановления. Например, может возникнуть необходимость сохранить содержимое веб-страницы 404 как часть алгоритма спящего режима для вкладки, например, спящего режима для вкладки 402 (а также любой другой вкладки, которая может быть потенциально открыта в браузере 430), а затем восстановить содержимое вкладки 402 (а также любой другой вкладки, которая может быть потенциально открыта в браузере 430), как часть алгоритма спящего режима для вкладки.
Алгоритм спящего режима для вкладки может быть реализован для данной вкладки 402 после предварительного определения периода отсутствия активности со стороны пользователя по отношению к вкладке 402. Например, алгоритм спящего режима для вкладки может быть инициирован для данной вкладки 402 после 5 минут отсутствия активности пользователя, 10 минут отсутствия активности пользователя, 90 минут отсутствия активности пользователя и тому подобное. В некоторых вариантах реализации технологии, предварительно заданный период отсутствия активности пользователя задается самим пользователем, в других, задается браузером 340.
Согласно варианту реализации настоящей технологии, отсутствие пользовательской активности вызывает ситуацию, при которой пользователь не взаимодействует с вкладкой 402 (то есть не щелкает по ней мышью, не выполняет прокрутку и тому подобное) и/или при которой пользователь взаимодействует с различными вкладками 402 (или с различными приложениями из браузера 340). Тем не менее, как определять отсутствие активности пользователя и/или как выполнять запуск алгоритма спящего режима - ничем не ограничено, и может иметь альтернативные формы в других вариантах реализации настоящей технологии.
В альтернативных вариантах реализации настоящей технологии, алгоритм спящего режима для вкладки может быть запущен по требованию, при получении информации от пользователя о его желании запустить алгоритм спящего режима для вкладки.
Согласно варианту реализации настоящей технологии, возможность запуска алгоритма спящего режима для вкладок (и, точнее говоря, возможность сохранения содержимого вкладки 402 и точного восстановления содержимого вкладки 402) позволяет экономить ресурсы памяти (например, ОЗУ и тому подобной) за счет хранения в спящем режиме вкладки в отдельной части памяти на жестком диске (например, на твердотельном накопителе (SSD) и тому подобном). Другими словами, после определения того, что содержимое данной вкладки 402 не используется пользователем, ее содержимое переносится из ОЗУ на твердотельный накопитель SSD. Когда пользователь активирует содержимое данной вкладки 402, вариант реализации настоящей технологии позволяет восстановить содержимое, включая ее динамические компоненты, за счет переноса содержимого данной вкладки 402 с твердотельного накопителя SSD в ОЗУ.
В качестве иллюстрации, статический объект 406 может быть реализован в виде объекта HTMLDivElement и класса CSSStyleDeclaration, связанного с объектом HTMLDivElement (только в качестве иллюстрации). В соответствии с вариантом реализации настоящей технологии, объект HTMLDivElement и класс CSSStyleDeclaration могут вноситься заранее веб-разработчиком, связанным с веб-страницей 404.
В общем случае, для спящего режима и последующего восстановления содержимого веб-страницы 404, модуль сохранения и восстановления 320 выполнен с возможностью (i) хранения и извлечения статических объектов 406, (ii) хранения и извлечения динамических объектов 408, и (iii) хранения и извлечения связи (или множества связей, в зависимости от обстоятельств) между динамическими объектами 408 и статическими объектами 406 (и наоборот).
Например, объектная модель документов (объектной модели документов (DOM)) известна, как кроссплатформенный и независимый от языка набор правил представления и взаимодействия с объектами в различных языках программирования, например, помимо прочего: в документах HTML, XHTML и XML. В общем случае, в соответствии с объектной моделью документов объектной модели документов (DOM), узлы любого документа организованы в виде древовидной структуры, называемой дерево объектной модели документов (DOM). Адресация и манипулирование объектами в дереве объектной модели документов (DOM) может выполняться с помощью свойств и методов объектов. Публичный интерфейс объектной модели документов (DOM) указан в ее программном интерфейсе приложений (API).
Согласно некоторым вариантам реализации настоящей технологии, модуль сохранения и восстановления 320 выполнен с возможностью хранения по меньшей мере некоторых объектов дерева объектной модели документов (DOM) (например, статических объектов 406), используя формат MIME HTML (MHTML).
На Фиг. 5 изображен пример архивного файла 500. Пример архивного файла 500 может представлять собой архивный файл формата MHTML. Естественно, могут использоваться любые другие форматы или протоколы реализации архивных файлов 500.
Как эти элементы архивного файла 500 вносятся и используются, во время выполнения алгоритма спящего режима для вкладки будет рассмотрено далее.
Проще говоря, модуль сохранения и восстановления 320 сконфигурирован согласно структуре дерева объектной модели документов (DOM) 504, объекты HTML соответствуют HTML тэгам из HTML кода создания страницы 404 - это пример первого элемента 514 дерева объектной модели документов (DOM). Любые другие дополнительные элементы, представленные внутри веб-страницы 404 (например, CSS или изображения) также сохранены в архивном файле 500 в качестве дополнительных статических объектов - это пример второго объекта 516 дерева объектной модели документов (DOM).
Как будет наполняться и использоваться информация для трекера ссылок 506 и таблицы информационных элементов 540, будет описано далее.
При создании веб-страницы 404 из связанного с ней HTML кода, когда создается связь 410 для данной веб-страницы 404, модуль сохранения и восстановления 320 создает запись в трекере ссылок 506. Запись в трекере ссылок 506 сопоставляет уникальный идентификатор (назначенный модулем сохранения и восстановления 320) статического объекта 406 (называемый далее "идентификатор спящего режима") с информацией о связи 410 динамического объекта 408.
По этой причине, модуль сохранения и восстановления 320 может поддерживать таблицу информационных элементов 540, которая поддерживает сопоставление между данным одним HTML объектом (и его связанным или дочерним полем/объектом) и данным идентификатором спящего режима HTML объекта (а также соответствующего идентификатора спящего режима его связанного или дочернего поля/объекта).
Модуль сохранения и восстановления 320 выполнен с возможностью добавления в HTML код, связанный с каждым HTML объектом, дополнительного атрибута, называемого "hibernate-info-id", который указывает на отдельную запись в таблице информационных элементов 540 (посредством уникального идентификатора, связанного с ней).
Процесс, приведенный выше, проиллюстрирован с использованием приведенного выше HTML кода, изложенного в Табл. 1 выше, для создания веб-страницы 404.
Шаг А
При загрузке веб-страницы 404 в браузер 340, браузер 340 создает статические объекты 406, на основании HTML тэгов и связанные подчиненные объекты (связанные или дочерние), согласно данной иллюстрации, с использованием объектов HTMLDivElement и CSSStyle Declaration.
Шаг В
Затем браузер 340 создает динамические объекты 408.
Когда данная связь 410 создана, она регистрируется в трекере ссылок 506, как было описано выше. Другими словами, модуль сохранения и восстановления 320 создает идентификатор спящего режима, связанный с HTML объектом для каждой связи 410 и сохраняет информацию о них и трекере ссылок 506.
После создания первой связи 518 между первым объектом 510 JS первым объектом 514 дерева объектной модели документов (DOM), создается первая запись 524 в трекере ссылок 506 (проиллюстрировано как "hibernate-id=1"). После создания второй связи 520 между вторым объектом 512 JS и вторым объектом 516 дерева объектной модели документов (DOM), создается вторая запись 522 в трекере ссылок 506 (проиллюстрировано как "hibernate-id=2").
Шаг С
Шаг D
Затем, модуль сохранения и восстановления 320 создает запись 546 в таблице информационных элементов 540. Запись 540 содержит уникальный идентификатор 544 элемента (содержащий уникальный идентификатор записи, связанной с отдельным статическим элементом 406 - в данном случае, первым объектом 514 дерева объектной модели документов (DOM) и вторым объектом 516 дерева объектной модели документов (DOM)) и содержимое элемента 542 (содержащее описание связанного объекта дерева, касающееся их идентификатора спящего режима и/или идентификаторов спящего режима связанных объектов).
В описанном варианте реализации технологии, идентификатор уникального элемента 544 проиллюстрирован как "Element info id=2000" и содержимое элемента 542 проиллюстрировано как "element hibernate id=1" и "element style id=542".
Шаг Ε
Затем, модуль сохранения и восстановления 320 сохраняет объект дерева объектной модели документов (DOM) 504 форме HTML кода. Затем, модуль сохранения и восстановления 320 достигает объекта HTMLDivElement (в качестве примера), модуль сохранения и восстановления 320 определяет наличие записи в таблице информационных элементов 540, связанной с объектом HTMLDivElement. Затем, модуль сохранения и восстановления 320 добавляет "hibernate-info-id" в запись архивного файла 500, связанную с записью объекта HTMLDivElement, "hibernate-info-id" содержит идентификатор из таблицы информационных элементов 540.
Пример записи выглядит следующим образом:
В результате приведенного выше примера, архивный файл 500 содержит:
Затем, выполнение алгоритма сохранения содержимого веб-сайта 404 прерывается. Следует отметить, что в некоторых вариантах реализации технологии, содержимое трекера ссылок 506 не сохраняется как часть алгоритма спящего режима (то есть, только содержимое таблицы ссылок на элементы 540).
На следующем этапе, когда необходимо восстановить содержимое веб-страницы 404, запускается алгоритм восстановления содержимого. Алгоритм восстановления содержимого запускается, когда пользователь делает соответствующую вкладку 402 активной, например, щелкая по ней или, в противном случае, приводя ее в активное состояние.
Шаг А
Модуль сохранения и восстановления 320 получает доступ к архивному файлу 500 и извлекает HTML тэги и восстанавливает объекты дерева объектной модели документов (DOM) 504, на основании информации, содержащейся в объектах дерева объектной модели документов (DOM) 504.
Шаг В
Каждый объект дерева объектной модели документов (DOM) 504 проверяется на наличие связанного атрибута "hibernate-info-id", таком, как в примере выше:
Шаг С
Затем, модуль сохранения и восстановления 320 получает доступ к таблице информационных элементов 540. На основании "hibernate-info-id" (который содержит уникальный идентификатор записи 546), извлекается связанная запись из таблицы информационных элементов 540. Затем, модуль сохранения и восстановления 320 извлекает связанный идентификатор спящего режима HTML объекта (а также любого связанного объекта).
Шаг D
Затем, модуль сохранения и восстановления 320 повторно регистрирует идентификатор HTML объекта и любого из связанных объектов в трекере ссылок 506.
Шаг Ε
Затем, модуль сохранения и восстановления 320 удаляет "hibernate-info-id" из HTML кода:
Шаг F
Следует помнить, что таблица информационных элементов 540 может содержать дополнительные данные, помимо тех, что были описаны выше (то есть в дополнение к идентификатору спящего режима). Например, таблица информационных элементов может содержать информацию, характерную для слушателя событий.
Архитектура, описанная выше, позволяет выполнить способ сохранения содержимого веб-страницы 404, веб-страница 404 имеет статические элементы 406 и динамические элементы 408. Веб-страница 404 отображается в браузере 340, запущенном на электронном устройстве 102, электронное устройство 102 имеет память (то есть, модуль памяти 304). Следует отметить, что в некоторых вариантах реализации технологии, перед выполнением способа, содержимое веб-страницы 404 (то есть, статические объекты 406 и динамические объекты 408) сохраняются в части ОЗУ.
Способ выполняется электронным устройством 102. Согласно Фиг. 6, где изображена блок-схема способа 600, способ 600 выполняется в соответствии с вариантом технологии, не ограничивающем объем настоящей технологии.
Шаг 602 - сохранение в архивном файле информации о статических объектах
Способ 600 начинается на шаге 602, где модуль сохранения и восстановления 320 сохраняет в архивном файле информацию о статическом объекте 406.
В некоторых вариантах реализации способа 600, архивный файл может быть реализован в виде файла формата MHTML.
В некоторых вариантах реализации способа 600, процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML.
Шаг 604 - сохранение в архивном файле информации о динамических объектах
Далее, на шаге 604, модуль сохранения и восстановления 320 сохраняет в архивном файле информацию о динамическом объекте 408.
Шаг 606 - идентификация по меньшей мере одной связи между динамическими объектами и статическими объектами, связь представлена в виде ссылки между ними
Далее, на шаге 606, модуль сохранения и восстановления 320 идентифицирует по меньшей мере одну связь 410 между динамическими объектами 406 и статическими объектами 408, связь представлена в виде ссылки между ними. Важно понимать, что ссылка на связь 410 между динамическими объектами 406 и статическими объектами 408 содержит обратное направление связи 410 от статического объекта 408 к динамическому объекту 406.
Шаг 608 - сохранение информации о связи в архивном файле
На шаге 608, модуль сохранения и восстановления 320 сохраняет в архивном файле 500 информацию о связи 410.
В некоторых вариантах реализации способа 600, процедура сохранения информации о связи объектов включает формирование трекера ссылок 506, для связи статических объектов 406 с соответствующим идентификатором спящего режима, идентификатор спящего режима отображает связь.
В некоторых вариантах реализации способа 600, процедура сохранения информации о связи дополнительно включает формирование таблицы информационных элементов 540, отображающей идентификатор статического объекта 406 и связанный идентификатор спящего режима.
В некоторых вариантах реализации способа 600, статические объекты 408 могут содержать связанные объекты. Согласно этим вариантам реализации настоящей технологии, динамические объекты 408 могут содержать соответствующие связи со статическими объектами 406 и связанными объектами, и, таким образом, привязка информационных элементов содержит соответствующий идентификатор спящего режима для статических объектов 406 и связанных объектов в соответствии с уникальным идентификатором записи.
Шаг 610 - сохранение архивного файла в памяти
На шаге 610, модуль сохранения и восстановления 310 сохраняет архивный файл 500 в памяти (то есть, в модуле памяти 304).
В некоторых вариантах реализации способа 600, модуль сохранения и восстановления 320 сохраняет архивный файл в отдельном участке памяти на жестком диске. Таким образом, можно сказать, что память может содержать часть оперативного запоминающего устройства и часть памяти на жестком диске, перед выполнением способа 600, а после выполнения способа 600, статические объекты 406 и динамические объекты 408 сохраняются в отдельной части оперативного запоминающего устройства и жесткого диска.
Даже, несмотря на то, что приведенное выше описание представляло собой описание архива формата MHTML в качестве примера реализации варианта настоящей технологии, она не обязательно ограничена этим форматом. Могут быть использованы любые другие протоколы, доступные на рынке, или частные протоколы, например, бинарный формат и тому подобные.
Как будет понятно специалистам в данной области техники, когда в текущем описании встречается фраза "получение данных" от пользователя и что электронное устройство выполняет получение данных от пользователя, это означает, что от пользователя принимаются электронные (или другие) сигналы. Как дополнительно будет понятно специалистам в данной области, что отображение данных для пользователя через графический интерфейс пользователя (например, с помощью экрана электронного устройства и тому подобного) означает передачу сигналов графическому интерфейсу пользователя, сигналы содержат данные, которыми можно управлять, при этом по меньшей мере часть данных отображается пользователю с использованием графического интерфейса пользователя.
Некоторые из этих шагов и сигналов, отправляемых и принимаемых хорошо известны в данной области техники и, таким образом, могут отсутствовать в отдельных разделах данного описания для облегчения понимания. Сигналы могут передаваться и приниматься оптическим способом (например, через оптическое подключение), электронным способом (например, с использованием проводных и беспроводных соединений), и механическим способом (например, с помощью давления, температуры или с помощью любого другого подходящего физического параметра).
Важно иметь в виду, что не все упомянутые здесь технические эффекты могут проявляться в каждом из воплощений настоящей технологии. Например, варианты осуществления настоящей технологии могут быть выполнены без проявления некоторых технических результатов, другие могут быть выполнены с проявлением других технических результатов или вовсе без него.
Модификации и улучшения вышеописанных вариантов реализации настоящей технологии будут ясны специалистам в данной области техники. Приведенное выше описание предназначено для того, чтобы быть приведенным в качестве примера, а не иметь ограничительный характер. В связи с этим объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.