|
|
|
|
Configuration: Windows XP Firefox 3.0.1
Bonjour
Utilises des "Berkeley sockets" ! Le cache c'est utile ; même si tu renouvelles les infos souvent ! (On aura quoi si ton serveur est bloqué et que la portion de la page renouvelée n'est plus en cache ?) http://fr.wikipedia.org/wiki/Berkeley_sockets Merci à d'autres pour les détails car je ne sais pas les mettre en œuvres Du cache j'veux du cache :)) |
Bonjour
Voici un exemple d'une requête qui appelle une page php qui affichera l'heure server (actualisation toutes les minutes). function XHRQuery()
{
var XHR; // on déclare l'instance
if (window.XMLHttpRequest) XHR = new XMLHttpRequest(); // Firefox, Opera, Konqueror, Safari, IE 7...
else if (window.ActiveXObject) XHR = new ActiveXObject('Microsoft.XMLHTTP'); // Internet Explorer < 7.
else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); // Navigateur ancien.
XHR.open('POST','heure.php',true);
/*Ouverture de la connexion avec heure.php, le premier paramètre indique une méthode
(POST dans notre cas), le deuxième la page à contacter, le troisième le type de connexion
(true = asynchrone, false = synchrone), true est recommandé.*/
XHR.onreadystatechange = function() // attribution de la fonction
{
if (XHR.readyState == 4)
{
document.getElementById('give_me_hour').innerHTML = XHR.responseText;
}
else
{
document.getElementById('give_me_hour').innerHTML = '<span class="wait">Veuillez attendre, opération en cours...</span>';
}
}
XHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var data = 'pseudo='+escape("Gérard")+'&email='+escape("gerarddupond@monemail.com");
/*Ici, on veut juste l'heure, mais comme nous utilisons la méthode POST, il est possible
de mettre des données dans data, on va donc mettre un pseudonyme et un email que PHP nous
retournera en plus de l'heure. De plus, à la place du texte dans escape, on peut mettre
un nom de variable, exemple : escape(pseudo).*/
XHR.send(data); //Envoi des données par la méthode post.
}
var heure = setInterval('XHRQuery()', 60000);
//heure.php
$time = time();
$heures = date('H', $time);
$minutes = date('i', $time);
$secondes = date('s', $time);
echo 'Bienvenue '.$_POST['pseudo'].', votre email est '.$_POST['email'].' et il est '.$heures.':'.$minutes.':'.$secondes.'.';
Récursivité : Attention ! La récursivité n'est pas assuré. Ainsi du code javascript présent dans la page chargé via XMLHttpRequest ne sera pas exécuté. Il faut extraire le code javascript depuis la page mère afin de l'exécuter. Le code suivant exécute le javascript présent entre des balises <script></script> dans la page fille, après l'avoir chargé comme décrit précédemment : if (XHR.readyState == 4)
{
document.getElementById('contenu').innerHTML = XHR.responseText;
var js = document.getElementById('contenu').getElementsByTagName('script');
for( var i in js )
{
eval(js[i].text);
}
}
Source 'XMLHttpRequest' sur Wikipedia® : http://fr.wikipedia.org/wiki/XMLHttpRequest Merci Au mieux possible :)) |
Merci pour vos réponses
Le problème, c'est que vu mon niveau je n'ai absolument rien compris. Quand j'ai vu tout le code j'ai commencé par avoir peur, puis ensuite j'ai essayé de comprendre, j'ai été voir également sur les liens mais rien à faire, je patauge complètement !!! En fait je m'attendais juste à une ligne de commande à glisser au niveau de mon élément DIV et de son contenu que je veux actualiser à chaque fois qu'une personne visite mon site tout en laissant le reste de la page dans le cache. Mais apparemment ce n'est pas aussi simple. Donc pour l'instant je vais mettre la ligne de code avec le "no-cache" ça sera mieux que rien et je vais continuer à essayer de comprendre et maîtriser les éléments que vous m'avez donné dans vos réponses. Merci encore, et si d'autres personnes avaient une autre solution n'hésitait pas. |
Bonjour
Le problème, c'est que vu mon niveau je n'ai absolument rien compris. Je te rassure mon niveau en programmation n'est pas très haut ; je touche même le sol :)) Une question revient souvent sur les forums dédiés au JavaScript : Peut-on réaliser une requête sur le serveur sans (re)charger une page et sans utiliser d'astuces telles qu'une frame invisible ou une fenêtre popup ? Jusqu'à peu, je pensais que la réponse était aussi claire que négative. Et puis j'ai découvert XMLHTTPRequest et la réponse est devenue : « Oui ! » Mais les documentations sur ce sujet ne se bousculent pas sur le net, notamment en français. D'où cette petite introduction aux objets XMLHTTPRequest (que nous appellerons ainsi même si le nom diffère d'un navigateur à l'autre). Pour l'instant, c'est uniquement compatible Internet Explorer et Firefox mais je crois avoir lu quelques informations intéressantes pour Opera[1]. Quant à Netscape, bah... je ne suis pas nécrophile. http://www.toutjavascript.com/savoir/xmlhttprequest.php3 Merci La recherche sur le web pour savoir et tout savoir c'est pas pareil :)) |
Bonjour
Tutoriel AJAX (Asynchronous Javascript And XML) La création de pages web dynamiques coté client http://www.xul.fr/xml-ajax.html Merci Ça avance :)) ? |
Résultats pour empecher le cache d'une partie de ma page
Résultats pour empecher le cache d'une partie de ma page
Résultats pour empecher le cache d'une partie de ma page
Résultats pour empecher le cache d'une partie de ma page
Résultats pour empecher le cache d'une partie de ma page