1. Hạn chế HTTP requests. 2. Sử dụng CDN (Content Delivery Network = Mạng giao dịch nội dung: Hệ thống các máy tính được kết nối với nhau qu...
1. Hạn chế HTTP requests.
2. Sử dụng CDN (Content Delivery Network = Mạng giao dịch nội dung: Hệ thống các máy tính được kết nối với nhau qua Internet để truyền nội dung tới người sử dụng).
3. Đưa thêm Expires header.
4. Nén các thành phần (Gzip, hay GNU zip, là ứng dụng phần mềm miễn phí được dùng để nén file).
5. Đưa CSS lên đầu.
6. Chuyển JS (JavaScript) xuống cuối.
7. Tránh các biểu thức CSS.
8. Đặt CSS và JS ở bên ngoài (external files).
9. Giảm quá trình tra cứu DNS.
10. Thu nhỏ JS.
11. Tránh chuyển hướng site (redirect).
12. Loại bỏ các đoạn script trùng lặp (duplicate scripts).
13. Tắt ETags.
14. Làm cho AJAX nhỏ và có thể lưu trữ được (cacheable).
Công cụ để hỗ trợ: YSLow Plugin for Firefox (Link: http://developer.yahoo.com/yslow/, nói chung công cụ đó không ổn định lắm, cùng một site mà mỗi lúc kết luận 1 khác,mình chưa biết cách dùng)
1. Minimize HTTP Requests
Giảm tối đa yêu cầu đến server là nguyên tắc đầu tiên mà Yahoo đưa ra. Một trang web chứa bao nhiêu đối tượng (CSS, HTML, hình ảnh…) thì khi người dùng truy cập bấy nhiêu yêu cầu (request) được gửi đến server. Chúng ta đã biết, càng nhiều yêu cầu thì càng lâu đáp ứng, hãy thử những cách sau để giảm yêu cầu đến server.
* Nếu có thể, gộp những hình ảnh nền (background-image) để giảm số lần yêu cầu xuống.
* Sử dụng background-image trong CSS tối đa có thể để hiển thị hình ảnh
Việc này rất có lợi cho lần đầu viếng thăm của người dùng bằng cách để lại ấn tượng tốt về tốc độ truy cập.
2. Use a Content Delivery Network
Thời gian đáp ứng hay hiểu một cách khác là tốc độ truy cập của website phụ thuộc vào khoảng cách địa lí của người xem với server. Trong trường hợp nhất định bạn nên chọn một server gần với đối tượng bạn đọc nhất. Đó là lựa chọn đúng đắn đối với những cá nhân hoặc công ty nhỏ.
Nhưng với những mục đích lớn lao hơn, ở đây là lượng độc giả lớn và phủ khắp. Bạn nên sử dụng Content Delivery Network (CDN). CDN là một mạng lưới các server được bố trí rộng rãi. Mỗi đối tượng độc giả sẽ được phục vụ bởi một server nhất định sao cho đảm bảo thời gian đáp ứng là cao nhất. Nhiều công ty lớn đều có CDN riêng, nhưng nếu bạn đặt hiệu quả chi phí lên cao thì có thể lựa chọn những nhà cung cấp sau: Akamai Technologies, Mirror Image Internet, or Limelight Networks.
3. Add an Expires Header
Trình duyệt nào cũng có bộ nhớ đệm cho mình. Điều này giúp hạn chế yêu cầu đến Server như ở điều 1 đã nói. Cơ chế hoạt động cơ bản là những gì không thay đổi thì trình duyệt sẽ không yêu cầu server để lấy phiên bản mới nữa. Hãy dùng “Expires header” trong HTTP Respond để báo với trình đuyệt về thời gian tối đa mà trình duyệt có thể cache thông tin đó.
Với những đối tượng cố đinh như javascripts, hình ảnh, bạn có thể để thời gian cache lâu hơn một chút. Bạn đừng lo về vấn đề update cache khi thay đổi bằng cách thay đổi tên đối tượng. Trình duyệt sẽ tự động cập nhật.
Ví dụ: Yahoo_2_1_3.js
4. Gzip Components
Đa số trình duyệt đều hỗ trợ Gzip với HTTP Respond. Vì thế, sử dụng Gzip để nén dữ liệu trả lại người dùng là rất khả thi và hiệu quả. Gzip giúp tăng tốc độ truy cập website và giảm tối thiểu băng thông của cả người dùng lẫn server.
5. Put CSS at the Top
Trong quá trình theo dõi, nghiên cứu tối ưu hóa Yahoo!, những nhà phát triển đã phát hiện ra rằng đặt CSS ở trên cùng sẽ giúp website hiển thị nhanh và tốt hơn đặc biệt trong trường hợp website của bạn lớn và có nhiều đối tượng được đặt ở trên đó.
Trường hợp nếu bạn đặt ở giữa hoặc ở cuối thì trình duyệt sẽ sử dụng giao diện mặc định sau đó đổi chúng lại khi tải xong CSS của bạn. Như vậy việc xử lí sẽ gia tăng và dĩ nhiên là tốc độ sẽ giảm xuống rất nhiều. Bên cạnh đó, người dùng sẽ cảm thấy khó chịu vì họ sẽ phải nhìn một trang web chưa có định dạng gì khi truy cập. Đặc biệt một số phiên bản trình duyệt còn cấm việc đặt CSS ở dưới cùng.
6. Move Scripts to the Bottom
Thông thường Scripts chỉ nên đặt trên dùng nếu ảnh hưởng của nó bao quát toàn trang mà thôi. Còn nếu khôngYahoo khuyên bạn nên để dưới cùng của trang đối với những mục đích không quan trọng lắm (thống kê, hiệu ứng…).
Trường hợp bạn dùng Scripts cho một đối tượng thì bạn nên đặt Scripts lên trên đối tượng đó (nếu có thể) thay vì bạn để nó vào thẻ như nhiều trang đã hướng dẫn.
7. Make JavaScript and CSS External
Có khi mình tự đặt câu hỏi là việc chèn Javascripts và CSS thẳng hay để liên kết bên ngoài tốt hơn? Câu trả lời của Yahoo ở đây là nên để liên kết bên ngoài. Vì một lí do đơn giản những file đó sẽ được cache lại ở phía trình duyệt. Về phía người dùng họ sẽ không phải tải lại chúng lần nữa giảm được băng thông cho cả họ và server. Đồng thời tăng tốc duyệt trang web.
2. Sử dụng CDN (Content Delivery Network = Mạng giao dịch nội dung: Hệ thống các máy tính được kết nối với nhau qua Internet để truyền nội dung tới người sử dụng).
3. Đưa thêm Expires header.
4. Nén các thành phần (Gzip, hay GNU zip, là ứng dụng phần mềm miễn phí được dùng để nén file).
5. Đưa CSS lên đầu.
6. Chuyển JS (JavaScript) xuống cuối.
7. Tránh các biểu thức CSS.
8. Đặt CSS và JS ở bên ngoài (external files).
9. Giảm quá trình tra cứu DNS.
10. Thu nhỏ JS.
11. Tránh chuyển hướng site (redirect).
12. Loại bỏ các đoạn script trùng lặp (duplicate scripts).
13. Tắt ETags.
14. Làm cho AJAX nhỏ và có thể lưu trữ được (cacheable).
Công cụ để hỗ trợ: YSLow Plugin for Firefox (Link: http://developer.yahoo.com/yslow/, nói chung công cụ đó không ổn định lắm, cùng một site mà mỗi lúc kết luận 1 khác,mình chưa biết cách dùng)
1. Minimize HTTP Requests
Giảm tối đa yêu cầu đến server là nguyên tắc đầu tiên mà Yahoo đưa ra. Một trang web chứa bao nhiêu đối tượng (CSS, HTML, hình ảnh…) thì khi người dùng truy cập bấy nhiêu yêu cầu (request) được gửi đến server. Chúng ta đã biết, càng nhiều yêu cầu thì càng lâu đáp ứng, hãy thử những cách sau để giảm yêu cầu đến server.
* Nếu có thể, gộp những hình ảnh nền (background-image) để giảm số lần yêu cầu xuống.
* Sử dụng background-image trong CSS tối đa có thể để hiển thị hình ảnh
Việc này rất có lợi cho lần đầu viếng thăm của người dùng bằng cách để lại ấn tượng tốt về tốc độ truy cập.
2. Use a Content Delivery Network
Thời gian đáp ứng hay hiểu một cách khác là tốc độ truy cập của website phụ thuộc vào khoảng cách địa lí của người xem với server. Trong trường hợp nhất định bạn nên chọn một server gần với đối tượng bạn đọc nhất. Đó là lựa chọn đúng đắn đối với những cá nhân hoặc công ty nhỏ.
Nhưng với những mục đích lớn lao hơn, ở đây là lượng độc giả lớn và phủ khắp. Bạn nên sử dụng Content Delivery Network (CDN). CDN là một mạng lưới các server được bố trí rộng rãi. Mỗi đối tượng độc giả sẽ được phục vụ bởi một server nhất định sao cho đảm bảo thời gian đáp ứng là cao nhất. Nhiều công ty lớn đều có CDN riêng, nhưng nếu bạn đặt hiệu quả chi phí lên cao thì có thể lựa chọn những nhà cung cấp sau: Akamai Technologies, Mirror Image Internet, or Limelight Networks.
3. Add an Expires Header
Trình duyệt nào cũng có bộ nhớ đệm cho mình. Điều này giúp hạn chế yêu cầu đến Server như ở điều 1 đã nói. Cơ chế hoạt động cơ bản là những gì không thay đổi thì trình duyệt sẽ không yêu cầu server để lấy phiên bản mới nữa. Hãy dùng “Expires header” trong HTTP Respond để báo với trình đuyệt về thời gian tối đa mà trình duyệt có thể cache thông tin đó.
Với những đối tượng cố đinh như javascripts, hình ảnh, bạn có thể để thời gian cache lâu hơn một chút. Bạn đừng lo về vấn đề update cache khi thay đổi bằng cách thay đổi tên đối tượng. Trình duyệt sẽ tự động cập nhật.
Ví dụ: Yahoo_2_1_3.js
4. Gzip Components
Đa số trình duyệt đều hỗ trợ Gzip với HTTP Respond. Vì thế, sử dụng Gzip để nén dữ liệu trả lại người dùng là rất khả thi và hiệu quả. Gzip giúp tăng tốc độ truy cập website và giảm tối thiểu băng thông của cả người dùng lẫn server.
5. Put CSS at the Top
Trong quá trình theo dõi, nghiên cứu tối ưu hóa Yahoo!, những nhà phát triển đã phát hiện ra rằng đặt CSS ở trên cùng sẽ giúp website hiển thị nhanh và tốt hơn đặc biệt trong trường hợp website của bạn lớn và có nhiều đối tượng được đặt ở trên đó.
Trường hợp nếu bạn đặt ở giữa hoặc ở cuối thì trình duyệt sẽ sử dụng giao diện mặc định sau đó đổi chúng lại khi tải xong CSS của bạn. Như vậy việc xử lí sẽ gia tăng và dĩ nhiên là tốc độ sẽ giảm xuống rất nhiều. Bên cạnh đó, người dùng sẽ cảm thấy khó chịu vì họ sẽ phải nhìn một trang web chưa có định dạng gì khi truy cập. Đặc biệt một số phiên bản trình duyệt còn cấm việc đặt CSS ở dưới cùng.
6. Move Scripts to the Bottom
Thông thường Scripts chỉ nên đặt trên dùng nếu ảnh hưởng của nó bao quát toàn trang mà thôi. Còn nếu khôngYahoo khuyên bạn nên để dưới cùng của trang đối với những mục đích không quan trọng lắm (thống kê, hiệu ứng…).
Trường hợp bạn dùng Scripts cho một đối tượng thì bạn nên đặt Scripts lên trên đối tượng đó (nếu có thể) thay vì bạn để nó vào thẻ như nhiều trang đã hướng dẫn.
7. Make JavaScript and CSS External
Có khi mình tự đặt câu hỏi là việc chèn Javascripts và CSS thẳng hay để liên kết bên ngoài tốt hơn? Câu trả lời của Yahoo ở đây là nên để liên kết bên ngoài. Vì một lí do đơn giản những file đó sẽ được cache lại ở phía trình duyệt. Về phía người dùng họ sẽ không phải tải lại chúng lần nữa giảm được băng thông cho cả họ và server. Đồng thời tăng tốc duyệt trang web.
No comments: