javascript - onchange 之后的 Ajax

标签 javascript jquery ajax

<分区>

我正在尝试创建一个触发 ajax 请求 onchange 的文本区域。 关键是我担心排队太多请求到服务器,因为该请求将把这个文本区域的内容保存在数据库中。 实际上,我的想法是创建一种计时器,在最后一次 onchange 几秒钟后,启动 ajax 请求以保存文本区域数据。 关键是我不知道这是否是个好主意,而且,我仍然没有想出要写下来的代码。 我正在使用 JQuery。

最佳答案

播放 Dave's code above

您可以限制调用,基本思路是检查是否有计时器

var requestTimer;
$('#textarea').on('change', function() {
   if (requestTimer) window.clearTimeout(requestTimer);  //see if there is a timeout that is active, if there is remove it.
   requestTimer = setTimeout(submitFormAjax, 1000);  //delay before making the call
});

您还可以检查是否有 Ajax 请求处于事件状态。

var requestTimer;
var xhr;
$('#textarea').on('change', function() {
   if (requestTimer) window.clearTimeout(requestTimer);  //see if there is a timeout that is active, if there is remove it.
   if (xhr) xhr.abort();  //kill active Ajax request
   requestTimer = setTimeout(submitFormAjax, 1000);  //delay before making the call
});


function submitFormAjax() {
    xhr = $.ajax({
        type:"POST",
        url:"ajax.php",
        data:$('#textarea').val(),
        success:function(data) {
            $("#result").html(data);
        }
    });
}

关于javascript - onchange 之后的 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568926/

相关文章:

javascript - 将数组从 Angular 传递到 php

javascript - JS 脚本无法理解通过 PHP 分配给 HTML 输入值的变量

javascript - 从 jQuery 加载 symfony 2 目录中的文件

javascript - 当通过更改 css 使 Div 可见时,该 div 上的事件将发生多次

javascript - 在悬停颜色上提交/更改多个innerHTML,使用键码

javascript - 在滚动导航栏上转到 slider 后面并且 slider 视差效果不起作用

javascript - clearInterval() 无法正常工作

javascript - 如何在不刷新页面的情况下从php中的sql server数据库中获取数据

php - 应用程序访问服务器负载

javascript - 如何预加载图像,在继续之前强制加载图像(html/javascript)?