我应该在哪里包含JS文件

时间:2009-05-30 19:13:28

标签: javascript html include

我有一个PHP应用程序,其中有一个div容器,其中包含来自URL字符串的$_GET应用程序。

目前,有两个应用程序需要TinyMCE,一个应用程序需要jQuery和jQuery UI。

问题是,我应该在网页上包含哪些文件?

在标题中,页面加载速度非常慢,> 30秒(现在<10秒,使用不同的路由器),在底部,需要脚本的页面无法正确加载。

JS文件已经缩小并压缩。

由于安装了Zlib(由于GD),TinyMCE不会gZIP,所以我应该如何优化这种情况?

6 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

在底部并在文档完全加载时运行脚本(使用“onload”事件)。

答案 2 :(得分:1)

通过将JavaScript文件放在结束BODY标记之前,您可以在加载JavaScript文件时加载页面的其余部分。如果将其放在HEAD部分,页面将挂起,直到脚本加载。

如果加载标题需要30秒,您可能面临另一个问题。 TinyMCE不应该花30秒钟加载。

答案 3 :(得分:1)

对此可能没有一个正确答案。

通常将javascript放到<head>下工作正常,但30秒太过分了。我正在开发一个JavaScript应用程序,可以动态加载大约70个未压缩的javascript文件(有些非常大)并且不需要花费大约30秒。

解决此问题的信息太少。

答案 4 :(得分:1)

它有多少个JS文件?如果它很多,那么你可能想看看史蒂夫·索德斯为更快的网站幻灯片。下载JS文件是一个阻止操作。 Souders有一个很好的解决方案来处理脚本阻塞。检查http://www.thebitsource.com/2009/03/14/sxsw-interactive-2009-steve-souders-on-even-faster-web-sites/

中的PPT

另外,你从哪里服务JS?尝试从Google AJAX Libraries API提供jQuery。它使用他们的CDN和缓存很长一段时间。因此,用户只需要对文件进行一次扫描。

答案 5 :(得分:0)

我希望我的JS代码与XHTML完全分离,因此在主体结束标记不能为我做之前将其放在内联HTML中。

我在html头中声明了一个单独的JS文件。然后将所有Libraries等复制/粘贴到该JS文件中。这将导致一个HTTP请求,这也会加速移动浏览器的速度。

然后我使用Prototype来启动DOM敏感函数:

document.observe("dom:loaded", function) { // code goes here });