Способ и система работы веб-приложения на устройстве

Способ включает в себя запуск веб-приложения для взаимодействия с выбранным веб-ресурсом в ответ на инициирующее событие. Способ осуществляет доступ к локальному кэшу, содержащему статические данные, статические данные определяют совместно используемые части записей, каждая из совместно используемых частей записей связана с по меньшей мере двумя веб-ресурсами, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов. Способ также выбирает по меньшей мере одну совместно используемую часть записей, связанную с выбранным ресурсом, и извлекает по меньшей мере одну совместно используемую часть записей, связанную с выбранным ресурсом, а также извлекает динамический компонент для выбранного ресурса. Способ также включает в себя обработку статического компонента и динамического компонента для создания контента, отображаемого устройством. Данный способ направлен на улучшение качества взаимодействия пользователя с веб-ресурсом. 2 н. и 18 з.п. ф-лы, 5 ил.

 

Область техники

[0001] Настоящая технология в целом относится к системам и способам работы веб-приложения на устройстве и, в частности, к способам и системам для быстрого открытия веб-страниц в прогрессивных веб-приложениях (PWA).

Уровень техники

[0002] Веб-приложения можно рассматривать как особый вариант клиент-серверного программного обеспечения, в котором клиентское программное обеспечение загружается на клиентский компьютер при посещении соответствующей веб-страницы с использованием стандартных процедур или протоколов, таких как HTTP. Обновления клиентского веб-программного обеспечения могут происходить каждый раз при посещении веб-страницы. Во время сеанса, веб-браузер интерпретирует и отображает страницы и действует как универсальный клиент для любых веб-приложений. Веб-приложения полагаются на веб-документы, написанные в стандартном формате, таком как, например, HTML и JavaScript, и обычно поддерживаются различными веб-браузерами. Напротив, нативные приложения обычно жестко привязаны к определенной компьютерной архитектуре и/или конкретной операционной системе. Например, нативное приложение, разработанное для работы на iOS™ от Apple Inc., де-факто не будет исполняться на устройстве под управлением Android™ от Google Inc.

[0003] Хотя веб-приложения по своей сути снимают ограничения переносимости и исполняемости, связанные с различными типами компьютерных архитектур и/или операционных систем, они все же имеют ограничения. Примеры таких ограничений включают в себя медленную скорость выполнения и меньшее количество функций по сравнению с нативными приложениями. В результате веб-приложения используются меньше, чем нативные. В попытке сократить разрыв между веб-приложениями и нативными приложениями, недавно появилась новая технология - прогрессивные веб-приложения (PWA). Прогрессивное веб-приложение (PWA) представляет собой тип прикладного программного обеспечения, доставляемого через Интернет, созданного с использованием обычных веб-технологий, включая в себя, например, но не ограничиваясь этим, HTML, CSS и JavaScript. PWA предназначены для работы на любой платформе, которая использует браузер, соответствующий стандартам, включая в себя как настольные, так и мобильные устройства. PWA набирают все большую популярность благодаря таким функциям, как их способность работать в режиме офлайн, их уровень производительности (по сравнению с веб-приложениями), их способность получать доступ к датчикам мобильных устройств, поддержка ими push-уведомлений, и это лишь некоторые из них. В некоторых реализациях, быстрое открытие веб-страниц PWA реализуется за счет использования сервис-воркера, который действует как прокси-уровень в PWA. Этот прокси-уровень позволяет управлять обработкой сетевых запросов и соединять внутреннюю часть PWA (т.е. удаленный сервер) с внешним интерфейсом (т.е. PWA, работающим на устройстве). При стремлении извлекать выгоды, полагаться на подход сервис-воркера может оказаться проблематичным. Поэтому желательны альтернативные подходы.

[0004] Помимо сервис-воркера, описанного здесь выше в контексте PWA, другие известные подходы включают в себя подходы, описанные в одном из следующих: заявка на патент Китая, опубликованная под номером CN 106202179 A и озаглавленная «Page Loading Method and Device», заявка на патент США, опубликованная под номером US 2018/285470 A1 и озаглавленная «A Mobile Web Cache Optimization Method Based on HTML5 Application Caching», и европейская патентная заявка, опубликованная под номером EP 1081607 A2 и озаглавленная «Method for Providing Fast Access to Dynamic Content on the World Wide Web».

[0005] Заявка на патент Китая, опубликованная под номером CN 106202179 A, раскрывает способ и устройство загрузки страницы. Способ включает в себя определение того, сохранил ли браузер локально содержимое назначенной части назначенной страницы, когда браузеру необходимо загрузить назначенную страницу; если да, определение того, запрашивать ли контент с сервера назначенной страницы; если запрос с сервера не требуется, использование локально сохраненного в браузере контента в качестве контента назначенной части назначенной страницы и его загрузку.

[0006] Заявка на патент США, опубликованная под номером US 2018/285470 A1, раскрывает метод оптимизации мобильного веб-кэша, включающий в себя следующие этапы: 1) сбор сервером информации о ресурсе в мобильном веб-приложении; 2) отображение ресурсов, имеющих одинаковый контент, но разные URL-адреса, на один и тот же ресурс; 3) выбор стабильного набора ресурсов для настройки в списке ресурсов кэша; 4) установка библиотеки времени выполнения JavaScript, вызывающей вызов среды выполнения на каждой целевой странице; 5) создание прокси-страницы для каждой целевой страницы, перенаправление URL-адреса целевой страницы на соответствующую прокси-страницу и, при обращении к целевой странице, запрашивание файла сопоставления ресурсов в соответствии с запрошенным ресурсом и извлечение отображенного ресурса кэша из списка ресурсов кэша для загрузки на прокси-страницу.

[0007] Европейская патентная заявка, опубликованная под номером EP 1081607 A2, раскрывает сохраненную в интеллектуальной закладке последовательность этапов просмотра, выполняемых пользователем, которые были записаны прозрачным образом и которые могут быть автоматически воспроизведены и повторно воспроизведены позже при доступе к интеллектуальной закладке. Когда пользователь выбирает создание интеллектуальной закладки, вызывается апплет Java-рекордера-проигрывателя, который запускает процесс записи. Когда процесс записи запускается и пользователь вводит начальный URL-адрес, соответствующая веб-страница по этому URL-адресу, загруженному в браузер, модифицируется для присоединения обработчиков событий к каждому элементу на этой странице, который связан с действиями, которые может выполнять пользователь.

Сущность изобретения

[0008] Неограничивающие варианты осуществления настоящей технологии были разработаны на основе оценки разработчика по меньшей мере одной технической проблемы, связанной с решениями предшествующего уровня техники.

[0009] В соответствии с первым широким аспектом настоящей технологии, предоставляется способ работы веб-приложения на устройстве, причем способ включает в себя:

в ответ на инициирующее событие, запуск веб-приложения для взаимодействия с выбранным веб-ресурсом, причем инициирующее событие определяется на основе области действия, связанной с веб-приложением, при этом область действия включает в себя идентификаторы ресурсов, идентифицирующие веб-ресурсы;

доступ, веб-приложением, к локальному кэшу, хранящемуся в компьютерно-читаемой памяти устройства, причем локальный кэш содержит статические данные, при этом статические данные определяют совместно используемые части записей, каждая из совместно используемых частей записей связана с по меньшей мере двумя из веб-ресурсов, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов;

выбор, веб-приложением, среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом;

извлечение, веб-приложением, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом, причем извлеченные совместно используемые части определяют статический компонент для выбранного ресурса;

получение, веб-приложением, из выбранного веб-ресурса, динамического компонента для выбранного ресурса; и

обработку, веб-приложением, статического компонента и динамического компонента для создания контента, отображаемого устройством.

[00010] В некоторых неограничивающих вариантах осуществления настоящей технологии, идентификаторы ресурсов представляют собой унифицированные указатели ресурсов (URL), связанные с веб-ресурсами.

[00011] В некоторых неограничивающих вариантах осуществления настоящей технологии, инициирующее событие определяется путем сравнения первого URL-адреса, связанного с выбранным веб-ресурсом, с URL-адресами области действия, связанной с веб-приложением.

[00012] В некоторых неограничивающих вариантах осуществления настоящей технологии, инициирующее событие представляет собой действие перехода от страницы результатов поиска (SERP) к выбранному ресурсу.

[00013] В некоторых неограничивающих вариантах осуществления настоящей технологии, связь совместно используемых частей записей с по меньшей мере двумя из веб-ресурсов определяется на основе связи первого из идентификаторов ресурсов, связанного с первым из по меньшей мере двух веб-ресурсов, и второго из идентификаторов ресурсов, связанного со вторым из по меньшей мере двух веб-ресурсов.

