0

Вот мой вопрос: как я могу попытаться избавиться от «пропускающего прецедента» и кэшировать все, что приходит с https://laoadventist.info/beta/r, в качестве списка прецедентов?Пропуск прецедента: Невозможно прочитать свойство 'concat' of null`

Кроме того, правильно ли мне установить 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"> 

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

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

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

ответ

0

Если у вас есть массив 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 config file, который фактически пуст и предназначен только для среды разработки.

+0

Ваше предложение заставило меня пройти мимо этого конкретного препятствия :). Я сделал несколько вещей и попытался полностью реализовать решение - наконец, просто добавил массив precache в cache-config.json вручную, а не версию с настройкой gulp. Любые ограничения на количество URL-адресов в массиве precache? Обратите внимание на 414 Request-URI Too Long issue # 53 [link] (https://github.com/PolymerElements/platinum-sw/issues/53). Посмотрите этот код пару раз, но не последовательно. Чтение и исследование документов/источников, но все еще царапающих голову относительно механики. –

+0

https://github.com/PolymerElements/platinum-sw/issues/53 не должно быть проблемой при использовании внешнего конфигурационного файла JSON. Установка 'precacheFingerprint' в файле рекомендуется запускать загрузку дополнительных файлов, которые добавляются в массив' precache', и это заменяет необходимость сериализации массива и включения его в URL-адрес рабочего. –

+0

Итак, предельный предел кэш-памяти, похоже, является периодом времени, который требуется для получения всего. Если я делаю больше, чем пару сотен, я получаю тайм-аут сервисного работника. Спросил отдельный вопрос о том, как обойти этот предел, используя dom-repeat. [новый вопрос] (http://stackoverflow.com/questions/33453732/is-it-possible-to-combine-a-dom-repeat-on-a-platinum-service-worker) –