Asked Oct 19th, 2018 1:58 PM 123 0 2
  • 123 0 2
+1

Lưu nhiều dữ liệu vào state có ảnh hưởng đến hiệu năng của ứng dụng không

Share
  • 123 0 2

Chào mọi người, Hiện tại dự án mình đang dùng Redux để quản lý state của ứng dụng. Cho mình hỏi là nếu lượng data mình lưu vào store lớn thì có ảnh hưởng đến hiệu năng của ứng dụng không ạ. Mình muốn cache data nên dữ liệu sau khi lấy từ server về mình lưu hết vào store để dùng, nếu store lưu nhiều data quá thì có vấn đề gì không nhỉ, mong nhận được giải đáp của các cao nhân, thanks

2 ANSWERS


Answered Oct 22nd, 2018 1:06 AM
+2

Mình chưa làm project nào có lượng data lưu trong store quá lớn tuy nhiên như bạn nói là muốn cache lại data từ server thì có lẽ sẽ phù hợp hơn nếu bạn lưu vào LocalStorage hoặc sử dụng một số loại database cho js như https://pouchdb.com/

Share
Van Hung @vhung
Oct 24th, 2018 7:40 AM

@HuyDQ Nếu lưu vào LocalStorage mình nghĩ không an toàn lắm, vì hacker có thể lấy được, thêm nữa là dung lượng nó bị giới hạn quá bạn nhỉ

0
| Reply
Share
Answered Dec 25th, 2019 12:34 PM
0

Lưu vào state thì chỉ ăn vào RAM, nên ảnh hưởng hay ko sẽ tuỳ vào cấu hình máy client. Nếu dữ liệu của bạn toàn là text thì thoải mái, còn nếu là các file media thì khả năng toang.

Còn về performance, thì bạn nên để ý đến các điểm sau thì hơn:

  • component của bạn có bị render khi ko cần thiết hay ko (vd như state mới giống hệt state cũ nhưng vẫn re-render, hay là thằng component cha re-render nên hàng loạt các thằng con re-render theo)
  • 1 component quá to, render lâu (vd như cái root component ngta hay dùng code-splitting để giảm thời gian init load của trang)

(ngoài ra thì dùng hay ko dùng localStorage là vấn đề về persist data khi bật tắt trang web, do cái localStorage này là đọc ghi trực tiếp ra ổ cứng, nên về mặt lý thuyết là sẽ bị chậm, nên nếu bạn dùng để lưu một vài dữ liệu linh tinh thì ok, còn việc lưu hết vào localStorage thì ko đc khuyến khích, nên sử dụng redux-persist, nó cũng dùng localStorage nhưng mà nó sẽ chọn thời điểm hợp lý để lưu - khôi phục dữ liệu, như vậy thì đỡ ảnh hưởng đến hiệu năng hơn là mình xài trực tiếp localStorage)

Share