【问题标题】:AJAX calls from multiple browser tabs at the same time:同时来自多个浏览器选项卡的 AJAX 调用:
【发布时间】:2009-04-21 02:49:02
【问题描述】:

当用户尝试从多个浏览器选项卡同时发送 AJAX 请求时,较早的请求会完成并加载页面,但其他 AJAX 调用会被抢占。结果,其他调用的响应为空。只有一个电话存活下来。 在我使用 struts 2.0、JSP 和 javascript 以及原型框架的应用程序中,我发现在上述情况下服务器响应为空,尽管数据在数据库中使用请求参数进行了更新。 Ajax.request 的 onSucess 事件处理程序被调用,但响应为空。

你能帮忙吗?

谢谢

【问题讨论】:

    标签: ajax prototypejs


    【解决方案1】:

    我不太确定是什么原因导致了这种情况,但可以尝试一下:我开发的最后一个以 AJAX 为中心的大型应用程序,我们必须为每个查询字符串添加一个随机数参数以确保没有缓存在客户端或服务器端(或 ISP 端,这些天)。

    保证每个选项卡中的查询 URL 不同可以解决您的问题。

    【讨论】:

    • 只要你为每个调用创建一个新的 Ajax 对象就应该没有问题,像 IE 这样的浏览器需要缓存破坏,但获得最新响应是个好主意跨度>
    • 感谢您的回复!我相信在执行 javascript 时每个选项卡都会创建一个新的 Ajax 请求对象。请求正常,更新,成功,但响应为空。我在萤火虫中看到 req 是正确的,但 resp 是空的......
    • @Bindi:是的,该选项卡将创建一个新的 Ajax 请求,但不会创建一个新的 Ajax 对象
    【解决方案2】:

    我认为我们应该在开始对服务器进行另一次调用之前从 Ajax 调用中获得准备状态(除非您为每次调用创建一个新的 ajax 对象),但我可能是错的。

    我从不使用原型,但我使用 Adob​​e Spry 多年并且多次 Ajax 调用没有问题,但这个是用于原型的,阅读它应该会有所帮助。

    Multiple Ajax Requests

    【讨论】:

    • 感谢您的回复!我不认为我可以在我的应用程序中使用外部库,除非没有其他方法......你能帮忙吗?
    • 在创建新的 Ajax 请求时尝试创建新的 Ajax 对象,或者干脆...为每个选项卡(Ajax 请求)创建 Ajax 对象
    猜你喜欢
    • 2021-12-06
    • 2012-03-14
    • 1970-01-01
    • 2020-05-09
    • 2011-02-19
    • 1970-01-01
    • 2016-02-23
    • 2019-03-19
    • 1970-01-01
    相关资源
    最近更新 更多