2008-09-16 34 views
8

Chúng tôi có một số ứng dụng biểu mẫu kiểu thuật sĩ trên trang web của chúng tôi, nơi chúng tôi thu thập thông tin từ người dùng trên mỗi trang và sau đó gửi đến quy trình phụ trợ bằng dịch vụ web.Bạn có thể lưu trữ bao nhiêu dữ liệu trong một đối tượng phiên người dùng?

Rất tiếc, chúng tôi không thể gửi thông tin theo từng phần trong mỗi lần gửi biểu mẫu để chúng tôi phải lưu trữ phiên người dùng cho đến khi kết thúc quá trình và gửi tất cả cùng một lúc.

Số lượng bộ nhớ máy chủ/máy chủ sql không gian đĩa chỉ có hạn chế về số lượng tôi có thể lưu trữ trong phiên người dùng hoặc có điều gì khác mà tôi cần phải xem xét?

Chỉnh sửa: Trang web được xây dựng trên biểu mẫu web ASP.NET.

+0

Bạn vẫn có thể chuỗi chuỗi bài đăng từ mỗi biểu mẫu với asp.net, chỉ cần xóa runat = server và đăng lên trang .net khác. – mmattax

Trả lời

3

Giả sử thông tin không nhạy cảm, bạn có thể lưu trữ thông tin trong cookie sẽ làm giảm lượng thông tin cần thiết để được lưu trữ phía máy chủ. Điều này cũng sẽ cho phép bạn truy cập thông tin qua JavaScript.

Hoặc bạn có thể sử dụng chế độ xem để lưu trữ thông tin mặc dù điều này có thể dẫn đến lượng lớn dữ liệu được gửi giữa máy chủ và máy khách chứ không phải giải pháp ưa thích của tôi.

Lượng thông tin phiên bạn nên lưu trữ khác nhau dữ dội tùy thuộc vào ứng dụng, số lượng người dùng mong đợi, đặc điểm kỹ thuật máy chủ vv Để cung cấp một câu trả lời chính xác hơn sẽ yêu cầu thêm thông tin :)

Cuối cùng, giả định rằng các thông tin thu thập được trong suốt quá trình không bắt buộc từ trang này sang trang khác, sau đó bạn có thể lưu trữ tất cả thông tin trong bảng cơ sở dữ liệu và chỉ lưu trữ các bản ghi id duy nhất trong phiên. Vì mỗi trang được gửi hồ sơ db được cập nhật và sau đó trên trang cuối cùng tất cả các thông tin được lấy ra và gửi đi. Đây không phải là giải pháp ý tưởng nếu bạn cần truy xuất thông tin trước đó trên mỗi trang tiếp theo do số lần đọc db được yêu cầu.

0

Nếu bạn sử dụng mô hình HTTP truyền thống (tức là không sử dụng runat = "server"), bạn có thể đăng dữ liệu lên trang asp khác và đặt dữ liệu đã đăng vào phần tử biểu mẫu ẩn, bạn có thể thực hiện việc này do đó bạn cần tránh đặt bất kỳ thứ gì trong biến phiên.

2

Bạn cũng có thể có 1 trang asp với toàn bộ hình thức html, và ẩn các phần của nó cho đến khi điền người dùng và "nộp" phần nhìn thấy ...

sau đó chỉ cần che giấu phần được điền và hiển thị phần tiếp theo của biểu mẫu ...

Điều này sẽ cực kỳ dễ dàng trong khuôn khổ .NET, sử dụng bảng cho mỗi "bước hướng dẫn" và thêm lôgic khi hiển thị và ẩn từng bảng.

bạn sẽ có tất cả dữ liệu trên một trang.

0

Vì nó có vấn đề từ quan điểm hiệu suất để lưu trữ lượng lớn dữ liệu trong đối tượng Session người dùng, ASP.Net cung cấp một số giải pháp khác trên đầu những gì được đề cập trong bài viết ở trên. ASP.NET Profile Provider cho phép bạn duy trì thông tin liên quan đến phiên trong cơ sở dữ liệu. Bạn cũng có thể sử dụng Session State Server sử dụng máy chủ riêng để lưu trữ tất cả thông tin Phiên. Cả hai tình huống này đều tính đến nếu bạn cần sử dụng cụm hoặc cân bằng tải, máy chủ vẫn có thể nhận ra thông tin phiên trên các máy chủ khác nhau. Nếu bạn lưu trữ thông tin trong đối tượng Session Http, bạn gặp phải vấn đề mà một người dùng phải luôn luôn đi đến cùng một máy chủ cho phiên đó.

0

Phiên, chế độ xem, cơ sở dữ liệu.Tất cả đều chậm nhưng sẽ hoàn thành công việc.

Trường biểu mẫu ẩn là câu trả lời tôi thích nhất.

Có nhiều cách khác để duy trì trạng thái. Cookie, cửa sổ bật lên, bộ khung hoặc khung nội tuyến.

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