プロジェクトにはそのような要件があり、ajax を使用してデータをロードし、ページを返して値を割り当て、フロントエンドで値を取り出します
これにはコードの順序が関係します。場合によっては、バックグラウンドでデータが返されていないにもかかわらず、後続のコードが実行されます。
そのため、値を取得できません
$.ajax({ type: "post", url: "admin/PfmOptionRuleItem.do", success: function(data){ $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //②
Ajax の最初の文字は非同期の最初の文字であり、すべての操作が並列であり、完了の順序に関係がないことを意味します。
$.ajax() の async パラメーターは常に true に設定され、これはリクエストの開始後も他のコードを実行できることを示します。
このオプションが false に設定されている場合、すべてのリクエストが非同期ではなくなることを意味し、ブラウザがロックアップする原因にもなります。
公式はこれを推奨していませんが、ユーザーエクスペリエンスが低下するため、あまり使用しないでください
栗をください
alert("setp 1"); $.ajax({ url: "admin/PfmOptionRuleItem.do", async: false, success: function(data){ alert("hello ajax"); //① } }); alert("setp 2"); //②
彼は①で待機し、①が完了するまで②は実行しません
現時点での実行順序は
設定 1
こんにちは、ajax
設定 2
async が true の場合、実行順序は
設定 1
設定 2
こんにちは、ajax
この記事で説明するajaxの非同期同期とjQueryの非同期について、皆さんの参考になれば幸いです。