2016-04-09 2 views
0

У меня есть этот пользовательский элемент, который извлекает профиль facebook pic (очень маленький размер) с URL-адресом. Я использую сервисного работника, чтобы перехватить вызов и кешировать его. Однако это не кажется эффективным. Вызов выходит из сети с обновлением каждой страницы. Кроме того, в инструментах dev в локальном хранилище нет ничего. Я также пробовал cacheOnly, и он все еще звонил в сеть по URL-адресу, поэтому я знаю, что рабочий службы platinum-sw-fetch не работает.Polymer Service Worker Not Caching

Любые предложения о том, что я делаю неправильно? Если это сработает, разве я не должен видеть что-то в локальном хранилище для инструментов dev? Однако я вижу самого сервисного работника в dev-инструментах.

<platinum-sw-register auto-register 
         clients-claim 
         skip-waiting 
         base-uri="../bower_components/platinum-sw/bootstrap"> 
    <platinum-sw-fetch 
    origin="https://z-1-scontent.xx.fbcdn.net" 
    path="/hprofile(.*)" 
    handler="cacheFirst"> 
    </platinum-sw-fetch> 
</platinum-sw-register> 

+0

Я думаю, вы говорите о ** компоненте ** <платиновый-sw-cache> **. –

+0

Нет, этот элемент - это когда вы хотите кэшировать * все * вместо одного URL-адреса. Это удобная обертка для извлечения. – dman

ответ

0

Это не является полимером (или platinum-sw) вопрос, это связано с функцией Workers обслуживания пути.

Работник службы обслуживает только запросы на выборку для своего собственного scope: конкретно, в том же домене, что и файл рабочего, и в этом каталоге или ниже. Так что если вы зарегистрировать его с помощью файла ЮЗ:

https://example.com/stuff/service-worker.js

Это будет только перехватывать выборки запросов, которые начинаются с https://example.com/stuff/

http://www.html5rocks.com/en/tutorials/service-worker/introduction/#toc-before

(Смотрите раздел, Как зарегистрироваться и установить Service Worker.)

Если вы хотите сделать что-то вроде этого, вам нужно проксировать запросы через ваш собственный сервер.

+0

Я не думаю, что это правильно. 'platinum-sw' имеет атрибут' origin' для '' Если вы хотите определить пользовательский обработчик для запросов в конкретном домене с перекрестным происхождением, вы должны использовать параметр origin в сочетании с путем для соответствия доменам, которые вы «Мне нравится обращаться». ' От https://elements.polymer-project.org/elements/platinum-sw?active=platinum-sw-fetch – dman

+0

Извините, я пропустил понял. Пытался переключить вверх. Что относительно атрибута origin для отдельного домена? – dman

+1

Да, я думаю, ты прав, и я прыгнул сюда. Вы должны иметь возможность получать некоторые междоменные ресурсы. Я не уверен, что здесь не так. Можете ли вы сказать, загружается ли ПО? Двойная проверка текущего выбранного пути против ваших регулярных выражений? Увидеть какие-либо ошибки в консоли? – DocDude

Смежные вопросы