• Trang chủ
  • WordPress
    • Thủ thuật WordPress
    • WordPress Plugins
    • WordPress Themes
  • Hosting và Domain
  • Kiếm tiền
  • Đánh giá
  • Khuyến mãi
  • Thông báo
  • Giới thiệu
  • Liên hệ

WP Căn bản

Kiến thức căn bản cho người dùng WordPress

paradise-child-theme-wordpress-theme-tot-nhat
  • Dịch vụ WordPress Hosting
  • Dịch vụ tối ưu WordPress
  • Dịch vụ quét mã độc WordPress
  • Mua Paradise child theme
Trang chủ » WordPress » Thủ thuật WordPress » Tải không đồng bộ JavaScript trong WordPress mà không dùng plugin
hosting-tot-nhat-danh-cho-wordpress

Tải không đồng bộ JavaScript trong WordPress mà không dùng plugin

Cập nhật: 25/04/2023 Trung Hiếu 44 Bình luận

Mục lục Hiện
  • 1. Tải không đồng bộ (Asynchronous) là gì?
  • 2. Tải không đồng bộ JavaScript mà không cần dùng plugin

Tải không đồng bộ JavaScript trong WordPress mà không cần dùng plugin.

tai-khong-dong-bo-javascript-trong-wordpress

Nếu bạn đã từng kiểm tra thử tốc độ load website của mình với công cụ Google PageSpeed Insights thì chắc hẳn đã ít nhất một lần nhìn thấy cảnh báo “Eliminate render-blocking JavaScript and CSS in above-the-fold content” (Loại bỏ JavaScript và CSS chặn hiển thị trong nội dung trong màn hình đầu tiên) rồi phải không nào? Điều này có nghĩa là trình duyệt web sẽ tải các file .js và .css (dùng để hiển thị giao diện) trước khi hoàn tất việc tải phần text (chữ). Nó làm cho quá trình hiển thị phần text bị chậm đi. Và Google thì không thích điều đó.

Tham khảo thêm:

  • Loại bỏ Query String trong WordPress không cần dùng plugin
  • Minify HTML, JavaScript và CSS mà không cần plugin

Google cho rằng việc phần text hiển thị chậm sẽ ảnh hưởng đến trải nghiệm người dùng vì nội dung là thứ quan trọng nhất mà họ cần. Do đó, nếu website của bạn cũng đang gặp phải cảnh báo này, tốt nhất là nên tìm cách khắc phục nó. Và hướng giải quyết hiệu quả cho vấn đề này chính là kỹ thuật tải không đồng bộ hay còn gọi là Asynchronous (Async).

Tải không đồng bộ (Asynchronous) là gì?

Hiểu một cách đơn giản, kỹ thuật tải không đồng bộ sẽ yêu cầu trình duyệt hoàn tất việc tải phần text (chữ) trước khi tải JavaScript để bổ sung tính năng hoặc các hiệu ứng “hoa lá” đi kèm. Nó trái ngược với kỹ thuật tải đồng bộ (Synchronous) khi mà các thành phần của trang web được tải đồng thời.

Trong WordPress, các bạn có thể tải không đồng bộ JavaScript một cách đơn giản thông qua việc sử dụng plugin. Một số plugin hỗ trợ tải không đồng bộ JavaScript phổ biến mà các bạn có thể tham khảo bao gồm:

  • Async JavaScript (download)
  • Async JS and CSS (download)

Nhiều plugin tạo cache như WP Rocket, W3 Total Cache, LiteSpeed Cache… cũng hỗ trợ sẵn tính năng này.

Tuy nhiên, nếu bạn không phải là tín đồ của plugin thì bài viết này là dành cho bạn. Ngay bây giờ, tôi sẽ hướng dẫn cho các bạn cách thiết lập tải không đồng bộ JavaScript mà không cần sử dụng plugin.

Tải không đồng bộ JavaScript mà không cần dùng plugin

