JavaScript jQuery延迟oninput
我有一个html表,它通过jQueryAjax从数据库中获取其值。 像这样的JavaScript jQuery延迟oninput,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个html表,它通过jQueryAjax从数据库中获取其值。 像这样的 <div id="tableId"></div> 该表有一个oninput函数,每当用户更改其中一个单元格的值时,该函数都会更新数据库 function updateCell(data) { var cellId= data.id; var editValue = $(data).text(); requestEdit = $.post("editCellFunction.php
<div id="tableId"></div>
该表有一个oninput函数,每当用户更改其中一个单元格的值时,该函数都会更新数据库
function updateCell(data) {
var cellId= data.id;
var editValue = $(data).text();
requestEdit = $.post("editCellFunction.php", {
cellId: cellId,
editValue: editValue,
});
requestEdit.done(function(response, textStatus, jqXHR) {
console.log(textStatus);
});
requestEdit.fail(function(jqXHR, textStatus, errorThrown) {
console.log("The following error occurred: " + textStatus, errorThrown);
});
}
但是,这会在网站上造成较大的负载。
所以我想添加一个延迟,只有在5秒钟内没有新的输入时,它才会执行Ajax请求
如果有时间能帮上忙,我将不胜感激。实际上我刚刚实现了一些非常类似的东西。基本上,您希望通过
setTimeout
设置计时器,当您收到输入时,计时器将启动并重置
const input=document.getElementById('input');
const output=document.getElementById('output');
设定时器为空;
函数updateDatabase(){
//这里是您的代码,但对于这个示例,我只更改一些文本。
output.textContent=input.value;
}
函数restartTimer(){
清除超时(计时器);
定时器=设置超时(updateDatabase,300);
}
addEventListener('input',restartTimer)代码>
发送:
实际上我刚刚实现了一些非常类似的东西。基本上,您希望通过setTimeout
设置计时器,当您收到输入时,计时器将启动并重置
const input=document.getElementById('input');
const output=document.getElementById('output');
设定时器为空;
函数updateDatabase(){
//这里是您的代码,但对于这个示例,我只更改一些文本。
output.textContent=input.value;
}
函数restartTimer(){
清除超时(计时器);
定时器=设置超时(updateDatabase,300);
}
addEventListener('input',restartTimer)代码>
发送:
Javascript的setTimeout(functionToCallAfterTimeout,timeoutims)
应该适用于您……Javascript的setTimeout(functionToCallAfterTimeout,timeoutims)
应该适用于您。。。
function updateCell(data) {
var cellId= data.id;
var editValue = $(data).text();
requestEdit = $.post("editCellFunction.php", {
cellId: cellId,
editValue: editValue,
});
requestEdit.done(function(response, textStatus, jqXHR) {
console.log(textStatus);
});
requestEdit.fail(function(jqXHR, textStatus, errorThrown) {
console.log("The following error occurred: " + textStatus, errorThrown);
});
}