web-dev-qa-db-fra.com

Comment actualiser automatiquement une section de page

J'ai une partie de la page qui contient des données en direct, je pensais simplement actualiser la page toutes les deux minutes, mais ce n'est pas correct à cause d'autres éléments de la page.

Comment puis-je le faire? Quelle langue puis-je utiliser pour faire cela, ce qui est facile à faire et ce qui ne l’est pas, ce qui fonctionne bien et ce qui ne fonctionne pas. Peut-être des tutoriels clairs ou même des exemples de code.

Je vivrais pour faire cela dans quelque chose comme PHP, mais je ne sais pas par où commencer, après quelques recherches, je vois que Javascript et Ajax semblent être la norme, mais ma connaissance de ces langages ne me convient pas. jusqu'à zéro.

Merci pour le temps et aider les gens.

Oh, les données affichées proviennent d'une base de données, si cela peut vous aider.

Merci encore.

10
ragebunny

Vous pouvez utiliser une bibliothèque Javascript telle que jQuery et utiliser l'exemple simplifié suivant:

$("document").ready(function(){
  var interval = setInterval(refresh_box(), 60000);
  function refresh_box() {
    $("#myDiv").load('path/to/databasepage.php');
  }
} /*<= The closer ) bracket is missing in this line*/

et dans votre page path/to/databasepage.php, vous pouvez avoir votre requête sélectionnée et faire écho aux résultats.

Cela définit un délai d'attente pour appeler une fonction (dans ce cas, refresh_box()) toutes les 60 secondes (ce qui correspond à 60 000 millisecondes) et charge les données de path/to/databasepage.php dans votre div avec l'ID myDiv.

modifier:

Si vous souhaitez arrêter l'actualisation automatique, vous pouvez lier un élément pour effacer l'intervalle en procédant comme suit:

// assuming you have a clickable element 
// (typically a button or so) id called 'stop_refresh'
$("#stop_refresh").click(function(){
  clearInterval(interval);
}
16
dan

La méthode la plus simple ne comporte même pas PHP ou JavaScript. Vous pouvez le faire avec un <iframe> en HTML simple. L'iframe charge une page HTML ou PHP avec l'en-tête d'actualisation approprié et se met à jour.

Page HTML principale:

<html>
<head></head>
<body>
   static content

    <iframe id='dynamic-content' src='refreshing.php' />
</body>
</html>

page rafraîchissante.php:

<html>
<head>
  <!-- refresh every 5 seconds -->
  <meta http-equiv="refresh" content="5">
</head>
<body>
  dynamic content
</body>
</html>

Notez que <meta http-equiv="refresh"> est déconseillé pour l'actualisation générale d'une page entière, mais il est assez sûr d'utiliser dans un iframe qui doit être constamment actualisé.

5

Vous ne pouvez pas vraiment exécuter une actualisation en temps réel pour les composants de page en PHP, AJAX est le moyen le plus courant (Javascript asynchrone et Xml) - qui utilise Javascript pour interroger d'autres scripts (pouvant être des pages .php) qui retournent ensuite prédéfinis sortie basée sur la requête - cette sortie peut être du contenu à injecter dans une page, ou des données qui peuvent ensuite être interprétées par votre page pour une autre action.

Dans ce cas, votre page .php inclurait JS (javascript) dans l’en-tête, qu’il soit lié ou en ligne, ce qui contiendrait les détails du lancement d’une demande AJAX, à savoir combien de fois ou sur quel déclencheur etc), par quels moyens (POST ou GET), ce qui est envoyé (toutes les autres variables que vous souhaitez), quel est le script cible (le script qui gérera la demande et affichera le contenu/les données requis) et ce qu'il faut faire quand la réponse est reçue (c'est-à-dire quel élément de la page doit être mis à jour avec la réponse).

Quelques mots sur AJAX:

http://webdesign.about.com/od/ajax/a/aa101705.htm

http://webtrends.about.com/od/web20/a/what-is-ajax.htm

Le moyen le plus simple de commencer est probablement d’utiliser une bibliothèque javascript préexistante telle que la très répandue jQuery (jquery.com). Il existe des milliers de tutoriels, et bien que vous ayez besoin de faire de la programmation javascript, vous pouvez vous fier à une syntaxe assez simple (aussi simple que $('#myelement').load('mypage.php')):

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.sitepoint.com/ajax-jquery/

http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

En termes simples:

  1. Vous avez votre page php avec l'élément qui nécessite une mise à jour (page A)
  2. Construisez un autre script php qui affiche le contenu que vous souhaitez «actualiser», par exemple. les dernières nouvelles, chaque fois qu'il est diffusé (page B)
  3. Lien vers la bibliothèque jQuery dans votre section d’en-tête (page A)
  4. Ecrivez une simple fonction jquery dans la section d'en-tête de la page A, qui dit toutes les X secondes/minutes, lancez une requête AJAX pour récupérer le contenu de la page B et l'insérer dans un élément (DIV) de la page A
3
SW4

c'est vraiment une grande question.

Le moyen le plus courant consisterait à utiliser AJAX, mais vous pouvez également utiliser une base de données javascript comme TaffyDB - La base de données JavaScript (jamais utilisé afin que je ne puisse pas vraiment en parler).

Quoi qu'il en soit, le moyen le plus simple serait d'utiliser JQUERY.

0
dyesdyes