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

厦门橄榄网站建设视频推广一条多少钱

厦门橄榄网站建设,视频推广一条多少钱,sns网站是什么,上海网站制作智能 乐云践新Service Worker 是一种运行在浏览器背后的独立线程,可以用来处理推送通知、后台同步、缓存等任务。以下是使用 Service Worker 来缓存图片的一个基本示例: 1、注册 Service Worker: 首先,你需要在你的 JavaScript 文件中注册 Service Worker。…

Service Worker 是一种运行在浏览器背后的独立线程,可以用来处理推送通知、后台同步、缓存等任务。以下是使用 Service Worker 来缓存图片的一个基本示例:
1、注册 Service Worker: 首先,你需要在你的 JavaScript 文件中注册 Service Worker。

<!DOCTYPE html>
<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8"/><title>测试serviceworker添加缓存,并删除缓存,并更新缓存</title><link rel="stylesheet" href="serviceworker2.css" type="text/css"></head><body><div id="container"><div class="imgTitle">图片展示</div><div class="imgContainer"><img src="images/123.jpg" alt="Img 1"></div></div><script type="text/javascript">window.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(registration=>console.log(registration)).catch(error=>console.log);})}})</script></body>
</html>

2、编写 Service Worker 脚本 (serviceWorker.js): 在 Service Worker 中,你可以监听 install 事件来缓存资源,以及 fetch 事件来拦截网络请求并提供缓存的资源。

//这里是版本控制,以后在cache.addAll中的静态文件有修改,我们修改完后,只需要改CACHE_NAME的值即可,比如cache_v5改成cache_v6
const CACHE_NAME='cache_v5';
//install事件监控,因为返回的都是期约异步,所以都用异步函数,在这里我们添加缓存
self.addEventListener('install',async event=>{console.log('install',event);//开启一个缓存,得到一个缓存对象const cache=await 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 keys=await 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 req=event.request;//返回一个新创建的URL对象const url=new 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 cache=await caches.open(CACHE_NAME);try{const fresh=await fetch(req);//此处一定要添加 clone,因为它只是一个流,请求只有一次,如果是第一次需要先克隆里你请求键request里面,下次访问就是缓存responsecache.put(req,fresh.clone());return fresh;}catch(e){const cached=await cache.match(req);return cached;}
}
//走静态资源
async function cacheFirst(req)
{const cache=await caches.open(CACHE_NAME);const cached=await cache.match(req);if(cached){return cached;}else{const fresh=await 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.hengruixuexiao.com/news/39203.html

相关文章:

  • 做标志的好网站seo国外英文论坛
  • 做商城网站的公司线上宣传有哪些好的方式方法
  • 沈丘做网站去哪里seo关键词
  • 36氪网站用什么程序做的品牌营销策略分析论文
  • 石家庄网站建设.神鹿网络万物识别扫一扫
  • 做网站需要找什么客户徐州seo推广优化
  • 网站文章正文可以做内链吗企点官网
  • 建设专业网站电话咨询商业网站设计
  • 网站弹出咨询这个怎么做网络服务商主要包括
  • 学校网站开发与设计自动引流免费app
  • 链家做网站和手机app花了多少钱aso优化公司
  • 企业网站托管多少钱seo研究中心超逸seo
  • dedecms中英文网站营销推广方案怎么写
  • 网站公共模板是什么意思什么是新媒体营销
  • 网站建设的生存期模型十种营销方式
  • 做国外订单用哪个网站网络营销sem培训
  • wordpress 建立数据库连接时出错网站百度关键词seo排名优化
  • 怎么做关于梦想的网站免费的成都网站seo推广
  • 网站的版面设计天津seo排名
  • 长沙做网站优化整站seo教程
  • 网站开发 后端返回前端一个地址 有什么用长沙专业做网站公司
  • 广州地铁封闭最新消息河北seo基础入门教程
  • 做问卷兼职有哪些网站河北搜索引擎优化
  • 百度给做网站收费多少钱网络推广员的前景
  • 自动做微网站百度官方客服
  • 大数据营销的优缺点现在百度怎么优化排名
  • 深圳网站制作开发seo百度网站排名软件
  • 上海seo排名适合seo软件
  • 做网站要几个人 要多少钱网站片区
  • 网站页面大小新媒体营销案例分析