Tăng tốc website theo Yahoo! (Phần 3)

2. Sử dụng mạng lưới phân bố nội dung (CDN)

CDN, viết tắt của Content Delivery Network - tạm dịch là mạng lưới phân bố nội dung - là 1 tập hợp các server được đặt ở nhiều vị trí (có thể hiểu là quốc gia, hay vùng lãnh thổ) khác nhau được dùng để cung cấp nội dung cần thiết cho người dùng 1 cách hiệu quả hơn. Quy tắc này dựa trên 1 sự thực là nếu server lưu giữ nội dung càng gần người dùng thì thời gian tải nội dung từ server đó sẽ càng nhanh, và ngược lại.

Nên nhớ rằng khoảng cách địa lí (vật lí) giữa người dùng và server có ảnh hưởng rất lớn tời thời gian hồi báo từ phía server. Yêu cầu của người dùng sẽ đi qua khá nhiều nút mạng trung gian trước khi tới được đích. Nếu muốn kiểm chứng các nút mạng từ máy tính của mình tới 1 server nào đó, bạn có thể dùng tiện ích traceroute. Bạn sẽ nhận ra rằng nếu số lượng nút mạng càng nhiều thì thời gian hồi báo càng tăng lên. Số lượng nút mạng trung gian thông thường phụ thuộc vào khoảng cách địa lí giữa người dùng và server, do đó việc phân bố nội dung của bạn ra nhiều server, phủ khắp các vùng địa lí mà bạn biết chắc phần lớn người dùng website của bạn ở đó, sẽ làm tốc độ tải website của bạn cải thiện rất nhiều.

Vì thế, việc cân nhắc lựa chọn server cho website của bạn sẽ phụ thuộc phần lớn vào lượng người dùng mà bạn nhắm đến. Một cách làm khá quen thuộc là nếu website của bạn bằng tiếng Việt, nhắm đến người dùng Việt Nam thì bạn nên chọn server đặt tại Việt Nam; nếu website bằng tiếng Anh, thì server nên đặt tại Mỹ, Anh hoặc Đức, ... Tất nhiên để biết chắc rằng phần lớn người ta đến với website bạn từ đâu, bạn nên sử dụng 1 công cụ theo dõi website như Google Analytics, nó có thống kê khá chi tiết số lượng người dùng theo từng quốc gia. Nếu bạn muốn biết sơ lược hơn thì có thể tạm sử dụng Alexa, tuy nhiên thống kê ở đó có thể không chính xác lắm do quy tắc tính toán dựa trên thanh công cụ Alexa Toolbar của nó.

Nhưng đó mới chỉ là cách lựa chọn 1 server (hoặc host), còn làm thế nào để có thể sử dụng nhiều server cho mục đích này. Một điều khá hiển nhiên là bạn phải sở hữu nhiều server cho mạng lưới phân bố nội dung của mình, điều này sẽ tiêu tốn của bạn số tiền lớn, và không phải ai cũng làm được. Ngay cả các công ty cũng khó có khả năng, chứ chưa nói đến cá nhân. Trên thực tế chỉ có 1 số công ty lớn mới có thể thực hiện được điều đó.

Tuy vậy, chúng ta vẫn có thể tận dụng những mạng lưới phân bố nội dung có sẵn từ các "đại gia" như Google và Yahoo! để phục vụ cho mục đích của mình.

Bạn có sử dụng jQuery, 1 javascript framework rất nổi tiếng, trong các ứng dụng web? Hay prototype, MooTools, Dojo, script.aculo.us hay 1 sản phẩm nổi tiếng của Yahoo! - YUI? Vậy thì bạn đã gặp may, vì Google đã lưu trữ những framework này trên hệ thống server của nó. Bạn cũng biết là hệ thống server của Google phủ khắp toàn thế giới, nên người dùng website của bạn sẽ được tải những framework này từ những nơi gần họ nhất. Tất cả những gì bạn cần làm là chỉ cần sửa 1 dòng liên kết nhỏ đến các framework này tương tự như:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript">
</script>


thay cho dòng liên kết cũ trong thẻ HEAD. Hoặc bạn cũng có thể gọi bằng hàm loader(); của Google để có thể nạp được nhiều framework 1 lúc. Về chi tiết bạn có thể tham khảo thêm tại trang của Google AJAX Libraries API.

Đối với người dùng WordPress, có 2 plugin giúp bạn làm tự động công việc trên: Use Google LibrariesGoogle AJAX Libraries API Plugin. Cả 2 plugin này đều làm công việc giống nhau: "lắng nghe" các script được WordPress nạp và thay thế chúng bằng các script do Google cung cấp nếu có.

Nếu bạn dùng các tiện ích trong thư viện YUI của Yahoo, hoặc dùng các thư viện khác trong Google API (chúng có rất nhiều!) thì hãy để ý tới Documents của nó để sử dụng. Có thể kể ra đây vài thư viện được người ta hay dùng như:

1. Reset CSS để reset lại các thuộc tính của các thẻ HTML bằng CSS
2. Base CSS dùng để thiết lập các thuộc tính cơ bản (chuẩn) cho các thẻ HTML bằng CSS
3. TreeView dùng để tạo danh mục dạng cây, có thể đóng mở được
4. Color Picker: dùng để lấy màu
5. Calendar dùng để tạo lịch
6. Google Ajax Feed API dùng để đọc nội dung Feed với tương tác bằng Ajax
7. Google Ajax Language API dùng để dịch 1 phần văn bản được chọn
...
và còn rất nhiều nữa đang chờ bạn khám phá.Việc sử dụng chúng không chỉ giúp bạn truyền tải tới người dùng thông qua mạng lưới phân bố nội dung của Google hay Yahoo! mà còn giúp bạn tiết kiệm công sức lập trình rất nhiều.

(Còn tiếp)

Không có nhận xét nào :

Đăng nhận xét