0

私のサイトには、かなりの量の JavaScript ファイルをロードする特定のページがあります。以下のコードでは、edit_onload() は script1.js にあります。通常、すべてのスクリプトが正常にロードされ、edit_onload が正常に起動します。edit_onload() が予期されるオブジェクトでエラーになるため、script1.js が時間内にロードされていないように見えることがあります。ページを更新すると、すべて正常に読み込まれます。

私の質問は、以下のタグは、すべての .js ファイルが読み込まれるのを待ってから、edit_onload() を実行するべきではありませんか?

    <script LANGUAGE="javascript" DEFER="true" for="window" event="onload">
                <xsl:comment>
                    <![CDATA[

                    edit_onload();

                ]]>
                </xsl:comment>
            </script>
            <script language="javascript" src="/_scripts/script1.js" defer="true"></script>
            <script language="javascript" src="/_scripts/script2.js" defer="true"></script>
            <script language="javascript" src="/_scripts/script3.js" defer="true"></script>
4

1 に答える 1

0

遅延スクリプトの処理の実装はブラウザ固有のものだと思います。たとえば、インライン スクリプトと外部スクリプトを異なるキューで処理できます。一般に、'defer' 属性は、サイト開発者がユーザー エージェントに提供する推奨事項にすぎませんが、ユーザー エージェントは必ずしも推奨事項に従うとは限りません。

また、'defer="defer"' を使用してみてください。呼び出しを script1.js 自体に移動できますか? また、ロード中のコンテンツの最後に移動した特定の要素の存在を定期的に確認し、要素が検出された後にのみメソッドを実行することもできます。

ところで、動的なスクリプト ロードメタファーを使用すると、スクリプトのロードをより細かく制御できる可能性があります(リンクは例の 1 つにすぎません)。

于 2012-05-31T19:05:25.643 に答える