[ajax 学习笔记] ajax 的服务器响应

在上一篇[ajax 学习笔记] ajax初试中,简单了解了一下ajax。

我是参考AJAX详解.chm学习的,资源已上传。参考链接:Ajax
专题

今天又学习了ajax中关于服务器响应的一些知识。

ajax中服务器的响应是通过响应函数将服务器返回的数据呈现到页面的。服务器的响应体现在服务器响应回调函数中。

在上一篇的例子中,响应函数为:

function updatePage(){
	if(xmlHttp.readyState == 4){   //http就绪状态
		if(xmlHttp.status == 200){    //判断http状态代码
			var response = xmlHttp.responseText;
			document.getElementById("ajax-result").value = response;
		}else if(xmlHttp.status == 404){
			alert("Request url does not exist!");
		}else{
			alert("ERROR:status code is" + xmlHttp.status);
		}
	}
}

关于这个响应函数要说明以下几点:

1.xmlHttp.readyState

这个例子中xmlHttp是XMLHttpRequest对象的一个实例。该对象有一个readyState属性,表示就绪状态。

就绪状态有五种,分别为:

> 0:请求未初始化(还没有调用open())

> 1:请求已经建立,但是还没有发送(还没有调用send())

> 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)

> 3:请求正在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成相应的生成

> 4:响应已完成;表示可以获取并使用服务器的响应了

由这几种状态可以知道,当XMLHttpRequest对象的readyState对象为4时,表示服务器已经完成了对请求的响应,用户才可以对服务器响应的数据进行操作,于是回调函数中会出现判断xmlHttp为4的代码。

试一试:如果你在回应函数中这么写:

			function updatePage(){
						alert("readyState=" + xmlHttp.readyState);
			}

你会发现浏览器会弹出2~4次警告,告诉你当前的就绪状态。这是因为每次继续状态改变的时候都会调用该回调函数。

2.xmlHttp.status

XMLHttpRequest有一个status属性用来表示HTTP的状态码。(您访问网页的时候一定遇到过"404 not found"字样的情况吧,这里的状态码就是404这样的数字,用来表示服务器HTTP响应状态,404呢表示请求失败,200表示请求成功,如果查看状态码,你可以用web开发者工具看一下Network一栏)

有兴趣的可以多了解一下HTTP状态码的信息。

在回调函数中对HTTP状态码详加判断能够增加程序的健壮性,同时使能够帮助用户加速找到程序发生的问题。

3.ajax和XML

在上面回调函数例子中用到了XMLHttpRequest的responseText属性,它表示服务器响应返回的文本信息。

这里可能有一个认识的误区:从名字上看,XMLHttpRequest的数据传送应该是XML格式的。其实不然。ajax的数据传送可以是文本的(像上面例子中用get方式进行名/值传送),也可以传送XML文档(用到XMLHttpRequest的responsXML属性)。

就web应用程序客户端而言,用文本传送和XML传送数据内容都是相同的,在内容相同的基础上,XML要比普通文本浪费了空间,在传送时浪费了时间,所以对于客户端来说,大多数情况下,用普通文本传送数据更好。

为什么说使用XML增加了处理时间?

用XML传送数据时:将文本包装成 XML;发送额外信息(要注意我没有包含任何包围元素、XML 头或者可能出现在实际请求中的其他任何内容);让服务器解析 XML、生成响应、用 XML 包装响应,并将它发送回网页;让网页解析响应,最后使用它。

但是有些情况下还是要用XML的。比如用get方式传送名/值对时,假如数据量很大,get传送方式有一定的长度限制,这是可以考虑用XML来传送。

就web应用程序服务器端而言,向服务器端发送XML情况大致分为两类:

1> 服务器仅接受XML请求

2> 您正在调用一个仅接受XML或SOAP请求的远程API。(可以看成是上一种情况的特例)

如果要发送XML数据,需要两个步骤来保证XML的数据能够被正确接收:

1> 保证向其发送 XML 的脚本能够接受 XML 数据格式。

2> 保证脚本认可发送数据所采用的特定XML格式和结构。

[ajax 学习笔记] ajax 的服务器响应

时间: 2024-11-07 21:00:42

[ajax 学习笔记] ajax 的服务器响应的相关文章

[ajax 学习笔记] ajax初试

ajax全称是:asynchronous javasctipt and xml. 1.为什么须要ajax? 一般web程序与server的交互是:页面发送请求等待server处理,server处理数据,用户页面刷新整个页面.从而完毕了一次交互. 假设用这样的同步方式进行多次这样的页面与server的交互,用户将会须要非常多时间去等待server处理. ajax异步处理的思想是:当页面发送请求后,交给server处理.server处理的同一时候,页面无须等待能够进行其它的操作,当server处理完

Ajax学习笔记-Ajax数据格式

HTML HTML由一些普通文本组成.如果服务器通过XMLHttpRequest发送HTML,文本将存储在responseText属性中.不必从responseText属性中读取数据,它已经是期望的格式,可以直接将其插入到页面中.插入HTML代码最简单的方法是更新这个元素的innerTHML属性. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Inser

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

Ajax学习笔记(三)

三.jQuery库详解 1.使用jQuery之后,javascript操作的不再是HTML元素对应的DOM对象,而是包装DOM对象的jQuery对象.js通过调用jQuery对象的方法来改变它所包装的DOM对象的属性,从而实现动态更新HTML页面. 由此可见,使用jQuery动态更新HTML页面只需以下两个步骤: (1)获取jQuery对象.jQuery对象通常是DOM对象的包装 (2)调用jQuery对象的方法来改变自身.当jQuery对象被改变时,jQuery包装的DOM对象随之改变,HTM

ajax学习笔记1

ajax是什么? ajax即“Asynchronous Javascript + XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.能够快速的从服务器获得所需数据和内容,实现局部刷新让用户能够更好的浏览网站.在没有ajax的时候,网页提交表单必须进行等待和刷新,这时用户必须等待服务器的响应,用户在当前页面不能做其他事情.自从有了ajax,用户在提交表单的时候不需要等待,可以浏览该页的其它东西,表单提交之后服务器能很快的返回所需的数据和网页,网页无需刷新. a

AJax 学习笔记二(onreadystatechange的作用)

AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了onreadyStateChange事件实现这一功能.这类似于回调函数的做法.onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果,如: 复制代码 代码如下: ajaxObj=createAjaxObject(); var url="/MyTod

Ajax学习笔记(一)

XMLHttpRequest对象详解 1.Ajax应用中我们使用XMLHttpRequest对象异步发送请求,这种请求既可以是GET,也可以是POST,都可以带请求参数. 请求发送出去之后,服务器响应会在合适的时候返回,但是客户端不会自动加载这种异步响应,程序必须先调用XMLHttpRequest对象的responseText或responseXML来获取    服务器响应,再通过DOM操作将服务器响应动态加载到当前页面中. XMLHttpRequest的用处是:提供与服务器异步通信的能力 2.

[ajax 学习笔记] json数据格式

之前写过ajax传送数据可以用普通文本和XML两种格式.这里记一下json数据格式. json:javascript object notation. 之前分析过,用文本和XML传送数据各有优劣.而json可以轻松地将javascript对象转换成可以随时发送的数据. 一个json数据例子: var people = { "programmers": [ { "firstName": "Brett", "lastName":&

SuperSocket框架学习笔记1-启动服务器

SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的.该项目使用纯 C# 开发,易于扩展和集成到已有的项目.只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中. 下载地址:http://www.supersocket.net/ 1,新建一个控制台应用程序,.NE