当前位置: 首页 > 面试题库 >

当用户刷新网页时,js的请求有哪些地方会有缓存处理呢?

单于扬
2023-03-14
本文向大家介绍当用户刷新网页时,js的请求有哪些地方会有缓存处理呢?相关面试题,主要包含被问及当用户刷新网页时,js的请求有哪些地方会有缓存处理呢?时的应答技巧和注意事项,需要的朋友参考一下

请求大多会缓存到这几个地方:

  • Service Worker
  • Memory Cache
  • Disk Cache
  • Push Cache

1、Service Worker

Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。使用 Service Worker 的话,传输协议必须为 HTTPS。因为 Service Worker 中涉及到请求拦截,所以必须使用 HTTPS 协议来保障安全。Service Worker 的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。

  • 自由控制缓存文件
  • 可持续性缓存

2、Memory Cache

Memory Cache 也就是内存中的缓存,主要包含的是当前中页面中已经抓取到的资源,例如页面上已经下载的样式、脚本、图片等。读取内存中的数据肯定比磁盘快,内存缓存虽然读取高效,可是缓存持续性很短,会随着进程的释放而释放。一旦我们关闭 Tab 页面,内存中的缓存也就被释放了。

  • 容量小
  • 读取快
  • 缓存时间短

3、Disk Cache

Disk Cache 也就是存储在硬盘中的缓存,读取速度慢点,但是什么都能存储到磁盘中,比之 Memory Cache 胜在容量和存储时效性上。
在所有浏览器缓存中,Disk Cache 覆盖面基本是最大的。它会根据 HTTP Header 中的字段判断哪些资源需要缓存,哪些资源可以不请求直接使用,哪些资源已经过期需要重新请求。并且即使在跨站点的情况下,相同地址的资源一旦被硬盘缓存下来,就不会再次去请求数据。

  • 读取慢
  • 容量大
  • 缓存时间长

浏览器会把哪些文件丢进内存中?哪些丢进硬盘中?

  • 对于大文件来说,大概率是不存储在内存中的,存在硬盘中。
  • 当前系统内存使用率高的话,文件优先存储进硬盘。

4、Push Cache

Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。它只在会话中存在,一旦会话结束就被释放,并且缓存时间也很短暂,在 Chrome 浏览器中只有 5 分钟左右,同时它也并非严格执行 HTTP 头中的缓存指令。Push Cache 在国内能够查到的资料很少,也是因为 HTTP/2 在国内不够普及。

  • 只在会话中存在
  • 会话结束后就被释放
  • 缓存时间短
 类似资料:
  • 本文向大家介绍一次JS的请求哪些地方会有缓存处理?相关面试题,主要包含被问及一次JS的请求哪些地方会有缓存处理?时的应答技巧和注意事项,需要的朋友参考一下 1.DNS缓存:DNS缓存是指在正常访问ip之后,系统会将这个ip存储起来,当再次访问的时候,系统就会把本地的DNS缓存提取显示,等于是加速了网址的解析。 2.CDN缓存:CDN是Content Delivery NetWork的简称,即‘内容

  • 本文向大家介绍HTTP具体有哪些请求头是跟缓存相关的?相关面试题,主要包含被问及HTTP具体有哪些请求头是跟缓存相关的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 缓存分为两种:强缓存和协商缓存,根据响应的header内容来决定。 强缓存相关字段有expires,cache-control。如果cache-control与expires同时存在的话,cache-control的优先级高

  • 本文向大家介绍HTTP 请求支持的方法有哪些?相关面试题,主要包含被问及HTTP 请求支持的方法有哪些?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:

  • 本文向大家介绍iOS 缓存存储方式有哪些策略?相关面试题,主要包含被问及iOS 缓存存储方式有哪些策略?时的应答技巧和注意事项,需要的朋友参考一下 你可以设置缓存的数据需要保存多长时间,ASIHTTPRequest提供了两种策略: a,ASICacheForSessionDurationCacheStoragePolicy,默认策略,基于session的缓存数据存储。当下次运行或[ASIHTTPR

  • 问题内容: 如果这是我应该能够看到的,我深表歉意。我想要的所有术语都超载了.. 这是我的问题:当我打开一个页面时,它会触发一系列的ajax调用。如果我再按Shift + Refresh,则所有这些Ajax调用都被视为错误,并在重新加载整个页面之前显示其错误消息对话框。 所以错误是由客户端触发的-无论如何我是否可以找到这种情况,所以我可以忽略它?例如在xmlhttprequest或ajax函数中(我

  • 问题内容: 我有一个需要在网络上重复请求内容的应用程序。现在,服务器端实现遵循使用标头进行http缓存的标准。我想知道是否有扩展版本的HttpClient或其他工具来存储响应并与标头进行交互以进行自动缓存。如果没有一个很好的选择,那么我想跳过已有的工具。 谢谢 问题答案: Apache HttpClient 从4.1开始就引入了CachingHttpClient,但是Android默认仅包含4.0