Ajax.PeriodicalUpdater non funziona con IE Internet Explorer (Prototype.js)

ottobre 24th, 2008 by J3njy

Salve, scrivo questo articolo in quanto ho finalmente risolto un fastidioso problema che non mi permetteva di usare la funzione Ajax.PeriodicalUpdater di Prototype.js con Internet Explorer. Su Firefox ed Opera tutto ok, ma su IE manco a parlarne, non mi ricaricava in parole povere il DIV con i dati aggiornati (che per brevità venivano aggiornati con un random).

Il motivo alla causa di questo problema che mi ha fatto uscire scemo dopo una mattinata di scervellamenti vari è il Caching di Internet Explorer :

Internet explorer implementa il caching delle richieste GET. Di conseguenza ad ogni refresh tramite Ajax.PeriodicalUpdater di prototype, ricaricherà dalla cache locale e dunque non ci sarà un refresh con i dati lato server.

La soluzione dunque è quella di inserire nel file che verrà richiamato (nel mio caso carrello.php) gli header necessari per evitare che IE effettui il caching, ossia :

header( “Expires: Mon, 26 Jul 1997 05:00:00 GMT” );  //disabilito il caching di IE
header( “Last-Modified: ” . gmdate( “D, d M Y H:i:s” ) . ” GMT” );
header( “Cache-Control: no-cache, must-revalidate” );
header( “Pragma: no-cache” );

In parole povere il file d’esempio carrello.php diventa così :

<?php

header( “Expires: Mon, 26 Jul 1997 05:00:00 GMT” );  //disabilito il caching di IE
header( “Last-Modified: ” . gmdate( “D, d M Y H:i:s” ) . ” GMT” );
header( “Cache-Control: no-cache, must-revalidate” );
header( “Pragma: no-cache” );

$i=rand(1,200);
echo’<div class=”box”>
<p>Hai nel carrello <span class=”evidenzia”>’;echo $i; echo’</span> articoli.<br><br></p> <p>Spesa totale di <span class=”evidenzia”>100 €</span><br><br></p> </div>’;

?>

Sperando che vi sia d’aiuto ! ;D

Condividi:
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Technorati
  • Blogosphere News
  • LinkedIn
  • Live
  • MySpace
  • Wikio
  • Yahoo! Buzz
  • YahooMyWeb

Postato in Information Tecnology, Siti Web | No Commenti »

Lascia un Commento

Nota Importante: Moderazione commenti abilitata. Non inviare di nuovo il commento se non lo vedi visibile prima di 24 ore.

*
prima di inviare il tuo commento.
Anti-Spam Image