3.1以AngularJS放入上下文

本章,作者以AngularJS放在全球web
app开发往日后文里,并也前面的节设置功用。AngularJS的靶子,是牵动一样缓慢工具,它起劳动端支付web
client的力量,并容易开发,测试,富、复杂的web应用。

1、精通AngularJS擅长啊

AngularJS不是任何问题之缓解方案。AngularJS的差品种的功力,只适用于服务端开发人士,从浏览器中浏览。这象征每回HTML文档被AngularJS加载后,都开了广大办事——HTML元素不得不吃编译,数据绑定不得不于总计,指令需要被实践,等等。

立马看似工作使费时间去实践,而日之长短,取决于HTML文档的复杂度、关联的JavaScript代码、浏览器的身分、设备处理器的力量。你于风行的浏览器,性能好的桌面电脑及,没有感到到其它延迟。但于引力不足的智能电话的一味浏览器里,AngularJS
app的起初化设置会很缓慢。

故,当其执行时,设置要尽可能少,为用户提供尽可能多的app。这意味着,要关注而构建的web
应用之种。这里发出少栽类型的web应用:round-trip和single page。

1.1、理解Round-Trip和Single-Page应用

颇充裕一段时间,Web
apps基于Round-Trip模型开发。浏览器从服务器请求一个最先HTML文档。用户交互——如点击一个link活提交一个表单——导致浏览器请求并接受一个圆的初的HTML文档。在该类型的行使中,浏览器必须渲染引擎HTML内容,和所有的应用逻辑和服务器上的数据。浏览器做一样多元没有状态的HTTP请求,服务器通过动态生成HTML文档来响应处理。

群脚下底web开发,仍然是round-trip应用,这是坐他们打浏览器被要求的少,确保广大的客户端的扶助。但这里发出同样雨后春笋之通病:下单HTML文档被求和加载中,他们吃用户等。他们得一个巨型的劳动端架构,来拍卖所有的请与使用状态新闻。他们需要大量宽带,因为每个HTML文档都是自从包含(导致服务器的应和受到,包含大量如出一辙内容)的。

Single-page应用,使用不同的路子。一个先导化HTML文档发送到浏览器,但用户交互导致Ajax请求,用少量的HTML或数量,代替用户在浏览的一对素。该起先化HTML文档,永远都不吃重载或互换。当Ajax请求以异步模式履行,用户可以继续与水土保持HTML交互,顶多看看一个”Data
loading”的音。

AngularJS擅长single-page应用,并且越来越是复杂的round-trip应用。对于简易的门类,jQuery可能是一个再一次好之选。

当代web app项目之发展趋势,是通向single-page应用模型。

1.2AngularJS和jQuery

当Web
app开发及,AngularJS和jQuery有差之途径。jQuery所有的还是关于规范操作浏览器的DOM,来创立一个动。而AngularJS的门径,是拿浏览器编程应用开发之力量。

采取jQuery,难被编写和管制大型应用,单元测试也改成挑衅。

笔者喜欢下AngularJS的一个原因是,它按照jQuery的核心功用构建。事实上,AngularJS包含一个名jqLite的JQuery的去版本,在写起定义指令时采纳(作者会以第15-17章节说)。如若你以jQuery添加到HTML文档,AngularJS会自动检测它,并先接纳jQuery而非是jqLite。

AngularJS的严重性缺点,是最初开发时间的投资,这是基于MVC开发之共同点。然则,对于复杂app或如利用要修改或护的,那样的初步化投资是值得做的。

目录,简单来讲,jQuery适用于低位复杂度的web
app,不需单元测试,你及时用结果。jQuery对于增进round-trip web
apps的HTML也无可非议(用户之并行会造成新的HTML文档被加载),因为你可以大概地应用jQuery,而非欲修改server生成的HTML内容。AngularJS适用于重新扑朔迷离的single-page
web apps,当您闹时空关注设计和计划,并且会使用好地操纵server
生成的HTML。

2、理解MVC模式

从未啥说的,自己拘留吧。

