好的,如果您需要我发布我的代码,我已经提出了,请告诉我。我不确定这是否可行。但我想做的是当用户选择取消按钮/链接时阻止PHP制作Zip文件。
现在我设置的是每个用户上传的所有文件都列在表单中,然后用户可以选择要压缩和下载的文件。选择文件并单击下载按钮后,通过Jquery AJAX调用更改持有表单的div,这样可以正常工作。
但我有一个'取消'/'停止'按钮/链接,这种方式有效。点击后,我在AJAX请求上调用.abort,然后加载新的HTML内容,说用户取消了zip进度。但是,所有消息都工作正常,似乎服务器仍然在后台制作zip,并且任何链接都不会响应(大多数也是加载新用户请求的AJAX请求),直到zip完成。
我的网站的基础是使用CakePHP框架。但我确信这只是标准的Jquery / PHP问题。
关于如何让我的AJAX请求阻止PHP制作zip的任何想法?
这就是我构建AJAX的方式:
$(document).ready(function() {
$(".MAKEMYZIP").click(function(e) {
e.preventDefault();
$('.DIV-HOLDER').load('/PAGE-PREVIEWER');
var MakeNewZipFile = $.ajax({
url: '/makezip',
type: 'post',
dataType:'html', //expect return data as html from server
data: $('.FILE_DATA').serialize(),
success: function(response, textStatus, jqXHR){
$('.DIV-HOLDER').html(response); //select the id and put the response in the html
},
error: function(jqXHR, textStatus, errorThrown){
console.log('error(s):'+textStatus, errorThrown);
}
}); //End of AJAX call
//Below line makes the 'text' link visible once the make zip but clicked.
$('.ZipLinkHolder').css("visibility","visible");
$( ".Can_Zip_This_Zip" ).click(function() {
MakeNewZipFile.abort();
$('.DIV-HOLDER').html('<br/><br/><div class="CenterTxt">User has canceled Zip making process.</div>');
});
});
});