如何在30分钟后停止自动保存
How to stop Autosave after 30 mins or so?
我正在使用jQuery自动保存表单。这个表单将保持每1分钟保存一次数据。但是,如果用户打开浏览器一天,我不想向数据库发送垃圾邮件。因此,如果没有更改或浏览器已打开30分钟,我想杀死自动保存选项。
反正我可以杀死这个自动保存功能?
$("form input").on("input propertychange change", function() {
var start = $.now();
setTimeout(autoSaveForm(start), 10000);
});
function autoSaveForm(start) {
var uuid = $("#uuid").html();
$.ajax({
type: "POST",
url: "trailers/" + uuid + "/save-draft",
data: $("form").serialize(),
success: function() {
}
});
if ($.now() - start <= 600000) {
setTimeout(autoSaveForm(start), 60000);
}
else {
return;
}
}
是的,你可以通过clearartimeout来取消超时。
此外,您还需要设置一个时间戳变量,这样您的autoSaveForm
将检查自该时间戳以来30分钟是否没有过去,然后它可以继续保存表单。如果时间已过,只需停止使用return
执行,并且不会设置下一个setTimeout
。
更好的方法是改变您的方法,并且只在对表单进行任何更改后保存数据。您可以通过侦听表单输入上的keyup
和change
事件来做到这一点。如果您担心自动保存功能会过于频繁地被触发,那么您应该让它的运行频率不要超过几秒钟。这是通过节流函数完成的,例如在下划线库中:_.throttle
.
下面是一些代码:http://jsfiddle.net/yuraji/4pnbr4bd/-它只在用户输入时更新,并且从不超过1秒。
相关文章:
- 每小时倒计时一次,但以30分钟为单位
- 在 JavaScript 中,范围小时 30 分钟(或 20 分钟)
- 基于时间的 javascript,创建一个大约 30 分钟的空白响应
- 通过Javascript错误将考试时间设置为30分钟
- 将时间分成 30 分钟块
- 将30分钟添加到Date会使其倒退30分钟
- 转换时间中的日期,并使用javascript在其中添加30分钟
- 3个功能每隔90分钟重复一次,间隔30分钟
- 如何使用javascript/jquery在30分钟内未使用表单字段时显示警报消息
- 如何在30分钟后停止自动保存
- 改变时间滑块到30分钟插槽而不是1小时
- Round moment.js对象时间到最接近30分钟的间隔
- 根据一天中的时间启用/禁用链接?(每次30分钟)
- 剑道UI DateTimePicker -显示从00:30到24:00的30分钟间隔
- iPad AJAX呼叫错误后30分钟
- 如何添加5小时&还有30分钟
- 我想要一个引导时间选择器从下拉列表中选择开始时间,其中持续时间间隔为30分钟
- 每30秒循环浏览一次网页列表(每30分钟更新一次页面?)
- 每30~分钟从服务器检索数据的最佳方法
- 如何在 30 分钟后注销非活动用户