xác thực google maps

Tăng tốc và giảm băng thông bằng kỹ thuật nén

Thảo luận trong 'Hỗ trợ Lập Trình, Mã Nguồn' bắt đầu bởi Mr.N2, 31 Tháng năm 2013.

Lượt xem: 23,979

  1. Mr.N2

    Mr.N2 Administrator Staff Member

    Bài viết:
    2,252
    Đã được thích:
    5,106
    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.

    [​IMG]

    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é:



    Demo từ website Hội Quán Tin Học dùng kỹ thuật nén:

    [​IMG]

    Demo từ iDichvuSEO, theo mình nghĩ do iDichvuSEO chạy CloudFlare nên nó nén sẵn rồi.

    [​IMG]

    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.

    Ghi rõ nguồn forum.idichvuseo.com nếu bạn copy lại bài viết này.

    P/S: Do bài viết cũ bị mất nên mình post lại.

     
  2. iloveseo123

    iloveseo123 Dự bị

    Bài viết:
    4
    Đã được thích:
    0
    Hiện giờ mình cũng có code để nén các resource thành gzip, nhưng java script thì không, do nó sẽ làm một số script chạy không được. Vào web master tool thì nó gợi ý mình cần nén java script thành gzip. Nhưng lại không thể hic mặc dù mình có shrink file lại là kiểu bỏ hàng, dồn các chữ dính lại. Giải pháp nào đây?
     
  3. Mr.N2

    Mr.N2 Administrator Staff Member

    Bài viết:
    2,252
    Đã được thích:
    5,106

    Có thể làm được điều này, giải pháp này cũng không đến nỗi bất khả thi. Bạn nên tham khảo mod_pagespeed dành cho server (Apache nhé). Đây là sản phẩm của Google cung cấp cho cộng đồng Webmaster, cũng như các nhà cung cấp dịch vụ Hosting, VPS.
     
  4. maingoc

    maingoc Thành viên

    Bài viết:
    264
    Đã được thích:
    28
    Nén file th2i làm cho máy chủ load nhanh hơn, nhẹ được băng thông. Mặc dù load nhanh nhưng liệu có anh hưởng tới seo ko, hay làm tốt cho seo hơn có bạn nào đã làm chia sẽ kinh nghiệm từng trải xem
     
  5. viviland

    viviland Thành viên

    Bài viết:
    84
    Đã được thích:
    6
    Cái này liệu có ổn không bạn, mình sợ tác động vào source lúc này google lại bấm nút biến cái site em thì khổ
     
  6. webhnahp

    webhnahp Dự bị

    Bài viết:
    22
    Đã được thích:
    13
    Nếu dùng Asp .Net thì có phương pháp Gzip rất hiệu quả, có thể nén xuống còn khoảng 3/10 dung lượng. ngoài ra còn có thể nén images, nén css, và nén script bỏ đi những ký tự k cần thiết.
     
    ki_no_ue thích bài này.
  7. trongkfc

    trongkfc Dự bị

    Bài viết:
    29
    Đã được thích:
    1
    mình rất cần cái này nhưng chưa hiểu lắm
     
  8. thietkewebplus

    thietkewebplus Banned

    Bài viết:
    25
    Đã được thích:
    1
    Mình đang xài Wordpress là chủ yếu nên cũng không cần lắm thủ thuật này!
     
  9. webhnahp

    webhnahp Dự bị

    Bài viết:
    22
    Đã được thích:
    13
    Bạn đừng hiểu sai ý của việc Gzip, việc Gzip chủ yếu được thiết lập trên máy chủ hoặc VPS, giúp giảm dung lượng tải xuống của website thông qua bộ nhớ Cache của Server và trình duyệt.
    Việc bạn nói đến ở đây là Gzip file css và Script đúng không ?
    Việc nén 2 dạng file này hay kể cả file txt có nghĩa là quá trình xóa bỏ các đoạn Comment Code, những khoảng trắng hay những đoạn mã sai. Bạn k thể nén thành một file .zar hay .zip ( đừng hiểu nhầm nhé)
    Còn images cũng vậy, nó được nén thành những định dạng ảnh có size nhỏ nhất mà vẫn đảm bảo độ sắc nét. Giảm tải dung lượng tải về.
    Chúc bạn thành công . nếu cần tư vấn về Gzip cứ liên hệ mình.

    WordPress mà bạn kia nói là k cần Gzip thì bạn quả thực k phải là người thiết kế web chuyên nghiệp rồi. Sory nếu quá lời
     
    Mr.N2 thích bài này.
  10. hoihoai

    hoihoai Banned

    Bài viết:
    18
    Đã được thích:
    0
    Đang mày mò,nhìn cứ như ma trận,hic...
     

Chia sẻ trang này