Bonjur, J'ai un gros probleme de mise à jour de page. En fait, j'aimerai pouvoir mettre à jour ma page web, dès qu'il y a une modification dans la base de données, et cela sans rafraichissement.
Pourriez vous me conseiller?
merci
= impossible !dès qu'il y a une modification dans la base de données [+] sans rafraichissement.
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
<?php
define ('JPSPAN_ERROR_DEBUG',TRUE);
require_once '../JPSpan.php';
require_once JPSPAN . 'Server/PostOffice.php';
//-----------------------------------------------------------------------------------
class modifBDD{
function getDate() {
$date= ....;//une date valide
return date('r',$date);
}
}
$S = & new JPSpan_Server_PostOffice();
$S->addHandler(new modifBDD());
//-----------------------------------------------------------------------------------
// Generates the Javascript client by adding ?client to the server URL
//-----------------------------------------------------------------------------------
if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'], 'client')==0) {
// Compress the Javascript
// define('JPSPAN_INCLUDE_COMPRESS',TRUE);
$S->displayClient();
} else {
require_once JPSPAN . 'ErrorHandler.php';
$S->serve();
}
?>
code html/php client :
<?php
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
// Just a utility to help the example work out where the server URL is...
function path() {
$basePath = explode('/',$_SERVER['SCRIPT_NAME']);
$script = array_pop($basePath);
$basePath = implode('/',$basePath);
if ( isset($_SERVER['HTTPS']) ) {
$scheme = 'https';
} else {
$scheme = 'http';
}
echo $scheme.'://'.$_SERVER['SERVER_NAME'].$basePath;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="<?php path(); ?>/mesUtilitaires.php?client"></script>
<script type="text/javascript">
var dateInitiale = Date.parse('<?php echo date('r'); ?>');
// on va passer par un systeme asynchrone
// (en utilisant le handler ci dessous)
// sinon l'utilisateur ne pourra pas utiliser la page pendant les requêtes
// ceci ne fait que gerer les reponse, l'appel est un peu plus bas
var CompletionHandler = {
// Callback method
// note ici que le nom de méthode est le même qu'en php
// mais en minuscules. Je sais pas d'ou viens la limitation
getdate: function(result) {
if(Date.parse(result)>dateInitiale){
//Raffraichir la page
}
}
}
//la fonction JS qui va appeller le script php
// on va la déclancher via un timer
function checkRefresh() {
// Create du client distant
// note ici que le nom de classe est le même qu'en php
// mais en minuscules. Je sais pas d'ou viens la limitation
var a = new modifbdd(modifBDDHandler);
// Son met un timeout de 3 secondes pour pas attendre pour rien
a.timeout = 3000;
// Ignore timeouts
a.clientErrorFunc = function(e) {
if ( e.code == 1003 ) {
// Ignore...
} else {
alert(e);
}
}
// on appelle la methode distante
// même contrainte avec les minuscules
a.getdate();
}
// le timer toute les 5 secondes
// (dont 3 max d'attentes de l'appel précédent)
setTimeout("checkRefresh()",5000);
</script>
..."... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".