Một cách là sử dụng Trình xử lý HTTP và AJAX với jQuery.
1. Tiến hành Server side yêu cầu
$("#btnCreateInvoice").click(function() {
$.ajax({ type: "POST", url: "YourHttpHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { start the block UI }
});
});
2. Polling
gì tiếp theo bạn cần làm là để thăm dò ý kiến các máy chủ tại khoảng 't' và nhận được trạng thái. Để làm được điều đó, chúng ta cần gọi hàm ở khoảng thời gian 't' sẽ bắt đầu một cuộc gọi AJAX tới một HTTPHandler để nhận trạng thái.
$(function() {
setInterval(updateStatus, 't');
});
function updateStatus() {
$.ajax({ type: "POST", url: "GetStatusHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { process 'data' here and update the block UI message box }
});
}
Trong trường hợp của bạn ở đây, GetStatusHandler.ashx có thể trả lại trạng thái bên trong hoàn chỉnh cho trạng thái. Đối với ví dụ trên là người đầu tiên gọi nó sẽ trở lại 'Đang tải nguồn đầu tiên ...', sau đó nó có thể quay trở lại: nguồn
loding Trước ...
tải nguồn thứ hai ...
và vân vân.
Nguồn
2010-05-19 05:49:36
C#, Java, PHP .. v.v ...? –
serveride của tôi là C# nhưng tôi sẽ giả định câu trả lời sẽ không có bất kỳ sự khác biệt nào cho ngôn ngữ cuối khác nhau trả về – leora
Câu trả lời có thể phụ thuộc vào -> 'Nhiệm vụ chạy dài' được thực thi phía máy khách hoặc phía máy chủ? –