Пропуск предварительного кэширования: невозможно прочитать свойство «concat» из null`

Вот мой вопрос: как я могу попытаться избавиться от «пропуска предварительного кэширования» и кэшировать все, что приходит с https://laoadventist.info/beta/r в качестве списка предварительного кэширования?

Кроме того, правильно ли мне установить precache="https://laoadventist.info/beta/r" или я должен установить это для функции, которая вместо этого захватывает данные и возвращает их?

Skipping precaching: Cannot read property 'concat' of null появляется на консоли при использовании My Polymer App

<platinum-sw-cache default-cache-strategy="fastest" cache-config-file="cache-config.json" precache="https://laoadventist.info/beta/r">

Я правильно предполагаю, что могу предварительно настроить такой URL, верно?

Я пытаюсь загрузить результат json из laravel 5.1, чтобы установить, каким должен быть мой предварительный кеш... Я знаю, что это не самый элегантный, но я новичок в Polymer, кеше, сервисных работниках и т. д., и использую это приложение как возможность обучения. В конце дня это будет немного по-другому, но сейчас я просто хочу загрузить все. :)

Я хочу предварительно кэшировать все данные, чтобы пользователь мог полностью использовать это приложение в автономном режиме (хотя позже я настрою его так, чтобы им не приходилось предварительно кэшировать множество запросов json, а только те, которые они хотят, вроде по книге - но это на потом).


person Robert M Campbell    schedule 29.10.2015    source источник


Ответы (1)


Если у вас есть массив URL-адресов ресурсов, которые вы хотите предварительно кэшировать, самый простой способ указать их — использовать параметр cacheConfigFile и указать файл JSON, содержащий ваш массив, в качестве свойства precache. Взгляните на пример в документации для cacheConfigFile: https://elements.polymer-project.org/elements/platinum-sw?active=platinum-sw-cache

Вам не нужно использовать атрибут precache для элемента, если вы используете cacheConfigFile.

Похоже, вы используете Polymer Starter Kit, и это создаст файл конфигурации JSON и заполнит его для вас массивом, соответствующим вашим локальным ресурсам. Но если вы хотите указать дополнительные ресурсы для предварительного кэширования, вы можете изменить процесс сборки, чтобы добавить эти URL-адреса в автоматически сгенерированный список.

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

person Jeff Posnick    schedule 29.10.2015
comment
Ваше предложение помогло мне преодолеть это конкретное препятствие :). Я сделал несколько вещей и попытался полностью реализовать решение - наконец, просто вручную добавил массив предварительного кэша в cache-config.json, а не версию dist, созданную gulp. Любые ограничения на количество URL-адресов в массиве предварительного кеша? Обратите внимание на 414 Request-URI Too Long issue #53 ссылка — видел этот код пару раз, но не постоянно. Читаю и изучаю документы/источники, но все еще ломаю голову над механикой. - person Robert M Campbell; 30.10.2015
comment
github.com/PolymerElements/platinum-sw/issues/53 не должно быть проблема при использовании внешнего файла конфигурации JSON. Рекомендуется установить precacheFingerprint в файле, чтобы инициировать загрузку дополнительных файлов, которые добавляются в массив precache, и это заменяет необходимость сериализации массива и включения его в URL-адрес работника службы. - person Jeff Posnick; 30.10.2015
comment
Хорошо, таким образом, конечным ограничением для кэша sw является период времени, необходимый для получения всего. Если я сделаю больше пары сотен, я получу тайм-аут сервисного работника. Задал отдельный вопрос об обходе этого ограничения с помощью dom-repeat. новый вопрос - person Robert M Campbell; 31.10.2015