Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine PHP-Verbindung vorzeitig schließen, nachdem ich einen lang laufenden Prozess über AJAX gestartet habe?

Wie kann ich eine PHP-Verbindung vorzeitig schließen, nachdem ich einen lang laufenden Prozess über AJAX gestartet habe?

DDD
Freigeben: 2024-12-29 07:06:09
Original
370 Leute haben es durchsucht

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

Eine Verbindung vorzeitig schließen

Diese Abfrage befasst sich mit der Herausforderung, eine Verbindung zu schließen, bevor ein PHP-Skript abgeschlossen wird. Das Ziel besteht darin, einen langwierigen Prozess über AJAX zu initiieren, aber eine Antwort zurückzugeben, die seinen Beginn angibt, ohne auf den Abschluss des PHP-Skripts zu warten.

Laut PHP-Handbuch erfordert das Beenden einer TCP-Verbindung ohne Beenden des PHP-Skripts mehr als Senden Sie einfach einen „Close“-Header. Benutzerhinweis Nr. 71172 (November 2006) bietet eine umfassende Lösung:

<?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');
?>
Nach dem Login kopieren

Damit die Lösung funktioniert, ist es wichtig, die Ausgabepufferung zu deaktivieren, den Puffer zu löschen und dann Header-Informationen zu senden. Das Senden eines „close“-Headers ist zwar notwendig, reicht aber nicht aus, um die Verbindung sofort zu schließen.

Die nachfolgenden Benutzernotizen #89177 (Februar 2009) und #93441 (September 2009) bieten zusätzliche Einblicke in die Verbindungsverarbeitung und Helfen Sie dabei, die Nuancen des frühen Verbindungsabbaus in PHP zu klären.

Das obige ist der detaillierte Inhalt vonWie kann ich eine PHP-Verbindung vorzeitig schließen, nachdem ich einen lang laufenden Prozess über AJAX gestartet habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage