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文件是否更新,更新的情况下下载新的文件到缓存,如果文件保持不变的话,不重新下载。

目录
相关文章
|
24天前
|
Rust JavaScript 前端开发
Node.js 添加对 TypeScript 的实验性支持
Node.js 添加对 TypeScript 的实验性支持
127 53
|
16天前
|
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下测试正常
|
1天前
|
缓存 JavaScript CDN
一次js请求一般情况下有哪些地方会有缓存处理?
一次js请求一般情况下有哪些地方会有缓存处理?
|
1月前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
83 5
|
2月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
2月前
|
存储 缓存 NoSQL
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
|
2月前
|
域名解析 存储 缓存
破解 DNS 缓存的秘密:一个简单实验揭示定时刷新背后的惊人真相!
【8月更文挑战第27天】本文介绍DNS缓存管理的重要性及其实现方法。DNS缓存用于快速响应重复的域名解析请求,但因IP地址变动需定期刷新以确保信息准确。文章提供一个基于Python的示例脚本,模拟DNS缓存刷新过程,包括添加、查询记录以及清除过期项等功能。尽管实际环境中这些任务常由专业DNS服务软件自动处理,但该示例有助于理解DNS缓存的工作机制及其维护策略。
41 0
|
2月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入
|
2月前
|
缓存 NoSQL 算法
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
|
2月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Windows版创建 Redis Cluster 实验 (精简版)
【Azure Redis 缓存】Windows版创建 Redis Cluster 实验 (精简版)