CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 275

275

Chương 7: ASP.NET và Web Form

// Thêm điều kiểm vào Panel.

pnl.Controls.Add(ctrl);

}

}

Trong Visual Studio .NET, lớp điều kiểm người dùng luôn có hiệu lực vì các lớp đã được biên
dịch thành .dll. Tuy nhiên, nếu điều kiểm người dùng không phải một bộ phận của dự án, bạn
sẽ không có lớp điều kiểm người dùng và bạn sẽ không thể truy xuất bất kỳ thuộc tính hay
phương thức nào của điều kiểm người dùng. Để khắc phục vấn đề này, bạn có thể tạo một lớp
cơ sở hoặc một giao diện định nghĩa các chức năng cơ bản để có thể truy xuất vào bất kỳ điều
kiểm người dùng tùy biến nào.

Để tìm hiểu kỹ hơn về kỹ thuật này, bạn hãy download IBuySpy portal case study
tại

[

http://www.asp.net/IBS_Portal]

. Nó trình bày một layout khả-tùy-biến-cao

được tạo dựng hoàn toàn từ các điều kiểm người dùng được-nạp-động.

14.

14.

S d ng page-caching và fragment-caching

ử ụ

S d ng page-caching và fragment-caching

ử ụ

Bạn cần tăng hiệu năng bằng cách lưu giữ các trang được trả về.

Thêm chỉ thị

OutputCache

vào trang hoặc điều kiểm người dùng, và chỉ định

trang sẽ được giữ trong cache bao lâu (tính theo giây).

Việc sử dụng caching vừa phải có thể giảm bớt hiệu ứng thắt cổ chai (chẳng hạn, truy xuất cơ
sở dữ liệu) và tăng toàn bộ hiệu năng của một website. Caching có hiệu quả lớn trong một site
có lưu lượng cao. Ví dụ, xét xem điều gì sẽ xảy ra khi bạn lưu giữ một trang hiển thị kết quả
của một truy vấn cơ sở dữ liệu. Nếu bạn lưu giữ trang này trong 1 phút, và trang này nhận
được 10 yêu cầu trong khoảng thời gian đó, bạn sẽ giảm được 10 lần chi phí truy xuất cơ sở
dữ liệu.
Bạn có thể hiện thực caching một cách dễ dàng—chỉ cần thêm chỉ thị

OutputCache

vào trang

web. Chỉ thị này phải được thêm vào file .aspx, chứ không phải file .cs. Ví dụ dưới đây lưu
giữ một trang trong 20 giây:

<%@ OutputCache Duration="20" VaryByParam="None" %>

Và ví dụ dưới đây lưu giữ một trang trong 20 giây nhưng vẫn duy trì các bản sao tùy vào giá
trị của các đối số chuỗi truy vấn:

<%@ OutputCache Duration="20" VaryByParam="*" %>

Bạn có thể thử nghiệm caching bằng một trang hiển thị ngày và giờ trên server. Bạn sẽ nhận
thấy rằng các yêu cầu đến sau (đối với trang này) không khiến cho thời gian được tạo mới.
Theo đó, thời gian cũ sẽ được hiển thị cho đến khi trang hết hiệu lực.
Output-caching không hiệu quả trong các trường hợp sau đây:

Trang của bạn cần tự tùy biến y theo các thiết lập đặc thù của người dùng như thông tin
xác thực (đối tượng

User

) hoặc trạng thái (đối tượng

Session

). Trong trường hợp này,

nó không tạo cảm giác sử dụng lại cùng một trang cho tất cả các người dùng.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.