在javascript函数中,我提交了一个表单:
form.submit();
,
拥有大量数据。
是否可以在点击浏览器的停止按钮旁边取消此操作?
更新
也许我没有清楚自己提交大文件 具有在iframe中运行的uploadcontrol的表单。
答案 0 :(得分:3)
您可以执行与Gmail相同的操作:撤消发送邮件(实验室功能)。
只是将邮件发送延迟了5秒钟。如果在那段时间服务器收到undo
AJAX呼叫,则不发送邮件。
这可能会增加服务器端的复杂性,但不会那么多。
如果未发送信息,您可以使用this:
//IE
document.execCommand('Stop');
//Firefox
window.stop();
所以整个事情看起来像这样(伪代码):
stop_submit(current_id){
try{
document.execCommand('Stop');
}catch(e){}
try{
window.stop();
}catch(e){}
AJAXCall("/myfolder/cancel_submit/", "id="+current_id, "post");
return;
}
答案 1 :(得分:0)
这是客户端 - 服务器架构的典型问题。一旦发出HTTP请求,就没有停止它。在所有请求之后,您将需要一种方法来恢复状态,以确保一切都恢复原状。
现在,您可以使用AJAX执行此操作并使用abort
函数。或者,您可以尝试window.stop()
或document.execCommand("Stop")
,具体取决于您的浏览器。但那些没有解决已经发送请求的问题。