web-dev-qa-db-ja.com

メインスレッドの同期XMLHttpRequestは廃止されました

Firefoxコンソールにこのメッセージが突然表示されるようになったのはなぜですか?

JQuery 1.7.1を使用しています。

このメッセージが表示される原因となったアプリで何ができますか?

37
1DMF

JQueryを使用してスクリプトタグをドキュメントに追加すると、async:falseでスクリプトがロードされ、この警告がトリガーされます。

次のように:

var script = $("<script></script>");
script.attr("src", player.basepath + "whatever.js");
$(document.body).append(script);
39
Jason Kester

同期XHR/Ajaxを実行するコードがあります。つまり、完了するまでブロックするAjax要求です。

JQueryを使用する場合は、jQuery.ajax()の設定オブジェクトで_async: false_を指定することによりこれを行います。

解決策は、同期リクエストを行うコードをリファクタリングすることです。つまり、jQuery.ajax({async: false})およびヘルパー関数のすべてのインスタンスを削除し、xhr.open(..., false)を使用して、使用するサードパーティライブラリにコードを含めます。 。また、jQuery 1.7.1はWebの標準ではかなり古いため、特定の場合にそのjQueryバージョンが内部同期要求を引き続き行うかどうかはわかりません。その場合も確認し、jQueryをアップグレードする必要があります。

15
nmaier