0

好的,如果您需要我发布更多我想出的代码,请告诉我。我不确定这是否可能。但我想做的是在用户选择取消按钮/链接时阻止 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>');
    });
});

});

4

0 回答 0