par
Sékiltoyai » 10 août 2007, 13:30
Bon, maintenant, c'est parti pour les conseils
Tout d'abord, sors le maximum de ta fonction, notamment :
Code : Tout sélectionner
var xhttpRequest=null;
if (window.XMLHttpRequest) {
xhttpRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
}
c'est inutile de reconstruire l'objet xhr à chaque fois, tu peux le construire une fois pour toute.
Code : Tout sélectionner
xhttpRequest.onreadystatechange = function()
{
if(xhttpRequest.readyState==4)
{
// C'est ici que tu dois récupérer le résultat de la requète.
var title = xhttpRequest.responseText
document.getElementById('title').innerHTML = title;
setInterval('reloadtitle()',1000); // la fonction va s'actualiser toute les secondes....
}
};
Pareil, tu peux ne définir cette fonction qu'une seule fois hors de ta fonction reloadtitle().
Autre chose, ici, ta variable title ne sert à rien :
Code : Tout sélectionner
var title = xhttpRequest.responseText
document.getElementById('title').innerHTML = title;
Tu peux faire l'assignation directe :
Code : Tout sélectionner
document.getElementById('title').innerHTML = xhttpRequest.responseText;
Sinon, tu utilises mal setInterval(). Cette fonction ne doit être utilisée qu'une seule fois. Tel que tu l'utilises, à chaque fois que tu l'appelles, tu écrases le précédent appel à la fonction (le résultat est le même mais c'est on ne peut plus sale). Ce que tu peux faire, c'est la mettre dans ton onLoad :
Code : Tout sélectionner
<body onLoad="reloadtitle();setInterval('reloadtitle', 1000);">
De cette manière, tu ne l'utilises qu'une fois, et tu t'assures que tu ne chargeras pas le titre avant que la page ne soit chargée (sans quoi tu pourrais avoir des erreurs).
Une fois que tu auras fait tout cela, ton code sera un peu plus propre.
/* Merci à PHPfrance pour m'avoir aidé autant à établir ce script et plus particulièrement à un membre qui devrait devenir modo

*/
Ce n'est pas à moi qu'il faut le dire, ça

Bon, maintenant, c'est parti pour les conseils :)
Tout d'abord, sors le maximum de ta fonction, notamment :
[code] var xhttpRequest=null;
if (window.XMLHttpRequest) {
xhttpRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
}[/code]
c'est inutile de reconstruire l'objet xhr à chaque fois, tu peux le construire une fois pour toute.
[code]xhttpRequest.onreadystatechange = function()
{
if(xhttpRequest.readyState==4)
{
// C'est ici que tu dois récupérer le résultat de la requète.
var title = xhttpRequest.responseText
document.getElementById('title').innerHTML = title;
setInterval('reloadtitle()',1000); // la fonction va s'actualiser toute les secondes....
}
};[/code]
Pareil, tu peux ne définir cette fonction qu'une seule fois hors de ta fonction reloadtitle().
Autre chose, ici, ta variable title ne sert à rien :
[code] var title = xhttpRequest.responseText
document.getElementById('title').innerHTML = title; [/code]
Tu peux faire l'assignation directe :
[code] document.getElementById('title').innerHTML = xhttpRequest.responseText; [/code]
Sinon, tu utilises mal setInterval(). Cette fonction ne doit être utilisée qu'une seule fois. Tel que tu l'utilises, à chaque fois que tu l'appelles, tu écrases le précédent appel à la fonction (le résultat est le même mais c'est on ne peut plus sale). Ce que tu peux faire, c'est la mettre dans ton onLoad :
[code]<body onLoad="reloadtitle();setInterval('reloadtitle', 1000);">[/code]
De cette manière, tu ne l'utilises qu'une fois, et tu t'assures que tu ne chargeras pas le titre avant que la page ne soit chargée (sans quoi tu pourrais avoir des erreurs).
Une fois que tu auras fait tout cela, ton code sera un peu plus propre.
[quote]/* Merci à PHPfrance pour m'avoir aidé autant à établir ce script et plus particulièrement à un membre qui devrait devenir modo :P */[/quote]
Ce n'est pas à moi qu'il faut le dire, ça :D