Javascript 最低限度是多少;“可接受”;间隔循环中本地存储的延迟(用于“自动保存”)?
我正在开发一个具有自动保存功能的web应用程序。 我使用类似的方法来管理备份:Javascript 最低限度是多少;“可接受”;间隔循环中本地存储的延迟(用于“自动保存”)?,javascript,local-storage,Javascript,Local Storage,我正在开发一个具有自动保存功能的web应用程序。 我使用类似的方法来管理备份: setInterval(function(){ localStorage.setItem('save', data) }, TIME_INTERVAL) 每次保存都将替换上一次保存 你能告诉我时间间隔的合理值吗 我真的不知道对客户方的影响。我在寻找技术上的答案,从用户的角度来看,一次永久的扑救对他来说是最好的,但是如果需要的话,可以容忍一次延迟。 我甚至用TIME\u INTERVAL=1做了一些测试,
setInterval(function(){
localStorage.setItem('save', data)
}, TIME_INTERVAL)
每次保存都将替换上一次保存
你能告诉我时间间隔的合理值吗
我真的不知道对客户方的影响。我在寻找技术上的答案,从用户的角度来看,一次永久的扑救对他来说是最好的,但是如果需要的话,可以容忍一次延迟。
我甚至用
TIME\u INTERVAL=1
做了一些测试,在我的浏览器上没有发现任何问题,但每毫秒在客户端写入数据似乎很疯狂。。。你觉得怎么样?我应该每秒保存一次数据,还是这真的是个糟糕的主意?如果您将间隔设置得太短,客户端中的某些内容会受到影响:
localStorage.setItem()
非常快)除非你有一个特别有说服力的理由比每隔几分钟储蓄更多,否则我不明白你为什么要比这更短。而且,如果在底层数据实际更改之前不运行计时器,它将非常非常有助于延长电池寿命。想想看:刷新屏幕(每帧16毫秒)需要16毫秒(对于60赫兹屏幕)。所以,对于你可能正在做的任何事情来说,1ms听起来都太过分了 我有一个窍门;也许对你有用。 clearTimeout和setTimeout的组合为您提供了最好的体验 我在客户端键入和存储之间设置了500毫秒(可以随意更改此数字)延迟。因此,只要客户端停止键入500毫秒,它就会存储一个新值。每次添加字母时存储文本是没有用的
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var t; // timer object
$(document).ready(function() {
var my_textarea = $('#my_textarea');
my_textarea.on('input', function() {
backup(my_textarea.val());
})
});
function backup(data) {
var interval = 500;
// if a change was made, less than 500ms ago, we ignore the previous change, and execute the latest change.
clearTimeout(t);
t = setTimeout(function(){
localStorage.setItem('save', data)
}, interval);
}
</script>
<textarea id="my_textarea"></textarea>
变量t;//计时器对象
$(文档).ready(函数(){
var my_textarea=$('my#u textarea');
my_textarea.on('input',function()){
备份(my_textarea.val());
})
});
功能备份(数据){
var区间=500;
//如果在不到500毫秒之前进行了更改,我们将忽略以前的更改,并执行最新的更改。
清除超时(t);
t=setTimeout(函数(){
localStorage.setItem('save',data)
},间隔);
}
顺便问一下,有人对此有什么看法吗?我已经在不同的情况下这样做了一段时间。只保存一次,
onunload()
,或者在任何重要的事情发生之后。为了获得更好的性能,您可以使用sessionStorage
来存储快速变化的数据,这些数据需要在崩溃或意外关闭选项卡后生存下来。@谢谢,onload()
可以完成这项工作。我还要检查会话存储。@dandavis-sessionStorage在浏览器崩溃后无法生存。它在同一个窗口中重新加载页面后仍能生存。@jfriend00:ahhh,它在选项卡崩溃(死jim)时仍能生存,而不是浏览器崩溃,这在当今很少见。