0

私はswfobjectを使用して自分のサイトにフラッシュオブジェクトをロードしていますが、大量のデータを含むページでは非常にゆっくりとロードされます...まるでswfobjectがswfをロードする前にページがロードされるまで待機するかのようです。

swfobjectを使用したページの例を次に示します。http://www.tripline.net/trip?id = 066434736132100383DB8A184B7D8D17

swfobjectコードをiframe(srcとしてswfを使用)で変更するか、オブジェクト埋め込みを使用すると、フラッシュオブジェクトの読み込みがはるかに速くなります...ページの残りの部分が読み込まれる前に。

そのページにできるページの読み込み時間の改善がたくさんあることは知っていますが(私もそれに取り組んでいます)、swfobjectの使用方法に特定の変更を加えることができるかどうか疑問に思っていますiframeやオブジェクトの埋め込みと同じ読み込み速度を得るには?

4

1 に答える 1

3

試すべきことがいくつかあります:

静的公開を使用します。

embedSWF()コンテンツをswfに置き換える前に、HTMLDOMの準備ができるまで待機します。静的公開では、JavaScriptを使用せずにオブジェクトを埋め込む標準的な方法をサポートするブラウザーは、要素に到達するとすぐにswfの読み込みを開始し<object>、DOMの準備ができたらswfobjectがjavascriptにパッチを適用します。これにより、swfの表示が少し速くなります。

可能であれば、さらに多くのJavaScriptをページの下部に移動します。

(私はめったにそうしませんが)JavaScriptはスクリプトが(ロードされて)実行されるまで(ほとんどのブラウザーで)DOM解析をブロックするため、後でswfに到達することを意味します。

動的パブリッシングは引き続きDOMの準備ができるのを待つため、これは静的パブリッシングにのみ実際の違いをもたらします。ページ上のすべてのスクリプトが読み込まれて実行されるまで、 DOMの準備はできません。これは、スクリプトが配置されている場所に関係なく、ほぼ同じ時間で実行されます(スクリプトを下部に移動することで他のブロッキングの問題が解消されない限り)。

createSWFで遊んでください(非推奨)

createSWF()DOMの準備ができるのを待ちません。最近のDOM操作に関するswfobjectの内部動作についてはほとんどわかりませんが、動的公開の場合は、プレースホルダーを追加した直後に呼び出すことができる場合があります。DOMのプレースホルダー部分は、その時点(ほとんど)準備ができています(たとえば、ここを参照)。

しかし、それはすべて、swfobjectが最近舞台裏で対処したいページの他の部分と、将来のバージョンで何をする可能性があるかによって異なります。DOMの準備が整う前にDOMを操作すると、ブラウザがパーツを2回レンダリングする場合もありますが、これは明らかにパフォーマンスに役立ちません。要するに、お勧めしません。

于 2012-01-29T02:48:51.900 に答える