2011-04-23 25 views
42

Tôi đã thử nghiệm mô-đun localstorage cho Backbone.js (https://github.com/jeromegn/Backbone.localStorage). Khi tôi hiểu nó quá tải Backbone.sync và do đó dừng xương sống từ đẩy đến máy chủ (?). Lý tưởng nhất, tôi muốn chuyển dữ liệu của tôi trở lại máy chủ là tốt và tồn tại cục bộ khi trực tuyến và chỉ sử dụng localstorage khi ngoại tuyến (bạn biết đấy, ứng dụng hoàn hảo). Tôi chưa tìm thấy bất kỳ tài liệu nào.Backbone.js có thể làm phần còn lại và lưu trữ cục bộ không?

Backbone.localStorage có phải là một phần của điều này không? Có ai có thể xây dựng kịch bản này không? Điều này được thực hiện như thế nào? (Vui lòng cho tôi biết tôi không phải tự cuộn.)

Cảm ơn.

Trả lời

45

Backbone.localStorage là một tệp bên ngoài mà bạn có thể sử dụng để ghi đè Backbone.Sync.

Bạn có thể sử dụng tính năng phát hiện tính năng đơn giản cho dù người dùng đang ngoại tuyến hay trực tuyến và sau đó tải không đồng bộ Backbone.localStorage.js nếu họ ngoại tuyến.

Nếu cần thiết, bạn cũng có thể chuyển một phiên bản cụ thể của Backbone.sync tới các kiểu máy và bộ sưu tập của bạn.

Nếu bạn muốn thực hiện cả hai cùng một lúc, bạn sẽ phải viết phiên bản Backbone.sync của riêng bạn mà cả hai đều gọi máy chủ và gọi localStorage.

Cách đơn giản nhất để làm điều này là chỉ cần xác định

Backbone.sync = function() { 
    originalSync.apply(this, arguments); 
    localStorageSync.apply(this, arguments); 
} 

Edit:

Như đã đề cập trong các ý kiến, nếu bạn sử dụng đường trục mới nhất localStorage plugin sau đó bạn có thể làm

sau
Backbone.sync = function Sync() { 
    Backbone.ajaxSync.apply(this, arguments); 
    return Backbone.localSync.apply(this, arguments); 
}; 
+0

Điều đó có ý nghĩa. Tôi nghĩ rằng có cả hai và sau đó thả bản gốc khi offline làm cho ý nghĩa nhất (cảm ơn vì đã bao gồm nó). Bạn có kinh nghiệm cá nhân nào với những tình huống này không? – LeRoy

+2

@LeRoy nhưng không có một số tính năng phát hiện xung quanh 'originalSync' để kiểm tra xem liệu trực tuyến của bạn có hợp lý hay không. Ngoài ra hãy chắc chắn để làm cho máy chủ thực sự nhiều hơn "authorative" sau đó lưu trữ một ẩn. Và đặt một hệ thống để theo dõi các thay đổi được thực hiện khi ngoại tuyến và đẩy chúng thành một loạt cho máy chủ. – Raynos

+0

là có bất kỳ ứng dụng mẫu nào mà tôi có thể tham khảo cho bộ nhớ cục bộ + đồng bộ hóa ngoại tuyến cùng một lúc. – Pankaj

Các vấn đề liên quan