2014-03-02 21 views
5

我覺得這個標題非常具有描述性。我正在使用Ember.js處理一個閒置的遊戲項目,現在我每秒保存到本地存儲25次,而不是每10或20秒保存一次。這是一個非常少量的數據,我沒有遇到任何性能問題(至少在我的機器上),但我想知道這是不是很糟糕,如果是這樣,它有多糟糕。謝謝:)可以保存到瀏覽器本地存儲每秒25次嗎?

+0

您可以運行一些負載測試,查看它失敗的位置和距離它的距離。 - 查看您每秒可以節省多少次數據,查看失敗前您保存的數據量 - 查看在失敗前每秒可以節省多少數據25次 –

+0

您可以嘗試多個瀏覽器,並通過[Oracle VirtualBox ](https://www.virtualbox.org/)(和http:// modern。即/用於獲取Windows測試環境)和不同的硬件配置,以便更好地瞭解其在不同類型的系統上的性能。 – ajp15243

+0

*爲什麼*保存在25fps,即使沒有「性能」問題? – user2864740

回答

3

有兩件事情:

1)每個瀏覽器都支持不同的getting間隔或settinglocalstoragevalues

如果你一段時間的瀏覽器可能會掛起,併成爲內進行過很多次反應遲鈍!

爲獲得最佳性能,應將其保存到本地變量,然後定期將其保存到localstorage

這裏是先讀或寫取瀏覽器的名單和他們的時間:

  • 在Chrome中,第一次讀取〜1ms的和後續讀取取0毫秒。
  • 在Firefox上,第一次讀取需要〜0.5ms,後續讀取需要〜0.1ms。
  • 在Internet Explorer 9上,所有讀取都需要0ms。我不確定Internet Explorer如何加載這些數據,但它看起來與其他瀏覽器不一樣。

  • 在Opera上,首先讀取需要約1ms,後續讀取需要0ms。

  • 對於iOS 6上的Safari,首次讀取最多需要24ms,後續讀取需要0ms。

2)它還取決於您獲取/設置的值的大小。

記住

-localstorage有每個域和瀏覽器能力有限。

-並避免在頁面加載時使用localstorage

如我的意見:如果您不想在用戶玩遊戲時清理遊戲,最大時間爲localstorage

並計算用戶在玩遊戲時使用的最大數據量,並設置時間寫入localstorage

+1

我意識到了大小限制,但是在每個瀏覽器的特定時間都有這些數據是非常好的。我認爲每10或20秒鐘保存一次是一個更好的主意。謝謝 –