在变量声明之前/之后运行脚本?

时间:2011-01-14 07:47:47

标签: php javascript html variables

据我所知,javascript .js文件最好一直放在html页面的底部,以加快页面其余部分的加载。由Yslow(雅虎)和Page Speed(谷歌)提供建议。

现在,当在页面中间某些东西运行一个javascript脚本时,在Internet Explorer中,我看到一条小警告消息,说明该元素是:Uncaught ReferenceError: SWFObject is not defined

当我将all.js文件放入had时,错误消失但页面加载速度慢。怎么办?

实际上,我记得它与php变量是一样的。如果我运行php但变量后来,那么它只是不起作用。必须首先定义变量,才能运行。

如果是php脚本,如何让这个工作流更好?如果是javsscripts?

谢谢!

2 个答案:

答案 0 :(得分:1)

你应该将你的库脚本放在头部(如swfobject,jquery等)。但是你所做的实际函数调用(例如用jquery绑定一个事件,或初始化一个swfobject embed)应该在最后。

如果你继续将事件处理程序之外的全局函数调用到minium并且不使用内联javascript或全局变量,这甚至更加有效。

答案 1 :(得分:1)

在页面中间运行javascript的“有些东西”是什么? 我们不使用<script>标签,我们放的所有javascript代码都是js文件,它们以严格的顺序加载(所以我肯定知道,当代码执行时,它使用的所有东西都在那里)。 (好吧,为了加快页面加载,我们将所有文件追加到少数,就像你可能做的那样,“all.js”)
如果您在html属性中使用脚本(例如onchange事件等),请尝试使用unobtrussive javascript(从javascript文件附加您的事件)。
如果这没有帮助,那么将你的javascript分成几个部分 - 最少需要加载页面并在加载其他部分之前执行一些东西(在页面的<head>中)。您将在</body>

之前加载的大部分脚本