2

Chrome 拡張機能内の複数の HTML ページを取得して解析したいと考えています。

リクエストごとに Web Workers を使用することは、それらを並行して実行するための簡単な方法のように思えました。それは可能ですか?おそらく、既知のアクセス許可のバグであるため、試みは失敗しました。

回避策として、メイン拡張ページで複数の非同期 XmlHttpRequests を実行し、コールバックで結果ページを Web ワーカーに送信して並列解析を行うことができると思います。しかし、この方法では、Chrome が一度にいくつの非同期並列リクエストを作成できるかという疑問が生じます。その質問はここで尋ねられましたが、答えはありません。

私が書いている Chrome 拡張機能は Browser Action です。

ワーカーのコード:


// 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);
}

4

1 に答える 1

0

RequireJSCurlなどの非同期ローダーを試してみましたか?

彼の製品を使用する理由については、著者の説明を参照してください。

于 2011-05-11T18:04:58.723 に答える