JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ember.js app离线行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用ember-rails gem与rails应用程序交互的ember应用程序.

我想使用localStorage适配器来存储从服务器通过其余api下载产品的列表.

然后,如果应用程序处于脱机状态,则ember可以使用localStorage数据,而不是向rails app询问数据.

有没有办法做到这一点?

解决方法

我已经按照这些方针做了一些事情.这不会处理何时刷新缓存以及类似的事情.但是,它将为您提供一种从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

大佬总结

以上是大佬教程为你收集整理的Ember.js app离线行为全部内容,希望文章能够帮你解决Ember.js app离线行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。