Tất cả những gì mà các bạn cần làm là thêm đoạn code sau đây vào file functions.php của theme hoặc child theme mà bạn đang sử dụng. Các bạn cũng có thể sử dụng plugin Code Snippets để chèn nhằm tránh nó bị xóa mất khi cập nhật theme:

//* Asynchronous JS without plugin
function async_js($tag){
$scripts_to_async = array('script-1.js', 'script-2.js', 'script-3.js', 'script-4.js', 'script-5.js');
foreach($scripts_to_async as $async_script){
	if(true == strpos($tag, $async_script ) )
	return str_replace( ' src', ' async="async" src', $tag );
}
return $tag;
}
add_filter( 'script_loader_tag', 'async_js', 10 );

Lưu ý:

  • Thay script-1.js, script-2.js… bằng tên các JavaScript tương ứng trên website của bạn. Nếu số lượng script ít hơn, các bạn có thể xóa bớt đi và ngược lại, hãy bổ sung thêm theo cấu trúc sẵn có.
  • Một số JavaScript sẽ gặp lỗi nếu bị tải không đồng bộ (nhất là js/jquery/jquery.js). Do đó các bạn nên loại bỏ những script này ra khỏi danh sách.

Các lấy tên của script, các bạn có thể xem trong ví dụ minh họa bên dưới.

ten-cua-javascript

Sau khi hoàn tất, lưu lại và xóa cache (nếu có) rồi kiểm tra kết quả bằng Google PageSpeed Insights. Thật đơn giản phải không nào? Chúc các bạn thành công!

Bạn có đang áp dụng kỹ thuật Asynchronous trên website của mình? Bạn biết phương pháp khác đơn giản hơn để tải không đồng bộ JavaScript trong WordPress? Hãy chia sẻ nó với chúng tôi bằng các sử dụng khung bình luận bên dưới.

Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)

Đang tải đánh giá...
  • Chia sẻ lên Facebook
  • Chia sẻ lên Twitter
  • Chia sẻ lên LinkedIn

Bài viết liên quan

Ra mắt plugin Hybrid Object Cache độc quyền tại WP Căn bản
Ra mắt plugin Hybrid Object Cache độc quyền tại WP Căn bản
Ra mắt plugin APCu Object Cache độc quyền tại WP Căn bản
Ra mắt plugin APCu Object Cache độc quyền tại WP Căn bản
Tính năng Crawl Optimization của plugin Yoast SEO
Tính năng Crawl Optimization của plugin Yoast SEO

Chuyên mục: Thủ thuật WordPress Thẻ: Tăng tốc WordPress

wpcanban-com-facebook-group

Nói về Trung Hiếu

Một người con của xứ Nghệ, hiện đang sinh sống tại Hà Nội. Tôi là người sáng lập và đứng sau mọi hoạt động của WP Căn bản. Tìm hiểu thêm về tôi tại đây.

Bài viết trước « Kiểm tra dữ liệu có cấu trúc cho website với công cụ của Google
Bài viết sau Loại bỏ post info và post meta khỏi các trang lưu trữ trong Genesis »

Reader Interactions

