位置: 编程技术 - 正文

在JavaScript应用中实现延迟加载的方法(javascript的应用)

编辑:rootadmin

推荐整理分享在JavaScript应用中实现延迟加载的方法(javascript的应用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript运用,javascript应用范围,请问在javascript程序中,请问在javascript程序中,javascript的应用领域或场景,javascript的应用,javascript应用范围,请问在javascript程序中,内容如对您有帮助,希望把文章链接给更多的朋友!

无论简单还是复杂的Web应用,都由一些HTML、JavaScript、CSS文件组成。通常开发者会通过JQuery、Knockout、Underscore等等这样的第三方JavaScript框架来提高开发速度。由于这些JavaScript框架都针对特定的用途开发而且已经得到了“验证”,所以直接使用它们就比自己从头实现所需要的功能显得更为合适。然而,伴随着应用的复杂度不断上升,写出干净、低耦合、可维护的代码变得越来越重要。在这篇文章里,我将解释RequireJS框架如何帮助应用开发者写出更加模块化的代码,以及它是如何通过延迟加载JavaScript文件来提高应用性能的。 开始的部分我们先不用RequireJS框架,然后在下一个章节用RequireJS来重构它。

下面的这个HTML页面包含了一个id为“message”的<p>元素。当用户访问这个页面的时候,它将展示订单Id和客户姓名信息。

Common.JS文件包含了两个模块的定义——Order和Customer。函数showData和页面的body结合在一起,它通过调用write函数来把要输出的信息放入页面中。作为示例,我在showData函数里硬编码了Id为1,客户姓名为Prasad。

在浏览器中打开这个页面,你将看到如下的信息。

虽然上面的代码能够显示输出,但是它仍有一些问题:

Common.JS文件包含了所有需要定义的函数(write,showData),而且模块(Order,Customer)很难维护和复用。假如你想在其它页面里复用write函数并引用了上面的JavaScript文件,那么你也导入了这个页面可能不需要的其它函数和模块。 Order模块(或者在面向对象中叫做“类”)在初始化过程中创建了一个Customer模块的实例。这意味着Order模块依赖于Customer模块。这些模块间的紧耦合使得将来在优化时很难重构与维护。 每当客户端请求这个页面时,Common.JS文件就会被载入DOM。在上面这个例子中,尽管我们只需要在页面上输出信息,但我们仍把那些不需要的模块(Customer,Order)载入了内存。载入不必要的应用资源(JavaScript、CSS、图片文件等等)会降低应用的性能。 Common.JS文件里的模块可以被分离到不同的JavaScript文件里,但是当应用变得越来越复杂时,很难判断JavaScript文件之间的依赖关系与需要被加载的文件的加载顺序。

RequireJS框架处理了JavaScript文件间的依赖关系,并且根据需要按顺序加载它们。

用RequireJS搭建应用

现在让我们看看重构过的代码。下面的HTML代码引用了Require.JS文件。data-main属性定义了这个页面的唯一入口点。在下面这个场景中,它告诉了RequireJS在启动的时候加载Main.js。

Main.JS

在JavaScript应用中实现延迟加载的方法(javascript的应用)

由于这个文件已经通过data-main属性指定,RequireJS将会尽快的加载它。这个文件使用了RequireJS框架的函数来确定和定义对于其它JavaScript文件的依赖关系。在下面的代码片段里,第一个参数表示依赖关系(依赖Order.JS文件),第二个参数为一个回调函数。RequireJS分析所有的依赖关系并载入它们,然后执行这个回调函数。请注意,第一个参数的值(Order)必须和文件名一致(Order.JS)。

Order.JS

RequireJS框架提供了一个定义和维护JavaScript文件间依赖关系的简便途径。下面代码中的define函数声明了Customer.JS必须在处理Order回调函数前载入。

Customer.JS

这个文件不依赖于任何其它JavaScript文件,所以define函数的第一个参数的值是一个空数组。

好了,现在用你的浏览器打开这个应用,你将会看到如下的输出。要注意的是RequireJS只载入了必需的JavaScript文件。

总结

在这篇文章里,我们分析了RequireJS框架是如何处理JavaScript文件间的依赖关系并根据需要载入它们的。它能够帮助开发者写出更松耦合、更模块化且更具有可维护性的代码。

谢谢

下载源代码: Lazy Loading using RequireJS (Prasad Honrao, Codetails)

Backbone.js 0.9.2 源码注释中文翻译版 //Backbone.js0.9.2//(c)-JeremyAshkenas,DocumentCloudInc.//BackbonemaybefreelydistributedundertheMITlicense.//

深入理解JavaScript编程中的原型概念 JavaScript的原型对象总是让人纠结。即使是经验丰富的JavaScript专家甚至其作者,经常对这一概念给出很有限的解释。我相信问题来自于我们对原型最早的

JavaScript的RequireJS库入门指南 简介如今最常用的JavaScript库之一是RequireJS。最近我参与的每个项目,都用到了RequireJS,或者是我向它们推荐了增加RequireJS。在这篇文章中,我将描述Requ

标签: javascript的应用

本文链接地址:https://www.jiuchutong.com/biancheng/379069.html 转载请保留说明!

上一篇:Underscore.js 1.3.3 中文注释翻译说明

下一篇:Backbone.js 0.9.2 源码注释中文翻译版

  • 所得税交错了怎么处理
  • 申请补交公积金提案
  • 申报个税的收入是什么收入
  • 滴滴普通发票可以作废吗
  • 公益性支出所得税扣除比例
  • 先抵扣后付款怎么做账
  • 广告业与服务业哪个好
  • 跨月作废发票怎么开
  • 财产租赁所得应缴纳个人所得税
  • 增值税零税率发票开具条件
  • 建设工程农民工工资支付条例
  • 公司成立后一直没有收入
  • 实收资本记错账如何调整账面价值
  • 2019小规模纳税人增值税起征点
  • 一般纳税人增值税申报操作流程
  • 签发空头支票的赔偿金
  • 小规模纳税人的税率是多少
  • 企业自有固定资产有哪些
  • 哪些发票备注栏必须注明
  • 公司负担劳务费的个税如何做分录
  • 华为鸿蒙os2.0发布
  • mac软件打开提示意外退出
  • 民间非营利组织会计制度及操作实务
  • 出口退税率和进项一致吗
  • 进口关税和增值税
  • shpc32.exe - shpc32是什么进程 有什么用
  • Windows操作系统出现内存错误解决方法
  • 我告诉你windows7旗舰版
  • php生成代码
  • 研发费用加计扣除75%还是100%
  • 商业汇票转让后,能否追索前手
  • php批量删除操作记录
  • 公司汽车折旧计算方法用那种
  • nodejs的安装与配置mac
  • 基于51单片机的电子秤设计
  • web后端开发是什么意思
  • php中自定义函数的语法格式
  • 文化事业建设费征收范围及计税依据
  • 固定资产报废清理怎么做账务处理的
  • 即征即退进项税怎么划分合算
  • centos上安装vscode
  • 待处理财产损益期末余额在哪方
  • 哪些发票是成品发票
  • 以前年度损益调整结转到哪里
  • 差额征收的会计分录
  • 融资租赁算非标业务吗
  • 权益法股权投资收益纳税调减
  • 去年多计提的企业所得税怎么调整
  • 多栏式日记账核算组织程序优缺点
  • 软件开发的知识产权有哪些
  • 给客户购物卡如何充钱
  • 建账前应考虑什么问题
  • 新建工业企业要考虑到什么
  • sql数据库压缩能提高性能吗
  • win8.1补丁打不上
  • windows许可证即将过期怎么办知乎
  • 修改注册表显示隐藏文件
  • centos怎么查看文件
  • 快速解决儿童鼻塞
  • win10系统自带的浏览器叫什么
  • 苹果mac系统怎么更新
  • win10家庭版怎么关闭windows defender
  • win10预览版21390
  • linux中grep命令用法
  • linux设置mac
  • win7系统删除ie浏览器
  • unity www读取本地视频文件和外部视频文件 播放视频动画和视频声音
  • 用css制作网页的步骤
  • shell编程入门
  • jquery制作下拉菜单
  • unity random.value
  • JQuery绑定事件的函数是
  • 百旺导入领购的新发票
  • 工会经费网上怎么申报
  • 辽宁地方税务网站官网
  • 简易计税项目能即开简易税率发票又开适用税率发票吗
  • 以划拨方式取得土地使用权的,转让房地产时
  • 江苏个体户年报怎么填
  • 广告行业税率6%包含的内容
  • 盘州市税务局党组成员图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设