4

RFT(Rational Functional Tester)を使っ.readyStateてプロパティをチェックします。BrowserTestObject

テスト スクリプトの次のステップの前に、ページが「準備完了」で、すべてのオブジェクトが読み込まれていることを確認する必要がある場合があります。

ブラウザ内のすべてのオブジェクトがロードされ、準備ができて.readyState == 4いるということですか? バックグラウンドでの ajax呼び出しはまだ「機能」している可能性がありますか、それともブラウザーが戻る前に終了する必要がありますか? フレックスアプリケーションはどうですか?.readyState=4

その動作はブラウザに依存していないのでしょうか? 私はIE 8(およびfirefox 3.6.x)の後です

4

2 に答える 2

3

ブラウザの実装が正しい場合、簡単な答えは「はい」です。

ここを参照してください: http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#current-document-readiness

于 2012-02-29T00:14:45.080 に答える
2

私はノーと言うでしょう。ここでの議論を理解していれば、使用されるreadyStateはテストJavaScriptのみを参照し、他には何も参照しません。ドキュメント自体が読み込まれるのを待つには、 にフックしdocument.readyStateて になるのを待つ必要があります"complete"document.readyStateその場合、HTML の解析が完了すると、完全に終了し、"complete"XMLHttpRequest の影響を受けなくなります。Flash プラグインが開始できた、または開始できなかった。ほとんどの場合、多くの JavaScript が実行されます。たとえば$(function() {})、jquery のコンストラクトは、多くの場合、ブラウザーが「完了」状態になった後にのみ JavaScript コードの実行を開始できることを意味します。

非同期リクエストが発生しているかどうかをテストするには、すべての XMLHttpRequests の readyState イベントをフックして、グローバル変数を更新するようにすることをお勧めします。

于 2012-03-06T20:33:20.197 に答える