好的,如果您需要我发布更多我想出的代码,请告诉我。我不确定这是否可能。但我想做的是在用户选择取消按钮/链接时阻止 PHP 制作 Zip 文件。
现在我设置的是每个用户上传的所有文件都列在一个表单中,然后用户可以选择他们希望压缩和下载的文件。选择文件并单击下载按钮后,保存表单的 div 将通过 Jquery AJAX 调用进行更改,这可以正常工作,没有问题。
但我有一个“取消”/“停止”按钮/链接,它可以工作。单击后,我在 AJAX 请求上调用 .abort,然后加载新的 HTML 内容,说明用户取消了 zip 制作进度。但是,所有消息都运行良好,似乎服务器仍在后台制作 zip,并且在制作 zip 之前,任何链接都不会响应(大多数也是加载新用户请求的 AJAX 请求)。
我的网站的基础是使用 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>');
});
});
});