ホームページ  >  記事  >  ウェブフロントエンド  >  複数の Ajax ページ要求とページ読み込みのブロック問題を解決する方法

複数の Ajax ページ要求とページ読み込みのブロック問題を解決する方法

一个新手
一个新手オリジナル
2017-10-16 09:31:052589ブラウズ

プロジェクト内で複数の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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。