某些.js页面未及时加载

时间:2012-05-31 18:13:14

标签: javascript javascript-events

我的网站上有某些页面加载了大量的javascript文件。在下面的代码中,edit_onload()位于script1.js中。通常,所有脚本都可以正常加载,并且edit_onload会成功触发。有时它似乎就像script1.js没有及时加载,因为edit_onload()错误与对象预期。如果刷新页面,一切都会正常加载。

我的问题是,下面的标签是否应该等待加载所有.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>

1 个答案:

答案 0 :(得分:0)

我认为,处理延迟脚本的实现是特定于浏览器的。例如,他们可以处理不同队列中的内联和外部脚本。通常,“延迟”属性只是网站开发人员为用户代理提供的建议,但用户代理不一定遵守建议。

你也应该尝试使用'defer =“defer”'。你可以将调用移到script1.js本身吗?您还可以定期检查移动到正在加载的内容末尾的特定元素的存在,并仅在发现该元素后运行该方法。

顺便说一下,如果使用dynamic script loading比喻,你可能会获得对脚本加载的更多控制权(链接只是其中一个例子)。