我們結合了數據訪問方面的要求。Ember數據同步 - LocalStorage + REST + RealTime +在線/離線
- 預加載一些
reference
數據。 - 我們需要參考數據來保持瀏覽器重新啓動,而不是僅僅停留在內存中以避免一直加載。我目前正在使用
LocalStorageAdapter
。 - 一旦我們拿到它,我們想
sync changes
(輪詢或使用背景Socket.IO
和更新的localStorage可以做的伎倆) - 還有一些其他的模型,更事務性的,在這裏我們就需要直接去到服務器並獲取/保存它們。這將是很好的使用像RESTAdapter的。
- 最後,有些操作應該可以工作
off-line
,並且稍後應該同步更改。
爲了使它更具體:
- 我們
pre-load
供應商和 「最喜愛的產品」 到本地存儲。我們與這些人脫機工作。 - 我們需要將服務器更改同步到供應商和產品信息。
- 如果他們搜索完整的目錄,那就要求他們在線。
- 離線時,我們需要允許用戶添加一些東西到他們的購物車,甚至提交和訂購。我們希望排列此行動並在他們擁有互聯網連接時提交。
所以有幾個問題都源於此:
- 有沒有辦法對用戶RESTAdapter與localStorage的組合?
- 是否支持一些Socket.IO? (手動做這個部分很高興)
- 有排隊支持嗎?理想情況下在Ember-Data級別。
我知道我們必須手動完成很多工作,並將不同的樂高組合在一起,但我想從Ember devs的經驗中尋求一些觀點。
謝謝。這很有用。關於'IDs'因爲客戶端正在處理一個較小的域名,所以我打算轉移到GUID或者在服務器和客戶端之間使用不同的ID。我們沒有很多數據存儲在localStorage中的數據少於200KB,因此我不會看到這種增長。我們不必擔心IE :) –
你可以擴展如何RESTAdapter和LSAdapter混合工作?爲什麼只有一種方式?你是否也做過其他事情來支持脫機功能,或者只是保存到LocalStorage並稍後重試? –
這是一種方式,它只在本地存儲中存儲記錄,而不是保存。未來的提取會觸及本地存儲,如果它存在的話,它會使用它,如果沒有的話它會去服務器https://github.com/emberjs/data/blob/master/TRANSITION.md – Kingpin2k