0

XMLHttpRequestを送信するときは、常に数百バイトの余分なバイトが含まれています。通常の使用ではそれは良いです。しかし、速度を必要とするアプリケーションを構築する場合、これは信頼性にとっては良くありません。

function update(){
    var xhr = getXMLHttp(); // Normal catch handler for XHR
    xhr.open("POST", "update.php?r=" + "&chatvslog=" + user, true);
    xhr.send();
window.setTimeout("update();",300);
}

リクエストオーバーは、送信に170〜360ミリ秒かかります。問題は、この仕事をもっと早くする必要があるということです。

XMLHttpRequestを改善する方法や、これを別の方法で行う方法はありますか?

4

2 に答える 2

4

ポーリングは、小さなスケールで仕事をする悪い回避策ですが、実装するのに効率的で醜いものではありません。

最近のブラウザは、双方向通信を可能にするはるかに優れた方法としてWebSocketをサポートしています。node.jsのSocket.IOなどを使用すると、ブラウザーで使用可能なものにフォールバックする高レベルのWebSocket抽象化レイヤーを使用することもできます。WebSocket(推奨)やFlashソケット、AJAXなどの手法を使用できます。何が使用されているかを気にすることなく、ポーリングまたはJSONpロングポーリング。

于 2012-09-07T22:28:41.600 に答える
0

これはWebSocketが設計された目的ですが、IE(IE 10で提供されます)、または他の大きなブラウザーのいくつかの古いがまだ使用されているバージョンではまだサポートされていません。

http://caniuse.com/#search=websockets

それまでは、Cometをチェックしてください。

http://en.wikipedia.org/wiki/Comet_(programming)

于 2012-09-07T22:28:55.720 に答える