2010-02-24 43 views
6

Câu hỏi để chết chuyên gia asp.net cứng. Tôi đã dành nhiều thời gian cố gắng tìm một câu trả lời hoặc tự mình làm điều đó nhưng không có may mắn cho đến nay.Gọi lại không đồng bộ đồng thời

Ứng dụng web ASP.NET. Tôi dự định cải thiện thời gian tải trang để trải nghiệm người dùng tốt hơn. Tôi muốn trì hoãn tải các phần của trang bằng UpdatePanels. Tôi có thể cập nhật UpdatePanel ngay sau khi tải trang bằng bộ hẹn giờ với khoảng thời gian tối thiểu. Điều đó hoạt động tốt nhưng các bước bắt đầu khi cố gắng thực hiện nó với nhiều UpdatePanels. Về cơ bản những gì xảy ra là tất cả các bảng được cập nhật nhưng tuần tự hơn là tất cả cùng một lúc.

Bây giờ, tôi đã đọc rằng điều này là do thực tế là mỗi kết quả gửi lại không đồng bộ đều ảnh hưởng đến toàn bộ trang xem và để ngăn chặn việc không đồng bộ của ViewState không đồng bộ được đăng lại. Trên thực tế, họ nói rằng chỉ gọi lại cuối cùng sẽ thành công vì vậy tôi may mắn để có họ serialized, tôi đoán.

Và bây giờ là câu hỏi lớn: có ai tìm thấy một vòng quanh nó không? Trong ASP.NET nếu có thể. Đây sẽ là một câu trả lời rất có giá trị có lẽ không chỉ cho tôi.

Cảm ơn, cảm ơn, cảm ơn (vì câu trả lời công việc :-)

Trả lời

5

UpdatePanels được đồng bộ theo thiết kế.

Nếu bạn muốn thực thi nhiều yêu cầu đồng thời, bạn sẽ cần phải sử dụng phương pháp trang, dịch vụ AJAX hoặc AJAX thô. Dù bằng cách nào cũng có nghĩa là từ bỏ ViewState.

Nếu bạn muốn hiển thị các điều khiển ASP.Net đồng thời cho nhiều yêu cầu AJAX, bạn có thể tạo các tệp ASPX độc lập nhỏ chứa các điều khiển, gửi yêu cầu AJAX cho chúng và chèn HTML được hiển thị vào DOM. Trong jQuery, bạn sẽ làm như sau: $('selector').load('something.aspx'). Lưu ý rằng cả postbacks lẫn viewstate đều không hoạt động.

+0

Đó có lẽ là câu trả lời hay nhất tôi có thể nhận được. Đó là một chút buồn khi biết điều đó và đáng tiếc nó không được nêu rõ trong trợ giúp/tài liệu. Thậm chí nhiều hơn, loại kích hoạt AsyncPostBackTrigger sẽ gợi ý rằng UpdatePanel hỗ trợ các hoạt động không đồng bộ. Tôi không muốn chia trang thành nhiều trang phụ - giải pháp không đáng để gặp rắc rối. Nhưng làm thế nào tôi có thể sử dụng phương pháp trang cho điều đó? –

+0

Bạn đang hỏi gì? – SLaks

+0

Phương pháp trang không phải là những gì tôi đang ở đây. Có lẽ JavaScript sẽ là câu trả lời của tôi. Cảm ơn. –

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