前面三篇实现了多个JS并行加载,即各个JS文件相互不依赖。实现时仅顺序将其插入到head中。直至全部插入完毕才进行回调。并行下载的好处是效率较高。
但有时我们需要加载的JS模块之间存在相互依赖关系。如a,b,c三个JS文件。b.js中代码依赖于a中定义的某些函数或类,c.js又依赖b.js中的函数或类,而c中具有一个入口函数。这时得保证a,b,c顺序加载,否则如果c早于b或a先加载完,则可能会出现xx未定义之类的错误提示。顺序加载的缺点就是效率较低,因为必须一个个的下载。
Queue LazyLoad 0.1版接口非常之简单,如下传个数组url即可
QueueLazyLoad.js([
{
url // JS路径
}
...
]);
看一个最简单的顺序加载示例,
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>QueueLazyLoad_0.1.js</title>
<script src="http://files.cnblogs.com/snandy/QueueLazyLoad_0.1.js"></script>
<script type="text/javascript">
var libs = [
{url:'http://files.cnblogs.com/snandy/a.js'},
{url:'http://files.cnblogs.com/snandy/b.js'},
{url:'http://files.cnblogs.com/snandy/c.js'}
];
function start(){
QueueLazyLoad.js(libs);
}
</script>
</head>
<body>
<button onclick="start()">Queue LazyLoad</button>
</body>
</html>
先引入了QueueLazyLoad_0.1.js,点击按钮后调用QueueLazyLoad.js方法。各个浏览器加载图如下
Firefox
Chrome
IE9
从各浏览器下载时间线可看到,时间线无重合部分。即a,b,c三个是顺序下载的。这样就保证了它们之间的依赖关系不会打乱。
- 大小: 13.9 KB
- 大小: 32.6 KB
- 大小: 6.9 KB
分享到:
相关推荐
例如,用于图片懒加载的jQuery.lazyLoad,或者用于表格排序的jQuery.dataTables等。 八、性能优化与兼容性 理解jQuery的性能优化技巧是提升网页加载速度的关键。比如,避免频繁的DOM操作,利用缓存结果,以及使用 ...
jQuery拥有庞大的插件生态系统,如:Bootstrap、jQuery UI、jQuer_lazyload等,这些插件扩展了jQuery的功能,如表单验证、轮播图、图片懒加载等。 ### 6. jQuery与现代框架的对比 随着Vue.js、React和Angular等...
链式函数,也称为链式调用,是JavaScript中面向对象编程的一个特性,主要体现在jQuery和其他类库或框架中。它的核心思想是在一个对象的方法返回该对象本身,这样就可以连续调用多个方法,形成一个链。例如: ```...
jQuery拥有丰富的插件生态系统,如表单验证插件jQuery Validation,图片懒加载LazyLoad,轮播图插件Slick等,它们扩展了jQuery的功能,满足更多需求。 ### 6. 兼容性与性能优化 - **浏览器兼容**:jQuery致力于...
例如,使用`懒加载`技术(`.lazyload()`插件)延迟加载不在视口内的图片,减少页面加载时间;或者使用`CSS精灵`技术合并小图片,减少HTTP请求。 通过以上讨论,我们可以看出jQuery在图片效果方面具有强大的功能和...
7. **插件生态**:jQuery的生态丰富,有大量插件可供选择,如滑动插件`slideshow`, 模态对话框`modal`, 图片懒加载`lazyload`等,它们扩展了jQuery的功能,满足了更多应用场景。 8. **最佳实践**:在使用jQuery时,...
tips[27] = '“放之四海皆准则”的是真理,真理并不是一种方法,没有一种方法能解决所有的问题;掌握真理,而不是掌握某种方法。'; tips[28] = '在理解的基础上借鉴,就是站在巨人的肩膀之上;没有区分的全盘抄袭,...
掌握在EF中执行原生SQL的方法,了解导航属性与Lazy Load的工作机制。深入学习EF中的实体继承。 - **ASP.Net MVC**:深入学习Razor视图引擎的语法特点。掌握分页技术,理解数据传输的不同方式(如ViewBag、ViewData、...
jQuery,作为一款强大的JavaScript库,以其简洁的API和高效的功能,深受Web开发者的喜爱。这里我们聚焦于30个经典的jQuery Demo,它们涵盖了从基础交互到复杂动画的各种应用场景,旨在帮助开发者深入理解jQuery的...
11. **使用 `$(document).ready()` 替代 `$(window).load()`**:`ready` 事件在DOM加载完成后触发,而 `load` 等待所有资源加载完毕,通常 `ready` 更快。 12. **避免使用 `each()` 迭代**:当jQuery提供了更高效的...