私はember-railsの宝石を使ってレールアプリとやりとりするemberアプリを持っています。Ember.jsアプリオフラインの動作
残りのAPIを介してサーバからダウンロードした製品のリストを保存するためにlocalStorageアダプタを使用したいと思います。
次に、アプリがオフラインの場合、railsアプリケーションにデータを要求するのではなく、ローカルストレージデータを使用できます。
これを行う方法はありますか?
私はember-railsの宝石を使ってレールアプリとやりとりするemberアプリを持っています。Ember.jsアプリオフラインの動作
残りのAPIを介してサーバからダウンロードした製品のリストを保存するためにlocalStorageアダプタを使用したいと思います。
次に、アプリがオフラインの場合、railsアプリケーションにデータを要求するのではなく、ローカルストレージデータを使用できます。
これを行う方法はありますか?
私はこれらの行に沿って何かをしました。これは、キャッシュのためにリフレッシュするタイミングなどを処理しません。しかし、最初にlocalStorageから項目をロードし、ネットワークが利用できない場合、コンテンツはローカルデータとしてそのまま残ります。もちろん、これを大幅に拡張してニーズに対応することができます。一つの方法は、あなた自身のモデルオブジェクトを作成するのではなく燃えさしデータを使用している可能性があり
App.PhotoCategories = Ember.Object.extend
init: ->
@_super()
@loadPhotoCategories
loadPhotoCategories:() ->
# load cached categories from local storage
@set 'content', @getFromCache("photoCategories")
if @content?
if @content.length == 0
$.ajax
type: "POST"
url: "/api/getCategories"
success: (data) =>
if !data.error
@set 'content', []
for category in data
@pushObject category
# save categories to local storage
@saveToCache("photoCategories", @content)
saveToCache: (key, data) ->
if @supportsHtml5Storage()
localStorage.setItem(key + '_LastUpdatedAt', new Date())
localStorage.setItem(key, JSON.stringify(data))
true
else
false
getFromCache: (key) ->
if @supportsHtml5Storage()
data = localStorage[key]
if data?
JSON.parse(localStorage[key])
else
null
else
null
supportsHtml5Storage: ->
try
return "localStorage" of window and window["localStorage"] isnt null
catch e
return false
乾杯、私はこれを試してみよう! – l33z3r
... – thecodejack
しかし私は、燃えさしデータの機能を使用したいと思います。私は、REST APIのデータをemberモデルクラスの束にシームレスにロードできるようにするために、コードを記述する必要はありません。アプリのデータストアを存続期間中に切り替えることも可能ですか? – l33z3r