{"id":87183,"date":"2025-05-24T21:14:46","date_gmt":"2025-05-24T14:14:46","guid":{"rendered":"https:\/\/itviec1.uptech.vn\/?p=87183"},"modified":"2025-05-24T21:14:46","modified_gmt":"2025-05-24T14:14:46","slug":"html-compiler-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/","title":{"rendered":"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#HTML_Compiler_la_gi\" >HTML Compiler l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#Top_4_HTML_Compiler_giup_viet_ma_HTML_hieu_qua_va_nhanh_chong\" >Top 4 HTML Compiler gi\u00fap vi\u1ebft m\u00e3 HTML hi\u1ec7u qu\u1ea3 v\u00e0 nhanh ch\u00f3ng<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#Cac_cau_hoi_thuong_gap_ve_HTML_Compiler\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 HTML Compiler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n<p><em><strong>M\u1eb7c d\u00f9 HTML kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch theo ngh\u0129a truy\u1ec1n th\u1ed1ng nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nh\u01b0ng thu\u1eadt ng\u1eef HTML Compiler v\u1eabn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i. \u0110\u00e2y th\u1ef1c ch\u1ea5t l\u00e0 c\u00e1ch g\u1ecdi kh\u00f4ng ch\u00ednh th\u1ed1ng c\u1ee7a c\u00f4ng c\u1ee5 gi\u00fap \u0111\u00f3ng g\u00f3i m\u00e3 HTML, CSS v\u00e0 JavaScript th\u00e0nh \u1ee9ng d\u1ee5ng \u0111\u1ed9c l\u1eadp nh\u01b0 file .exe ho\u1eb7c .app. N\u1ebfu ch\u00ednh x\u00e1c l\u00e0 b\u1ea1n \u0111ang t\u00ecm hi\u1ec3u v\u1ec1 lo\u1ea1i c\u00f4ng c\u1ee5 n\u00e0y th\u00ec \u0111\u00e2y l\u00e0 b\u00e0i vi\u1ebft d\u00e0nh cho b\u1ea1n.<\/strong><\/em><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 \u0111\u01b0\u1ee3c gi\u1ea3i \u0111\u00e1p chi ti\u1ebft h\u01a1n v\u1ec1:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">HTML compiler th\u1ef1c ch\u1ea5t l\u00e0 g\u00ec? HTML c\u00f3 th\u1ef1c s\u1ef1 c\u1ea7n bi\u00ean d\u1ecbch ?<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u1ed5ng h\u1ee3p c\u00e1c c\u00f4ng c\u1ee5 HTML editor h\u1ed7 tr\u1ee3 ch\u1ec9nh s\u1eeda v\u00e0 compiler ph\u1ed5 bi\u1ebfn.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 HTML compiler.\u00a0<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"HTML_Compiler_la_gi\"><\/span><b>HTML Compiler l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">HTML compiler l\u00e0 thu\u1eadt ng\u1eef d\u1ec5 g\u00e2y hi\u1ec3u l\u1ea7m n\u1ebfu kh\u00f4ng hi\u1ec3u r\u00f5 v\u1ec1 HTML c\u0169ng nh\u01b0 compiler. Tr\u01b0\u1edbc h\u1ebft c\u1ea7n ph\u00e2n bi\u1ec7t r\u00f5 hai kh\u00e1i ni\u1ec7m n\u00e0y:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/itviec.com\/blog\/html-la-gi\/\" target=\"_blank\" rel=\"noopener\"><b>HTML<\/b><\/a><b> (HyperText Markup Language) <\/b><span style=\"font-weight: 400;\">l\u00e0 ng\u00f4n ng\u1eef \u0111\u00e1nh d\u1ea5u \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u1ea5u tr\u00fac n\u1ed9i dung tr\u00ean trang web. N\u00f3 kh\u00f4ng ch\u1ee9a logic \u0111i\u1ec1u ki\u1ec7n, v\u00f2ng l\u1eb7p hay c\u00e1c bi\u1ec3u th\u1ee9c nh\u01b0 nh\u1eefng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh th\u00f4ng th\u01b0\u1eddng. HTML \u0111\u01b0\u1ee3c tr\u00ecnh duy\u1ec7t \u0111\u1ecdc v\u00e0 hi\u1ec3n th\u1ecb tr\u1ef1c ti\u1ebfp, ngh\u0129a l\u00e0 b\u1ea1n kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch HTML tr\u01b0\u1edbc khi s\u1eed d\u1ee5ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Compiler (tr\u00ecnh bi\u00ean d\u1ecbch)<\/b><span style=\"font-weight: 400;\"> l\u00e0 c\u00f4ng c\u1ee5 d\u1ecbch m\u00e3 ngu\u1ed3n c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh th\u00e0nh m\u00e3 m\u00e1y ho\u1eb7c m\u1ed9t \u0111\u1ecbnh d\u1ea1ng kh\u00e1c m\u00e0 m\u00e1y t\u00ednh c\u00f3 th\u1ec3 th\u1ef1c thi tr\u1ef1c ti\u1ebfp. V\u1edbi nh\u1eefng ng\u00f4n ng\u1eef nh\u01b0 C, C++ <\/span><a href=\"https:\/\/itviec.com\/blog\/java-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Java<\/span><\/a><span style=\"font-weight: 400;\">,\u2026 compiler l\u00e0 th\u00e0nh ph\u1ea7n b\u1eaft bu\u1ed9c \u0111\u1ec3 m\u00e3 ch\u1ea1y \u0111\u01b0\u1ee3c tr\u00ean m\u00e1y.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">T\u00f3m l\u1ea1i, theo \u0111\u1ecbnh ngh\u0129a ch\u00ednh x\u00e1c c\u1ee7a \u201ccompiler\u201d th\u00ec kh\u00f4ng t\u1ed3n t\u1ea1i kh\u00e1i ni\u1ec7m \u201cHTML Compiler\u201d, v\u00ec HTML \u0111\u01b0\u1ee3c tr\u00ecnh duy\u1ec7t \u0111\u1ecdc v\u00e0 hi\u1ec3n th\u1ecb tr\u1ef1c ti\u1ebfp, kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch qua m\u00e3 m\u00e1y ho\u1eb7c t\u1ec7p th\u1ef1c thi.<\/span><\/p>\n<p><b>V\u1eady HTML Compiler th\u1ef1c ch\u1ea5t l\u00e0 g\u00ec?\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n b\u1eaft g\u1eb7p ai \u0111\u00f3 d\u00f9ng kh\u00e1i ni\u1ec7m \u201cHTML Compiler\u201d, c\u00f3 th\u1ec3 h\u1ecd \u0111ang nh\u1eafc \u0111\u1ebfn nh\u1eefng framework v\u00e0 c\u00f4ng c\u1ee5 chuy\u00ean d\u1ee5ng \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 <\/span><b>chuy\u1ec3n \u0111\u1ed5i v\u00e0 \u0111\u00f3ng g\u00f3i m\u00e3 web (HTML, CSS, JavaScript) th\u00e0nh c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u1ed9c l\u1eadp<\/b><span style=\"font-weight: 400;\"> c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng kh\u00e1c nhau nh\u01b0 Windows, macOS ho\u1eb7c Linux.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">B\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y s\u1ebd nh\u1eafc \u0111\u1ebfn kh\u00e1i ni\u1ec7m HTML Compiler v\u1edbi \u00fd ngh\u0129a l\u00e0 \u201ctr\u00ecnh \u0111\u00f3ng g\u00f3i\u201d n\u00e0y.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Top_4_HTML_Compiler_giup_viet_ma_HTML_hieu_qua_va_nhanh_chong\"><\/span><b>Top 4 HTML Compiler gi\u00fap vi\u1ebft m\u00e3 HTML hi\u1ec7u qu\u1ea3 v\u00e0 nhanh ch\u00f3ng<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">C\u00e1c c\u00f4ng c\u1ee5 HTML Compiler nh\u01b0 Electron, Node-webkit, Tauri, Neutralinojs ho\u1ea1t \u0111\u1ed9ng nh\u01b0 m\u1ed9t l\u1edbp v\u1ecf, gi\u00fap bi\u1ebfn giao di\u1ec7n web tr\u1edf th\u00e0nh ph\u1ea7n m\u1ec1m c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t tr\u00ean Windows, macOS ho\u1eb7c Linux. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 b\u1ea3ng so s\u00e1nh c\u00e1c c\u00f4ng c\u1ee5 ph\u1ed5 bi\u1ebfn n\u00e0y:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>C\u00f4ng c\u1ee5<\/b><\/td>\n<td><b>N\u1ec1n t\u1ea3ng<\/b><\/td>\n<td><b>Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh<\/b><\/td>\n<td><b>K\u00edch th\u01b0\u1edbc file \u0111\u1ea7u ra<\/b><\/td>\n<td><b>Ph\u00f9 h\u1ee3p<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Electron<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Windows, macOS, Linux<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript (Node.js)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">L\u1edbn (100MB+)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng ph\u1ee9c t\u1ea1p, c\u1ea7n nhi\u1ec1u t\u00ednh n\u0103ng h\u1ec7 th\u1ed1ng.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">NW.js<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Windows, macOS, Linux<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript (Node.js)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">L\u1edbn (t\u01b0\u01a1ng \u0111\u01b0\u01a1ng Electron)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng nh\u1ecf v\u00e0 v\u1eeba, c\u1ea7n kh\u1edfi ch\u1ea1y nhanh.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Tauri<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Windows, macOS, Linux<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Rust<\/span><\/td>\n<td><span style=\"font-weight: 400;\">R\u1ea5t nh\u1ecf (v\u00e0i MB)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ch\u00fa tr\u1ecdng hi\u1ec7u n\u0103ng, b\u1ea3o m\u1eadt cao.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Neutralinojs<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Linux, Windows, macOS, ho\u1eb7c Chrome Browser<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript, HTML, CSS.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 m\u1edf r\u1ed9ng v\u1edbi c\u00e1c ng\u00f4n ng\u1eef kh\u00e1c qua IPC.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Nh\u1eb9 (ch\u1ec9 v\u00e0i MB, th\u01b0\u1eddng nh\u1ecf h\u01a1n 5MB)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n nh\u1ecf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng y\u00eau c\u1ea7u hi\u1ec7u su\u1ea5t cao, nh\u1eb9, kh\u00f4ng c\u1ea7n c\u00e1c t\u00ednh n\u0103ng ph\u1ee9c t\u1ea1p c\u1ee7a Node.js ho\u1eb7c Electron.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><a href=\"https:\/\/electronjs.org\/\" target=\"_blank\" rel=\"noopener\"><b>Electron<\/b><\/a><\/h3>\n<p><span style=\"font-weight: 400;\">Electron l\u00e0 m\u1ed9t trong nh\u1eefng c\u00f4ng c\u1ee5 ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng desktop b\u1eb1ng HTML, CSS v\u00e0 JavaScript. \u0110i\u1ec3m m\u1ea1nh l\u1edbn nh\u1ea5t c\u1ee7a Electron n\u1eb1m \u1edf kh\u1ea3 n\u0103ng t\u00edch h\u1ee3p Node.js v\u00e0 Chromium, cho ph\u00e9p b\u1ea1n x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng v\u1edbi giao di\u1ec7n web hi\u1ec7n \u0111\u1ea1i nh\u01b0ng v\u1eabn c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o t\u00e0i nguy\u00ean h\u1ec7 th\u1ed1ng nh\u01b0 m\u1ed9t \u1ee9ng d\u1ee5ng desktop th\u1ef1c th\u1ee5.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Electron \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n nhi\u1ec1u ph\u1ea7n m\u1ec1m n\u1ed5i ti\u1ebfng nh\u01b0 Visual Studio Code, Slack v\u00e0 Discord. Nh\u1edd c\u1ed9ng \u0111\u1ed3ng l\u1edbn v\u00e0 h\u1ec7 th\u1ed1ng plugin \u0111a d\u1ea1ng, Electron ph\u00f9 h\u1ee3p cho c\u00e1c \u1ee9ng d\u1ee5ng t\u1eeb v\u1eeba \u0111\u1ebfn ph\u1ee9c t\u1ea1p. Tuy nhi\u00ean, \u1ee9ng d\u1ee5ng x\u00e2y d\u1ef1ng b\u1eb1ng Electron th\u01b0\u1eddng c\u00f3 dung l\u01b0\u1ee3ng kh\u00e1 l\u1edbn v\u00e0 ti\u00eau t\u1ed1n nhi\u1ec1u RAM, do ph\u1ea3i t\u00edch h\u1ee3p c\u1ea3 tr\u00ecnh duy\u1ec7t Chromium v\u00e0o b\u00ean trong.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 \u0111a n\u1ec1n t\u1ea3ng bao g\u1ed3m Windows, macOS, Linux.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u00edch h\u1ee3p <\/span><a href=\"https:\/\/itviec.com\/blog\/nodejs-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Node.js<\/span><\/a><span style=\"font-weight: 400;\"> v\u00e0 Chromium.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">D\u1ec5 d\u00e0ng t\u00edch h\u1ee3p v\u1edbi th\u01b0 vi\u1ec7n v\u00e0 framework JavaScript (<\/span><a href=\"https:\/\/itviec.com\/blog\/reactjs-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">React<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/itviec.com\/blog\/vuejs-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Vue<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/itviec.com\/blog\/angular-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Angular<\/span><\/a><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u1ed9ng \u0111\u1ed3ng l\u1edbn, nhi\u1ec1u t\u00e0i li\u1ec7u v\u00e0 v\u00ed d\u1ee5 th\u1ef1c ti\u1ec5n.<\/span><\/li>\n<\/ul>\n<h3><a href=\"https:\/\/github.com\/nwjs\/nw.js\" target=\"_blank\" rel=\"noopener\"><b>NW.js<\/b><\/a><b> (Node-Webkit)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">NW.js, tr\u01b0\u1edbc \u0111\u00e2y g\u1ecdi l\u00e0 Node-Webkit, l\u00e0 m\u1ed9t trong nh\u1eefng c\u00f4ng c\u1ee5 k\u1ebft h\u1ee3p c\u00f4ng ngh\u1ec7 web v\u00e0 \u1ee9ng d\u1ee5ng desktop. NW.js cho ph\u00e9p b\u1ea1n vi\u1ebft \u1ee9ng d\u1ee5ng b\u1eb1ng HTML, CSS v\u00e0 JavaScript, \u0111\u1ed3ng th\u1eddi c\u00f3 th\u1ec3 truy c\u1eadp tr\u1ef1c ti\u1ebfp c\u00e1c API c\u1ee7a Node.js.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kh\u00e1c v\u1edbi Electron, NW.js cho ph\u00e9p ch\u1ea1y \u1ee9ng d\u1ee5ng ngay trong tr\u00ecnh duy\u1ec7t, mang l\u1ea1i s\u1ef1 linh ho\u1ea1t trong ph\u00e1t tri\u1ec3n v\u00e0 th\u1eed nghi\u1ec7m. NW.js ph\u00f9 h\u1ee3p v\u1edbi nh\u1eefng l\u1eadp tr\u00ecnh vi\u00ean quen l\u00e0m vi\u1ec7c v\u1edbi Node.js v\u00e0 mu\u1ed1n x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng desktop \u0111\u01a1n gi\u1ea3n m\u1ed9t c\u00e1ch nhanh ch\u00f3ng. Tuy kh\u00f4ng c\u00f2n ph\u1ed5 bi\u1ebfn nh\u01b0 Electron, NW.js v\u1eabn \u0111\u01b0\u1ee3c \u01b0a chu\u1ed9ng trong c\u00e1c d\u1ef1 \u00e1n nh\u1ecf.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u00edch h\u1ee3p Node.js v\u00e0 tr\u00ecnh duy\u1ec7t WebKit (ho\u1eb7c Chromium).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 ch\u1ea1y \u1ee9ng d\u1ee5ng tr\u1ef1c ti\u1ebfp.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 c\u1ea3 CommonJS v\u00e0 ES Module.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u1ea5u tr\u00fac file \u0111\u01a1n gi\u1ea3n, d\u1ec5 tri\u1ec3n khai.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u1ed1i \u01b0u cho \u1ee9ng d\u1ee5ng nh\u1eb9 v\u00e0 th\u1eddi gian ph\u00e1t tri\u1ec3n \u00edt.<\/span><\/li>\n<\/ul>\n<h3><a href=\"https:\/\/v2.tauri.app\/\" target=\"_blank\" rel=\"noopener\"><b>Tauri<\/b><\/a><\/h3>\n<p><span style=\"font-weight: 400;\">Tauri n\u1ed5i b\u1eadt v\u1edbi m\u1ee5c ti\u00eau x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng desktop si\u00eau nh\u1eb9 v\u00e0 c\u00f3 \u0111\u1ed9 b\u1ea3o m\u1eadt cao. Kh\u00f4ng gi\u1ed1ng nh\u01b0 Electron, Tauri kh\u00f4ng \u0111\u00f3ng g\u00f3i tr\u00ecnh duy\u1ec7t b\u00ean trong m\u00e0 t\u1eadn d\u1ee5ng tr\u00ecnh duy\u1ec7t c\u00f3 s\u1eb5n tr\u00ean m\u00e1y ng\u01b0\u1eddi d\u00f9ng. Tauri ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean ch\u00fa tr\u1ecdng \u0111\u1ebfn hi\u1ec7u n\u0103ng, b\u1ea3o m\u1eadt v\u00e0 dung l\u01b0\u1ee3ng file c\u00e0i \u0111\u1eb7t nh\u1ecf.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Si\u00eau nh\u1eb9, file c\u00e0i \u0111\u1eb7t ch\u1ec9 v\u00e0i MB.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Vi\u1ebft backend b\u1eb1ng Rust, \u0111\u1ea3m b\u1ea3o t\u1ed1c \u0111\u1ed9 v\u00e0 \u0111\u1ed9 an to\u00e0n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u1eadn d\u1ee5ng WebView g\u1ed1c c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">B\u1ea3o m\u1eadt cao v\u1edbi sandbox h\u00f3a v\u00e0 ki\u1ec3m so\u00e1t quy\u1ec1n truy c\u1eadp.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 t\u00edch h\u1ee3p v\u1edbi framework frontend nh\u01b0 React, Svelte, Vue.<\/span><\/li>\n<\/ul>\n<h3><a href=\"https:\/\/neutralino.js.org\/\" target=\"_blank\" rel=\"noopener\"><b>Neutralinojs<\/b><\/a><\/h3>\n<p><span style=\"font-weight: 400;\">Neutralinojs l\u00e0 framework nh\u1eb9 cho ph\u00e9p b\u1ea1n x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng desktop \u0111a n\u1ec1n t\u1ea3ng v\u1edbi hi\u1ec7u su\u1ea5t cao b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng HTML, CSS v\u00e0 JavaScript. B\u1ea1n c\u00f3 th\u1ec3 m\u1edf r\u1ed9ng kh\u1ea3 n\u0103ng c\u1ee7a Neutralinojs b\u1eb1ng b\u1ea5t k\u1ef3 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh n\u00e0o (th\u00f4ng qua c\u01a1 ch\u1ebf giao ti\u1ebfp IPC m\u1edf r\u1ed9ng) ho\u1eb7c t\u00edch h\u1ee3p Neutralinojs v\u00e0o b\u1ea5t k\u1ef3 t\u1ec7p m\u00e3 ngu\u1ed3n n\u00e0o (th\u00f4ng qua ti\u1ebfn tr\u00ecnh con s\u1eed d\u1ee5ng IPC).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Neutralinojs cung c\u1ea5p m\u1ed9t b\u1ed9 SDK nh\u1eb9 v\u00e0 di \u0111\u1ed9ng, l\u00e0 l\u1ef1a ch\u1ecdn thay th\u1ebf hi\u1ec7u qu\u1ea3 cho Electron v\u00e0 NWjs. Neutralinojs kh\u00f4ng t\u00edch h\u1ee3p Chromium, m\u00e0 t\u1eadn d\u1ee5ng th\u01b0 vi\u1ec7n tr\u00ecnh duy\u1ec7t web s\u1eb5n c\u00f3 trong h\u1ec7 \u0111i\u1ec1u h\u00e0nh (v\u00ed d\u1ee5: gtk-webkit2 tr\u00ean Linux).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra, c\u00f4ng c\u1ee5 n\u00e0y tri\u1ec3n khai k\u1ebft n\u1ed1i WebSocket b\u1ea3o m\u1eadt \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c thao t\u00e1c h\u1ec7 th\u1ed1ng v\u00e0 t\u00edch h\u1ee3p s\u1eb5n m\u1ed9t m\u00e1y ch\u1ee7 web t\u0129nh \u0111\u1ec3 ph\u1ee5c v\u1ee5 n\u1ed9i dung HTML. Neutralinojs c\u0169ng cung c\u1ea5p s\u1eb5n th\u01b0 vi\u1ec7n JavaScript ti\u1ec7n \u00edch cho c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 \u0111a d\u1ea1ng n\u1ec1n t\u1ea3ng bao g\u1ed3m Linux, Windows, macOS, ho\u1eb7c Chrome Browser.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c framework Frontend nh\u01b0 Angular, React, Svelte, Vue,&#8230; \u0111\u1ec3 x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng v\u1edbi Neutralinojs.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dung l\u01b0\u1ee3ng nh\u1eb9, t\u1ed1c \u0111\u1ed9 nhanh v\u00e0 kh\u1ea3 n\u0103ng t\u00edch h\u1ee3p t\u1ed1t v\u1edbi c\u00e1c c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n hi\u1ec7n c\u00f3.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kh\u00f4ng y\u00eau c\u1ea7u c\u00e0i \u0111\u1eb7t Node.js, gi\u00fap gi\u1ea3m thi\u1ec3u \u0111\u00e1ng k\u1ec3 k\u00edch th\u01b0\u1edbc file cu\u1ed1i c\u00f9ng.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_HTML_Compiler\"><\/span><b>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 HTML Compiler<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b>HTML c\u00f3 \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch trong tr\u00ecnh duy\u1ec7t kh\u00f4ng?<\/b><\/h3>\n<p><b>C\u00e2u tr\u1ea3 l\u1eddi l\u00e0 Kh\u00f4ng, <\/b><span style=\"font-weight: 400;\">HTML kh\u00f4ng \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch (compiled) trong tr\u00ecnh duy\u1ec7t. Thay v\u00e0o \u0111\u00f3, HTML \u0111\u01b0\u1ee3c ph\u00e2n t\u00edch c\u00fa ph\u00e1p v\u00e0 hi\u1ec3n th\u1ecb tr\u1ef1c ti\u1ebfp b\u1edfi tr\u00ecnh duy\u1ec7t web.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tr\u00ecnh duy\u1ec7t \u0111\u1ecdc m\u00e3 HTML theo t\u1eebng d\u00f2ng, sau \u0111\u00f3 x\u00e2y d\u1ef1ng DOM (Document Object Model) \u0111\u1ec3 hi\u1ec3n th\u1ecb c\u1ea5u tr\u00fac trang web. Kh\u00f4ng c\u00f3 qu\u00e1 tr\u00ecnh bi\u00ean d\u1ecbch gi\u1ed1ng nh\u01b0 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh nh\u01b0 C ho\u1eb7c Java. N\u00f3i c\u00e1ch kh\u00e1c, tr\u00ecnh duy\u1ec7t l\u00e0 m\u1ed9t tr\u00ecnh th\u00f4ng d\u1ecbch (interpreter) ch\u1ee9 kh\u00f4ng ph\u1ea3i compiler trong tr\u01b0\u1eddng h\u1ee3p c\u1ee7a HTML.<\/span><\/p>\n<h3><b>HTML Compiler v\u00e0 HTML Preprocessor c\u00f3 m\u1ed1i li\u00ean h\u1ec7 nh\u01b0 th\u1ebf n\u00e0o?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">D\u00f9 c\u1ea3 hai c\u00f4ng c\u1ee5 \u0111\u1ec1u li\u00ean quan \u0111\u1ebfn qu\u00e1 tr\u00ecnh x\u1eed l\u00fd m\u00e3 HTML nh\u01b0ng Compiler v\u00e0 Preprocessor ph\u1ee5c v\u1ee5 nh\u1eefng m\u1ee5c \u0111\u00edch ho\u00e0n to\u00e0n kh\u00e1c nhau.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tr\u00ecnh ti\u1ec1n x\u1eed l\u00fd (preprocessor) l\u00e0 l\u1edbp \u0111\u1ea7u ti\u00ean trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd m\u00e3 ngu\u1ed3n tr\u01b0\u1edbc khi m\u00e3 \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn tr\u00ecnh bi\u00ean d\u1ecbch. N\u00f3i m\u1ed9t c\u00e1ch \u0111\u01a1n gi\u1ea3n, tr\u00ecnh ti\u1ec1n x\u1eed l\u00fd s\u1ebd th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c v\u00e0 \u0111i\u1ec1u ch\u1ec9nh ban \u0111\u1ea7u \u0111\u1ec3 chu\u1ea9n b\u1ecb m\u00e3 ngu\u1ed3n cho b\u01b0\u1edbc bi\u00ean d\u1ecbch ti\u1ebfp theo. Trong l\u1eadp tr\u00ecnh C v\u00e0 C++, qu\u00e1 tr\u00ecnh n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t th\u00f4ng qua c\u00e1c ch\u1ec9 th\u1ecb (directives), t\u1ee9c l\u00e0 nh\u1eefng d\u00f2ng l\u1ec7nh b\u1eaft \u0111\u1ea7u b\u1eb1ng d\u1ea5u #.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Thay th\u1ebf macro:<\/b><span style=\"font-weight: 400;\"> T\u1ef1 \u0111\u1ed9ng thay c\u00e1c macro b\u1eb1ng n\u1ed9i dung \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a s\u1eb5n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ch\u00e8n file: <\/b><span style=\"font-weight: 400;\">Th\u00eam c\u00e1c file ti\u00eau \u0111\u1ec1 (header) th\u00f4ng qua ch\u1ec9 th\u1ecb #include.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Bi\u00ean d\u1ecbch c\u00f3 \u0111i\u1ec1u ki\u1ec7n:<\/b><span style=\"font-weight: 400;\"> S\u1eed d\u1ee5ng c\u00e1c ch\u1ec9 th\u1ecb nh\u01b0 #if, #else, #endif \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ph\u1ea7n n\u00e0o c\u1ee7a m\u00e3 s\u1ebd \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>X\u00f3a ch\u00fa th\u00edch: <\/b><span style=\"font-weight: 400;\">Lo\u1ea1i b\u1ecf ph\u1ea7n ch\u00fa th\u00edch \u0111\u1ec3 l\u00e0m cho m\u00e3 s\u1ea1ch v\u00e0 g\u1ecdn h\u01a1n tr\u01b0\u1edbc khi bi\u00ean d\u1ecbch.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Sau b\u01b0\u1edbc ti\u1ec1n x\u1eed l\u00fd, tr\u00ecnh bi\u00ean d\u1ecbch (compiler) s\u1ebd ti\u1ebfp t\u1ee5c nh\u1eadn m\u00e3 ngu\u1ed3n \u0111\u00e3 \u0111\u01b0\u1ee3c tinh ch\u1ec9nh v\u00e0 b\u1eaft \u0111\u1ea7u m\u1ed9t qu\u00e1 tr\u00ecnh g\u1ed3m nhi\u1ec1u giai \u0111o\u1ea1n \u0111\u1ec3 chuy\u1ec3n m\u00e3 th\u00e0nh m\u00e3 m\u00e1y (machine code). \u0110i\u1ec1u n\u00e0y s\u1ebd gi\u00fap m\u00e1y t\u00ednh c\u00f3 th\u1ec3 hi\u1ec3u v\u00e0 th\u1ef1c thi \u0111\u01b0\u1ee3c.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong qu\u00e1 tr\u00ecnh chuy\u1ec3n \u0111\u1ed5i n\u00e0y, tr\u00ecnh bi\u00ean d\u1ecbch \u0111\u1ea3m nhi\u1ec7m nhi\u1ec1u c\u00f4ng vi\u1ec7c quan tr\u1ecdng:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ph\u00e2n t\u00edch t\u1eeb v\u1ef1ng (Lexical Analysis):<\/b><span style=\"font-weight: 400;\"> Ph\u00e2n t\u00e1ch m\u00e3 th\u00e0nh c\u00e1c token, l\u00e0 nh\u1eefng th\u00e0nh ph\u1ea7n c\u01a1 b\u1ea3n nh\u01b0 t\u1eeb kh\u00f3a, to\u00e1n t\u1eed, t\u00ean bi\u1ebfn,\u2026<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p (Syntax Analysis):<\/b><span style=\"font-weight: 400;\"> X\u00e2y d\u1ef1ng c\u00e2y c\u00fa ph\u00e1p \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o c\u00e1c token tu\u00e2n th\u1ee7 \u0111\u00fang c\u1ea5u tr\u00fac ng\u1eef ph\u00e1p c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ph\u00e2n t\u00edch ng\u1eef ngh\u0129a (Semantic Analysis):<\/b><span style=\"font-weight: 400;\"> Ki\u1ec3m tra xem ch\u01b0\u01a1ng tr\u00ecnh c\u00f3 mang \u00fd ngh\u0129a h\u1ee3p l\u1ec7 theo quy t\u1eafc ng\u1eef ngh\u0129a hay kh\u00f4ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>T\u1ed1i \u01b0u h\u00f3a (Optimization):<\/b><span style=\"font-weight: 400;\"> \u0110i\u1ec1u ch\u1ec9nh m\u00e3 \u0111\u1ec3 ch\u1ea1y hi\u1ec7u qu\u1ea3 h\u01a1n, t\u1ed1n \u00edt t\u00e0i nguy\u00ean h\u01a1n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Sinh m\u00e3 (Code Generation):<\/b><span style=\"font-weight: 400;\"> D\u1ecbch m\u00e3 \u0111\u00e3 t\u1ed1i \u01b0u th\u00e0nh m\u00e3 trung gian ho\u1eb7c m\u00e3 m\u00e1y.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Li\u00ean k\u1ebft v\u00e0 t\u1ea1o t\u1eadp tin th\u1ef1c thi (Code Linking and Assembly):<\/b><span style=\"font-weight: 400;\"> G\u1eafn k\u1ebft c\u00e1c ph\u1ea7n m\u00e3 v\u1edbi nhau, x\u1eed l\u00fd \u0111\u1ecba ch\u1ec9 v\u00e0 t\u1ea1o ra t\u1eadp tin th\u1ef1c thi cu\u1ed1i c\u00f9ng.<\/span><\/li>\n<\/ul>\n<p><b>Tuy nhi\u00ean, b\u1ea1n n\u00ean l\u01b0u \u00fd r\u1eb1ng, \u0111\u00e2y l\u00e0 tr\u00ecnh bi\u00ean d\u1ecbch \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh nh\u01b0 C, C++ ho\u1eb7c Java.<\/b><span style=\"font-weight: 400;\"> B\u1edfi v\u00ec HTML l\u00e0 ng\u00f4n ng\u1eef \u0111\u00e1nh d\u1ea5u (HyperText Markup Language) n\u00ean kh\u00f4ng c\u1ea7n tr\u00ecnh bi\u00ean d\u1ecbch (compiler).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 n\u00f3i v\u1ec1 HTML compiler, c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 \u0111\u00f3ng g\u00f3i m\u00e3 HTML, CSS v\u00e0 JavaScript th\u00e0nh c\u00e1c \u1ee9ng d\u1ee5ng desktop ho\u1eb7c \u1ee9ng d\u1ee5ng di \u0111\u1ed9ng \u0111\u1ed9c l\u1eadp. Sau khi preprocessor \u0111\u00e3 t\u1ea1o ra m\u00e3 HTML ho\u00e0n ch\u1ec9nh, HTML compiler s\u1ebd:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u0110\u00f3ng g\u00f3i m\u00e3 HTML, CSS, JavaScript c\u00f9ng v\u1edbi m\u1ed9t tr\u00ecnh duy\u1ec7t nh\u00fang.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u1ea1o ra \u1ee9ng d\u1ee5ng \u0111\u1ed9c l\u1eadp c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cung c\u1ea5p kh\u1ea3 n\u0103ng truy c\u1eadp API h\u1ec7 th\u1ed1ng m\u00e0 c\u00e1c trang web th\u00f4ng th\u01b0\u1eddng kh\u00f4ng th\u1ec3 truy c\u1eadp.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">S\u1ef1 ph\u1ed1i h\u1ee3p gi\u1eefa tr\u00ecnh ti\u1ec1n x\u1eed l\u00fd (preprocessor) v\u00e0 HTML compiler t\u1ea1o n\u00ean m\u1ed9t quy tr\u00ecnh ho\u00e0n ch\u1ec9nh cho vi\u1ec7c ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng d\u1ef1a tr\u00ean web. Tr\u00ecnh ti\u1ec1n x\u1eed l\u00fd s\u1ebd vi\u1ebft m\u00e3 HTML m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 v\u00e0 c\u00f3 c\u1ea5u tr\u00fac, trong khi HTML compiler chuy\u1ec3n \u0111\u1ed5i m\u00e3 web th\u00e0nh \u1ee9ng d\u1ee5ng \u0111\u1ed9c l\u1eadp c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng kh\u00e1c nhau. Tuy nhi\u00ean, <\/span><b>b\u1ea1n c\u1ea7n l\u01b0u \u00fd r\u1eb1ng \u0111\u00e2y l\u00e0 2 c\u00f4ng c\u1ee5 ri\u00eang bi\u1ec7t v\u1edbi m\u1ee5c \u0111\u00edch kh\u00e1c nhau, kh\u00f4ng gi\u1ed1ng nh\u01b0 m\u1ed1i li\u00ean h\u1ec7 gi\u1eefa preprocessor v\u1edbi compiler trong ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c.<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh (C, C++ hay Java) th\u00ec preprocessor v\u00e0 compiler \u0111\u00f3ng vai tr\u00f2 quan tr\u1ecdng trong vi\u1ec7c d\u1ecbch m\u00e3 v\u00e0 th\u1ef1c thi ch\u01b0\u01a1ng tr\u00ecnh m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. Tr\u00ecnh ti\u1ec1n x\u1eed l\u00fd l\u00e0 ng\u01b0\u1eddi m\u1edf \u0111\u01b0\u1eddng chu\u1ea9n b\u1ecb m\u00e3 ngu\u1ed3n c\u00f3 t\u1ed5 ch\u1ee9c v\u00e0 h\u1ea1n ch\u1ebf t\u1ed1i \u0111a l\u1ed7i. Sau \u0111\u00f3, tr\u00ecnh bi\u00ean d\u1ecbch ti\u1ebfp nh\u1eadn ph\u1ea7n m\u00e3 \u0111\u00e3 \u0111\u01b0\u1ee3c x\u1eed l\u00fd n\u00e0y, ph\u00e2n t\u00edch k\u1ef9 l\u01b0\u1ee1ng v\u00e0 chuy\u1ec3n \u0111\u1ed5i th\u00e0nh m\u1ed9t t\u1eadp tin th\u1ef1c thi, ph\u1ea3n \u00e1nh \u0111\u00fang logic m\u00e0 l\u1eadp tr\u00ecnh vi\u00ean \u0111\u00e3 thi\u1ebft k\u1ebf ban \u0111\u1ea7u.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 m\u1ed1i li\u00ean h\u1ec7 gi\u1eefa HTML compiler v\u00e0 HTML preprocessor, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o qua b\u1ea3ng d\u01b0\u1edbi \u0111\u00e2y:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Ti\u00eau ch\u00ed<\/b><\/td>\n<td><b>Preprocessor<\/b><\/td>\n<td><b>Compiler<\/b><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">V\u1ecb tr\u00ed<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">L\u00e0 b\u01b0\u1edbc \u0111\u1ea7u ti\u00ean, x\u1eed l\u00fd m\u00e3 tr\u01b0\u1edbc khi \u0111\u01b0a \u0111\u1ebfn compiler.<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">L\u00e0 b\u01b0\u1edbc ti\u1ebfp theo (n\u1ebfu c\u00f3), d\u00f9ng \u0111\u1ec3 \u0111\u00f3ng g\u00f3i m\u00e3 HTML th\u00e0nh \u1ee9ng d\u1ee5ng desktop ho\u1eb7c b\u1ea3n ch\u1ea1y \u0111\u1ed9c l\u1eadp.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Ch\u1ee9c n\u0103ng<\/span><\/td>\n<td style=\"text-align: left;\">\n<ul>\n<li><span style=\"font-weight: 400;\">Thay th\u1ebf macro<\/span><\/li>\n<li><span style=\"font-weight: 400;\">G\u1ed9p file (include)<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Bi\u00ean d\u1ecbch c\u00f3 \u0111i\u1ec1u ki\u1ec7n<\/span><\/li>\n<li><span style=\"font-weight: 400;\">X\u00f3a comment<\/span><\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li style=\"text-align: left;\"><span style=\"font-weight: 400;\">\u0110\u00f3ng g\u00f3i HTML, CSS, JS v\u00e0o \u1ee9ng d\u1ee5ng desktop<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"font-weight: 400;\">Chuy\u1ec3n HTML th\u00e0nh d\u1ea1ng th\u1ef1c thi \u0111\u1ed9c l\u1eadp (th\u01b0\u1eddng l\u00e0 EXE).<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">T\u00e1c \u0111\u1ed9ng \u0111\u1ebfn m\u00e3<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Bi\u1ebfn \u0111\u1ed5i m\u00e3 theo c\u00e1c ch\u1ec9 th\u1ecb, gi\u00fap m\u00e3 s\u1ea1ch h\u01a1n, d\u1ec5 ki\u1ec3m so\u00e1t h\u01a1n.<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Th\u01b0\u1eddng kh\u00f4ng thay \u0111\u1ed5i logic c\u1ee7a HTML, m\u00e0 ch\u1ec9 \u0111\u00f3ng g\u00f3i \u0111\u1ec3 ch\u1ea1y trong m\u00f4i tr\u01b0\u1eddng kh\u00e1c.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Ng\u00f4n ng\u1eef<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Th\u01b0\u1eddng d\u00f9ng trong frontend.<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Ch\u1ee7 y\u1ebfu d\u00f9ng khi c\u1ea7n t\u1ea1o \u1ee9ng d\u1ee5ng desktop t\u1eeb web.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n web hi\u1ec7n \u0111\u1ea1i v\u1edbi quy tr\u00ecnh build.<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">\u00cdt ph\u1ed5 bi\u1ebfn h\u01a1n.\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><b>T\u1ed5ng k\u1ebft<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><b>HTML compiler<\/b><span style=\"font-weight: 400;\"> kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t tr\u00ecnh bi\u00ean d\u1ecbch theo ngh\u0129a truy\u1ec1n th\u1ed1ng m\u00e0 l\u00e0 c\u00e1ch g\u1ecdi kh\u00f4ng ch\u00ednh th\u1ed1ng d\u00e0nh cho c\u00e1c c\u00f4ng c\u1ee5 gi\u00fap \u0111\u00f3ng g\u00f3i, render, v\u00e0 ch\u1ea1y giao di\u1ec7n HTML nh\u01b0 m\u1ed9t \u1ee9ng d\u1ee5ng. B\u00ean c\u1ea1nh \u0111\u00f3, HTML compiler v\u1eabn l\u00e0 c\u00f4ng c\u1ee5 n\u1ec1n t\u1ea3ng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean l\u00e0m vi\u1ec7c hi\u1ec7u qu\u1ea3. Hi\u1ec3u \u0111\u00fang v\u00e0 d\u00f9ng \u0111\u00fang HTML compiler s\u1ebd gi\u00fap b\u1ea1n t\u1ed1i \u01b0u c\u00f4ng c\u1ee5 l\u1eadp tr\u00ecnh v\u00e0 ph\u00e1t tri\u1ec3n s\u1ea3n ph\u1ea9m t\u1ed1t h\u01a1n.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u1eb7c d\u00f9 HTML kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch theo ngh\u0129a truy\u1ec1n th\u1ed1ng nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nh\u01b0ng thu\u1eadt ng\u1eef HTML Compiler v\u1eabn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i. \u0110\u00e2y th\u1ef1c ch\u1ea5t l\u00e0 c\u00e1ch g\u1ecdi kh\u00f4ng ch\u00ednh th\u1ed1ng c\u1ee7a c\u00f4ng c\u1ee5 gi\u00fap \u0111\u00f3ng g\u00f3i m\u00e3 HTML, CSS v\u00e0 JavaScript th\u00e0nh \u1ee9ng d\u1ee5ng \u0111\u1ed9c l\u1eadp nh\u01b0 [&hellip;]<\/p>\n","protected":false},"author":207,"featured_media":87244,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-87183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng - ITviec Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng\" \/>\n<meta property=\"og:description\" content=\"M\u1eb7c d\u00f9 HTML kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch theo ngh\u0129a truy\u1ec1n th\u1ed1ng nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nh\u01b0ng thu\u1eadt ng\u1eef HTML Compiler v\u1eabn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i. \u0110\u00e2y th\u1ef1c\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-24T14:14:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2016\/10\/homepage3-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"492\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Uyen Ngo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Uyen Ngo\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng - ITviec Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng","og_description":"M\u1eb7c d\u00f9 HTML kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch theo ngh\u0129a truy\u1ec1n th\u1ed1ng nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nh\u01b0ng thu\u1eadt ng\u1eef HTML Compiler v\u1eabn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i. \u0110\u00e2y th\u1ef1c","og_url":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-05-24T14:14:46+00:00","og_image":[{"width":940,"height":492,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2016\/10\/homepage3-1.png","type":"image\/png"}],"author":"Uyen Ngo","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Uyen Ngo","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"18 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/"},"author":{"name":"Uyen Ngo","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/f4cd1226846e0258c664e170d3e52d20"},"headline":"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng","datePublished":"2025-05-24T14:14:46+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/"},"wordCount":3534,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/05\/html-complier-vippro-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/","url":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/","name":"HTML Compiler l\u00e0 g\u00ec? Hi\u1ec3u \u0111\u00fang \u0111\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/05\/html-complier-vippro-scaled.png","datePublished":"2025-05-24T14:14:46+00:00","inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/html-compiler-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/html-compiler-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/05\/html-complier-vippro-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/05\/html-complier-vippro-scaled.png","width":640,"height":337,"caption":"html compiler - itviec blog"},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/f4cd1226846e0258c664e170d3e52d20","name":"Uyen Ngo","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","caption":"Uyen Ngo"},"url":"https:\/\/itviec.com\/blog\/author\/uyen-ngo\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/87183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/207"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=87183"}],"version-history":[{"count":0,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/87183\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/87244"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=87183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=87183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=87183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}