2010-12-13 13 views
0

私はXHRを経由して非同期要求を送信することにどのような方法を探しています:Chrome拡張機能 - 非同期XHR?

http://code.google.com/chrome/extensions/xhr.html

実際に私は、ページがロードされた直後に要求を送信しようとしている:

$(document).ready(function() { 
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", "https://myserver.com/", true); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4) { 
      // Get logged user 
      username = $("div.user", xhr.responseText).text() 
        .replace(/.*\(([a-z0-9]*)\).*/, "$1"); 
     } 
    }; 
}); 

しかし、ユーザーエクスペリエンスそれはmyserver.comからデータを取得し、その直後にpopup windowを表示するまでフリーズします。

最初にポップアップウィンドウを表示した後、ユーザーにプッシュリクエストを開始した後に、テキスト/イメージを読み込んで表示する方法はありますか?すでにjqueryのを使用している場合

答えて

1

なぜ便利なjqueryのAjaxのラッパーを使用しない:

$(document).ready(function() { 
    getData(); 
}); 

function getData() { 
    $.ajax({ 
     url: "https://myserver.com/", 
     type: "GET", 
     dataType: "text", 
     success: function(data) { 
     username = $("div.user", data.replace(/.*\(([a-z0-9]*)\).*/, "$1"); 
     } 
    }); 
} 

はない<head>の内側が、<body>の終わりにそのスクリプトを入れてください。

$(document).ready(function() { 
    setTimeout(getData, 0); 
}); 
+2

私はクロームはこのように動作している理由は分からないが、setTimeoutメソッド(のgetData、0);:それはまだページをフリーズする場合は、setTimeoutを使用してみてください助けてくれた:-) –

関連する問題