我有一些抽象的问题。 假设我有一个使用1000多个JS脚本文件的网站。 (不是一次,但如果用户遍历所有现有流程,则需要整个1000多个JS脚本。)
我知道使用RequireJS我可以动态加载我需要的任何脚本,这样可以节省我很长时间将它们全部加载。 但是!
为了让RequireJS加载JS文件,需要客户端下载它们。 那么当我第一次打开网页时,我会下载超过1000个JS脚本文件,这需要很长时间!
我想知道是否有任何动态加载方式也可以从远程动态下载它们。 我知道为了最好地发挥作用,必须有一些聪明的机制,在尝试使用它们之前完成下载,否则它会减慢速度。
无论如何,我希望你理解我的问题,我想避免在我第一次打开页面时下载1000多个文件。我希望他们能够按需下载。
我不能将它们组合到一个文件中,就像很多网站一样。
感谢您的帮助和讨论:)
答案 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
});
}