博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模块化编程之require.js
阅读量:6298 次
发布时间:2019-06-22

本文共 1577 字,大约阅读时间需要 5 分钟。

  hot3.png

作者:汪娇娇

日期:2016.5.4

最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。  

这段代码依次加载多个js文件。

这样的写法有很大的缺点。首先,加载的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长;其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。

require.js的诞生,就是为了解决这两个问题:

  (1)实现js文件的异步加载,避免网页失去响应;

  (2)管理模块之间的依赖性,便于代码的编写和维护。

require.js的加载:

使用require.js的第一步,是先去官方网站。

下载后,假定把它放在js子目录下面,就可以加载了。

有人可能会想到,加载这个文件,也可能造成网页失去响应。解决办法有两个,一个是把它放在网页底部加载,另一个是写成下面这样:

async属性表明这个文件需要异步加载,避免网页失去响应。IE不支持这个属性,只支持defer,所以把defer也写上。

加载require.js以后,下一步就要加载我们自己的代码了。假定我们自己的代码文件是main.js,也放在js目录下面。那么,只需要写成下面这样就行了:

data-main属性的作用是,指定网页程序的主模块。在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载。由于require.js默认的文件后缀名是js,所以可以把main.js简写成main。

如果还需要其他的js文件,那么main.js里应写入以下内容:   

require.config({       baseUrl:"js",     //共同的路径       paths:{                jq:"jquery-1.11.1.min",                bs:"bootstrap.min",                t2:"test2",                t3:"test3"       }})require (["jq","bs","t2","t3"],function(){      var module1=require("jq");      var module1=require("bs");   //让jq在bs之前加载,此时可以把绿色背景标记的require写成define      $(document).click(function(){            console.log("1");      })})

如果想触发某个事件后再加载另外的模块也是可以的,代码如下:

require.config({	paths:{		"skin1":"skin1",		"skin2":"skin2"	}})var div1=document.getElementById("div1");div1.onclick=function(){	require(["skin1","skin2"],function(){		//需要处理的代码	})}

最后,如若哪里有问题,还请轻喷,但是欢迎指出大家一起交流(*^__^*) !

转载于:https://my.oschina.net/jojo76/blog/755781

你可能感兴趣的文章
Javascript 中的 Array 操作
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>