1.2.6. Ajax: Neither Asynchronous nor XML. Discuss.

简介:
Ajax讨论:既不等同于异步也不等同于XML
虽然Ajax不是严格的取每个单词的首字母,但是我们从字面上把它拆解成下面的几个单词:asynchronous(异步), javascript and XML.

Asynchronous表达了这样一种真实的默认情况:XMLHttpRequest调用是不闭塞的--浏览器发起一个请求,然后不等待服务器回应就执行代码。如果不是基于这样一个事实,Ajax体验会因为网络问题的延迟或者是服务器反映迟缓而变得让人很不爽。浏览器会因为等待回应变得好像卡住了似的。Asynchronicity(异步)实际上提供了更为流畅的用户体验,但是这样会使编码变得更复杂。有时候,当用户在服务器没有回应之前不能执行其他的操作,也就是说Ajax不需要异步工作。这时,当然不能将ajax与asynchronous等同起来。当然XMLHttpRequest和rails可以很好的处理这种情况。

Ajax中的字母J代表JavaScript.JavaScript是非常强大的一门语言。它作为一种被许多现代浏览器支持的脚本语言,在客户端对页面的操作是非常有用的。但是却经常被滥用也经常遭到不公正的评价。

JavaScript最初的时候叫做LiveScript,Netscape为了把它推向市场,给它改了个名字叫JavaScript,目的可能是为了跟Java扯点关系,但是实际上JavaScript和Java是没有关系的。最近,官方发布了一种叫做ECMAScript的脚本语言,但是在使用上JavaScript还是主流。

刚刚说到JavaScript名声不好,这时因为Javascript不够成熟,维护性差,代码基本都是剪切粘贴而来。再看JavaScript的开发工具,debuggers和loggers同样表现的不尽如人意。但是现在已经改观了很多,通过将JavaScript代码生成库,开发工具的支持再加上编写一些实践中可能用到的固定代码,JavaScript会成为一个令人惊奇和惬意的平台。

虽然JavaScript可能是客户端脚本语言中最常见的一种,但不是唯一选择。IE支持Visual Basic script,Flash提供了广阔的扩展。而且这两者所搭建的环境都允许和服务器端进行交互。这样,意味着Ajax中的J也不是必须的。

现在只剩下Ajax中的X,XML,你可能在想,XML绝对是Ajax所必须的。XMLHttpRequest对象可以很轻松的处理各种类型的XML,HTML,无格式文本,图像等等内容,实际上,我们看,Rails应用很少通过Ajax请求XML数据。在Rails应用中最常见的用法是使用HTML和JavaScript来实现Ajax响应。

其他一些例如Document Object Model(DOM)和CSS也对Ajax应用做出了很大的贡献。DOM
[[url]http://baike.baidu.com/view/14806.htm[/url]]是一种中间件语言访问HTML和XML文件。在DOM标准化之前,每种浏览器都有自己的方法从JavaScript中读取页面元素。CSS对普通的HTML文件进行修饰得到不同的渲染效果。

我建议对Ajax这个术语重新做个定义,Ajax只是解决问题的方式,而不是更精准的技术要求。这本书的目的,Ajax是使用浏览器本身的技术(例如JavaScript和DOM,但不包括Flash)来减弱用户与服务器交互这个过程性。

这么对Ajax定义非常值得被普遍接受,因为许多开发者觉得Ajax必须使用XMLHttpRequest,使用的语言也是JavaScript相关的东西。但是,就连Jesse James Garrett的文章里介绍的一个客户端表单验证也是一个Ajax实例。

千言万语凝成一句话:这本书最重要的目的就是教会你如何使用工具实现最好的用户体验。




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/90304,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
31 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
2月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
181 2
|
9月前
|
XML 数据采集 JSON
scrapy_selenium爬取Ajax、JSON、XML网页:豆瓣电影
在网络爬虫的开发过程中,我们经常会遇到一些动态加载的网页,它们的数据不是直接嵌入在HTML中,而是通过Ajax、JSON、XML等方式异步获取的。这些网页对于传统的scrapy爬虫来说,是很难直接解析的。那么,我们该如何使用scrapy_selenium来爬取这些数据格式的网页呢?本文将为你介绍scrapy_selenium的基本原理和使用方法,并给出一个实际的案例。
|
XML JSON 前端开发
ajax请求json和xml数据及对json和xml格式数据的解析
ajax请求json和xml数据及对json和xml格式数据的解析
157 0
|
XML JSON 前端开发
AJAX&JSON&XML
AJAX&JSON&XML
66 0
|
XML 存储 JSON
学习AJAX必知必会(1)~Ajax介绍、xml介绍、express框架
学习AJAX必知必会(1)~Ajax介绍、xml介绍、express框架
144 0
|
XML 存储 JSON
AJAX + JSON + XML(二)
AJAX + JSON + XML相关介绍
118 0
AJAX + JSON + XML(二)
|
XML 存储 JSON
AJAX + JSON + XML(一)
AJAX + JSON + XML相关介绍
277 0
AJAX + JSON + XML(一)