模块的写法

发表于 Require 分类,标签:
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论"模块"(module)了。(正在制定中的ECMAScript标准第六版,将正式支持"类"和"模块",但还需要很长时间才能投入实用。)Javascript社区做了很多努力,在现有的运行环境中,实现"模块"的效果。本文总结了当前"Java...

require.js的用法

发表于 Require 分类,标签:
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。  <scriptsrc="1.js"></script>  <scriptsrc="2.js"></script>  <scriptsrc="3.js"></script>  <scriptsrc="4.js"></script>  <...

RequireJS 2.0 正式发布

发表于 Require 分类,标签:
就在前天晚上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 分类,标签:
这篇来写一个具有依赖的事件模块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 分类,标签:
上一篇是把整个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 分类,标签:
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>   &...