Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Guida ad HTML5: l’API di messaggistica (3/8)
Scritto da Pellegrino Principe il 04-03-2011 ore 11:33
Intel Parallel Studio XE
Vediamo, ora, il codice che il client dovrà avere per utilizzare la metodologia definita come JSONP, citata nel precedente articolo, dove nell’evento load dell’oggetto window sarà definita una funzione il cui nome, showNews, rappresenterà il valore del parametro jsonp passato alla pagina newswidgets.php, che lo utilizzerà per formattare nel modo appropriato la risposta.

In pratica, tale valore, è il padding, o prefisso, che sarà incluso nella risposta dell’oggetto JSON. Inoltre, come ultima cosa, verrà creato dinamicamente un elemento script, incorporato nell’elemento body della pagina web, il cui attributo src avrà come valore il risultato ritornato dalla pagina newswidgets.php:
  1. ...
  2. <script>
  3. 	window.addEventListener("load", function ()
  4. 	{
  5. 		this.showNews = function (response)
  6. 		{
  7. 			if (response)
  8. 			{
  9. 				var id = response.id;
  10. 				var title = response.title;
  11. 				// ... fa qualcosa…
  12. 			}
  13. 		}
  14.  
  15. 		var s = document.createElement("script");
  16. 		s.src = "http://user1.com:81/php/newswidgets.php?jsonp=showNews";
  17. 		document.body.appendChild(s);
  18.  
  19. 	}, false);
  20.  </script>
  21. ...
Il codice, invece, della pagina PHP prima citata sarà il seguente:
  1. <?php
  2. $cb = $_GET["jsonp"]; // padding ovvero la funzione da invocare per gestire il JSON
  3.  
  4. $news = "{'id':1, 'title':'IPHONE 4', 'author' : 'josh', 'desc' : 'The IPHONE 4...'}";
  5.  
  6. if($cb)
  7. {
  8. 	echo $cb . "(" . $news . ")";
  9. }
  10. ?>
dove, praticamente, il comando echo restituirà in risposta la seguente stringa:
  1. showNews({'id':1, 'title':'IPHONE 4', 'author' : 'josh', 'desc' : 'The IPHONE 4...'})
che è bene ribadirlo, sarà assegnata all’attributo src dell’elemento script prima citato, che la valuterà come un’invocazione di funzione, a cui sarà passato come argomento l’oggetto JSON indicato.

Tale approccio, quantunque di facile utilizzo, ha il solito pericoloso problema di sicurezza, perché viene iniettato direttamente nella pagina web del codice JavaScript, che potrebbe compiere operazioni malevoli, e inoltre presenta lo svantaggio di dover necessariamente utilizzare una tecnologia lato server (PHP, JSP, ASP.NET, ecc.) per dare dei dati in risposta.

Vediamo, infine, un’ulteriore metodologia, denominata Fragment Id Messaging, che consente la comunicazione tra una pagina web di un dominio e un’altra pagina web di un altro dominio caricata in un iframe, dove l’inline frame è un elemento HTML che rappresenta un ambiente, o contesto di navigazione, in cui viene presentato a un utente un documento di una pagina web indicata tramite il suo attributo src.

In breve, la tecnica appena citata, usa per lo scambio di dati quella parte dell'URL denominata fragment identifier, che ricordiamo essere il testo posto dopo il simbolo di cancelletto o hash (#).
Precedente: MFC Class Wizard, un utile strumento di Visual Studio 2010
Successiva: Beginning Java EE 6 with GlassFish 3, Second Edition
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.299 secondi.