[00014] В некоторых неограничивающих вариантах осуществления настоящей технологии, связь основана на первом из идентификаторов ресурсов и втором из идентификаторов ресурсов, имеющих общий префикс.

[00015] В некоторых неограничивающих вариантах осуществления настоящей технологии, связь предварительно определена на основе параметров TF/IDF.

[00016] В некоторых неограничивающих вариантах осуществления настоящей технологии, связь предварительно определена на основе предварительно определенных n-грамм.

[00017] В некоторых неограничивающих вариантах осуществления настоящей технологии, запуск веб-приложения для взаимодействия включает в себя открытие веб-страницы, содержащей статический компонент и динамический компонент.

[00018] В некоторых неограничивающих вариантах осуществления настоящей технологии, статические данные, хранящиеся в локальном кэше, дополнительно определяют статический контент, уникальный для выбранного ресурса.

[00019] В некоторых неограничивающих вариантах осуществления настоящей технологии, извлечение веб-приложением из выбранного веб-ресурса динамического компонента включает в себя выполнение подпрограммы сценария Java, загружающей динамический компонент с сервера, связанного с выбранным веб-ресурсом.

[00020] В некоторых неограничивающих вариантах осуществления настоящей технологии, статический контент содержит по меньшей мере одну из страницы профиля социальной сети, новой страницы или страницы-шаблона.

[00021] В некоторых неограничивающих вариантах осуществления настоящей технологии, по меньшей мере одна совместно используемая часть записей, связанная с выбранным ресурсом, содержит первую совместно используемую часть записей, связанную с выбранным ресурсом, и вторую совместно используемую часть записей, связанную с выбранным ресурсом.

[00022] В соответствии со вторым широким аспектом настоящей технологии, предоставляется система для работы веб-приложения, причем система содержит компьютерно-читаемую память, хранящую инструкции, которые, при выполнении процессором системы, предписывают:

в ответ на инициирующее событие, запуск веб-приложения для взаимодействия с выбранным веб-ресурсом, причем инициирующее событие определяется на основе области действия, связанной с веб-приложением, при этом область действия включает в себя идентификаторы ресурсов, идентифицирующие веб-ресурсы;

доступ, веб-приложением, к локальному кэшу, хранящемуся в компьютерно-читаемой памяти устройства, причем локальный кэш содержит статические данные, при этом статические данные определяют совместно используемые части записей, каждая из совместно используемых частей записей связана с по меньшей мере двумя из веб-ресурсов, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов;

выбор, веб-приложением, среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом;

извлечение, веб-приложением, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом, причем извлеченные совместно используемые части определяют статический компонент для выбранного ресурса;

получение, веб-приложением, из выбранного веб-ресурса динамического компонента для выбранного ресурса; и

обработку, веб-приложением, статического компонента и динамического компонента для создания контента, отображаемого устройством.

[00023] В контексте настоящего описания "сервер" представляет собой компьютерную программу, которая работает на надлежащем аппаратном обеспечении и способна принимать запросы (например, от электронных устройств) по сети, а также выполнять эти запросы или вызывать выполнение этих запросов. Аппаратное обеспечение может быть одним физическим компьютером или одной физической компьютерной системой, но ни то, ни другое не является обязательным для настоящей технологии. В настоящем контексте использование выражения «по меньшей мере один сервер» не предназначено для обозначения того, что каждая задача (например, принятые инструкции или запросы) или любая конкретная задача будет принята, выполнена или вызвана для выполнения одним и тем же сервером (то есть одним и тем же программным и/или аппаратным обеспечением); подразумевается, что любое количество программных элементов или аппаратных устройств может быть вовлечено в прием/отправку, выполнение или вызов для выполнения любой задачи или запроса, или последствий любой задачи или запроса; и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, причем оба этих варианта включены в выражение «по меньшей мере один сервер».

[00024] В контексте настоящего описания, если специально не указано иное, слова "первый", "второй", "третий" и т.д. используются в качестве прилагательных только для того, чтобы позволить отличить существительные, которые они модифицируют, друг от друга, а не для описания какой-либо особой взаимосвязи между такими существительными. Таким образом, например, следует понимать, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо конкретного порядка, типа, хронологии, иерархии или ранжирования (например) таких серверов, равно как и их использование (само по себе) не означает, что какой-либо "второй сервер" должен обязательно существовать в любой определенной ситуации. Кроме того, как обсуждается в других контекстах данного документа, ссылка на "первый" элемент и "второй" элемент не исключает того, что эти два элемента фактически являются одним и тем же элементом реального мира. Таким образом, например, в некоторых случаях "первый" сервер и "второй" сервер могут быть одним и тем же программным обеспечением и/или аппаратным обеспечением, в других случаях они могут представлять собой разное программное обеспечение и/или аппаратное обеспечение.

[00025] В контексте настоящего описания, если специально не указано иное, "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программного обеспечения для администрирования базы данных, или компьютерного оборудования, на котором данные хранятся, реализуются или делаются доступными для использования иным образом. База данных может находиться на том же оборудовании, что и процесс, который хранит или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном оборудовании, например на выделенном сервере или множестве серверов.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[00026] Для лучшего понимания настоящей технологии, а также других аспектов и ее дополнительных признаков, приводится ссылка на нижеследующее описание, которое должно использоваться в сочетании с сопроводительными чертежами, на которых:

[00027] Фиг.1 иллюстрирует схематическую диаграмму системы, реализуемой в соответствии с неограничивающими вариантами осуществления настоящей технологии;

[00028] Фиг.2 изображает схематическую диаграмму электронного устройства, реализованного в соответствии с неограничивающими вариантами осуществления настоящей технологии;

[00029] На Фиг.3 и 4 показаны схематические изображения базы данных, хранящейся в локальном кэше; и

[00030] На Фиг.5 изображена блок-схема последовательности операций способа работы веб-приложения в соответствии с неограничивающими вариантами осуществления настоящей технологии.

Подробное описание

[00031] Обратившись к Фигуре 1, увидим, что проиллюстрирована схематическая диаграмма системы 100, причем система 100 подходит для реализации неограничивающих вариантов осуществления настоящей технологии. Следует четко понимать, что система 100 проиллюстрирована лишь как иллюстративная реализация настоящей технологии. Таким образом, нижеследующее описание предназначено лишь для того, чтобы использоваться в качестве описания иллюстративных примеров настоящей технологии. Это описание не предназначено для определения объема или ограничения настоящей технологии. В некоторых случаях то, что считается полезными примерами модификаций системы 100, также может быть изложено ниже. Это делается лишь для содействия пониманию и, кроме того, не для строгого определения объема или очерчивания границ настоящей технологии. Эти модификации не являются исчерпывающим списком и, как будет понятно специалисту в данной области техники, вероятно возможны другие модификации. Кроме того, если это не было сделано (то есть, когда примеры модификаций не были приведены), это не следует интерпретировать так, что никакие модификации не возможны и/или что описанное является единственным способом реализации этого элемента настоящей технологии. Специалисту в данной области техники будет понятно, что это, вероятно, не так. Кроме того, следует понимать, что в некоторых случаях система 100 может предоставлять простые реализации настоящей технологии, и что в таких случаях они представлены для помощи в понимании. Специалисты в данной области техники поймут, что различные реализации настоящей технологии могут иметь большую сложность.

[00032] Приведенные в данном документе примеры и условные формулировки призваны главным образом помочь читателю понять принципы настоящей технологии, а не ограничить ее объем такими конкретно приведенными примерами и условиями. Должно быть понятно, что специалисты в данной области техники смогут разработать различные механизмы, которые, хоть и не описаны в данном документе явным образом, тем не менее воплощают принципы настоящей технологии и включаются в ее суть и объем. Кроме того, нижеследующее описание может описывать реализации настоящей технологии в относительно упрощенном виде для целей упрощения понимания. Специалисты в данной области техники поймут, что различные реализации настоящей технологии могут иметь большую сложность.

[00033] Кроме того, все содержащиеся в данном документе утверждения, в которых указываются принципы, аспекты и реализации настоящей технологии, а также их конкретные примеры, призваны охватить как структурные, так и функциональные эквиваленты, вне зависимости от того, известны ли они в настоящее время или будут разработаны в будущем. Таким образом, например, специалисты в данной области техники осознают, что любые блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, воплощающей принципы настоящей технологии. Аналогичным образом, будет понятно, что любые блок-схемы, схемы последовательности операций, диаграммы переходов состояний, псевдо-коды и подобное представляют различные процессы, которые могут быть по существу представлены на считываемых компьютерам носителях и таким образом исполнены компьютером или процессором вне зависимости от того, показан такой компьютер или процессор явным образом или нет.

[00034] Функции различных элементов, показанных на фигурах, в том числе любого функционального блока, помеченного как "процессор", могут быть обеспечены с помощью специализированного аппаратного обеспечения, а также аппаратного обеспечения, способного исполнять программное обеспечение и связанного с надлежащим программным обеспечением. При обеспечении процессором, функции могут быть обеспечены одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут быть совместно используемыми. В некоторых вариантах осуществления настоящей технологии процессор может быть процессором общего назначения, таким как центральный процессор (CPU) или процессор, выделенный для конкретной цели, например графический процессор (GPU). Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как относящееся исключительно к аппаратному обеспечению, способному исполнять программное обеспечение, и может в неявной форме включать в себя, без ограничений перечисленным, аппаратное обеспечение цифрового сигнального процессора (DSP), сетевой процессор, интегральную схему специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянную память (ROM) для хранения программного обеспечения, оперативную память (RAM) и энергонезависимое хранилище. Другое аппаратное обеспечение, традиционное и/или специализированное, также может быть включено в состав.

[00035] Учитывая эти основополагающие вещи, рассмотрим некоторые неограничивающие примеры, чтобы проиллюстрировать различные реализации аспектов настоящей технологии.

[00036] Система 100 содержит электронное устройство 102. Электронное устройство 102 обычно ассоциируется с пользователем (не изображен) и, как таковое, иногда может упоминаться как "клиентское устройство". Следует отметить, что тот факт, что электронное устройство 102 ассоциировано с пользователем, не означает, что предполагается или подразумевается какой-либо режим работы - такой как необходимость входа в систему, необходимость регистрации или тому подобное.

[00037] В контексте настоящего описания, если не указано иное, "электронное устройство" представляет собой любое компьютерное аппаратное обеспечение, которое способно выполнять программное обеспечение, подходящее для соответствующей рассматриваемой задачи. Таким образом, некоторые (не ограничивающие) примеры электронных устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в данном контексте тот факт, что устройство функционирует как электронное устройство, не означает, что оно не может функционировать как сервер для других электронных устройств. Использование выражения "электронное устройство" не исключает использования многочисленных клиентских устройств при приеме/отправке, выполнении или вызове для выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.

[00038] Обратившись одновременно на фиг. 1 и 2, увидим, что электронное устройство 102 может содержать один или несколько запоминающих носителей 104, 105, 107 и обычно предоставляет место для хранения команд исполняемых компьютером программ, выполняемых одним или процессорами 106. В качестве примера, один или несколько запоминающих носителей данных могут быть реализованы как материальные компьютерно-читаемые запоминающие носители данных, включая в себя оперативную память (RAM). Один или несколько запоминающих носителей 104, 105, 107 могут также включать в себя одно или несколько постоянных запоминающих устройств в форме постоянного хранилища 105. Постоянное хранилище 105 может включать в себя один или более запоминающих носителей и, как правило, обеспечивает место для хранения исполняемых компьютером инструкций, исполняемых процессором 106. В качестве примера постоянное хранилище 105 может быть реализовано как компьютерно-читаемый запоминающий носитель данных, включая в себя постоянное запоминающее устройство (ROM), жесткие диски (HDD), твердотельные накопители (SSD) и карты флэш-памяти.

[00039] Электронное устройство 102 содержит аппаратные средства, и/или программное обеспечение, и/или микропрограммное обеспечение (или их комбинацию), как известно в данной области техники для выполнения приложения 108 браузера. Вообще говоря, цель приложения 108 браузера состоит в том, чтобы позволить пользователю (не изображен) получить доступ к одному или нескольким веб-ресурсам. Способ реализации приложения 108 браузера известен в данной области техники и здесь не описывается. Достаточно сказать, что приложение 108 браузера может быть одним из браузера Google™ Chrome™, браузера Yandex.Browser™ или других коммерческих или проприетарных браузеров.

[00040] Независимо от того, как реализовано приложение 108 браузера, приложение 108 браузера обычно имеет командный интерфейс 110 и интерфейс 112 просмотра. Вообще говоря, пользователь (не изображен) может получить доступ к веб-ресурсу через сеть связи двумя основными способами. Данный пользователь может получить доступ к конкретному веб-ресурсу напрямую, либо введя адрес веб-ресурса (обычно URL-адрес или универсальный указатель ресурсов, например www.example.com) в командный интерфейс 110, либо щелкнув ссылку в электронном письме или в другом веб-ресурсе (это действие будет в некотором смысле «копировать и вставлять» URL-адрес, связанный со ссылкой, в командный интерфейс 110).

[00041] В качестве альтернативы, данный пользователь может проводить поиск, используя службу поисковой машины (не изображена), чтобы найти интересующий ресурс на основе поискового намерения пользователя. Последний особенно подходит в тех случаях, когда данный пользователь знает интересующую его тему, но не знает URL-адрес интересующего его веб-ресурса. Поисковая система обычно возвращает страницу результатов поисковой системы (SERP), содержащую ссылки на один или несколько веб-ресурсов, которые отвечают на запрос пользователя. Кроме того, после того, как пользователь щелкнет одну или несколько ссылок, представленных в поисковой выдаче, пользователь может открыть требуемый веб-ресурс.

[00042] Также на фиг. 1 показано веб-приложение 113. Как будет дополнительно обсуждено в данном документе ниже, веб-приложение 113 может частично или полностью управляться приложением 108 браузера. В некоторых вариантах осуществления веб-приложение 113 является прогрессивным веб-приложением (PWA), которое может быть определено как подмножество веб-приложений, предназначенных для работы на любой платформе, которая использует приложение браузера, соответствующее стандартам, включая в себя настольные и мобильные устройства. В некоторых вариантах осуществления, PWA использует общие веб-технологии, такие как, но без ограничения перечисленным, HTML, CSS и/или JavaScript.

[00043] Электронное устройство 102 содержит интерфейс связи (не показан) для двусторонней связи с сетью 114 связи через канал 116 связи. В некоторых вариантах осуществления, интерфейс связи является частью набора интерфейсов 109 ввода/вывода. В некоторых неограничивающих вариантах осуществления настоящей технологии, сеть 114 связи может быть реализована как Интернет. В других вариантах осуществления настоящей технологии, сеть 114 связи может быть реализована иначе, например как какая-либо глобальная сеть связи, локальная сеть связи, частная сеть связи и тому подобное.

[00044] То, как канал 116 связи реализуется, специально не ограничено и зависит от того, как реализовано электронное устройство 102. Просто в качестве примера, а не ограничения, в тех вариантах осуществления настоящей технологии, где электронное устройство 102 реализовано как устройство беспроводной связи (например, смартфон), канал 116 связи может быть реализован как канал беспроводной связи (например, но не ограничиваясь перечисленным, канал связи 3G, канал связи 4G, Wireless Fidelity или для краткости WiFi®, Bluetooth® или т.п.) или проводной (например, соединение на основе Ethernet).

[00045] Следует четко понимать, что реализации для электронного устройства 102, канала 116 связи и сети 114 связи предоставлены лишь в иллюстративных целях. Таким образом, специалисты в данной области техники легко оценят другие конкретные детали реализации электронного устройства 102, канала 116 связи и сети 114 связи. Как таковые, примеры, представленные в настоящем документе выше, никоим образом не предназначены для ограничения объема настоящей технологии.

[00046] Система 100 дополнительно включает в себя серверы 140, 150 и 160, подключенные к сети 114 связи. Серверы 140-160 могут быть реализованы как обычные компьютерные серверы. В примере варианта осуществления настоящей технологии, серверы 140-160 могут быть реализованы как сервер Dell™ PowerEdge™, работающий под управлением операционной системы Microsoft™ Windows Server™. Само собой разумеется, что серверы 140-160 могут быть реализованы в любом другом подходящем аппаратном и/или программном и/или встроенном программном обеспечении или их комбинации. В изображенном неограничивающем варианте осуществления настоящей технологии, каждый из серверов 140-160 является одним сервером. В альтернативных неограничивающих вариантах осуществления настоящей технологии, функциональные возможности каждого из серверов 140-160 могут быть распределены и могут быть реализованы на нескольких серверах.

[00047] Реализация серверов 140-160 хорошо известна. Однако, вкратце, серверы 140-160 содержат интерфейс связи (не показан), структурированный и сконфигурированный для связи с различными объектами (такими как электронное устройство 102 и другие устройства, потенциально подключенные к сети 114 связи). Подобно электронному устройству 102, каждый из серверов 140-160 содержит запоминающие устройства 142, 152 и 162 сервера, которые содержат один или несколько запоминающих носителей данных и обычно предоставляют место для хранения команд исполняемых компьютером программ, выполняемых процессорами 144, 154 и 164 сервера. В качестве примера, запоминающие устройства 142, 152 и 162 сервера могут быть реализованы как материальный компьютерно-читаемый запоминающий носитель данных, включающий в себя постоянное запоминающее устройство (ПЗУ) и/или оперативное запоминающее устройство (ОЗУ). Запоминающие устройства 142, 152 и 162 сервера также могут включать в себя одно или несколько постоянных запоминающих устройств в виде, например, жестких дисков (HDD), твердотельных накопителей (SSD) и карт флэш-памяти.

[00048] В некоторых вариантах осуществления, каждый из серверов 140-160 может управляться тем же объектом, который предоставил вышеописанное приложение 108 браузера. Например, если приложение 108 браузера является браузером Яндекс.Браузер™, по меньшей мере один из серверов 140-160 может управляться ООО «Яндекс» расположенным по адресу: Россия, 119021, Москва, улица Льва Толстого, 16. В альтернативных вариантах осуществления один из серверов 140-160 может управляться объектом, отличным от того, который предоставил вышеупомянутое приложение 108 браузера.

[00049] В некоторых вариантах осуществления настоящей технологии и вообще говоря, каждый из серверов 140-160 функционирует как репозиторий для выделенных веб-ресурсов 144, 154, 164. В других вариантах осуществления, каждый из серверов 140-160 может быть связан с множеством веб-ресурсов (например, сервер 140 может размещать веб-ресурсы 144 и 154). В еще других вариантах осуществления, данный веб-ресурс может быть связан с множеством серверов 140-160 (например, веб-ресурс 144 может быть размещен на серверах 140 и 150). В контексте настоящего описания термин «веб-ресурс» относится к любому сетевому ресурсу (например, веб-странице, веб-сайту или веб-службе), контент которого визуально представляется электронным устройством 102 пользователю через приложение 108 браузера и связанное с конкретным веб-адресом (например, URL-адресом).

[00050] Как будет описано выше, каждый из множества серверов 140-160 может хранить контент, необходимый для работы сетевых ресурсов, в базах данных 146, 156, 166, каждый из которых связан с одним или более из множества серверов 140-160. Контент, хранящийся в базах данных 146-166, может принимать, например, но без ограничения перечисленным, форму HTML, сценариев Java (JavaScripts), изображений или видео документов. Вообще говоря, контент, хранящийся в базах данных 146-166, можно разделить на две категории: статический контент и динамический контент.

[00051] В некоторых вариантах осуществления, статический контент может быть предназначен для загрузки после первого подключения электронного устройства 102 к одному из серверов 140-160. Статический контент затем может храниться в локальном кэше 103 электронного устройства 102, чтобы впоследствии повторно использоваться электронным устройством 102 без необходимости повторной загрузки с одного из серверов 140-160. Напротив, динамический контент также может быть загружен с серверов 140-160, но по определению не предназначен для хранения в локальном кэше 103. Напротив, динамический контент должен загружаться снова с серверов 140-160 каждый раз, когда электронному устройству 102 требуется доступ к такому контенту.

[00052] Обратившись теперь одновременно к фиг. 1 и 3 увидим, что показаны примеры структуры данных, хранящейся в локальном кэше 104, которые будут дополнительно описаны. В некоторых вариантах осуществления, структура данных может иметь форму двух баз данных 180, 190, управляемых веб-приложением 113. Как может понять специалист в данной области техники, термин «база данных» можно в широком смысле определить как совокупность или регистр структурированных или неструктурированных данных. В проиллюстрированных вариантах осуществления, база 180 данных также может упоминаться как «область действия» или «манифест» для передачи концепции охвата, связанной с веб-приложением 113, которое управляет базой данных 180. В некоторых вариантах осуществления, база 180 данных может принимать форму списка URL-адресов, которые могут обновляться веб-приложением 113 и на которые можно полагаться для определения инициирующего события, которое приводит к «активации» веб-приложения и взаимодействию с заданным веб-ресурсом. В качестве неограничивающего примера, инициированием запуска веб-приложения 113 может быть просмотр пользователем электронного устройства 102 из SERP (например, щелчок по ссылке, связанной с веб-ресурсом), который, фактически, становится веб-ресурсом, выбранным пользователем. Веб-приложение 113 может определить, что выбранный веб-ресурс указан в базе 180 данных, и в результате определяет, что выбор веб-ресурса пользователем является инициирующим событием, для которого должно быть запущено веб-приложение 113. Следует понимать, что мониторинг инициирующего события может выполняться самим веб-приложением 113 или, альтернативно, программным компонентом, работающим вне веб-приложения (например, управляемым операционной системой электронного устройства 102). Под «запуском» следует понимать то, что веб-приложение 113 может работать в фоновом режиме (то есть быть невидимым для пользователя электронного устройства 102) и переводиться в «активный» режим в ответ на инициирующее событие. В альтернативных вариантах осуществления, веб-приложение 113 может не работать и фактически запускается при обнаружении инициирующего события.

[00053] Хотя вариант осуществления, показанный на фиг. 3, показывает базу данных 180, заполненную списком унифицированных указателей ресурсов (URL-адресов), следует понимать, что могут использоваться другие типы идентификаторов веб-ресурсов, такие, но без ограничения перечисленным, как адреса Интернет-протокола (IP), или также могут быть даже предопределены путем связывания идентификатора с веб-ресурсом. В некоторых вариантах осуществления такое связывание основано на параметрах TF/IDF или заранее определенных n-граммах. Кроме того, инициирующее событие может происходить в ответ на действия, отличные от выбора веб-ресурса из поисковой выдачи, например, в ответ на ввод пользователем URL-адреса в приложении 108 браузера. Другими событиями могут быть автоматический запуск веб-приложения 113, организованный операционной системой электронного устройства 102, или в ответ на действие, выполняемое пользователем. В других вариантах осуществления, связывание между идентификатором и веб-ресурсом основано на наличии последовательности символов в строке или обычных фразах. В других вариантах осуществления, связывание основано на URL-фильтрах, закодированных в Javascript, таких как функция «hostContains», которая соответствует, если имя хоста URL-адреса содержит указанную строку. Также могут использоваться другие функции, дополнительно описанные на https://developer.chrome.com/docs/extensions/reference/events/#type-UrlFilter, содержание которых включено сюда посредством ссылки.

[00054] В некоторых вариантах осуществления, запуск веб-приложения 113 в ответ на инициирующее событие также включает в себя доступ к базе данных 190, в которой хранится статический контент, связанный с веб-ресурсами, перечисленными в базе 180 данных. В качестве примера, в ответ на щелчок пользователя по заданному URL-адресу, веб-приложение 113 запускается, поскольку оно определило, что URL-адрес находился в его «области действия». Поскольку веб-ресурс указан в базе данных 180, веб-приложение 113 напрямую обращается к базе 190 данных для извлечения контента вместо прямого обращения к веб-ресурсу. Другими словами, к контенту, определенному как статический, осуществляется прямой доступ из локального кэша 104 вместо загрузки из веб-ресурса через сеть. В результате, веб-приложение 113, определив, что статический контент, связанный с веб-ресурсом, уже сохранен в локальном кэше, извлекает его из локального кэша, тем самым избегая любой задержки или задержки, связанной с загрузкой такого контента с удаленного сервера, на котором размещен веб-ресурс.

[00055] Область действия (например, список URL-адресов) может быть обширной. В результате хранение выделенного статического контента для каждой записи области действия может оказаться обременительным и требовательным с точки зрения объема памяти и/или ресурсов обработки. Настоящая технология решает эту проблему, поскольку несколько записей области действия могут иметь одинаковый или общий префикс. Например, первый URL-адрес «yandex.forcast.ru/moscow» и второй URL-адрес «yandex.forcast.ru/tver» имеют одинаковый префикс «yandex.forcast.ru». Контент веб-страниц, связанных с веб-ресурсами, на которых размещены первый и второй URL-адреса, можно разделить на статический контент и динамический контент. Как объяснялось ранее, статический контент может содержать контент, общий для нескольких веб-ресурсов. В этом примере, поскольку первый и второй URL-адреса имеют один и тот же префикс, статический контент определяется как одинаковый для первого и второго URL-адресов. В результате можно сказать, что статический контент является одним и тем же для множества веб-ресурсов (например, веб-страниц с шаблонами, на которых представлены прогнозы погоды), в то время как динамический контент может быть специфическим для данного веб-ресурса. В приведенном выше примере, динамический контент может содержать фактическую информацию о погоде (например, температуру, уровень влажности и т.д.), которая характерна для данного места и связанного с ним URL. Инициирование загрузки динамического контента может быть основано на инструкциях JavaScript, считанных из локального кэша 104 или доступных из веб-ресурса.

[00056] Как видно из фиг. 3, база данных 190, хранящаяся в локальном кэше 104, связывает первый и второй URL-адреса с одним и тем же статическим контентом «статический контент - 1». В результате первый ресурс, связанный с первым URL-адресом, и второй ресурс, связанный со вторым URL-адресом, совместно используют аналогичный статический контент. В некоторых вариантах осуществления, статический контент может содержать статические компоненты, например, но без ограничения перечисленным, шаблоны веб-страниц, изображения и т.д. Можно сказать, что статический контент является собственным кэшем, который, например, может быть установлен приложением 108 браузера и/или веб-приложением 113. Собственный кэш может хранить несколько шаблонов для нескольких страниц. В некоторых вариантах осуществления, содержимое базы 190 данных может быть заполнено на основе набора правил, образующих манифест. В манифесте может быть указано, какой шаблон может быть связан с другими веб-страницами. В некоторых вариантах осуществления, поскольку статический контент совместно используется несколькими веб-ресурсами, статический контент называется совместно используемым статическим контентом и/или содержит совместно используемые статические компоненты. Другими словами, несколько веб-ресурсов совместно используют части записей, хранящихся в локальном кэше 104, для совместно используемых статических компонентов.

[00057] Обратившись теперь к фиг. 4 увидим, что показан альтернативный пример структуры данных, хранящейся в локальном кэше 104 и называемой базой 490 данных. Как может оценить специалист в данной области техники, части записей (например, «совместно используемая запись 1», «совместно используемая запись 2», «совместно используемая запись 4») связаны с несколькими ресурсами (например, «ресурс 1» и «ресурс 2»). В этом примере «совместно используемая запись 1» связана как с «ресурсом 1», так и «ресурсом 2». Другими словами, «совместно используемая запись 1» представляет собой избыточную статическую часть данных, которая имеет отношение как к «ресурсу 1», так и «ресурсу 2». В результате этой связи, статическая часть данных не должна храниться дважды в локальном кэше 104 (т.е. нет необходимости сохранять первый раз по отношению к «ресурсу 1» и второй раз по отношению к «ресурсу 2»). Содержимое базы 490 данных может быть определено до запуска веб-приложения 113. Например, разработчик веб-контента может создавать для ресурсов, имеющих общий префикс (или другие типы связи между ресурсами, как упоминалось ранее), один и тот же статический контент, содержащий множество совместно используемых частей записей (например, один и тот же шаблон веб-страницы, одно и то же фоновое изображение, страницы профиля в социальных сетях или страницы новостей и т.д.).

[00058] Таким образом, во время работы веб-приложение 113 может запрашивать локальный кэш 104 для извлечения статического контента, при этом статический контент связан с множеством ресурсов, поэтому позволяет уменьшить размер локального кэша 104, поскольку он не хранит контент, который является избыточным среди множества ресурсов. Кроме того, веб-приложение 113 также может определять, что динамический контент необходимо загружать непосредственно с веб-ресурса. В некоторых вариантах осуществления, это определение может быть сделано после того, как установлено, что контент недоступен в локальном кэше 104 и, следовательно, должен быть загружен. В некоторых других вариантах осуществления, база 490 данных содержит указание на то, что динамический контент должен быть загружен из связанного ресурса. Кроме того, база 490 данных также может содержать статический контент, который специфичен для данного ресурса (т.е. не используется совместно множеством ресурсов).

[00059] В некоторых вариантах осуществления, как только веб-приложение 113 получило доступ как к статическому, так и к динамическому контенту, оно может сгенерировать контент, который будет отображаться на дисплее электронного устройства 102, например, путем объединения статического контента и динамического контента для формирования контента (например, веб-страницы, представляющей прогноз для данного местоположения, стартовой страницы социальной сети), который будет отображаться пользователю.

[00060] Возвращаясь к примеру прогноза погоды, инициирующим событием может быть переход пользователя по ссылке, представленной SERP, и переход на веб-ресурс «yandex.forcast.ru/moscow». Инициирующее событие может быть основано на определении того, что веб-ресурс находится в пределах области действия веб-приложения 113. В ответ на инициирующее событие, веб-приложение 113 обращается к локальному кэшу 104 и извлекает статические данные, определяющие общие части записей, то есть части записей, которые совместно используются веб-ресурсом «yandex.forcast.ru/moscow» и по меньшей мере другим веб-ресурсом (например, «yandex.forcast.ru/tver»). Как только статические данные получены, веб-приложение 113 также обращается к веб-ресурсу для получения динамических данных, специфичных для выбранного веб-ресурса. Затем веб-приложение 113 обрабатывает как статические, так и динамические компоненты для отображения пользователю электронного устройства 102.

[00061] В качестве неограничивающего примера приведем ниже образец манифеста, определяющий совместно используемые части записей, к которым будет осуществляться доступ из локального кэша (например, также называемый «белым списком»), и динамический контент, который должен быть загружен с веб-ресурса (например, также называемый «черным списком»). Как может оценить специалист в данной области техники, манифест может быть воплощен как формат файла на основе JSON, который предоставляет разработчикам централизованное место для размещения метаданных, связанных с веб-приложением. Эти метаданные включают в себя, помимо прочего, имя веб-приложения, ссылки на значки, а также предпочтительный URL-адрес, который следует открывать, когда пользователь запускает веб-приложение. Манифест также может позволить разработчикам объявить ориентацию экрана по умолчанию для своего веб-приложения, а также предоставить возможность устанавливать режим отображения для приложения (например, в полноэкранном режиме). Кроме того, манифест может позволить разработчику «привязать» веб-приложение к URL-адресу. Это ограничивает URL-адреса, к которым применяется манифест, и предоставляет средства для «глубокой ссылки» на веб-приложение из других приложений. Кроме того, в соответствии с некоторыми вариантами осуществления, область действия может быть определена как область навигации манифеста, содержащая элементы области действия обработанного манифеста. Область навигации может ограничивать набор URL-адресов, по которым можно перемещаться по контексту приложения во время применения манифеста. Более подробная информация о том, как может быть реализована область действия, доступна по адресу https://www.w3.org/TR/appmanifest/#dfn-navigation-scope, содержание которой включено сюда посредством ссылки.

[00062] Пример манифеста доступен по URL-адресу «https://weather.tap.yandex.ru/manifest.json». Содержание которого воспроизводится ниже.

{

"name": "Яндекс.Погода",

"short_name": "Погода",

"icons": [

{

"src": "https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/favicon.png",

"type": "image/png",

"sizes": "512x512"

},

{

"src": "https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/favicon.svg",

"type": "image/svg+xml"

}

],

"lang": "ru",

"start_url": "https://yandex.ru/pogoda",

"yandex": {

"manifest_version": 1,

"base_url": "https://yandex.ru/pogoda",

"splash_screen_color": "#fff",

"app_version": "20201130.1517",

"cache": {

"pages": [

{

"url": "redirect_to_network",

"filters": [

{

"pathEquals": "/pogoda/map"

},

{

"pathEquals": "/pogoda/map/"

},

{

"pathEquals": "/pogoda/maps"

},

{

"pathEquals": "/pogoda/maps/"

},

{

"pathPrefix": "/pogoda/maps/"

},

{

"pathPrefix": "/pogoda/404"

},

{

"pathPrefix": "/pogoda/error"

},

{

"pathPrefix": "/pogoda/nowcast"

},

{

"pathPrefix": "/pogoda/meteum"

},

{

"pathPrefix": "/pogoda/compare"

},

{

"pathPrefix": "/pogoda/informer"

},

{

"pathPrefix": "/pogoda/favorites"

},

{

"pathPrefix": "/pogoda/find"

},

{

"pathPrefix": "/pogoda/segment/details"

},

{

"pathPrefix": "/pogoda/widgets/morda"

}

]

},

{

"url": "/pogoda/turboapp",

"filters": [

{

"pathEquals": "/pogoda"

},

{

"pathEquals": "/pogoda/"

},

{

"pathEquals": "/pogoda/details"

},

{

"pathEquals": "/pogoda/details/"

},

{

"pathPrefix": "/pogoda/search"

},

{

"pathPrefix": "/pogoda/month"

},

{

"pathPrefix": "/pogoda/month/"

},

{

"pathPrefix": "/pogoda/region"

},

{

"pathPrefix": "/pogoda/region/"

},

{

"originAndPathMatches": "^(?P<schema>https://)(?P<subdomain>[\\w-\\.]+\\.)?(?P<domain>yandex\\.ru)/(?P<service>pogoda)/(?P<slug>[\\w-]+)?/?((?P<details>details/?(?P<day>today|tomorrow|day-\\d)?/?)|(?P<month>month/?(?P<monthname>january|february|march|april|may|june|july|august|september|october|november|december)?/?))?$"

}

]

}

],

"resources": [

"https://yandex.ru/pogoda/turboapp",

"https://mc.yandex.ru/metrika/tag_turboapp.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/index.html",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/loadable-stats.json",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/0.30278c65.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/1.b0f1e724.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/3.6c7088c8.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/details-screen.fc4114da.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/forecast_collapsed.f9ad49c0.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/main-screen.381260fe.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/main.335078b4.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/maps-widget.89db3ff7.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/month-screen.6ab368f9.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/months-card.b6db34d0.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/region-screen.a80b3ac4.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/css/search-screen.98e0c2a1.chunk.css",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/0.88e73dc1.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/1.c8fc469e.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/2.b36aa31b.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/3.7018e5ca.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/details-screen.6f352768.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/forecast_collapsed.f5660f41.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-be.b144eabc.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-en.a6e36625.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-kk.de74da27.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-ru.00f73de6.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-tr.7a7256aa.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-uk.a607d92c.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/i18n-uz.4ff88dd5.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/main-screen.4dafdd7d.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/main.ea227dc5.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/maps-widget.d9da936b.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/month-screen.ebdae519.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/months-card.dd8ecbde.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/polyfill-abortcontroller.b6e36ed6.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/polyfill-es.dab437b7.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/polyfill-fetch.ae7e4cf2.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/polyfill-intersection-observer.f2dfa2b7.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/polyfill-url-search-params.175dbe01.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/region-screen.e8dd60c5.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/rum-debug.b2bdc48e.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/runtime-main.06cf34aa.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/js/search-screen.7dbe5ad6.chunk.js",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/-bl.028288d8.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/-bl.a6cb246e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/-bl.d33be55f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/arrow-gray-redesign.258d2a91.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/arrow-gray.74e4c786.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/arrow-white.fd6c98a0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/be-default.b6d8e303.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/be-white.961229d1.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_d.608b199a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_d.dd1ef551.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_d.fb683ff3.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_n.0562d14d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_n.0d6f060e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+ra_n.60e61d82.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_d.02499ce7.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_d.7463e196.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_d.76c4c825.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_n.2b5aa593.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_n.6939fb6f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_+sn_n.ea449589.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_d.99bc093e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_d.b4fb0298.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_d.d4ff9444.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_n.6d0b97e6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_n.720dfb08.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-ra_n.9846218d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_d.3f071e16.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_d.567d3e92.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_d.6276bbad.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_n.2c629598.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_n.50b752a6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_-sn_n.c2a79ba0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_d.0e44f60d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_d.507ed893.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_d.745809a3.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_n.9c5fae5d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_n.cb92099e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_n.dbdec1f6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_d.3ffded79.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_d.6d58981e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_d.c8466286.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_n.0221a313.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_n.b961479a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_ra_n.f736a5c3.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_d.1df5a23a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_d.c252f568.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_d.ef0c3b57.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_n.12aaa823.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_n.eff41c26.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bkn_sn_n.f0d05bcf.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bl.086fda5c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bl.4e2c6f89.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/bl.9f31071f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/burger.7d5bebe9.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-black.526700dd.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-black_new.78903e35.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-blue.3f49a22d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-gray.7060794c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-red.cd41dd4f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-red_new.5f8ccd1c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/chevron-white.5c56a16e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/cross-black.a6126943.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/cross-filled.84d4e8c5.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/cross.9240c3e2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/current-location-dark.68731771.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/current-location-light.0347faaa.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/dst.2ec834f2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/dst.95de009c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/dst.9fac3e22.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_st.748c564b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_st.7881e1a4.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_st.e80594e7.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_ts.361caa71.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_ts.363b5d1f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/du_ts.7f0c1cae.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/en-default.eaa3a086.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/en-white.4c9604a4.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+ra.17812e03.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+ra.8890d812.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+ra.ad5c39ee.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+sn.1acdd3dd.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+sn.39a24593.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_+sn.dd5f5edc.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_-ra.0553ada6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_-ra.2885fdbe.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_-ra.b85bf99c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_-sn.4b370673.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_-sn.71a22827.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra.15ff528e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra.6dbad07a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra.cc9bca3c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra_sn.57ec19cf.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra_sn.5f12815b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ra_sn.ead0bdef.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn.0055e178.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn.2a4c5487.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn.ffea84cf.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_dwn.141f01ad.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_dwn.2da9aa13.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_dwn.61f16380.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_rs.15a4382a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_rs.c45e30a0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_sn_rs.eb0495e0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts.9ab6ba36.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts.a3e689b2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts.bfccee93.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts_ra.68f07e6c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts_ra.a4969a66.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fct_ts_ra.d6875132.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_d.65b834f6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_d.79beebf8.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_d.d84c2c49.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_n.3966622b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_n.7e39209d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/fg_n.c7d0413a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/flare.ea064673.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/humidity-filled.982ec59e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/humidity-redesign.5c57a7c1.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/humidity.7a705302.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/humidity_white.25b56b8d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/kk-default.d26e23f8.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/kk-white.5ca48da7.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/like.32764b9c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/map-fallback.216749d1.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/meteum.7d80d76b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/month.00bde7dc.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/no-location-dark.74a82c11.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/no-location-light-redesign.5eb1bbed.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/no-location-light.a619d121.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/nowcast.6250f867.jpg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc.4ec8ae47.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc.69a2808b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc.a5966b7a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+ra.65bc7910.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+ra.7b93d1b4.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+ra.f35484b2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+sn.0b9ae39d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+sn.5634a808.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_+sn.d74a796a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-ra.d145b1a0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-ra.ea8ef392.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-ra.fa55df18.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-sn.76aa35f9.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-sn.d210c2c9.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_-sn.dc7bf687.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ha.13486786.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ha.978cef61.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ha.ad86c15a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra.12a8d11d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra.15fb4e51.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra.d855df85.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_ice.105950ea.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_ice.36701d9d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_ice.81478aae.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_sn.0bd33083.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_sn.1649b1ef.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ra_sn.7c416d4e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_sn.1441e82d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_sn.54905698.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_sn.af42c17b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts.1c585f6c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts.b2636871.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts.d611b31c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ha.185ea262.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ha.30b29061.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ha.91ebfed9.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ra.114d6344.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ra.4bf05ed5.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ovc_ts_ra.b8fc7076.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/pressure-redesign.3d318cb2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/pressure-white-redesign.dd782f10.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/pressure.0c3d1865.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/pressure.9d40b83d.jpg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/pressure_white.b7eb9911.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/rain-day.41a23b3b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/rain-level.79e72148.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/rain-night.900cff83.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ru-default.2515785c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/ru-white.fc7359fe.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/search-gray.1520e96f.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/search-white-redesign.e0333865.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/search-white.ce089e28.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/search.3a5783a9.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/settings_app.1d204d63.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_d.5e1afb19.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_d.78152027.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_d.88ac982b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_n.5c920051.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_n.8f8938ec.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/skc_n.d081a629.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/smog.470fa20a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/smog.7d39411b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/smog.bf43f74b.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/stars1.2d3d0b98.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/stars2.364ba012.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/strm.19a1e2b1.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/strm.23f29724.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/strm.6e335a80.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/temp-water.0c77e142.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/temperature.5bcd7d4d.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/temperature.aca37006.jpg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tick.59a1e6b7.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tick.f6ad79d5.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tr-default.0a2b543a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tr-white.68331cb0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-calm.7779ca41.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-high.0d8c85cf.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-light.af4a567c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-medium.7748c553.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-storm.b5eba3e3.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-upper-high.035652a0.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/tree-upper-medium.4c6b0b61.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/uk-default.2515785c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/uk-white.fc7359fe.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/uz-default.0a3c586c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/uz-white.942c1a3e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/vlka.207da926.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/vlka.b23fd8f5.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/vlka.dc99e519.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/warning-redesign.d12a3449.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/warning.932ed10a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/water-redesign.3007c7cf.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/water.ed689628.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/waterBg.66ab20d2.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/water_blue.14835797.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/water_white.20dfc200.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/wind-airflow.d772d673.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/wind-redesign.1a631bd6.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/wind.178b0e8e.jpg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/wind.aa003f5e.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/wind_white.b6a2a21a.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_nowcast-white.8692a164.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_nowcast.bc599b3c.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_pressure-white.b4b6ed96.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_pressure.cbf725e3.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_temperature-white.26ce61c1.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_temperature.9eb10e66.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_wind-white.8645df68.svg",

"https://yastat.net/s3/tap/weather/v0.193.0-cff1a81b7a7d41be1bd157cf3fdcea4b1960a5eb.0/static/media/yw-maps-widget__tab-icon_layer_wind.d6630a72.svg",

"https://yastatic.net/react/16.8.4/react-with-dom.min.js",

"https://yastatic.net/s3/home/fonts/ys/1/text-bold.woff2",

"https://yastatic.net/s3/home/fonts/ys/1/text-medium.woff2",

"https://yastatic.net/s3/home/fonts/ys/1/text-regular.woff2"

]

}

}

}

