{"id":14031,"date":"2019-12-15T16:35:07","date_gmt":"2019-12-15T16:35:07","guid":{"rendered":"https:\/\/kiencang.net\/?p=14031"},"modified":"2019-12-15T16:35:07","modified_gmt":"2019-12-15T16:35:07","slug":"plugin-async-javascript","status":"publish","type":"post","link":"https:\/\/kiencang.net\/plugin-async-javascript\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng plugin Async JavaScript \u0111\u1ec3 tr\u00ec ho\u00e3n t\u1ea3i JS trong WordPress"},"content":{"rendered":"\n

T\u00e1c gi\u1ea3 Frank Goossens (futtta)<\/a> c\u00f3 nhi\u1ec1u plugin h\u1ed7 tr\u1ee3 t\u0103ng t\u1ed1c WordPress<\/a>, trong \u0111\u00f3 n\u1ed5i ti\u1ebfng nh\u1ea5t c\u00f3 l\u1ebd l\u00e0 Autoptimize<\/a> (c\u00f3 th\u1ec3 b\u1ea1n c\u0169ng \u0111ang d\u00f9ng \u0111\u1ea5y \u1ea1!). Nh\u01b0ng ch\u1ec9 d\u00f9ng m\u1ed7i plugin \u0111\u00f3 th\u00ec h\u01a1i ph\u00ed, \u00f4ng c\u00f2n nhi\u1ec1u plugin kh\u00e1c r\u1ea5t th\u00fa v\u1ecb, l\u00e0m c\u00e1c nhi\u1ec7m v\u1ee5 chuy\u00ean s\u00e2u h\u01a1n n\u1eefa trong v\u1ea5n \u0111\u1ec1 c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 trang. V\u00e0 h\u00f4m nay ch\u00fang ta s\u1ebd l\u00e0m quen v\u1edbi m\u1ed9t trong c\u00e1c plugin nh\u01b0 v\u1eady, n\u00f3 c\u00f3 t\u00ean Async JavaScript<\/a>, \u0111\u1ec3 bi\u1ebft c\u00e1ch tr\u00ec ho\u00e3n v\u00e0\/ho\u1eb7c t\u1ea3i kh\u00f4ng \u0111\u1ed3ng b\u1ed9 JS<\/a>.<\/p>\n\n\n

B\u1ea3n th\u00e2n plugin Autoptimize tuy c\u0169ng c\u00f3 ch\u1ee9c n\u0103ng gi\u00fap async (t\u1ea3i kh\u00f4ng \u0111\u1ed3ng b\u1ed9) JS, nh\u01b0ng n\u00f3 kh\u00f4ng h\u1ed7 tr\u1ee3 defer (tr\u00ec ho\u00e3n), v\u00e0 c\u00e1c c\u00e0i \u0111\u1eb7t chuy\u00ean s\u00e2u v\u1edbi JS v\u00e0 jQuery:<\/p>\n\n\n

\"Autoptimize<\/figure><\/div>\n\n\n

N\u00f3i v\u1ec1 “tr\u00ec ho\u00e3n\/t\u1ea3i kh\u00f4ng \u0111\u1ed3ng b\u1ed9” JS, \u0111\u00e2y l\u00e0 m\u1ed9t trong c\u00e1c bi\u1ec7n ph\u00e1p c\u0103n b\u1ea3n c\u00f9ng v\u1edbi critical CSS<\/a> v\u00e0 lazy load \u1ea3nh<\/a> gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 website c\u1ef1c k\u1ef3 hi\u1ec7u qu\u1ea3 (m\u1ed9t \u01b0u \u0111i\u1ec3m n\u1eefa l\u00e0 ch\u00fang \u0111\u1ec1u c\u00f3 gi\u1ea3i ph\u00e1p mi\u1ec5n ph\u00ed ch\u1ea5t l\u01b0\u1ee3ng cao). V\u1ec1 c\u01a1 b\u1ea3n nh\u1eefng \u1ee9ng d\u1ee5ng ki\u1ec3m tra t\u1ed1c \u0111\u1ed9 website nh\u01b0 Google PageSpeed Insights<\/a> d\u1ef1a r\u1ea5t nhi\u1ec1u v\u00e0o c\u00e1c th\u00f4ng s\u1ed1 n\u00e0y \u0111\u1ec3 \u0111\u00e1nh gi\u00e1 t\u1ed1c \u0111\u1ed9 trang. N\u00f3i c\u00e1ch kh\u00e1c t\u1ed1c \u0111\u1ed9 website c\u1ee7a b\u1ea1n \u0111\u1ed1i v\u1edbi Google l\u00e0 t\u1ed1c \u0111\u1ed9 load d\u00e0nh cho m\u00e0n h\u00ecnh \u0111\u1ea7u ti\u00ean (above the fold) ch\u1ee9 kh\u00f4ng ph\u1ea3i to\u00e0n b\u1ed9 trang<\/strong>.<\/p>\n\n\n

<\/div><\/div><\/div>\n\n\n

OK, gi\u1edd ch\u00fang ta \u0111i v\u00e0o ph\u1ea7n ch\u00ednh.<\/p>\n\n\n

Chuy\u1ec7n c\u00e0i \u0111\u1eb7t plugin t\u00f4i s\u1ebd b\u1ecf qua, v\u00ec r\u1ea5t d\u1ec5 d\u00e0ng. T\u00f4i s\u1ebd v\u00e0o th\u1eb3ng ph\u1ea7n ch\u1ee9c n\u0103ng c\u1ee7a plugin.<\/p>\n\n\n

\"b\u1eadt<\/figure><\/div>\n\n\n