我正在开发一个需要使用 ajax 频繁发布到服务器的应用程序,这会降低性能。作为解决方法,我开始测试 localStorage 作为替代方案。结果不太理想,频繁检索/设置 localStorage 非常慢(我惊讶地发现这一点),并且会降低性能。
另一方面,我真的不想在每次触发事件时都发布到服务器,因为这与 localStorage 的性能几乎相同。
我想知道还有哪些其他解决方案?
我可以创建一个在事件触发时不断更新的“数据”对象吗?具有回退到发布的超时功能吗?如果是这样,您将如何设置?
有哪些选项可以存储可以快速检索的事件数据?如果有人能指出我正确的方向,我将非常感激。
最佳答案
简单的解决方案是收集您想要保存在数组中的信息,并偶尔保存一次
buffer = [];
// collect all mousemove events on #mydiv
$('#mydiv').mousemove(function(event) {
buffer.push(event.pageX + ", " + event.pageY)
})
createInterval(function() {
if (buffer.length > 0) { // save only if something happened
var to_transmit = buffer; // theoretically between this line and the next
// line you may miss an event, but in practice I wouldn't worry
buffer = []; // new buffer - next events will be inserted here
$.ajax({url: "/post/here/", data: to_transmit})
}
},
5000); // send ajax every 5 seconds
关于javascript - 使用 JavaScript 替代本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914633/