Накратко
Service worker може да управлява заявки и да използва местно запазени отговори. Офлайн поведението е резултат от определена стратегия, а не автоматичен ефект от регистрацията му.
Полезно е да знаеш
Някои уеб приложения могат да покажат част от съдържанието дори когато връзката с интернет прекъсне. Един от инструментите за това е service worker: JavaScript код, който работи в отделен контекст и може да участва в обработването на заявки за ресурси. Той е свързан с определен произход и път. [1] Важно е да различаваме възможността от готовия резултат. Наличието на такъв файл в проекта само по себе си не доказва какво точно посетителят ще види без мрежа.
Service worker няма пряк достъп до DOM на страницата и е проектиран за асинхронна работа. Той може да прихваща заявки и да връща подходящи отговори според написаната логика. За употребата му обичайно е нужен защитен контекст, като локалната разработка има предвидени изключения. [1] Това обяснява защо технологията не е просто още един скрипт за промяна на текста в страницата. Неговата роля е около достъпа до ресурси и жизнения цикъл на приложението.
Cache интерфейсът предлага съхранение на двойки заявка и отговор. Могат да се поддържат различни именувани кешове, а отговорността за обновяването и премахването на съдържание е на приложението. Записите не се подменят автоматично само защото сървърът вече има друга версия. [2] Следователно местният кеш трябва да има план за развитие. Иначе добрата идея за достъп без мрежа може да доведе до показване на стари файлове, които вече не съответстват на останалата част от сайта.
Браузърът поставя ограничения на използваното пространство и може да премахва местно запазени данни. Cache не е обещание за безусловно постоянно присъствие на всеки ресурс. [2] Добър офлайн изглед затова трябва да обяснява какво е налично и какво изисква връзка. Ако дадена статия е била запазена, тя може да се покаже; ако изображението ѝ липсва, интерфейсът трябва да има разумна реакция. Случайното наличие на няколко файла не е достатъчно за последователно потребителско преживяване.
Да си представим справочник за пътуване. Авторът може да избере предварително да запази основните текстове, а останалите ресурси да търси при нужда. Друг вариант е да се пази само това, което вече е отворено. Тези два подхода дават различни очаквания за човека, който тръгва без интернет. Това е проектен пример: правилната стратегия зависи от обема, честотата на промени и обещанието на продукта. Всяко твърдение „достъпно офлайн“ трябва да уточнява реалния обхват на тази достъпност.
Проверката включва първо посещение, повторно отваряне, прекъсната връзка и преминаване към нова версия. Важно е също да се опита случай, при който очакваният местен ресурс липсва. Така се вижда дали приложението разпознава различните състояния, вместо да показва един общ празен екран. Service worker е полезна основа за по-устойчив уеб интерфейс, когато разработчикът управлява съзнателно източника, свежестта и наличността на всеки отговор, който достига до посетителя.
Източници
За повече подробности и проверка на информацията: