2013-02-01 31 views
5

chúng tôi thường sử dụng phiên, bộ đệm và cấu hình trong dự án biểu mẫu web asp.net. chúng tôi thường lưu trữ dữ liệu trong phiên, bộ nhớ cache và hồ sơ trong dự án webform asp.net nhưng tôi muốn biết khi nào chúng ta nên lưu trữ dữ liệu trong phiên hoặc khi chúng ta nên lưu trữ trong bộ nhớ cache và hồ sơ. phạm vi của bộ nhớ cache hoặc hồ sơ là gì. hai điều này cũng phiên cụ thể thời gian cuộc sống hoặc ứng dụng cụ thể.sự khác biệt giữa phiên, bộ đệm và cấu hình trong asp.net

giả sử nếu tôi lưu trữ bất kỳ dữ liệu nào trong bộ nhớ cache hoặc tiểu sử từ phiên 1 thì tôi có thể truy cập dữ liệu đó từ phiên 2 hay không. chỉ hướng dẫn tôi với kịch bản & ví dụ khi chúng ta nên lưu trữ dữ liệu trong phiên, bộ nhớ cache và hồ sơ. nhờ

+0

bạn có thấy điều này không? Http: //forums.asp.net/t/983735.aspx –

Trả lời

14

Bạn sử dụng cache thường khi bạn muốn cải thiện hiệu suất trang web: giảm các cuộc gọi cơ sở dữ liệu, truy cập vào các tập tin trên hệ thống tập tin, gọi dịch vụ bên ngoài vv

Scenario 1: Giả sử có một ứng dụng mà có một trang liệt kê tất cả sản phẩm được lưu trữ trong cơ sở dữ liệu. Người dùng cần có tính năng lọc danh sách sản phẩm (ví dụ như trên ebay hoặc amazon). Ngoài ra, nó được biết rằng danh sách các sản phẩm và tính năng sản phẩm đang thay đổi hiếm khi so sánh với tần suất sử dụng trang danh sách sản phẩm.

Solution 1: Tại đây bạn có thể sử dụng cache để giảm cuộc gọi cơ sở dữ liệu. Bạn đặt danh sách sản phẩm và tính năng sản phẩm vào cache để thực hiện lọc trong bộ nhớ và tránh các cuộc gọi cơ sở dữ liệu dư thừa. Cache phải được vô hiệu bất cứ khi nào danh sách sản phẩm hoặc thay đổi tính năng. Giải pháp này nên được OK cho đến khi xử lý tiêu thụ bộ nhớ là rẻ hơn so với đạt được trong hiệu suất.

Là tài nguyên tốt, tôi khuyên bạn nên đọc bài viết ASP.NET Caching: Techniques and Best Practices MSDN.


Bạn thường lưu dữ liệu dành riêng cho người dùng cụ thể và có sẵn mỗi lần người dùng đăng nhập vào hệ thống.

Scenario 2: Cân nhắc bạn có cùng ứng dụng như trong Scenario 1 nhưng bây giờ bạn cần cung cấp khả năng để người dùng lưu tùy chọn bộ lọc của họ (loại danh sách bộ lọc yêu thích).

Solution 2: Bạn có thể tạo một loại lớp trạng thái bộ lọc và lưu trữ nó trong người dùng profile. Kết quả là người dùng sẽ không bị làm phiền quy định cụ thể các thông số bộ lọc một lần nữa và một lần nữa và những sở thích sẽ có sẵn mọi người sử dụng thời gian đăng nhập.


Session được sử dụng để lưu trữ thông tin người dùng cụ thể mà có thể được truy cập từ tất cả các trang web trang và sẽ không cần thiết vào lần đăng nhập của người dùng tiếp theo.

Scenario 3: Giả sử có một số ứng dụng thương mại điện tử và người tiếp thị muốn xem những gì đang diễn ra trên trang web theo thời gian thực. bởi một số người dùng nhất định trong khi họ đăng nhập. Hãy xem xét kịch bản này là ảnh chụp nhanh hoạt động của người dùng đã chọn.

Solution 3: Tại đây bạn có thể sử dụng session để ghi lại những URL nào được người dùng truy cập và sau đó tạo báo cáo cho người tiếp thị.

Đối với quản lý nhà nước, bạn cũng có thể truy cập lại một bài viết MSDN khác ASP.NET State Management Overview.


Another good answer làm nổi bật sự khác biệt giữa các đối tượng quản lý trạng thái ứng dụng asp.net.


Hy vọng điều này sẽ giúp bạn một chút.

+0

tiểu sử là phiên cụ thể ... nếu không thì chúng tôi có thể truy cập vào một dữ liệu hồ sơ từ một phiên khác như thế nào. u có thể hướng dẫn điều này với mã mẫu. – Thomas

+1

Tiểu sử @Thomas là dữ liệu người dùng cụ thể có thể được duy trì để nó không bị mất giữa các phiên. Nhà cung cấp hồ sơ mặc định lưu trữ dữ liệu hồ sơ trong cơ sở dữ liệu. Hãy xem http://stackoverflow.com/questions/426609/how-to-assign-profile-values. Câu hỏi này có mẫu mã. –

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