Read more »

Chương 1: Persistent Storage

Kiến thức trọng tâm:

  • IndexedDB: Là cơ sở dữ liệu NoSQL tích hợp trong trình duyệt. Nó khác LocalStorage ở chỗ lưu được dữ liệu lớn và phức tạp hơn.
  • Object Store: Tương đương với "Bảng" trong Excel. Ở đây chúng ta tạo bảng tên notes.
  • Transaction: Mọi thao tác Ghi/Đọc đều phải bọc trong một "Giao dịch" để đảm bảo an toàn dữ liệu.

Chương 2: Cấu trúc mảng dữ liệu

Kiến thức trọng tâm:

  • AutoIncrement: Tự động đánh số thứ tự (ID) cho dữ liệu. Bạn không cần lo lắng về việc trùng lặp mã đơn hàng.
  • Cursor (Con trỏ): Dùng để duyệt qua toàn bộ dữ liệu. Lệnh cursor.continue() sẽ nhảy sang dòng tiếp theo cho đến khi hết dữ liệu.
  • Xóa dữ liệu: Chúng ta xóa dựa vào ID duy nhất được cấp lúc thêm.

Chương 3: Xử lý số liệu

Tổng: 0đ

Kiến thức trọng tâm:

  • Kiểu dữ liệu: Dùng hàm Number() để chuyển đổi chuỗi văn bản từ ô nhập thành con số để tính toán.
  • Định dạng tiền tệ: Hàm toLocaleString('vi-VN') tự động thêm dấu chấm ngăn cách hàng nghìn, giúp giao diện chuyên nghiệp hơn.
  • Tính tổng cộng: Chúng ta khai báo biến sum = 0 bên ngoài vòng lặp Cursor và cộng dồn từng giá trị vào đó.

Chương 4: Tìm kiếm thông minh

Kiến thức trọng tâm:

  • Sự kiện onkeyup: Đây là "linh hồn" của bộ lọc. Mỗi khi bạn gõ một phím, hàm tìm kiếm sẽ tự động chạy mà không cần nhấn Enter.
  • Hàm toLowerCase(): Máy tính phân biệt chữ Hoa và chữ thường. Chúng ta chuyển tất cả về chữ thường để việc tìm kiếm chính xác hơn.
  • Hàm includes(): Kiểm tra xem từ khóa bạn gõ có nằm trong tên sản phẩm hay không.

Chương 5: Backup Dữ Liệu

Ghi vài dữ liệu mẫu rồi nhấn nút Xuất File bên dưới.

Kiến thức trọng tâm:

  • JSON.stringify: Chuyển đổi toàn bộ dữ liệu từ dạng đối tượng (Object) sang một chuỗi văn bản để có thể lưu vào file.
  • Blob & URL.createObjectURL: Đây là kỹ thuật tạo ra một "đường dẫn ảo" cho dữ liệu, cho phép trình duyệt tải dữ liệu đó về như một file thật.
  • Tính thực tế: Tính năng này cực kỳ quan trọng cho các shop cá cảnh hoặc POS mini, giúp chủ shop không bao giờ sợ mất dữ liệu khi trình duyệt bị lỗi.