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

报名网站开发多钱2017网站开发合同下载

报名网站开发多钱,2017网站开发合同下载,最新不封网址拿走不谢,龙岩做网站开发价格利用 ETag 做提示更新的实现方案 ETag(Entity Tag)是万维网协议HTTP的一部分,是HTTP协议提供的若干机制中的一种Web缓存验证机制,是一个可以与Web资源关联的记号(token),并且允许客户端进行缓存…

利用 ETag 做提示更新的实现方案

ETag(Entity Tag)是万维网协议HTTP的一部分,是HTTP协议提供的若干机制中的一种Web缓存验证机制,是一个可以与Web资源关联的记号(token),并且允许客户端进行缓存协商,这使得缓存变得更加高效,而且节省带宽:

            演示网站:http://www.xpclm.online/pdf-h5

原理

1.首次请求资源:客户端通过HTTP GET请求向服务器请求/pdf-h5/资源。服务器处理请求后,生成资源的ETag,并在响应头中包含ETag返回给客户端。

2.​资源缓存:客户端接收到资源后将其存储在本地缓存中,并记录下ETag("68031a34-2a5")值。

如图所示👇

3.后续请求资源:当客户端再次请求同一个资源时,会在请求头中包含之前缓存的ETag值。

4.服务器处理:服务器收到带有ETag的请求后,会比对服务器上当前资源的ETag和请求头中的ETag。如果ETag相同,表示资源没有改变,服务器就会返回304 Not Modified状态码,告诉客户端使用缓存中的资源即可。如果ETag不同,也表示资源已经更新,服务器就会返回200 OK状态码,并在响应体中包含新的资源内容和新的ETag

HTTP状态码304表示“Not Modified”,即资源未修改。

再次访问刷新访问界面👇


利用 ETag 做提示更新的实现思路👇

​第一步:首次加载页面 将这个 ETag 值存储起来,比如存储在 localStorage 中。

​第二步:定义路由守卫 这里我们选用全局前置守卫 beforeEach,因为它会在每次路由跳转前执行,客户端再次向服务器发送请求,获取 HTML 文件的响应头信息,从中提取新的 ETag 值。

​第三步:​对比 ETag 值  将新获取的 ETag 值与之前存储的 ETag 值进行比较。

示例代码:

import Vue from 'vue';
import VueRouter from 'vue-router';
import routes from './routes';Vue.use(VueRouter);const router = new VueRouter({mode: 'history',routes
});// 定义检查更新的函数
function checkForUpdates() {return new Promise((resolve, reject) => {// 使用 fetch API 发送一个 HEAD 请求到 /index.htmlfetch('/index.html', {method: 'HEAD'}).then(response => {// 从响应头中获取 ETag 值const newEtag = response.headers.get('ETag');// 从 localStorage 中获取当前存储的 ETag 值const currentEtag = localStorage.getItem('etag');// 如果当前 ETag 存在且与新 ETag 不同,表示资源已更新if (currentEtag && currentEtag!== newEtag) {// 提示用户有新版本可用,建议刷新页面alert('新版本可用,请刷新页面以更新。');// 将新的 ETag 值存储到 localStorage 中localStorage.setItem('etag', newEtag);}resolve();}).catch(error => {// 如果请求失败,输出错误信息到控制台console.error('版本检查失败:', error);resolve();});});
}// 注册全局前置守卫
router.beforeEach(async (to, from, next) => {try {// 在路由跳转前检查更新await checkForUpdates();// 检查通过,继续路由跳转next();} catch (error) {// 检查出错,继续路由跳转next();}
});export default router;

路由呢每次路由切换都会执行版本检查,可能会增加一定的延迟。

也可以使用轮询 setInterval(checkForUpdates, 3600000),但是消耗资源过大,但是也大不了多少,仁者见仁。。。

当然也可以使用WebSocket但是需要服务端支持。


文章转载自:

http://3Vtmhp1w.fhqsm.cn
http://4pXclNPR.fhqsm.cn
http://Av0SlQc1.fhqsm.cn
http://P2KCwdGq.fhqsm.cn
http://UjM2Wj4o.fhqsm.cn
http://QB7hsWAh.fhqsm.cn
http://fIik45Tq.fhqsm.cn
http://T4N7pz57.fhqsm.cn
http://mzNRyiXU.fhqsm.cn
http://3ezIv5yq.fhqsm.cn
http://5knTJ73v.fhqsm.cn
http://R5T14bdr.fhqsm.cn
http://6VQ7FDI6.fhqsm.cn
http://KK8wxcTd.fhqsm.cn
http://Qpb5ccuN.fhqsm.cn
http://GkDWJzwd.fhqsm.cn
http://zNm98eBr.fhqsm.cn
http://5rfTm1Oa.fhqsm.cn
http://UVAm9Bmm.fhqsm.cn
http://IWODAtT8.fhqsm.cn
http://RrG0bCf3.fhqsm.cn
http://qThPWZRk.fhqsm.cn
http://PGHJPaHG.fhqsm.cn
http://mjTRx1c2.fhqsm.cn
http://2gBzraSP.fhqsm.cn
http://AeLUStaX.fhqsm.cn
http://WgOdBNbL.fhqsm.cn
http://5yY4gnJJ.fhqsm.cn
http://tQq35G8w.fhqsm.cn
http://xdwxUxls.fhqsm.cn
http://www.dtcms.com/wzjs/702253.html

相关文章:

  • 搜索网站怎么做的淘宝京东网站建设目的
  • 中国建设银行网站医保游戏网页制作模板
  • 有关网站建设的书籍c#网站开发案例大全
  • 文山专业网站建设公司网站模版超市
  • 如何备份网站程序吗群团组织网站建设
  • 东莞响应式网站哪家好网站播放视频速度优化
  • 网站域名费用哪个网站可以做头像的
  • 网站备案有什么作用合肥房产网官网
  • 小说网站排名免费无锡阿凡达网站建设
  • 集团网站设计建设电商ui设计师的发展前景
  • 汕头网站推广费用wordpress主题google
  • m99ww094cn 苍井空做的网站重庆住房建设工程信息网官网
  • 手机企业网站怎么做苏州企业网络推广
  • 建设网站用什么语言编写wordpress读取图片loading
  • 网站开发语言哪种简单桂林漓江简介
  • 大学课程免费自学网站视频网站怎么做排名
  • 做网站的网址怎么弄徐州网站建设优化
  • 微博白菜网站怎么做中国域名备案查询系统
  • 网站友情链接与排名计算机网络基础课程
  • 马鞍山市重点工程建设管理局网站网站刷流量会怎么样
  • 用二级域名做的网站算新站吗邢台市建设局网站
  • 校友网站建设的重要性网站建设的流程推广方案
  • 做钓鱼网站获利3万佛山 做网站公司
  • 网站制作外包价格软件开发税率是13%还是6
  • 湘西泸溪网站建设建站哪个平台好
  • 重庆网站建设招聘网站建设与 维护实训报告范文
  • 网站社区的建设辽宁建设工程造价管理网站
  • 网站一般用什么架构wordpress设置用户登录
  • 济宁企业做网站苏州seo按天扣费
  • vs做网站开发安徽建设工程信息网如何复原