使用JavaScript替代本地存储

时间:2014-05-28 14:36:44

标签: javascript object local-storage

我正在开发一个需要经常使用ajax发布到服务器的应用,这会降低性能。作为一种解决方法,我开始测试localStorage作为替代方案。结果不太理想,经常检索/设置localStorage非常慢(我很惊讶地发现),并且杀死了性能。

另一方面,每次触发事件时我都不想发布到服务器,因为这与localStorage具有几乎相同的性能。

我想知道其他解决方案是什么?

我可以创建一个在触发事件时不断更新的“数据”对象吗?使用超时功能后退到后期?如果是这样你会怎么设置它?

有哪些选项可以存储可以快速检索的事件的数据?如果有人能指出我正确的方向,我会非常感激。

1 个答案:

答案 0 :(得分:0)

简单的解决方案是收集您希望保存在数组中的信息并暂时保存一次

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