摘要: 模块化 & 依赖管理 & 性能优化 RequireJS。Web 前端应用可以快速变得相当复杂。理想的做法是提供某种结构和依赖关系管理,以及用一种简单的方式优化最终结果。 模板 - 分离展现和逻辑 Templating。在代码中混入标记会导致一些让人讨厌的代码,这样的代码繁琐、单调,并且难以维护。像 Underscore 和 Handlebars 这样的库提供了一种清晰的方式,将展现描述从逻辑中分离出来。你可以自由选择使用什么库,但是我鼓励你多进行一些比较,找到最适合你的库。 ... 阅读全文
posted @ 2013-10-19 14:28 agile30353 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 目录1. 参考资料2. 参考框架&库3. 前言开光 - 框架>=本质4. MVC 模型4.1 代码混乱4.2 传说中的单页面应用程序 SPA(或一站式应用程序)4.3 结构化的 Web 应用程序4.4 还不够完美5. JSMVC5.1 JSMVC 职责划分5.2 JSMVC 实现探讨5.3 事件驱动5.4 应该关注什么6. Backbone6.1 Backbone 架构6.2 事件 Event - 最佳基友6.3 模型 Model - 自娱自乐6.4 集合 Collection - 不是一个人在战斗6.5 视图 View - 能者多劳6.6 控制器 Route + History 阅读全文
posted @ 2013-10-19 14:27 agile30353 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 前端模板引擎 @nuysoft目录1. 参考资料2. 参考模板引擎3. 前言开光 - 混乱之治4. 概述5. 后记 - 和而不同6. Mustache6.1 解析6.2 编译6.3 缓存6.4 渲染6.5 数据结构、方法功能、调用关系7. Handlebars7.1 解析7.2 编译7.3 渲染7.4 缓存7.5 关键步骤示例7.6 数据结构、方法功能、调用关系8. dust8.1 所谓的“异步”8.2 解析8.3 编译8.4 缓存8.5 渲染8.6 数据结构、方法功能、调用关系9. Micro-Templating9.1 解析9.2 编译9.3 缓存9.4 渲染10. Underscore 阅读全文
posted @ 2013-10-19 14:26 agile30353 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 目录1. WHAT - 测试工具2. WHAT - 什么是单元测试&自动化测试?3. WHAT - 为什么要做单元测试&自动化测试?4. HOW – Jasmine vs Qunit4.1 基本结构4.2 规范:CommonJS Unit Testing/1.14.3 Jasmine ['dʒæzmɪn; 'dʒæs-]4.4 基本语法5. QUnit5.1 历史5.2 基本语法5.3 哪些开源库&框架在用 QUnit?6. HOW - Demo7. HOW - 最佳实践8. WHY - QUnit 实现原理29 August 201 阅读全文
posted @ 2013-10-19 14:18 agile30353 阅读(174) 评论(0) 推荐(0) 编辑
摘要: jQuery Code Overview总体架构、构造 jQuery 对象、CSS选择器引擎 Sizzle、异步队列 Deferred、数据缓存 Data、队列 Queue、浏览器测试 Support、属性操作 Attributes、事件处理 Event、DOM遍历 Traversing、DOM操作 Manipulation、CSS操作 CSS、异步请求 AJAX、动画 Effects、联系我 阅读全文
posted @ 2013-10-19 14:17 agile30353 阅读(86) 评论(0) 推荐(0) 编辑
摘要: Markdown EditorMarkdown 是一种轻量级标记语言,它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。[1]这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。jQuery 浏览器功能测试jQuery 对浏览器功能和 bug 的测试Grunt 0.4.x DocumentationGrunt 是一个基于任务的JavaScript工程命令行构建工具。Why QUnit DO NOT QUALIFY测试工具 阅读全文
posted @ 2013-10-19 14:12 agile30353 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 目录1. Grunt 配置2. 任务配置和目标3. 选项4. 文件集合4.1 紧凑型格式4.2 文件对象格式4.3 文件数组格式4.4 旧格式4.5 自定义过滤函数4.6 匹配模式4.7 动态创建文件对象5. 模板6. 导入外部数据29 March 2013 原文:https://github.com/gruntjs/grunt/wiki/Configuring-tasks本指南介绍了如何在项目中使用文件 Gruntfile 配置任务。如果你不知道 Gruntfile 是什么,请阅读 Grunt 入门指南,并查看 Gruntfile 示例。1. Grunt 配置 ⬆任务配置通过 Gruntfi 阅读全文
posted @ 2013-10-19 13:45 agile30353 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 目录1. 创建插件2. 注意2.1 命名你的任务2.2 调试2.3 存储任务文件2.4 避免改变当前工作目录:process.cwd()29 March 2013 原文:https://github.com/gruntjs/grunt/wiki/Configuring-tasks1. 创建插件 ⬆运行 `npm install -g grunt-init` 安装 [grunt-init](https://github.com/gruntjs/grunt-init)运行 `git clone git://github.com/gruntjs/grunt-init-gruntplugin.git 阅读全文
posted @ 2013-10-19 13:43 agile30353 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 目录1. 别名任务2. 多任务3. “基本”任务4. 自定义任务5. CLI 选项/环境6. 为什么我的异步任务不完成?29 March 2013 原文:https://github.com/gruntjs/grunt/wiki/Creating-tasks任务是 Grunt 的面包和奶油。是你最常用的,例如 jshint 或 nodeunit。每次运行 Grunt 时,你可以指定一个或多个任务来运行,任务告诉了 Grunt 你想要它做的事情。译注:bread and butter 基本生活资料,生计如果没有指定一个任务,但是已经定义了一个命名为“default”的任务,该任务将默认运行。1. 阅读全文
posted @ 2013-10-19 13:42 agile30353 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 目录1. 概览2. 安装特定版本3. 安装发布的开发版本4. 直接从 github 安装29 March 2013 原文:https://github.com/gruntjs/grunt/wiki/Installing-grunt本文介绍了如何安装特定版本的 grunt 和 grunt 插件。如果还没有读过入门指南,你应该先读读它。1. 概览 ⬆Grunt 和 Grunt 插件应该被定义在项目的 package.json 中的 devDependencies 上。2. 安装特定版本 ⬆如果你需要特定版本的 Grunt 或 Grunt 插件,运行 npm install grunt@VERSIO 阅读全文
posted @ 2013-10-19 13:40 agile30353 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 目录1. 安装 CLI2. CLI 是如何工作的3. 用现有的 grunt 项目工作4. 准备一个新的 grunt 项目5. package.json5.1 安装 Grunt 和 插件6. Gruntfile6.1 Gruntfile 示例6.2 包裹函数6.3 项目和任务配置6.4 加载 grunt 插件和任务6.5 自定义任务7. 延伸阅读8. 译者后记29 March 2013 原文:https://github.com/gruntjs/grunt/wiki/Getting-startedGrunt 和它的插件通过 Node.js 的包管理器 npm 安装和管理。这些说明为 Grunt 阅读全文
posted @ 2013-10-19 13:39 agile30353 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 目录1. grunt-init2. 安装3. 用法4. 安装模板5. 自定义模板5.1 拷贝文件5.2 重命名或不包括模板文件6. 指定默认提示答案7. 定义一个初始化模板7.1 exports.description7.2 exports.notes7.3 exports.warnOn7.4 exports.template8. 初始化模板内部8.1 init.addLicenseFiles8.2 init.availableLicenses8.3 init.copy8.4 init.copyAndProcess8.5 init.defaults8.6 init.destpath8.7 in 阅读全文
posted @ 2013-10-19 13:36 agile30353 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 原文:https://github.com/gruntjs/grunt/wiki/Sample-Gruntfile下面我们介绍和分析一个 Gruntfile 示例,其中使用了 5 个 grunt 插件:grunt-contrib-uglifygrunt-contrib-qunitgrunt-contrib-concatgrunt-contrib-jshintgrunt-contrib-watch完整的 Gruntfile 在页面底部,但是如果你继续读下去,我们会每次只处理一步。第一个部分是”包裹“函数,封装你的 Grunt 配置。module.exports = function(grunt) 阅读全文
posted @ 2013-10-19 13:29 agile30353 阅读(198) 评论(0) 推荐(0) 编辑
摘要: Gruntfile 示例 Sample Gruntfile。介绍和分析一个 Gruntfile 示例,其中使用了 5 个 grunt 插件 项目脚手架 Project Scaffolding。grunt-init 是一个脚手架工具,用于自动创建项目。基于当前的环境和几个问题的答案创建一个完整的目录结构。确切的文件和内容取决于所选的模板,和模板提出的问题的答案。 安装 Grunt Installing G... 阅读全文
posted @ 2013-10-19 13:26 agile30353 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 目录1. 为什么要使用模板?2. 第一印象3. 模板引擎4. Mustache 示例5. 组织模板5.1 方案1:SCRIPT 标签5.2 方案2:预编译模板5.3 方案3:AMD 与 REQUIREJS5.4 监听模板6. 性能注意事项7. 结论8. 作者 Lars Kappert08 April 2013 原文:Client-Side Templating, From The Server To The Client, 2012.12.5在浏览器中使用模板正变得越来越广泛。随着应用程序的逻辑从服务端转移到客户端,以及类似 MVC(模型-视图-控制)的模式的广泛使用,促使模板开始拥抱浏览器。 阅读全文
posted @ 2013-10-19 13:23 agile30353 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 目录1. 简介1.1 战报1.2 绿鸟的攻击2. 猪偷走了什么?3. Twitter 应用4. 使用 api.twitter.com5. 模拟静态数据5.1 使用 Mockjax6. 动态模拟半随机数据6.1 使用 Mockjax 和 mockJSON7. 攻击!8. 结论15 April 2013 原文:Angry Birds of JavaScript: Green Bird - Mocking私货:nuysoft/Mock1. 简介 ⬆一群无法无天的猪从无辜的小鸟那里偷走了所有的前端架构,现在小鸟们要把它们夺回来!一队特殊的小鸟英雄将攻击这些卑鄙的猪,直到夺回原本属于它们的前端 Java 阅读全文
posted @ 2013-10-19 12:26 agile30353 阅读(357) 评论(0) 推荐(1) 编辑
摘要: 目录1. 简介2. 猪偷走了什么?3. 对象是如何变为全局对象的?4. 为什么全局对象是一个问题?5. 保护自己的多种方式6. 进攻!7. 结论15 April 2013 原文:Angry Birds of JavaScript: Red Bird - IIFE1. 简介 ⬆一群无法无天的猪从无辜的小鸟那里偷走了所有的前端架构,现在小鸟们要把它们夺回来!一队特殊的小鸟英雄将攻击这些卑鄙的猪,直到夺回原本属于它们的前端 JavaScript 架构!在这篇文章中,我们将看看红色小鸟,它使用可靠的 IIFE 作为攻击武器,而 IIFE 是一切秘密的基础。IIFE Immediately-invoke 阅读全文
posted @ 2013-10-19 12:24 agile30353 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 目录1. 简介1.1 战报1.2 大鸟哥的攻击2. 猪偷走了什么?3. 鸟界的四人帮(23 种)3.1 创建模式(5 种)3.2 结构模式(7 种)3.3 行为模式(11 种)4. JavaScript 中的设计模式4.1 单例模式4.2 工厂模式4.3 桥接模式4.4 外观模式4.5 适配器模式4.6 观察者模式5. 更多模式5.1 继承5.2 链式语法5.3 封装模式5.4 有限状态机6. 建议7. 其他资源8. 攻击!9. 结论16 April 2013 原文:Angry Birds of JavaScript: Big Brother Bird - Patterns1. 简介 ⬆一群无 阅读全文
posted @ 2013-10-19 12:18 agile30353 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 目录1. 简介1.1 战报1.2 白鸟的攻击2. 猪偷走了什么?3. JavaScript 编码标准4. JavaScript Linting5. JavaScript Analysis6. 进攻!7. 结论18 April 2013 原文:Angry Birds of JavaScript: White Bird Linting私货:nuysoft/Aristotle1. 简介 ⬆一群无法无天的猪从无辜的小鸟那里偷走了所有的前端架构,现在小鸟们要把它们夺回来!一队特殊的小鸟英雄将攻击这些卑鄙的猪,直到夺回原本属于它们的前端 JavaScript 架构!Will the birds be su 阅读全文
posted @ 2013-10-19 12:13 agile30353 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 目录1. 简介1.1 战报1.2 绿鸟的攻击2. 猪偷走了什么?3. 应用程序示例4. 紧耦合代码5. 消息类型5.1 观察者事件5.2 中介事件5.3 混合事件5.4 该用哪个?6. 附加资源7. 松耦合代码8. 攻击!9. 结论20 April 2013 原文:Angry Birds of JavaScript: Blue Bird - Events1. 简介 ⬆一群无法无天的猪从无辜的小鸟那里偷走了所有的前端架构,现在小鸟们要把它们夺回来!一队特殊的小鸟英雄将攻击这些卑鄙的猪,直到夺回原本属于它们的前端 JavaScript 架构!小鸟们最终会成功吗?它们会打败那些培根味儿的敌人吗?让我 阅读全文
posted @ 2013-10-19 12:10 agile30353 阅读(162) 评论(0) 推荐(0) 编辑