Bình luận

    Để lại một bình luận Hủy

    Tất cả các bình luận đều sẽ được kiểm duyệt nghiêm ngặt. Mọi bình luận trái quy định sử dụng sẽ bị gỡ bỏ link hoặc xóa bỏ hoàn toàn. Vui lòng đọc kỹ quy định trước khi bình luận. Xin cảm ơn!

  1. Soju 243 bình luậnviết

    04/04/2017 lúc 18:40

    Giao diện mặc định của Mythemeshop có chức năng tạo Child theme. nhưng mà e cài plugin 1 click child theme để tạo child. có phải điều đó làm e có 2 tệp css của child không ạ. e view source lên xem cả 2 tệp nội dung đều như nhau. làm sao để xóa bớt 1 cái đi a :P
    http://sv1.upsieutoc.com/2017/04/04/Untitledc9b7a.png

    Bình luận
    • Trung Hiếu Quản lýviết

      05/04/2017 lúc 07:52

      Nếu theme có sẵn tính năng tạo child theme thì sao không dùng luôn mà còn cần tới plugin làm gì? :P

      Bình luận
  2. Soju 243 bình luậnviết

    24/03/2017 lúc 12:18

    chỉ lấy ở các cái JS mà nằm trong đường dẫn /plugins/xxx.js thôi hả a. cái PageSpeed Insights của google báo nhiều lắm nhiều cái không nằm trong plugins. đuôi có .js nhưng lại không biết lấy từ đoạn nào. ví dụ như: https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js?ver=1.7.1 (làm cái thủ thuật mất ver= rồi sao view source lại ra thế này ><)

    Bình luận
    • Trung Hiếu Quản lýviết

      24/03/2017 lúc 12:21

      Mấy file JS không phải lưu trên host thì không async được đâu nhé. :P

      Bình luận
      • Soju 243 bình luậnviết

        24/03/2017 lúc 12:24

        e ko biết nên lấy tên JS từ đoạn nào ấy a ạ. vì demo của a là đều lấy sau /plugins/ . nhưng ví dụ của e thằng kk này: domain/wp-content/cache/busting/1/wp-content-plugins-kk-star-ratings-js.min-2.5.1.js thì e nên lấy từ wp-contnet-plugins…. hay lấy từ wp-content/cache/….

        Bình luận
        • Trung Hiếu Quản lýviết

          24/03/2017 lúc 12:26

          WP Rocket cũng có tính năng async/ defer JS mà. Sao không dùng luôn. Trời đất. :P

          Bình luận
          • Soju 243 bình luậnviết

            24/03/2017 lúc 12:39

            tại thấy comment bên trên a bảo nên dùng theo cách này vì wp rocket không có tác dụng trên giao diện mobile (hoặc responsive) :P
            e làm rồi: http://sv1.upsieutoc.com/2017/03/24/Untitledbae97.png
            mà sao vào google speed test đo lại vẫn lỗi js không đồng bộ như cũ nhỉ. e xóa cache rồi mà ta @@

          • Trung Hiếu Quản lýviết

            24/03/2017 lúc 12:42

            Tắt tính năng tối ưu JS, CSS của WP Rocket đi chưa?

          • Soju 243 bình luậnviết

            24/03/2017 lúc 12:44

            e sợ lỗi giao diện nên không bật mấy cái đấy a ạ :P

          • Trung Hiếu Quản lýviết

            24/03/2017 lúc 12:46

            Không bật sao có dòng “wp-content/cache/busting/1/wp-content-plugins-kk-star-ratings-js.min-2.5.1.js” ta? :P

          • Soju 243 bình luậnviết

            24/03/2017 lúc 12:49

            e ko bật thật mà a: http://sv1.upsieutoc.com/2017/03/24/122a02.png
            nếu như có bài viết nào của a mà không cần bật của wp rocket mà vẫn ra cái js như kia ấy thì chắc là do nó đó. e hay làm theo mấy bài sửa file của a nhưng mà e chả nhớ đã làm những cái gì nữa :P còn nếu không phải tại sửa gì thì e cũng chả biết là tại sao luôn :P

  3. Hoàng Trí 5 bình luậnviết

    20/03/2017 lúc 11:23

    Em hỉu xíu ạ. Giờ site em nó chỉ còn báo cái này http://fonts.googleapis.com/css?family=Roboto%3A300%2C400%2C400italic%2C500%2C500italic%2C700%2C900%7COpen+Sans%3A300italic%2C400%2C400italic%2C600%2C600italic%2C700&ver=4.7.3

    Vậy thì tải không đồng bộ nó bằng file funtions thế nào anh nhỉ ?. Áp dụng mẹo trên được chứ ạ ?

    Bình luận
    • Trung Hiếu Quản lýviết

      20/03/2017 lúc 11:39

      Đây là Google Fonts, không phải script hay stylesheet nên không áp dụng được đâu. :P

      Bình luận
  4. cao 1 bình luậnviết

    17/03/2017 lúc 17:52

    làm xong lỗi cả website bày tùm bậy

    Parse error: syntax error, unexpected T_DEC in /home/saotrucv/public_html/saotrucdilinh.com/wp-content/themes/theshopier-child/functions.php on line 34

    Bình luận
    • Trung Hiếu Quản lýviết

      17/03/2017 lúc 19:44

      Mình không có nói là thủ thuật có thể áp dụng với mọi website bạn nhé. Web bạn lỗi vì bạn chèn code sai cách hoặc xung đột với plugin, theme. Web bạn lỗi không có nghĩa là người khác cũng lỗi. Bạn không biết cách đọc error_log để xem lỗi là do nguyên nhân gì, lại quay ra trách người viết thủ thuật. Nói như bạn thì chẳng có ai dám chia sẻ thủ thuật để cho mọi người đọc đâu. :P

      Bình luận
  5. Ngô Quý 77 bình luậnviết

    27/09/2016 lúc 21:40

    Nếu dùng wp rocket rồi thì có cần thiết phải làm không anh Hiếu??

    Bình luận
    • Trung Hiếu Quản lýviết

      28/09/2016 lúc 08:24

      Nên làm. Vì thằng WP Rocket không có tác dụng trên giao diện mobile (hoặc responsive). :P

      Bình luận
  6. NgocBlue 429 bình luậnviết

    05/09/2016 lúc 16:39

    Dùng wp rocket như Hiếu hướng dẫn thì hết bị báo js, thế còn tối ưu hóa css thì vào đâu Hiếu nhỉ?

    Bình luận
    • Trung Hiếu Quản lýviết

      05/09/2016 lúc 16:45

      Cái này mình đang nghiên cứu. :D

      Bình luận
      • NgocBlue 429 bình luậnviết

        05/09/2016 lúc 16:57

        Loại được hết lỗi js rồi mà GG nó không cho lên điểm nào, chấm điểm đắt ghê :P

        Bình luận
        • Trung Hiếu Quản lýviết

          06/09/2016 lúc 08:44

          Không khắt khe thì đâu phải Google. :P

          Bình luận
  7. Tommy Nguyen 3 bình luậnviết

    05/09/2016 lúc 15:16

    Nếu dùng W3 Total Cache thì setting chỗ nào vậy bạn?

    Bình luận
    • Trung Hiếu Quản lýviết

      05/09/2016 lúc 15:30

      Mình không nhớ rõ. Lâu rồi không dùng W3 Total Cache. :D

      Bình luận
  8. Jose thuong 1 bình luậnviết

    05/09/2016 lúc 08:20

    Mình cũng đã thử cái này một lần, nhưng kết quả không được tốt lắm, vẫn bị báo là Eliminate render-blocking JavaScript and CSS in above-the-fold content. Nhưng mức độ nghiêm trọng thì được giảm xuống.

    Bình luận
    • Trung Hiếu Quản lýviết

      05/09/2016 lúc 08:36

      Chắc do còn nhiều file CSS chưa xử lý được. :P Nhưng asynchronous CSS thì dễ gây lỗi giao diện lắm. :P

      Bình luận
  9. Phú 2 bình luậnviết

    03/09/2016 lúc 23:08

    Có cách nào để chuyển thông tin trong File Word or Excel or Access (Gồm ảnh và định dạng table) Lên website Wp không Anh Hiếu.
    Em đang chờ sự giúp đỡ từ Anh Hiếu. Em đang cần gấp !
    Thanks Hiếu nhiều nhiều

    Bình luận
    • Trung Hiếu Quản lýviết

      03/09/2016 lúc 23:22

      WordPress không hỗ trợ việc này đâu bạn ạ. :) Vì hình ảnh cần phải được upload lên host thì mới hiển thị online được. Bản thì có thể copy nhưng nhiều khi định dạng không đúng lắm. :P

      Bình luận
  10. An Nguyen 11 bình luậnviết

    02/09/2016 lúc 18:42

    Nếu dùng wp rocket thì cài đặt chỗ nào bác nhỉ. E có cái slide nó cứ bị lúc load đc lúc không, không biết là do js hay do xung đột gì nữa, cứ load 1 cái đc thì 1 cái trắng tinh

    Bình luận
    • Trung Hiếu Quản lýviết

      02/09/2016 lúc 18:45

      Trong Advanced Settings => JS files with deferred loading đó bạn. :P

      Bình luận
      • Khánh Hồ 25 bình luậnviết

        04/09/2016 lúc 15:09

        Mình thêm URL tải không đồng bộ vào chỗ đấy đúng không Hiếu.
        VD: Mình muốn tải không đồng bộ trang chủ thì mình thêm trang Home vào, các trang khác tương tự… ?

        Bình luận
        • Trung Hiếu Quản lýviết

          04/09/2016 lúc 15:36

          Không phải thêm URL của trang vào mà thêm URL của javascript vào bạn ạ. Bạn check các kiểu trang khác nhau trên site của bạn và copy URL của javascript có trên các kiểu trang đó rồi paste vào. :P

          Bình luận
          • Lioa Việt Nam 49 bình luậnviết

            16/11/2016 lúc 17:35

            Hiếu ơi cụ thể là lấy URL của Jvscpt thế nào nhỉ? Lấy tất cả rồi cho vào ô đó Save lại à?

          • Trung Hiếu Quản lýviết

            17/11/2016 lúc 07:59

            Bạn view source hoặc test bằng các công cụ kiểm tra tốc độ là sẽ thấy nhé. :P

1 2 »

Sidebar chính

NHẬN BÀI VIẾT QUA EMAIL

Hãy đăng ký ngay để là người đầu tiên nhận được thông báo qua email mỗi khi chúng tôi có bài viết mới. Tặng miễn phí ebook "Bảo mật WordPress toàn tập" do WP Căn bản biên soạn!

Theo dõi qua mạng xã hội

Dịch vụ WordPress Hosting

dich-vu-wordpress-hosting-chat-luong-cao

Bạn đang tìm gì?

WordPress căn bản

Bảo mật WordPress

Tăng tốc WordPress

Thủ thuật CloudFlare

Sửa lỗi WordPress

Thủ thuật LiteSpeed

Thủ thuật Genesis

Thủ thuật SEO

Thủ thuật WooCommerce

Sử dụng theme Paradise

Dịch vụ tối ưu WordPress miễn phí

dich-vu-toi-uu-wordpress-mien-phi

Dịch vụ quét mã độc miễn phí

dich-vu-quet-ma-doc-wordpress-mien-phi

Footer

Bài viết mới nhất

  • Khắc phục lỗi temp-write-test trong WordPress 06/08/2025
  • Ra mắt plugin WPCB Secure Shield độc quyền tại WP Căn bản 25/07/2025
  • Hiển thị đánh giá 5 sao trên Google một cách đơn giản 12/07/2025
  • Tích hợp mã QR ngân hàng cho WooCommerce 09/07/2025

Bình luận mới nhất

  • Trung Hiếu trong Hướng dẫn nâng cấp PHP 8.4 cho website WordPress
  • Lê Anh Tuấn trong Hướng dẫn nâng cấp PHP 8.4 cho website WordPress
  • Trung Hiếu trong Hướng dẫn nâng cấp PHP 8.4 cho website WordPress
  • David Do trong Hướng dẫn nâng cấp PHP 8.4 cho website WordPress

Thông tin hữu ích

  • Giới thiệu bản thân
  • Quy định sử dụng
  • Chính sách bảo mật
  • Bản quyền nội dung

Thống kê WP Căn bản

9 Chuyên mục - 1.011 Bài viết - 35.573 Bình luận

Bản quyền © 2014 - 2025 · WP Căn bản (tiền thân là eBooksvn.com) · Sử dụng Paradise child theme và dịch vụ WordPress Hosting