16

Tôi đang tìm kiếm một thư viện javascript mà sẽ cho phép tôi lưu trữ dữ liệu trong một cơ sở dữ liệu phía khách hàng và trong lòng đất lại tự động đồng bộ hóa cơ sở dữ liệu trở lại cơ sở dữ liệu của máy chủjavascript thư viện để lưu trữ phía khách hàng với đồng bộ hóa máy chủ bên

thích cái gì đó hỗ trợ một variaty của động cơ trong cùng một cách jStore cho jQuery làm

Nhìn xung quanh tôi có thể tìm thấy bất cứ điều gì

Trả lời

1

Iam không chắc chắn 100%, nhưng tôi nghĩ rằng có isnt một khuôn khổ như vậy. Tôi sẽ khuyên bạn nên có một cái nhìn trên Google Gears.

Google Gears hỗ trợ bộ nhớ ngoại tuyến ở phía máy khách.

Một cách tiếp cận khác là kiểm tra mã nguồn của TidlyWiki. Họ đã tạo ra một hệ thống wiki lưu trữ tất cả dữ liệu ở phía máy khách.

+1

bộ nhớ ngoại tuyến không quá khó như trước đây, có một số thư viện hỗ trợ Gears, DB và Flash cục bộ HTML5. câu hỏi ban đầu là nhiều hơn về đồng bộ hóa nền với máy chủ (khi trực tuyến) – Javier

+1

Ngoài ra, Google Gears đang bị loại bỏ. –

1

Tôi không biết bất kỳ thư viện nào làm điều đó hiện nay. Ngay cả khó khăn này là một ý tưởng có thể, tôi phải nói rằng tôi không chắc chắn nếu làm thư viện như vậy là một nỗ lực tốt.

Nó sẽ phải cung cấp các ví dụ về cách hiển thị dữ liệu máy chủ của bạn cho thư viện, cách tính toán vùng đồng bằng, v.v. Điều này sẽ buộc nhà phát triển thay đổi mã phía máy chủ này cho phù hợp với giao thức của thư viện. Điều này có thể tuyệt vời đối với các ứng dụng và trang web mới, nhưng điều này có thể gây đau cho bất kỳ trang web hiện có nào, với cấu trúc dữ liệu cụ thể, làm cho nỗ lực thực hiện điều này không thích hợp hơn để phát triển Javascript của riêng bạn. bởi ứng dụng. Tất cả những vấn đề bảo mật tiềm ẩn này sẽ khó quản lý trong một thư viện javascript chung.

IMHO đây là một ý tưởng tuyệt vời để tạo các gói hoặc plugin cho các khung công tác MVC dựa trên ORM cụ thể, ví dụ: Ruby on Rails hoặc Django. Vì bản thân khung công tác đã trừu tượng hóa cấu trúc dữ liệu và nhiều bản sửa lỗi bảo mật đã được nhóm lại với nhau, nên việc tạo một gói để làm điều đó sẽ dễ sử dụng hơn và thanh lịch hơn.

0

Tôi đã thực hiện một số công việc về vấn đề này. Có vẻ như gần như có thể sử dụng Google Documents. Hầu hết các API đều có thể truy cập qua Javascript. Thật không may các ngoại lệ bao gồm những thứ như tải lên và tải xuống, vì vậy trong khi có thể liệt kê tài liệu, tạo tệp, thay đổi siêu dữ liệu, v.v ... từ bên trong trình duyệt, thực sự nhận được dữ liệu khó hơn rất nhiều.

Bảng tính Google có API Javascript để truy cập các ô riêng lẻ, do đó về mặt lý thuyết có thể lưu trữ dữ liệu của bạn trong bảng tính. Thật không may có một toàn bộ trong API, nơi nó có vẻ là khá khó để ghi dữ liệu vào một tế bào mà trước đó không có dữ liệu trong nó, có nghĩa là một khi bạn đã tạo bảng tính trống của bạn, bạn không thể cư nó ...

3

Store.js đối phó với lưu trữ phía máy khách rất tốt. Lưu ý rằng nó hỗ trợ IE6 + cùng với các trình duyệt khác. Đối với việc lưu trữ phía máy chủ, bạn cũng có thể làm cho kịch bản của riêng bạn cho rằng vì nó không phải là khó khăn.

+2

Theo tài liệu của họ: "store.js sử dụng localStorage khi có sẵn và giảm về hành vi userData trong IE6 và IE7". Nó không lưu trữ vào cơ sở dữ liệu Web SQL hoặc IndexedDB. Ngoài ra nó không có gì để đồng bộ hóa dữ liệu. –

0

Theo như tôi biết Safari, Chrome và Opera đều dựa trên SQLite. SQLite có lệnh .dump không chỉ tuyệt vời để khôi phục cơ sở dữ liệu mà còn đồng bộ với cơ sở dữ liệu khác. Do đó, có thể gọi điều này từ Cơ sở dữ liệu Javascript bằng cách sử dụng .dump và nếu cần thiết, sửa đổi kết xuất và tải nó lên cơ sở dữ liệu máy chủ để thực thi.

Tuy nhiên, bạn sẽ cần phải cẩn thận với các nỗ lực chèn SQL.

+0

Bạn có thể truy cập .dump từ Javascript không? – oivvio

+0

Điều này sẽ rất hữu ích cho việc sao lưu cơ sở dữ liệu cục bộ, nhưng điều này không thể sử dụng cho các hoạt động CRUD (ví dụ: khả năng mở rộng). –

3

Vì câu hỏi này được hỏi, đã có rất nhiều công việc được thực hiện trên cơ sở dữ liệu cục bộ và bộ máy khách cục bộ.

Có tổng quan tuyệt vời về các tùy chọn bộ nhớ cục bộ tại Dive Into HTML5.

Ngoài ra còn có một số thư viện lưu trữ JavaScript đa nền tảng có sẵn, bao gồm Lawnchairpersistence.js.

0

Bạn đã thử jsonengine?

Không chắc chắn dự án này còn sống nhưng điều này trả lời tất cả các yêu cầu của yor.

+0

Theo như tôi đã hiểu, 'jsonengine' là một triển khai RESTful API phía máy chủ. Nó cung cấp các ví dụ sử dụng hoặc là lưu giữ dữ liệu đến máy chủ hoặc lưu trữ cục bộ của máy khách. Tuy nhiên, không có gì được thực hiện để đồng bộ hóa máy khách-máy chủ. –

0

Firebase thực hiện việc này, mặc dù đây không phải là mô hình quan hệ

1

Chỉ cần vấp phải câu hỏi này; cho hậu thế, CouchDB và CouchBase được thiết kế cho việc này:

http://couchdb.apache.org/

Client JavaScript:

https://pouchdb.com/

Và CouchBase:

https://www.couchbase.com/

Cuối cùng, CouchBase Lite/Thiết bị di động:

https://www.couchbase.com/products/lite

Sau này bạn sẽ được đồng bộ hóa CouchDB/CouchBase gốc.

Trong mọi trường hợp, bạn chỉ cần truy cập cơ sở dữ liệu cục bộ và có thể đồng bộ hóa nếu và khi bạn kết nối với internet.

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