Voici quelques options de titre, jouant avec le format des questions : * Pourquoi mes requêtes AJAX ne s'exécutent-elles pas simultanément en PHP ? (Se concentre sur le problème) * Comment obtenir une véritable concurrence avec les requêtes AJAX

Barbara Streisand
Libérer: 2024-10-28 02:17:02
original
668 Les gens l'ont consulté

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

Les requêtes AJAX ne s'exécutent pas simultanément

Dans le but d'optimiser les performances, deux requêtes AJAX simultanées sont utilisées dans une application Web pour suivre la progression d'une tâche de longue haleine. Cependant, la deuxième requête reste bloquée jusqu'à ce que la première soit terminée.

Cause première : blocage de session

PHP, par défaut, utilise une approche basée sur les fichiers pour le stockage de session. Lorsqu'une session est initiée avec session_start(), elle acquiert un verrou en écriture exclusif sur le fichier de session. Par conséquent, toutes les autres requêtes tentant d'accéder au fichier de session seront bloquées jusqu'à ce que le verrou soit libéré.

Solution : désactiver les sessions basées sur des fichiers

Une solution consiste à désactiver stockage de session basé sur des fichiers en modifiant le fichier de configuration php.ini :

session.save_handler = redis
session.save_path = tcp://localhost:6379
Copier après la connexion

Cette modification redirige les données de session vers un serveur Redis, éliminant ainsi le problème de verrouillage des fichiers.

Alternative : Fermer l'écriture du fichier de session

Vous pouvez également libérer le verrou en écriture du fichier de session en fermant explicitement le fichier de session après avoir écrit les données :

<?php
    session_start();

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

    session_write_close(); // Release the file write lock
Copier après la connexion

Cette technique permet aux données de session d'être lire plus tard, mais empêche que d'autres requêtes soient bloquées par le verrou en écriture de session.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!