Я построил портал, который предоставляет доступ к нескольким функциям, включая функцию уведомления о неисправностях.
Клиент попросил меня сделать функцию уведомления о неисправностях доступной в автономном режиме.Они хотят иметь возможность «проверять» определенные существующие билеты в режиме онлайн, которые затем становятся доступны (просмотр / редактирование), когда устройство пользователя находится вне зоны действия любого интернет-соединения.Кроме того, они хотят иметь возможность создавать новые билеты в автономном режиме.Затем, когда соединение будет доступно, они проверит измененные / вновь созданные заявки.
Я возился с работниками сервиса и просматривал некоторую хорошую документацию по ним, и я чувствую, что у меня есть общее представление о том, каккешировать данные.
Однако, поскольку я хочу сделать доступной часть портала только в автономном режиме, я не хочу, чтобы работники службы кэшировали или возвращали кэшированные данные при доступе к любой другой странице портала.Все страницы находятся в одном и том же каталоге, поэтому работник службы после загрузки по умолчанию будет перехватывать все запросы со всех страниц портала.
Как настроить работника службы так, чтобы он отвечал только кэшированными данными, когдастраница билетов открыта?
Нужно ли вручную проверять значение window.location при возникновении событий выборки?Например,
if (window.location == 'https://www.myurl.com/tickets')
{
// try to get the request from network. If successful, cache the result.
// If not successful, try returning the request from the cache.
}
else
{
// only try the network, and don't cache the result.
}
Существует множество вспомогательных файлов, которые необходимо загрузить для страницы (например, CSS-файлы, JS-файлы и т. Д.), Поэтому недостаточно просто проверить request.url для страницы.название.Будет ли 'window.location' доступен в событии работника службы, и является ли это разумным способом для достижения этой цели?