Tăng tốc độ hiển thị trang web  
 

(Post 10/08/2007) Tốc độ hiển thị trang web phụ thuộc vào nhiều yếu tố như tốc độ đường truyền, tốc độ xử lý của server, nội dung trang web và tốc độ xử lý của máy tính client. Để tăng tốc độ hiển thị trang web, có thể chia làm 3 phần để xử lý như sau:

- Tại server: Giảm thiểu những tính toán trên server, tối ưu CSDL, tạo bộ đệm, tối ưu chương trình...

- Đường truyền: Giảm thiểu dữ liệu truyền trên mạng bằng cách giảm kích thước các file hình, giảm yêu cầu trao đổi dữ liệu giữa server và client...

- Tại máy client: tối ưu mã html để trình duyệt hiển thị nhanh.

Với chiến lược trên, dưới đây là 10 thủ thuật có thể giúp tăng tốc độ hiển thị trang web.

1. Dùng CSS định nghĩa thuộc tính của các đối tượng trong trang web

Việc dùng CSS sẽ giúp cải thiện tốc độ tải trang web đáng kể. Trình duyệt sẽ chỉ tải file CSS về máy client một lần, những lần sau các trang web sử dụng file CSS này sẽ lấy ngay tại client. Việc tập trung toàn bộ định nghĩa thuộc tính vào file CSS giúp cho đoạn mã HTML trở nên ngắn gọn, rõ ràng đồng thời giúp giảm kích thước của trang web.

Một điểm tiện lợi nữa khi dùng file CSS là bạn có thể thay đổi màu sắc, giao diện của những trang web một cách nhanh chóng thông qua việc chỉnh sửa những thuộc tính trong file CSS.

2. Viết Javascript trên một trang và dùng cho nhiều trang

Điều này tương tự như kỹ thuật dùng file CSS cho mọi trang web. Ví dụ đoạn mã Javascript hiển thị quảng cáo dùng cho nhiều trang, nếu bạn viết toàn bộ mã Javascript trong một file rồi khai báo dùng nó ở các trang như sau:

<script type=”text/javascript” src=”quangcao.js”></script>

Giống như file CSS, trình duyệt chỉ tải về file này một lần.

3. Dùng AJAX

AJAX là chữ viết tắt của Asynchronous JavaScript And XML, đây là kỹ thuật dùng Javascript và XML để tối ưu việc trao đổi dữ liệu giữa client và server. Giả sử trang web của ban chứa rất nhiều thông tin, trong đó có một phần chứa 2 combobox: Quốc Gia và Thành Phố. Khi bạn chọn một quốc gia trên combobox 1, thì trong combobox 2 các thành phố tương ứng sẽ hiện ra. Theo cách thông thường, khi chọn một quốc gia, thông số của nó sẽ được gửi về server. Tại đây nội dung của trang web được tính toán lại rồi được gửi trả cho client với combobox2 chứa các thành phố của quốc gia được chọn. Như vậy chỉ một phần nhỏ trong trang web thay đổi mà phải tải về toàn bộ trang web và vẽ lại. Với AJAX, sau khi xử lý, server chỉ gửi trả kết quả cho client danh sách các thành phố chứ không phải toàn bộ trang web. Điều này cải thiện rất nhiều tốc độ đáp ứng của trang web.

4. Mạnh dạn bỏ những gì không cần thiết

Bỏ file flash, audio nếu chúng không thực sự cần thiết. Ngoài ra, đối với người lập trình web, việc sử dụng control của HTML thay cho server control của ASP/JSP... cũng giúp giảm được thời gian biên dịch (từ ASP/JSP... sang HTML).

5. Tránh dùng table lồng trong table

Khi bạn viết table lồng trong table, trình duyệt sẽ mất nhiều thời gian hơn để hiển thị trang web. Đây là điều ít người để ý nhất nhưng lại là một kỹ thuật cải thiện tốc độ hiển thị trang web đáng kể nhất. Khi bạn đặt một table bên trong một table, sẽ mất một khoảng thời gian khá dài để trình duyệt web duyệt qua toàn bộ mã lệnh bên trong mỗi table rồi mới làm đến việc trình bày lên màn hình cho người dùng xem. Nếu có thể, bạn hãy sử dụng CSS để tạo ra những dòng và cột cho trang web.

