ホームページ  >  に質問  >  本文

javascript - jqueryのload()同期ブロックについて

ここで、ページのヘッダーとフッターをメイン ページに個別に読み込む必要があります。iframe を使用するとパフォーマンスが悪く、純粋な HTML ページを使用して php の include メソッドを使用してページを直接読み込むことはできません。 Reactやangularなどのフレームワークのテンプレートもインポートできます。習ったことがなかったので、よく考えた結果、jqueryのload()でロードするしかありません。問題は、loadメソッドがメインエラーを引き起こすことです。同期スレッドがブロックされると、ページのエクスペリエンスが非常に悪くなります。

リーリー

私の質問は次のとおりです:
1.メインスレッドのブロックを避けるために、Ajax メソッド $.get や $.post のような非同期読み込みにロード メソッドを設定することはできないでしょうか? load() によって引き起こされるメインスレッドのブロック問題を解決するにはどうすればよいですか?
関連情報を読んだところ、h5 Worker を使用するとメイン スレッドのブロックを回避できるようですが、これが解決する唯一の方法ですか? Worker を使用したことがありません。

2. 私のニーズとして、記事で説明した方法に加えて、現在の状況ではどのように解決すればよいでしょうか? ヘッダーとフッターの読み込みを解決するには、企業開発のどの方法が最適ですか?

問題の解決に協力してくれる皆さんを歓迎します、ありがとう!

天蓬老师天蓬老师2682日前588

全員に返信(3)返信します

  • 滿天的星座

    滿天的星座2017-05-19 10:22:45

    load() はデフォルトで非同期にロードされ、メインスレッドがブロックされることはありません。したがって、警告にある同期ブロックの問題は、ここでの単一のload()によって引き起こされたものではありません。後でサブページを確認したところ、サブページに <script src="*"> があることがわかりました。そこでサブページの外部js紹介を削除し、警告も消えました。したがって、これは、load() およびサブページに外部 js が導入されたことによって引き起こされる同期ブロック警告です。

    返事
    0
  • ringa_lee

    ringa_lee2017-05-19 10:22:45

    1. このメソッドの最下層は、$.ajax() メソッドを呼び出して、サーバーに ajax リクエストを送信します。したがって、デフォルトでは非同期でロードされ、メインスレッドがブロックされることはありません。
    。ただし、デフォルトは非同期読み込みであるため、ページの主要部分が最初に表示され、その後サーバー側のヘッダーとフッターのデータが返されてページに挿入される可能性があります。ページ、ヘッダー、フッターが同時に表示される場合は点滅します。
    2. 私が遭遇した状況は、ページのヘッダーとフッターが比較的固定されているため、ヘッダーとフッターを記述したテンプレートページを作成し、ページのメイン部分に iframe を埋め込むことができます。状況に応じて iframe のアドレスを設定します。

    返事
    0
  • 某草草

    某草草2017-05-19 10:22:45

    1もちろんです。

    リーリー

    2. 通常、base.html を作成するために、head と tail を作成します。PHP を使用すると、base.html を拡張します

    返事
    0
  • キャンセル返事