我有一些Ajax响应问题。一切都很好,但我有一些奇怪的行为。 我正在做一个基于ajax的聊天。所以,我使用ajax请求响应来使这些东西起作用。它工作正常,尽管自从我开始使用2个轮询函数以来,有时会多次检索响应。 具体说明:我发送1个用于消息轮询的ajax包,以及1个用于用户列表轮询的ajax包。他们都定期发送!此外,它们在大约相同的时间以相同的频率发送。 有时他们有问题:对于一个请求发回多个响应。所有的软件包都有一个时间戳,并且它们在服务器端登录。在服务器上,软件包只进入一次(我确信基于日志记录,并同时使用多个浏览器)。浏览器做出响应大约3-4次。所有消息都完全相同,具有相同的时间戳。这通常发生在浏览器负载较重时。 我试图在标题中禁用缓存,但它也没有帮助。 请帮助解决有关问题的任何信息或想法。对一个请求有多个Ajax响应
回答
为什么使用两个请求?将它们组合成一个“对我来说什么都是新的?”键入,并同时发回两个响应。您可以嵌入任意数据结构到一个JSON响应,所以它会很容易做:
$data = array(
'user_query' => array(
'status' => false // nothing new
),
'mesage_query' => array(
'status' => true // got some new messages
'messages' => array (
0 => array(... new message #1 data ...),
1 => array(... new message #2 data ...)
etc...
)
)
);
echo json_encode($data)
,然后在您的客户端脚本,在Ajax响应处理程序(假设的jQuery):
$.ajax(blah blah blah
....
success: function(data) {
if (data['messages'].status) {
show_new_messages(data['messages']);
}
if (data['user_query'].status) {
show_new_users(data['user_query']);
}
}
});
您好! 看来这解决了我的问题。我使用XML和普通的JavaScript,所以花了一点时间。我认为学习JSON应该是有益的。据我所知,在正常的ajax响应中,不允许使用数组。 – Zulde
json = javascript对象表示法。给出'x =等等等等等,json是等等等等。在PHP中,您可以使用json_encode生成该文件(并使用json_decode将json转换为本机php数据)。没有什么可以“学习”的,它只是一种在JavaScript和其他语言之间传输数据结构的方法。 –
我明白了,我不知道。 我按照您的建议重写了代码,但它不能正常工作。有时候也会出现同样的问题。多次处理相同的响应... – Zulde
- 1. 多个响应AJAX请求
- 2. 一个ajax请求,多重响应?
- 3. Golang一个请求多个响应
- 4. 来自一个AJAX请求的多个响应
- 5. PHP对AJAX请求没有响应
- 6. JSF 2.0:针对请求的多个Ajax响应
- 7. WCF设计 - 一个请求和响应对象或多个?
- 8. node.js响应只有一个html请求
- 9. 一个REST GET请求可以有多个响应每个对象
- 10. 在另一个Ajax请求中处理多个Ajax请求
- 11. 在多个ajax请求中放弃一个ajax请求
- 12. 多个请求单个响应同步
- 13. ajax多个请求
- 14. 一个Ajax请求没有成功的响应后,会发生
- 15. 多个AJAX POST请求的第一个
- 16. 从一个请求发送JSON响应到另一个请求
- 17. 多次对一个请求作出响应?
- 18. 对AJAX请求的Servlet响应为空
- 19. 处理对Ajax请求的响应
- 20. 将ajax响应绑定到vue.js(在单个页面上有多个请求)
- 21. 是否有Django middlware在请求中接受多个“请求”,并在响应中返回多个“响应”?
- 22. PHP多个Ajax请求:第一个请求块第二个请求
- 23. 对多个异步响应的单个请求
- 24. 多个AJAX响应
- 25. 多个AJAX响应
- 26. c#串口多个请求和响应
- 27. 多个请求/响应编码器
- 28. 使用多个http请求响应
- 29. 多个请求,相同的响应
- 30. BizTalk:多个请求响应订阅
请出示您的代码以便帮助您 – Sedz