6. Không dùng table bao toàn bộ nội dung trang web

Nếu bạn dùng một table lớn để tạo layout cho trang web như sau:

<body>

<table width=”100%” border=”0”>

<tr>

<td colspan=”3”>Top</td>

</tr>

<tr>

<td>Left Menu</td>

<td>Content</td>

<td>Right Menu</td>

</tr>

<tr>
<td colspan=”3”>Footer</td>

</tr>

</table>

</body>

Trình duyệt sẽ phải tải toàn bộ thông tin của các thành phần trong bảng gồm: Top, LeftMenu, Content... về máy client, rồi xử lý tính toán toàn bộ control, khoảng trắng, hình ảnh... bên trong table. Khi mọi việc đã thực sự hoàn tất, trình duyệt web lúc đó mới hiển thị toàn bộ nội dung bên trong table lên màn hình cùng lúc.

Nếu không dùng table bao toàn bộ nội dung trang web, thì ngoài việc giảm được dung lượng trang web, thời gian xử lý hiển thị tại máy client, nó còn cho phép trình duyệt web hiển thị dần từng phần đã xử lý xong, cho người dùng có một vài thông tin để đọc trước, trong khi chờ những phần khác tiếp tục hiển thị, điều này tạo cho người dùng cảm giác trang web của bạn có tốc độ hiển thị nhanh.

7. Phân trang web thành các trang nhỏ hơn

Thay vì hiển thị toàn bộ thông tin trên 1 trang web, bạn hãy phân trang web thành nhiều mục nhỏ và hiển thị trên nhiều trang khác nhau. Giống như Yahoo Mail, tại mỗi thời điểm, các bạn chỉ có thể xem được tiêu đề của 50 email lên màn hình, để xem danh sách các email khác bạn phải nhấn liên kết next/previous...

Điều này không chỉ giúp tăng tốc độ hiển thị trang web mà trên thực tế, phần lớn người dùng thật sự không thích phải ngồi chờ vài phút để rồi xem một trang web có nội dung khá dài, phải dùng đến scroll bar mới xem được hết toàn bộ nội dung.

8. Xóa các khoảng trắng không cần thiết

Cố gắng xóa tất cả những khoảng trắng không cần thiết trong đoạn mã html. Hãy nhớ là một lần ấn phím space sẽ làm tăng kích thước trang web của bạn lên 1 byte. Việc loại bỏ khoảng trắng này có thể làm bằng tay hoặc dùng công cụ hỗ trợ như HTML code Cleaner (có thể tìm với Google).

9. Dọn dẹp mã chương trình cho sáng sủa

Hãy loại bỏ toàn bộ những thẻ trống như <div> </div> hay <font> </font>. Điều này không những giúp cải thiện dung lượng trang web, tăng tốc độ hiển thị mà còn giúp cho mã lệnh của bạn trở nên rõ ràng, giúp dễ dàng hiệu chỉnh hoặc nâng cấp.

10. Tối ưu hình ảnh

Hạn chế dùng hình ảnh: Hình ảnh giúp cho trang web của bạn trở nên sống động và lôi cuốn, tuy nhiên hình ảnh cũng chính là một trong những nguyên nhân làm chậm tốc độ hiển thị trang web.

Chỉ định rõ kích thước của hình ảnh: Khi trình duyệt hiển thị hình ảnh của trang web, nó phải biết kích thước của tấm ảnh để có thể chừa khoảng trống trên màn hình cho việc hiển thị tấm ảnh này, và việc hiển thị sẽ theo trình tự từ trên xuống. Nếu bạn không định rõ kích thước của tấm ảnh (ví dụ: <width=”125” height=”50”>), trình duyệt phải tải tấm ảnh trước để xác định kích thước rồi mới xử lý hiển thị nội dung. Điều này cũng tương tự như việc sử dụng table bao toàn bộ nội dung. Vì vậy nếu được, bạn nên sử dụng khai báo “width”, “height” để chỉ định trước kích cỡ của hình ảnh.

