【问题标题】:Alternatives to Local Storage with JavaScript使用 JavaScript 替代本地存储
【发布时间】:2014-05-28 22:47:24
【问题描述】:

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

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

我想知道还有哪些其他解决方案?

我能否创建一个“数据”对象,在触发事件时不断更新?具有回退到发布的超时功能?如果是这样,您将如何设置?

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

【问题讨论】:

  • 您保存资料的频率如何?使用 localStorage...
  • 你应该描述你想要做什么,否则你只是要求我们“推荐或找到一个工具、库或最喜欢的场外资源”,这是题外话跨度>
  • 触发事件时(取决于用户),但可能每秒最多 2 个。
  • 为什么你需要每秒保存 2 次。这些数据真的那么重要吗?
  • 您可以使用带有 JSON 的对象进行动态存储吗?

标签: javascript object local-storage


【解决方案1】:

简单的解决方案是收集你希望保存在一个数组中的信息,并偶尔保存一次

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

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 2019-01-19
    • 2013-08-04
    • 2016-03-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多