Перекрестная ссылка
Отсутствует.
Область техники
Настоящая технология относится к веб-браузерам в общем, и в частности к устройству и способу обработки содержимого веб-ресурса в браузере.
Уровень техники
Различные глобальные или локальные сети (Интернет, "Всемирная паутина", локальные сети и тому подобные) предоставляют пользователю огромное количество информации. Информация содержит большое количество контекстных тем, например, помимо прочего, новости и текущие события, карты, информация о компаниях, финансовая информация, а также информация, связанная с играми и развлечениями. Пользователь использует различные клиентские устройства (стационарные ПК, переносные ПК, ноутбуки, смартфоны, планшеты и тому подобные) для доступа к богатому содержимому (такому, как изображения, аудио, видео, анимация и другому мультимедийному содержимому из таких сетей).
Для доступа к веб-ресурсам пользователь обычно использует браузер. На Фиг. 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 (формат передачи сообщений языка гипертекстовой разметки).
В некоторых вариантах реализации способа, процедура сохранения информации о динамических объектах включает упорядочивание больших массивов данных на языке JavaScript и последующее сохранение информации в файле формата MHTML.
В некоторых вариантах реализации способа, процедура сохранения информации о связи объектов включает формирование трекера сообщений, трекер сообщений отвечает за привязки статических объектов к соответствующему идентификатору спящего режима, идентификатор спящего режима отображает связь объектов.
В некоторых вариантах реализации способа, процедура сохранения информации о связи объектов дополнительно включает формирование таблицы информационных элементов, отображающей идентификатор статического объекта и связанный идентификатор спящего режима.
В некоторых вариантах реализации способа, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектам, и при этом привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации способа, процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML, способ дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
В некоторых вариантах реализации способ дополнительно включает увеличение записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статических объектов.
В некоторых вариантах реализации способа, процедура сохранения информации о статических объектах включает сохранение элементов дерева объектной модели документов (DOM) в файле формата MHTML, процедура сохранения информации о динамических объектах включает упорядочивание массивов данных на языке JavaScript и последующее сохранение информации в файле формата MHTML, процедура сохранения информации о привязке включает: формирование отслеживания сообщений, привязку статических объектов к связанным идентификаторам спящего режима и формирование привязки таблицы информационных элементов статических объектов и идентификатора статических объектов и соответствующих идентификаторов спящего режима, привязка имеет уникальный идентификатор записи; увеличение записи, связанной с элементами дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи; увеличение записи, связанной с динамическим объектом в массиве данных на языке JavaScript, за счет информации об идентификаторе спящего режима статического объекта.
В некоторых вариантах реализации способа, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектам, и при этом привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации способ дополнительно включает восстановление архивного файла.
В некоторых вариантах реализации способа, процедура восстановления включает: извлечение статических объектов из дерева объектной модели документов (DOM) в файле формата MHTML; извлечение динамических объектов из массивов данных на языке JavaScript, сохраненных в MHTML файлах; извлечение связи объектов из файла формата MHTML.
В некоторых вариантах реализации способа, процедура извлечения связи объектов из файла формата MHTML включает: получение доступа к таблице информационных элементов для извлечения связанного идентификатора спящего режима, в соответствии с записью, связанной с деревом объектной модели документов (DOM) в файле MHTML, содержащем информацию об уникальном идентификаторе записи; повторную регистрацию идентификатора спящего режима и связанного идентификатора объекта в трекере ссылок; в ответ на обнаружение информации об идентификаторе спящего режима в записи, связанной с динамическим объектом в массиве данных на языке JavaScript, получение доступа к трекеру ссылок для извлечения связанного идентификатора объекта; восстановление связи на основании идентификатора связанного объекта.
В некоторых вариантах реализации способ выполняется как часть алгоритма спящего режима вкладки, алгоритм спящего режима связан с вкладкой в браузере, которая в свою очередь связана с веб-страницей.
В некоторых вариантах реализации способа, алгоритм спящего режима для вкладки выполняется в ответ на обнаружение отсутствия активности пользователя, связанной с вкладкой.
В некоторых вариантах реализации способ дополнительно включает запуск алгоритма восстановления.
В некоторых вариантах реализации способа, алгоритм восстановления запускается в ответ на повторную активацию пользователем вкладки.
В некоторых вариантах реализации способа, память содержит оперативное запоминающее устройство и жесткий диск, и при этом статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения способа, а на жестком диске они сохраняются после выполнения способа.
В соответствии с другим общим аспектом настоящей технологии, предлагается сервер. Сервер содержит: коммуникационный интерфейс для взаимодействия с электронным устройством через коммуникационную сеть, память; процессор, функционально связанный с коммуникационным интерфейсом и памятью, при этом процессор выполнен с возможностью сохранения содержимого веб-страницы, которая имеет статические объекты и динамические объекты, при этом веб-страница отображается в браузере, запущенном процессором, процессор дополнительно выполнен с возможностью: хранения в архивном файле информации о статических объектах, информации о динамических объектах; идентификации по меньшей мере одной связи динамических объектов со статическими объектами, при этом связь изображена в виде направленной линии между ними; хранения информации о связи в архивном файле; хранения архивного файла в памяти.
В некоторых вариантах реализации сервера, архивный файл содержит файлы формата MHTML.
В некоторых вариантах реализации сервера, для хранения информации о статических объектах, процессор выполнен с возможностью хранения элементов дерева объектной модели документов (DOM) в файле формата MHTML.
В некоторых вариантах реализации сервера, для хранения информации о динамических объектах, процессор выполнен с возможностью упорядочивания массивов данных на языке JavaScript и сохранения информации о них в файле формата MHTML.
В некоторых вариантах реализации сервера, для хранения информации о привязке, процессор выполнен с возможностью формирования трекера ссылок, трекер ссылок служит для привязки статических объектов к связанным идентификаторам спящего режима, идентификатор спящего режима отображает, таким образом, связь объектов.
В некоторых вариантах реализации сервера, для хранения информации о связи объектов, процессор выполнен с возможностью формирования таблицы информационных элементов, отвечающей за привязку к идентификаторам статических объектов и связанных идентификаторах спящего режима, привязка имеет уникальный идентификатор записи.
В некоторых вариантах реализации сервера, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектами, и при этом, привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации сервера, для хранения информации о статических объектах процессор выполнен с возможностью хранения дерева объектной модели документов (DOM) в файле формата MHTML, способ дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
В некоторых вариантах реализации сервера, процессор дополнительно выполнен с возможностью увеличения записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статических объектов.
В некоторых вариантах реализации сервера, для хранения информации о содержащихся статических объектах, процессор выполнен с возможностью хранения элемента дерева объектной модели документов (DOM) в файле формата MHTML, для хранения информации о динамических объектах, процессор выполнен с возможностью упорядочивания массивов данных на языке JavaScript и сохранения информации о них в файле формата MHTML; для хранения информации о привязке, процессор выполнен с возможностью: формирования трекера ссылок, сопоставляющего статические объекты со связанным идентификатором спящего режима и формирования таблицы информационных элементов, сопоставляющей идентификатор статических объектов и уникальный идентификатор записи; увеличения записи, связанной с деревом объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи; увеличения записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статических объектов.
В некоторых вариантах реализации сервера, статические объекты содержат связанные объекты, и при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектами, и при этом, привязка информационных элементов поддерживает соответствующий идентификатор спящего режима для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
В некоторых вариантах реализации сервера, процессор дополнительно выполнен с возможностью восстановления архивного файла.
В некоторых вариантах реализации сервера, для выполнения процедуры восстановления процессор выполнен с возможностью: извлечения статических объектов из дерева объектной модели документов (DOM) в файле формата MHTML; извлечения динамических объектов из массивов данных на языке JavaScript, сохраненных в файле формата MHTML; извлечения привязки из файла формата MHTML
В некоторых вариантах реализации сервера, для извлечения связи объектов из файла формата MHTML процессор выполнен с возможностью: получения доступа к таблице информационных элементов для извлечения связанного идентификатора спящего режима, в соответствии с записью, связанной с деревом объектной модели документов (DOM) в файле MHTML, содержащем информацию об уникальном идентификаторе записи; повторной регистрации идентификатора спящего режима и связанного идентификатора объекта в трекере ссылок; в ответ на обнаружение информации об идентификаторе спящего режима в записи, связанной с динамическим объектом в массиве данных на языке JavaScript, получения доступа к трекеру ссылок для извлечения связанного идентификатора объекта; восстановления привязки на основании идентификатора связанного объекта.
В некоторых вариантах реализации сервера, память содержит оперативное запоминающее устройство и жесткий диск, и при этом статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения способа, а на жестком диске они сохраняются после выполнения способа.
В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Аппаратное обеспечение представляет собой физический компьютер или физическую компьютерную систему, однако ни то, ни другое не является обязательным в соответствии с настоящей технологией. В контексте настоящего описания, использование выражения "сервер" не означает, что каждая задача (например, получение инструкций или запросов) или любая отдельная задача будет получена, выполнена, или обеспечено ее выполнение таким сервером (то есть, таким программным и/или аппаратным обеспечением); это означает, что любое количество программных средств или аппаратных устройств могут быть задействованы в получении/отправке, выполнении, обеспечении выполнения любых задач или запросов; и все эти программные средства и аппаратные средства могут представлять собой один сервер или множество серверов, которые вместе могут быть включены в выражение "по меньшей мере один сервер".
В контексте настоящего описания, "клиентское устройство" представляет собой компьютерные аппаратные средства, способные запускать программное обеспечение, обеспечивающее выполнение текущих задач. Таким образом, помимо прочего, некоторые примеры клиентских устройств содержат персональные компьютеры (стационарные компьютеры, переносные компьютеры, нетбуки и так далее), смартфоны, и планшеты, а также сетевое оборудование, например, маршрутизаторы, концентраторы и шлюзы. Следует помнить, что устройства, хотя и работают, как клиентские устройства в настоящем контексте, что не мешает им выполнять роль сервера по отношению к другим клиентским устройствам. Использование выражения "клиентское устройство" не мешает использовать множество клиентских устройств для получения/отправки, выполнения или обеспечения выполнения любых задач или запросов, или процедур способа, описанных в данном документе.
В контексте настоящего описания, термин "база данных" означает любой структурированный набор данных, независимо от их отдельных структур, программное обеспечение для управления данными или компьютерное аппаратное обеспечение, на котором хранятся данные, реализованные или, в противном случае, преобразованные для возможности их использования. База данных может находиться на тех же аппаратных средствах, что и процессы, выполняющие обработку или позволяющие использовать информацию, сохраненную в базе данных, или она может находиться на отдельных аппаратных средствах, например, на выделенном сервере или множестве серверов.
В контексте настоящего описания, выражение "информация" содержит информацию о любом типе или разновидности данных, которые можно сохранить в базе данных. Таким образом, информация содержит, помимо прочего, аудиовизуальные работы (изображения, фильмы, звукозаписи, презентации и тому подобное), данные (данные о местоположении, числовые данные, и тому подобное), текст (заключения, комментарии, сообщения и тому подобное), документы, электронные таблицы и тому подобное.
В контексте настоящего описания, выражение "компонент" представляет собой подключаемое программное обеспечение (присущее отдельному контексту аппаратных средств), другими словами, необходимое и достаточное для достижения выполнения указанных функций.
В контексте настоящего описания, выражение "используемый компьютером носитель информации" представляет собой носитель, предназначенный для любых типов и разновидностей данных, включая ОЗУ, ПЗУ, диски (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.
В отельных вариантах реализации технологии, различные компоненты электронного устройства 302 функционально все вместе подключены к одной или более шин данных (включая аппаратные и/или программные компоненты). В отдельных вариантах реализации технологии, различные компоненты электронного устройства 302 функционально все вместе подключены к одной или более шин данных (включая аппаратные и/или программные компоненты). В качестве примера, не ограничивающего объема технологии, одна или более шин данных может содержать ускоренный графический порт (AGP) или другую графическую шину, улучшенную архитектуру промышленной шины (EISA), внешнюю шину (FSB), гипертранспортную шину (НТ), шину INFINIBAND, шину с малым количеством выводов (LPC), шину памяти, шину микроканальной архитектуры (МСА), шину соединений периферийных устройств (PCI), шину последовательного интерфейса PCI-Express (PCI-X), шину последовательного интерфейса ATA (SATA), интерфейс приема/передачи УАПП (UART), шину соединений интегральных схем (I2C), шину последовательного периферийного интерфейса (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 может содержать множество элементов, например, статических объектов 406 и динамических объектов 408. В варианте реализации настоящей технологии, статические объекты 406 могут содержать объекты на языке HTML, а динамические объекты 408 могут содержать объекты на языке JavaScript. Объекты на языке HTML могут быть заранее внесены веб-разработчиком (не показан) веб-страницы 404. Например, данный объект на языке HTML начинается с тега <div><sample text> для отображения HTML объекта, содержащего текст <sample text>.
Объекты на языке JavaScript могу вызывать один или более объектов на языке HTML. Например, объект на языке JavaScript может быть кнопкой (или, в данном случае, любым другим объектом на языке JavaScript), которая изменяет шрифт и/или цвет объекта на языке HTML, при нажатии на нее пользователем, исключительно в качестве примера. Другими словами, динамические объекты 408 могут изменяться самостоятельно или изменять другие элементы веб-страницы 404 на основании действий пользователя, посещающего веб-страницу 404. Эта связь между динамическими объектами 408 и статическими объектами 406 веб-страницы 404 схематически изображена в виде соединения 410 внутри иллюстрации на Фиг. 4. Чтобы избежать неясности, соединение 410 показано в виде ссылки между кодом на языке JavaScript (представляющем пример динамического объекта 408) и вызываемым им HTML кодом (представляющем пример статического объекта 406) или наоборот.
С целью иллюстрации, следует предположить, что веб-страница 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.
Динамические объекты 408 могут быть реализованы в виде объектов на языке JavaScript (или, сокращенно, JS). Как упоминалось выше, скрипты на языке JS используются для выполнения конкретных действий в случае возникновения предварительно заданного события. Для более глубокого понимания взаимодействия скриптов на языке JS с объектами на языке HTML, создана связь 410 между скриптом JS и объектом HTML. Согласно проиллюстрированному варианту реализации настоящей технологии, часть скрипта на языке JS может указывать на (или "ссылаться на", или "связывать с", как известно в данной области техники) любой из следующих элементов или на оба элемента: объект HTMLDivElement и класс CSSStyleDeclaration.
В общем случае, для спящего режима и последующего восстановления содержимого веб-страницы 404, модуль сохранения и восстановления 320 выполнен с возможностью (i) хранения и извлечения статических объектов 406, (ii) хранения и извлечения динамических объектов 408, и (iii) хранения и извлечения связи (или множества связей, в зависимости от обстоятельств) между динамическими объектами 408 и статическими объектами 406 (и наоборот).
Говоря точнее, для спящего режима и последующего восстановления содержимого веб-страницы 404, модуль сохранения и восстановления 320 выполнен с возможностью (i) хранения и извлечения статических объектов 406, как части дерева объектной модели документов (DOM), (ii) хранения и извлечения упорядоченных массивов данных на языке JavaScript, содержащих динамические объекты 408, и (iii) хранения и извлечения связи (или множества связей, в зависимости от обстоятельств) между динамическими объектами 408 и статическими объектами 406 (и наоборот), как будет описано ниже.
Процедуры сохранения (и последующего восстановления) статических объектов 406 могут быть реализованы, как процедуры сохранения статических объектов 406 в дереве объектной модели документов (DOM) и процедуры сохранения динамических объектов 408 в виде массивов данных на языке JavaScript. Эти процедуры сохранения и последующего восстановления хорошо известны в данной области техники, кроме того, могут быть использованы любые подходящие подходы в их реализации.
Например, объектная модель документов (объектной модели документов (DOM)) известна, как кроссплатформенный и независимый от языка набор правил представления и взаимодействия с объектами в различных языках программирования, например, помимо прочего: в документах HTML, XHTML и XML. В общем случае, в соответствии с объектной моделью документов объектной модели документов (DOM), узлы любого документа организованы в виде древовидной структуры, называемой дерево объектной модели документов (DOM). Адресация и манипулирование объектами в дереве объектной модели документов (DOM) может выполняться с помощью свойств и методов объектов. Публичный интерфейс объектной модели документов (DOM) указан в ее программном интерфейсе приложений (API).
Согласно некоторым вариантам реализации настоящей технологии, модуль сохранения и восстановления 320 выполнен с возможностью хранения по меньшей мере некоторых объектов дерева объектной модели документов (DOM) (например, статических объектов 406), используя формат MIME HTML (MHTML).
Модуль сохранения и восстановления 320 дополнительно выполнен с возможностью упорядочивания массивов данных на языке JavaScript с использованием известного движка V8, поставляемого компанией GOOGLE of Googleplex, Маунтин-Вью, Калифорния, США.
В соответствии с вариантом реализации настоящей технологии, модуль сохранения и восстановления 320 дополнительно выполнен с возможностью хранения и извлечения связей между массивами данных на языке JavaScript и деревом объектной модели документов (DOM), как будет подробно описано ниже в данном документе. Согласно варианту реализации настоящей технологии, модуль сохранения и восстановления 320 выполнен с возможностью использования архива MHTML для хранения объектов дерева объектной модели документов (DOM), упорядочивания массивов данных на языке JavaScript и связей между деревом объектной модели документов (DOM) и массивами данных на языке JavaScript.
Согласно варианту реализации настоящей технологии, связь между объектами дерева объектной модели документов (DOM) и массивами данных на языке JavaScript используется для правильного восстановления содержимого веб-страницы 404. Особенно эффективен вариант реализации технологии, не ограничивающий ее объем, при котором содержимое на языке JavaScript является динамическим и время от времени обновляется. Способность хранить связи между объектами объектной модели документов (DOM) и массивами данных на языке JavaScript позволяет хранить и извлекать содержимое веб-страниц 404 (например, как часть алгоритма спящего режима для вкладок) с учетом динамического обновления объектов на языке HTML/JavaScript, выполняемого перед спящим режимом. Использование указанный выше пример с кнопкой на языке JavaScript для изменения шрифта/цвета объекта на языке HTML, вариант реализации настоящей технологии позволяет сохранить данное динамическое состояние измененных шрифтов/цвета как часть процедуры сохранения/восстановления (или, проще говоря, как часть алгоритма спящего режима для вкладки).
На Фиг. 5 изображен пример архивного файла 500. Пример архивного файла 500 может представлять собой архивный файл формата MHTML. Естественно, могут использоваться любые другие форматы или протоколы реализации архивных файлов 500.
Архивный файл 500 содержит массив данных на языке JavaScript 502, дерево объектной модели документов (DOM) 504, трекер ссылок 506 и таблицу информационных элементов 540. Массив данных на языке JavaScript 502 содержит первый JS объект 510 (проиллюстрированный, как my_element) и второй объект 512 (проиллюстрированный, как my_style). Дерево объектной модели документов (DOM) 504 содержит первый объект 514 дерева объектной модели документов (DOM) (проиллюстрированный, как HTMLDivElement) и второй объект 516 дерева объектной модели документов (DOM) (проиллюстрированный, как CSSStyleDeclaration).
Как эти элементы архивного файла 500 вносятся и используются, во время выполнения алгоритма спящего режима для вкладки будет рассмотрено далее.
Проще говоря, модуль сохранения и восстановления 320 сконфигурирован согласно структуре дерева объектной модели документов (DOM) 504, объекты HTML соответствуют HTML тэгам из HTML кода создания страницы 404 - это пример первого элемента 514 дерева объектной модели документов (DOM). Любые другие дополнительные элементы, представленные внутри веб-страницы 404 (например, CSS или изображения) также сохранены в архивном файле 500 в качестве дополнительных статических объектов - это пример второго объекта 516 дерева объектной модели документов (DOM).
В соответствии с вариантом реализации настоящей технологии, модуль сохранения и восстановления 320 также выполнен с возможностью добавления упорядоченных массивов данных на языке JavaScript в архивный файл 500 - это изображение массива данных 502 на языке JavaScript. В дополнение, модуль управления информацией 130 также выполнен с возможностью хранения, в виде части архивного файла 500, трекера ссылок 506 и таблицы информационных элементов 540, содержащей данные о связях 410, для дальнейшего сохранения и последующего восстановления связей между объектами на языке JavaScript и объектами дерева объектной модели документов (DOM).
Как будет наполняться и использоваться информация для трекера ссылок 506 и таблицы информационных элементов 540, будет описано далее.
При создании веб-страницы 404 из связанного с ней HTML кода, когда создается связь 410 для данной веб-страницы 404, модуль сохранения и восстановления 320 создает запись в трекере ссылок 506. Запись в трекере ссылок 506 сопоставляет уникальный идентификатор (назначенный модулем сохранения и восстановления 320) статического объекта 406 (называемый далее "идентификатор спящего режима") с информацией о связи 410 динамического объекта 408.
Далее, при сохранении массива данных на языке JavaScript 502, когда модуль сохранения и восстановления 320 определяет местоположение связи 410, указывающей на данный статический объект 406, модуль сохранения и восстановления 320 получает доступ к трекеру ссылок 506 для определения связанного идентификатора спящего режима данного статического объекта 406, на который данная связь 410 указывает и сохраняет информацию об идентификаторе спящего режима в связанной записи в массиве данных на языке JavaScript 502 - как часть записи для связанного динамического объекта 408 - как запись 511 по отношению к первому объекту 510 JS и как запись 513 по отношению ко второму объекту 512 JS.
Специалистам в данной области будет понятно, что не все объекты дерева объектной модели документов (DOM), на которые могут потенциально ссылаться массивы данных на языке JavaScript, связаны с HTML тэгами. Например, данный HTML элемент может иметь связанное поле, например, поле style, которое описывает стиль элемента. В другом примере, данный HTML элемент может иметь связанное поле child, указывающее на один или более дочерний элемент. Объекты на языке JavaScript могут иметь связи непосредственно с самим HTML объектом, со связанным полем или любым его дочерним полем.
По этой причине, модуль сохранения и восстановления 320 может поддерживать таблицу информационных элементов 540, которая поддерживает сопоставление между данным одним HTML объектом (и его связанным или дочерним полем/объектом) и данным идентификатором спящего режима HTML объекта (а также соответствующего идентификатора спящего режима его связанного или дочернего поля/объекта).
Модуль сохранения и восстановления 320 выполнен с возможностью добавления в HTML код, связанный с каждым HTML объектом, дополнительного атрибута, называемого "hibernate-info-id", который указывает на отдельную запись в таблице информационных элементов 540 (посредством уникального идентификатора, связанного с ней).
Процесс, приведенный выше, проиллюстрирован с использованием приведенного выше HTML кода, изложенного в Табл. 1 выше, для создания веб-страницы 404.
Шаг А
При загрузке веб-страницы 404 в браузер 340, браузер 340 создает статические объекты 406, на основании HTML тэгов и связанные подчиненные объекты (связанные или дочерние), согласно данной иллюстрации, с использованием объектов HTMLDivElement и CSSStyle Declaration.
Шаг В
Затем браузер 340 создает динамические объекты 408.
Говоря точнее, при выполнении строки 9 и 10 приведенного выше примера HTML кода (см. Табл. 1), браузер 340 создает связь 410 с HTML объектами на языке JavaScript.
Когда данная связь 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").
Шаг С
После сохранения массива данных 502 на языке JavaScript, модуль сохранения и восстановления 320 сохраняет идентификатор спящего режима вместо актуальной информации о связи 410 с HTML объектом. Точнее говоря, модуль сохранения и восстановления 320 сохраняет "hibernate-id=2" в качестве записи 511 в отношении первого элемента 510 JS и "hibernate-id=1" в качестве части записи 513 в отношении второго элемента 512 JS.
Шаг 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
Затем, модуль сохранения и восстановления 320 восстанавливает массивы данных на языке JavaScript 502. Если во время восстановления массивов данных на языке JavaScript идентифицируется связь 410, модуль сохранения и восстановления 320 выполняет запрос к трекеру ссылок 506, и трекер ссылок 506 предоставляет идентификатор связанного объекта 504 дерева объектной модели документов (DOM), на основании идентификатора спящего режима, сохраненного в записи 511 или в записи 513. Затем, модуль сохранения и восстановления 320 восстанавливает связь 410 между динамическими объектами 408 и статическими объектами 406, на основании идентификатора, полученного из трекера ссылок 506.
Следует помнить, что таблица информационных элементов 540 может содержать дополнительные данные, помимо тех, что были описаны выше (то есть в дополнение к идентификатору спящего режима). Например, таблица информационных элементов может содержать информацию, характерную для слушателя событий.
Например, многие элементы объектной модели документов (DOM) могут быть вызваны после функций JavaScript, которые могут быть запущены после возникновения предварительно заданного события, связанного с объектом из объектной модели документов (DOM) (например, при щелчке пользователя по тексту, связанному с элементом дерева объектной модели документов (DOM) и тому подобное). При упорядочивании JavaScript на веб-странице 404, модуль сохранения и восстановления 320 идентифицирует все такие зарегистрированные функции и помещает эту информацию в таблицу информационных элементов 540, указывающую, какой элемент объектной модели документов (DOM) связан с таким слушателем событий.
Данная запись таблицы информационных элементов 540 сопоставляет: (i) идентификатор спящего режима такого элемента объектной модели документов (DOM); (ii) идентичность события; (iii) и указатель на функцию JS, которая должна быть вызвана. Указатель на функцию может быть реализован в виде номера строки в массиве данных на языке JavaScript 502 и смещения относительно номера строки.
Архитектура, описанная выше, позволяет выполнить способ сохранения содержимого веб-страницы 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.
В некоторых вариантах реализации способа 600, процедура сохранения информации о динамических объектах 406 включает упорядочивание массивов данных на языке JavaScript 502 и последующее сохранение информации в файле формата MHTML.
Шаг 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 и связанных объектов в соответствии с уникальным идентификатором записи.
Способ 600 дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи и увеличение записи, связанной с динамическим объектом 406 в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статического объекта 408.
Шаг 610 - сохранение архивного файла в памяти
На шаге 610, модуль сохранения и восстановления 310 сохраняет архивный файл 500 в памяти (то есть, в модуле памяти 304).
В некоторых вариантах реализации способа 600, модуль сохранения и восстановления 320 сохраняет архивный файл в отдельном участке памяти на жестком диске. Таким образом, можно сказать, что память может содержать часть оперативного запоминающего устройства и часть памяти на жестком диске, перед выполнением способа 600, а после выполнения способа 600, статические объекты 406 и динамические объекты 408 сохраняются в отдельной части оперативного запоминающего устройства и жесткого диска.
Способ 600 дополнительно включает восстановление архивного файла 500. Восстановление архивного файла 500 выполняется после выполнения алгоритма восстановления вкладки. Восстановление архивного файла 500 выполняется за счет выполнения следующих шагов: (а) извлечение статических объектов 406 из элементов дерева объектной модели документов (DOM) в MHTML файле; извлечение динамических объектов 408 из массивов данных на языке JavaScript, сохраненных в файле MHTML; извлечение связи 410 из файла формата MHTML.
В некоторых вариантах реализации способа 600, процедура извлечения связи объектов из файла формата MHTML выполняется за счет следующих шагов: получение доступа к таблице информационных элементов 540 для извлечения связанного идентификатора спящего режима, в соответствии с записью, связанной с деревом объектной модели документов (DOM) в файле MHTML, содержащем информацию об уникальном идентификаторе записи; повторную регистрацию идентификатора спящего режима и связанного идентификатора объекта в трекере ссылок 506; в ответ на обнаружение информации об идентификаторе спящего режима в записи, связанной с динамическим объектом 408 в массиве данных на языке JavaScript 502, получение доступа к трекеру ссылок 506 для извлечения связанного идентификатора объекта; восстановление связи 410 на основании идентификатора связанного объекта.
Даже, несмотря на то, что приведенное выше описание представляло собой описание архива формата MHTML в качестве примера реализации варианта настоящей технологии, она не обязательно ограничена этим форматом. Могут быть использованы любые другие протоколы, доступные на рынке, или частные протоколы, например, бинарный формат и тому подобные.
Как будет понятно специалистам в данной области техники, когда в текущем описании встречается фраза "получение данных" от пользователя и что электронное устройство выполняет получение данных от пользователя, это означает, что от пользователя принимаются электронные (или другие) сигналы. Как дополнительно будет понятно специалистам в данной области, что отображение данных для пользователя через графический интерфейс пользователя (например, с помощью экрана электронного устройства и тому подобного) означает передачу сигналов графическому интерфейсу пользователя, сигналы содержат данные, которыми можно управлять, при этом по меньшей мере часть данных отображается пользователю с использованием графического интерфейса пользователя.
Некоторые из этих шагов и сигналов, отправляемых и принимаемых хорошо известны в данной области техники и, таким образом, могут отсутствовать в отдельных разделах данного описания для облегчения понимания. Сигналы могут передаваться и приниматься оптическим способом (например, через оптическое подключение), электронным способом (например, с использованием проводных и беспроводных соединений), и механическим способом (например, с помощью давления, температуры или с помощью любого другого подходящего физического параметра).
Важно иметь в виду, что не все упомянутые здесь технические эффекты могут проявляться в каждом из воплощений настоящей технологии. Например, варианты осуществления настоящей технологии могут быть выполнены без проявления некоторых технических результатов, другие могут быть выполнены с проявлением других технических результатов или вовсе без него.
Модификации и улучшения вышеописанных вариантов реализации настоящей технологии будут ясны специалистам в данной области техники. Приведенное выше описание предназначено для того, чтобы быть приведенным в качестве примера, а не иметь ограничительный характер. В связи с этим объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к веб-браузерам, в частности к обработке содержимого веб-ресурса в браузере. Технический результат заключается в обеспечении возможности сохранения спящего режима для вкладок браузера и точного восстановления содержимого вкладки. Технический результат достигается за счет формирования отслеживания сообщений, привязки статических объектов к связанным идентификаторам спящего режима и формирования привязки таблицы информационных элементов статических объектов и идентификатора статических объектов и соответствующих идентификаторов спящего режима, привязка имеет уникальный идентификатор записи; увеличения записи, связанной с динамическим объектом в массиве данных на языке JavaScript, за счет информации об идентификаторе спящего режима статического объекта. 2 н. и 32 з.п. ф-лы, 2 табл., 6 ил.
1. Способ сохранения содержимого веб-страницы, содержащей статические объекты и динамические объекты, причем веб-страница отображается в браузере, запущенном на электронном устройстве, имеющем память, при этом способ выполняется электронным устройством и включает:
сохранение в архивном файле информации о статических объектах;
сохранение в архивном файле информации о динамических объектах;
отличающийся тем, что включает в себя
идентификацию по меньшей мере одной связи между динамическими объектами и статическими объектами, представленной в виде ссылки между ними;
сохранение информации об этой связи в архивном файле;
сохранение архивного файла в памяти,
причем
указанная процедура сохранения информации о динамических объектах включает упорядочивание массивов данных на языке JavaScript;
указанное сохранение информации об указанной связи включает:
формирование трекера ссылок, который служит для привязки статических объектов к связанному идентификатору спящего режима, и формирование таблицы информационных элементов, отвечающей за привязку идентификатора статического объекта и связанного идентификатора спящего режима, при этом привязка содержит уникальный идентификатор записи;
увеличение записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статических объектов.
2. Способ по п. 1, отличающийся тем, что указанный архивный файл содержит файл формата MHTML.
3. Способ по п. 2, отличающийся тем, что указанная процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML.
4. Способ по п. 2, отличающийся тем, что процедура сохранения информации о динамических объектах включает упорядочивание массивов данных на языке JavaScript и последующее сохранение информации об этом в файле формата MHTML.
5. Способ по п. 2, отличающийся тем, что указанная процедура сохранения информации о связи объектов включает формирование трекера сообщений, предназначенного для привязки статических объектов к соответствующему идентификатору спящего режима (ID), отображающего связь объектов.
6. Способ по п. 5, отличающийся тем, что указанная процедура сохранения информации о связи дополнительно включает формирование таблицы информационных элементов, содержащей идентификатор статического объекта и связанный идентификатор спящего режима (ID).
7. Способ по п. 6, отличающийся тем, что указанные статические объекты содержат связанные объекты, при этом динамические объекты содержат соответствующую привязку к статическим объектам и связанным объектам, и при этом привязка информационных элементов поддерживает соответствующий идентификатор спящего режима (ID) для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
8. Способ по п. 7, отличающийся тем, что указанная процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML, при этом способ дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
9. Способ по п. 8 отличающийся тем, что дополнительно включает увеличение записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима (ID) статических объектов.
10. Способ по п. 2, отличающийся тем, что:
указанная процедура сохранения информации о статических объектах включает сохранение элемента дерева объектной модели документов (DOM) в файле формата MHTML;
указанная процедура сохранения информации о динамических объектах дополнительно включает последующее сохранение информации в файле формата MHTML;
указанное сохранение информации об этой связи между динамическими объектами и статическими объектами дополнительно включает:
увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
11. Способ по п. 10, отличающийся тем, что указанные статические объекты содержат связанные объекты, при этом динамические объекты содержат соответствующую привязку к статическим объектам и связанным объектам, причем привязка информационных элементов поддерживает соответствующий идентификатор спящего режима (ID) для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
12. Способ по п. 10, дополнительно включающий восстановление архивного файла.
13. Способ по п. 12, отличающийся тем, что указанное восстановление включает:
извлечение статических объектов из элемента дерева объектной модели документов (DOM) в файле формата MHTML;
извлечение динамических объектов из массивов данных на языке JavaScript, сохраненных в файле формата MHTML;
извлечение связи из файла формата MHTML.
14. Способ по п. 13, отличающийся тем, что указанное извлечение связи из файла формата MHTML включает:
получение доступа к таблице информационных элементов для извлечения связанного идентификатора спящего режима (ID) в соответствии с записью, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, содержащем информацию об уникальном идентификаторе записи;
повторную регистрацию указанного идентификатора спящего режима (ID) и связанного идентификатора объекта в трекере ссылок;
получение доступа к трекеру ссылок для извлечения связанного идентификатора объекта в ответ на обнаружение информации об идентификаторе спящего режима в записи, связанной с динамическими объектами в массивах данных на языке JavaScript;
восстановление связи на основании связанного идентификатора объекта.
15. Способ по п. 1, отличающийся тем, что указанный способ выполняется как часть алгоритма спящего режима для вкладки, алгоритм спящего режима связан с вкладкой в браузере, которая, в свою очередь, связана с веб-страницей.
16. Способ по п. 15, отличающийся тем, что указанный алгоритм спящего режима для вкладки выполняется в ответ на обнаружение отсутствия активности пользователя, связанной с вкладкой.
17. Способ по п. 15, дополнительно включающий выполнение алгоритма восстановления.
18. Способ по п. 17, отличающийся тем, что указанный алгоритм восстановления выполняется в ответ на повторную активацию вкладки пользователем.
19. Способ по п. 1, отличающийся тем, что указанная память содержит оперативное запоминающее устройство и жесткий диск, при этом отличающийся тем, что статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения способа, а на жестком диске они сохраняются после выполнения способа.
20. Сервер, содержащий:
коммуникационный интерфейс для взаимодействия с электронными устройствами через коммуникационную сеть,
память;
процессор, функционально подключенный к коммуникационному интерфейсу и памяти, выполненный с возможностью хранения содержимого веб-страницы, которая имеет статические и динамические элементы и отображается в браузере, выполняемом процессором, который дополнительно выполнен с возможностью:
хранения в архивном файле информации о статических объектах;
хранения в архивном файле информации о динамических объектах;
отличающийся тем, что процессор дополнительно выполнен с возможностью
идентификации по меньшей мере одной связи между динамическими объектами и статическими объектами, представленной в виде ссылки между ними;
хранения информации об этой связи в архивном файле;
хранения архивного файла в памяти,
причем
процессор дополнительно выполнен с возможностью упорядочивания массивов данных на языке JavaScript для хранения информации о динамических объектах;
процессор, для хранения информации о связи между динамическими объектами и статическими объектами, выполнен с возможностью
формирования трекера ссылок, который служит для привязки статических объектов к связанному идентификатору спящего режима, и формирования таблицы информационных элементов, отвечающей за привязку идентификатора статического объекта и связанного идентификатора спящего режима, при этом привязка содержит уникальный идентификатор записи;
увеличения записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима статических объектов.
21. Сервер по п. 20, отличающийся тем, что указанный архивный файл содержит файл формата MHTML.
22. Сервер по п. 21, отличающийся тем, что для хранения информации о статических объектах процессор выполнен с возможностью хранения элементов дерева объектной модели документов (DOM) в файле формата MHTML.
23. Сервер по п. 22, отличающийся тем, что для хранения информации о динамических объектах процессор выполнен с возможностью упорядочивания массивов данных на языке JavaScript и сохранения информации о них в файле формата MHTML.
24. Сервер по п. 22, отличающийся тем, что для хранения информации о связи объектов процессор выполнен с возможностью формирования трекера ссылок, который служит для привязки статических объектов к связанным идентификаторам спящего режима, отображающего, таким образом, связь объектов.
25. Сервер по п. 24, отличающийся тем, что для хранения информации о связи объектов процессор выполнен с возможностью формирования таблицы информационных элементов, отвечающей за привязку к идентификаторам статических объектов и связанных идентификаторах спящего режима (ID), при этом привязка имеет уникальный идентификатор записи.
26. Сервер по п. 25, отличающийся тем, что указанные статические объекты содержат связанные объекты, которые содержат соответствующую связь со статическими объектами и связанными объектами, а привязка информационных элементов поддерживает соответствующий идентификатор спящего режима (ID) для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
27. Сервер по п. 26, отличающийся тем, что для хранения информации о статических объектах процессор выполнен с возможностью хранения элемента дерева объектной модели документов (DOM) в файле формата MHTML, дополнительно включает увеличение записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
28. Сервер по п. 27, отличающийся тем, что процессор дополнительно выполнен с возможностью увеличения записи, связанной с динамическими объектами в массивах данных на языке JavaScript, за счет информации об идентификаторе спящего режима (ID) статических объектов.
29. Сервер по п. 21, отличающийся тем, что:
содержит процессор, выполненный с возможностью хранения элемента дерева объектной модели документов (DOM) в файле формата MHTML для хранения информации о статических объектах;
причем процессор дополнительно выполнен с возможностью сохранения информации о динамических объектах в файле формата MHTML для ее хранения;
процессор, для хранения информации о связи, дополнительно выполнен с возможностью:
увеличения записи, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, за счет информации об уникальном идентификаторе записи.
30. Сервер по п. 29, отличающийся тем, что указанные статические объекты содержат связанные объекты, при этом динамические объекты содержат соответствующую связь со статическими объектами и связанными объектами, а привязка информационных элементов поддерживает соответствующий идентификатор спящего режима (ID) для статических объектов и связанных объектов в привязке к уникальному идентификатору записи.
31. Сервер по п. 29, отличающийся тем, что процессор дополнительно выполнен с возможностью восстановления архивного файла.
32. Сервер по п. 31, отличающийся тем, что для выполнения восстановления процессор выполнен с возможностью:
извлечения статических объектов из элемента дерева объектной модели документов (DOM) в файле формата MHTML;
извлечения динамических объектов из массивов данных на языке JavaScript, сохраненных в файле формата MHTML;
извлечения связи из файла формата MHTML.
33. Сервер по п. 32, отличающийся тем, что для извлечения связи из файла формата MHTML процессор выполнен с возможностью:
получения доступа к таблице информационных элементов для извлечения связанного идентификатора спящего режима (ID) в соответствии с записью, связанной с элементом дерева объектной модели документов (DOM) в файле формата MHTML, содержащем информацию об уникальном идентификаторе записи;
повторной регистрации указанного идентификатора спящего режима (ID) и связанного идентификатора объекта в трекере сообщений;
получения доступа к трекеру ссылок для извлечения связанного идентификатора объекта в ответ на обнаружение информации об идентификаторе спящего режима (ID) в записи, связанной с динамическими объектами в массивах данных на языке JavaScript;
восстановления связи на основании связанного идентификатора объекта.
34. Сервер по п. 20, отличающийся тем, что указанная память содержит оперативное запоминающее устройство и жесткий диск, при этом статические и динамические объекты сохраняются в оперативном запоминающем устройстве до выполнения данного способа, а на жестком диске они сохраняются после выполнения данного способа.
Печь-кухня, могущая работать, как самостоятельно, так и в комбинации с разного рода нагревательными приборами | 1921 |
|
SU10A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
СИНХРОНИЗАЦИЯ СТРУКТУРИРОВАННОГО СОДЕРЖИМОГО ВЕБ-УЗЛОВ | 2007 |
|
RU2432608C2 |
Авторы
Даты
2016-08-27—Публикация
2014-09-29—Подача