2010-08-20 22 views
12

Tôi đang cố tạo một ứng dụng web đơn giản cho iPad cần được sử dụng ở những nơi không có kết nối internet. Ứng dụng này rất cần thiết, nhưng cũng bao gồm một số tệp video (thường khoảng 100MB).Sử dụng cơ sở dữ liệu web HTML5 để lưu trữ tệp để truy cập ngoại tuyến

Ban đầu tôi đã lên kế hoạch sử dụng bộ nhớ cache biểu hiện ngoại tuyến của HTML5 để đồng bộ hóa nội dung với bộ nhớ của iPad khi kết nối Internet khả dụng trước khi trên đường, nhưng tiếc là có vẻ như là một hạn chế (ít nhất là trong iOS 3.2) mà bộ nhớ cache có thể không quá 5MB.

Nhìn vào cách Google sử dụng cơ sở dữ liệu web HTML5 Tôi đã tự hỏi nếu một giải pháp thay thế có thể là để treo tài sản video/hình ảnh vào các đốm màu trong cơ sở dữ liệu. Tuy nhiên, tôi gặp khó khăn lớn khi tìm cách đọc dữ liệu nhị phân để lưu trữ trong các đốm màu trong cơ sở dữ liệu.

Câu hỏi của tôi là:

  1. bất cứ ai có thể cung cấp [liên kết đến] một ví dụ của việc đọc dữ liệu nhị phân vào một client-side cơ sở dữ liệu web HTML5 (và truy cập vào nó)?
  2. Đây có phải là phương pháp thay thế hợp lý để thực hiện đối với giới hạn 5MB không?
+0

bạn có nhận được bất cứ nơi nào với điều này không? Tôi đang nhìn vào một vấn đề tương tự nhưng đối với máy tính để bàn –

+0

Thật không may, chúng tôi đã phải đi với viết một ứng dụng mỏng xung quanh một trường hợp Safari nhúng. Bản thân ứng dụng đã thực hiện yêu cầu nội dung ban đầu, nắm lấy tệp kê khai, lấy nội dung, sau đó được trình bày cục bộ từ đĩa đến cá thể trình duyệt.Chúng tôi đã gặp khó khăn khi phân tích cú pháp tệp kê khai có cùng định dạng với thông số HTML5 hiện tại với hy vọng một ngày chúng tôi có thể thoát khỏi ứng dụng và chỉ sử dụng RAW BROWSER POWER (R) (TM) !! 1! – andybee

Trả lời

5

Chỉ muốn chia sẻ kinh nghiệm của tôi vì nó có thể có liên quan. Chúng tôi đã (cố gắng) để phát triển một ứng dụng web dựa trên iPad cần lưu trữ 1000 hình ảnh và tệp (chẳng hạn như bản trình bày và tài liệu từ)

Một mô hình trên Windows (Safari 4 & 5) có thể nhập hình ảnh được mã hóa thành base64 vào cơ sở dữ liệu SQL Web (trường blob) và hiển thị chúng bằng cách sử dụng gọi lại db để đặt nguồn của thẻ hình ảnh như src="data:image/jpeg;base64,...base65encimagedata..."

Các tệp khác (doc, ppt, pdf) phải được tải lên bằng bộ nhớ cache/tệp kê khai ngoại tuyến. Mặc dù chúng ta có thể đưa chúng vào cơ sở dữ liệu như base64, không có cách nào để xem chúng.

Bây giờ vấn đề ... Desktop Safari cho phép bạn tạo một cơ sở dữ liệu SQL lớn (tôi đã làm 1 Gig nhập 3000 hình ảnh.) Và không áp đặt giới hạn đã biết trên bộ đệm ẩn ngoại tuyến.

Tuy nhiên trên những thứ iPad ít hữu ích hơn vì tôi không thể tạo cơ sở dữ liệu hơn 50Mb, cộng với giới hạn bộ nhớ cache 5Mb.

Một số lựa chọn thay thế (Tôi đã không cố gắng họ chưa) đã:

  1. Hãy thử Opera Mini (hoặc các trình duyệt khác có sẵn) trên iPad
  2. Tôi biết Google Chrome (trong đó sử dụng webkit) có một giới hạn về kích thước cơ sở dữ liệu SQL của nó, nhưng bạn có thể 'vá nó' (https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/8672b2e0cd69a9f7/ebf17070d32c1168?lnk=gst&q=database+size#ebf17070d32c1168) với một số SQL để tăng kích thước của nó. Có lẽ điều này có thể được thực hiện trên iPad bằng cách nào đó.
+0

Tóm lại, không thể (ít nhất là hiện tại). Đối với dự án cụ thể của tôi nó trông giống như viết một ứng dụng mỏng xung quanh một UIWebView kéo nội dung vào hệ thống tập tin của iPad sau đó hiển thị nó. – andybee

2

Cơ sở dữ liệu có giới hạn 5 mb sau đó người dùng được nhắc cho phép khoảng 20 mb trở lên. Giới hạn cứng là 20-25 mb sau đó bạn không thể chèn thêm bất kỳ bản ghi nào vào localstorage của mình.

+0

bất kỳ liên kết nào đến tài liệu chính thức? – Dan

+0

Giới hạn là nền tảng và trình duyệt cụ thể cho cả webStorage cũng như cho WebSQL. – Astronaut

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