2

HTML5 を使用した高度な効果に関する WWDC12 のビデオをもう一度見ていましたreq.addEventListener("load",callback,true)が、通常の ではなくデモが使用されていることに気づきましたonreadystatechange

state=4 status=200load イベントとシチュエーションの違いは何ですか?
起動されているのは同じロード イベントですか、それとも 2 つの異なるイベントですか?

4

1 に答える 1

0

このloadイベントは、リクエストがネットワークで成功したことを示すだけであり、必ずしもHTTPで成功したとは限りません。ネットワークトランザクションの成功または失敗を示す、常にloadイベントまたはイベントのいずれかを伴うAjaxリクエスト( Progress Events仕様の一部として):error

  • このerrorイベントは、サーバーがダウンしているか、アクセスできないドメインにあるためにネットワークフェッチが失敗した場合に発生します(つまり、要求は同一生成元ポリシーによってブロックされます)。

  • それ以外の場合は、load返されたHTTPコードに関係なく、起動します。

loadorイベントは、最後のイベントがerror発生した後、常に最後に発生するため、 orコールバックが実行され、正しいHTTP応答コードに設定されているreadstatechangeことを確認できます。loaderrorxhr.readyState == 4xhr.status

于 2012-11-13T18:25:57.150 に答える