前提
三者のライブラリを使用しJS-クッキーを
プロセス
- [エクスポート]ボタンは無効に設定されています。
- jsが10分にはクッキーを期限切れに追加します。
- jsがwindow.locationのコールバックエンド・インタフェース(ないバイトストリームアヤックス)を使用してExcelをエクスポートします。
- 削除クッキー、Excelのページへの出力の方法の流れ:Javaは、要求を処理します。
- ランごとに1秒を設定、タイミングタスクは、エクスポートボタンが有効に設定されている場合、クッキーが空である、JSの値のsetInterval jQueryの()クッキーを使用して監視、600時間(10分)を実行します。
コアコード
JavaScriptを
$("#export").click(function(){
$(".mask").css("display","none");
$(".exportdiv").css("display","none");
var exportdata = document.getElementById("Searchinput").value;
$("#btn5Search").trigger("click");
// set cookie
var inTenMinutes = new Date(new Date().getTime() + 10 * 60 * 1000); // cookie expire after 10 minutes
Cookies.set('serviceExportStatus', '0', { path: '/', expires: inTenMinutes });
// export request
window.location="${ctx}/service/exportExcel.action?exportdata="+exportdata;
// listening export finish
var count = 0;
var timer = setInterval(function(){
count++;
console.log("in timer" + count);
if(count > 600 || Cookies.get('serviceExportStatus') == null){
console.log("in finish export");
$("#export").attr('disabled',false);
$("#export").css('background','#000');
clearInterval(timer);
}
},1000);
});
Javaの:
Cookie cookie = new Cookie("serviceExportStatus", "1");
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);