动态javascript加载

时间:2015-10-22 12:12:37

标签: javascript html performance dynamic-loading

我有一些抽象的问题。 假设我有一个使用1000多个JS脚本文件的网站。 (不是一次,但如果用户遍历所有现有流程,则需要整个1000多个JS脚本。)

我知道使用RequireJS我可以动态加载我需要的任何脚本,这样可以节省我很长时间将它们全部加载。 但是!

为了让RequireJS加载JS文件,需要客户端下载它们。 那么当我第一次打开网页时,我会下载超过1000个JS脚本文件,这需要很长时间!

我想知道是否有任何动态加载方式也可以从远程动态下载它们。 我知道为了最好地发挥作用,必须有一些聪明的机制,在尝试使用它们之前完成下载,否则它会减慢速度。

无论如何,我希望你理解我的问题,我想避免在我第一次打开页面时下载1000多个文件。我希望他们能够按需下载。

我不能将它们组合到一个文件中,就像很多网站一样。

感谢您的帮助和讨论:)

1 个答案:

答案 0 :(得分:0)

我的猜测是你正试图实现'延迟加载'。 您可以将此插件用于require: https://github.com/nikospara/require-lazy

在这里阅读更多内容: http://www.joezimjs.com/javascript/lazy-loading-javascript-with-requirejs/

这里的主要思想是,不是在页面加载时加载所有依赖项,而是提供加载必要项的方法,并在需要时调用该方法

例如:(用户点击按钮后加载文件)

$('#somebutton').on('click', loadFiles);

function loadFiles() {
    require(['every', 'javascript', 'dependency', 'for', 'other', 'screen'], 
    function(ev, js, dep, fr, othr, scrn){
            // Create the screen with your dependencies
    });
}