2013-01-15 20 views
17

Tôi đang tạo ứng dụng bằng HTML5 và Javascript. Ứng dụng này sẽ tương thích với Windows và iOS 6 (iPad). Tôi cần truy cập cơ sở dữ liệu cục bộ bằng javascript. Đây là một ap ngoại tuyến thuần túy mà không có bên máy chủ nào liên quan.Javascript và Sqlite

tiến thoái lưỡng nan của tôi là -

  1. WebSQL không được hỗ trợ nữa bởi W3C.

  2. IndexedDB hoạt động với Firefox nhưng không hoạt động với iOS6.

  3. Quan trọng nhất, tôi muốn tránh bộ nhớ cơ sở dữ liệu cục bộ HTML5 khi làm sạch dữ liệu bất cứ khi nào lịch sử bị xóa.

Tôi muốn có một cơ sở dữ liệu bền cục bộ cho ứng dụng, chẳng hạn như SQLite. Có thể truy cập SQLite bằng cách sử dụng javascript thuần túy, để nó hoạt động với Firefox trên Windows và trên iPad.

EDIT: Ứng dụng sẽ không được chạy từ trình duyệt trong iPad (iOS6). Thay vào đó, ứng dụng sẽ được đóng gói thành tệp ipa và được cài đặt trong thiết bị iPad.

+0

Vì vậy, iOS có hỗ trợ sqlite cho các ứng dụng iOS. https://www.google.com/search?q=iOS+apps+sqlite+javascript –

Trả lời

3

Điều bạn đang tìm kiếm là polyfill.

Theo HTML5 Please, IndexedDB Polyfill triển khai API IndexedDB trên WebSQL. (Tác giả của polyfill cũng đã viết một số article trên Mozilla Hacks về nó.)

Facebook cũng như là polyfill. Theo số this pull request (cho một dự án khác), Parashuram Narasimhan, tác giả của polyfill đầu tiên, dường như thích sự đa tạp của Facebook và đang xem xét việc nghỉ hưu dự án của riêng mình. (Nhưng sau đó một lần nữa, các repo Facebook trông giống như một bãi chứa mã một lần và có thể không có bất kỳ sự phát triển liên tục.)

-4

Có thể 100%. Tôi có thể đề nghị một lib javascript để truy cập dữ liệu trong html5 sqlite. Tài liệu & mã mẫu: click here

Tôi đã tạo bản trình diễn android (bằng cách sử dụng điện thoại) với lib đó. Nó hoạt động tuyệt vời!

Download the demo here

-3

Hãy kiểm tra xem điều này có hữu ích không. bạn có thể sử dụng javascript cho cả front-end và back-end (đối với các tương tác db). Có rất nhiều plugin cũng có sẵn để sử dụng cho framwork này. http://www.nodejs.org

1

Có một số điểm cần lưu ý.

  1. Ứng dụng khách hàng thuần túy của ứng dụng.
  2. Không sử dụng WebStorage (địa phương và phiên)

Các tùy chọn còn lại đang sử dụng WebSQL, IndexedDB, khung hoặc tùy chỉnh các giải pháp của bên thứ ba.

webSQL: - Hỗ trợ bị giới hạn đối với trình duyệt webkit và w3c tuyên bố đã chết. Browser support

Đã lập chỉ mụcDB: - Hỗ trợ trong IE10, chrome và Firefox. Browser support. Không được hỗ trợ trong các phiên bản cũ của IE.

của bên thứ ba khuôn khổ: - sequelsphere là một giải pháp độc lập nền tảng để giải quyết vấn đề này. Nó là một RDMS được viết hoàn toàn bằng javascript và sử dụng webSQL hoặc IndexedDB.

giải pháp tùy chỉnh: - Supporting both IndexedDB and WebSQL on a cross platform web app như hướng dẫn này, chúng tôi có thể tạo giải pháp db trình duyệt chéo tùy chỉnh hoặc có thể sử dụng lawnchair như tùy chọn lưu trữ json.

1

Chúng tôi đã có cùng một vấn đề và đã được trả lời trên thread này.

Xe lăn là lựa chọn tốt nếu bạn cần một DB bảng đơn - chúng tôi có yêu cầu nhiều bảng, do đó đã phát triển trình bao bọc riêng.

Tạo ứng dụng web bằng HTML-5 và JavaScript để ứng dụng có thể hoạt động cho cả trình duyệt trên máy tính để bàn và iPad. Làm cho nó lai bằng cách sử dụng PhoneGap để làm cho nó ứng dụng bản địa của iPad.