今天详细的了解了javascript模块化编程,javascript模块规范有两种:"CommonJS"和"AMD"。javascript
CommonJS中有一个全局性方法require(),主要用于加载模块,例如:var show= require('jia');jia.add(3,3);//6 。这里咱们只须要知道require()用于加载模块就行了。因为模块都是放在服务器端,不能让浏览器处于“假死”状态,因此不能采用“同步加载(synchronous)”,只能采用“异步加载(asynchronous)”。java
AMD:就是异步模块加载;采用异步方式加载模块,模块加载时不会影响后面语句的执行。AMD也要采用require()语句,可是须要两个参数,第一个参数就是数组,数组里面的元素就是要加载的模块;第二个参数就是加载成功以后的回调函数。列如:require(['jia'],function(jia){jia.add()3,3});数据库
如今ADM有一种比较流行的框架:require.js;他解决了一些问题:一、实现JS文件异步加载,避免网页失去响应;二、管理模块之间的依赖,便于代码的编写和维护。运用也很方便,就像调用js文件同样直接调用,如有本身的JS文件show,能够直接添加一个属性“data-main”,其做用是指定网页程序的主模块,以下:<script src="js/require.js" data-main="js/show"></script>。咱们的主模块编写也就要require()函数,以下:require(['A','B'],function(A,B){自编代码});编程
require.js加载模块采用了AMD规范,因此模块就要采用“define()”函数定义;define(function(){});若是这个模块还依赖了其余模块,那define()函数的第一个参数必须是数组,指明该模块的依赖性。数组
知乎项目今天还在继续完成,到了最关键的地方了,就是首页数据加载,而后从数据库中读取数据显示在界面上;若是用PHP将读取的数据插入到HTML中,可是当界面滚动条滑到最下面时,分页的页数不知道传回读取数据的语句中,让其页数增长;如果用JS文件加载,JS文件对象很差建,执行AJAX时,要在里面拼不少代码,看起来代码就很杂乱,不简洁方便;这个问题还有待解决;其余就没有什么问题了。浏览器