V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX  ›  浏览器

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

  •  
  •   zxCoder · 2021-03-18 19:44:58 +08:00 · 1927 次点击
    这是一个创建于 1370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    浏览器输入网址打开要等个三四秒

    10 条回复    2021-03-18 21:36:44 +08:00
    cnleon
        1
    cnleon  
       2021-03-18 20:21:09 +08:00
    打开调试看看就知道啊。直接打开:原先下载的文件要么本地缓存了,要么服务器就直接返回 304 了,而 ctrl+F5 是全部重新下载。
    justfun
        2
    justfun  
       2021-03-18 20:24:49 +08:00 via iPhone
    阿这… 你自己的标题都回答自己了。因为原先从缓存加载就行了 现在全重新请求一遍呗
    yfwl
        3
    yfwl  
       2021-03-18 20:32:47 +08:00
    因为有缓存和没缓存的区别
    zxCoder
        4
    zxCoder  
    OP
       2021-03-18 20:52:51 +08:00
    @cnleon
    @justfun
    @yfwl

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

    显然第三种是最快的,但目前的浏览器基本没有第三种方式的按钮,要么自己回车,要么通过脚本或扩展实现
    ToGo
        6
    ToGo  
       2021-03-18 21:06:18 +08:00
    CTRL+F5 强制刷新缓存
    imn1
        7
    imn1  
       2021-03-18 21:09:58 +08:00
    补充:
    上面#5 所说的第三种方式,甚至外部 css 和 js 都不会发出请求
    有些网站在 css 后面加上随机数字,css-url?12345 这种,就是避免这种情况,因为刷新网页时,这个随机数字就变了,浏览器会认为这个 css 不存在(缓存是根据完整 url 作为 key 的),而重新请求。这样能保证一些内容变化快,且不同的内容对应不同的 css 项目,而保证 css 是当前内容最合适的,因为有些 css 文件不是固定的、全部发向客户端的,而是服务器用程序动态拼出来的
    LGA1150
        8
    LGA1150  
       2021-03-18 21:25:53 +08:00 via Android
    @zxCoder ctrl+f5 不会刷新系统 DNS 缓存,说不定是解析慢?
    systemcall
        9
    systemcall  
       2021-03-18 21:28:39 +08:00
    @imn1 #5
    刷新页面会重新提交表单,但是地址栏输入 URL 不会
    请求头应该有区别
    zxCoder
        10
    zxCoder  
    OP
       2021-03-18 21:36:44 +08:00
    @LGA1150 我猜是确实这个原因。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1673 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.