Điều quan trọng là bạn phải chọn đúng cơ chế lưu trữ, cả đối với bộ nhớ cục bộ của thiết bị và bộ nhớ máy chủ dựa trên đám mây. Một công cụ lưu trữ tốt sẽ đảm bảo rằng thông tin của bạn được lưu một cách đáng tin cậy, giảm băng thông và cải thiện khả năng phản hồi. Chiến lược lưu vào bộ nhớ đệm bộ nhớ phù hợp là một thành phần cốt lõi để hỗ trợ trải nghiệm web dành cho thiết bị di động khi không có mạng.
Bài viết này cung cấp một nền tảng ngắn gọn để đánh giá các API và dịch vụ lưu trữ. Sau đó, chúng tôi sẽ cung cấp bảng so sánh và một số hướng dẫn chung. Trong thời gian sắp tới, chúng tôi dự định bổ sung tài nguyên để giúp bạn hiểu rõ hơn về một số chủ đề liên quan đến bộ nhớ.
Hệ thống phân loại bộ nhớ
Hãy bắt đầu bằng cách tìm hiểu một số phương diện mà chúng ta có thể phân tích bộ nhớ dữ liệu cho ứng dụng web. Sau đó, chúng ta sẽ sử dụng khung này để liệt kê và đánh giá nhiều tuỳ chọn bộ nhớ có sẵn cho nhà phát triển web.
Mô hình dữ liệu
Mô hình lưu trữ các đơn vị dữ liệu xác định cách dữ liệu được sắp xếp nội bộ, ảnh hưởng đến khả năng dễ sử dụng, chi phí và hiệu suất của các yêu cầu lưu trữ và truy xuất.
Có cấu trúc: Dữ liệu được lưu trữ trong các bảng có các trường được xác định trước, như thông thường trong các hệ thống quản lý cơ sở dữ liệu dựa trên SQL, phù hợp với các truy vấn linh hoạt và động, trong đó toàn bộ các loại truy vấn có thể không được biết trước. Một ví dụ nổi bật về kho dữ liệu có cấu trúc trong trình duyệt là IndexedDB.
Kho khoá/giá trị: Kho dữ liệu khoá/giá trị và cơ sở dữ liệu NoSQL có liên quan cung cấp khả năng lưu trữ và truy xuất dữ liệu không có cấu trúc được lập chỉ mục theo một khoá duy nhất. Kho dữ liệu khoá/giá trị giống như bảng băm ở chỗ cho phép truy cập trong thời gian không đổi vào dữ liệu mờ, được lập chỉ mục. Một số ví dụ nổi bật về kho dữ liệu khoá/giá trị là Cache API trong trình duyệt và Apache Cassandra trên máy chủ.
Luồng byte: Mô hình đơn giản này lưu trữ dữ liệu dưới dạng một chuỗi byte có độ dài biến đổi, mờ, để lại mọi hình thức tổ chức nội bộ cho lớp ứng dụng. Mô hình này đặc biệt phù hợp với hệ thống tệp và các blob dữ liệu được sắp xếp theo hệ phân cấp khác. Một số ví dụ nổi bật về kho dữ liệu luồng byte bao gồm hệ thống tệp và dịch vụ lưu trữ trên đám mây.
Khả năng lưu trữ dài lâu
Bạn có thể phân tích các phương thức lưu trữ cho ứng dụng web theo phạm vi lưu trữ dữ liệu.
Duy trì phiên: Dữ liệu trong danh mục này chỉ được giữ lại miễn là một phiên web hoặc thẻ trình duyệt vẫn hoạt động. Một ví dụ về cơ chế lưu trữ có phiên hoạt động ổn định là API Bộ nhớ phiên.
Tính năng lưu trữ liên tục trên thiết bị: Dữ liệu trong danh mục này được giữ lại trên các phiên và thẻ/cửa sổ trình duyệt, trong một thiết bị cụ thể. Ví dụ về cơ chế lưu trữ có tính ổn định trên thiết bị là API bộ nhớ đệm.
Lưu trữ cố định trên toàn cầu: Dữ liệu trong danh mục này được giữ lại trên các phiên và thiết bị. Do đó, đây là hình thức lưu trữ dữ liệu bền vững nhất. Một ví dụ về cơ chế lưu trữ có tính ổn định toàn cầu là Google Cloud Storage.
Hỗ trợ trình duyệt
Nhà phát triển nên chọn một API phù hợp nhất với phạm vi vấn đề của họ; tuy nhiên, họ cũng nên cân nhắc việc các API được chuẩn hoá và thiết lập tốt sẽ tốt hơn so với các giao diện tuỳ chỉnh hoặc độc quyền, vì các API này có xu hướng tồn tại lâu hơn và được hỗ trợ rộng rãi hơn. Họ cũng có thể tận hưởng một cơ sở kiến thức rộng hơn và hệ sinh thái nhà phát triển phong phú hơn.
Giao dịch
Thông thường, điều quan trọng là một tập hợp các thao tác lưu trữ có liên quan phải thành công hoặc không thành công một cách nguyên tử. Theo truyền thống, các hệ thống quản lý cơ sở dữ liệu đã hỗ trợ tính năng này bằng cách sử dụng mô hình giao dịch, trong đó các bản cập nhật có liên quan có thể được nhóm thành các đơn vị tuỳ ý. Mặc dù không phải lúc nào cũng cần thiết, nhưng đây là một tính năng thuận tiện và đôi khi cần thiết trong một số lĩnh vực vấn đề.
Đồng bộ/Không đồng bộ
Một số API bộ nhớ có tính đồng bộ theo nghĩa là các yêu cầu lưu trữ hoặc truy xuất sẽ chặn luồng đang hoạt động cho đến khi yêu cầu hoàn tất. Điều này đặc biệt nặng nề trong trình duyệt web, trong đó yêu cầu bộ nhớ đang chia sẻ luồng chính với giao diện người dùng. Vì lý do hiệu quả và hiệu suất, bạn nên sử dụng API bộ nhớ không đồng bộ.
Gỡ lỗi bộ nhớ trong Chrome DevTools
Hãy xem các tài liệu sau để tìm hiểu thêm về cách sử dụng Công cụ của Chrome cho nhà phát triển để kiểm tra và gỡ lỗi API bộ nhớ web mà bạn chọn. Các API không được đề cập ở đây không được hỗ trợ trong DevTools hoặc không áp dụng được.
Nếu bạn đang sử dụng nhiều API bộ nhớ, hãy xem tính năng Xoá bộ nhớ của DevTools. Tính năng này cho phép bạn xoá nhiều cửa hàng chỉ bằng một lần nhấp vào nút. Hãy xem phần Xoá trình chạy dịch vụ, bộ nhớ, cơ sở dữ liệu và bộ nhớ đệm để biết thêm thông tin.
Bước tiếp theo…
Giờ đây, khi đã xem xét một số cách liên quan để suy nghĩ về các cơ chế lưu trữ và so sánh các API và dịch vụ phổ biến nhất hiện có, chúng tôi sẽ sớm bổ sung thêm nội dung để đi sâu hơn vào một hoặc nhiều chủ đề mà bạn quan tâm: