我想在 Chrome 扩展程序中检索和解析多个 html 页面。
对每个请求使用 Web Worker 似乎是一种让它们并行执行的简单方法。那可能吗?我的尝试失败了,可能是因为它是一个已知的权限错误。
作为一种解决方法,我想我可以让主扩展页面执行多个异步 XmlHttpRequest,然后让回调将结果页面发送到 Web Worker 以进行并行解析。但是这种方法提出了一个问题,Chrome 一次可以发出多少个异步并行请求?这个问题已经在这里问过了,没有答案。
我正在编写的 Chrome 扩展程序是一个浏览器操作。
工人代码:
// Triggered by postMessage in the page
onmessage = function (evt) {
var message = evt.data;
postMessage(message.count + " started");
update(message.count, message.url);
};
// parse the results page
function parseResponse(count, url, resp) {
var msg = count.toString() + " received response ";
postMessage(msg);
}
// read the Buganizer URL and parse the result page
var update = function(count, url) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
parseResponse(count, url, xhr.responseText);
}
}
xhr.onerror = function(error) {
var msg = "!>: " + count + ": error ";
postMessage(msg);
}
var url = "http://www.hotgrog.com"; // for testing (manifest has permissions for this url)
xhr.open("GET", url, true);
xhr.send();
postMessage(url);
}