Giảm kích thước hình ảnh: Hãy giảm tối đa kích thước hình ảnh. Đôi khi bạn không cần phải trương lên trang web những hình ảnh có chất lượng thật cao mà có thể dùng thumbnail thay thế. Định dạng GIF/JPG là lựa chọn hàng đầu cho trang web vì kích thước nhỏ.

Ví dụ dùng CSS thay cho table

Trình bày 3 cách hiển thị một form đăng nhập đơn giản:
- Dùng bảng
- Không dùng bảng
- Không dùng bảng và dùng CSS

1. Dùng bảng
<table width=”300” border=”0” cellspacing=”0” cellpadding=”0”>
<tr>
<td align=”right”>Name:</td>
<td>&nbsp;<input type=”text” id=”name” /></td>
</tr>
<tr>
<td align=”right”>Email: </td>
<td>&nbsp;<input type=”text” id=”e-mail” /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;<input type=”submit” value=”Submit” /></td>
</tr>
</table>

Kết quả của đoạn mã lệnh trên sẽ như hình dưới đây

2. Không dùng bảng
<p><label for=”name”>Name</label> <input type=”text” id=”name” /></p>
<p><label for=”e-mail”>E-mail</label> <input type=”text” id=”e-mail” /></p>
<p><input type=”submit” value=”Submit” /></p>

Kết quả của đoạn mã lệnh trên sẽ như hình dưới đây

3. Dùng CSS
Từ cách 2 ở trên nếu bạn định nghĩa CSS cho đối tượng Label và Submit Input như dưới đây bạn sẽ có kết quả như cách 1 mà không cần sử dụng bảng.
label
{
width: 4em;
float: left;
text-align: right;
margin-right: 0.5em;
display: block
}
.submit input
{
margin-left: 4.5em;
}

Kết quả sau khi định nghĩa CSS cho đối tượng Label và Submit Input

Bây giờ, nếu muốn thêm màu và tạo khung bạn có thể sử dụng tag <fieldset></fieldset> và <legend> như dưới đây:
Khai báo CSS
fieldset
{
border: 1px solid #781351;
width: 20em
}
legend
{
color: #fff;
background: #ffa20c;
border: 1px solid #781351;
padding: 2px 6px
}
Mã HTML
<fieldset>
<legend>This is my form</legend>
<p><label for=”name”>Name</label> <input type=”text” id=”name” /></p>
<p><label for=”e-mail”>E-mail</label> <input type=”text” id=”e-mail” /><br /></p>
<p><input type=”submit” value=”Submit” /></p>
</fieldset>

Tag <legend> bên trong tag <fieldset> sẽ tạo ra phần header cho khung bao quanh nội dung form, kết quả sẽ như hình dưới đây.

Trên đây chỉ là các kỹ thuật tối ưu cơ bản cho mã HTML. Hẹn gặp lại các bạn trong các bài viết sau về kỹ thuật tối ưu trang web với mã lệnh cơ sở dữ liệu, VB, C#, JSP...

Duong Quy Phuong
-----------------------------------------------
Tham khảo:
1. http://www.webcredible.co.uk/user-friendly-resources/css/css-forms.shtml
2. http://www.webweaver.nu/html-tips/load-time.shtml

(theo PC World VN)


 
 

 
     
 
Công nghệ khác:


Các phương pháp lọc và phòng chống spamWindows Vista: từ A đến Z
Cách chuyển mã văn bản với UnikeyKhắc phục những trục trặc thường gặp
Bảo mật 2006: Khủng hoảng niềm tinTruy cập từ xa qua Internet
  Xem tiếp    
 
Lịch khai giảng của hệ thống
 
Ngày
Giờ
T.Tâm
TP Hồ Chí Minh
Hà Nội
 
   
New ADSE - Nhấn vào để xem chi tiết
Mừng Sinh Nhật Lần Thứ 20 FPT-APTECH
Nhấn vào để xem chi tiết
Bảng Vàng Thành Tích Sinh Viên FPT APTECH - Nhấn vào để xem chi tiết
Cập nhật công nghệ miễn phí cho tất cả cựu sinh viên APTECH toàn quốc
Tiết Thực Vì Cộng Đồng
Hội Thảo CNTT
Những khoảnh khắc không phai của Thầy Trò FPT-APTECH Ngày 20-11