За последние 24 часа нас посетили 22220 программистов и 997 роботов. Сейчас ищут 667 программистов ...

Пара вопросов по sw-toolbox (service worker)

Тема в разделе "JavaScript и AJAX", создана пользователем Roman __construct, 10 окт 2019.

  1. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Сегодня по ману из сети сделал примерно такое:

    index.html
    Код (Javascript):
    1. <script>
    2. if ('serviceWorker' in navigator) {
    3. window.addEventListener('load', function() {
    4. navigator.serviceWorker.register('/sw.js').then(function(registration) {
    5. console.log('ServiceWorker registration successful with scope: ', registration.scope);
    6. }, function(err) {
    7. console.log('ServiceWorker registration failed: ', err);
    8. });
    9. });
    10. }
    11. </script>
    sw.js
    Код (Javascript):
    1. 'use strict';
    2. importScripts('sw-toolbox.js');
    3. toolbox.precache(["index.html", "css/main.css"]);
    4. toolbox.router.get('/img/icons/*', toolbox.cacheFirst);
    5. toolbox.router.get('/*', toolbox.networkFirst, {
    6. networkTimeoutSeconds: 1
    7. });
    оно работает, но есть нюансы:

    1. Как сделать чтобы оффлайн открывался не только site.ru/index.html а и просто site.ru ? Яндекс.Браузер открывает офлайн и site.ru и site.ru/ а вот Хром только site.ru/index.html

    2.
    Можно ли в массив toolbox.precache([]) сразу добавить всё, что есть в паблик рут?

    3. Можно ли как-то добавить в кэш шрифты и библиотеки подгружаемые из CDN, например иконки:
    HTML:
    1. <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    4. Может чего другое лучше взять вместо sw-toolbox? ))

    Спасибо :)
     
    #1 Roman __construct, 10 окт 2019
    Последнее редактирование: 10 окт 2019
  2. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Кстати, Lighthouse признал это полностью валидным PWA :)

    тем не менее, вопросы актуальны