Tôi đang làm việc trên một ứng dụng ASP.net được viết bằng C# với cơ sở dữ liệu Sql Server 2000. Chúng tôi có một số báo cáo PDF mà khách hàng sử dụng cho nhu cầu kinh doanh của họ. Vấn đề là các báo cáo này mất một lúc để tạo (> 3 phút). Điều thường xảy ra là khi người dùng yêu cầu báo cáo thời gian chờ yêu cầu giết chết yêu cầu trước khi máy chủ web có thời gian để kết thúc việc tạo báo cáo, vì vậy người dùng không bao giờ có cơ hội tải xuống tệp. Sau đó, người dùng sẽ làm mới trang và thử lại, bắt đầu toàn bộ quá trình tạo báo cáo và vẫn hết thời gian chờ. (Không, chúng tôi không lưu trữ báo cáo ngay bây giờ; đó là điều tôi đang đẩy mạnh cho ...).Xử lý các báo cáo chạy dài
Bạn xử lý các tình huống này như thế nào? Tôi có một ý tưởng trong đầu của tôi trong đó bao gồm việc thực hiện một yêu cầu không đồng bộ để bắt đầu tạo báo cáo và sau đó có một số javascript để định kỳ kiểm tra tình trạng. Khi trạng thái cho biết báo cáo đã hoàn tất, hãy thực hiện yêu cầu riêng cho tệp thực.
Có cách nào đơn giản hơn mà tôi không nhìn thấy không?
Bạn có thể giải thích cách khách hàng có thể thăm dò ý kiến máy chủ bằng cách sử dụng HEAD http hay không. Tôi thích ý tưởng bỏ phiếu, tuy nhiên tôi đã lên kế hoạch sử dụng JavaScript để bỏ phiếu. Có phương pháp nào dễ hơn không? –
Bạn có thể gửi yêu cầu đầu từ javascript, http://www.jibbering.com/2002/4/httprequest.html Có thể có thứ gì đó được cuộn lên trong jquery/các thư viện js lớn khác để trợ giúp. – user7375