【问题标题】:How to stop rails processing when ajax has been aborted at front end?ajax在前端中止时如何停止rails处理?
【发布时间】:2020-04-20 22:55:56
【问题描述】:

我们在页面上有一个搜索栏和分页,使用jquery进行ajax请求 当开始搜索特定记录时,许多 ajax 请求被触发,虽然我们在前一个请求中添加了 ajax abort,但在 rails 查询仍然发生,

当先前的 ajax 请求中止时如何停止 rails 处理

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4.2


    【解决方案1】:

    如果 Rails 服务器收到 AJAX 请求,.abort 不会阻止服务器执行它。 This stackoverflow answer 描述了如何使用 readyState 检查最后一个请求是否完成。

    但是,我相信您正在寻找的是debounce function。 debounce 函数限制了函数被触发的速率。您可以使用它来确保搜索栏仅在自上次收到输入后经过特定秒后才触发后端请求。这将大大减少发送到 Rails 服务器的查询数量。

    【讨论】:

    • 您也可以使用 promise 来确保在服务器响应之前不会重复调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多