考:open方法
第三行:ajax.onreadystatechange=function(){},指定了一段自定义
程序.我们看function里的内容.当readyState状态等于4的时候,readyState等于4即代表请求的数据已被成功返回!并且status 返回200,status代表http请求状态码,返回200代表ok. 与此同时我们使用responseXML接收服务端传回的所有数据.responseXML代表以xml格式来接收数据.
我们将服务端返回的所有xml数据赋值给一个xmlData的变量.xmlData.getElementsByTagName("msg");即代表获取返回的xml数据中名字为msg所有的标签.你可以参考:getElementsByTagName解释与实例
msg[0]代表引用第一个msg标签.事实上我们的数据内也只存在一个msg.并返回该标签第一个子元素的文本内容.msg的第一个子元素即是那段文字.nodeValue代表获取这些文字.参考:firstChild方法与nodeValue 当返回的数据成功被解析,找出页面内id为str的div,使用innerHTML将数据显示到网页中.
Post函数中最后一行:ajax.send(null);这个大家一看便知.发送请求.null代表发送一个空的请求,没有数据要提交.
最后我们重点讲一下onreadysatechange这个属性.说他是属性,但他具有事件机制.也就是说你可以为他指定一个函数.onreadystatechange的工作原理是:每次readyState的状态改变.都会执行onreadystatechange指定的那个函数. 其实在ajax.send(null)没有执行之前.onreadystatechange已经被执行了至少一次了.因为当调用了open方法以后,readystate的状态会发生变化.因此会触发onreadystatechange的函数.这类似一个递归机制.readystate的状态发生变化 执行onreadystatechange的函数.而我们又在函数里判断readysate状态值,其实在一个完整的请求过程中,readyState至少会发生4次变化.根据浏览器会有所不同.只有当readystate等于4的时候.我们开始接收数据并解析.如果你还不够明白,请仔细阅读:onreadystatechange属性 readyState方法,以及status
好,我们这次的"ajax初试之读取数据篇"就到此为止,如果你还有不明白的地方,请加以练习,慢慢揣摩.相信会有所收获.下一篇我们讲:"ajax读取数据到表格"