2008-09-22 29 views
16

Tôi thường vô hiệu hóa ViewState cho các điều khiển ASP.net trừ khi tôi biết rõ ràng tôi sẽ yêu cầu xem trạng thái cho chúng. Tôi đã thấy rằng điều này có thể làm giảm đáng kể kích thước trang của HTML được tạo ra.Khi nào bật/tắt Viewstate

Đây có phải là phương pháp hay không? Khi nào nên được bật hoặc tắt?

Trả lời

19

Vâng, đó là một ý tưởng rất hay. Người ta có thể cho rằng nó nên được vô hiệu hóa theo mặc định của Microsoft, giống như bộ nhớ đệm.

Để xem mức độ nghiêm trọng của Viewstate về kích thước tăng lên, bạn có thể sử dụng công cụ có tên là Viewstate Analyzer. Điều này đặc biệt hữu ích khi bạn có một ứng dụng hiện có được phát triển với Viewstate được kích hoạt.

Một lý do chính đáng khác để vô hiệu hóa ViewState là nó thực sự khó vô hiệu hóa ở giai đoạn sau, khi bạn có vô số thành phần tùy thuộc vào nó.

5

Tôi nghĩ đó là thực hành tốt. Nhiều nhà phát triển ASP.NET không biết rằng khung nhìn của họ thêm hành lý to lớn vào HTML đang được gửi tới trình duyệt của người dùng của họ.

4

Đó là một phương pháp hay. Trừ khi bạn sử dụng các giá trị ViewState trên postbacks, hoặc chúng được yêu cầu bởi một số kiểm soát phức tạp chính nó là ý tưởng tốt để lưu trên ViewState như một phần của những gì sẽ được gửi cho khách hàng.

0

_Viewstate có thể tăng số lượng byte cần thiết một cách không cần thiết. Vì vậy, trừ khi dữ liệu sẽ được sử dụng vào lần sau, bạn nên tắt nó đi.

4

Bạn có thể tìm thấy thông tin có trong số "ASP.NET State Management Recommendations" article trên MSDN hữu ích để đưa ra quyết định.

Nói chung trong ASP.NET 2.0 trở lên vô hiệu hóa ViewState là ít phá hoại do sự ra đời của nhà nước kiểm soát để lưu trữ informaton cần thiết cho việc nâng cao sự kiện vv

2

Chắc chắn là một ý tưởng tốt, không có gì tồi tệ hơn là một trang mà một nhà phát triển đang ràng buộc một dataGrid trong Page_Load mỗi lần nhưng cũng gửi các viewstate!

Nó cũng là một ý tưởng thực sự tốt nếu bạn đang có kế hoạch sử dụng UpdatePanel từ phần mở rộng AJAX, điều đó có nghĩa là bạn đang gửi ít hơn trong yêu cầu UpdatePanel.

(Đừng nói rằng UpdatePanel có thể tốt: P)

Các vấn đề liên quan