{"id":16836,"date":"2019-12-15T11:16:05","date_gmt":"2019-12-15T11:16:05","guid":{"rendered":"https:\/\/kiencang.net\/?p=14023"},"modified":"2019-12-15T11:16:05","modified_gmt":"2019-12-15T11:16:05","slug":"tai-javascript-defer-async","status":"publish","type":"post","link":"https:\/\/kiencang.net\/tai-javascript-defer-async\/","title":{"rendered":"T\u1ea3i JavaScript hi\u1ec7u qu\u1ea3 v\u1edbi defer v\u00e0 async"},"content":{"rendered":"\n

Khi b\u1ea1n t\u1ea3i JavaScript tr\u00ean trang HTML, b\u1ea1n c\u1ea7n c\u1ea9n th\u1eadn \u0111\u1ec3 kh\u00f4ng l\u00e0m \u1ea3nh h\u01b0\u1edfng x\u1ea5u \u0111\u1ebfn hi\u1ec7u su\u1ea5t (t\u1ed1c \u0111\u1ed9) c\u1ee7a trang<\/a>. Ph\u1ee5 thu\u1ed9c v\u00e0o vi\u1ec7c b\u1ea1n \u0111\u1eb7t \u0111o\u1ea1n m\u00e3 JavaScript \u1edf \u0111\u00e2u<\/strong> v\u00e0 c\u00e1ch<\/strong> \u0111\u1eb7t n\u00f3 tr\u00ean trang HTML, s\u1ef1 k\u1ebft h\u1ee3p n\u00e0y s\u1ebd \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn th\u1eddi gian t\u1ea3i trang (loading time).<\/p>\n\n\n

M\u1ed9t \u0111o\u1ea1n m\u00e3 JavaScript th\u00f4ng th\u01b0\u1eddng s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1eb7t nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n

<script src=\"script.js\"><\/script><\/code><\/pre>\n\n\n

B\u1ea5t c\u1ee9 khi n\u00e0o tr\u00ecnh ph\u00e2n t\u00edch (parser) HTML t\u00ecm th\u1ea5y d\u00f2ng n\u00e0y, m\u1ed9t y\u00eau c\u1ea7u s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n \u0111\u1ec3 t\u00ecm n\u1ea1p (fetch \/ t\u1ea3i xu\u1ed1ng) JavaScript, v\u00e0 \u0111o\u1ea1n m\u00e3 s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi (executed).<\/p>\n\n\n

M\u1ed9t khi qu\u00e1 tr\u00ecnh n\u00e0y ho\u00e0n th\u00e0nh, tr\u00ecnh ph\u00e2n t\u00edch c\u00fa ph\u00e1p m\u1edbi c\u00f3 th\u1ec3 ti\u1ebfp t\u1ee5c (resume), v\u00e0 ph\u1ea7n c\u00f2n l\u1ea1i c\u1ee7a HTML (c\u00f3 th\u1ec3) \u0111\u01b0\u1ee3c ph\u00e2n t\u00edch ti\u1ebfp [nh\u01b0 cu\u1ed9c ch\u1ea1y ti\u1ebfp s\u1ee9c, khi t\u1eebng ng\u01b0\u1eddi ch\u1ec9 \u0111\u01b0\u1ee3c ch\u1ea1y khi \u0111\u1ebfn l\u01b0\u1ee3t c\u1ee7a h\u1ecd, di\u1ec5n ra v\u00e0o l\u00fac trao g\u1eady].<\/p>\n\n\n

Nh\u01b0 b\u1ea1n c\u00f3 th\u1ec3 \u0111o\u00e1n \u0111\u01b0\u1ee3c r\u1ed3i, ki\u1ec3u ho\u1ea1t \u0111\u1ed9ng n\u00e0y c\u00f3 th\u1ec3 \u1ea3nh h\u01b0\u1edfng l\u1edbn l\u00ean th\u1eddi gian t\u1ea3i c\u1ee7a trang.<\/p>\n\n\n

N\u1ebfu JavaScript m\u1ea5t nhi\u1ec1u th\u1eddi gian h\u01a1n \u0111\u1ec3 t\u1ea3i so v\u1edbi d\u1ef1 \u0111\u1ecbnh, v\u00ed d\u1ee5 n\u1ebfu m\u1ea1ng h\u01a1i ch\u1eadm<\/a> ho\u1eb7c n\u1ebfu tr\u00ean thi\u1ebft b\u1ecb di \u0111\u1ed9ng v\u00e0 k\u1ebft n\u1ed1i kh\u00f4ng \u1ed5n \u0111\u1ecbnh (sloppy), ng\u01b0\u1eddi xem c\u00f3 kh\u1ea3 n\u0103ng th\u1ea5y m\u1ed9t trang tr\u1ed1ng tr\u01a1n (blank page) cho \u0111\u1ebfn khi \u0111o\u1ea1n m\u00e3 \u0111\u01b0\u1ee3c t\u1ea3i v\u00e0 th\u1ef1c thi.<\/p>\n\n\n


\n\n\n
\n
\n

M\u1ee5c l\u1ee5c<\/p>\n