我有一个简单的firefox插件(addon-sdk),它监听http resposes并在响应的内容类型与一组内容类型匹配时阻止。现在,当我对收听图像,javascript文件和ajax(XHR)响应不感兴趣时,观察者会收听所有的响应。我能以某种方式过滤或至少发现该响应属于XHR请求,这样我就不会浪费资源来处理响应。在firefox插件中监听http响应时确定XHR(ajax)响应
类似的东西可以在Chrome浏览器扩展来实现,其中“details.type”可以main_frame,图像,XHR等
httpResponseObserver =
{
observe: function(subject, topic, data)
{
if (topic == "http-on-examine-response")
{
var channel = subject.QueryInterface(Ci.nsIHttpChannel);
var contentType;
try {
contentType = channel.getResponseHeader('Content-Type');
if (/\b(?:xml|rss|javascript|vnd|json|html|text|image|ocsp|x-shockwave-flash)\b/.test(contentType))
{
return;
}
}
catch(error) {
return;
}
}
}