localStorage经常使用时会减慢我的网站吗?

时间:2014-05-15 11:49:46

标签: javascript html5 canvas local-storage

我正在开发HTML5游戏,我需要知道更新localStorage属性是否经常会降低页面速度。

我实际上将我的英雄位置存储在四个localStorage属性中(两个用于实际位置,两个用于在碰撞检测系统中使用的过去位置)并且每隔1秒间隔更新一次,< strong>但我想以60fps 更新它以拯救每一个英雄运动。

在该频率下使用localStorage会导致性能问题吗?

2 个答案:

答案 0 :(得分:4)

本地存储将数据存储在用户的硬盘上。读取和写入硬盘驱动器所需的时间比对RAM的要长一些。

从中可以得出结论是,您可以通过在启动时从本地存储中读取来优化性能,并在用户注销时仅向其写入。

现在,无论该优化是否会对您的项目产生重大影响,您都必须弄清楚,并且正如R3tep所说,http://jsperf.com/是一个很好的解决方案。

我的建议是,无论如何都要优化,只是因为它更少&#34;满足&#34;我想,有一个程序运行速度比没有好原因。

答案 1 :(得分:2)

将您的数据保存到对象{}并将其保存到locatlStorage,然后使用I / O不活动或当用户离开时(onunload事件):

var DATA = {},
    syncTimer;

function syncFunction () {
    localStorage.set('myData',JSON.stringify(DATA));
}


function someHandler() {
    // some handler that change your DATA
    // which can be called many times per second

    //if calling many times, data will not sync
    if (syncTimer) {
        clearTimeout(syncTimer);
    }

    //change data
    DATA.somefield = 'some data';

    //set timer if data not changed - save it
    syncTimer = setTimeout(syncFunction, 100)
}

window.onunload = syncFunction;

P.S。 Test通过保存到存储来保存到var。存储同步更加昂贵。