我有一个大约10-12页的网站,整个使用jQuery / Javascript。由于并非每个页面都需要所有脚本,因此我目前正在使用switch
语句在任何给定页面上仅输出所需的JS,以减少请求数量。
我的问题是,性能效率如何?如果不是,有没有其他方法可以选择性地加载页面上所需的JS?
答案 0 :(得分:3)
这可能根本没有必要。
请记住,如果正确设置了缓存,嵌入JavaScript只需要在第一次加载时花费时间 - 每个后续请求都来自缓存。
除非你有很大的例外(例如,使用巨大的JS库的特定页面),我会考虑随时嵌入所有内容,也许使用缩小,所以一切都在一个小文件中。
但是,我发现您使用的方法没有任何性能问题。毕竟,它是关于决定是否输出一行代码。从长远来看,使用最易读和可维护的方法。
答案 1 :(得分:2)
由于您已经使用了JS,因此可以完全使用JS解决方案 - 例如,您可以使用yepnope而不是php。我不知道你的网站的结构是什么,以及你如何确定哪个页面需要什么或者包含什么内容(在加载时,在某些远程事物完成交付数据之后),但是如果你广泛使用$ .ajax,你也可以使用yepnope来获取额外的JS,一旦$ .ajax完成它本应该做的就完成了。
答案 2 :(得分:1)
您可以放心地假设javascript已在客户端正确缓存。
我还假设您提供了一个缩小的文件,看到您网站的大小我会说性能可以忽略不计。
答案 3 :(得分:1)
最好将所有JavaScript放在一个单独的“.js”文件中,并在页面中引用此文件。
原因是浏览器会有效地缓存此文件,每次会话只会下载一次(或更少!)。
唯一的缺点是,如果更改脚本,则需要“刷新”几次。
答案 4 :(得分:0)
所以,经过修补,我决定试试LABjs。它运行良好,因此我的代码不那么臃肿。考虑到我的网站规模,性能没有明显提高,但现在代码更加可维护。
有趣的是,我的标题中有一个像facebook一样的按钮。在分析了firebug中的请求后,我决定将其删除,并在页面加载时间上获得惊人的2秒。神圣的废话是这个该死的东西... ...
感谢所有答案!