Ma situation (très simplifiée) est la suivante:Demande multiple ipcam peut bloquer le navigateur?
- Dans une seule page j'ai n objets IPcam. Chaque objet ipcam a son propre div, où l'image de l'ipcam est mise à jour chaque fois que l'image précédente est reçue.
- une fonction javascript appelle un fichier php (en passant l'id de l'ipcam en paramètre) qui renvoie l'image avec une requête socket (après avoir choisi les paramètres pour cet identifiant [ip, port, authentification, nom d'utilisateur, mot de passe etc etc]).
code Javascript (simplifié)
//called by a timer
function refresh_ipcam(id){
if(parseInt($("#"+id).attr('refresh_finished')) == 1){
$("#"+id).attr('refresh_finished',0);
var img = new Image(....);
var x = new Date().getTime();
img.src = "get_image.php?id="+id+"&random="+x;
img.onload = function(){
$("#"+id).html(img);
$("#"+id).attr('refresh_finished',1);
}
img.onerror = function(e){
setTimeout(function(e){
$("#"+id).attr('refresh_finished',1);
},2000)
}
}
}
En ajoutant le paramètre aléatoire, le navigateur détecte toujours une nouvelle image. De cette façon, j'ai résolu un problème (l'image n'a pas été mise à jour correctement pour les problèmes de cache). Mais je pense qu'il y a un autre type de problème de cette façon, étant donné le nombre élevé de demandes faites.
Certains utilisateurs ont signalé le bloc du navigateur (après un certain temps). Cela peut-il être un problème lié à un cache complet? Sur la console google chrome, dans la section Application> Frames> Images, j'ai remarqué que chaque requête (get_image.php) correspond à un nouvel élément de cette liste.