Tôi nên xử lý JSON ở frontend hay Backend, cái nào nhanh hơn? [đóng cửa]


11

Tôi nhận được phản hồi từ API dưới dạng phản hồi json. Tôi đang mã hóa trong python cho phụ trợ.

Nhóm frontend cần thông tin từ phản hồi json thô để điền UI, vì vậy chúng tôi phải đặt hàng json và giúp họ lấy thông tin dễ dàng hơn.

Bây giờ tôi có thể ra lệnh cho json theo một định dạng cụ thể và đẩy vào nhóm frontend hoặc tôi có thể chuyển phản hồi json thô * cho nhóm frontend và để họ xử lý việc đặt json và sử dụng thêm cho UI của họ.

Hãy nhớ kích thước tệp json của tôi là 15MB .

Cái nào nhanh hơn và một nguyên tắc thiết kế tốt hơn?

Quá trình trong phụ trợ sau đó đẩy lên frontend hay xử lý trong frontend?


Theo tôi, xử lý trên máy chủ tốt hơn trong trường hợp của bạn vì kích thước và chiều dài dữ liệu, vì thông thường các máy chủ cho hiệu năng tốt hơn nhiều so với các trình duyệt trong pc.
Umair Khan

1
Lý tưởng nhất là giao diện người dùng chỉ đơn giản tiêu thụ các phản hồi API. Do giao diện người dùng sẽ chạy trên máy tính của người khác (có thể yếu và chậm), bạn không muốn giảm tải dữ liệu cho phía máy khách vì điều đó có thể dẫn đến trải nghiệm chậm và khó chịu trong ứng dụng web của bạn. Phản hồi từ phụ trợ nên ít nhiều ở định dạng cần thiết cho giao diện người dùng. Lý tưởng nhất là front end không nên thực hiện nhiều (nếu có) xử lý dữ liệu thực, nên thực hiện phía máy chủ
Jayce444

2
15MB là rất nhiều, tôi sẽ làm điều đó vào phần phụ trợ.
Boris

Câu trả lời:


7

Lý tưởng nhất là nếu kích thước tệp là 15 mb, nó sẽ được tải vào bộ nhớ trình duyệt, điều này sẽ làm cho nó chậm, tôi khuyên bạn chỉ nên thực hiện thao tác trong phụ trợ.

Bạn cũng có thể đi qua liên kết này để tham khảo. Sự khác biệt giữa python và Javascript và những gì để sử dụng

  1. Một khía cạnh quan trọng là JavaScript rất khó để gỡ lỗi. Bạn có thể nhận thấy rằng mặc dù mã của bạn không có lỗi, chương trình sẽ không hoạt động (thất bại trong âm thầm).

3

Luôn luôn tốt hơn để xử lý dữ liệu trong phụ trợ.


2

Tôi sẽ đề nghị thực hiện điều này trên phần phụ trợ, một số lý do chính tôi muốn đề xuất là:

  • Xử lý trên thiết bị di động dẫn đến hao pin lớn
  • Nếu lối vào của bạn là web, javascript sẽ chặn trong khi quá trình xử lý đang diễn ra (điều này có thể dẫn đến trải nghiệm xấu)
  • Phản hồi của máy chủ có thể được lưu trong bộ nhớ cache để tăng tốc thời gian phản hồi và xử lý trùng lặp thấp hơn
  • Ngôn ngữ phụ trợ của bạn có thể thực hiện nhiệm vụ tối ưu hơn sau đó thiết bị lối vào có thể

0

Như những người khác đã lưu ý, có khá nhiều lý do chính đáng để thích xử lý ở mặt sau:

  • nếu bạn có thể xóa tất cả dữ liệu không cần thiết khỏi JSON được gửi đến giao diện người dùng, nó sẽ giảm tải cho thiết bị người dùng cuối cả về chuyển khoản mà cả về thời gian phân tích cú pháp
  • có thể lưu trữ cuộc gọi API từ xa, vì vậy bạn không cần thực hiện nhiều cuộc gọi đến các API từ xa (thường sẽ rất chậm so với truy xuất bộ đệm). Bạn cũng có khả năng lưu trữ dữ liệu sau khi xử lý, do đó bạn chỉ có thể phục vụ dữ liệu đó nhiều lần
  • Bạn có thể phát hiện các lỗi xảy ra khi xử lý JSON, trong khi đó điều đó ít thấy hơn nếu nó xảy ra trên thiết bị khách

Một lợi thế lớn khác để xử lý phản hồi API ở mặt sau là bạn có thể chọn cấu trúc bạn gửi đến giao diện người dùng. Theo cách đó, nếu API bạn đang tiêu thụ thay đổi theo thời gian (hoặc bạn thay đổi dịch vụ nào bạn đang sử dụng để truy xuất dữ liệu), bạn có thể xử lý thay đổi đó ở mặt sau mà không bao giờ ảnh hưởng đến mã giao diện người dùng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.