随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作、模块复用、单元测试等等一系列复杂的需求

RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一

1 <!DOCTYPE html>
2 <html>
3     <head>
4         <script type="text/javascript" src="a.js"></script>
5     </head>
6     <body>
7       <span>body</span>
8     </body>
9 </html>

a.js:

1 (function(){
2     function fun1(){
3       alert("it works");
4     }
5
6     fun1();
7 })()

使用了块作用域来申明function防止污染全局变量,本质还是一样的,当运行上面两种例子时不知道你是否注意到,alert执行的时候,html内容是一片空白的,即<span>body</span>并未被显示,当点击确定后,才出现,这就是JS阻塞浏览器渲染导致的结果。

requirejs写法

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script src="../js/require.js"></script>
 7     <script>
 8          require(['t']);
 9     </script>
10 </head>
11 <body>
12 _requireJS
13 </body>
14 </html>

t.js:

1 define(function(){
2    function fun1(){
3        alert("it works");
4    }
5     fun1();
6 });

览器提示了"it works",说明运行正确,但是有一点不一样,这次浏览器并不是一片空白,body已经出现在页面中,目前为止可以知道requirejs具有如下优点:

  1. 防止js加载阻塞页面渲染
  2. 使用程序调用的方式加载js,防出现如下丑陋的场景
 1 <script type="text/javascript" src="a.js"></script>
 2 <script type="text/javascript" src="b.js"></script>
 3 <script type="text/javascript" src="c.js"></script>
 4 <script type="text/javascript" src="d.js"></script>
 5 <script type="text/javascript" src="e.js"></script>
 6 <script type="text/javascript" src="f.js"></script>
 7 <script type="text/javascript" src="g.js"></script>
 8 <script type="text/javascript" src="h.js"></script>
 9 <script type="text/javascript" src="i.js"></script>
10 <script type="text/javascript" src="j.js"></script>

本文来源:http://www.runoob.com/w3cnote/requirejs-tutorial-1.html

转载于:https://www.cnblogs.com/congxueda/p/5949046.html

requirej入门(一)相关推荐

  1. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  2. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  3. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  4. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  5. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  6. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  7. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  8. 5 分钟入门 Google 最强NLP模型:BERT

    BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...

  9. 命名实体识别入门教程(必看)

    关于开发自己的命名实体识别先期思路: 虽然网上有很多相关代码,但实际如何入门材料较少,故整理下: CRF:先期可以用人民日报语料库去做,步骤如下: https://blog.csdn.net/hude ...

最新文章

  1. Thunder团队第三周 - Scrum会议7
  2. 2021年,神经科学AI有这几大趋势
  3. 题目1483:求最大最小数
  4. 一种结合混沌密码理论的彩色图象水印算法
  5. 计算机应用人才培养策略,新形势下的高校计算机应用人才培养策略
  6. 抽象数据类型,让Oracle数据库数据管理更加容易
  7. Netty是如何解决粘包和拆包问题的
  8. DBGridEh使用技巧
  9. pytorch 查看编号_最完整的PyTorch数据科学家指南(2)
  10. AJAX初始化combox 并取值
  11. Vue结合uni-app实现手机端的扫码功能
  12. 数据库创建常用SQL语句
  13. 如何创建一个注册表文件
  14. realtek 8111E 网卡 修改MAC 地址
  15. MateMask连接本地私有链节点ganache
  16. b站python up主_python爬取B站up主全部视频封面
  17. ubuntu16.04 鼠标右键没有压缩/解压 选项
  18. 大计基作业记录(3)
  19. C语言程序设计入门教程
  20. 微信开发40163 40029错误总结

热门文章

  1. PHP如何防止远程提交,PHP如何防止远程提交
  2. 微信中打开h5页面,直接关闭窗口js
  3. ajax请求整理(一) 2021.05.12
  4. linux日志搜索关键词_linux中的实用技巧和快捷键总结
  5. python 写入excel_基于Python实现Excel的读写
  6. 高效率的全组合算法(Java版实现)
  7. html目录参数加密,从HTML文件中取出JS加密需要的参数,并调用js内的加密算法
  8. mysql数据库表子查询语句_MySQL使用子查询教程
  9. java 怎么调用clojure_如何从Java调用Clojure宏?
  10. tensor如何实现转置_PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现...