javascript文件在IE缓存中的迷惑与解惑实验

简介: 缓存迷惑:项目中用到了股票代码的输入框,想使用经典ajax效果——自动完成。 可是与头头讨论时,头头觉得一输入字符就要服务器相应,而且预计的使用人数有点大的情况下,太耗服务器资源了。说服不了头头,只有采用变通的方式,把代码表放到js里,使用纯js实现自动完成功能。

缓存迷惑:
项目中用到了股票代码的输入框,想使用经典ajax效果——自动完成。

可是与头头讨论时,头头觉得一输入字符就要服务器相应,而且预计的使用人数有点大的情况下,太耗服务器资源了。
说服不了头头,只有采用变通的方式,把代码表放到js里,使用纯js实现自动完成功能。头头勉强接受。

网上搜索了一圈,发现不少比较好的使用例子,例如:
http://www.javascript-examples.com/autocomplete-demo/

有个疑惑的地方,用户打开页面时,代码表js下载到了本地缓存,如果第二天代码表js内容变了的话,页面打开时,IE会读取缓存里的那个js文件,还是下载新的这个呢?
但是如果禁止了客户端缓存的话,一天内多次打开此页面会不会每次重新下载,给用户的感觉又很慢呢?

传言:
听到一个传言,说ie打开网页时会自动检查那个js文件的发布时间,如果与缓存里不一致,就会下载新的。是否有这个说法啊?

解惑实验:
经过自己的测试,好像那个传言是真的。
做了一下测试,用iis建了一个普通网站,让页面内嵌入使用了一个js。
同时打开ie缓存路径进行文件监视

测试1:ie首次打开网页时,js被down到缓存文件夹。上次修改时间、上次访问时间、上次检查时间,这三个属性的值是一致的。

测试2:隔了一分钟,更改了js文件,ie再此打开这个网页,检查到上次修改时间、上次访问时间、上次检查时间,这三个属性的值又是一致的。

测试3:再隔了一分钟,没有更改js文件,ie再此打开这个网页,检查到上次访问时间、上次检查时间,这两个属性的值是一致的,为打开时的时间,但是上次修改时间显示为1分钟前。

实验结果大致认为:ie打开网页时,会检查js文件是否更新,更新的情况下下载新的文件到缓存,如果文件保持不变的话,不重新下载。

目录
相关文章
|
5月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
3月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
54 0
|
4月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
17天前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
3月前
|
SQL 缓存 Java
JVM知识体系学习三:class文件初始化过程、硬件层数据一致性(硬件层)、缓存行、指令乱序执行问题、如何保证不乱序(volatile等)
这篇文章详细介绍了JVM中类文件的初始化过程、硬件层面的数据一致性问题、缓存行和伪共享、指令乱序执行问题,以及如何通过`volatile`关键字和`synchronized`关键字来保证数据的有序性和可见性。
46 3
|
4月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
149 2
前端JS读取文件内容并展示到页面上
|
4月前
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
|
3月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
242 0
|
4月前
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
5月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
155 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据