有一个提交按钮serializes某些表格,并相应地提交给服务器上的不同处理程序。当数据发送完毕后,我想重定向到另一个页面,用户可以在其中查看结果的概述。我怎么能这样做?由于页面没有足够的时间提交数据(或看起来如此),因此立即重定向不起作用。
以下失败:
$(document).ready(function(){
$('#submit_all_button').submit(function(){
var querystring = $('#q1').serialize();
$.get('/change_q1', querystring);
var querystring = $('#q2').serialize();
$.get('/change_q2', querystring);
var querystring = $('#q3').serialize();
$.get('/change_q3', querystring);
window.location.href = "/main";
return false;
});
});
当提交操作重定向到/main
页面时,会出现同样的问题。
答案 0 :(得分:4)
使用jQuery get()的success function
并跟踪是否发送了所有更新。因此,最后一次成功函数调用最终会重定向您的页面。
答案 1 :(得分:0)
我在PHP中有另一个答案很有意思:将它作为后台工作运行(其他答案是最好的方法,但如果出于某种原因,你不能使用它):
set_time_limit(900);
ignore_user_abort(true);
header("Connection: close");
header("Content-Length: " . mb_strlen('ok'));
echo 'ok';
flush();
// Your code follows here
也许您可以在服务器端语言中使用此逻辑。