我目前正在开发一个包含几个非常大的Javascript文件的网站。这些文件导致页面的加载时间变得非常慢。
javascript文件的输出最初隐藏在几个jquery选项卡后面的用户。我想知道是否只有当用户点击这些特定标签时才能加载文件,这样网站的初始加载时间就不会很慢?
答案 0 :(得分:3)
可以根据需要动态加载Javascript文件。
这将是一个异步操作,因此您将开始加载过程,然后一段时间后,脚本将被加载并可供您使用。
在jQuery中,您可以使用$.getScript()
。
示例:
$.getScript("test.js", function() {
// script is loaded now
// code that uses this script can go here
});
仅供参考,还有其他一些技术可以改善您网站的加载时间。例如,您可以将所有非必要脚本(那些不涉及页面初始显示的脚本)放在<body>
的最后,就在</body>
标记之前。这将允许您的页面显示而不等待加载这些脚本。
脚本也可以标记为async
和defer
,以便页面加载的其他方面不会等待它们加载。
关于这个主题的其他有用的参考资料:
load and execute order of scripts
improving website performance by dynamically loading javascript?
答案 1 :(得分:0)
是的,你可以这样做。看到 http://community.sitepoint.com/t/dynamically-loading-js-script/40207/15
在写出src
属性时,您可能必须在文件名中进行一些字符串连接,以便加载您需要的不同文件