草庐IT

ServiceWorker

全部标签

ruby-on-rails - 如何在 Ruby on Rails 中注册服务 worker ?

我正在尝试在RubyOnRails中注册一个服务worker来实现推送通知GCM。但是没有任何反应。请看下面我的代码:if('serviceWorker'innavigator){navigator.serviceWorker.register('/assets/service-worker.js').then(initialiseState);}else{window.Demo.debug.log('Serviceworkersaren\'tsupportedinthisbrowser.');这部分工作正常。但是,当我调用navigator.serviceWorker.ready.t

javascript - 关闭选项卡时 JS ServiceWorker 会发生什么

当您关闭所有正在执行webworker的选项卡时,worker将关闭。ServiceWorker会发生同样的事情吗? 最佳答案 这有两个相关方面:Serviceworkerregistration,这是浏览器中保存的记录,表示“对于此URL,这些事件应由此脚本处理”,以及Serviceworkeractivation,即当您的worker代码加载到内存中并处理请求或等待请求时ServiceWorker在浏览器session中保持注册(speclink)。因此,如果您完全退出浏览器(甚至重新启动计算机),注册仍然存在;如果您转到相关范

javascript - Serviceworker Bug event.respondWith

我的serviceworker有这样的逻辑,当一个获取事件发生时,首先它获取一个包含一些bool值(不是event.request.url)的端点并根据我调用的值检查该值事件.respondWith()对于当前的获取事件,我在其中提供来自缓存的响应。但是我收到以下错误,Uncaught(inpromise)DOMException:Failedtoexecute'respondWith'on'FetchEvent':Thefetcheventhasalreadybeenrespondedto我检查了here当m_state不等于Initial时抛出此错误if(m_state!=Init

javascript - ServiceWorker 'fetch' 事件未针对图标触发

我正在使用serviceworker来缓存我网站中的内容(https://adhiyan.in)。Serviceworker正在正确安装和激活。在“获取”事件处理程序中,如果可用,我将从缓存中提供内容。如果内容在缓存中不可用,我将获取内容并使用相同内容更新缓存。它能够提供Assets并按需缓存新Assets。importScripts('/assets/js/serviceworker-cache-polyfill.js');varCACHE_NAME='adhiyan-cache-v1';varurlsToCache=['/','/assets/css/app.min.css','/

javascript - 未捕获( promise )DOMException : Subscription failed - no active Service Worker

我正在尝试订阅用户,但这是我第一次遇到的错误。第二次,它正在工作,因为用户已经处于事件状态这是我的代码:if('serviceWorker'innavigator){console.log('ServiceWorkerissupported');navigator.serviceWorker.register('sw.js').then(function(reg){console.log(':^)',reg);reg.pushManager.subscribe({userVisibleOnly:true}).then(function(sub){console.log('endpoin

javascript - ServiceWorker/Cache API 中的通配符

我正在使用ServiceWorker并且在开发模式下工作得很好,我的问题是在生产模式下我的包名称是使用哈希生成的,例如1234das3123ad5.bundle.js,所以serviceworker没有缓存它。我的sw代码如下所示:self.addEventListener('install',function(event){//precachealoadofstuff:event.waitUntil(caches.open('mycache').then(function(cache){returncache.addAll(['/dist/bundle.js','/dist/app.

javascript - 等待 ServiceWorker 完成注册后再订阅

我正在使用ServiceWorker来实现用户通知。当用户首次访问该站点并批准通知时,ServiceWorker将注册并订阅:if('serviceWorker'innavigator){console.log('ServiceWorkerissupported');navigator.serviceWorker.register('/js/sw.js').then(function(reg){if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())){reg.pushManager.subscribe({userVisible

javascript - 在页面刷新之前,navigator.serviceWorker.controller 为 null

我使用angularjs并使用serviceworker接收推送通知。但是navigator.serviceWorker.controller在页面刷新之前是null,我不知道如何解决这个问题serviceworker的一些代码:self.addEventListener('push',pwServiceWorker.pushReceived);self.addEventListener('notificationclick',pwServiceWorker.notificationClicked);//refreshcachesself.addEventListener('activ

javascript - Serviceworker 与 HTTP 基本身份验证冲突?

我正试图在开发的早期阶段保护网站免受随意窥探。基于HTTPS的基本身份验证似乎是一个合理的解决方案,但serviceworker的存在似乎阻止它在Chrome中工作。如果已经安装了serviceworker,但浏览器没有所需领域的事件授权,就会发生这种情况。Chrome显示响应是网络时间轴中的401并且还显示浏览器选项卡正在接收正确的响应header:HTTP/1.1401UnauthorizedWWW-Authenticate:Basicrealm="Myrealm"Date:Tue,21Jun201603:09:35GMTConnection:closeCache-Control:

javascript - 使用 ServiceWorker 的永久浏览器缓存

我正在设计一个JavaScript安全加载器。加载程序内嵌在index.html中。安全加载器的目标是只加载受信任的JavaScript资源。index.html的内容主要限于安全加载程序。出于安全考虑,我希望index.html(存储在缓存中)永远不会更改,即使我的网站被黑也是如此。如何在服务器无法篡改缓存的情况下缓存index.html?我想知道ServiceWorker是否可以提供帮助。实际上,index.html会注册一个serviceworker以从不可变缓存中获取自身(甚至不发出网络请求)。 最佳答案 在chrome中你