Google cache api — кэширование URL-адресов с параметрами get

#javascript #java #html #caching

#javascript #java #HTML #кэширование

Вопрос:

Я пытаюсь кэшировать страницы моего веб-приложения J2EE. Мне удается кэшировать страницы без каких-либо параметров. Но для страниц с параметрами ПОЛУЧЕНИЯ, добавленными в конце URL-адреса, я, похоже, не могу этого сделать.

Кто-нибудь может подсказать мне, как я могу кэшировать веб-страницу с параметрами get?

Ниже приведен мой код:

 const cacheName = 'sailors-cache';

const domainurl = '/The_Sailors_Application/Application/';

const cacheAssets = [
    domainurl   'images/logo.png',
    domainurl   'report-surveyor-generalinfo.html',
    domainurl   'report-surveyor-timelog.html',
    domainurl   'report-surveyor-acknowledgement.html',
    domainurl   'report-surveyor-barge.html',
    domainurl   'report-surveyor-bunker-condition.html',
    domainurl   'report-surveyor-bunker-condition2.html',
    domainurl   'report-surveyor-statement.html',
    domainurl   'report-surveyor-sealchecklist.html',
    domainurl   'report-surveyor-samplingreport.html',
    domainurl   'report-surveyor-vessel-measurement-report.html',
    domainurl   'report-surveyor-finalreport.html',
    domainurl   'report-surveyor-mass-flow-meter.html',
    domainurl   'report-surveyor-cargo.html',
    domainurl   'report-surveyor-checklist.html',
    domainurl   'report-surveyor-feedback.html',
    domainurl   'report-pictures.html',
    domainurl   'signature.html',

    domainurl   'assets/css/bootstrap.min.css',
    domainurl   'assets/css/normalize.css',
    domainurl   'assets/css/font-awesome.min.css',
    domainurl   'assets/css/themify-icons.css',
    domainurl   'assets/scss/style.css',

    domainurl   'assets/js/vendor/jquery-2.1.4.min.js',
    domainurl   'assets/js/plugins.js',
    domainurl   'assets/js/widgets.js'
];

    // Call Install Event
    self.addEventListener('install', e => {
      console.log('Service Worker: Installed');

      e.waitUntil(
        caches
          .open(cacheName)
          .then(cache => {
            console.log('Service Worker: Caching Files');
            cache.addAll(cacheAssets);
          })
          .then(() => self.skipWaiting())
      );
    });

    // Call Activate Event
    self.addEventListener('activate', e => {
      console.log('Service Worker: Activated');
      // Remove unwanted caches
      e.waitUntil(
        caches.keys().then(cacheNames => {
          return Promise.all(
            cacheNames.map(cache => {
              if (cache !== cacheName) {
                console.log('Service Worker: Clearing Old Cache');
                return caches.delete(cache);
              }
            })
          );
        })
      );
    });

    // Call Fetch Event
    self.addEventListener('fetch', e => {
      console.log('Service Worker: Fetching');
      e.respondWith(fetch(e.request).catch(() => caches.match(e.request)));
    });
  

Пример веб-страницы URL, которую я хочу кэшировать, — это:
domainurl ‘report-surveyor-generalinfo.html ?referenceNumber=YF-1223-19’,

Спасибо.

Комментарии:

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

2. @MuhammedImranHussain Привет, я отредактировал

3. В контексте вашего кода ваш динамический URL-адрес / параметр не кэшируется. Вам нужно сопоставить URL-адрес при извлечении, и если он не совпадает, поместите его в кэш, а затем верните, чтобы в следующий раз он был отправлен из кэша. Подробности вы найдете здесь developers.google.com/web/ilt/pwa /… под заголовком «В сетевом ответе»

4. @MuhammedImranHussain извините, я не совсем понимаю. можете ли вы объяснить еще раз?

5. Ваш код кэширован report-surveyor-generalinfo.html но не report-surveyor-generalinfo.html ? Ссылочный номер=YF-1223-19. Я предполагаю, что здесь referenceNumber является переменной. Таким образом, вы можете кэшировать этот URL-адрес при взаимодействии с пользователем, например, при нажатии на ссылку или реализовать кэширование при ответе сети. В этом документе упоминаются как взаимодействие с пользователем, так и кэширование при ответе сети developers.google.com/web/ilt/pwa /…