Heim > Backend-Entwicklung > PHP-Tutorial > Hier sind einige Titeloptionen, die mit dem Frageformat spielen: * Warum werden meine AJAX-Anfragen in PHP nicht gleichzeitig ausgeführt? (Konzentriert sich auf das Problem) * So erreichen Sie echte Parallelität mit AJAX-Anforderungen

Hier sind einige Titeloptionen, die mit dem Frageformat spielen: * Warum werden meine AJAX-Anfragen in PHP nicht gleichzeitig ausgeführt? (Konzentriert sich auf das Problem) * So erreichen Sie echte Parallelität mit AJAX-Anforderungen

Barbara Streisand
Freigeben: 2024-10-28 02:17:02
Original
750 Leute haben es durchsucht

Here are a few title options, playing with the question format:

* Why Are My AJAX Requests Not Running Concurrently in PHP? (Focuses on the problem)
* How to Achieve True Concurrency with AJAX Requests in a PHP App? (Focuses on the solution)
* Session Bl

AJAX-Anfragen werden nicht gleichzeitig ausgeführt

Um die Leistung zu optimieren, werden zwei gleichzeitige AJAX-Anfragen in einer Webanwendung verwendet, um den Fortschritt zu verfolgen einer langwierigen Aufgabe. Die zweite Anfrage bleibt jedoch stehen, bis die erste abgeschlossen ist.

Ursache: Sitzungsblockierung

PHP verwendet standardmäßig einen dateibasierten Ansatz für die Sitzungsspeicherung. Wenn eine Sitzung mit session_start() initiiert wird, erhält sie eine exklusive Schreibsperre für die Sitzungsdatei. Folglich werden alle anderen Anfragen, die versuchen, auf die Sitzungsdatei zuzugreifen, blockiert, bis die Sperre aufgehoben wird.

Lösung: Dateibasierte Sitzungen deaktivieren

Eine Lösung besteht darin, sie zu deaktivieren Dateibasierte Sitzungsspeicherung durch Ändern der php.ini-Konfigurationsdatei:

session.save_handler = redis
session.save_path = tcp://localhost:6379
Nach dem Login kopieren

Diese Änderung leitet Sitzungsdaten an einen Redis-Server um und beseitigt so das Problem der Dateisperre.

Alternativ: Schreibzugriff auf Sitzungsdatei schließen

Alternativ können Sie die Schreibsperre für Sitzungsdateien aufheben, indem Sie die Sitzungsdatei nach dem Schreiben von Daten explizit schließen:

<?php
    session_start();

    $_SESSION['foo'] = 'bar'; // Write data to the session

    session_write_close(); // Release the file write lock
Nach dem Login kopieren

Mit dieser Technik können die Sitzungsdaten gelöscht werden später lesen, verhindert aber, dass andere Anfragen durch die Sitzungsschreibsperre blockiert werden.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die mit dem Frageformat spielen: * Warum werden meine AJAX-Anfragen in PHP nicht gleichzeitig ausgeführt? (Konzentriert sich auf das Problem) * So erreichen Sie echte Parallelität mit AJAX-Anforderungen. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage