Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menutup Sambungan PHP Awal Selepas Memulakan Proses Berlangsung Lama melalui AJAX?

Bagaimanakah Saya Boleh Menutup Sambungan PHP Awal Selepas Memulakan Proses Berlangsung Lama melalui AJAX?

DDD
Lepaskan: 2024-12-29 07:06:09
asal
370 orang telah melayarinya

How Can I Close a PHP Connection Early After Initiating a Long-Running Process via AJAX?

Menutup Sambungan Awal

Pertanyaan ini menangani cabaran menutup sambungan sebelum melengkapkan skrip PHP. Matlamatnya adalah untuk memulakan proses yang panjang melalui AJAX tetapi mengembalikan respons yang menunjukkan permulaannya tanpa menunggu skrip PHP selesai.

Menurut manual PHP, menamatkan sambungan TCP tanpa menamatkan skrip PHP melibatkan lebih daripada hanya menghantar tajuk "tutup". Nota pengguna #71172 (November 2006) menyediakan penyelesaian yang komprehensif:

<?php
ob_end_clean();
header("Connection: close");
ignore_user_abort(true);
ob_start();
echo('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
// Do processing here 
sleep(30);
echo('Text user will never see');
?>
Salin selepas log masuk

Untuk penyelesaian itu berfungsi, adalah penting untuk melumpuhkan penimbalan output, membersihkan penimbal dan kemudian menghantar maklumat pengepala. Walaupun menghantar pengepala "tutup" adalah perlu, ia tidak mencukupi untuk menutup sambungan serta-merta.

Nota pengguna berikutnya #89177 (Februari 2009) dan #93441 (September 2009) memberikan cerapan tambahan tentang pengendalian sambungan dan membantu menjelaskan nuansa penutupan sambungan awal dalam PHP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menutup Sambungan PHP Awal Selepas Memulakan Proses Berlangsung Lama melalui AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan