是否可以终止之前的 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/