2 个回答

浏览器会根据返回头cache-control做相应的缓存:
单页面第一次请求main.js,可能有好几兆的大小,要花点时间;
刷新页面,同样的请求main.js,浏览器会将上次请求main.js的返回头部信息,last-modified,etag等判断文件是否修改的标识给服务器,服务器返回的头部信息一致,表示该文件并未修改,那浏览器就不需要从服务器拉资源,从缓存中拿就好,自然快很多。
这其中主要受cache-control控制,有强制缓存,一定时间不访问服务器直接从disk-cache中获取,此时code为200;有协商缓存,就上上面说那种,会返回304,指向缓存。还有不缓存,就什么都不问,直接从服务器从新获取。

随便找个网站,f12打开瞅瞅就明白了,看看code和size(disk cache或者memory就是缓存里获取的)的值。

因为资源已经加载好, 并被缓存了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题