位置: 编程技术 - 正文

在JavaScript应用中使用RequireJS来实现延迟加载(javascript的相关应用)

编辑:rootadmin

推荐整理分享在JavaScript应用中使用RequireJS来实现延迟加载(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搭建应用

在JavaScript应用中使用RequireJS来实现延迟加载(javascript的相关应用)

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

Main.JS

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

Order.JS

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

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

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

总结

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

使用RequireJS优化JavaScript引用代码的方法 RequireJS是一个提高你的javascript代码速度和质量的有效方法,同时它还让你的代码更容易阅读和维护。在本文中,我会为你介绍RequireJS和应该如何使用它

超级给力的JavaScript的React框架入门教程 React是Facebook里一群牛X的码农折腾出的牛X的框架。实现了一个虚拟DOM,用DOM的方式将需要的组件秒加,用不着的秒删。React扮演着MVC结构中V的角色,不

深入理解JavaScript的React框架的原理 如果你在两个月前问我对React的看法,我很可能这样说:我的模板在哪里javascript中的HTML在做些什么疯狂的事情JSX开起来非常奇怪!快向它开火,消灭它吧!那

标签: javascript的相关应用

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

上一篇:优化RequireJS项目的相关技巧总结(怎么优化项目)

下一篇:使用RequireJS优化JavaScript引用代码的方法(前端js优化)

  • 个人注册电子税务局
  • 外购商品发放给员工 进项税额能不能抵扣
  • 增值税专用发票使用规定 最新
  • 现金盘亏无法查明原因计入什么科目
  • 新会计准则土地使用权摊销处理
  • 买一赠一视同销售征收增值税吗
  • 公司注销时长期投资怎么处理
  • 定额材料损耗率国家标准
  • 私人出租房子发票怎么开
  • 一般纳税人辅导期预缴
  • 小规模专票普票都开怎么申报增值税
  • 城市垃圾处置费计入会计什么科目
  • 小规模开专票可以享受1%吗
  • 开劳务分包发票需要什么条件?
  • 过路费企业所得税汇算清缴计入什么科目?
  • 利润分配的余额
  • 金蝶软件如何修改凭证号
  • 专用发票当月认证,下月申报抵扣可以吗
  • 财政收支结余
  • 怎样保持ppt在所有电脑上不变
  • win7系统打开软件就停止工作
  • 应收账款贷方余额怎么在资产负债表中填列
  • 企业出售自用汽车
  • 固定资产包括哪些种类
  • 如何生成系统图
  • 没有一般纳税人证明怎么办
  • 为什么建筑企业简易计税可以扣分包款
  • 电脑搜狗输入法不见了怎么调出来
  • php string
  • 高新企业研发支出转产成品
  • 其他应收款未收回会计分录
  • Python之ImportError: DLL load failed: 找不到指定的模块解决方案
  • php文件怎么打开运行
  • 办公大楼装修费怎么算
  • 其他应收款的会计处理
  • 结转商品的成本的会计分录
  • php多维数组遍历输出
  • php远程下载源码
  • 劳务报酬可以扣除合理支出吗
  • php验证表单方法有哪些
  • 2020注册谷歌账号方法
  • 为什么我的命令提示符里显示user
  • lspci命令显示
  • thinkphp5上传文件
  • 微信公众号认证300元每年都要吗
  • 增值税专票和普票的区别图片
  • 咨询服务费怎么交税
  • 弥补亏损的会计分录
  • vue打包找不到文件
  • celery eventlet
  • 织梦如何使用
  • 房地产企业土地使用税纳税义务终止
  • 个人工作室需要做账吗
  • 信息技术服务费的税率是多少
  • 分期购车会计分录小规模
  • 银行承兑汇票贴现利息怎么算
  • 公司的钱转入余额账户
  • 驾校挂靠车辆账务处理是?
  • 进口消费品增值税计税依据
  • 业务招待费的列支范围
  • 企业之间土地交易
  • 长期股权投资是什么类的科目
  • u盘装win7系统步骤
  • centos8复制文件
  • 如何更改centos的语言
  • freebsd软件安装
  • Linux怎么删除文件第一行
  • opengl(mesa) for ubuntu14.04
  • 彻底弄懂js中的this指向
  • jquery的选择器有哪些举例说明
  • nodejs获取ip
  • 简述jquery的优势
  • 蓝色的css代码
  • jquery weui
  • Android SimpleAdapter
  • 空调设备税率多少钱
  • 小规模增值税怎么计提
  • 从国外进口到国内销售的商品
  • 建筑企业外地施工预缴税款
  • 地税局多措并举工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设