在我的 Firefox 扩展代码中,我在观察 Facebook 中的 AJAX 请求后执行了某种(相当繁重的计算)功能。鉴于现在 Facebook 非常依赖它们,并且在较短的第二周期内生成了许多请求,它正在减慢扩展程序的性能!简而言之,现在我有以下内容:
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
if (topic == "http-on-modify-request")
{
var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
if (httpChannel.URI.spec.search("facebookj.com")!=-1)
{
//setTimeout(function () {my_function();}, 2000);
}
}
}
};
但是,现在我想my_function
通过限制执行次数来执行,比如每分钟。换句话说,我想简单地跳过一些观察到的 HTTP 请求,如果它们发生的频率超过每三秒一次!
我是否将超时附加到观察者功能?或者我是否声明一个观察到的全局计数器,http-on-modify-requests
然后my_function
仅在每三个之后调用一次?还是有更好的方法来做到这一点?