浏览器输入网址打开要等个三四秒
1
cnleon 2021-03-18 20:21:09 +08:00
打开调试看看就知道啊。直接打开:原先下载的文件要么本地缓存了,要么服务器就直接返回 304 了,而 ctrl+F5 是全部重新下载。
|
2
justfun 2021-03-18 20:24:49 +08:00 via iPhone
阿这… 你自己的标题都回答自己了。因为原先从缓存加载就行了 现在全重新请求一遍呗
|
3
yfwl 2021-03-18 20:32:47 +08:00
因为有缓存和没缓存的区别
|
5
imn1 2021-03-18 20:57:48 +08:00
网页刷新有三种方式(从客户端看):
1. Ctrf-F5 对应的全新打开,除了 DNS 外,全部请求,跟第一次打开是基本接近的 2. F5 对应的方式,根据缓存及其时间,刷新时,网页或文本性质的会重新向服务器发出请求,其他的先从缓存获取(过时的缓存,即使还存在客户端,也要重新请求并传送一次) 3. 地址栏原 url 回车(注一:是指网页已经加载,并非第一次打开时),或者 location.href 实现,对应的方式是,仅发出主要页面的请求,其他内容全部从缓存获取(不计算缓存的时间),只有缓存不存在的内容,才会发出请求。注二:如果缓存空间大,已打开网页不多,即使过了缓存时间,浏览器也不会马上清掉这些过时的缓存的,这视乎浏览器的策略,所以有些过时的缓存,这种方式也不需要重新请求传送 显然第三种是最快的,但目前的浏览器基本没有第三种方式的按钮,要么自己回车,要么通过脚本或扩展实现 |
6
ToGo 2021-03-18 21:06:18 +08:00
CTRL+F5 强制刷新缓存
|
7
imn1 2021-03-18 21:09:58 +08:00
补充:
上面#5 所说的第三种方式,甚至外部 css 和 js 都不会发出请求 有些网站在 css 后面加上随机数字,css-url?12345 这种,就是避免这种情况,因为刷新网页时,这个随机数字就变了,浏览器会认为这个 css 不存在(缓存是根据完整 url 作为 key 的),而重新请求。这样能保证一些内容变化快,且不同的内容对应不同的 css 项目,而保证 css 是当前内容最合适的,因为有些 css 文件不是固定的、全部发向客户端的,而是服务器用程序动态拼出来的 |
9
systemcall 2021-03-18 21:28:39 +08:00
|