[00063] В приведенном выше примере эта часть представляет собой «черный список»:

"url": "redirect_to_network",

"filters": [

{

"pathEquals": "/pogoda/map"

[00064] Другими словами, запрос к подкаталогу /pogoda/map не будет подвергаться сопоставлению URL и будет поиском как есть. В этом примере, манифест настроен так, что подкаталог /pogoda/map запроса определяется как динамический контент и, следовательно, должен извлекаться из веб-ресурса, а не из локального кэша 104.

[00065] С другой стороны, в этом примере:

"url": "/pogoda/turboapp",

"filters": [

{

"pathEquals": "/pogoda"

[00066] Запрос к подкаталогу /pogoda будет заменен URL-адресом /pogoda/turboapp, который будет искать в сохраненном шаблоне статический контент в локальном кэше 104. Следует отметить, что сохраненный шаблон для статического контента может храниться в одном типе кэша, который отделен от кэша HTML. Другими словами, в некоторых вариантах осуществления, локальный кэш 104 является отдельным кэшем от кэша HTML, связанного с приложением 108 браузера. Точно так же кэш HTML, связанный с приложением 108 браузера, может хранить фактические недавно посещенные веб-страницы. Таким образом, в зависимости от времени запроса для данного пользовательского запроса статический контент может быть извлечен из локального кэша 104, в то время как динамический контент может быть извлечен из кэша HTML (например, если страница была недавно посещена и сохранена в кэше HTML). Таким образом, запрошенная страница может быть собрана без необходимости вообще обращаться к серверу, связанному с веб-ресурсом.

[00067] В других примерах, где запрошенная страница не была недавно посещена. Статический контент может быть получен из локального кэша 104, а динамический контент может быть получен с сервера, связанного с веб-ресурсом.

[00068] В некоторых вариантах осуществления, поиск статического и/или динамического контента выполняется в ответ на часть манифеста, соответствующую URL-адресу, и не выполняется, если запрошенный URL-адрес находится в черном списке.

[00069] Учитывая архитектуру и примеры, представленные в данном документе выше, можно выполнить реализованный на компьютере способ работы веб-приложения, в частности PWA, такого как веб-приложение 113, описанное выше. Со ссылкой на Фиг. 5 проиллюстрирована блок-схема последовательности операций способа 500, причем способ 500 может быть исполнен в соответствии с неограничивающими вариантами осуществления настоящей технологии. Способ 500 может выполняться электронным устройством 102.

[00070] Этап 502 - запуск веб-приложения для взаимодействия с выбранным веб-ресурсом.

[00071] Способ 500 начинается на этапе 502, где электронное устройство 102 запускает веб-приложение 113 для взаимодействия с выбранным веб-ресурсом. В некоторых вариантах осуществления запуск осуществляется в ответ на инициирующее событие. В некоторых вариантах осуществления инициирующее событие определяется на основе области действия, связанной с веб-приложением, причем область действия включает в себя идентификаторы ресурсов, идентифицирующие веб-ресурсы. В некоторых вариантах осуществления идентификаторы ресурсов представляют собой унифицированные указатели ресурсов (URL), связанные с веб-ресурсами. В некоторых вариантах осуществления инициирующее событие определяется путем сравнения первого URL-адреса, связанного с выбранным веб-ресурсом, с URL-адресами области действия, связанной с веб-приложением. В некоторых вариантах осуществления инициирующее событие представляет собой действие перехода от страницы результатов поиска (SERP) к выбранному ресурсу.

[00072] Этап 504: доступ к локальному кэшу, хранящемуся в компьютерно-читаемой памяти устройства, причем локальный кэш содержит статические данные, а статические данные определяют совместно используемые части записей.

[00073] На этапе 504 электронное устройство 102 обращается к локальному кэшу 104, хранящемуся в компьютерно-читаемой памяти электронного устройства 102. В некоторых вариантах осуществления, локальный кэш 104 содержит статические данные, причем статические данные определяют совместно используемые части записей. Каждая из совместно используемых частей записей связана с по меньшей мере двумя веб-ресурсами. В некоторых вариантах осуществления, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов. В некоторых вариантах осуществления, связь совместно используемых частей записей с по меньшей мере двумя веб-ресурсами определяется на основе связи первого из идентификаторов ресурсов, связанного с первым из по меньшей мере двух веб-ресурсов, и второго из идентификаторов ресурсов, связанного со вторым из по меньшей мере двух веб-ресурсов. В некоторых вариантах осуществления, связь основана на первом из идентификаторов ресурсов и втором из идентификаторов ресурсов, имеющих общий префикс. В некоторых вариантах осуществления связь предопределена на основе параметров TF/IDF. Еще в некоторых других вариантах осуществления, связь предварительно определена на основе предварительно определенных n-грамм. В некоторых вариантах осуществления статический контент содержит по меньшей мере одну из страницы профиля социальной сети, новой страницы или страницы-шаблона. В некоторых вариантах осуществления, статические данные, хранящиеся в локальном кэше, дополнительно определяют статический контент, уникальный для выбранного ресурса.

[00074] В некоторых вариантах осуществления, по меньшей мере одна совместно используемая часть записей, связанная с выбранным ресурсом, содержит первую совместно используемую часть записей, связанную с выбранным ресурсом, и вторую совместно используемую часть записей, связанную с выбранным ресурсом.

[00075] Этап 506: выбор среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом.

[00076] На этапе 506 электронное устройство 102 выбирает среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одну совместно используемую часть записей, связанную с выбранным ресурсом.

[00077] Этап 508: получение по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом.

[00078] На этапе 508 электронное устройство 102 извлекает по меньшей мере одну совместно используемую часть записей, связанную с выбранным ресурсом, причем извлеченные совместно используемые части определяют статический компонент для выбранного ресурса.

[00079] Этап 510: получение из выбранного веб-ресурса динамического компонента для выбранного ресурса.

[00080] На этапе 510 электронное устройство 102 извлекает из выбранного веб-ресурса динамический компонент для выбранного ресурса. В некоторых вариантах осуществления, этап 510 содержит выполнение подпрограммы сценария Java, загружающей динамический компонент с сервера, связанного с выбранным веб-ресурсом.

[00081] Этап 512: обработка веб-приложением статического компонента и динамического компонента для создания контента, отображаемого устройством.

[00082] На этапе 512 электронное устройство 102 обрабатывает статический компонент и динамический компонент для создания контента, который будет отображаться устройством. В некоторых вариантах осуществления, способ 500 дополнительно включает в себя открытие веб-страницы, содержащей статический компонент и динамический компонент.

[00083] Модификации и улучшения вышеописанных реализаций настоящей технологии могут стать очевидными для специалистов в данной области техники. Предшествующее описание предназначено для того, чтобы быть примерным, а не ограничивающим. Поэтому предполагается, что объем настоящей технологии ограничен лишь объемом прилагаемой формулы изобретения.

[00084] Хотя вышеописанные реализации были описаны и показаны со ссылкой на конкретные этапы, выполняемые в конкретном порядке, следует понимать, что эти этапы могут быть объединены, подразделены или переупорядочены без отклонения от идей настоящей технологии. Соответственно, порядок и группировка упомянутых этапов ограничениями настоящей технологии не являются.

1. Способ работы веб-приложения на устройстве, причем способ включает в себя:

в ответ на инициирующее событие, запуск веб-приложения для взаимодействия с выбранным веб-ресурсом, причем инициирующее событие определяется на основе области действия, связанной с веб-приложением, при этом область действия включает в себя идентификаторы ресурсов, идентифицирующие веб-ресурсы;

доступ, веб-приложением, к локальному кэшу, хранящемуся в компьютерно-читаемой памяти устройства, причем локальный кэш содержит статические данные, при этом статические данные определяют совместно используемые части записей, каждая из совместно используемых частей записей связана с по меньшей мере двумя из веб-ресурсов, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов;

выбор, веб-приложением, среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом;

извлечение, веб-приложением, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом, причем извлеченные совместно используемые части определяют статический компонент для выбранного ресурса;

получение, веб-приложением, из выбранного веб-ресурса, динамического компонента для выбранного ресурса; и

обработку, веб-приложением, статического компонента и динамического компонента для создания контента, отображаемого устройством.

2. Способ по п. 1, в котором идентификаторы ресурсов представляют собой унифицированные указатели ресурсов (URL), связанные с веб-ресурсами.

3. Способ по п. 1, в котором инициирующее событие определяется путем сравнения первого URL-адреса, связанного с выбранным веб-ресурсом, с URL-адресами области действия, связанной с веб-приложением.

4. Способ по п. 1, в котором инициирующее событие представляет собой действие перехода от страницы результатов поиска (SERP) к выбранному ресурсу.

5. Способ по п. 1, в котором связь совместно используемых частей записей с по меньшей мере двумя из веб-ресурсов определяется на основе связи первого из идентификаторов ресурсов, связанного с первым из по меньшей мере двух веб-ресурсов, и второго из идентификаторов ресурсов, связанного со вторым из по меньшей мере двух веб-ресурсов.

6. Способ по п. 1, в котором связь основана на первом из идентификаторов ресурсов и втором из идентификаторов ресурсов, имеющих общий префикс.

7. Способ по п. 1, в котором связь предварительно определена на основе параметров TF/IDF.

8. Способ по п. 1, в котором связь предварительно определена на основе предварительно определенных n-грамм.

9. Способ по п. 1, в котором запуск веб-приложения для взаимодействия включает в себя открытие веб-страницы, содержащей статический компонент и динамический компонент.

10. Способ по п. 1, в котором статические данные, хранящиеся в локальном кэше, дополнительно определяют статический контент, уникальный для выбранного ресурса.

11. Способ по п. 1, в котором получение веб-приложением из выбранного веб-ресурса динамического компонента включает в себя выполнение подпрограммы сценария Java, загружающей динамический компонент с сервера, связанного с выбранным веб-ресурсом.

12. Способ по п. 1, в котором статический контент содержит по меньшей мере одну из страницы профиля социальной сети, новой страницы или страницы-шаблона.

13. Способ по п. 1, в котором по меньшей мере одна совместно используемая часть записей, связанная с выбранным ресурсом, содержит первую совместно используемую часть записей, связанную с выбранным ресурсом, и вторую совместно используемую часть записей, связанную с выбранным ресурсом.

14. Система для работы веб-приложения, содержащая компьютерно-читаемую память, хранящую инструкции, которые, при выполнении процессором системы, предписывают:

в ответ на инициирующее событие, запуск веб-приложения для взаимодействия с выбранным веб-ресурсом, причем инициирующее событие определяется на основе области действия, связанной с веб-приложением, при этом область действия включает в себя идентификаторы ресурсов, идентифицирующие веб-ресурсы;

доступ, веб-приложением, к локальному кэшу, хранящемуся в компьютерно-читаемой памяти устройства, причем локальный кэш содержит статические данные, при этом статические данные определяют совместно используемые части записей, каждая из совместно используемых частей записей связана с по меньшей мере двумя из веб-ресурсов, каждая из совместно используемых частей записей определяет статический контент, общий для соответствующих по меньшей мере двух веб-ресурсов;

выбор, веб-приложением, среди совместно используемых частей записей, хранящихся в локальном кэше, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом;

извлечение, веб-приложением, по меньшей мере одной совместно используемой части записей, связанной с выбранным ресурсом, причем извлеченные совместно используемые части определяют статический компонент для выбранного ресурса;

получение, веб-приложением, из выбранного веб-ресурса, динамического компонента для выбранного ресурса; и

обработку, веб-приложением, статического компонента и динамического компонента для создания контента, отображаемого устройством.

15. Система по п. 14, в которой инициирующее событие определяется путем сравнения первого URL-адреса, связанного с выбранным веб-ресурсом, с URL-адресами области действия, связанной с веб-приложением.

16. Система по п. 14, в которой инициирующее событие представляет собой действие перехода от страницы результатов поиска (SERP) к выбранному ресурсу.

17. Система по п. 14, в которой связь совместно используемых частей записей с по меньшей мере двумя веб-ресурсами определяется на основе связи первого из идентификаторов ресурсов, связанного с первым из по меньшей мере двух веб-ресурсов, и второго из идентификаторов ресурсов, связанного со вторым из по меньшей мере двух веб-ресурсов.

18. Система по п. 14, в которой связь основана на первом из идентификаторов ресурсов и втором из идентификаторов ресурсов, имеющих общий префикс.

19. Система по п. 14, в которой по меньшей мере одна совместно используемая часть записей, связанная с выбранным ресурсом, содержит первую совместно используемую часть записей, связанную с выбранным ресурсом, и вторую совместно используемую часть записей, связанную с выбранным ресурсом.

20. Система по п. 14, в которой статические данные, хранящиеся в локальном кэше, дополнительно определяют статический контент, уникальный для выбранного ресурса.



 

Похожие патенты:

Настоящая технология относится к алгоритмам машинного обучения для формирования обучающего набора для алгоритма машинного обучения в поисковых системах. Способ выполняется сервером и включает в себя извлечение из базы данных журнала поиска на сервере первого запроса, ранее отправленного на сервер, первой страницы SERP, связанной с первым запросом, второго запроса, отличного от первого запроса и отправленного после первого запроса, и второй страницы SERP, связанной со вторым запросом, причем первый запрос и второй запрос были отправлены электронным устройством, первая страница SERP содержит первый набор результатов поиска, а вторая страница SERP содержит второй набор результатов поиска.

Группа изобретений относится к области машинного обучения и может быть использована для перевода между редким языком и целевым языком. Техническим результатом является повышение качества перевода с редкого языка на целевой язык.

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении скорости и точности выявления эксплуатируемых уязвимостей в программном коде.

Изобретение относится к области информационной безопасности. Техническим результатом является повышение достоверности полученных сведений об угрозах и уязвимостях, относящихся к информационному ресурсу.

Изобретение относится к области вычислительной техники. Технический результат заключается в снижении вычислительной нагрузки при определении цифрового контента, который должен быть предоставлен пользователям рекомендательного сервиса.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении результативности защиты вычислительных сетей.

Изобретение относится к способу и электронному устройству для выполнения офлайнового перевода исходного слова в целевое слово. Технический результат заключается в повышении точности машинного перевода.

Использование: изобретение относится к области информационной безопасности. Технический результат: обеспечение автоматизированного выявления факта информационной атаки, а также своевременное информирование ответственных лиц об обнаружении атаки.

Изобретение относится к области вычислительной техники и предназначено для защиты кода UEFI BIOS, расположенного на микросхеме SPI Flash, от несанкционированных изменений. Техническим результатом является повышение защиты UEFI BIOS от несанкционированных изменений.

Изобретение относится к способам и устройствам отслеживания, обнаружения и идентификации лиц. Технический результат заключается в снижении требуемых вычислительных возможностей автономной системы видеоаналитики, уменьшении числа ошибок при распознавании, повышении скорости идентификации интересующих лиц, обеспечении защиты нейронной сети.

Изобретение относится к области систем обработки информации и может найти свое применение при реализации сервиса бронирования билетов на транспорт, в частности при авиаперелетах. Технический результат – повышение функциональности и информативности сервиса для поиска попутчиков. Аппаратно-программный комплекс для поиска попутчиков содержит соединенные между собой каналами связи серверную и клиентскую части. Клиентская часть представляет собой модуль приложения, расположенный на, по меньшей мере, одном устройстве пользователя, а серверная часть состоит из соединенных между собой web-сервера, API-сервера и чат-сервера. 4 ил.
Наверх