// 主程序 let worker = new Worker('./worker.js'); worker.postMessage(123); worker.addEventListener('message', e => { console.log(`收到来自worker线程的信息: ${e.data}`) }) document.querySelector('button').addEventListener('click', ()=>{ worker.terminate(); }) for(let i=0;i<10;i++){ setTimeout(()=>{ console.log(i) }, 1000*i) } // worker线程 self.addEventListener('message', e => { console.log(`收到来自主程序的信息: ${e.data}`); postMessage(666) }) var i=0; function timedCount(){ i=i+1; postMessage(i); setTimeout("timedCount()",1000); } timedCount(); // 关闭worker线程 self.close();
// 注册 if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw-test/sw.js', { scope: '/sw-test/' }).then(function(reg) { console.log('Registration succeeded. Scope is ' + reg.scope); }).catch(function(error) { console.log('Registration failed with ' + error); }); } // 下载安装 self.addEventListener('install', e => { console.log('[sw] installed'); e.waitUntil( // caches.open() 打开缓存并提供一个缓存名称 caches.open(cacheName).then(cache => { console.log('cache app shell'); // 从服务器获取文件,并将响应添加至缓存,具有原子性(一个缓存失败都失败) return cache.addAll(filesToCache); }) ) }) // 激活 // activate事件会在服务工作线程启动时触发 self.addEventListener('activate', e => { console.log('[sw] activated'); e.waitUntil( caches.keys().then(keyList => { return Promise.all(keyList.map(key => { if(key !== cacheName){ console.log(`[sw] removing old cache: ${key}`); return caches.delete(key); } })) }) ) return self.clients.cliam(); }) // 从缓存提供app shell self.addEventListener('fetch', e => { console.log(`[sw] fetch: ${e.request.url}`); e.respondWith( // caches.match() 会由内而外对触发抓取事件的网络请求进行评估,并检查以确认它是否位于缓存内 caches.match(e.request).then(response => { return response || fetch(e.request); }) ) })
如对本文有疑问, 点击进行留言回复!!
混合应用:(基于vue) cordova打包的应用,打开出现白屏
VUE axios 跨域问题 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
AutoJs Pro 7.0.4-1 实战教程---史上最全快音短视频
网友评论