4

新しいjQuery v1.4はこれを言います...

jQuery.ajax() がタイマーの代わりに onreadystatechange を使用するようになりました

Ajax リクエストは、ポーリングの代わりに onreadystatechange を使用することで、より少ないリソースを使用するようになりました。

これが何を意味するのか正確にはわかりませんが、私のサイト (Facebook、myspace などのソーシャル ネットワーク) では、ユーザーが受け取る通知があります。AJAX を定期的に呼び出して、ページに表示する新しい通知があるかどうかを確認します。そのようなものが行われる方法を改善しますか?

4

3 に答える 3

4

はい、それはあなたのサイトを改善します。サイトが使用する AJAX の量によっては、呼び出し中に使用されるシステム リソースが少ないほど、速度の向上は顕著ではありません。

IE6 はサポートしていないonreadystatechangeので、IE6 のタイマーにフォールバックすると思いますが、XMLHTTPRequest の他のほとんどのブラウザー実装はそのイベントをサポートしています。イベント コールバックは常に、ポーリング スクリプト (数ミリ秒ごとに何かをチェックする) よりも少ないリソースを使用します。

IE6について

onreadystatechange イベントは、Windows Internet Explorer 7 で導入されました。出典: MSDN

于 2010-01-15T14:40:39.103 に答える
1

2ダグ・ナイナー

IE 6は、イベントonreadystatechangeを確実にサポートします。XPsp2のIE6.0.2で今すぐ見ることができます。MSDNは、オブジェクトXMLHttpRequestがIEのバージョン7以降、そのすべてのイベントを含めてサポートされていると述べています。最新のライブラリ(jQueryなど)は、onreadystatechangeイベントをサポートするオブジェクト「Microsoft.XMLHTTP」または「Msxml2.XMLHTTP」を手動で作成することでこれを回避します。ここでの例(MSDN)。

幸運を。

PSはここで「onreadystatechangejquery」を検索するグーグル結果のトップ10でこのスレッドをcozと答えました

于 2010-11-15T12:15:53.177 に答える
0

onReadyStateChange is a property on the xmlHttpRequest object. It looks like $.ajax was previously polling the xhr to see if it was ready, but is now instead listening to the actual event. This would mean that it consumes less javascript resources, it does not relieve you of any server resources, because you still have to do AJAX polling in that sense. So it's not really a new technique that you have to implement or something, it's just a difference in what goes on behind, and to utilize that improvement, all you have to do is to switch to the new version.

I'm guessing (but I'm not sure), that now that they use onReadyStateChange, you can also pass your own callback methods to that event, which would allow you to do Comet ("AJAX Push"), which could potentially improve your server-side performance. But be aware that Comet can be tricky to implement :)

于 2010-01-15T14:44:43.120 に答える