我有一個在用戶提交表單時運行的操作方法。在提交表單時執行後臺處理
圖像URL與模型一起傳遞。
我希望能夠對(下載的)圖像執行一些處理,但是我不想在此處理中延遲以影響用戶體驗。
那麼我該如何在背景中做這個處理,同時愉快地提交表單?例如:
ProcessImage(imageUrl); //do this in the background without delaying user experience
我有一個在用戶提交表單時運行的操作方法。在提交表單時執行後臺處理
圖像URL與模型一起傳遞。
我希望能夠對(下載的)圖像執行一些處理,但是我不想在此處理中延遲以影響用戶體驗。
那麼我該如何在背景中做這個處理,同時愉快地提交表單?例如:
ProcessImage(imageUrl); //do this in the background without delaying user experience
直到你收到圖像,你不能改變用戶的頁面。
但是,在您完成圖像後,您可以在BackGroundWorker中執行所需的處理並提交頁面。讓用戶看到新的需要的頁面。
這可以作爲一個異步方法來完成嗎?該方法的完成與用戶無關。我只是希望在用戶提交表單後的某個時候進行圖像處理。 – raklos 2011-02-04 16:37:55
在客戶端顯示一個忙碌的屏幕,讓用戶知道他正在等待文件下載。您可以通過下載到單獨的iframe並檢查iframe的狀態來實現此目的(for a dynamic approach see Dynamically created iframe used to download file triggers onload with firebug but not without)
您可以使用jQuery發佈imageurl。完成後將調用您的回調。
function ProcessImageUrl(imgurl)
{
$.post('<%= Url.Action("AjaxProcessImage","AjaxFunctions") %>'
, { url: imgurl }
, function (data) {
if (data.success) {
alert("I'm done processing the image");
}
else {
alert("Darn an error occurred: " + data.msg);
}
});
}
在控制器稱爲AjaxFunctionsController
public ActionResult AjaxProcessImage(string url)
{
try
{
ProcessImage(url);
}
catch(System.Exception ex)
{
return Json(
new
{
success = false,
msg = ex.Message
});
}
return Json(
new
{
success = true
});
}
你可以使用一個後臺工作。 – safi 2011-02-04 15:44:12