浏览器输入网址打开 和 打开后 ctlr+F5 清除缓存的刷新 为什么打开时间差别很大

zxCoder 1月前 28

最新回复 (10)
  • cnleon 1月前
    引用 2
    打开调试看看就知道啊。直接打开:原先下载的文件要么本地缓存了,要么服务器就直接返回 304 了,而 ctrl+F5 是全部重新下载。
  • justfun 1月前
    引用 3
    阿这… 你自己的标题都回答自己了。因为原先从缓存加载就行了 现在全重新请求一遍呗
  • yfwl 1月前
    引用 4
    因为有缓存和没缓存的区别
  • 楼主 zxCoder 1月前
    引用 5
    @cnleon
    @justfun
    @yfwl

    那不应该是输入网址打开快吗。。。。我是输入网址直接打开慢了三四秒啊
  • imn1 1月前
    引用 6
    网页刷新有三种方式(从客户端看):
    1. Ctrf-F5 对应的全新打开,除了 DNS 外,全部请求,跟第一次打开是基本接近的
    2. F5 对应的方式,根据缓存及其时间,刷新时,网页或文本性质的会重新向服务器发出请求,其他的先从缓存获取(过时的缓存,即使还存在客户端,也要重新请求并传送一次)
    3. 地址栏原 url 回车(注一:是指网页已经加载,并非第一次打开时),或者 location.href 实现,对应的方式是,仅发出主要页面的请求,其他内容全部从缓存获取(不计算缓存的时间),只有缓存不存在的内容,才会发出请求。注二:如果缓存空间大,已打开网页不多,即使过了缓存时间,浏览器也不会马上清掉这些过时的缓存的,这视乎浏览器的策略,所以有些过时的缓存,这种方式也不需要重新请求传送

    显然第三种是最快的,但目前的浏览器基本没有第三种方式的按钮,要么自己回车,要么通过脚本或扩展实现
  • ToGo 1月前
    引用 7
    CTRL+F5 强制刷新缓存
  • imn1 1月前
    引用 8
    补充:
    上面#5 所说的第三种方式,甚至外部 css 和 js 都不会发出请求
    有些网站在 css 后面加上随机数字,css-url?12345 这种,就是避免这种情况,因为刷新网页时,这个随机数字就变了,浏览器会认为这个 css 不存在(缓存是根据完整 url 作为 key 的),而重新请求。这样能保证一些内容变化快,且不同的内容对应不同的 css 项目,而保证 css 是当前内容最合适的,因为有些 css 文件不是固定的、全部发向客户端的,而是服务器用程序动态拼出来的
  • LGA1150 1月前
    引用 9
    @zxCoder ctrl+f5 不会刷新系统 DNS 缓存,说不定是解析慢?
  • systemcall 1月前
    引用 10
    @imn1 #5
    刷新页面会重新提交表单,但是地址栏输入 URL 不会
    请求头应该有区别
  • 楼主 zxCoder 1月前
    引用 11
    @LGA1150 我猜是确实这个原因。。。
  • 游客
    12
返回