Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2007, 14h26   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 3
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2007
Messages : 3
Points : 1
Points : 1
Envoyer un message via MSN à Smyds
Par défaut XMLHTTPRequest

Bonjour,

Ma page contient un nombre, un bouton, et le nombre de personnes connectées.
Le chaque clic sur le bouton fait augmenter le nombre de 1. C'est un compteur, il ne sert à rien, mais il est très amusant.

Mais, n'ayant pas envie de recharger la page à chaque clic, j'ai voulu passer par un XMLHTTPRequest (que j'ai nommé xhr).

Donc, j'ai mes trois petites fonctions :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
// Incrémente le compteur
function Incr() {
   xhr.open('POST', 'inc.php', true);      
   xhr.send(null);
}
 
// Affiche le compteur
function Affiche(){
   xhr.open('POST', 'aff.php', false);   
   xhr.send(null);
   document.getElementById("hits").innerHTML = '<h1>' + xhr.responseText + '</h1>';
   setTimeout("Affiche()",500);
}
 
// Affiche le nombre de connexions
function nbco() {
   xhr.open('POST', 'nb_co.php', false);
   xhr.send(null);
   document.getElementById("nbco").innerHTML = xhr.responseText;
   setTimeout("nbco()",10000);
}
Ça marche pas trop mal. Mais avec firefox, j'ai un petit problème, apparement, il n'apprécie pas le fait qu'il y ai pas mal de requêtes en même temps.
Et souvent, les fonctions stopent en donnant ça (ici pour la fonction Affiche()) :
Code :
1
2
 
Erreur : uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: http://127.0.0.1/myryllio/public_html/ :: Affiche :: line 25"  data: no]
La boucle s'arrete, et c'est assez embetant...

Donc apparement le xhr.send plante en disant que ne n'ai pas fait de xhr.open, qui est pourtant une ligne au dessus...
Smyds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 14h37   #2
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
Ou crées-tu ton objet xhr ?
Là il est global et même pas initialisé. Donc très mauvaise idée !
__________________
Mon blog
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 14h39   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 3
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2007
Messages : 3
Points : 1
Points : 1
Envoyer un message via MSN à Smyds
il est initialisé quelques ligne au dessus. Effectivement, j'en ai fait un seul global.

Il vaudrait mieux en faire un à l'interieur de chaque fonction ?

Code :
1
2
3
4
5
6
7
8
9
10
 
if (window.XMLHttpRequest)          
{ 
    xhr = new XMLHttpRequest();     //  Firefox, Safari, ...
} 
else 
if (window.ActiveXObject)       
{
    xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer 
}
Smyds est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h03.


 
 
 
 
Partenaires

Hébergement Web