Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Ajax senza oggetto XmlHttpRequest :: Indice Php

Ajax senza oggetto XmlHttpRequest

Categoria: Php Inserito il: 13-09-2006 Stampa (5284 click)

Ajax è una tecnologia, concepita neanche tanto di recente, che stà avendo larga diffusione nell'ultimo periodo grazie anche alla spinta di siti particolarmente importanti come Google che hanno inplementato alcuni loro servizi grazie ad essa.

Uno dei problemi che si trova ad affrontare lo sviluppatore nel momento in cui deve utilizzare Ajax è quello relativo alla dipendenza dall'oggetto XmlHttpRequest; vi sono browser avanzati come Firefox che supportano nativamente l'oggetto in questione, altri software, come per esempio IE6 molto diffuso ma per alcuni aspetti obsoleto, includono XmlHttpRequest supportandolo come fosse un controllo ActiveX.

Come è noto, in IE6 l'uso di controlli ActiveX determina una notifica di sicurezza da parte del browser all'utente in navigazione; ciò può risultare svantaggioso in quanto l'utente potrebbe credere che il proprio sistema sia in pericolo e abbandonare le pagine che aveva intenzione di visitare, in altri casi il codice potrebbe addirittura non funzionare e basta.

Per ovviare ai problemi di compatibilità dei propri script lo sviluppatore ha la possibilità di eliminare il problema alla radice, cioè utilizzare Ajax senza l'oggetto XmlHttpRequest. Per far questo potremmo utilizzare il tag <script>, notoriamente utilizzato per includere file JavaScript, all'interno di un documento ".php" (ad esempio: "str.php") che si occuperà della generazione del codice JS:

<?
$str = "<h1>Stringa!!!!</h1>";
?>
div = document.getElementById('messaggio');
div.innerHTML = '<? echo $str; ?>';
Data quindi una stinga da stampare, il listato prevede la creazione di un <div> che ha come Id "messaggio" il cui compito sarà quello di contenere la stringa stampata a video.

File JavaScript di supporto

La stringa non dovrà essere stampata al caricamento della pagina ma solo tramite una chiamata effettuata con un pulsante; per far questo avremo bisogno di un ulteriore file JS (ad esempio "ajax.js")per il controllo dell'azione richiesta:
//Controllo sull'URL
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);

function exec (url)
{
  //controlla che sia presente http
  if (url.substring(0, 4) != 'http')
  {
    url = base_url + url;
  }

  //creazione dell'elemento JS
  var jsel = document.createElement('SCRIPT');
  jsel.type = 'text/javascript';
  jsel.src = url;

  //l'elemento JS viene appeso per la chiamata di AJAX
  document.body.appendChild (jsel);
}
La prima funzione del codice riportato è quella di rilevare l'URL di base; quindi la funzione exec potrà controllare se l'url appartiene o no allo stesso server del file ".js"; viene poi creato un nuovo elemento JS attraverso createElement() e impostato l'attributo src dell'elemento JS; infine viene caricato il file riferito all'elemento JS.

Il file per la chiamata di Ajax

Una volta creato il file ".php" per il "contenitore" della stringa e il documento ".js" per la generazione della stessa attraverso una "button", non ci rimane altro che scrivere un breve file ".html" necessario per la chiamata di Ajax attraverso la funzione exec:
<html>
<head>
<title>Ajax senza l'oggetto XmlHttpRequest</title>
<script type="text/javascript" src="ajax.js"></script> 
</head>

<body>
<div id="messaggio">
</div>
<input type="button" onclick="exec ('str.php');" 
value="Mostra la stringa" />

</body>
</html>
Per eseguire il test dello script sarà ora sufficiente clickare sul pulsante che comparirà al caricamento della pagina

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Inviare semplici email di testo con PHPMailer
Una volta terminate le opportune operazioni di installazione e configurazione di PHPMailer, saremo pronti ad utilizzare la classe per l'invio... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti