在 Chrome 扩展程序中捕获资源大小

发布于 2024-12-11 17:18:20 字数 933 浏览 0 评论 0原文

我正在尝试编写一个 Chrome 扩展程序,它采用 URL 并显示浏览器显示 URL 指向的页面所需的所有资源,以及它们在网络上的大小(压缩)和客户端上的大小(解压缩)。

我已经能够通过向 添加侦听器来利用所需的资源chrome.experimental.webRequest.onCompleted。但是,此回调不允许我查看标头的大小。

我认为向 chrome.experimental 添加监听器。 devtools.network.onRequestFinished 调用 chrome.experimental.devtools.network.getHAR 可以解决问题,但我无法在 chrome.experimental.devtools.network 当我收到错误 Uncaught TypeError: Cannot read property未定义的“网络”。

有什么想法吗?

I'm trying to write a Chrome extension that takes a URL and shows all the resources the browser needs to display the page that URL points to, along with their sizes over the network (compressed) and sizes on the client (decompressed).

I've been able to tap into required resources by adding a listener to chrome.experimental.webRequest.onCompleted. However, this callback doesn't allow me to see the size of headers.

I think that adding a listener to chrome.experimental.devtools.network.onRequestFinished which calls chrome.experimental.devtools.network.getHAR would do the trick, but I'm not able to use anything in chrome.experimental.devtools.network as I get the error Uncaught TypeError: Cannot read property 'network' of undefined.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

镜花水月 2024-12-18 17:18:20

如果压缩后的大小在 header 中,你可以这样获取:

chrome.experimental.webRequest.onResponseStarted.addListener(
  function(details) {
    for (var i = 0; i < details.responseHeaders.length; ++i) {
      if (details.responseHeaders[i].name === 'Content-Length') {
        console.log(details.url + ': ' + details.responseHeaders[i].value +
                    'bytes');
      }
    }
  },
  {},
  ["responseHeaders"]);

If the compressed size is in the header, you can get it like this:

chrome.experimental.webRequest.onResponseStarted.addListener(
  function(details) {
    for (var i = 0; i < details.responseHeaders.length; ++i) {
      if (details.responseHeaders[i].name === 'Content-Length') {
        console.log(details.url + ': ' + details.responseHeaders[i].value +
                    'bytes');
      }
    }
  },
  {},
  ["responseHeaders"]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文