关闭浏览器后,来自Ajax的php脚本停止加载
我正在做的一个网站根据客户的输入构建了一个pdf,我已经决定一旦购买完成,就开始生成pdf。原因是pdf可能达到了tp 50/60MB,我不希望客户端必须等待这一点才能完成 我使用Opencart,在checkout success页面上有一个Ajax命令加载一个PHP脚本 我的印象是,一旦脚本启动,用户就可以关闭页面,但出于某种原因,我发现如果我希望文件出现在服务器上,我必须等待5/10秒才能关闭 调试有点困难,因为测试需要立即关闭浏览器 这是我的Ajax关闭浏览器后,来自Ajax的php脚本停止加载,php,jquery,ajax,Php,Jquery,Ajax,我正在做的一个网站根据客户的输入构建了一个pdf,我已经决定一旦购买完成,就开始生成pdf。原因是pdf可能达到了tp 50/60MB,我不希望客户端必须等待这一点才能完成 我使用Opencart,在checkout success页面上有一个Ajax命令加载一个PHP脚本 我的印象是,一旦脚本启动,用户就可以关闭页面,但出于某种原因,我发现如果我希望文件出现在服务器上,我必须等待5/10秒才能关闭 调试有点困难,因为测试需要立即关闭浏览器 这是我的Ajax $(document).ready(
$(document).ready(function() {
$.ajax({
url: 'index.php?route=pdfengine/pdfengine/generate_final_pdf',
type: 'post',
dataType: 'json',
data: {
},
beforeSend: function() {},
complete: function() {},
success: function(json) {}
});
});
我的php目前正在加载巨大的图像来表示加载时间
public function generate_final_pdf() {
include('convert-to-pdf/mpdf.php');
$mpdf=new mPDF();
$stylesheet = file_get_contents(DIR_APPLICATION.'view/theme/rascal/stylesheet/stylesheet.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML('<html><body><div class="pdf-test-style"><img src="http://example.com/top_quality_image.jpg" />test</div><pagebreak><img src="http://example.com/top_quality_image2.jpg" />test<pagebreak><img src="http://example.com/top_quality_image3.jpg" />test</body></html>',2);
$mpdf->Output(DIR_FINAL_PDFS.'order_idpdfid-'.$this->session->data['pdf_id'].'.pdf','F');
}
在ajax调用的函数Ive set中
ini_set('ignore_user_abort',true);
set_time_limit(0);
对于第一个,我运行了phpinfo,它确实向我确认了ignore\u user\u abort处于启用状态,这显然意味着该部分不是问题。用于在用户关闭页面时保持脚本运行。围绕主题进行一些轻松的睡前阅读:这篇文章可能也很有用/信息丰富:这取决于您的设置。此[主题][1]可能会有所帮助。[1] :谢谢这些链接,它们很有意义。我对这个问题进行了编辑,包括我从这些链接中学到了什么,我想知道还有什么会导致脚本在窗口关闭后无法继续运行的问题吗?谢谢,不幸的是它不起作用,但我认为这是一个托管问题,当我运行phpinfo时,它会显示ignore\u user\u abort Off
ini_set('ignore_user_abort',true);
set_time_limit(0);