J'ai une longue interrogation sur ma page. Le script côté serveur est défini sur le délai d'expiration après 20 secondes. Ainsi, lorsque l'interrogation longue est "inactive" et que l'utilisateur appuie sur un autre bouton, l'envoi de cette nouvelle requête est retardé jusqu'à l'expiration du script précédent.Plusieurs demandes AJAX se retardent mutuellement
Je ne vois rien de mal avec le code sur le côté jQuery. Pourquoi l'événement onclick est-il retardé?
function poll()
{
$.ajax({
url: "/xhr/poll/1",
data: {
user_id: app.user.id
},
type: "POST",
dataType: "JSON",
success: pollComplete,
error: function(response) {
console.log(response);
}
});
}
function pollComplete()
{
poll();
}
function joinRoom(user_id)
{
$.ajax({
url: "/xhr/room/join",
dataType: "JSON",
type: "POST",
data: {
user_id: app.user.id,
room_id: room.id
}
});
}
<button id="join" onclick="javascript:joinRoom(2);">Join</button>
############ PHP Controller on /xhr/poll
$time = time();
while ((time() - $time) < 20)
{
$updates = $db->getNewStuff();
foreach ($updates->getResult() as $update)
$response[] = $update->getResponse();
if (!empty($response))
return $response;
else
usleep(1 * 1000000);
return 'no-updates';
}
Le «problème de sommeil» pourrait-il être le problème?
est le problème est là aussi localhost ?? –
Est-ce que le code PHP pour l'appel AJAX utilise des sessions? –