Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo

Ngôn ngữ lập trình JavaScript giúp trang web hiển thị nội dung động. Trên WordPress, ví dụ, JavaScript dùng nhúng audio/video. Cũng dùng hiển thị gallery ảnh, menu tương tác, bộ đếm ngược, và hơn nữa.

File JavaScript dùng đuôi .js và trên WordPress điển hình, file JS được chèn vào trang bởi theme và plugin kích hoạt. Ví dụ: slider trang chủ theme cần slider.js, trang liên hệ cần form.js.

Tôi tin JavaScript thiết yếu cho WordPress hiện đại. Rất tiếc, nó cũng làm web chậm nếu không tối ưu đúng.

Trong các phiên bản đầu HTTP, JavaScript làm chậm web vì mỗi file JS phải tải và thực thi theo thứ tự để trang hiển thị đúng. Kỹ thuật tối ưu phổ biến: kết hợp nhiều file JavaScript để giảm số HTTP request trình duyệt phải làm. Kỹ thuật đôi khi gọi là JavaScript aggregation.

Trong bài này, tôi giải thích tại sao nhiều chủ web kết hợp JavaScript bên ngoài trong WordPress và chia sẻ plugin hữu ích thực hiện việc này. Cũng nói về tại sao kết hợp file JS bên ngoài không còn cần thiết cho hầu hết chủ web.

Tại sao kết hợp file JavaScript bên ngoài trong WordPress?

Mặc dù hàm JavaScript có thể thêm trực tiếp vào HTML bằng thẻ SCRIPT, thực hành phổ biến là lưu code JS trong file bên ngoài. Thực tế hơn vì tách code và cho phép hàm JS được gọi bởi nhiều trang.

Mỗi file JS trang web cần phải được trình duyệt tải trong quá trình render trang.

Render trang (Page Rendering)Khi ai đó xem trang, trình duyệt xây dựng trang bằng cách xử lý từng dòng code theo thứ tự. Quá trình này gọi là render trang.
HTTP RequestYêu cầu truy cập file trên server gọi là HTTP request. Trình duyệt do đó phải làm HTTP request cho mỗi file JS trang cần.
Render trang và HTTP Request.

Khi file tải theo thứ tự tuần tự, số lượng HTTP request lớn làm tăng thời gian tải trang. Vì vậy, kết hợp file JavaScript bên ngoài trong WordPress giúp giảm đáng kể số HTTP request trong quá trình render trang.

Một số công cụ tìm kiếm khuyến nghị gộp JavaScript bên ngoài thành 2 file.

Hàm JavaScript Quan trọng (File 1)File JS đầu chứa hàm quan trọng cần render đúng first paint ban đầu.
Hàm JavaScript Không quan trọng (File 2)File JS hai chứa hàm ít quan trọng, gọi sau khi trang tải xong.
Hàm JavaScript quan trọng nên ưu tiên.

Nếu trang cần 9 file JS để hiển thị đúng, gộp file JS bên ngoài trong WordPress giúp giảm tổng HTTP request cho code JS từ 9 xuống chỉ 2. File CSS bên ngoài cũng có thể gộp, giảm thêm HTTP request.

Web WordPress sẽ nhanh hơn nếu gộp file JavaScript bên ngoài?

Nhờ cải tiến HTTP, không còn cần thiết gộp file JS và CSS trừ khi hosting không hỗ trợ HTTP/2.

Trong HTTP/1.0 và HTTP/1.1, mỗi file JS/CSS phải tải theo thứ tự tuần tự. Nghĩa là file này tải xong file kia mới bắt đầu. Giao thức HTTP/2 ra mắt 2015 giải quyết vấn đề này bằng cách cho phép tải song song (parallel downloads). Vì tất cả tài nguyên bên ngoài tải cùng lúc, không còn lợi ích gộp file nếu HTTP/2 khả dụng.

HTTP/2 hiện được hỗ trợ bởi 95,6% trình duyệt Internet. Tính đến 6/1/2022, HTTP/2 dùng cho 46,9% tất cả web online, dù từ biểu đồ dưới thấy con số cao đáng kể ở web phổ biến nhất.

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
Sử dụng HTTP/2 tính đến 6/1/2022 (Nguồn: W3Techs)

Nếu host hỗ trợ HTTP/2, gộp file có thể làm web chậm hơn vì file JS gộp lớn hơn file gốc. Vì mất nhiều thời gian hơn để trình duyệt tải 2 file JS lớn so với nhiều file JS nhỏ tải cùng lúc.

Hai kỹ thuật tôi khuyến nghị dùng với JavaScript: minification (tối thiểu hóa) và defer parsing (hoãn phân tích cú pháp).

MinifyMinification loại bỏ ký tự không cần thiết: khoảng trắng, comment. Kết quả file JS nhỏ hơn.
Defer ParsingCode JS làm chậm render trang. Hai kỹ thuật Defer và Async giải quyết vấn đề này.
Kỹ thuật tối ưu khác áp dụng cho JavaScript cải thiện thời gian tải trang

Đọc bài về hoãn phân tích JavaScript trong WordPress để hiểu rõ tại sao JS làm chậm render trang.

Cách kết hợp JavaScript bên ngoài trong WordPress

Nếu host vẫn dùng HTTP/1.1, vẫn khuyến nghị gộp file JS và CSS bên ngoài trong WordPress.

Chắc chắn chạy test hiệu suất trước và sau gộp file để biết thời gian tải bị ảnh hưởng ra sao. Dùng GTmetrix, Google PageSpeed Insights, Pingdom Website Speed Test.

Autoptimize

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
Autoptimize có nhiều tính năng tối ưu tuyệt vời.

Autoptimize là một trong plugin tối ưu hiệu quả nhất cho WordPress. Hỗ trợ minification cho HTML, gộp file và minification cho JavaScript và CSS. File JS cũng có thể defer thay vì aggregate để ngăn chặn render-blocking, và có tùy chọn tối ưu Google Fonts.

Tôi dùng Autoptimize trên nhiều web WordPress vì nó luôn cải thiện thời gian tải.

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
Autoptimize hỗ trợ gộp (aggregation) file JavaScript và CSS.

TRANG CHỦ CHÍNH THỨC | TẢI AUTOPTOMIZE

Asset CleanUp

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
Asset CleanUp cung cấp minification, gộp file, defer parsing và hơn nữa.

Asset CleanUp là plugin tối ưu WordPress cấu hình cao, hỗ trợ minification, gộp file, defer cho JavaScript và CSS. Cũng dọn dẹp HTML và cung cấp công cụ quản lý font giảm tác động lên thời gian tải.

Một tính năng nổi bật: JavaScript và CSS Manager. Cho phép chỉ định chính xác file JS/CSS tải trên trang nào của web.

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
Nếu Asset CleanUp phát hiện web hỗ trợ HTTP/2, nó khuyên không gộp file JavaScript.

TRANG CHỦ CHÍNH THỨC | TẢI ASSET CLEANUP

WP Super Minify

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
WP Super Minify có thể nén và minify file JavaScript và CSS.

WP Super Minify làm khác: chỉ cho tùy chọn nén JavaScript và nén CSS. Khi chọn, WP Super Minify sẽ gộp, minify và cache file.

Nếu tìm giải pháp tối ưu đơn giản "chỉ làm việc", plugin này có thể cho bạn.

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
WP Super Minify lo mọi thứ cho bạn.

TRANG CHỦ CHÍNH THỨC | TẢI WP SUPER MINIFY

Kết hợp file JavaScript bên ngoài dùng WordPress Cache Plugin

Plugin cache WordPress tốt nhất bao gồm nhiều công cụ tối ưu thêm giúp cải thiện hiệu suất. Do đó, khả năng cao giải pháp cache WordPress hiện tại cho phép gộp file JS/CSS bên ngoài.

Ví dụ WP Rocket, có tùy chọn minify và gộp JS/CSS. File JS cũng có thể defer ngăn chặn render-blocking.

Khuyến nghị: test thời gian tải dùng gộp file bằng plugin cache ưa thích, sau đó so sánh với giải pháp tối ưu JS độc lập như Autoptimize, Asset CleanUp.

Cách gộp file JavaScript bên ngoài trong WordPress: Thực hành tốt nhất & Mẹo
WP Rocket cung cấp nhiều tùy chọn tối ưu cho file JavaScript và CSS.

Tổng kết

Hy vọng bạn thích bài xem xét gộp file JavaScript bên ngoài. Như bạn thấy, không còn cần gộp file JS nếu host hỗ trợ HTTP/2 vì tải song song hiệu quả hơn.

Nếu host chỉ hỗ trợ HTTP/1.1, bạn có thể gộp JavaScript bên ngoài trong WordPress để giảm thời gian tải.

Đọc thêm: Loại bỏ CSS không sử dụng trong WordPress

Cảm ơn bạn đã đọc.

Kevin