AMD:浏览器中的模块规范
发表于
JS
分类,标签:
21
08月
2015
0
AMD规范就是其中比较著名一个,全称是AsynchronousModuleDefinition,即异步模块加载机制。从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖关系,引用关系以及加载机制。从它被requireJS,NodeJs,Dojo,JQuery使用也可以看出它具有很大的价值,没错,JQuery近期也采用了AMD规范。在这篇文章中,我们就将介绍AMD的性质,用法,优势以及应用场景。从AMD中我们也能学习到如何在更高层面去设计自己的前端应用。AMD:浏览器中的模块规范前面提到,为实现与Node.js相同方式的模块写法,大牛们做了很多努力。 但浏览器环境不同于服务器端,它的模块有一个HTTP请求过程(而Node.js的模块文件就在本地),这个请求过程多数使用scripttag,script默认的异步性导致很难实现与Node.js一模一样的模块...
RequireJS 2.0 正式发布
发表于
Require
分类,标签:
21
08月
2015
就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0。随后的几小时JamesBurke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升级到了2.0.1。此次变化较大,代码也进行了重构,层次更清晰可读。功能上主要变化如下: 1,延迟模块的执行。这是一个很大变化,以前模块加载后factory立马执行。性能上肯定有一些损耗。2.0修改实现,再没人诟病AMD的模块是立即执行的。现在也可以等到require的时候才执行。 2,config增加了shim,map,module,enforceDefine。shim参数解决了使用非AMD方式定义的模块(如jQuery插件)及其载入顺序。使用shim参数来取代1.0版本的order插件。其实在1.0版本中就曾经有人开发过use和wrap插件来解决此类问题。考虑到很多开发者...
RequireJS入门(三)
发表于
Require
分类,标签:
21
08月
2015
这篇来写一个具有依赖的事件模块event。event提供三个方法bind、unbind、trigger来管理DOM元素事件。event依赖于cache模块,cache模块类似于jQuery的$.data方法。提供了set、get、remove等方法用来管理存放在DOM元素上的数据。示例实现功能:为页面上所有的段落P元素添加一个点击事件,响应函数会弹出P元素的innerHTML。 创建的目录如下为了获取元素,用到了上一篇写的selector.js。不在贴其代码。 index.html如下1234567891011121314151617<!doctypehtml><html> <head> &l...
RequireJS入门(二)
发表于
Require
分类,标签:
21
08月
2015
上一篇是把整个jQuery库作为一个模块。这篇来写一个自己的模块:选择器。为演示方便这里仅实现常用的三种选择器id,className,attribute。RequireJS使用define来定义模块。 新建目录结构如下这次新建了一个子目录js,把main.js和selctor.js放入其中,require.js仍然和index.html在同一级目录。 HTML如下123456789101112131415161718<!doctypehtml><html> <head> <title>requirejs入门(二)</title> &n...
Require,js入门
发表于
Require
分类,标签:
21
08月
2015
RequireJS由JamesBurke创建,他也是AMD规范的创始人。 RequireJS会让你以不同于往常的方式去写JavaScript。你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系。 当然也不会有阻塞(blocking)的情况发生。好,以一个简单示例开始。 新建一个目录,结构如下 目录r1下有index.html、jquery-1.7.2.js、main.js、require.js。require.js和jquery-1.7.2.js去各自官网下载即可。 index.html如下1234567891011<!doctypehtml><html> <head> &...
Linux运行.sh文件
发表于
linux
分类,标签:
21
08月
2015
一个中等水平的Linux用户一定少不了经常执行.sh文件,当然了,你可以在图形界面下面直接双击该文件,但无疑比较浪费时间。现在介绍第一种方法:(在ubuntu下的)首先你要打开一个终端。然后输入sudosu随后输入密码。这样就取得了root用户权限。然后找到那个文件(当然是在终端里面用命令找,你可别开一个文件管理器。)执行./sh文件名字就可以了。比如你有一个sh文件叫1.sh,这个文件在硬盘的/tmp目录里面,要执行的话,就要这样:C代码$ sudo su pass your password:(这里输入密码的时候是看不到输入的东西的,不过确实已经输入进去了。) #cd /tmp #./1.sh 这样就OK了。SH文件是Linux系统...
Backbone.js学习笔记:图书案例-事件绑定
发表于
Backbone
分类,标签:
20
08月
2015
事件绑定在我们浏览网页的时候,获取数据并不是一下只就全部获取到的,为了创建一个更好的用户体验,就来模拟一个加载(Spinner)的图片来告诉用户正在获取数据中!当用户在浏览详细视图(books/:BookName),只需要调用加载数据的方法。然后,因为设置了正确的监听器,当接受到新的数据的时候,视图就会自动更新。数据更新的时候,Backbone支持多事件和自定义事件。改变路由程序里面的代码:// 渲染Books页面loadBook: function (bookName){ this.bookView.loadBook(bookName);}除了bookView类,其他都不会改变。添加构造函数或者initialize方法,initialize方法是Backbone里面的一个特殊的字符属性。每个实例初始化的时候都...
Backbone.js学习笔记:图书案例-使用集合
发表于
Backbone
分类,标签:
20
08月
2015
模拟数据需要添加一些模拟用的数据,并且把它们和视图结合起来。// 图书数据库 var booksData = [ { name: 'book1', url: 'img/1.jpg' ...
Backbone.js学习笔记(二)细说MVC
发表于
Backbone
分类,标签:
20
08月
2015
对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一)Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4:&n...
Node.js开发入门—使用AngularJS
发表于
JS
分类,标签:
20
08月
2015
做一个Web应用,一般都有前台和后台,Node.js可以实现后台,利用jade模板引擎也可以生成一些简单的前台页面,但要想开发出具有实际意义的现代Web应用,还得搭配一个Web前端框架。AngularJS是一个JavaScript前端框架,对于Node.js来说是一个完美的客户端库。AngularJS强制使用MVC(模型-视图-控制器,Model-View-Controller)框架,而它又使用JavaScript对象作为它的模型,和Node.js特别般配,用AngularJS的某些服务(比如$http)和Node.js通信,交互的对象不需要被转换为其它结构就能同时在前端和后端使用,堪称完美。还有一点,AngularJS背靠Google,值得信赖。不过,天朝网络也真特么绝了,难道仅仅因为这一点,https://angularjs.org/就不能访问了吗,就不能访问了吗,就不能访问了吗!重要...