ajax原理
ajax全称Asynchronous JavaScript and Xml ,异步传输。
异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是帧,它传输的时候要求接受方和发送发的始终保持一致的。
异步传输是将比特分成小组来进行传输。一般每个小组的一个8位字符,在每个小组的头部和尾部都有一个开始位和一个结束位,它的传输过程中接收方和发送方时钟不要求一致。异步传输存在的一个问题:即接收方不知道数据什么时候能到达。
因为每次异步传输的信息都以一个其实为开头,它通知接收方数据已到,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。
同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。
ajax原理和xmlhttprequest对象
ajax原理是通过xmlhttprequest对象来向服务器发送请求,从服务器端获得数据,然后用JavaScript来操作DOM更新页面对象。其中关键一步就是从服务器获得请求数据。
xmlhttprequest是ajax核心机制,
xmlhttprequest对象的属性:
onreadstatechange 每次状态改变所触发事件的事件处理程序
responseText 从服务器返回的数据的字符串形式
responseXML 从数据库返回的DOM兼容的文档数据对象
statue 从服务器返回的代码,代表状态(200 就绪 404未找到)
readstate 对象状态值
0 未初始化--对象已经建立,但是尚未初始化(尚未调用open方法)
1初始化 ---- 对象建立,但是尚未调用send方法
2数据发送---send方法以调用,但是当前的状态和http头未知
3 数据传输中--接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误。
4 (完成)-- 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据