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

479

Chương 12: Dịch vụ Web XML và Remoting

public string GetDate() {

return DateTime.Now.ToString();

}

}

Nếu phương thức web của bạn nhận nhiều đối số, ASP.NET sẽ sử dụng lại giá trị đã được lưu
chỉ khi các giá trị đối số cũng giống như thế. Nếu bạn có một phương thức nhận tầm giá trị
rộng thì caching trở nên không hiệu quả và đôi khi trở nên lãng phí, vì có quá nhiều thông tin
cần được lưu nhưng ít khi được sử dụng lại. Ví dụ, sử dụng caching trong một phương thức
web thực hiện phép tính dựa trên đầu vào dạng số không phải là một sự lựa chọn tốt. Trái lại,
sử dụng caching trong một phương thức web nhận giá trị ID của một nhóm nhỏ sản phẩm
chắc chắn là một sự lựa chọn tốt. Bao giờ cũng vậy, response-caching bỏ qua mã lệnh của
bạn, khiến nó trở nên không đủ tư cách nếu phương thức web của bạn cần thực hiện các hành
động khác (chẳng hạn ghi nhật ký), hay phương thức web của bạn phụ thuộc vào một số thông
tin khác ngoài các đối số được đưa vào (chẳng hạn thông tin xác thực của người dùng hay dữ
liệu trong phiên làm việc).

Một hạn chế của response-caching là nó chỉ cho phép bạn sử dụng lại dữ liệu
trong phạm vi của một phương thức web. Nếu bạn muốn sử dụng lại dữ liệu
trong nhiều phương thức web khác nhau, kỹ thuật data-caching sẽ hiệu quả hơn.

3.

3.

S d ng k thu t data-caching trong d ch v Web XML

ử ụ

S d ng k thu t data-caching trong d ch v Web XML

ử ụ

Bạn cần chạy phương thức web của bạn nhưng vẫn sử dụng một số thông tin đã
được lưu. Hoặc, bạn muốn nâng cao hiệu năng của dịch vụ Web XML
bằng cách
lưu trữ một số dữ liệu, và cần sử dụng lại dữ liệu này trong một số phương thức.

Bạn có thể lưu bất cứ đối tượng nào vào cache bằng phương thức

Insert

của đối

tượng

System.Web.Caching.Cache

. Bạn có thể truy xuất cache thông qua thuộc

tính tĩnh

HttpContext.Current

.

Cách thức làm việc của data-caching với một dịch vụ Web XML cũng giống như với một trang
web. Bạn có thể lưu trữ dữ liệu vào cache bằng mã trang web và lấy nó về trong một dịch vụ
Web XML, hay ngược lại. Để có thêm thông tin về data-caching và các kiểu chính sách hết
hiệu lực (expiration policy) mà nó hỗ trợ, bạn hãy tham khảo mục 7.15.
Điểm khác biệt duy nhất giữa caching trong một dịch vụ Web XML và caching trong một
trang web là: Trong dịch vụ Web XML, bạn không thể thu lấy đối tượng

Cache

như một thuộc

tính nội tại; thay vào đó, bạn cần truy xuất cache thông qua thuộc tính tĩnh

HttpContext.Current

.

Ví dụ dưới đây trình bày một dịch vụ Web XML với hai phương thức web:

GetProductCatalog

: Trả về một

DataSet

với các thông tin về sản phẩm.

DataSet

này có

thể được lấy từ cache hoặc được sinh tự động (nếu cần) bằng hàm

GetCustomerDataSet

.

GetProductList

: Cũng sử dụng

DataSet

và hàm

GetCustomerDataSet

nhưng chỉ lấy một

phần thông tin (tên sản phẩm).

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.