因此,我之前發佈了一個關於將excel文件與控制服務器端導出以防止用戶重新執行操作(Action method to export excel and prevent user from reprocessing the action till complete)的問題! 有一個fellah建議使用Execute和Wait Interceptor(Struts),這是處理後臺處理的一個很好的方法!執行struts操作並阻止用戶重新處理,直到完成
但是,問題是,我需要保持從那裏我做了出口頁面上,以便用戶可以與它進行交互(他只是不能導出,直到導出完成):
所以我發現了一個解決這個做客戶端:
function handler() {
$("#searchForm_exportExcelMdt").attr("disabled", false);
}
// export excel
function exportExcel() {
console.log("toto is exporting ..");
$("#searchForm_exportExcelMdt").attr("disabled", true);
$.ajax({
method : "GET",
url : "/myApp/view/mandat/recherche/doNothing.action",
traditional : true,
success : function(data) {
$(location).load('exportExcelMdt.action',handler).attr('href','exportExcelMdt.action');
}
});
}
所以這基本上將禁用按鈕,調用行動「doNothing()」,它只是返回成功。然後,操作exportExcelMdt(導出文件)將在重新激活按鈕之前調用處理程序,並且我會回想當前頁面(類似於刷新)來強制文件被下載(不確定,但沒有它沒有文件被生成)。
所以這工作在Chrome瀏覽器,IE瀏覽器,但不是Firefox! :'(
即使沒有在控制檯上顯示的錯誤,我只是重定向到我的錯誤頁面
如果有人知道什麼是這種情況的原因或如何停用輸入Firefox的那會。是非常有益的
!PS:你可以找到JSP,struts.xml中,行動的前一個線程上的鏈接描述
這不是Java的問題,而是一個JavaScript和HTML的問題,所以我改變了標籤 –
是我們對此深感抱歉!所以用來問java問題大聲笑感謝您的編輯;) –