Сайт Im работает над созданием pdf-файла на основе ввода данных, я решил, что как только покупка будет завершена, тогда, когда pdf начнет генерироваться. Причина в том, что pdf-файл может быть до 50/60 МБ, и я не хочу, чтобы клиент должен был дождаться завершения этого.php script из Ajax прекращает загрузку после закрытия браузера
Я использую Opencart и на странице успеха проверки. У меня есть команда Ajax, загружающая скрипт PHP.
У меня создалось впечатление, что пользователь может закрыть страницу после запуска скрипта, но по какой-то причине я считаю, что мне нужно ждать 5/10 секунд до закрытия, если я хочу, чтобы файл появился на моем сервере.
Его немного сложно отладить, поскольку часть тестирования включает в себя немедленное закрытие браузера.
Вот мой Ajax ...
$(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 (в настоящее время Im загрузки больших изображений на нем, чтобы представлять время загрузки)
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');
}
EDIT:
Просто добавить более подробная информация о том, что Ive пробовал читать эти статьи и получать ответы,
So on t он файл, где Аякса установлен Ive ..
ini_set('ignore_user_abort',true);
и функции, что вызывает Аякса Ive набор ...
ini_set('ignore_user_abort',true);
set_time_limit(0);
Для первого я побежал phpinfo() и Подтверждался для меня, что ignore_user_abort включен, что означает, что эта часть не является проблемой.
Некоторое легкое чтение постельного режима по теме :) http://stackoverflow.com/questions/4806637/continue-processing-after-closing-connection http://stackoverflow.com/questions/8548419/most-simple-way -to-start-a-new-process-thread-in-php http://stackoverflow.com/questions/138374/close-a-connection-early –
Это сообщение также может быть полезным/информативным: [Выполняется ли выполнение php после того, как пользователь покинет страницу?] (http://stackoverflow.com/questions/1280291/does-php-execution-stop-after-a-user-leaves-the-page) – Lix
Это зависит от ваших настроек. Эта [тема] [1] может быть полезна. [1]: http://stackoverflow.com/questions/1280291/does-php-execution-stop-after-a-user-leaves-the-page –