プロジェクト内で複数のajaxロードが発生しましたが、ロードに問題があり、最初はロードできませんでした。
主な理由は次のとおりです: ブラウザーのレンダリング (UI) スレッドと js スレッドは相互に排他的であるため、時間のかかる js 操作を実行すると、ページのレンダリングがブロックされます。非同期 ajax を実行する場合は問題ありませんが、同期リクエストに設定すると、他のアクション (ajax 関数の背後にあるコードとレンダリング スレッド) が停止します。リクエストが開始される前の文に DOM 操作ステートメントが含まれている場合でも、この同期リクエストは実行時間を与えずに UI スレッドを「すぐに」ブロックします。これがコードが失敗する理由です。
1. 同期を非同期に書き換え、複数の Ajax リクエストを一緒にネストします。 、成功したら、最初のリクエストが先に終了するため、2 番目のリクエストの読み込みがブロックされないように、別の ajax リクエストを呼び出します。
2. jquery の Deferred オブジェクトを使用します。jQuery はバージョン 1.5 以降に Deferred オブジェクトを導入し、非常に便利な汎用非同期メカニズムを提供しました。
3. タイマー setTimeout() または setinterval() 関数を使用して、ajax が正常に返されたかどうかを定期的に確認します。
以上が複数の Ajax ページ要求とページ読み込みのブロック問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。