0

ページに Facebook ソーシャル モジュール/API があります。問題が発生し始めたばかりで、これを引き起こすFBからのall.jsの更新を見つけることができません。

IE8 で特定のページ モジュール (大量の DOM 要素を含む) を含めると、facebook の all.js ファイルが異常終了し、IE が停止して「応答しないスクリプト」ポップアップが返されます。

ページ上の DOM 要素の数を減らすと、ページは正常に読み込まれます。私はいくつかのページヒューリスティックなどを実行しました.all.jsを指していますが、詳細はわかりません.

他の誰かがこれに遭遇しますか?FBに再帰しないように、または無視するようにDOM要素に設定できる設定はありますか。

FB all.js が私のページをクロールしているようです。

問題を本当に解決するためのアイデアや方法。

ps この問題は、先週の火曜日のように指摘されました...彼らがコードをリリースしたときです。

それがall.jsであることをどのように知ることができますか?

  1. 自分のサイトですべてのサードパーティのスクリプトを 1 つずつホストファイルして、ページが無応答エラーをスローするタイミングを絞り込みました。

  2. facebook/all.js を除外すると、エラーがなくなります。

  3. ページに FB all.js を含めて他のモジュールを省略すると、ページの dom 要素の数 (と思われる) によっては、エラーが発生することもあれば、エラーが発生しないこともあります。FF は素晴らしい読み込みをします。IE8 は違います。

4

1 に答える 1

1

JS SDK がパラメーターxfbml=trueで初期化されると、DOM 全体を調べて、ソーシャル プラグインのいずれかと置き換える必要がある Facebook HTML5/XFBML タグが含まれているかどうかを確認します。IE 8 は最新のブラウザーではないためです。 、DOM 内の要素を照会する非常に効率的な方法 (getElementsByClassName など) を提供しないため、多くの要素を含む DOM でスクリプトが非常に長時間実行される理由である可能性があると思います。

xfbmlそのため、パラメータを明示的に false に設定して SDK の初期化を試みることができます。ページに解析が必要な XFBML タグがある場合は、 FB.XFBML.parseを使用して、特定の要素または DOM の一部のみを解析させることができます。これにより、繰り返し処理が必要な DOM ノードの数を減らすことができます。

試してみて、スピードアップに役立つかどうかを確認してください。

于 2013-03-12T09:02:06.903 に答える