防止在搜索时后台调用ajax

用户名

我有一个在后台运行的ajax。

   var sTimeOut = function () {
        $.ajax(
        {
            type: "POST",
            url: '@Url.Action("checkJobIDs")',
            dataType: "json",
            async: true,
            success: function (data) {
        }
    });
}
var interval = 10000;
setInterval(sTimeOut, interval);

搜索一个元素,我想停止在后台运行的另一个ajax。

   $.ajax(
    {
        type: "POST",
        url: '@Url.Action("searchData")',
        dataType: "json",
        mtype: "post",
        data: { str: str },
        async: true,
        complete: function () { $(sTimeOut).hide(); },
        success: function (data) {
            search(data.searched[0]);
        }
    });

在处理第二个ajax时如何防止第一个ajax?

脱水

您可以abort提出要求

您可以声明一个对象以保留当前正在执行的请求,并检查搜索是否正在运行。如果搜索正在运行,则将跳过另一个reuquest。

var request = {
    xhr: {},
    isSearching: false
};

var sTimeOut = function () {
    if(!request.isSearching) // prevent to run other request when is searching
    {
        request.xhr = $.ajax(
        {
            type: "POST",
            url: '@Url.Action("checkJobIDs")',
            dataType: "json",
            async: true,
            success: function (data) {

            }
        });
    }
}

  var interval = 10000;
  setInterval(sTimeOut, interval);

在搜索时,请求中止并阻止执行另一个请求。搜索完成后,您可以继续在后台调用该请求。

$.ajax(
{
    type: "POST",
    url: '@Url.Action("searchData")',
    dataType: "json",
    mtype: "post",
    data: { str: str },
    async: true,
    beforeSend: function() { // stop background process
        request.isSearching = true;
        request.xhr.abort()
    },
    complete: function () {  // resume background process
        request.isSearching = false;
    },
    success: function (data) {
        search(data.searched[0]);
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止在搜索时后台调用ajax

来自分类Dev

在python子进程模块中调用adb时如何防止后台进程的新实例

来自分类Dev

重用控制器/工厂时防止多次ajax调用

来自分类Dev

重用控制器/工厂时防止多次ajax调用

来自分类Dev

防止多次调用ajax

来自分类Dev

防止 AJAX 调用超时

来自分类Dev

如何在C#中在后台更新数据时如何防止virtualmode datagridview调用所需的cellvalue

来自分类Dev

防止在调用时滚动调用Ajax

来自分类Dev

在ajax调用结束时如何防止或处理用户输入,并且将返回新数据

来自分类Dev

Rails-防止在按下enter键时input_tag进行ajax调用

来自分类Dev

搜索时如何防止tmux环绕?

来自分类Dev

使用睡眠时如何防止后台宏停止?

来自分类Dev

event.preventDefault防止ajax调用

来自分类Dev

防止ajax调用触发两次

来自分类Dev

使用结果缓存防止重复的 $.ajax 调用

来自分类Dev

调用 setter 时防止 ignite 更新缓存

来自分类Dev

减少即时搜索中的Ajax调用数量

来自分类Dev

防止在进行旧的ajax请求时

来自分类Dev

防止Ajax提交时输入空白并选择

来自分类Dev

调用ajax时显示错误

来自分类Dev

应用程序在后台时未调用didUpdateLocations

来自分类Dev

在后台定期调用stopLeScan时将被忽略

来自分类Dev

调用 MainActivity 类时应用程序进入后台

来自分类Dev

使用搜索功能时,jQuery DataTables(旧版)似乎向服务器发送了太多的ajax调用

来自分类Dev

轻按按钮时不调用取消搜索

来自分类Dev

为了防止调用绑定方法更改此对象在后台发生了什么?

来自分类Dev

当作为后台进程运行时,防止 read() 系统调用返回 0

来自分类Dev

显示文本搜索结果时防止Chrome移动DOM元素

来自分类Dev

使用纯功能深度优先搜索时如何防止循环

Related 相关文章

  1. 1

    防止在搜索时后台调用ajax

  2. 2

    在python子进程模块中调用adb时如何防止后台进程的新实例

  3. 3

    重用控制器/工厂时防止多次ajax调用

  4. 4

    重用控制器/工厂时防止多次ajax调用

  5. 5

    防止多次调用ajax

  6. 6

    防止 AJAX 调用超时

  7. 7

    如何在C#中在后台更新数据时如何防止virtualmode datagridview调用所需的cellvalue

  8. 8

    防止在调用时滚动调用Ajax

  9. 9

    在ajax调用结束时如何防止或处理用户输入,并且将返回新数据

  10. 10

    Rails-防止在按下enter键时input_tag进行ajax调用

  11. 11

    搜索时如何防止tmux环绕?

  12. 12

    使用睡眠时如何防止后台宏停止?

  13. 13

    event.preventDefault防止ajax调用

  14. 14

    防止ajax调用触发两次

  15. 15

    使用结果缓存防止重复的 $.ajax 调用

  16. 16

    调用 setter 时防止 ignite 更新缓存

  17. 17

    减少即时搜索中的Ajax调用数量

  18. 18

    防止在进行旧的ajax请求时

  19. 19

    防止Ajax提交时输入空白并选择

  20. 20

    调用ajax时显示错误

  21. 21

    应用程序在后台时未调用didUpdateLocations

  22. 22

    在后台定期调用stopLeScan时将被忽略

  23. 23

    调用 MainActivity 类时应用程序进入后台

  24. 24

    使用搜索功能时,jQuery DataTables(旧版)似乎向服务器发送了太多的ajax调用

  25. 25

    轻按按钮时不调用取消搜索

  26. 26

    为了防止调用绑定方法更改此对象在后台发生了什么?

  27. 27

    当作为后台进程运行时,防止 read() 系统调用返回 0

  28. 28

    显示文本搜索结果时防止Chrome移动DOM元素

  29. 29

    使用纯功能深度优先搜索时如何防止循环

热门标签

归档