Bước tới nội dung

Isomorphic JavaScript

Bách khoa toàn thư mở Wikipedia

Đây là một phiên bản cũ của trang này, do Tuanminh01 (thảo luận | đóng góp) sửa đổi vào lúc 01:48, ngày 20 tháng 11 năm 2018. Địa chỉ URL hiện tại là một liên kết vĩnh viễn đến phiên bản này của trang, có thể khác biệt rất nhiều so với phiên bản hiện hành.

Isomorphic JavaScript, cũng được biết đến là Universal JavaScript, mô tả các ứng dụng JavaScript chạy trên cả client và server.

Cơ chế

Isomorphic JavaScript có một số điểm giống như single page application (SPA). Với một SPA thông thường, hầu hết các logic của ứng dụng bao gồm routing, được đóng gói trong các file JavaScript rồi gửi tới và thực hiện ở phía client. Điều này giúp giảm tải cho server, vì nó không phải xử lý quá nhiều request và logic, tuy nhiên nó cũng làm lần tải đầu tiên bị chậm, vì toàn bộ ứng dụng phải được gửi tới client.

Với Isomorphic JavaScript, trong lần đầu tải trang, view của trang sẽ được render trên server, tuơng tự các trang web truyền thống, sau đó server gửi view đã được render dưới định dạng html tới client. Vì vậy client có thể render view ngay lập tức. Sau đó toàn bộ SPA được tải dưới background, và các hành động tiếp theo được xử lý ở phía client.

Tên gọi

Việc sử dụng thuật ngữ 'Isomorphic JavaScript' là một vấn đề gây nhiều tranh cãi. 'Isomorphic' lần đầu tiên được giới thiệu bởi Charlie Robbins ở Nodejitsu, trong một bài viết trên blog của công ty. Sau đó, Spike Brehm một kỹ sư phần mềm tại Airbnb, đã viết một bài viết khác sử dụng thuật ngữ này. Tuy nhiên, có nhiều người đề xuất sử dụng thuật ngữ Universal JavaScript thay thế.

Lợi ích

Isomorphic JavaScript đã khắc phục được những nhược điểm lớn của SPA như:

  • Tốc độ tải trang trong lần đầu tiên.
  • SEO

Các công cụ

Một số công cụ hỗ trợ tạo các ứng dụng Isomorphic JavaScript: Next.js cho ReactJs, Nuxt.js cho VueJs, Angular Universal cho Angular.

Tham khảo