javascript での成功/失敗について、実行時間の長いプロセスをポーリングしています。プロセスが失敗した場合、特定のページに移動してflash['alert']
. を使用して新しいページに移動していますが、 from jswindow.location.href
を作成する方法がわかりません。flash['alert']
完全な一時的なハックとして、エラー メッセージを url パラメーターとして渡します。次に、コントローラーnew
アクションで、パラメーターをチェックしflash['alert']
、エラーが存在する場合は作成します。私はこの解決策が好きではなく、それを行うためのよりクリーンな方法があると思います。
function checkReportStatus() {
var report_id = $(".report").data("report-id");
$.get('/reports/' + report_id + '/check_report_status', function(report_status) {
if (report_status === 'completed') {
location.reload();
}
else if (report_status === 'error' || report_status === 'failed') {
window.location.href = "new?error=ERROR_MESSAGE";
}
else {
console.log("Report generation in progress...");
setTimeout(checkReportStatus, 3000);
}
});
}