这里是《Ajax模式与最佳实践》前6章的勘误。在这些修改中,有很多并不属于译文错误,而是对于译文的重新润色,使读者阅读起来更加流畅。在属于译文错误的修改中,有一些是在英文原文中就已经错了,在这次阅读的过程中所发现的。因为时间的原因,先发前6章的勘误,后面几章的勘误我会尽快补上来。
简介
VIII页
原文:本书集中于Ajax的所有其他技术之中
改为:本书集中于在Ajax的所有其他技术之中
第1章
9页
原文:很奇怪,我们所看到的是因为不完善的数据所导致的不完善的搜索。在一个不完善的世界里
改为:我们所看到的是因为不完善的数据所导致的不完善的搜索。在一个完善的世界里
10页
原文:现在你有了一个关于Ajax快速定义
改为:现在你有了一个关于Ajax的快速定义
11页
原文:当编写一个Ajax应用时候,数据从来就没有终止
改为:当编写一个Ajax应用的时候,数据从来就没有终止
原文:而且在与管理和展示这些数据的能力
改为:而且在于管理和展示这些数据的能力
12页
原文:Ajax和REST对人们许诺可以将数据整理为一种最适合他们需求的格式
改为:Ajax和REST对人们许诺,可以将数据整理为一种最适合他们的需求的格式
原文:XML的力量并不在于它将数据编码为一种详尽格式的能力
改为:XML的力量并不在于它将数据编码为一种冗余格式的能力
14页
原文:事实上我的意思是说正是因为它们
改为:事实上我的意思是说正是因为他们
16页
原文:在Ajax和简单Web服务之间的差别
改为:在Ajax和简单的Web应用之间的差别
原文:这会使用户在执行按下回退按钮或者重新加载页面等操作时产生混淆
改为:这会使用户在执行按下回退按钮或者重新加载页面等操作时产生混乱
18页
原文:展示了与传统的客户端相比更加简单的行为
改为:展示了类似于传统的客户端的行为
第2章
23页
原文:相同来源策略(Same Origin Policg)
改为:相同来源策略(Same Origin Policy)
原文:在特殊的场合,沙箱使得整合Ajax应用变得复杂化
改为:在特定的场合,沙箱使得整合Ajax应用变得复杂化
24页
原文:甚至是Macromedia的Shockwave或Falsh来扩展应用的功能
改为:甚至是Macromedia的Shockwave或Flash来扩展应用的功能
25页
原文:在HTTP请求被发送前分配一个HTTP头信息
改为:在HTTP请求被发送前设置一个HTTP头信息
41页
原文:首先,this变量被赋值为instance变量
改为:首先,this变量被赋值给instance变量
第3章
59页
原文:在图3-4中,内容分块将在HTML中
改为:在图3-4中,内容分块将是HTML格式
63页
原文:有一个属性length,指示出如何找到这些元素
改为:有一个属性length,指示出找到了多少个元素
72页
原文:出于引用的目的,不要认为下载JavaScript
改为:出于参考的目的,不要认为下载JavaScript
74页
原文:没有将变量img与HTML文档关联起来,导致加载一个图片
改为:不将变量img与HTML文档关联起来,将导致加载一个图片
原文:能够被下载的另外一种类型的JavaScript分块是对象状态。通过使用一个对象状态
改为:能够被下载的另外一种类型的JavaScript分块是对象声明。通过使用一个对象声明
75页
上部代码的前三行是多余的,英文原文中也没有,应删除
第4章
88页
原文:这里有一个更新状态和一个保存状态
改为:这里有一个已更新状态和一个已保存状态
原文:数据就是被一个JSP或ASP.NET文件发送的
改为:数据就是被发送给一个JSP或ASP.NET文件的
89页
原文:传统上来说,Web开发人员不会写Etag标识符
改为:传统上来说,Web开发人员并不写Etag标识符
91页
原文:缓存数据最好的方式是补足Internet基础设施
改为:缓存数据最好的方式是补充Internet基础设施
93页
原文:只有当客户端发送一个请求来预先获取内容时
改为:只有当客户端请求预先获取的内容时
94页
原文:在页面被下载之后才显示它是没有什么帮助的
改为:在页面被下载之后显示它是没有什么帮助的
96页
最下面一段中的两个CacheManager应为CacheController,英文原文中是错误的
98页
原文:接着使用缓存的内容调用userComplete方法
改为:接着使用缓存的内容调用用户的complete方法
104页
原文:因为一本已经存在的书可能是被更新过(update)的
改为:因为一本已经存在的书可能是在被更新
106页
原文:在这个例子中,实现了动作GET和POST
改为:在这个例子中,实现了动作GET和PUT
107页
原文:String etagvalue = req.getHeader("If-Match");
改为:String etagvalue = req.getHeader("If-None-Match");
108页
原文:该哈希值将被自动识别为书的ISBN号
改为:该哈希值将使用书的ISBN号来自动识别
第5章
112页
原文:我们通过使用3种浏览器去访问两个网站来展示无法得到正确内容的问题
改为:我通过使用3种浏览器去访问两个网站来展示无法得到正确内容的问题
119页
原文:URL的一个问题就是它们基于一些额外的信息来将用户与一个URL关联起来
改为:这些URL的一个问题就是它们基于一些额外的信息来将用户与一个URL关联起来
120页
原文:不过,尽管程序员们都聪明能干
改为:尽管程序员们都聪明能干
122页
原文:资源/bankaccount/maryjane关联的表现是/servlet/bankaccount/maryjane
改为:资源/bankaccount/maryjane关联的表现是/servlet/bankaccount/maryjane.jsp
123页
原文:被定义的URL就好像被定义的JavaScript函数一样,按照一定的规格来进行定义
改为:定义URL就好像定义JavaScript函数一样,要按照一定的规格来进行定义
原文:被包括的评论链接也可以关联一段描述
改为:被包括的评论链接将与一段描述相关联
127页
原文:这使得在应用包括多种版本成为了可能
改为:这使得在应用中包括多种版本成为了可能
原文:现在,你已经知道了置换模式的体系结构
改为:现在,你已经知道了置换模式的体系架构
139页
原文:Authorization HTTP头信息将被发送哪个URL是由服务器在WWW-Authenticate头信息中指定的
改为:Authorization HTTP头信息将被为哪些URL发送是由服务器在WWW-Authenticate头信息中指定的
原文:程序员仍然需要知道是否一个用户已经通过了验证并且需要相关的用户身份信息
改为:程序员仍然需要知道是否一个用户已经通过了认证并且需要相关的用户身份信息
140页
原文:这两个构造器用来指示用户识别的两种状态
改为:这两个构造器用来指示识别用户的两种状态
141页
原文:因此UserIdentification的实现与所有IUserIdentificationResolver<>实现都是相似的
改为:因此UserIdentification的实现对于所有的IUserIdentificationResolver<>实现都是相似的
142页
原文:本地信息的形式实际上依赖于服务器实现和Web应用的特征
改为:本地信息的形式实际上依赖于服务器实现和Web应用的功能
原文:显示了如果通过浏览器发送用户名和密码
改为:展示了如何通过浏览器发送用户名和密码
147页
原文:则说明系统管理员没有给为URL设置保护
改为:则说明系统管理员没有为URL设置保护
150页
原文:实现了置换模式的URL只有当客户端访问它们的功能时才会引用
改为:实现了置换模式的URL是当客户端访问它们的功能时所引用的URL
第6章
155页
原文:关键是这些链接已经在特征、复杂性和绝对数量上发生了改变
改为:关键是这些链接已经在特征、复杂性和绝对数量上发生了变化
159页
原文:该场景是适合于解耦导航模式的,因为JavaScript脚本必须
改为:该场景是适用于解耦导航模式的,因为JavaScript脚本必须
161页
原文:从解耦导航模式的观点来看,服务端有一些其他功能用来实现适当的模式
改为:从解耦导航模式的观点来看,服务器端有一些其他功能用来实现适当的模式
162页
原文:当共享一些通用的状态时,在所有的代码之间提供一种功能上的解耦
改为:当共享一些公共的状态时,在所有的代码之间提供一种功能上的解耦
169页
原文:使用了通过的代码来获取HTML元素(elem)和事件(evt)
改为:使用了通常的代码来获取HTML元素(elem)和事件(evt)
172页
原文:这是因为当多个事件通过编程的方式与HTML元素联系起来时
改为:这是因为当多个事件通过编程的方式连接在一起时
原文:在行为功能与表现功能之间提供一个中间层
改为:在动作功能与表现功能之间提供一个中间层
175页
原文:这样一个调用顺序表明,第一个按钮点击事件收集数据,不负责处理和显示数据
改为:这样的一个调用顺序表明,第一个按钮点击事件收集数据,不负责处理数据,随后显示该数据
176页
原文:第3个参数data代表执行一个执行状态处理的函数引用
改为:第3个参数data代表一个执行状态处理的函数引用
177页
原文:变量obj是action、data和presentation这3个函数引用所共享的公用对象
改为:变量obj是action、data和presentation这3个函数引用所共享的公共对象
原文:在适用的场合将会导致事件冒泡的终止
改为:在适当的场合将会导致事件冒泡的终止
180页
原文:nav.call方法将Onclick函数和ConvertToUpperCase函数与未定义的InjectHTML函数联系起来
改为:nav.call方法将OnClick函数和ConvertToUpperCase函数与未定义的InjectHTML函数连接起来
182页
原文:将一个抽象资源添加到另一个抽象资源上是错误的做法
改为:在一个抽象之上再加上一个抽象是错误的做法
183页
原文:但是事实上扩展名是很复杂的
改为:但是事实上扩展名使问题复杂化了
原文:这样一个Web服务器阵列(web server farm)是必需的
改为:因此一个Web服务器阵列(web server farm)是必需的
185页
原文:在本地处理数据改变为在远程处理数据的实现是透明地
改为:在本地处理数据改变为在远程处理数据的实现是透明的
186页
原文:公共数据功能将与异步HTTP调用联系起来
改为:公共数据功能将与异步HTTP调用连接在一起
原文:调用common将重新开始解耦导航模式
改为:调用common.complete将重新开始解耦导航模式
193页
原文:通用代码和调用它的代码之间清晰的分离
改为:公共代码和调用它的代码之间清晰的分离
196页
原文:资源的URL资源将一直存在,直到应用的声明周期结束
改为:资源的URL将一直存在,直到应用的生命周期结束
原文:实现一个公共状态结构是必要的
改为:实现一个公共的状态结构是必要的
简介
VIII页
原文:本书集中于Ajax的所有其他技术之中
改为:本书集中于在Ajax的所有其他技术之中
第1章
9页
原文:很奇怪,我们所看到的是因为不完善的数据所导致的不完善的搜索。在一个不完善的世界里
改为:我们所看到的是因为不完善的数据所导致的不完善的搜索。在一个完善的世界里
10页
原文:现在你有了一个关于Ajax快速定义
改为:现在你有了一个关于Ajax的快速定义
11页
原文:当编写一个Ajax应用时候,数据从来就没有终止
改为:当编写一个Ajax应用的时候,数据从来就没有终止
原文:而且在与管理和展示这些数据的能力
改为:而且在于管理和展示这些数据的能力
12页
原文:Ajax和REST对人们许诺可以将数据整理为一种最适合他们需求的格式
改为:Ajax和REST对人们许诺,可以将数据整理为一种最适合他们的需求的格式
原文:XML的力量并不在于它将数据编码为一种详尽格式的能力
改为:XML的力量并不在于它将数据编码为一种冗余格式的能力
14页
原文:事实上我的意思是说正是因为它们
改为:事实上我的意思是说正是因为他们
16页
原文:在Ajax和简单Web服务之间的差别
改为:在Ajax和简单的Web应用之间的差别
原文:这会使用户在执行按下回退按钮或者重新加载页面等操作时产生混淆
改为:这会使用户在执行按下回退按钮或者重新加载页面等操作时产生混乱
18页
原文:展示了与传统的客户端相比更加简单的行为
改为:展示了类似于传统的客户端的行为
第2章
23页
原文:相同来源策略(Same Origin Policg)
改为:相同来源策略(Same Origin Policy)
原文:在特殊的场合,沙箱使得整合Ajax应用变得复杂化
改为:在特定的场合,沙箱使得整合Ajax应用变得复杂化
24页
原文:甚至是Macromedia的Shockwave或Falsh来扩展应用的功能
改为:甚至是Macromedia的Shockwave或Flash来扩展应用的功能
25页
原文:在HTTP请求被发送前分配一个HTTP头信息
改为:在HTTP请求被发送前设置一个HTTP头信息
41页
原文:首先,this变量被赋值为instance变量
改为:首先,this变量被赋值给instance变量
第3章
59页
原文:在图3-4中,内容分块将在HTML中
改为:在图3-4中,内容分块将是HTML格式
63页
原文:有一个属性length,指示出如何找到这些元素
改为:有一个属性length,指示出找到了多少个元素
72页
原文:出于引用的目的,不要认为下载JavaScript
改为:出于参考的目的,不要认为下载JavaScript
74页
原文:没有将变量img与HTML文档关联起来,导致加载一个图片
改为:不将变量img与HTML文档关联起来,将导致加载一个图片
原文:能够被下载的另外一种类型的JavaScript分块是对象状态。通过使用一个对象状态
改为:能够被下载的另外一种类型的JavaScript分块是对象声明。通过使用一个对象声明
75页
上部代码的前三行是多余的,英文原文中也没有,应删除
第4章
88页
原文:这里有一个更新状态和一个保存状态
改为:这里有一个已更新状态和一个已保存状态
原文:数据就是被一个JSP或ASP.NET文件发送的
改为:数据就是被发送给一个JSP或ASP.NET文件的
89页
原文:传统上来说,Web开发人员不会写Etag标识符
改为:传统上来说,Web开发人员并不写Etag标识符
91页
原文:缓存数据最好的方式是补足Internet基础设施
改为:缓存数据最好的方式是补充Internet基础设施
93页
原文:只有当客户端发送一个请求来预先获取内容时
改为:只有当客户端请求预先获取的内容时
94页
原文:在页面被下载之后才显示它是没有什么帮助的
改为:在页面被下载之后显示它是没有什么帮助的
96页
最下面一段中的两个CacheManager应为CacheController,英文原文中是错误的
98页
原文:接着使用缓存的内容调用userComplete方法
改为:接着使用缓存的内容调用用户的complete方法
104页
原文:因为一本已经存在的书可能是被更新过(update)的
改为:因为一本已经存在的书可能是在被更新
106页
原文:在这个例子中,实现了动作GET和POST
改为:在这个例子中,实现了动作GET和PUT
107页
原文:String etagvalue = req.getHeader("If-Match");
改为:String etagvalue = req.getHeader("If-None-Match");
108页
原文:该哈希值将被自动识别为书的ISBN号
改为:该哈希值将使用书的ISBN号来自动识别
第5章
112页
原文:我们通过使用3种浏览器去访问两个网站来展示无法得到正确内容的问题
改为:我通过使用3种浏览器去访问两个网站来展示无法得到正确内容的问题
119页
原文:URL的一个问题就是它们基于一些额外的信息来将用户与一个URL关联起来
改为:这些URL的一个问题就是它们基于一些额外的信息来将用户与一个URL关联起来
120页
原文:不过,尽管程序员们都聪明能干
改为:尽管程序员们都聪明能干
122页
原文:资源/bankaccount/maryjane关联的表现是/servlet/bankaccount/maryjane
改为:资源/bankaccount/maryjane关联的表现是/servlet/bankaccount/maryjane.jsp
123页
原文:被定义的URL就好像被定义的JavaScript函数一样,按照一定的规格来进行定义
改为:定义URL就好像定义JavaScript函数一样,要按照一定的规格来进行定义
原文:被包括的评论链接也可以关联一段描述
改为:被包括的评论链接将与一段描述相关联
127页
原文:这使得在应用包括多种版本成为了可能
改为:这使得在应用中包括多种版本成为了可能
原文:现在,你已经知道了置换模式的体系结构
改为:现在,你已经知道了置换模式的体系架构
139页
原文:Authorization HTTP头信息将被发送哪个URL是由服务器在WWW-Authenticate头信息中指定的
改为:Authorization HTTP头信息将被为哪些URL发送是由服务器在WWW-Authenticate头信息中指定的
原文:程序员仍然需要知道是否一个用户已经通过了验证并且需要相关的用户身份信息
改为:程序员仍然需要知道是否一个用户已经通过了认证并且需要相关的用户身份信息
140页
原文:这两个构造器用来指示用户识别的两种状态
改为:这两个构造器用来指示识别用户的两种状态
141页
原文:因此UserIdentification的实现与所有IUserIdentificationResolver<>实现都是相似的
改为:因此UserIdentification的实现对于所有的IUserIdentificationResolver<>实现都是相似的
142页
原文:本地信息的形式实际上依赖于服务器实现和Web应用的特征
改为:本地信息的形式实际上依赖于服务器实现和Web应用的功能
原文:显示了如果通过浏览器发送用户名和密码
改为:展示了如何通过浏览器发送用户名和密码
147页
原文:则说明系统管理员没有给为URL设置保护
改为:则说明系统管理员没有为URL设置保护
150页
原文:实现了置换模式的URL只有当客户端访问它们的功能时才会引用
改为:实现了置换模式的URL是当客户端访问它们的功能时所引用的URL
第6章
155页
原文:关键是这些链接已经在特征、复杂性和绝对数量上发生了改变
改为:关键是这些链接已经在特征、复杂性和绝对数量上发生了变化
159页
原文:该场景是适合于解耦导航模式的,因为JavaScript脚本必须
改为:该场景是适用于解耦导航模式的,因为JavaScript脚本必须
161页
原文:从解耦导航模式的观点来看,服务端有一些其他功能用来实现适当的模式
改为:从解耦导航模式的观点来看,服务器端有一些其他功能用来实现适当的模式
162页
原文:当共享一些通用的状态时,在所有的代码之间提供一种功能上的解耦
改为:当共享一些公共的状态时,在所有的代码之间提供一种功能上的解耦
169页
原文:使用了通过的代码来获取HTML元素(elem)和事件(evt)
改为:使用了通常的代码来获取HTML元素(elem)和事件(evt)
172页
原文:这是因为当多个事件通过编程的方式与HTML元素联系起来时
改为:这是因为当多个事件通过编程的方式连接在一起时
原文:在行为功能与表现功能之间提供一个中间层
改为:在动作功能与表现功能之间提供一个中间层
175页
原文:这样一个调用顺序表明,第一个按钮点击事件收集数据,不负责处理和显示数据
改为:这样的一个调用顺序表明,第一个按钮点击事件收集数据,不负责处理数据,随后显示该数据
176页
原文:第3个参数data代表执行一个执行状态处理的函数引用
改为:第3个参数data代表一个执行状态处理的函数引用
177页
原文:变量obj是action、data和presentation这3个函数引用所共享的公用对象
改为:变量obj是action、data和presentation这3个函数引用所共享的公共对象
原文:在适用的场合将会导致事件冒泡的终止
改为:在适当的场合将会导致事件冒泡的终止
180页
原文:nav.call方法将Onclick函数和ConvertToUpperCase函数与未定义的InjectHTML函数联系起来
改为:nav.call方法将OnClick函数和ConvertToUpperCase函数与未定义的InjectHTML函数连接起来
182页
原文:将一个抽象资源添加到另一个抽象资源上是错误的做法
改为:在一个抽象之上再加上一个抽象是错误的做法
183页
原文:但是事实上扩展名是很复杂的
改为:但是事实上扩展名使问题复杂化了
原文:这样一个Web服务器阵列(web server farm)是必需的
改为:因此一个Web服务器阵列(web server farm)是必需的
185页
原文:在本地处理数据改变为在远程处理数据的实现是透明地
改为:在本地处理数据改变为在远程处理数据的实现是透明的
186页
原文:公共数据功能将与异步HTTP调用联系起来
改为:公共数据功能将与异步HTTP调用连接在一起
原文:调用common将重新开始解耦导航模式
改为:调用common.complete将重新开始解耦导航模式
193页
原文:通用代码和调用它的代码之间清晰的分离
改为:公共代码和调用它的代码之间清晰的分离
196页
原文:资源的URL资源将一直存在,直到应用的声明周期结束
改为:资源的URL将一直存在,直到应用的生命周期结束
原文:实现一个公共状态结构是必要的
改为:实现一个公共的状态结构是必要的