2010-08-10 32 views
6

ViewState CachingCaching viewstate?

Đây là một ý tưởng tuyệt vời, nhưng nó được triển khai cho SharePoint. Tự hỏi nếu có một giải pháp cho các trang asp.net thường xuyên, mà làm như vậy, lưu trữ viewsstates.

+0

Điều này khá phức tạp. Bạn sẽ làm gì nếu máy chủ của bạn khá bận (vì vậy có nhiều người dùng có trạng thái xem trang đang được lưu trữ) và bộ đệm ẩn trạng thái xem của bạn hết hạn trước khi bạn đăng lại biểu mẫu của mình? –

+0

@Robert chỉ sử dụng bộ nhớ cache hoặc phương tiện lưu giữ lâu bền không hết hạn. –

Trả lời

8

Nó thực sự khá đơn giản! Bạn chỉ cần ghi đè lên hai phương pháp này trên trang của bạn:

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

Trong đó, bạn có thể lấy cây đối tượng ViewState, serialize nó tuy nhiên bạn muốn và lưu nó bất cứ nơi nào bạn muốn (Session, SQL, vv), và thay vì trả lại toàn bộ blob được tuần tự hóa cho trình duyệt, bạn chỉ cần trả về một ID duy nhất mà bạn có thể sử dụng để tìm lại nó lần sau.

Ý tưởng này được trình bày chi tiết siêng năng ở đây: http://msdn.microsoft.com/en-us/library/ms972976.aspx

0

Đó là hoàn toàn có thể thông qua trọng dưới đây hai phương pháp trong

asp.net System.Web.UI.Page: 

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

Trong khi ở phương pháp đầu tiên bạn cần phải kiểm tra xem ViewState đã tồn tại trong bộ nhớ cache và nếu không lưu nó ở đó, trong phương pháp thứ hai bạn có thể lấy nó nếu nó đã ở đó.

Bạn có thể ghép nối SessionID và tên trang làm khóa cho bộ đệm chế độ xemStateKey.