Code của Facebook chiếm 16% dung lượng tải của một website thông thường - vấn đề lớn cho việc tối ưu code

    Le Min Kop,  

    Nhu cầu tích hợp các nút tương tác Facebook trên website ngày càng tăng, nhưng trang sẽ phải tải thư viện phần mềm lớn hơn so với nhu cầu thực.

    Với 2 tỷ người dùng hoạt động hàng tháng, Facebook hiện đang là mảnh đất thu hút hơn nửa số cư dân mạng. Trên thực tế, mạng xã hội này trở thành một thứ gì đó không thể tách rời khỏi thế với Internet, không chỉ ở số người dùng mà còn về lượng code đặt trên các website.

    Facebook đang là ông vua mạng xã hội
    Facebook đang là ông vua mạng xã hội

    Như nhà phát triển web Ben Regenspan từ New York cho biết, 6% trong 10.000 website có traffic lớn nhất thực hiện tải nội dung từ máy chủ của Facebook. Đó hầu hết là SDK yêu cầu hiển thị các nút Like, Share và phần nhận xét.

    Nhưng thú vị hơn cả, bộ công cụ của Facebook chiếm khoảng 16% kích thước tất cả mã Javascript tải trung bình của web. Đó là bởi công ty gói tất cả tính năng vào cùng một bộ kit.

    Mặc dù điều này giúp các nhà phát triển dễ dàng gọi các tính năng riêng lẻ từ thư viện phần mềm, nhưng lại gây nặng cho trang với hàng nghìn mã có thể không sử dụng đến hoặc không hoạt động tốt nhất. Chúng gây ảnh hưởng tới hiệu suất tổng thể của web, đặc biệt ở tốc độ tải trang.

    Để mọi người biết rõ có những gì bên trong SDK của Facebook, Regenspan đã đưa ra bảng thống kê minh họa rõ ràng dưới đây:

    Nhiều thành phần trong thư viện mã của Facebook không thực sự hữu ích
    Nhiều thành phần trong thư viện mã của Facebook không thực sự hữu ích

    Như Regenspan chỉ ra, vấn đề nằm ở chỗ có lượng đáng kể SKD được tạo ra hỗ trợ các tính năng mà hiếm khi mọi người dùng tới. Facebook có thể đã phát hành những công cụ như vậy trong các API riêng biệt, nhưng vì hãng khuyến khích các quản trị web sử dụng SDK nên tình trạng kể trên mới xảy ra.

    Ví dụ Canvas, hệ thống cho phép các ứng dụng load bên trong nền tảng chiếm 1,53% toàn bộ mã, và thêm cả tính năng legacy chiếm thêm 3,53%. Đây là những thành phần ít phổ biến của SDK nhưng lại chiếm 5,06% dung lượng thì Facebook không nên tích hợp vào cho nặng.

    Chưa kể như công cụ Polyfills vốn được sử dụng để cung cấp các tính năng trên trình duyệt mới được cập nhật so với phiên bản cũ. Thư viện phần mềm này chiếm 15,34% gói SDK nhưng chúng đồng thời cũng được các trình duyệt phổ biến tích hợp nên chỉ còn số nhỏ trình duyệt cần tới nó. Đó là sự lãng phí tài nguyên.

    Regenspan ước tính, bộ công cụ của Facebook sẽ mất khoảng 50ms (1/20 giây) để tìm nạp trên chiếc MacBook Pro mới, trong khi Google Pixel phải mất 1/10 giây để load (gấp đôi thời gian).

    Điều này gần như ngăn cản mọi nỗ lực tối ưu hóa mã web của các nhà phát triển. Thật đáng buồn khi các kỹ sư làm việc hết công suất để tối ưu 1/10 code nhưng lại phải tải lượng mã lớn không dùng đến từ Facebook. Họ chẳng có quyền lựa chọn nào khác bởi các nút Like, Share và phần bình luận Facebook đã trở thành tiêu chuẩn cho bất kỳ website nào trong việc tăng tính tương tác.

    Tin cùng chuyên mục
    Xem theo ngày

    NỔI BẬT TRANG CHỦ