2011-07-25 5 views
7

Tôi có ứng dụng Sencha Touch App tải dữ liệu từ dịch vụ REST vào một cửa hàng bằng cách sử dụng một proxy REST. Sự kiện tải của cửa hàng này cũng sao chép các bản ghi vào một cửa hàng localstorage. Điều này là do ứng dụng cần làm việc ở chế độ ngoại tuyến. Tôi đang cố gắng viết lại các thay đổi được thực hiện cho các bản ghi trong localstorage cho dịch vụ REST, nhưng không quản lý để tìm ra cách đồng bộ hóa lưu trữ localstorage và cửa hàng sử dụng proxy REST. Bất kỳ ý tưởng?Làm cách nào để đồng bộ hóa giữa các cửa hàng trong Sencha Touch

Tôi đã làm theo ví dụ được đưa ra ở đây http://www.sencha.com/learn/taking-sencha-touch-apps-offline/, nhưng nó chỉ bao gồm các tình huống chỉ đọc cho dữ liệu ngoại tuyến.

+0

Bạn có tìm cách để thực hiện việc này không? – Konza

Trả lời

0

Bạn sẽ cần phải thực hiện một cái gì đó tương tự như trong trường hợp lưu trên cửa hàng localstorage của bạn mà bản thay đổi theo để onlineStore của bạn (giống như bạn đang sao chép các mục mới từ onlineStore của bạn vào offlineStore khi nó tải).

0

@Lyle Pratt là chính xác về việc có chức năng sao chép từ cửa hàng "ngoại tuyến" sang cửa hàng "trực tuyến" của bạn. Nhưng để mở rộng thêm, tôi sẽ tạo một chức năng bên trong cửa hàng ngoại tuyến của bạn, nơi nó sẽ lưu hoặc sao chép dữ liệu ngoại tuyến của bạn vào cửa hàng trực tuyến của bạn.

Ext.define('MyProject.store.OfflineMessage', { 
    config: { 
     model: 'MyProject.model.Message' //this should be the same with your online store 

    }, 

    sync: function(){ 
     var me = this, 
      onlineMessageStore = Ext.getStore('OnlineMessage'), //you can get your current store or just create a new one 
      items = me.getData().items; 

     onlineMessageStore.setData(items); 
     onlineMessageStore.sync(); 

    } 
}); 

Mặt khác, bạn cũng có thể tạo một chức năng tương tự cho cửa hàng trực tuyến của bạn để lưu dữ liệu trực tuyến vào cửa hàng ngoại tuyến của bạn.