0

最初はこれは奇妙な質問に思えるかもしれませんが、ここに私の問題があります。私は、window.load で div 位置を計算する Web サイトを開発しています。動的なスクロール イベントの強調表示があるためです (DOM Ready は、画像とコンテンツがまだ読み込まれておらず、div 位置の計算が正しくないため、これには間違った選択です。ページが完全にレンダリングされました。) ローカル アセットは完全に実行され、パフォーマンスが最適化されていますが、私の問題は、クライアントがソーシャル メディアの埋め込み (たとえば、Twitter のフォローや Facebook のようなボタン) を望んでいることです。Twitter はかなり速くレンダリングされるようですが、Facebook は非常に時間がかかり、window.load イベントの準備が整うまでに文字通り約 20 ~ 30 秒遅れることがあります。それが可能かどうかさえわかりませんが、

4

1 に答える 1

1

おそらく。ページ内のすべての JavaScript は、ブラウザーが遭遇した順序で実行されます。<script>そのため、要素内の最後の要素として要素を追加すると<body>(つまり、ページの下部に)、このコードは他のすべてのスクリプト コードが実行された後に実行されます。また、その時点で、コールバックがまだ行う可能性があること (タイマー、オンロード ハンドラー) を除いて、DOM は終了します (これ以上処理する HTML はありません)。

試してみることができるのは<script>、自分のコードと Facebook のコードの間に要素を挿入することです。しかし、それは DOM の準備が整っていないことを意味します。

より良い解決策は、Facebook コードをバックグラウンドでロードし始めることでしょうonload。つまり、ページの残りの部分はすべてそこにあり、Facebook は時間がかかる可能性があります。

于 2013-05-28T08:13:22.940 に答える