当前位置: 首页 > news >正文

建站哪家好论坛长沙新媒体运营公司

建站哪家好论坛,长沙新媒体运营公司,营业执照网上查询官网,wordpress mvcService Worker 是一种运行在浏览器背后的独立线程#xff0c;可以用来处理推送通知、后台同步、缓存等任务。以下是使用 Service Worker 来缓存图片的一个基本示例#xff1a; 1、注册 Service Worker: 首先#xff0c;你需要在你的 JavaScript 文件中注册 Service Worker。…Service Worker 是一种运行在浏览器背后的独立线程可以用来处理推送通知、后台同步、缓存等任务。以下是使用 Service Worker 来缓存图片的一个基本示例 1、注册 Service Worker: 首先你需要在你的 JavaScript 文件中注册 Service Worker。 !DOCTYPE html htmlheadmeta http-equivcontent-type contenttext/html;charsetUTF-8/title测试serviceworker添加缓存并删除缓存并更新缓存/titlelink relstylesheet hrefserviceworker2.css typetext/css/headbodydiv idcontainerdiv classimgTitle图片展示/divdiv classimgContainerimg srcimages/123.jpg altImg 1/div/divscript typetext/javascriptwindow.addEventListener(load,(){if(serviceWorker in navigator){// 由于 127.0.0.1:8000 是所有测试 Demo 的 host如果你是phpstudy那么要用localhost才行// 为了防止作用域污染将安装前注销所有已生效的 Service Worker//这里只是查看注册了那些版本的service Workernavigator.serviceWorker.getRegistrations().then(regs{for(let reg of regs){//查看注册的service workerconsole.log(reg);//如果你要删除所有已经注册的生效的service worker,可以用下面的//reg.unregister();}//注册新的service workernavigator.serviceWorker.register(serviceWorker.js).then(registrationconsole.log(registration)).catch(errorconsole.log);})}})/script/body /html2、编写 Service Worker 脚本 (serviceWorker.js): 在 Service Worker 中你可以监听 install 事件来缓存资源以及 fetch 事件来拦截网络请求并提供缓存的资源。 //这里是版本控制以后在cache.addAll中的静态文件有修改我们修改完后只需要改CACHE_NAME的值即可比如cache_v5改成cache_v6 const CACHE_NAMEcache_v5; //install事件监控因为返回的都是期约异步所以都用异步函数在这里我们添加缓存 self.addEventListener(install,async event{console.log(install,event);//开启一个缓存得到一个缓存对象const cacheawait caches.open(CACHE_NAME);//添加需要缓存的文件await cache.addAll([/images/123.jpg,/serviceWorker.html,/serviceworker2.css]);//这段话是立即执行 会让 service worker 跳过等待直接进入到 activate 状态await self.skipWaiting(); });//监控激活activate事件在这里我们可以删除旧的缓存 self.addEventListener(activate,async event{console.log(activate,event);//获取所有的缓存版本就是我们上面的CACNE_NAME,如果你有其它的缓存版本都会在keys中const keysawait caches.keys();//循环出每个版本的缓存键keys.forEach(key{//如果键不等于cache_v5,都删除掉就是其它版本cache_v4等或你自定义mycachev1/2/3等版本if(key!CACHE_NAME){return caches.delete(key)}})// self.clients.claim() 表示 service worker 激活后立即获得执行权await self.clients.claim();})//监控fetch事件会拦截所有的请求: 走网络或缓存 self.addEventListener(fetch,event{console.log(fetch,event);const reqevent.request;//返回一个新创建的URL对象const urlnew URL(req.url);//只缓存同源的内容当然你也可以不要这段就可以缓存CDN或其它源的js文件if(url.origin !self.origin){return;}//这里的api只是判断走网络还是走缓存如果没有api文件夹也不影响//接口请求优先走网络静态资源优先走缓存if(req.url.includes(/api)){event.respondWith(networkFirst(req));}else{event.respondWith(cacheFirst(req));} })//走网络资源 async function networkFirst(req) {const cacheawait caches.open(CACHE_NAME);try{const freshawait fetch(req);//此处一定要添加 clone因为它只是一个流请求只有一次如果是第一次需要先克隆里你请求键request里面下次访问就是缓存responsecache.put(req,fresh.clone());return fresh;}catch(e){const cachedawait cache.match(req);return cached;} } //走静态资源 async function cacheFirst(req) {const cacheawait caches.open(CACHE_NAME);const cachedawait cache.match(req);if(cached){return cached;}else{const freshawait fetch(req);cache.put(req,fresh.clone());return fresh;} }至于serviceworker2.css和图片你自己写和选图要查看缓存chrome浏览器按F12,–应用–缓存空间即可看到三个缓存文件 更新缓存策略: 当你的网站更新了图片资源后你需要更新 Service Worker 的缓存策略。在上面的代码中缓存的名称是 ‘cache-v5’。当你需要更新缓存时只需更改这个名称例如改为 ‘cache-v6’; 然后重新部署 Service Worker。新的 Service Worker 将会注册并且 install 事件将会使用新的缓存名称来缓存资源——这句话的意思就是让你关闭测试中的页面重新再打开不然看不到修改后的页面因为是缓存页面 请注意Service Worker 的注册和脚本需要在 HTTPS 环境下运行因为 Service Worker 需要访问缓存等敏感功能。此外Service Worker 的调试和测试可能需要在本地服务器上进行因为浏览器对 Service Worker 的限制较多。
http://www.w-s-a.com/news/118054/

相关文章:

  • 湖北手机网站建设wordpress转emlog博客
  • 北京东站设计网名的花样符号
  • 安徽建设厅网站首页网站开发aichengkeji
  • 自贡网站制作荣茂网站建设
  • 什么做的网站吗正规的机械外包加工订单网
  • 网络工程公司的业务邵阳seo快速排名
  • 博主怎么赚钱网站seo找准隐迅推
  • 营销号经典废话北京网站建设公司网站优化资讯
  • 一六八互联网站建设怎么做套版网站
  • wordpress 书站建筑公司简介范文大全
  • 建设官方网站多少鲜花网站建设的主要工作流程
  • 卖主机网站轻量wordpress主题
  • 网站建设规划书结构制作一个自己的网站
  • 外贸网站商城建设做网站和推广
  • 网站建设微信群免费简约ppt模板
  • 哈尔滨网站设计公司哪家更好shopify和wordpress
  • 岚县网站建设网站建设中效果
  • 网站建设软文推广网站建设分金手指排名十四
  • 网站建设要什么知识广州注册公司地址怎么解决
  • 自己可以做开奖网站吗wordpress和hexo
  • 成都网站关键词优化wordpress价格
  • 网站开发后端站建设 app开发网站
  • 毕业设计做网站好的想法开发网站代码量
  • 西宁网站建设排名wordpress的站点地址如何配置
  • 医院网站建设 价格app和网站开发的成本
  • 常见的网站开发工具山东建设厅官方网站李兴军
  • 二级院系网站建设情况做网站域名是什么意思
  • 网站开发双语辽宁省建设厅网站怎样下载表格
  • 网站后台密码怎么修改百度查重免费入口
  • 衡阳网站页面设计公司绍兴网站设计