处理包含许多脚本文件的页面
Dealing with pages with many script files
我们的项目包含许多页面,其中最多有20个选项卡,每个选项卡都使用不同的脚本。所有脚本文件都在 <head>
中引用,并在第一次页面加载时加载。现在我们遇到了性能问题,因为打开页面时加载的脚本太多(每个选项卡大约 2k 行 JavaScript)。问题是在许多情况下,用户需要使用 2-3 个选项卡,结果超过 60% 的代码被不使用。因此,我们需要任何脚本延迟加载解决方案来简化页面。由于每个选项卡的 HTML 都是按需加载的,我们可以在每个选项卡中放置<script>
引用,这将提供一个良好的工作解决方案。但我确信包括不在<head>
中的引用是一种糟糕的风格。
所以我想知道,还有其他解决方案吗?在像我们这样的大项目中,这些问题是如何解决的?任何建议都会有所帮助。
提前感谢!
jQuery对于这个解决方案有一个很好的函数:
$.getScript("my_lovely_script.js", function(){
alert("Script loaded and executed.");
// here you can use anything you defined in the loaded script
});
默认情况下,这不会缓存。我在jQuery网站上寻找了一个解决方案,它指出这个解决方案用于缓存脚本包括。
jQuery.cachedScript = function(url, options) {
// allow user to set any option except for dataType, cache, and url
options = $.extend(options || {}, {
dataType: "script", //Note this
cache: true, //Enable caching
url: url
});
// Use $.ajax() since it is more flexible than $.getScript
// Return the jqXHR object so we can chain callbacks
return jQuery.ajax(options);
};
// Usage
$.cachedScript("URL HERE").done(function(script, textStatus) {
console.log( textStatus );
});
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 不显示带有本地json文件数据的谷歌地图脚本
- 导入jQuery脚本获胜'我不处理html文件
- 如何将模板中的标记脚本移动到.js文件中
- 在以前的文件夹中加载脚本
- 如何运行从TFS获取项目的windows脚本文件
- Yii2从js脚本的页面上添加来自供应商文件夹的图像、css、js文件
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 从我自己的脚本中包含的Javascript文件中调用一个函数
- 在HTML中,如果第二次加载相同的脚本文件,它还会被加载吗
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- jQuery getScript与在文件中嵌入脚本
- 什么's使用脚本标记调用文件和ajax之间的区别
- HTML文件脚本和CSS放置
- Google 云端硬盘:孤立文件脚本在包含所有文件之前就已停止
- 是否可以在没有PHP的情况下创建上传文件脚本(并被服务器接受)
- JS文件脚本错误:缺少;before语句<Script1.js#1>
- 未加载外部文件脚本
- 如何从网页中检索查询字符串.ASPX到我的HTML文件脚本
- 如何在php文件/脚本中使用node.js代码