gpt4 book ai didi

javascript - 从对象运行 jQuery Ajax

转载 作者:行者123 更新时间:2023-12-03 12:33:13 24 4
gpt4 key购买 nike

我的网站运行速度非常慢,我所做的是我有一个文本区域,我想将其自动保存到数据库中。我正在执行 jQuery Ajax 调用来自动保存文本区域内容。

我在文本区域上的事件如下:

$(document).on('keyup','#notepad',function(e) {
var text = $(this).val();
Api.request({ handler: 'user', action: 'notepad', text: text });
});

问题是,如果我快速输入“Hello World!”,那么由于需要 12 次 ajax 调用,它会出现滞后。

在这种情况下,我尝试在 jQuery Ajax 中使用 abort() 方法,但它似乎不起作用,因为没有一个调用实际上被取消。

我的代码如下:

function Api(){
this.current = $.ajax();
this.request = function(options, apiCallback){
// default arguments
options = typeof options !== 'undefined' ? options : {};
apiCallback = typeof apiCallback !== 'undefined' ? apiCallback : function(){};

this.current.abort();
this.current = $.ajax({
type: 'POST',
url: "api?"+new Date().getTime(),
data: options,
dataType: 'json',
async: false
})
.done(function(data) {
apiCallback(data);
})
.fail(function() {
apiCallback({status: 'FAILED'});
})
};
}
var Api = new Api();

有人知道如何使用 Javascript 对象来做到这一点吗?

最佳答案

您可以检查用户上次输入的时间,如果时间长达 5 秒,则进行 Ajax 调用?
编辑:或者只是使用 setInterval 每隔 X 秒使用 Ajax 保存 textarea 文本;)

关于javascript - 从对象运行 jQuery Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23839788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com