为什么 chrome.webRequest.onBeforeRequest callback(request) 在重新加载时触发的次数比首次加载时少?我如何驾驶室使两者一致?

问题描述

出于某种原因,Chrome 扩展 API 中的 chrome.webRequest.onBeforeRequest 在您首次加载页面时会触发不一致数量的回调(请求),而不是在您重新加载同一页面时。

只需将以下内容添加到 google 扩展程序的 background.js 文件中,您就可以观察到我所描述的内容

let requestCount = 0

chrome.webRequest.onBeforeRequest.addListener((request) => {
    // resets the count when page is starting to load
    if (request.type == 'main_frame') {
        requestCount = 0
    } 
    requestCount++
    console.log('request count: ',requestCount);

},{urls: ['<all_urls>']})

例如,如果您使用以下 url https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API 进行测试。

在第一次加载时 onBeforeRequest 将触发 21 次。

request count:  21

然后,如果您重新加载页面onBeforeRequest 将触发 9 次。

request count:  9

(这个模式在我试过的所有页面中都是一致的)

是什么导致了这种情况?

我该怎么做才能使 onBeforeRequest 表现得好像页面是在每次加载时首次加载一样?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)