Nhiều bạn cho rằng web ASP.NET có tốc độ xử lý dữ liệu chậm hơn so với web làm bằng các công nghệ khác như PHP hay JSP nhưng thực tế không phải hoàn toàn như vậy. Nếu biết cách tối ưu code bạn sẽ thấy điều đó là không chính xác.
Mình xin giới thiệu cho các bạn tổng hợp các cách cải thiện tốc độ và hiệu suất cho web ASP.NET. Đây là những thủ thuật mình học được và tổng hợp từ một số tài liệu và diễn đàn trên mạng.
Bài viết nằm trong Serie Tối ưu hiệu suất và tốc độ website ASP.NET
1. Luôn sử dụng thuộc tính Page.IsValid.
private void ValidateBtn_Click(Object Sender, EventArgs E) { Page.Validate(); if (Page.IsValid == true) lblOutput.Text = "Page is Valid!"; else lblOutput.Text = "Some required fields are empty."; }
Nếu một trang mà bạn sử dụng các input control và cần phải validate các control này, bạn hãy ghi nhớ luôn sử dụng Page.IsValid trước khi cho run 1 đoạn code nào đó liên quan đến dữ liệu trên form như vậy sẽ không phải mất thời gian check lỗi validate tại server.
2. Nên sử dụng các validation controls
<asp:TextBox runat="server" id="txtName" /> <asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="txtName" errormessage="Please enter your name!" />
Như RequiredFieldValidator, RegularFieldValidator,… cho các input control. Sử dụng các control này sẽ tiện hơn so với dùng code javascript và có thể truy cập được dữ liệu ở phía server. Nhưng nó vẫn chậm hơn so với việc sử dụng code javascript.
3. Validate form bằng javascript.
Cách này khá giống cách trên nhưng chúng ta sẽ sử dụng validate input control bằng javascript( tức là tiến hành kiểm tra ngay trên máy client). Cách này bạn phải bỏ chút công sức ra code. Hiện nay cũng có 1 số plugin jquery hỗ trợ validate form phổ biến nhất đó là plugin validation. Nhưng nó sẽ không hỗ trợ được hết các trường hợp kiểm tra trên form.
4. Sử dụng thuộc tính IsPostBack.
private void Page_Load() { if (!IsPostBack) { // Validate initially to force asterisks // to appear before the first roundtrip. Validate(); } }
Đây là một thuộc tính giúp bạn giảm việc truy xuất và xử lí dữ liệu trên form. Nó sẽ giúp bạn đảm bảo rằng dữ liệu chỉ cần load 1 lần.
5. Chỉ sử dụng ViewState khi cần thiết.
https://msdn.microsoft.com/en-us/library/ms972976.aspx
ViewState là một điểm mạnh của ASP.NET nhưng mặt khác nó cũng là điểm yếu của nó. ViewState giúp bạn lưu giữ lại trạng thái cũng như dữ liệu trên form nhưng chính vì vậy mà nó sẽ làm chậm tốc độ web lại và tăng thêm dung lượng cho trang được load. Hãy sử dụng thuộc tính EnableViewState=”false” khi bạn muốn không sử dụng nó.
6. Xóa bỏ những namespace không cần thiết.
Để sử dụng những class cần thiết cho việc code bạn thường khai báo sử dụng bằng từ khóa using. Nhưng khi bạn thay đổi code thì thường không để ý đến việc xóa những câu khai báo thừa đó đi.
7. Chỉ khai báo biến khi cần dùng đến.
Nhiều bạn khi lập trình thường khai báo một số các biến để sử dụng nhưng sau một lúc loay hoay lại không sử dụng đến. Như vậy sẽ rất lãng phí bộ nhớ.
8. Sử dụng caching.
Việc caching sẽ giúp bạn lưu trữ lại dữ liệu đã được request và sử dụng nó cho lần hiển thị sau thay vì phải request đến server lần nữa để lấy lại cùng dữ liệu này.
9. Buffering Data.
https://msdn.microsoft.com/en-us/library/ms178708(v=vs.80).aspx
Việc truyền tải dữ liệu từ server đến client là rất quan trọng. Việc buffering data là một trong những khâu trong quy trình đó. Bạn có thể sử dụng nó nếu bạn muốn qua thuộc tính Response.Buffer= true -> tiến hành lấy hết dữ liệu và gửi 1 lần, Response.Buffer=false -> lấy được bao nhiêu gửi bấy nhiêu.
10. Hạn chế việc ép kiểu không cần thiết.
Khi dữ liệu đã ở loại bạn cần thì việc ép kiểu nó về dạng đó là không cần thiết.
Phần tiếp:
- Tối ưu hiệu suất và tốc độ website ASP.NET P2
- Tối ưu hiệu suất và tốc độ website ASP.NET P3
- Tối ưu hiệu suất và tốc độ website ASP.NET P4
- Tối ưu hiệu suất và tốc độ website ASP.NET P5