第一种方式会报错,因为say函数仅仅在模块内部可见,setTimeout看不见;
第二种方式:代码会立即执行,没有到达setTimeout的延时效果;
第三种方式:通过这种匿名函数调用,能够满足我们的需要,即解决了延时的问题,也解决了变量可见域的问题。...
分类:
Web程序 时间:
2014-11-06 20:07:50
阅读次数:
162
现在web开发的趋势是前后端分离。前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互。如果后端采用node.js,则前后端可以使用同一种语言,共享某些可重用的Js代码,并共享构建工具。但很多时候我们可能采用别的语言,如ruby/java/scala等,此...
分类:
Web程序 时间:
2014-11-06 19:22:02
阅读次数:
337
requireJS,翻译成中文即"需要js",说白了就是加载js文件用的。怎么加载呢?,即遵循AMD规范的模块化加载。除了AMD规范还有一个叫做CMD规范,遵循CMD规范的模块加载器,比较有名的应该是国内的淘宝首席架构师”玉伯“写的SeaJS了,而且这货听说还能加载css文件,似乎很niubility! 但是今天讲的是requireJS,至于二者的优缺点请参考:http://www.zhihu.c...
分类:
Web程序 时间:
2014-11-05 17:14:03
阅读次数:
267
使用requireJS加载模块的时候,有时候会碰到如下的错误:
Uncaught Error: Module name "module1" has not been loaded yet for context: _. Use require([])。可以看到使用define()定义模块的时候,如果依赖的模块比较少,那么可以使用标准方式;如果依赖的模块很多,那么可以使用方式1或者方式2来解决。很显然,使用require()加载模块的时候,也存在和define()一样的问题。经过我的试验:使用方式2也是可以的...
分类:
Web程序 时间:
2014-11-02 18:16:05
阅读次数:
1383
RequireJS和seaJS的区别与联系联系:都是模块加载器,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然。 RequireJS(除了是模块加载器,还是文件加载器)seaJS遵循的规范不同遵循 AMD(异步模块定义)规范,预执行,相对来讲解析模块时间短,...
分类:
Web程序 时间:
2014-11-01 20:25:46
阅读次数:
230
CMD和AMD区别AMDCMD关于依赖的模块提前执行(不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)),延迟执行关于依赖的位置依赖前置AMD 默认推荐的是define(['./a', './b'], function(a, b) { // 依赖必须一开始...
分类:
其他好文 时间:
2014-11-01 19:10:21
阅读次数:
203
requireJS(版本是2.1.15)学习教程(一)
分类:
Web程序 时间:
2014-11-01 16:08:33
阅读次数:
593
没有requireJS框架之前,如果我们想使用jquery框架,会在HTML页面中通过标签加载,这个时候jquery框架生成全局变量$和jQuery等全局变量。如果项目中引用了requireJS框架,采用模块化的方式加载jquery,那么jquery不会再添加全局变量$和jQuery。现在问题来了,虽然jquery框架已经开始支持AMD规范,但是jquery的众多插件还是不支持AMD,仍然像以前一...
分类:
Web程序 时间:
2014-10-31 15:50:14
阅读次数:
259
作为一个前端模块化设计和加载的框架,我们该好好理解下。引用 假如我们主文件时main.js我们需要引用jquery,underscore,backbonerequire.config({ baseUrl : 'js的基本路径',//可以忽略 paths : { 'jquery': 'jquery.m...
分类:
Web程序 时间:
2014-10-30 19:00:56
阅读次数:
236