AJAX疑问

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

...全文
212 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
宏尘 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

引用 11 楼 的回复:
楼主所问:浏览器是如何区别多次AJAX请求的呢?
每一个ajax请求都需要指定一个url,通过这个url来区别.
如果多个ajax请求同一个url,如果没做队列处理的话,上一次ajax请求没处理完,会忽略掉之上次的ajax请求,保留最后一个。
如果多个ajax请求不同的url,就相当于多个简单的"光杆"的"轻量级"的异步的http请求


这种解释看上去……
[/Quote]
你那实际是怎么样的咧?我以前碰到过多个ajax请求同一个url的问题,如果前面的没处理完,后者会把前者的请求给挤掉,倒致有些请求正确返回结果,有些没有返回结果。
后来是把相同url的ajax请求放到一个队列里来,一个接一个串连的方式去请求。
fonvey 2012-09-05
  • 打赏
  • 举报
回复
还是google一下ajax的原理吧,,要不解析不清楚
hwbox 2012-09-05
  • 打赏
  • 举报
回复
这和线程不线程的没什么关系吧,一个ajax请求就是一次标准的http请求,相当于你在页内加一个帧,至于浏览器如何区别多个ajax,浏览器是如何区分页面请求就行了,一个页内有多帧的时候页面也没乱不是吗。
licai1210 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
ajax可以理解个线程
但是浏览器是如何区别多次AJAX请求的呢?
这个是不是写错了啊?
是不是应该是服务器啊?
sessionid
[/Quote]

没写错呢,例如浏览器用一个for循环发起10个AJAX,那就要如何区分了。

另外测试证明AJAX不是基于与线程的,很有可能是基于任务的
wangyizhi58 2012-09-05
  • 打赏
  • 举报
回复
ajax可以理解个线程
但是浏览器是如何区别多次AJAX请求的呢?
这个是不是写错了啊?
是不是应该是服务器啊?
sessionid
MR-LEE 2012-09-05
  • 打赏
  • 举报
回复
就是通过核心对象XmlHttpRequest来发送异步请求.楼上这个网址讲的东西好,帮顶
色拉油 2012-09-05
  • 打赏
  • 举报
回复
http://www.cnblogs.com/ustbwuyi/archive/2007/02/08/645061.html
色拉油 2012-09-05
  • 打赏
  • 举报
回复
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。
licai1210 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
楼主所问:浏览器是如何区别多次AJAX请求的呢?
每一个ajax请求都需要指定一个url,通过这个url来区别.
如果多个ajax请求同一个url,如果没做队列处理的话,上一次ajax请求没处理完,会忽略掉之上次的ajax请求,保留最后一个。
如果多个ajax请求不同的url,就相当于多个简单的"光杆"的"轻量级"的异步的http请求
[/Quote]

这种解释看上去合理,但是实践证明。执行的过程并不是这样的。不过还是谢谢你
licai1210 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
这和线程不线程的没什么关系吧,一个ajax请求就是一次标准的http请求,相当于你在页内加一个帧,至于浏览器如何区别多个ajax,浏览器是如何区分页面请求就行了,一个页内有多帧的时候页面也没乱不是吗。
[/Quote]

这种解释有待证明
licai1210 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
http://www.cnblogs.com/ustbwuyi/archive/2007/02/08/645061.html
[/Quote]
学习了,不过这和我问的有点出入,不过还是谢谢了。
Gemini Dean 2012-09-05
  • 打赏
  • 举报
回复
XMLHttpRequest对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。
宏尘 2012-09-05
  • 打赏
  • 举报
回复
楼主所问:浏览器是如何区别多次AJAX请求的呢?
每一个ajax请求都需要指定一个url,通过这个url来区别.
如果多个ajax请求同一个url,如果没做队列处理的话,上一次ajax请求没处理完,会忽略掉之上次的ajax请求,保留最后一个。
如果多个ajax请求不同的url,就相当于多个简单的"光杆"的"轻量级"的异步的http请求
0o心梦无痕o0 2012-09-04
  • 打赏
  • 举报
回复
这个我也想知道,求解,帮顶。。。。。
beyond_me21 2012-09-04
  • 打赏
  • 举报
回复
这个可以想像成,一个浏览器可以同时打开多个选项卡打开多个网页
龙火 2012-09-04
  • 打赏
  • 举报
回复
这个很深奥,帮顶

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