试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript
前言
《基于MVC的JavaScript Web富应用开发》是ItEye在7月份发起试读的书。下载了试读的章节,发现只有全本的开始到第二章,第一章很简洁明了地讲述了JavaScript的历史,怎么用JavaScript实现类,基本JavaScript的MVC的概念;第二章是浏览器的事件机制,DOM的事件监听,JQuery事件绑定的例子。
值得一提的是,这本书原本是O’Reilly Media, Inc带来的。O’Reilly的一系列“动物书”总是经典。
最大的感触:JavaScript的MVC
本人曾经用JavaScript基于GoogleDesptop(现在GoogleDesptop几乎淡出视线了)上游戏应用,感觉JavaScript灵活,难以调错。后来在JavaWeb开发中也少不了使用JavaScript、JQuery。正如书上所说,开发者的需求往往是给现有代码添加一个表单验证、弹出框或图片轮播控件,而且工期也很紧。因此我们直接去网上找一段能用的代码就可以了,而不必花时间去学习和理解这门语言。相比 Python 和 Ruby,同样是脚本类的语言,我们并没有给JavaScript足够的学习和阅读。
书中也提到了JavaScript已经成长为一种强大的、动态的面向对象编程语言。JavaScript已经不是几十行代码的简单效果实现,已经拥有很多框架,使用JavaScript 来构建庞大的应用已经屡见不鲜,而且越来越流行。像 Gmail 和 Google Maps 之类的产品给我们带来了Web 应用全新的体验。
似乎,给JavaScript一些经典的设计理念和最佳实践,越来越重要。我们已经不能使用一个大杂烩的JavaScript代码实现功能,MVC的加入必不可少。
怎么模块化
以前试图看JQuery源码,看到一头雾水,类似jquery.extend,jquery.prototype,在这本书开始便有了阐述。
怎么创建类:
- var Person = function(name) {
- this.name = name;
- };
- // 实例化一个 Person
- var alice = new Person('alice');
- // 检查这个实例
- assert( alice instanceof Person );
创建自己的类模拟库:
- var Class = function(){
- var klass = function(){
- this.init.apply(this, arguments);
- };
- klass.prototype.init = function(){};
- return klass;
- };
- var Person = new Class;
- Person.prototype.init = function(){
- // 基于 Person 的实例做初始化
- };
- // 用法 :
- var person = new Person;
给类添加属性或方法:
- var Person = new Class;
- // 直接给类添加静态方法
- Person.find = function(id){ /* ... */ };
- // 这样我们可以直接调用它们
- var person = Person.find(1);
给类原型添加属性或方法:
- var Person = new Class;// 在原型中定义函数
- Person.prototype.save = function(){ /* ... */ };
- // 这样就可以在实例中调用它们
- var person = new Person;
- person.save();
还有一系列的命名空间,私有方法变量的控制,总之在给类的模拟构建做准备。JavaScript的类的构建需要类模拟的库的实现。
试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript的更多相关文章
- 试读《基于MVC的JavaScript Web富应用开发》
前两年做jsp开发时,用了不少JavaScript(JS)和Ajax, 最近的项目一直在使用Flex做前台,虽然也有类似的ActionScript实现JS的功能,但没想到的是,短短几年JS发展如此迅速 ...
- 《基于MVC的JavaScript Web富应用开发》学习笔记
第1章 MVC和类 1. 什么是MVC? MVC是一种设计模式, 它将应用划分为3个部分: 数据(模型, Model), 展现层(视图, View) 和用户交互层(控制器, Controller). ...
- 再读<<基于MVC的JavaScript Web 富应用开发>>
工作的时候粗读过这本书的几章内容,真真是囫囵吞枣~~目前手边就剩这一本,重新读才觉得先前是没看明白啊!这个作者博闻强识,对这些插件.库了解的非常多.记录下,查的资料 订阅/发布 jQuery Tiny ...
- [已读]基于MVC的Javascript Web 富应用开发
这本书是12年出版,我买的时间应该是13年,书架上唯一一本盗版→ → 但是看完是在今年. 因为刚拿到的时候,读起来很是磕磕绊绊,就搁置了蛮久.到第二次拿起来的时候,发现已经有部分内容过时,但我还是觉得 ...
- 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)
Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...
- Struts2是一个基于MVC设计模式的Web应用框架
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts ...
- 基于soap 的 python web services 服务开发指南
文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...
- Javascript 与 SPA单页Web富应用
书单推荐 # <单页Web应用:JavaScript从前端到后端> http://download.csdn.net/detail/epubitbook/8720475 # <MVC ...
- 基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动
为了提高客户体验和进行一些技术探索,现在正准备把我自己的客户关系管理系统CRM在做一个Web的版本,因此对基于MVC的Web界面继续进行一些研究和优化,力求在功能和界面上保持和Winform一致,本文 ...
随机推荐
- python学习笔记011——内置函数sorted()
1 描述 sorted() 函数对所有可迭代的对象进行排序操作. sorted() 与sort()函数之间的区别 1 排序对象 sorted:所有可迭代对象的排序 sort:list列表的排序 2 返 ...
- sureface 屏幕残影问题官方解决方案 - 卸载显卡驱动
您进入桌面,左下角微软图标(单击右键),选择设备管理器,点开“显示适配器”前面的小三角,找到“Intel(r) hd gRAPHICS 520”, 单击右键卸载,卸载的时候不要勾选“删除此设备的驱动软 ...
- find命令之exec和xargs
exec: find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是c ...
- Dubbo 基础介绍
1.学习背景 随着互联网的发展,越来越多的企业每天处理着上亿级的请求,以及每秒几万的并发操作,对于传统的 JavaWeb 工程师是一个巨大的挑战.然而越来越复杂的业务以及数据库设计使得代码变得非常庞大 ...
- 【Android】3.4 图层展示
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 3.4 示例4--图层展示 一.简介 1.地图类型 百度地图Android SDK 3.7.1提供了两种类型的 ...
- Git的4个阶段的撤销更改
虽然git诞生距今已有12年之久,网上各种关于git的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握.以下的介绍只是基于我个人对于git的理解,并且可能生编硬造了一些不完 ...
- QT学习记录(1)-控件 QPushButton, QLineEdit, QLabel, QHBoxLayout, QGridLayout
1.一个简单的QT程序(QPushButton) /* 应用程序抽象类 */ #include <QApplication> /*窗口类*/ #include <QWidget> ...
- How it works: Linux audio explained
from: tuxradar.com/content/how-it-works-linux-audio-explained How it works: Linux audio explained Po ...
- ny236 心急的C小加 hdoj1051 Wooden Sticks
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...
- Mysql通过一个限制条件,查出多条不同的记录
表1和表2是不同数据库中的同名table,但是发现表1中的查询和表2中的查询有区别,(事实是表1的查询是对的.) 表1的查询结果 mysql> select * from slot_value ...