本文介绍了request . js的具体用法,分享给大家,也给自己留个条。
Require.js:
requires js是一个非常小的javascript模块加载框架,也是AMD(异步模块定义)规范的最佳实现之一。最新版本的requireJS压缩后只有14k,非常轻量级。它还可以同时与其他框架协调,使用requireJS肯定会提高我们前端代码的质量。
首先,让我们看看一个普通的页面js加载
!doctype html html head meta charset=' utf-8 ' title/title script type=' text/JAVAScript ' src=' http : js/index 02 . js '/script/head body h1这是一个页面。/h1/body/html运行结果:
这时候如果不操作弹出框,页面就不会加载,也就没有页面内容,这不是我们想要达到的结果。
让我们使用require.js来操作:
index.html
!DOCTYPE html html head meta charset=' UTF-8 ' title/title script src=' http : js/require 2 . 1 . 11 . JS '/script script type=' text/JavaScript ' require([' JS/Index ',' js/index01'],function () {console.log('成功加载JS后要执行的函数');},function(){ console . log(' js加载失败时要执行的函数');});/script/head body/body/html index . js
define(function(){ console.log('这是一个测试!');function test(){ console.log('哈哈,我是测试!);} test();});首先,不再在页面上导入test02.js,而是只导入requirejs。其次,我们在javascript中使用了require()方法,其中传递了一个数组参数,实际参数是我们要导入的JS文件的路径文件名。
此时运行结果:
可以看到页面的内容已经出现了。页面加载后不再等待js加载,而是在页面加载后运行js代码,大大提高了运行效率。
根据上面的代码,我们可以分析requirejs的基本API:
RequireJS定义了三个变量:定义、要求和requirejs
Require==Requirejs,一般用require比较短。Define用于定义一个模块,要求,加载依赖模块(参考定义的模块),加载后执行回调函数。require有三个参数:
要求(['js/index ',' js/index01'],function () {console.log('成功加载js后要执行的函数');},function(){ console . log(' js加载失败时要执行的函数');});//第一个参数:定义require中的依赖关系。参数必须是数组形式。即使只有一个依赖项,参数也必须以数组形式传递。//第二个参数是回调函数,用于处理加载后的逻辑,在所有模块加载完毕时触发。//第三个参数也是回调函数,用于处理模块加载失败的情况。和上面的代码一样,文件index01.js没有在js中定义,所以调用这个回调函数。加载网络文件
我们以前加载本地js文件,但是有时候需要在网络上加载文件,那么如何加载呢?我们来介绍一下如何在网络上加载js文件。
让我们以加载jquery.js文件为例:
//百度cdn公共图书馆jQuery地址:http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js//jQuery官方地址:https://code.jquery.com/jquery-3.1.1.js//注:在网络上取的时候不能加后缀。否则,无法获取require . config({ path : {//给网络上的库命名:jquery ' jquery ' 3360[' https://code . jquery.com/jquery-3 . 1 . 1 ']});//require (['jquery ',' js/test01 ',' js/test02'],function () {alert('页面加载成功~ ~ ');},function(){ alert('页面加载失败~ ~ ')});在网络上取文件时要注意:
1.config方法的参数是一个对象。2.路径的值也是一个对象。3.当我们在网络上随意命名图书馆时,建议有意义地命名。其他人可以知道你的网络资源的名称。4.库的值是一个数组,意味着可以同时写入,防止网络出现异常。5.特别注意:网络资源路径不能有后缀,否则得不到6,我们可以让它先走。
require . config({ path : {//这样配置是为了减轻本地服务器' jquery ' :[' https://code . jquery.com/jquery-3 . 1 . 1 . js ',' js/jquery-1.8.3']})的压力)});//require (['jquery ',' js/test01 ',' js/test02'],function () {alert('页面加载成功~ ~ ');},function(){ alert('页面加载失败~ ~ ')});同样,我们也可以配置路径的本地:
require . config({ path : {//)是以这种方式配置的,以减轻本地服务器的压力。jquery ' :[' https://code . jquery.com/jquery-3 . 1 . 1 ',' js/jquery-1.8.3'],//将保存本地js文件然后参考' TEST01' : ['JS/TEST01'],' TEST02 ' :[' JS/TEST02 ']});//需要(['jquery ',' test01 ',' test02'],function () {alert('页面加载成功~ ~ ');},function(){ alert('页面加载失败~ ~ ')});在上面的示例中,require.config配置重复出现。如果每一页都加配置,那就很不雅了。requirejs提供了一个名为“主数据”的函数。我们首先创建一个main.js:
require . config({ path : {//)是以这种方式配置的,以减轻本地服务器的压力。jquery ' :[' https://code . jquery.com/jquery-3 . 1 . 1 ',' js/jquery-1.8.3'],//将保存本地js文件然后参考' TEST01' : ['JS/TEST01'],' TEST02 ' :[' JS/TEST02 ']});然后在页面上以下列方式使用requirejs:
脚本类型=' text/JavaScript ' src=' http : js/require 2 . 1 . 11 . js '/Script Script类型=' text/JavaScript ' src=' http : js/main . js '/Script脚本类型=' text/JavaScript ' require([' jquery ',' t1 ',' T2'],function () {alert('页面加载成功~ ~ ');},function(){ alert('页面加载失败~ ~ ')});/script正式提供了一种基于标签属性的方式:
script data-main=' js/main ' src=' http : JS/require 2 . 1 . 11 . JS '/script将所有配置和导入JS放在main.js中,因此页面上只有一个标记。
代码演示如下:
///test01.js -定义一个js模块define(function(){ function test(){ console . log('这是test 01 . js ');} test();$('p ')。css('color ',' # db 7093 ');});//main . js-requires js的全局配置requires . config({ path s : { ' jquery ' 3360[' jquery-1 . 8 . 3 '],' test' : ['test01']},shim : { ' test ' 3330)require([' test '],function(){ console . log(' success!');});///index . html——此时只需要一行代码就可以导入js文件!DOCTYPE html html head meta charset=' UTF-8 ' title/title Script type=' text/JavaScript ' data-main=' js/main ' src=' http : js/require 2 . 1 . 11 . js '/Script/head body pi am Liyan这是一个testn页面。/p/body/html以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。