有人可以解释一下 Google Chrome 内存缓存吗?

2024-04-09

根据this https://developer.chrome.com/extensions/webRequest#CachingAPI 文档,这是我找到的唯一描述内存缓存的来源:

Chrome 使用两种缓存——磁盘缓存和非常快的内存中缓存 缓存。内存缓存的生命周期附加到生命周期 渲染进程的一部分,大致对应于一个选项卡。要求 从内存缓存中得到的响应对于 Web 请求是不可见的 API。如果请求处理程序更改其行为(例如, 根据阻止请求的行为),一个简单的页面 刷新可能不尊重这种改变的行为。为了确保 行为发生变化,调用 handlerBehaviorChanged() 进行刷新 内存中的缓存。但不要经常这样做;刷新缓存是 非常昂贵的操作。你不需要打电话 注册或取消注册事件后的 handlerBehaviorChanged() 听众。

我需要更好地了解内存缓存。具体来说,我需要 Chrome 在每次访问网站时生成完整的 webRequest/资源瀑布,包括刷新页面。显然,如果使用内存缓存,则情况不可能如此。

当我创建新选项卡时,内存缓存是否会为新选项卡清理干净?

“非常昂贵的操作”在数量上意味着什么?

如果我每次在同一选项卡中重新加载页面时都调用 handlerBehaviorChanged() ,这会保证完整的瀑布流吗?在这种情况下,10 分钟内 20 次的限制似乎相当低。

非常感谢任何帮助,谢谢!


就您而言,我认为您的问题在于长期缓存而不是内存缓存。在资源瀑布中,多个请求可以标记为已缓存。如果您愿意,可以通过多种方式来避免这种情况:

  • 按 CTRL+F5,而不是正常重新加载 (F5)。这将重新加载所有资源,我通常按 CTRL+F5 几次,尽管一次就足够了。
  • If you need that your page reload some specific resources from server each time any user visit you then you can use some of this techniques:
    • 最优雅的:配置您的服务器以在 HTTP 标头中返回缓存策略https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Cache-Control https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Cache-Control
    • 在您的请求中添加每次都不同的更改获取参数,例如使用毫秒。例如:https://www.gravatar.com/avatar/c6252fcbc3ce5fc144c11dedd75bce29?_=1501147200802 https://www.gravatar.com/avatar/c6252fcbc3ce5fc144c11dedd75bce29?_=1501147200802其中 1501147200802 每次重新加载都是不同的。这会混淆缓存,因此每次请求时都会从服务器加载资源。

请记住仅将这些规则应用于您真正需要的资源。否则,您的网络服务器将因不必要的请求而过载。

正如文档中提到的:内存缓存不适用于不同的页面渲染,即使对于相同的 url 和相同的选项卡 (内存缓存附加到渲染进程的生命周期),所以我认为这不适用于您的情况。每次显示页面时,渲染周期都会结束,如果再次渲染,则会开始另一个周期。例如:当第一次加载图像时,会出现在瀑布中,但同一页面上的后续请求不会出现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有人可以解释一下 Google Chrome 内存缓存吗? 的相关文章

  • Chrome 内联安装扩展无法正常工作

    我正在尝试使用新的 chrome 内联安装功能进行扩展 请参阅此处 http code google com chrome webstore docs inline installation html http code google co
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • Chrome 版 Firebug Lite 会破坏悬停效果和鼠标悬停事件

    我有一个奇怪的问题 使用时适用于 Chrome 的 Firebug Lite https chrome google com webstore detail firebug lite for google c bmagokdooijbeeh
  • Chrome 中的 V8 原生语法

    Nodejs 有特殊标志 allow natives syntax 是否可以将这样的东西传递给 Google Chrome 或者也许开发工具提供了其他方式来访问此类信息 running node with allow natives syn
  • Chrome 空 contenteditable 保留样式

    当我在页面中有可内容编辑的部分时 Chrome 似乎做了一些奇怪 有趣 令人困惑的事情 如果您有一段用 span 也许是其他标签 我不知道 应用了一个类 该类将附加样式应用于文本 字体系列 颜色等 然后删除可编辑部分中的所有文本 当您再次开
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 阻止特定 URL 进行测试的最佳方法是什么?

    我正在使用 Google Chrome 和 Fiddler 版本 4 4 观察一个网站 该页面正在使用 AJAX 来更新其数据 我想阻止特定的 URL 以测试如果它不起作用会发生什么 阻止 URL 最简单的方法是什么 你希望发生什么 转到自
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps
  • Ajax 与 chrome 扩展

    我将 url 发送到 chrome 扩展中的 php 文件 并需要获得响应 但不起作用 清单 json name Get pages source version 1 0 manifest version 2 description Get
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • 当 Chrome 中嵌套滚动中的数据更改时防止页面滚动

    我在页面中有一个固定大小的元素 带有 溢出 滚动 其内容经常更改 我预计该元素内部发生的更改会影响该元素的滚动 但不会影响页面滚动 但是当这个元素位于页面顶部时 页面本身开始滚动 我怎样才能防止这种情况发生 要重现此行为 我在 chrome
  • 如何使用chrome扩展文件系统api?

    嗨 作为例子 我想阅读 c x txt as text 和写 有关于 chrome fileSystem 的例子吗 注意 我不想向用户询问文件的路径 已经回答于Chrome 扩展 HTML 文件系统访问 https stackoverflo
  • Chrome/Firefox 中双美元符号选择器查询功能的来源是什么?

    Check 这个jsfiddle http jsfiddle net T2PMc 并查看控制台 没有定义 现在 打开一个全新的窗口 然后输入 进入控制台 它定义了一个函数 用于获取与选择器匹配的所有 dom 元素的 类似 jquery 的
  • 如何在自定义新标签页上显示 chrome 书签栏?

    我有一个问题 我构建 chrome 扩展并使用我的自定义页面覆盖 newtab 页面 书签栏显示在默认的 Chrome 新标签页上 但隐藏在我的自定义新标签页上 也许 有人有一些想法 如何使用 CHROME API 显示书签栏 请跳过诸如按
  • 安装后 CRX 在 chrome 中的位置?

    我正在做一个涉及浏览器扩展的项目 在 Firefox 中 我确实知道您下载扩展程序后的位置 在您的个人资料文件夹下 我想知道 Chrome 在安装它们后将 crx 隐藏在哪里 特别是在Mac中 我这样做是因为我发现通过查看其他人如何解决问题
  • Chrome 扩展:以编程方式检查元素和“复制 xpath”或“复制 css 路径”[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以以编程方式访问一个元素 比如说我悬停在其上的当前元素 并执行相当于右键单击它 转到 检查元素 在 元素 选项卡中选择它
  • 弹出窗口,中央屏幕

    我使用以下代码在 Google Chrome 扩展程序中打开弹出窗口 我的一个问题是 如何在用户屏幕中央打开弹出窗口
  • Android Chrome 忽略 -webkit-text-size-adjust:none 属性。缩小时文本会缩放

    我们的客户请求一个网站 但不想支付移动版本的费用 我们仍在使其在移动设备上运行 当完全缩小时 Android 4 0 上的 Chrome 会缩放一堆文本 我们尝试设置 webkit text size adjust none 属性 但它似乎
  • 使用 jQuery 选择焦点文本在 Safari 和 Chrome 中不起作用

    我有以下 jQuery 代码 类似于这个问题 https stackoverflow com questions 480735 在 Firefox 和 IE 中工作 但在 Chrome 和 Safari 中失败 没有错误 只是不起作用 有解

随机推荐