2009-09-22 39 views
6

Trong bản trình diễn của tôi, tôi muốn tránh sử dụng các DB truyền thống và lưu trữ tất cả dữ liệu ở phía máy khách, ví dụ: thông tin được gửi qua biểu mẫu.Persistence Side Client (Storage)

Tôi có lựa chọn thay thế nào cho điều đó. Tôi đã nghe nói về Gears nhưng tôi không có kinh nghiệm thực tế.

Tôi cũng có thể lưu trữ thông tin nhị phân bên cạnh chuỗi không, ví dụ: một tấm ảnh?

Trả lời

5

Bạn có thể có một cái nhìn vào YUI's StorageUtility. Nó có thể sử dụng HTML 5, Google Gears hoặc SWF trên cơ sở dự phòng.

+2

Chà, nó có sử dụng SWF không? Thật là kinh khủng. Đây là loại điều khiến tôi chỉ muốn tắt bộ nhớ flash theo yêu cầu. Tổng số lạm dụng, và lén lút. Tôi thấy nó làm phiền rằng một thương hiệu như Yahoo, và phần mềm nguồn mở sẽ dùng đến loại phần mềm quảng cáo spam được biết đến. –

+4

@apphacker: chỉ vì những người gửi spam sử dụng công nghệ cho các mục đích bất chính không có nghĩa là * tất cả * sử dụng công nghệ đó bằng cách nào đó xấu xa. Không có gì sai khi sử dụng nó vì lý do hợp lệ. Hoặc chúng ta có nên cấm chuyển hướng HTTP vì người gửi spam sử dụng chúng để đưa mọi người đến trang web độc ác không? – NickFitz

+0

@apphacker Tôi không thể nhìn thấy điểm. Vì vậy, bạn ghét HTML 5 hoặc Google Gears? –

1

Tùy chọn của bạn có phần hạn chế tôi sợ.

  • Cookies
  • Tùy thuộc vào sự sẵn sàng của bạn để chỉ sử dụng trình duyệt nhất định bạn có thể thực hiện browser based storage
0

Tôi có một bản demo rất đơn giản để thử nghiệm webstorage/localstorage của HTML5.

http://www.codebase.es/test/webstorage.html

Bạn có thể lưu bất cứ thứ gì mình muốn, không chỉ dây. Để lưu trữ một hình ảnh, sao chép hình ảnh vào một khung hình và lưu dữ liệu bằng phương thức toDataURL().

Nhưng đừng mong đợi nó hoạt động trên IE ...

1

Cookie là cách được hỗ trợ nhiều nhất để hoạt động trên các trình duyệt. Tôi đã mở có nguồn gốc một thư viện nhỏ để nhận và lưu dữ liệu thông qua Cookie thông qua các đối tượng javascript gốc.

http://code.google.com/p/mapbug/source/browse/trunk/app/scripts/cookies.js 

bạn có thể sao chép và sử dụng như bạn thấy phù hợp. Bạn cũng sẽ cần mã cách ly không gian tên javascript này nếu bạn sử dụng nó như sau:

http://code.google.com/p/mapbug/source/browse/trunk/app/scripts/namespace.js 

Nếu bạn có một lượng lớn dữ liệu, bạn sẽ phải phân phối nó với nhiều cookie khác nhau. Nói chung, bạn có thể phụ thuộc vào việc có thể tiết kiệm tối đa 4K dữ liệu cho mỗi cookie.

1

YUI StorageUtility là một trừu tượng tốt đẹp, như Andy nói. Dojo có trừu tượng tương tự dojox.storage cũng hoạt động với một số trình duyệt cũ hơn. Nếu số lượng dữ liệu của bạn là < 100 KB thì bạn có thể dễ dàng sử dụng Flash. Hãy suy nghĩ cẩn thận về việc sử dụng các cookie HTTP, vì chúng không chỉ bị giới hạn về kích thước, chúng được gửi qua dây dẫn, mà có thể hoặc có thể không được mong muốn.