簡體   English   中英

在我的Ember.js應用程序中的localStorage.clear()或deleteRecord()之后,本地存儲數據被復活

[英]After localStorage.clear() or deleteRecord() in my Ember.js app, local storage data are resurrected

在我的ember應用程序中調用localStorage.clear()deleteRecord()jsbin示例 )后,我正在觀察數據復活。

請按照以下步驟復制問題:

  1. 打開chrome web dev - >資源 - >本地存儲 - >“ http://jsbin.com
  2. 在此頁面上添加一些組織,並觀察它們是否已添加到本地存儲中
  3. 單擊“清除本地存儲”(案例1)或“刪除組織數據”(案例2)並觀察本地存儲是否已清除。 不要刷新頁面。 (數據仍保留在頁面上,但沒關系,因為我們沒有刷新頁面。)
  4. 再添加一個組織並觀察所有已刪除的組織是否已復活(案例1)或LS未被刪除(案例2)
  5. 因此,當您刷新頁面時,所有已刪除的數據都會被重新恢復。

問題:

  1. 為什么這種數據復活會發生?
  2. a refresh after clear (either manually or calling location.reload )? 清除后(手動或調用location.reload ),即使刷新,如何使localStorage.clear()工作?

9月版的Ember Data / Local Storage修復了問題。 通過jsbin在這個SO答案中看到它的實際效果

在與IRC的人討論之后,目前LSAdapter或Ember Data中存在一個錯誤,導致數據徘徊不前。

由於Ember Data即將發生變化,問題是截至2013年8月暫停。

解決此問題的方法是清除本地存儲以及余燼數據。 看到它在這個jsbin中工作

或者,您可以在清除本地存儲后立即調用 location.reload()以顯示新數據。

clear作品擦拭localStorage就行了。 它是本地存儲適配器(LSAdapter)保持狀態並在創建新記錄時重新填充先前清除的localStorage。 這樣做是因為記錄存儲在字符串中,而LSAdapter不知道您是否更改過,因此它始終保存所有記錄以確保它已同步。

考慮銷毀所有記錄而不是清除localStorage。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM