Script de rafraichissement

Script de rafraichissement - HTML/CSS - Programmation

Marsh Posté le 09-04-2009 à 12:16:06    

bonjour , j'ai un script pour rafraichir une <div> qui marche bien, le voici :
 


var xhr = null;  
var n=0;
function getXhr()
{
     if(window.XMLHttpRequest)xhr = new XMLHttpRequest();  
else if(window.ActiveXObject)
  {  
  try{
     xhr = new ActiveXObject("Msxml2.XMLHTTP" );
     } catch (e)  
     {
     xhr = new ActiveXObject("Microsoft.XMLHTTP" );
     }
  }
else  
  {
  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );  
  xhr = false;  
  }  
}
 
function init()
{
loop();
}
 
function loop()
{
setTimeout('loop();',15*1000);
ShowPage();
ShowPage2();
}
 
function ShowPage()
{
getXhr();
xhr.onreadystatechange = function()
    {
     if(xhr.readyState == 4 && xhr.status == 200)
     {
     document.getElementById('info_musique').innerHTML=xhr.responseText;
     }
    }
     
xhr.open("GET","http://www.ipnoz.eu/include/online.php",true);
xhr.send(null);
 
}


 
il marche tellement bien que je voudrais faire de meme avec un autre <div> sauf qu'un seul des deux script marche , pas moyen de faire fonctionner les deux en meme temps . J'ai essayé de deux facons ; d'abords j'ai copier le script et je l'ai adapté pour le 2e <div>  .  
 
La deuxieme facon fut de rajouter au script :
 


function ShowPage2()
{
getXhr();
xhr.onreadystatechange = function()
    {
     if(xhr.readyState == 4 && xhr.status == 200)
     {
     document.getElementById('playlist').innerHTML=xhr.responseText;
     }
    }
     
xhr.open("GET","http://www.ipnoz.eu/include/refresh_playlist.php",true);
xhr.send(null);
 
}


 
et :
 


function loop()
{
setTimeout('loop();',15*1000);
ShowPage();
ShowPage2();
}


 
Mais a chaque fois , seul la 2e <div> est rafraichit automatiquement .
 
Une idée ?

Reply

Marsh Posté le 09-04-2009 à 12:16:06   

Reply

Marsh Posté le 10-04-2009 à 01:09:36    

Ben c'est un peu normal aussi que ca marche pas, ta variable xhr est globale :/
 
Te prends pas la tête et utilises jQuery (ou équivalent) pour ce genre de truc
 

Code :
  1. var loop = function ()
  2. {
  3.  // ton showpage
  4.  $('#info_musique').load ('http://www.ipnoz.eu/include/online.php');
  5.  
  6.  // ton showpage2
  7.  $('#playlist').load ('http://www.ipnoz.eu/include/refresh_playlist.php');
  8.  
  9.  setTimeout (this, 15 * 1000);
  10.  return true;
  11. }
  12.  
  13. setTimeout (loop, 15 * 1000);


 
et c'est tout (et encore on peut simplifier), ca devrait plus ou moins le faire :o


Message édité par SICKofitALL le 10-04-2009 à 01:09:50

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 10-04-2009 à 01:16:35    

Et si tu veux utiliser ton code à tout prix, fais plutot ca :

Code :
  1. // getXHR
  2. var getXHR = function ()
  3. {
  4.  if (window.XMLHttpRequest)
  5.    return new XMLHttpRequest ();
  6.  else if (window.ActiveXObject)
  7.  {  
  8.    try{ return new ActiveXObject ("Msxml2.XMLHTTP" ); }
  9.    catch (e) { return new ActiveXObject("Microsoft.XMLHTTP" ); }
  10.  }
  11.  else  
  12.  {
  13.    alert ("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );  
  14.    return false;  
  15.  }  
  16. }
  17.  
  18. // showpage 1
  19. var ShowPage = function ()
  20. {
  21.  var xhr = getXhr();
  22.  if (!xhr)
  23.    return false;
  24.  // ...
  25.  xhr.send(null);
  26.  return true;
  27. }
  28.  
  29. // showpage 2
  30. var ShowPage2 = function ()
  31. {
  32.  var xhr = getXhr();
  33.  if (!xhr)
  34.    return false;
  35.  // ...
  36.  xhr.send(null);
  37.  return true;
  38. }


 
mais bon c'est plus long ;)


Message édité par SICKofitALL le 10-04-2009 à 01:17:29

---------------
We deserve everything that's coming...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed