Tiếp theo bài viết Code tăng tốc độ website, topic này hướng đến kỹ thuật nén một trong những yếu tố quan trọng nhằm tăng tốc, giảm băng thông website. Phần lớn mọi người nghĩ việc nén Website không quan trọng, vì nếu mình viết code tối ưu, server đặt trong nước thì cũng đã đủ nhanh rồi. Bạn có nghĩ quan niệm này đúng không? Để mình cho bạn 1 ví dụ nhé, đồng ý là code bạn viết tối ưu, server bạn nhanh đi chăng nữa, nếu site bạn có visit từ mobile chẳng hạn, vị khách này dùng iPhone hoặc Samsung Galaxy đời mới nhất để vào trang web bạn. Nhưng nếu nó không được nén lại, thì cước phí GPRS và 3G sẽ trả cho nhà mạng rất nhiều, vì Website của bạn sử dụng nhiều data để tải về. Vị khách này có muốn tới thăm Website của bạn nữa không, khi họ biết load Website đó sẽ phải trả nhiều tiền hơn Website của đối thủ bạn? Cũng có 1 nhận niệm sai lầm là việc nén Website sẽ làm chậm server. Trường hợp này thì không phải nhé. Nó sử dụng một ít CPU để nén, nhưng kết quả là server của bạn sử lý dữ liệu ít hơn đáng kể, làm giảm tải tổng CPU trên server. Mô tả giữa trình duyệt và máy chủ không sử dụng kỹ thuật nén: 1. Trình duyệt: Này server, hãy lấy cho tôi tập tin index.html 2. Máy chủ: Ok, để tôi tìm nó. 3. Máy chủ: Đã tìm thấy. Và trả về mã 200 đồng thời cho tải tập tin. 4. Trình duyệt: Đến 100Kb lận ah? Chờ chút nhé, để tôi load nó. Mô tả giữa trình duyệt và máy chủ sử dụng kỹ thuật nén: 1. Trình duyệt: Này server, tôi có thể lấy tập tin index.html được không? Có bản nào nén lại tải cho nhanh thì càng tốt nhé. 2. Máy chủ: Để tôi tìm nó. Và bạn muốn lấy bạn nén phải không? 3. Máy chủ: Ok, đã tìm thấy tập tin index.html, và tôi sẽ gửi cho bạn tập tin nén. 4. Trình duyệt: Tuyệt vời. Nó chỉ 10Kb. Tôi sẽ giải nén và hiển thị cho người xem. Đầu tiên bạn cần kiểm tra xem Web Server của bạn có hỗ trợ nén hay không, bằng cách up 1 tập tin với nội dung sau: info.php Mã: <? phpinfo(); ?> Đoạn code này sẽ liệt kê ra cái module chạy trên Web Server của bạn, hãy tìm thử các module: mod_gzip, mod_deflate. Kỹ thuật nén trong bài viết này đề cập đến 2 module này, nếu bạn không thấy nó hãy liên hệ với HP để được hỗ trợ. Kích hoạt nén Gzip: Bạn thêm đoạn code bên dưới vào tập tin .htaccess với nội dung sau: Mã: # compress all html, plain text, xml, css and javascript: AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript Hoặc bạn có thể thêm vào tập tin .htaccess nhiều hơn: Mã: <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/x-js AddOutputFilterByType DEFLATE text/ecmascript AddOutputFilterByType DEFLATE application/ecmascript AddOutputFilterByType DEFLATE text/vbscript AddOutputFilterByType DEFLATE text/fluffscript AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/vnd.oasis.opendocument.formula-template </IfModule> Đoạn code trên nếu thêm vào sẽ nén khoảng 70% - 80% so với việc không nén. Để kiểm tra Website của mình đã được nén chưa bạn vào đây nhé: http://www.whatsmyip.org/http_compression Và http://www.gidnetwork.com/tools/gzip-test.php Demo từ website Hội Quán Tin Học dùng kỹ thuật nén: Mình đang trong quá trình tìm tòi và học hỏi về kỹ thuật nén giúp Website load nhanh hơn, nếu có chỗ nào thiếu sót mong nhận được góp ý của mọi người. Bài viết trên mình có tham khảo 1 số nguồn từ nước ngoài. P/S: Do bài viết cũ bị mất nên mình post lại.
Mình hay vào trang này developers.google.com/speed/pagespeed/insights xem code website đã tối ưu chưa và thực hiện nén CSS, JS