3、理解RESTful服务

当AngularJS
apps中,领域模型的逻辑,总是以客户端以及服务端分裂的。服务端包含持久存储,典型地是一个数据库,并含管理它的逻辑。在SQL数据库的情况下,例如,必须的逻辑会包括打开数据库服务器的连续,执行SQL查询,处理结果发送给客户端。

我们不思客户端代码间接看数存储,这样会在客户端和数据存储之间创建严密的耦合。在非移客户端代码的情形下,会招难于单元测试,难于改变屡存储。

通过接纳劳务来直接地看数存储,我们制止紧密耦合。客户端的逻辑响应得到的数,而未晓得多少存储的细节要看背后有的政工。

此地发出好多主意,能以客户端和服务端之间传递数据。最公共地,是应用AJAX请求,调用服务端代码,服务端发送JSON。

登时是RESTful web
服务之基本效能,能用原生HTTP请求,在数码及举行create,read,update,delete操作。

在意:REST是千篇一律栽API类型。至于作者,JSON服务就是是RESTful。

在一个RESTful web
service,操作的呼吁,通过URL+HTTP方法名这样的方表明。例如,

http://myserver.mydomain.com/people/bob

RESTful web
service没有正式的URL定义,不过生一些,url应该可以免解自明。例子中,有一个数量对象的集结叫做people,集合中生一个靶的绝无仅有标识,是bob。

指示:在一个忠实的连串面临,并无总是会成立一个显然的URLs,但你会开一样层层之拼命,保持业务大概,并不曾经URL透露数据存储的内部结构(因为那是外一样种组件间的耦合)。保持君的URLs尽可能地大概清晰,确保在劳动端举行URL格式和数码存储结构里的投射。

URL标识我一旦操作的数额对象,HTTP方法指定我只要实践哪一类操作。

Method

Description

GET

通过URL获取指定的数据对象

PUT

通过URL更新指定的数据对象

POST

创建一个新的数据对象

DELETE

通过URL删除一个数据对象

你无是须利用表中的方,来执行操作。POST方法,平日来双重身份,数据是就改进,数据不设有就是创办。意味着PUT方法无用。作者用于第20章解释AngularJS对Ajax的匡助。在21节用RESTful工作。

3.1等幂HTTP方法

温馨看吧。

4、公共的宏图陷阱

当本节,作者描述三只他于AngularJS项目蒙,碰着过的国有设计陷阱。这里没有代码错误,相反地。。。。

4.1用逻辑在错误的职

尽公共的题材,是将逻辑在错误的机件:

  • 用事情逻辑在视图,而无是控制器
  • 以世界逻辑在控制器,而休是范
  • 当用RESTful服务日常,将数据存储逻辑在客户端模型

这种场地下,应用照常运作,但一段时间后,将易得难以滋长和保安。

此出五只准则:

  • 视图逻辑应该准备而显得的数码,但永远不要改动model。
  • 控制器逻辑应该永远直接由model中,create,update,delete数据。
  • 客户端永远不要一直看数存储。

4.2利用数据存储数据格式

当一个卓绝设计之AngularJS应用被,从RESTful服务中获取数据,服务器的这项工作,会暗藏数据存储的贯彻细节,客户端应用符合之数码格式。决定客户端怎样展现多少,例如,确保您使用数据存储的格式,假诺数额存储不可知原生地援助该格式,这是服务器执行翻译的办事。

4.3执着为原来的点子

AngularJS最精的特征有,是她遵照jQeury,特别是他的一声令下特性,作者将以第15段描述。现在的题材是,想象使用AngularJS简单,但最终利用于后台使用jQeury。

只是可能看起不像计划问题,不过jQeury不克大概地分手MVC组件,它叫测试,增强,维护还易得艰苦。假如您于AngularJS
app中,直接由jQeury操作DOM,你虽相会有这多少个问题。

若一旦控制下AngularJS,你将要保证您切莫碰面退缩到jQuery的计。在第十几回,作者介绍jqLite时,会回来该话题。

相关文章