【发布时间】:2014-03-26 11:39:56
【问题描述】:
我有一个简单的 firefox 插件 (addon-sdk),如果响应的内容类型与一组内容类型匹配,它会侦听 http 响应并阻止。现在,当我对收听图像、javascript 文件和 ajax (XHR) 响应不感兴趣时,观察者会收听所有响应。我能否以某种方式过滤掉或至少找出响应属于 XHR 请求,这样我就不会浪费资源来处理响应。
类似的事情可以在 chrome 扩展中实现,其中“details.type”可以是 main_frame、image、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;
}
}
}
【问题讨论】:
标签: javascript ajax firefox firefox-addon