javascript - 杀死 JQuery AJAX 重叠请求

标签 javascript jquery xmlhttprequest

是否可以终止之前的 ajax 请求?

我们有彼此非常相邻的表格数据。在每个数据的鼠标悬停事件上,我们使用 JQuery Ajax 对象向我们的服务器发出请求并在弹出窗口中显示。

但是我们经常将鼠标移到其他表格内容上,之前的 Ajax 响应会在弹出窗口中显示,然后才会显示针对该表格内容的准确响应。

我需要在生成新的 Ajax 请求时终止之前的请求/响应,以便始终在弹出窗口中提供预期的最新响应。

我正在使用 JQuery、PHP 和 Mysql 来处理请求。

最佳答案

您能否创建一个自定义 Javascript Sync 对象,该对象将由进行后续 ajax 调用的函数共享? 将按顺序生成的 ID 作为参数分配给进入的请求调用。在响应中包含相同的 ID。在触发每个请求时分配一个新的 id,递增 1 或任何逻辑。如果响应中的当前id与共享对象中的不同;忽略响应,否则呈现响应。

这将彻底解决竞争条件。我自己不确定是否有办法过早地终止请求,但它至少不会造成您现在面临的渲染问题。

关于javascript - 杀死 JQuery AJAX 重叠请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1920298/

相关文章:

javascript - 如何在 Windows Phone 7 浏览器中通过 javascript 打开新窗口或标签页

javascript - 如何使用jquery获取下拉列表的值?

javascript - TinyMCE 5.x - 突出显示自定义下拉菜单中的元素

javascript - 为我的 XMLHttpRequest 文件上传添加文件大小限制

javascript - Sequelizejs promise 返回空对象

javascript - 如何禁用悬停在按钮上时显示的默认 URl

javascript - 有没有办法在同一来源上发出 XMLHttpRequest 时不发送 cookie?

javascript - XMLHttpRequest 上的 xhr.response 和 xhr.responseText 之间的区别?

javascript - 设置 div 以显示数组

jquery - 如何使用 jquery UI 对话框