2009-05-11 7 views
2

Je regardais ce site http://bountii.com/search.php?item=routercomment faire une page Web qui semble ne pas « reload »

et je l'ai regardé d'autres sites qui fonctionnent de manière similaire.

La page a beaucoup de filtres fournis par exemple: gamme de prix, popularité etc. Mais quand ces filtres sont exécutés il semble que seulement une certaine section de la page Web soit chargée plutôt que la page entière. Cela ne semble pas utiliser ajax car il renvoie l'ensemble de la requête au serveur (page search.php).

il ne semble pas être en utilisant la technique mentionnée sur cette page http://nettuts.s3.amazonaws.com/196_jquery/index.htm où ils modifient juste le CSS pour ne pas afficher des liens.

Je suis curieux de savoir comment cela fonctionne. Des pensées?

+0

Je ne vois rien sur cette page qui ne nécessite pas que je me connecte. Désolé –

+0

Je ne suis pas sûr de ce que vous essayez de montrer avec le lien Bountii, tout ce que je clique là-bas fait une pleine page recharger. –

Répondre

4

Il suffit de recharger très rapidement. Il n'y a pas de Javascript sur cette page entière. Le HTML est bien formé et la page est très simpliste.

+0

Eh bien, je vais être damné. Je pense que la section d'en-tête ne recharge toujours pas –

+6

Eh bien, vous pouvez penser ce que vous voulez, tant que vous ne vous souciez pas d'être correct. La page entière est rechargée. : b –

+0

.... ok alors.et vous avez beaucoup de contenu sur votre site Web –

2

Si vous voulez voir ce qui se passe, faites ceci:

  1. Installer Firefox si vous n'êtes pas déjà utiliser
  2. installer l'extension Firebug
  3. Allez sur le site qui vous intéresse dans, et cliquez sur l'icône petite firebug (dans la barre d'état en bas à droite, c'est un petit bug), et activer toutes les options firebug pour ce site
  4. Rechargez la page Web et cliquez sur
  5. Regardez les differen t panneaux de firebug. Il tracera toutes les demandes du réseau (XHR ou autre) et vous pourrez y jeter un coup d'œil.
+0

il n'envoie pas de demande XHR donc je suppose qu'il fait un plein chargement de la page –

0

Il pourrait être demandent de nouvelles données par Ajax, remplissage d'un élément <div> masqué, puis le remplacement du <div> visible avec l'une est masquée.

+0

pourrait être ... mais ce n'est pas :) –

0

il utilise probablement le Javascript XMLhttprequest. Facebook et beaucoup d'autres sites utilisent cela. Il fait un voyage sur le serveur sans recharger toute la page.

Voici un exemple de w3schools.com:

<script type="text/javascript"> 

var xmlhttp; 
function loadXMLDoc(url) 
{ 
xmlhttp=null; 
if (window.XMLHttpRequest) 
    {// code for all new browsers 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    {// code for IE5 and IE6 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
if (xmlhttp!=null) 
    { 
    xmlhttp.onreadystatechange=state_Change; 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(null); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP."); 
    } 
} 

function state_Change() 
{ 
if (xmlhttp.readyState==4) 
    {// 4 = "loaded" 
    if (xmlhttp.status==200) 
    {// 200 = OK 
    // ...our code here... 
    } 
    else 
    { 
    alert("Problem retrieving XML data"); 
    } 
    } 
} 
</script> 
+0

Si vous regardez simplement la source, vous pouvez clairement voir cette n'est pas le cas. Il ne sert à rien de faire une supposition ici. –

+0

ce peut ne pas être le cas pour l'exemple qu'il a donné mais c'est un moyen de rendre la page recharger des parties en rechargeant toute la page –

0

Peut-être l'optimisation du navigateur et cache joue un rôle en plus simplement un chargement rapide. J'ai l'impression qu'il a fait charger une page plusieurs fois en alternant des actualisations de pages en cliquant sur des liens.

Juste essayé dans IE et chaque clic, je peux voir un rechargement visible. Dans Chrome, il ne semble pas y avoir d'actualisation, je suppose en raison de l'optimisation du navigateur. Je sais que dans Chrome, si vous basculez entre 2 onglets avec le même contenu, il ne redessine même rien.

Questions connexes