<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Diario di un programmatore qualunque</title>
	<atom:link href="http://wannabeprogrammatore.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wannabeprogrammatore.wordpress.com</link>
	<description>Yet another java addicted space monkey on the road</description>
	<lastBuildDate>Sun, 03 Feb 2008 01:19:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='wannabeprogrammatore.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/c14a2816e5cef5e13858fb572526d341?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Diario di un programmatore qualunque</title>
		<link>http://wannabeprogrammatore.wordpress.com</link>
	</image>
			<item>
		<title>3. AJAX for dummies 3: XMLHttpRequest</title>
		<link>http://wannabeprogrammatore.wordpress.com/2008/02/03/3-ajax-for-dummies-3-xmlhttprequest/</link>
		<comments>http://wannabeprogrammatore.wordpress.com/2008/02/03/3-ajax-for-dummies-3-xmlhttprequest/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 01:19:44 +0000</pubDate>
		<dc:creator>dani1302</dc:creator>
				<category><![CDATA[The AJAX way]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://wannabeprogrammatore.wordpress.com/?p=6</guid>
		<description><![CDATA[L&#8217;oggetto XMLHttpRequest è il tramite delle richieste verso l&#8217;application server.
I metodi di XHR sono:
open (method, uri [,async][,user][,password])
E&#8217; il primo metodo utilizzato, e racchiude una serie di parametri, di cui alcuni opzionali.
method indica il metodo di invio dei dati(GET o POST). Le differenze tra queste metodologie sono principalemente due: GET mostra all&#8217;utente nell&#8217;url i parametri inviati, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=6&subd=wannabeprogrammatore&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>L&#8217;oggetto XMLHttpRequest è il tramite delle richieste verso l&#8217;application server.</p>
<p>I metodi di XHR sono:</p>
<p><code>open (method, uri [,async][,user][,password])</code><br />
E&#8217; il primo metodo utilizzato, e racchiude una serie di parametri, di cui alcuni opzionali.<br />
<code>method</code> indica il metodo di invio dei dati(GET o POST). Le differenze tra queste metodologie sono principalemente due: GET mostra all&#8217;utente nell&#8217;url i parametri inviati, con la sintassi pagina.jsp?parametro=valore, questo limita la dimensione della richiesta a 256 caratteri. Il metodo POST permette di inviare una quantità maggiore di dati.<br />
<span id="more-6"></span><br />
<code>uri</code> è l&#8217;url della chiamata, sia essa una pagina html, un file xml, una pagina jsp od una servlet.  Se il metodo è GET l&#8217;uri conterrà i parametri passati, nella sintassi pagina?parametro1=valore&amp;parametro2=valore&#8230;  Il path della pagina può essere relativo od assoluto.</p>
<p><code>async</code> indica se la richiesta è di tipo asincrono o meno. Solitamente è <code>true</code>.</p>
<p>Il secondo metodo visto nell&#8217;esempio <font color="#ff0000">(linkare)</font> è send (<code>ajax.send(null)</code>).</p>
<p>Open e send sono sufficienti a effettuare una chiamata completa di tipo GET.</p>
<p>Per effettuare una chiamata POST la sintassi è la seguente:</p>
<p><code>ajax.open("post","cartella/pagina.jsp", true);<br />
ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");<br />
ajax.send("parametro=valore");<br />
ajax.send("parametro2=valore2");</code></p>
<p>Per chiudere la connessione con il server, oltre al tipo di contenuti è consigliabile impostare un&#8217;altro header dal nome connection e con contenuto pari a close.<br />
<code>ajax.setRequestHeader("connection", "close");</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wannabeprogrammatore.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wannabeprogrammatore.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wannabeprogrammatore.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wannabeprogrammatore.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wannabeprogrammatore.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wannabeprogrammatore.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wannabeprogrammatore.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wannabeprogrammatore.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wannabeprogrammatore.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wannabeprogrammatore.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wannabeprogrammatore.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wannabeprogrammatore.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=6&subd=wannabeprogrammatore&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://wannabeprogrammatore.wordpress.com/2008/02/03/3-ajax-for-dummies-3-xmlhttprequest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9c2cc4c419d87ebc81a7b19291968ec9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dani1302</media:title>
		</media:content>
	</item>
		<item>
		<title>2. AJAX for dummies 2: il DOM</title>
		<link>http://wannabeprogrammatore.wordpress.com/2008/01/06/2-ajax-for-dummies-2-il-dom/</link>
		<comments>http://wannabeprogrammatore.wordpress.com/2008/01/06/2-ajax-for-dummies-2-il-dom/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 16:06:22 +0000</pubDate>
		<dc:creator>dani1302</dc:creator>
				<category><![CDATA[The AJAX way]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://wannabeprogrammatore.wordpress.com/2008/01/06/2-ajax-for-dummies-2-il-dom/</guid>
		<description><![CDATA[Continua da qui.
Il DOM(Document Object Model) è una rappresentazione logica della pagina HTML. E&#8217; assimilabile ad un albero i cui nodi sono i tag.
E&#8217; possibile visualizzare il DOM delle pagine con Mozilla Firefox, dal menù Strumenti &#8211; DOM Inspector, come nell&#8217;esempio.






Quindi gli elementi dell&#8217;albero sono di due tipi: i tag, che hanno degli attributi e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=5&subd=wannabeprogrammatore&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Continua da <a href="http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/">qui</a>.</p>
<p>Il DOM(Document Object Model) è una rappresentazione logica della pagina HTML. E&#8217; assimilabile ad un albero i cui nodi sono i tag.</p>
<p>E&#8217; possibile visualizzare il DOM delle pagine con Mozilla Firefox, dal menù Strumenti &#8211; DOM Inspector, come nell&#8217;esempio.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center"><a href="http://img98.imageshack.us/my.php?image=testhtmllf3.jpg" target="_blank"><img src="http://img98.imageshack.us/img98/350/testhtmllf3.th.jpg" border="0" /></a></td>
<td align="center"><a href="http://img166.imageshack.us/my.php?image=domtesthtmlhv7.jpg" target="_blank"><img src="http://img166.imageshack.us/img166/7981/domtesthtmlhv7.th.jpg" border="0" /></a></td>
</tr>
</table>
<p>Quindi gli elementi dell&#8217;albero sono di due tipi: i tag, che hanno degli attributi e possono avere figli, e i textNode, che rappresentano il testo contenuto tra i tag.</p>
<p><span id="more-5"></span><br />
Ogni tag è un elemento, recuperabile tramite le funzioni dell&#8217;oggetto document:</p>
<table>
<tr>
<td><code>getElementById()</code></td>
<td>(es: <code>var elem = document.getElementById(id)</code> )</td>
</tr>
<tr>
<td><code>getElementsByTagName()</code></td>
<td>(es: <code>var elem = document.getElementsByTagName(tagname)[0]</code> &#8211; E&#8217; un array)</td>
</tr>
</table>
<p>E&#8217; possibile creare nuovi elementi:</p>
<table>
<tr>
<td><code>createElement(tagname)</code></td>
<td>(es: <code>var elem = document.createElement("div")</code>)</td>
</tr>
<tr>
<td><code>createTextNode(testo da inserire)</code></td>
<td>(es: <code>var textnode = document.createTextNode("Hello World!")</code>)</td>
</tr>
</table>
<p>Ma questi non saranno inseriti nel DOM, finchè non verranno chiamati i metodi opportuni.<br />
Anche gli elementi hanno dei metodi che sono:</p>
<table>
<tr>
<td><code>getElementsByTagName()</code></td>
<td>(es: <code>var elem = elem2.getElementsByTagName("td")[0]</code>, identico a document, restringe la ricerca degli elementi tra i figli dell&#8217;elemento)</td>
</tr>
<tr>
<td><code>setAttribute</code>,<br />
<code>getAttribute</code>,<br />
<code>removeAttribute</code></td>
<td>(gestione degli attributi dei tag, nell&#8217;esempio la tabella aveva gli attributi <code>width</code>, <code>border</code>, <code>cellpadding</code>, <code>cellspacing</code>)</td>
</tr>
</table>
<p>C&#8217;è inoltre un attributo speciale, ovvero il nome del tag, che si recupera direttamente: <code>elem.tagName</code>.</p>
<p>Parentele:  ogni nodo quindi ha una relazione con gli altri nodi dell&#8217;albero. Queste parentele sono utilizzabili per navigare tra i nodi, utilizzando alcune proprietà degli elementi:<br />
<code>childNodes</code>,<br />
<code>firstChild</code>,<br />
<code>lastChild</code>,<br />
<code>nextSibling</code>,<br />
<code>previousSibling</code>,<br />
<code>parentNode</code><br />
Nell&#8217;esempio potremmo applicare il seguente codice Javascript:<br />
<code>var body = document.getElementsByTagName("body")[0];<br />
var array_figli = body.childNodes; //è un array da due elementi, i tag &lt;p&gt; e &lt;table&gt;<br />
var tag_p = array_figli.firstChild;<br />
var tag_table = array_figli.lastChild;<br />
var tag_head = body.previousSibling;<br />
var elem = body.nextSibling; //restituisce null<br />
var tag_html = body.parentNode;</code><br />
Inoltre abbiamo i metodi:</p>
<table>
<tr>
<td><code>hasChildNodes()</code></td>
<td>(restituisce <code>true</code> o <code>false</code>)</td>
</tr>
<tr>
<td><code>appendChild()</code></td>
<td>(es: <code>body.appendChild(document.createElement("div"))</code>, crea un tag <code>&lt;div&gt;</code> vuoto, e lo inserisce all&#8217;interno del <code>&lt;body&gt;</code>, nell&#8217;ultima posizione)</td>
</tr>
<tr>
<td><code>insertBefore()</code></td>
<td>(inserisce prima, sullo stesso livello gerarchico)</td>
</tr>
<tr>
<td><code>replaceChild()</code></td>
<td>(<code>elem.replaceChild(elem2)</code>, sostituisce l&#8217;elemento nell&#8217;albero, i figli dell&#8217;elemento sostituito, se non recuperati in precedenza, vanno persi)</td>
</tr>
<tr>
<td><code>removeChild()</code></td>
<td>(<code>elem.removeChild(another_elem)</code>, rimuove l&#8217;elemento)</td>
</tr>
<tr>
<td><code>cloneNode(true/false)</code></td>
<td>(restituisce un elemento identico, il booleano indica se copiare anche i figli)</td>
</tr>
</table>
<p><b>Appendice: innerHTML</b><br />
Nell&#8217;esempio della <a href="http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/">prima parte</a>, viene usato innerHTML. Questa proprietà, accessibile sia in lettura che in scrittura, è la rappresentazione testuale di tutto il contenuto di un elemento.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wannabeprogrammatore.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wannabeprogrammatore.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wannabeprogrammatore.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wannabeprogrammatore.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wannabeprogrammatore.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wannabeprogrammatore.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wannabeprogrammatore.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wannabeprogrammatore.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wannabeprogrammatore.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wannabeprogrammatore.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wannabeprogrammatore.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wannabeprogrammatore.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=5&subd=wannabeprogrammatore&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://wannabeprogrammatore.wordpress.com/2008/01/06/2-ajax-for-dummies-2-il-dom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9c2cc4c419d87ebc81a7b19291968ec9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dani1302</media:title>
		</media:content>

		<media:content url="http://img98.imageshack.us/img98/350/testhtmllf3.th.jpg" medium="image" />

		<media:content url="http://img166.imageshack.us/img166/7981/domtesthtmlhv7.th.jpg" medium="image" />
	</item>
		<item>
		<title>1. AJAX for dummies 1: Hello world</title>
		<link>http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/</link>
		<comments>http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 21:48:37 +0000</pubDate>
		<dc:creator>dani1302</dc:creator>
				<category><![CDATA[The AJAX way]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/</guid>
		<description><![CDATA[Conoscenze necessarie: HTML, JavaScript, CSS, un linguaggio server-side (per noi Java e suo uso in JSP), DOM.
Fonti:
http://javascript.html.it/guide/leggi/95/guida-ajax/
http://javascript.html.it/guide/leggi/24/guida-dom/
Teoria: AJAX sta per Asynchronous JavaScript And XML. Non si tratta di una tecnologia vera e propria, ma di un utilizzo di linguaggi esistenti, quali il JavaScript e XML per ottenere un dialogo client-server di tipo asincrono, ovvero scambio [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=4&subd=wannabeprogrammatore&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Conoscenze necessarie: HTML, JavaScript, CSS, un linguaggio server-side (per noi Java e suo uso in JSP), DOM.</p>
<p>Fonti:<br />
<a href="http://javascript.html.it/guide/leggi/95/guida-ajax/">http://javascript.html.it/guide/leggi/95/guida-ajax/</a></p>
<p><a href="http://javascript.html.it/guide/leggi/24/guida-dom/">http://javascript.html.it/guide/leggi/24/guida-dom/</a></p>
<p>Teoria: AJAX sta per Asynchronous JavaScript And XML. Non si tratta di una tecnologia vera e propria, ma di un utilizzo di linguaggi esistenti, quali il JavaScript e XML per ottenere un dialogo client-server di tipo asincrono, ovvero scambio di dati che avviene in modo veloce e trasparente, in tempi separati dal caricamento della pagina.</p>
<p>Pratica:</p>
<p><span id="more-4"></span></p>
<p>pagina.html<br />
<code><br />
&lt;html&gt;</code></p>
<blockquote><p><code>&lt;head&gt;&lt;title&gt;La mia prima applicazione AJAX&lt;/title&gt;</code><br />
<code></code></p></blockquote>
<blockquote><p><code> &lt;script language="Javascript"&gt;</code><br />
<code></code></p></blockquote>
<p><code> //recupera l'elemento della pagina tramite l'id<br />
function getById(id) {<br />
</code></p>
<blockquote><p><code> var elem;</code><br />
<code></code></p></blockquote>
<blockquote><p><code> if(document.getElementById)    elem = document.getElementById(id);</code><br />
<code></code></p></blockquote>
<blockquote><p><code> else elem = document.all[id];</code><br />
<code></code></p></blockquote>
<blockquote><p><code> return elem;</code><br />
<code></code></p></blockquote>
<p><code> }<br />
//recupera l'elemento XMLHttpRequest, che sarà il tramite per effettuare le chiamate<br />
function getXHR() {<br />
</code></p>
<blockquote><p><code> var XHR = null;</code><br />
<code></code></p></blockquote>
<blockquote><p><code> var browserUtente = navigator.userAgent.toUpperCase();</code><br />
<code></code></p></blockquote>
<blockquote><p><code> if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")</code><br />
<code></code></p></blockquote>
<blockquote>
<blockquote><p><code> XHR = new XMLHttpRequest();</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote><p><code> else if(window.ActiveXObject &amp;&amp;    browserUtente.indexOf("MSIE 4") &lt; 0) {</code><br />
<code></code></p></blockquote>
<blockquote>
<blockquote><p><code> if(browserUtente.indexOf("MSIE 5") &lt; 0)</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> XHR = new ActiveXObject("Msxml2.XMLHTTP");</code></p></blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote><p><code> else</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> XHR = new ActiveXObject("Microsoft.XMLHTTP");</code></p></blockquote>
</blockquote>
</blockquote>
<blockquote><p><code>}</code><code></code></p></blockquote>
<blockquote><p><code>return XHR;</code><br />
<code></code></p></blockquote>
<p><code> }</code></p>
<p><code><br />
function clicca() {<br />
</code></p>
<blockquote><p><code> var ajax = getXHR();</code><br />
<code></code></p></blockquote>
<blockquote><p><code> if(ajax) {</code><br />
<code></code></p></blockquote>
<blockquote>
<blockquote><p><code> ajax.open("get", "documento.txt", true);</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote><p><code> ajax.onreadystatechange = function() {</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> if(ajax.readyState === 4) {</code></p></blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> if (ajax.status == 200) {</code></p></blockquote>
</blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> getById("contenitore").innerHTML = ajax.responseText;</code></p></blockquote>
</blockquote>
</blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> } else {</code></p></blockquote>
</blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> alert("KO: "+ajax.status);</code></p></blockquote>
</blockquote>
</blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> }</code></p></blockquote>
</blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote>
<blockquote><p><code> }</code></p></blockquote>
</blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote><p><code> }</code></p></blockquote>
<p><code>ajax.send(null);</code></p></blockquote>
<blockquote><p><code></code></p></blockquote>
<blockquote><p><code> }</code><br />
<code></code></p></blockquote>
<p><code> }<br />
</code></p>
<blockquote><p><code> &lt;/script&gt;</code><br />
<code></code></p></blockquote>
<p><code> &lt;/head&gt;<br />
&lt;body&gt;<br />
</code></p>
<blockquote><p><code> &lt;input type="button" value="clicca" onclick="clicca()"/&gt;</code><br />
<code></code></p></blockquote>
<blockquote><p><code> &lt;div id="contenitore"&gt;</code><br />
<code></code></p></blockquote>
<blockquote><p><code> &lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</code><br />
<code></code></p></blockquote>
<p><code> </code><br />
documento.txt<br />
<code><br />
Hello AJAX World!!!<br />
</code></p>
<p>Analisi del codice:</p>
<p>La funzione <code>getById(id)</code> serve a recuperare un elemento in pagina tramite l&#8217;id (non il name!) e usa due metodologie per ottenere la compatibilità su più browser.</p>
<p>La funzione <code>getXHR()</code> recupera l&#8217;oggetto XMLHttpRequest, ovvero il tramite delle transazioni con l&#8217;application server.  Anche questa fa delle operazioni per estendere la compatibilità con il browser. Questo oggetto è il fulcro di tutto il mondo AJAX, e i suoi metodi servono a effettuare le chiamate, monitorare lo stato della transazione, etc. etc.</p>
<p>La funzione <code>clicca()</code>:</p>
<p><code>var ajax = getXHR();</code> recupero l&#8217;oggetto XMLHttpRequest.</p>
<p><code>if(ajax)</code> se l&#8217;oggetto è stato recuperato (se il browser supporta XHR)</p>
<p><code>ajax.open("get", "documento.txt", true);</code>  chiamo il file documento.txt, utilizzando il metodo GET(come nei form, get mostra i parametri, post li nasconde, get ha limite di dimensione dati inviati, post è &#8220;un po&#8217; più grosso&#8221;). i dettagli più in là</p>
<p><code>ajax.onreadystatechange = function()</code> ridefinisco la funzione dell&#8217;oggetto ajax, che viene eseguita ad ogni cambiamento di stato della chiamata</p>
<p><code>if(ajax.readyState === 4) {<br />
if (ajax.status == 200) {</code> se readyState è 4 (operazione terminata)  e lo status è 200 (200 OK, come nell&#8217;http, ossia operazione terminata con successo) eseguo il codice</p>
<p><code>getById("contenitore").innerHTML = ajax.responseText;</code> prendi il testo inviato e &#8220;innestalo&#8221; nel tag con id contenitore (il div vuoto sotto il pulsante)</p>
<p>innerHTML è una proprietà di ogni tag della pagina, che indica i il contenuto del tag dall&#8217;apertura alla chiusura</p>
<p>nell&#8217;esempio:</p>
<p><code>&lt;div id="contenitore"&gt;<br />
&lt;/div&gt;</code> ha un .innerHTML uguale a una stringa vuota(per la precisione è una battuta di invio).  Dopo il clic sul pulsante sarà</p>
<p><code>&lt;div id="contenitore"&gt;Hello AJAX World!!!&lt;/div&gt;</code></p>
<p>Continua <a href="http://wannabeprogrammatore.wordpress.com/2008/01/06/2-ajax-for-dummies-2-il-dom/">qui</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wannabeprogrammatore.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wannabeprogrammatore.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wannabeprogrammatore.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wannabeprogrammatore.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wannabeprogrammatore.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wannabeprogrammatore.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wannabeprogrammatore.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wannabeprogrammatore.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wannabeprogrammatore.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wannabeprogrammatore.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wannabeprogrammatore.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wannabeprogrammatore.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=4&subd=wannabeprogrammatore&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://wannabeprogrammatore.wordpress.com/2008/01/05/1-ajax-for-dummies-1-hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9c2cc4c419d87ebc81a7b19291968ec9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dani1302</media:title>
		</media:content>
	</item>
		<item>
		<title>0. Presentazioni</title>
		<link>http://wannabeprogrammatore.wordpress.com/2008/01/04/0-presentazioni/</link>
		<comments>http://wannabeprogrammatore.wordpress.com/2008/01/04/0-presentazioni/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 19:27:37 +0000</pubDate>
		<dc:creator>dani1302</dc:creator>
				<category><![CDATA[Niente di che]]></category>
		<category><![CDATA[presentazioni]]></category>

		<guid isPermaLink="false">http://wannabeprogrammatore.wordpress.com/2008/01/04/0-presentazioni/</guid>
		<description><![CDATA[Oggi tutto bene. Domani? Boh. Comunque se sei arrivato fino a qui vuol dire che il blog è finito, spero tu abbia trovato interessanti gli articoli. Sennò no. Le uscite di sicurezza sono in fondo al corridoio e ai vostri lati, in caso di necessità gettate la vecchia dal finestrino. More info.
    [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=3&subd=wannabeprogrammatore&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oggi tutto bene. Domani? Boh. Comunque se sei arrivato fino a qui vuol dire che il blog è finito, spero tu abbia trovato interessanti gli articoli. Sennò no. Le uscite di sicurezza sono in fondo al corridoio e ai vostri lati, in caso di necessità gettate la vecchia dal finestrino. <a href="http://wannabeprogrammatore.wordpress.com/about/">More info</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wannabeprogrammatore.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wannabeprogrammatore.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wannabeprogrammatore.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wannabeprogrammatore.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wannabeprogrammatore.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wannabeprogrammatore.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wannabeprogrammatore.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wannabeprogrammatore.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wannabeprogrammatore.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wannabeprogrammatore.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wannabeprogrammatore.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wannabeprogrammatore.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wannabeprogrammatore.wordpress.com&blog=2447933&post=3&subd=wannabeprogrammatore&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://wannabeprogrammatore.wordpress.com/2008/01/04/0-presentazioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9c2cc4c419d87ebc81a7b19291968ec9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dani1302</media:title>
		</media:content>
	</item>
	</channel>
</rss>