Hướng dẫn reduce impact of third-party code wordpress - giảm tác động của mã bên thứ ba wordpress
Các kịch bản của bên thứ ba là một điều cần thiết trong web hiện đại. Họ cho phép chủ sở hữu trang web nhúng video và các nút chia sẻ xã hội, phân tích hiệu suất trang web của họ và nhiều hơn nữa. Show
Thông thường, các tập lệnh này rất quan trọng đối với chức năng trang web và dòng doanh thu của một trang web. Tuy nhiên, tài nguyên của bên thứ ba đi kèm với nhiều rủi ro ẩn có thể cản trở hiệu suất tổng thể của trang web của bạn.hinder your site’s overall performance. #3: Bộ nhớ đệm HTTP không đủCó không đủ bộ nhớ đệm HTTP, các nguồn lực sẽ được tìm nạp từ mạng thường xuyên hơn. Và điều này là cả chậm và tốn kém (trong cả tài nguyên tốc độ và tài nguyên máy chủ), đặc biệt là khi các yêu cầu mạng đó được gửi đến nhiều máy chủ. & NBSP; Kết quả là, trang của bạn sẽ tải chậm. & nbsp; thậm chí còn tệ hơn, khi khách truy cập truy cập trang web của bạn với gói dữ liệu di động hạn chế, mọi yêu cầu mạng không cần thiết là một sự lãng phí tiền của họ. & nbsp; #4: Một số tập lệnh không cho phép tự mình tải không đồng bộTải các kịch bản của bên thứ ba không đồng bộ là một trong những giải pháp khi nói đến việc tối ưu hóa công việc của họ. Tuy nhiên, một số tập lệnh không thể được tải không đồng bộ vì chúng sử dụng document.write (). & Nbsp;document.write(). Tuy nhiên, vấn đề lớn hơn là việc sử dụng tài liệu.write () bên trong các trang, cụ thể là những cách sử dụng đó tiêm các tập lệnh. Nếu tập lệnh tự động tiêm một tập lệnh khác, trình phân tích cú pháp buộc phải đợi lâu hơn nữa để tài nguyên tải xuống, có thể phải chịu một hoặc nhiều chuyến đi vòng mạng và trì hoãn thời gian kết xuất trang đầu tiên của trang:document.write() inside pages, specifically those uses that inject scripts. If the script dynamically injects another script, the parser is forced to wait even longer for the resource to download, which can incur one or more network round trips and delay the time to first render of the page:
Bạn có thể đào sâu hơn bằng cách đi qua danh sách tất cả các mã của bên thứ ba được thực thi trên trang web của bạn. Điều tuyệt vời là PSI sắp xếp nó theo thời gian chặn chủ đề chính. Đánh giá này cho phép bạn tập trung vào những người có ảnh hưởng nhất và bắt đầu làm việc với chúng. & nbsp; Nó hiển thị tất cả các tệp JavaScript được thực thi trên trang web của bạn, được sắp xếp theo kích thước của chúng: Và bên cạnh cột byte tài nguyên, bạn có một byte chưa sử dụng, hiển thị số % JS vẫn chưa được sử dụng. & NBSP; WebPagetestPhân tích nội dung của WebPagetest theo tên miền là một công cụ có giá trị khác để gỡ lỗi các vấn đề của bên thứ ba. Chuyển đến phần miền, bạn sẽ thấy sự cố kỹ lưỡng theo số lượng yêu cầu và byte cho mỗi miền: WebPagetest cũng có biểu đồ thác nước nơi bạn có thể thấy tất cả các tài nguyên chặn kết xuất và phân bổ tất cả các tập lệnh của bên thứ ba và thời gian thực hiện của chúng: Một khi bạn tìm thấy các tài nguyên của bên thứ ba có thể gây ra vấn đề, đó là thời gian để kiểm tra xem chúng có thực sự là thủ phạm hay không. Quay lại trang chủ của WebPagetest, mở các cài đặt nâng cao và nhấp vào tính năng khối: Sau đó, bạn có thể chỉ định các tên miền bạn muốn chặn bằng cách nhập chúng vào các biểu mẫu bên dưới. Kiểm tra lại và xem nếu có bất kỳ cải tiến nào. & NBSP; Chrome từ DevtoolsMột cách tuyệt vời khác để phân tích các vấn đề có thể còn sâu sắc hơn là sử dụng Chrome Devtools. Chỉ cần mở một trang web, nhấp chuột phải và chọn Kiểm tra. Sau đó, ghi lại tải trang và đi đến bảng điều khiển hiệu suất của người dùng. Nhấp vào nút Ghi lại và tải lại trang của bạn cho bạn một thác nước (tương tự như trang trong WebPagetest): Ở dưới cùng của bảng hiệu suất, bạn sẽ thấy tab từ dưới lên trên mạng: Nhấp vào menu thả xuống và chọn nhóm nhóm theo tên miền. Trong ví dụ trên, chúng ta có thể thấy moatads.com đóng góp 22,7% công việc xảy ra khi tải trang. & NBSP; Sử dụng kiến thức này, bạn có thể xác định chính xác hơn các khu vực có vấn đề và bắt đầu điều tra với một số bằng chứng đằng sau bạn. Khi bạn đã hoàn thành việc xác định thủ phạm, bạn có thể chặn kịch bản của bên thứ ba cụ thể để xem nó thực sự có ảnh hưởng như thế nào. Truy cập bảng điều khiển mạng của mạng, nhấp chuột phải vào tài nguyên và chọn URL yêu cầu khối khối URL: Đây là một cách tuyệt vời để xem sự vắng mặt của một tài sản cụ thể sẽ có trên trang hiện tại. Bây giờ, hãy để Lừa xem cách đối phó với các tài nguyên của bên thứ ba. Tải các tập lệnh của bên thứ ba một cách hiệu quảCó một số kỹ thuật tối ưu hóa mà bạn có thể muốn thử khi làm việc với các tập lệnh của bên thứ ba:
Hãy cùng xem xét kỹ hơn từng người trong số họ. Tải tài nguyên của bên thứ ba & NBSP;Một trang web duy nhất được xây dựng từ các tài nguyên khác nhau. Tuy nhiên, không phải tất cả chúng đều rất quan trọng để cung cấp trải nghiệm người dùng tốt nhất ngay từ đầu. Người dùng muốn thấy nội dung được vẽ nhanh chóng và trải nghiệm một trang web trở nên tương tác ngay lập tức. Đó là lý do tại sao nó rất tốt để theo dõi một số số liệu sau: & nbsp;
Nói ngắn gọn: Để giữ lại khách truy cập của bạn lâu hơn, trang web của bạn cần phải nhanh chóng và tương tác. Hoặc ít nhất nó cần đưa ra ấn tượng đó. & NBSP; Đây là nơi tải lười đi vào chơi. Thông thường được sử dụng trong bối cảnh của hình ảnh, bạn cũng có thể lười biếng (trì hoãn) các tài nguyên của bên thứ ba, làm cho chúng chỉ tải khi cần thiết. Bằng cách này, bạn có thể tập trung vào việc phục vụ nội dung quan trọng nhất (phía trên nếp gấp) trước tiên và tải mọi thứ khác sau khi khách truy cập cuộn xuống.
Nitropack cung cấp tính năng tải lười biếng JavaScript hoạt động dựa trên tương tác của người dùng và nó được bật theo mặc định với chế độ lố bịch của chúng tôi. Nó ưu tiên các tệp HTML và CSS, trong khi trì hoãn các tệp JS, dẫn đến vẽ nội dung nhanh hơn và trải nghiệm người dùng tốt hơn. & NBSP; Trên hết, bạn có thể tinh chỉnh tính năng JavaScript bằng cách liệt kê các tập lệnh mà bạn muốn loại trừ khỏi tối ưu hóa và tập lệnh phải bị trì hoãn: & nbsp; Sử dụng các thuộc tính Async và trì hoãnasync and defer AttributesCác tập lệnh được tải đồng bộ trễ xây dựng DOM và kết xuất khối. Đó là lý do tại sao bạn nên tải các tập lệnh của bên thứ ba không đồng bộ (trừ khi tập lệnh phải chạy trước khi trang được hiển thị). Các thuộc tính không đồng bộ và trì hoãn cho phép trình duyệt phân tích HTML trong khi tải các tập lệnh chặn kết xuất trong nền. Bằng cách này, tải xuống tập lệnh không chặn xây dựng DOM và kết xuất trang, dẫn đến tải nhanh hơn và khách truy cập hạnh phúc hơn.async and defer attributes allow the browser to parse the HTML while loading the render-blocking scripts in the background. This way, script downloads don't block DOM construction and page rendering, resulting in faster loading and happier visitors. Mặc dù cả hai thuộc tính làm cho các tập lệnh không chặn, chúng cũng có một số khác biệt:
Nói một cách đơn giản, các tập lệnh cần DOM hoặc thứ tự của họ là quan trọng nên sử dụng thuộc tính trì hoãn. Ngược lại, AD, phân tích và các tập lệnh độc lập khác thường nên sử dụng Async.defer attribute. Conversely, ad, analytics, and other independent scripts should generally use async. Tránh các tập lệnh của bên thứ ba sử dụng document.write ()document.write()Nói về thuộc tính Async, một số tài nguyên của bên thứ ba có thể được tải không đồng bộ vì họ sử dụng Document.write ().async attribute, some third-party resources can’t be loaded asynchronously because they use document.write(). Document.write () đặc biệt được sử dụng cho các dịch vụ cũ mà thiên đường đã được cập nhật gần đây. Tuy nhiên, các tập lệnh của bên thứ ba sử dụng nó có thể trì hoãn việc kết xuất trang sau vài giây, điều này đặc biệt có vấn đề đối với người dùng trên các kết nối chậm (ví dụ: 2G). is particularly used for older services that haven’t been updated recently. However, third-party scripts using it can delay the page rendering by seconds, which is particularly problematic for users on slow connections (e.g., 2G). Trên thực tế, nó có tác động tiêu cực đến hiệu suất mà & NBSP; Chrome đã quyết định can thiệp: Sau đó, Chrome Chrome, bắt đầu với phiên bản 55, can thiệp thay mặt cho tất cả người dùng khi chúng tôi phát hiện mẫu BAD đã biết này bằng cách thay đổi cách xử lý Document.write () trong chrome.document.write() is handled in Chrome.”
Tự lưu trữ tài nguyên của bên thứ baChúng tôi bắt đầu bài viết này bằng cách nói rằng các kịch bản của bên thứ 3 là tài nguyên ngoài tầm kiểm soát của bạn, điều này khiến chúng khó quản lý hơn. Chà, tự lưu trữ chúng là một tùy chọn sẽ cho bạn quyền kiểm soát nhiều hơn đối với quy trình tải tập lệnh. Hơn nữa, nó cũng cho phép bạn:
Một giải pháp thay thế cho các tập lệnh tự lưu trữ, nơi bạn vẫn có nhiều quyền kiểm soát hơn sẽ sử dụng nhân viên dịch vụ. & nbsp; Chúng tôi đã giành được đào sâu hơn vào chủ đề này ngay bây giờ, nhưng nếu bạn quan tâm, hãy kiểm tra bài viết của Matt Gaunt về nhân viên dịch vụ. Ngoài các tệp JavaScript nặng, bạn cũng có thể muốn tự lưu trữ phông chữ của bên thứ ba. Theo Ilya Grigorik: Một webfont "đầy đủ" bao gồm tất cả các biến thể phong cách mà bạn có thể không cần, cộng với tất cả các glyphs, có thể không sử dụng, có thể dễ dàng dẫn đến việc tải xuống nhiều megabyte.
Tuy nhiên, bạn nên đảm bảo rằng giấy phép phông chữ cho phép tự lưu trữ. Nếu không, bạn có thể vi phạm pháp luật. Một dịch vụ phổ biến cho phép tự lưu trữ phông chữ của họ là phông chữ của Google. Thiết lập các kết nối sớmCác trình duyệt trải qua ba giai đoạn để thiết lập kết nối với máy chủ & nbsp;- biến tên miền thành địa chỉ IP, thiết lập kết nối với máy chủ, mã hóa kết nối để bảo mật tối đa. & NBSP; Trong mỗi bước này, một phần dữ liệu được gửi bởi trình duyệt và máy chủ gửi lại phản hồi. Đây được gọi là một chuyến đi khứ hồi. & NBSP; Tùy thuộc vào điều kiện mạng, một chuyến đi khứ hồi có thể mất một lượng thời gian đáng kể. Đó là lý do tại sao việc thực hiện các gợi ý tài nguyên như và Có thể tối ưu hóa công việc của trình duyệt, làm cho trang web/ứng dụng của bạn tải nhanh hơn.
Loại bỏ kịch bản bên thứ 3 chưa sử dụng & nbsp;Nó dễ dàng hơn nhiều để loại bỏ một tập lệnh hơn là tối ưu hóa nó. Hay là nó? & NBSP; Bạn nên thường xuyên kiểm tra các tập lệnh của bên thứ ba chưa được sử dụng và xóa chúng hoàn toàn. & NBSP; Bạn có thể kiểm tra xem bạn đã không sử dụng JavaScript trong Chrome, Devtools. Sử dụng tab Bảo hiểm trên mạng để tìm các đoạn mã này: Đây là một thực tế tốt cho các trang web CMS, trong đó mã của bên thứ ba thường xuyên được chèn qua các plugin và có thể bị bỏ lại sau khi plugin không còn được sử dụng. Chạy một cuộc kiểm toán đơn giản như hình trên có thể dẫn đến việc tăng hiệu suất dễ dàng. & NBSP; Tóm tắt & nbsp;Chúng tôi đã đề cập rất nhiều nền tảng với bài viết này, vì vậy hãy để kết thúc với một bản tóm tắt nhanh chóng về những điểm quan trọng nhất:
Sau mỗi lần tối ưu hóa, đừng quên kiểm tra trang web của bạn trong thế giới thực. Tập trung vào các số liệu của người dùng thực (như các giá trị trường của Web Vitals cốt lõi) để đảm bảo công việc của bạn có tác động tích cực đến khách truy cập của bạn. & NBSP; Làm thế nào có thể giảm thứ baRecommendations.. Tránh dỡ người nghe sự kiện .. Đừng lười biếng tải hình ảnh sơn hài lòng lớn nhất .. Giảm tác động của mã của bên thứ ba .. Thay thế các thư viện JavaScript lớn bằng các lựa chọn thay thế nhỏ hơn (không dùng nữa). Sử dụng thẻ có chiều rộng hoặc quy mô ban đầu .. Các kịch bản của bên thứ 3 là gì?Tập lệnh của bên thứ 3 là tài nguyên JavaScript được tải vào một trang web để cung cấp chức năng ngoài chức năng cốt lõi của trang web.Nội dung đã thêm: JavaScript của bên thứ ba đề cập đến một tập lệnh có thể được nhúng bởi nhà cung cấp bên thứ ba trực tiếp vào bất kỳ trang web nào.a JavaScript resource loaded into a webpage to provide functionality beyond the core functionality of the website. Added content: A third-party JavaScript refers to a script that is able to become embedded by a third-party vendor directly into any website. |