日期:2014-05-17  浏览次数:20378 次

AJAX疑问
浏览器发送一次AJAX请求会开启一个线程吗?如果没有,浏览器又是如何和服务器交互的?从通信方式上来说客户端和服务器通信我可以理解,但是浏览器是如何区别多次AJAX请求的呢?



------解决方案--------------------
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。

------解决方案--------------------
http://www.cnblogs.com/ustbwuyi/archive/2007/02/08/645061.html
------解决方案--------------------
这和线程不线程的没什么关系吧,一个ajax请求就是一次标准的http请求,相当于你在页内加一个帧,至于浏览器如何区别多个ajax,浏览器是如何区分页面请求就行了,一个页内有多帧的时候页面也没乱不是吗。
------解决方案--------------------
楼主所问:浏览器是如何区别多次AJAX请求的呢?
每一个ajax请求都需要指定一个url,通过这个url来区别.
如果多个ajax请求同一个url,如果没做队列处理的话,上一次ajax请求没处理完,会忽略掉之上次的ajax请求,保留最后一个。
如果多个ajax请求不同的url,就相当于多个简单的"光杆"的"轻量级"的异步的http请求
------解决方案--------------------
XMLHttpRequest对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。