<?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/"
	>

<channel>
	<title> &#187; Client &amp; Server Side</title>
	<atom:link href="http://blogger.m3c.it/category/client-server-side/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogger.m3c.it</link>
	<description></description>
	<lastBuildDate>Sat, 16 Jan 2010 10:34:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Inviare un form (metodo post) utilizzando un bottone testuale</title>
		<link>http://blogger.m3c.it/client-server-side/inviare-un-form-metodo-post-utilizzando-un-bottone-testuale/</link>
		<comments>http://blogger.m3c.it/client-server-side/inviare-un-form-metodo-post-utilizzando-un-bottone-testuale/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:50:30 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Client & Server Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogger.m3c.it/?p=1100</guid>
		<description><![CDATA[<p><img src="http://blogger.m3c.it/wp-content/uploads/2009/11/submit-225x300.jpg" alt="Submit" title="Inviare un form (metodo post) utilizzando un bottone testuale" width="225" height="300" class="alignright size-medium wp-image-1106" /> Ho perso circa 3 ore a trovare la soluzione a questo problema, problema che mi sono posto quando ho deciso di impuntarmi su una cosa che realmente non mi serviva, tanto per cambiare. </p>
<p>Il web è pieno di superfighi esempi che permettono di creare degli <strong>effetti rollover</strong> su delle immagini che interagiscono con la posizione del nostro mouse, consentendoci di inviare un form tramite un immaginetta, invece che tramite il classico bottone. Ma si trovano pochissimi esempi su come <strong>abbandonare l&#8217;orrendo bottoncino</strong> grigio a favore del vecchio, caro e personalizzabile <strong>testo</strong>.</p>
<p>Alla fine ho trovato la soluzione adatta,&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://blogger.m3c.it/wp-content/uploads/2009/11/submit-225x300.jpg" alt="Submit" title="Inviare un form (metodo post) utilizzando un bottone testuale" width="225" height="300" class="alignright size-medium wp-image-1106" /> Ho perso circa 3 ore a trovare la soluzione a questo problema, problema che mi sono posto quando ho deciso di impuntarmi su una cosa che realmente non mi serviva, tanto per cambiare. </p>
<p>Il web è pieno di superfighi esempi che permettono di creare degli <strong>effetti rollover</strong> su delle immagini che interagiscono con la posizione del nostro mouse, consentendoci di inviare un form tramite un immaginetta, invece che tramite il classico bottone. Ma si trovano pochissimi esempi su come <strong>abbandonare l&#8217;orrendo bottoncino</strong> grigio a favore del vecchio, caro e personalizzabile <strong>testo</strong>.</p>
<p>Alla fine ho trovato la soluzione adatta, anzi, più soluzioni adatte. Purtroppo tutte prevedono l&#8217;utilizzo di javascript, ma nulla di troppo invasivo per fortuna. E ormai il <a href="http://www.w3schools.com/browsers/browsers_stats.asp" onclick="target='_blank';">95% dei sistemi</a> ha la spunta su <strong>attivo</strong>, quindi il <em>rischio </em>si può correre.</p>
<p><span id="more-1100"></span></p>
<pre class="brush: xml;">&lt;form name=&quot;pwd&quot; id=&quot;pwd&quot; method=&quot;post&quot; action=&quot;ip.php&quot;&gt;
&lt;a href=&quot;#&quot; onclick=&quot;document.forms['pwd'].submit(); return false;&quot;&gt;invia&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;#&quot; onclick=&quot;document.pwd.submit(); return false;&quot;&gt;invia&lt;/a&gt;
&lt;/form&gt;</pre>
<p>Non penso serva una spiegazione, vero? <img src='http://blogger.m3c.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ma&#8230;e se volessimo passare una variabile?la situazione si fa più complicata. Ho provato combinando questi codici fra di loro parecchie volte, ma complice la mia scarsa abilità in Javascript e un google foriero di cattive nuove, non sono riuscito a trovare la soluzione adatta.</p>
<p>Ho quindi cambiato strada, o meglio, sono stato <span title="Thanks Enri"><em>indirizzato</em></span> in questa zona:</p>
<pre class="brush: xml;">&lt;form name=&quot;pwd&quot; id=&quot;pwd&quot; method=&quot;post&quot; action=&quot;ip.php&quot;&gt;
&lt;input name=&quot;pwd&quot; type=&quot;hidden&quot; value=&quot;&lt;?=$password?&gt;&quot; /&gt;
&lt;a href=&quot;#&quot; onclick=&quot;document.getElementById('pwd').submit()&quot;&gt;Invia&lt;/a&gt;
&lt;/form&gt;</pre>
<p>In pratica assegniamo il valore ad un campo input nascosto, che passerà il valore una volta inviato il form. La variabile <strong><?=$password?></strong> l&#8217;avremo definita in precedenza. E andremo a recuperarla, nella pagina <strong>ip.php</strong>, con qualcosa di simile:</p>
<pre class="brush: php;">&lt;?php
$password = $_POST[&quot;pwd&quot;];
	if ($password &lt;&gt; 'miapwd') {
	echo &quot;Non sei autorizzato ad entrare in quest'area&quot;;
	} else {
		echo &quot;La password inserita &amp;egrave; corretta.&quot;;
}
?&gt;</pre>
<p><span class="right"><em>foto by <a href="http://www.flickr.com/photos/bentobox/3294275070/" onclick="target='_blank';"> doryexmachina </a></em></span><br />
<h3>Articoli correlati</h3>
<ul class="related_post">
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/killertux-150x150.jpg' title='killertux' alt='killertux' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/programmi/installare-un-webserver-completo-su-ubuntu-apache-php-mysql/" title="Installare un WebServer completo Su Ubuntu (Apache,PHP,MySQL)">Installare un WebServer completo Su Ubuntu (Apache,PHP,MySQL)</a>
<p> Oggi è il mio ultimo giorno prima delle tanto sospirate vacanze. Non vi dico dove andrò per non rischiare un&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/easyphp-150x150.jpg' title='easyphp' alt='easyphp' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/programmi/tips-and-tricks-per-easyphp5-3-0-su-windows-vista/" title="Tips and Tricks per EasyPHP5.3.0 su Windows Vista">Tips and Tricks per EasyPHP5.3.0 su Windows Vista</a>
<p> Installare ed configurare EasyPHP5.3.0 su Windows Vista potrebbe sembrare cosa facile. Se non fosse che non lo è&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/programmarephpmysql-150x150.jpg' title='programmarephpmysql' alt='programmarephpmysql' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/server/recensione-programmare-in-php-e-mysql-davis-phillips/" title="[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)">[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)</a><br />

<p>In questi giorni in cui non ho pubblicato nulla, sono stato impegnato nello studio di Programmare in PHP e&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-includes/images/crystal/default.png' title='Inviare un form (metodo post) utilizzando un bottone testuale' alt='Inviare un form (metodo post) utilizzando un bottone testuale' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/client/testi-visibili-invisibili-con-un-click-in-javascript/" title="Testi visibili/invisibili con un click, in Javascript ">Testi visibili/invisibili con un click, in Javascript </a>
<p>Capita di avere delle grosse masse di testo che per vari motivi non si vuole suddividere in più pagine. Un metodo&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-includes/images/crystal/default.png' title='Inviare un form (metodo post) utilizzando un bottone testuale' alt='Inviare un form (metodo post) utilizzando un bottone testuale' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/wordpress/modificare-previus-next-entries-su-wordpress-2-8/" title="Modificare previus/next entries su WordPress 2.8">Modificare previus/next entries su WordPress 2.8</a>
<p>Avevo già parlato di come modificare le scritte previus e next entries qui ma con la nuova versione, sembra essere&#8230;</p>
</div>
</div>
<p></ul>

	<br />

	<h4>Post correlati</h4>
	<ul class="st-related-posts">
	<li><a href="http://blogger.m3c.it/server/recensione-programmare-in-php-e-mysql-davis-phillips/" title="[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips) (4 dicembre 2009)">[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)</a> (7)</li>
	<li><a href="http://blogger.m3c.it/wordpress/wordpress-feed-mail-seguire-singoli-post/" title="WordPress &#8211; Feed e Mail per seguire i singoli post (8 giugno 2009)">WordPress &#8211; Feed e Mail per seguire i singoli post</a> (1)</li>
	<li><a href="http://blogger.m3c.it/programmi/tips-and-tricks-per-easyphp5-3-0-su-windows-vista/" title="Tips and Tricks per EasyPHP5.3.0 su Windows Vista (15 dicembre 2009)">Tips and Tricks per EasyPHP5.3.0 su Windows Vista</a> (8)</li>
	<li><a href="http://blogger.m3c.it/client/testi-visibili-invisibili-con-un-click-in-javascript/" title="Testi visibili/invisibili con un click, in Javascript (30 luglio 2009)">Testi visibili/invisibili con un click, in Javascript</a> (2)</li>
	<li><a href="http://blogger.m3c.it/client/release-swfobject-2-2-beta/" title="Rilasciato SWFObject 2.2 beta (18 aprile 2009)">Rilasciato SWFObject 2.2 beta</a> (9)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blogger.m3c.it/client-server-side/inviare-un-form-metodo-post-utilizzando-un-bottone-testuale/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Frame, superati? &#8211; Si. Usiamo le inclusioni.</title>
		<link>http://blogger.m3c.it/client-server-side/frame-superati-usiamo-inclusioni/</link>
		<comments>http://blogger.m3c.it/client-server-side/frame-superati-usiamo-inclusioni/#comments</comments>
		<pubDate>Fri, 22 May 2009 10:52:03 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Client & Server Side]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[JSP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.m3c.it/?p=424</guid>
		<description><![CDATA[<p>Iniziamo con dire cosa sono i <strong>frame</strong> e a cosa servono.</p>
<p>I <strong>frame </strong>permettono di dividere la nostra pagina web in più zone. Ogni zona caricherà una pagina al suo interno, tali pagine potranno essere legate fra di loro o anche indipendenti.</p>
<p>I vantaggi di questa tecnica, sono molteplici, ma un po&#8217; obsoleti, guardiamoli nel dettaglio.</p>
<p>- I <strong>frame</strong> permettono di non ricaricare continuamente tutta la pagina ma solo una porzione di essa. Questo era molto utile qualche tempo fa quando la velocità delle connessioni internet era molto bassa. Un sito con i frame veniva solitamente strutturato in modo che&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Iniziamo con dire cosa sono i <strong>frame</strong> e a cosa servono.</p>
<p>I <strong>frame </strong>permettono di dividere la nostra pagina web in più zone. Ogni zona caricherà una pagina al suo interno, tali pagine potranno essere legate fra di loro o anche indipendenti.</p>
<p>I vantaggi di questa tecnica, sono molteplici, ma un po&#8217; obsoleti, guardiamoli nel dettaglio.</p>
<p>- I <strong>frame</strong> permettono di non ricaricare continuamente tutta la pagina ma solo una porzione di essa. Questo era molto utile qualche tempo fa quando la velocità delle connessioni internet era molto bassa. Un sito con i frame veniva solitamente strutturato in modo che la testata (header) e il menu laterale fossero fissi, e i link in essi presenti venissero aperti nel corpo della pagina. Un bel risparmio in termini di tempo e velocità. Questo vantaggio, pur sempre presente, è ormai irrisorio, data la disponibilità di connessioni ad alta velocità da parte di tutti gli utenti.</p>
<p><span id="more-424"></span></p>
<p>- Un grosso vantaggio, per i webmaster, è quello di non ripetere sempre le stesse porzioni di codice. E&#8217; indubbiamente più semplice gestire delle pagine con poco contenuto, rispetto a delle pagine che solo a guardarle fanno venire il mal di testa. Oltre a questo, i frame ci permettono una maggior velocità in fase di modifica. Se dovessimo infatti modificare solo il contenuto del nostro menu, non dovremo andare ad aprire tutte le pagine del nostro sito. Ci basterà aprire il frame nel quale è contenuto il menu e aggiornando un unica pagina, aggiorneremo tutto il sito.</p>
<p>Tra gli svantaggi, invece, possiamo citare la difficoltà dei browser di indicizzare tali pagine. Una pagina con i frame risulterà infatti disgiunta perchè in effetti non esiste, se non come contenitore di altre pagine.</p>
<p>Di seguito, un piccolo esempio di utilizzo dei <strong>frame</strong>:</p>
<pre class="brush: xml;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;La nostra pagina con i frame&lt;/title&gt;
&lt;/head&gt;
&lt;frameset rows=&quot;*&quot; cols=&quot;80,*&quot; frameborder=&quot;no&quot; border=&quot;0&quot; framespacing=&quot;0&quot;&gt;
  &lt;frame src=&quot;/menu.html&quot; name=&quot;leftFrame&quot; scrolling=&quot;No&quot; noresize=&quot;noresize&quot; id=&quot;leftFrame&quot; title=&quot;leftFrame&quot; /&gt;
  &lt;frameset rows=&quot;80,*&quot; frameborder=&quot;no&quot; border=&quot;0&quot; framespacing=&quot;0&quot;&gt;
    &lt;frame src=&quot;/header.html&quot; name=&quot;topFrame&quot; scrolling=&quot;No&quot; noresize=&quot;noresize&quot; id=&quot;topFrame&quot; title=&quot;topFrame&quot; /&gt;
    &lt;frame src=&quot;/content.html&quot; name=&quot;mainFrame&quot; id=&quot;mainFrame&quot; title=&quot;mainFrame&quot; /&gt;
  &lt;/frameset&gt;
&lt;/frameset&gt;
&lt;noframes&gt;&lt;body&gt;
&lt;/body&gt;&lt;/noframes&gt;
&lt;/html&gt;</pre>
<p>In alto la dichiarazione del <strong>Doctype</strong> indica al parser che si tratta di una pagina che segue le direttive della <em>XHTML 1.0 Frameset</em> (l&#8217;ultima DTD che supporti i frame).</p>
<p>Successivamente andiamo a creare una struttura su un unica riga <strong>frameset rows=&#8221;*&#8221;</strong> (riga 7) ma su due colonne, <strong>cols=&#8221;80,*&#8221;</strong> (righe 7). La prima larga <strong>80 px</strong>, la seconda che occupa tutto lo spazio rimanente della pagina, <strong>*</strong>.</p>
<p>Indichiamo le caratteristiche della prima colonna, richiama al suo interno la pagina menu <strong>frame src=&#8221;/menu.html&#8221;</strong>, le da un nome <strong>name=&#8221;leftFrame&#8221;</strong>, ne definisce gli attributi <strong>scrolling=&#8221;No&#8221; noresize=&#8221;noresize&#8221;</strong>, le assegna un id <strong>id=&#8221;leftFrame&#8221;</strong> e un titolo <strong>title=&#8221;leftFrame&#8221;</strong>.</p>
<p>Successivamente, andiamo a nidificare un altro frameset all&#8217;interno dell&#8217;altra colonna. Suddividiamo la colonna in due righe, <strong>rows=&#8221;80,*&#8221;</strong> la prima alta 80 px e la seconda che occupi il resto della pagina.</p>
<p>La prima riga sarà il nostro header, <strong>src=&#8221;/header.html&#8221;</strong> mentre la seconda, che a causa delle nostre indicazioni occuperà tutta la pagina tranne 80 px in alto e 80 px a sinistra, sarà il corpo della nostra pagina, nel quale inseriremo i contenuti.</p>
<p>I <strong>frame </strong>si possono combinare in molti modi, avremmo potuto facilmente inserire un footer alla nostra pagina o cambiare la disposizione del menu o tanto altro. Nonostante ciò i frame mantengono una struttura abbastanza rigida, pur se pregevole. Ma se volessimo inserire un frame in un punto specifico della pagina, anche senza usare la struttura con i <strong>frameset</strong>?</p>
<p>Ci vengono in aiuto gli <strong>IFrame</strong> (inline frames &#8211; frame in linea), che hanno un funzionamento simile ai frame (possiamo inserire nella nostra pagina, un riquadro contenente un altra pagina) ma nel contempo assai diverso. Non siamo infatti legati ad una struttura <strong>frameset</strong>, possiamo inserire il nostro <strong>IFrame</strong> in qualsiasi punto della nostra pagina, così:</p>
<pre class="brush: xml;">&lt;iframe src=&quot;altrapagina.html&quot; width=&quot;350&quot; height=&quot;150&quot;&gt;
  Contenuto alternativo per i browser che non leggono gli iframe.
&lt;/iframe&gt;</pre>
<p>Qui abbiamo definito le dimensioni dell&#8217;<strong>IFrame</strong>, possiamo poi posizionarlo nel punto prescelto attraverso i <strong>CSS</strong>. I metodi sono molteplici, ne cito solo uno:</p>
<pre class="brush: xml;">&lt;iframe src=&quot;altrapagina.html&quot; width=&quot;350&quot; height=&quot;150&quot; style=&quot;position: relative; top: 50p; left: 50px&quot;&gt;
  Contenuto alternativo per i browser che non leggono gli iframe.
&lt;/iframe&gt;</pre>
<p>Come vedete ho assegnato un posizionamento relativo all&#8217;iframe, che si posizionerà a 50px dall&#8217;alto e a 50px da sinistra rispetto al proprio box contenitore.</p>
<p>Ma torniamo un attimo al punto focale del discorso&#8230; ho la brutta tendenza a divagare, un altro po&#8217; e spiegavo anche come cucinare il gatto.</p>
<p>I frame/frame, sono superati? <strong>SI</strong>.</p>
<p>Perchè?</p>
<p>Beh, per numerosi motivi, iniziamo:</p>
<p>1) Sono deprecati dal <a href="http://www.w3.org/" target="_blank">W3C</a>, questo significa che il loro utilizzo non soddisfa le loro specifiche. In pratica, le nostre pagine non potranno mai passare la <a href="http://validator.w3.org/">validazione</a> se contengono frame/frame. Ok, ma in soldoni, validazione a parte? nessuno ci obbliga a farla o a seguire quel che dice il w3c, tanto le pagine funzionano lo stesso.</p>
<p>Questo è un discorso un po&#8217; complesso e sicuramente abbastanza <span title="EE: Off-Topic"><em>OT</em></span> rispetto all&#8217;argomento principale, ma voglio farvi comunque un <em>breve </em>cenno. Penso sia importante seguire le direttive del w3c per dare un senso di uniformità al tutto. Attualmente ogni browser vede lo stesso sito in modi diversi (a meno di non fare un lavoro certosino utilizzando qualche <em>hack</em>), qualcuno ha addirittura pensato di creare dei tag proprietari per compiere determinate operazioni. Capirete quindi quanto sia complicato per un webmaster gestire il tutto e quanto confonda l&#8217;utente ottenere risultati diversi con browser diversi. L&#8217;unica strada per porre rimedio a questo problema è creare uno standard. Proprio quello che fa il <em>w3c</em>.</p>
<p>2) La velocità delle connessioni internet è cresciuta così tanto che ormai il guadagno in termine di tempo non giustifica più la creazione di una struttura con i frame. Se ci fosse un grosso guadagno, potrei ancora capire la violazione degli standard del <em>w3c</em>. Ma se il gioco non vale la candela&#8230;</p>
<p>3) Ci sono altri modi per i webmaster per risparmiare codice e gestire più facilmente le pagine. In modo migliore e validato. Usare le inclusioni.</p>
<p>Esistono due tipi di inclusioni, quelle client side e quelle server side. La differenza fra di loro è semplice, le prime nascono per linguaggi statici (<strong>SHTML</strong>, <strong>CSS</strong>, <strong>Javascript</strong>, etc) le seconde per linguaggi dinamici (<strong>ASP</strong>, <strong>PHP</strong>, <strong>JSP</strong>, etc)</p>
<p>Riguardo all&#8217;argomento trattato, diamo un occhio alle inclusioni che potrebbero servirci.</p>
<p>Nel caso di una pagina <strong>SHTML</strong>, basta utilizzare questo codice:</p>
<pre class="brush: php;">&lt;!- - #include file=&quot;NomeFile&quot; - -&gt;</pre>
<p><em><strong>N.B.</strong> I due trattini alle due estremità vanno inseriti di seguito. Per motivi di formattazione ho dovuto mettere uno spazio tra di essi, altrimenti sembrava un unico trattino, più grande.</em></p>
<p>Una pagina <strong>SHTML </strong>è uguale in tutto e per tutto ad una pagina HTML, con la differenza che può includere file esterni. Questo tipo di pagine e di inclusioni sono veramente poco usate, sempre più spesso si necessita di inserire del codice <strong>SSL</strong> (<em>Server Side Language &#8211; Linguaggi Lato Server</em>) nelle nostre pagine. Cosa che le pagine <strong>SHTML</strong>, non supportano.</p>
<p>Nel caso di una pagina <strong>ASP/ASP.NET</strong>, possiamo fare così:</p>
<pre class="brush: php;">&lt;!- - #include file=&quot;NomeFile&quot; - -&gt;</pre>
<p><em><strong>N.B.</strong> I due trattini alle due estremità vanno inseriti di seguito. Per motivi di formattazione ho dovuto mettere uno spazio tra di essi, altrimenti sembrava un unico trattino, più grande.</em></p>
<p>Riguardo al <strong>PHP</strong>, abbiamo più metodi:</p>
<pre class="brush: php;">&lt;? include(&quot;nome_file.php&quot;); ?&gt;
&lt;? require(&quot;nome_file.php&quot;); ?&gt;</pre>
<p>Si utilizzano in casi diversi, approfondite bene circa la <a href="http://it.php.net/manual/it/function.include.php" target="_blank">funzione include</a>, e sulla <a href="http://it.php.net/manual/it/function.require.php" target="_blank">require</a>, prima di utilizzarle.</p>
<p>Guardiamo ora le inclusioni in <strong>JSP</strong>:</p>
<pre class="brush: php;">&lt;jsp:include page=&quot;NomeFile&quot; /&gt;
&lt;%@ include file=&quot;NomeFile&quot; %&gt;</pre>
<p>Anche qui abbiamo due metodi diversi, da approfondire, qui il <a href="http://java.sun.com/products/jsp/tags/11/syntaxref1112.html" target="_blank">primo </a>e qui il <a href="http://java.sun.com/products/jsp/tags/11/syntaxref117.html#8772" target="_blank">secondo</a>.</p>
<p>Esistono innumerevoli altre inclusioni, ogni linguaggio ha il suo metodo e la sua sintassi. Ma andiamo a vedere i vantaggi di questa tecnica per quel che ci riguarda.</p>
<p>Con le inclusioni possiamo inserire il contenuto di una pagina all&#8217;interno di un altra, semplicemente richiamandola, questo porta numerosi vantaggi.</p>
<p>1) Meno codice nelle varie pagine con conseguente miglior leggibilità.</p>
<p>2) Possibilità di modificare una sola pagina ed ottenere la modifica simultanea di migliaia di pagine che richiamano la pagina da noi modificata.</p>
<p>3) Facilità di costruzione di una pagina modulare, creando una serie dei box in modo da realizzare un ossatura. nella quale andremo poi ad includere altre pagine.</p>
<p>L&#8217;unico svantaggio delle inclusioni è che bisogna fare attenzione a non esagerare. Infatti è più veloce caricare una quantità X di codice, piuttosto che inserire un inclusione che richiami la medesima quantità di codice. Esagerando potremo ottenere dei un certo rallentamento delle nostre pagine.</p>
<p>Fortunatamente, la <em>cache </em>ci viene in aiuto. Ipotizzando di avere una <strong>header.aspx</strong> che viene richiamata da tutte le pagine del nostro sito, essa verrà memorizzata nella cache del nostro browser e richiamata velocemente all&#8217;occorrenza. Avremmo perso molto più tempo in termini di caricamento, inserendo il codice contenuto in <strong>header.aspx</strong> in ogni pagina del sito.</p>
<p>Infatti, nonostante sia del codice ripetuto, il nostro browser non può rendersene conto, se non dopo averlo caricato. Ma a quel punto il caricamento è fatto, quindi la cosa non porta nessun beneficio.</p>
<p>La differenza sostanziale fra <strong>inclusioni </strong>e <strong>frame</strong>, è il refresh totale della pagina durante la navigazione tra una pagina ed un altra, con l&#8217;utilizzo delle inclusioni. Questa caratteristica che potrebbe sembrare penalizzante in termini di caricamento (pochi istanti con le moderne connessioni, come già detto) ha però un grandissimo vantaggio.</p>
<p>I motori di ricerca <strong>non</strong> hanno nessun problema con le inclusioni. Le pagine non sono infatti disgiunte e permettono ai motori di indicizzarle come qualsiasi altra pagina statica.</p>
<p>E con questo, l&#8217;argomento è chiuso <img src='http://blogger.m3c.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  alla prossima.<br />
<h3>Articoli correlati</h3>
<ul class="related_post">
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-includes/images/crystal/default.png' title='Frame, superati? - Si. Usiamo le inclusioni. ' alt='Frame, superati? - Si. Usiamo le inclusioni. ' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/wordpress/commenti-nidificati-wordpress-guida-configurazione/" title="Commenti nidificati su WordPress &#8211; Guida alla configurazione">Commenti nidificati su WordPress &#8211; Guida alla configurazione</a>
<p>Nella continua ricerca di soluzioni per migliorare questo blog, sono arrivati ai commenti. Ovviamente non ricordo&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/killertux-150x150.jpg' title='killertux' alt='killertux' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/programmi/installare-un-webserver-completo-su-ubuntu-apache-php-mysql/" title="Installare un WebServer completo Su Ubuntu (Apache,PHP,MySQL)">Installare un WebServer completo Su Ubuntu (Apache,PHP,MySQL)</a>
<p> Oggi è il mio ultimo giorno prima delle tanto sospirate vacanze. Non vi dico dove andrò per non rischiare un&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/easyphp-150x150.jpg' title='easyphp' alt='easyphp' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/programmi/tips-and-tricks-per-easyphp5-3-0-su-windows-vista/" title="Tips and Tricks per EasyPHP5.3.0 su Windows Vista">Tips and Tricks per EasyPHP5.3.0 su Windows Vista</a>
<p> Installare ed configurare EasyPHP5.3.0 su Windows Vista potrebbe sembrare cosa facile. Se non fosse che non lo è&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/12/programmarephpmysql-150x150.jpg' title='programmarephpmysql' alt='programmarephpmysql' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/server/recensione-programmare-in-php-e-mysql-davis-phillips/" title="[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)">[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)</a><br />

<p>In questi giorni in cui non ho pubblicato nulla, sono stato impegnato nello studio di Programmare in PHP e&#8230;</p>
</div>
</div>
<p>
<div id="post_div">
<div class="img_related_post"><img src='http://blogger.m3c.it/wp-content/uploads/2009/11/submit-150x150.jpg' title='submit' alt='submit' /></div>
<div class="text_related_post"><a href="http://blogger.m3c.it/client-server-side/inviare-un-form-metodo-post-utilizzando-un-bottone-testuale/" title="Inviare un form (metodo post) utilizzando un bottone testuale">Inviare un form (metodo post) utilizzando un bottone testuale</a>
<p> Ho perso circa 3 ore a trovare la soluzione a questo problema, problema che mi sono posto quando ho deciso di&#8230;</p>
</div>
</div>
<p></ul>

	<br />

	<h4>Post correlati</h4>
	<ul class="st-related-posts">
	<li><a href="http://blogger.m3c.it/wordpress/commenti-nidificati-wordpress-guida-configurazione/" title="Commenti nidificati su WordPress &#8211; Guida alla configurazione (3 giugno 2009)">Commenti nidificati su WordPress &#8211; Guida alla configurazione</a> (4)</li>
	<li><a href="http://blogger.m3c.it/server/recensione-programmare-in-php-e-mysql-davis-phillips/" title="[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips) (4 dicembre 2009)">[Recensione] &#8211; Programmare in PHP e MySQL (Davis &#8211; Phillips)</a> (7)</li>
	<li><a href="http://blogger.m3c.it/wordpress/wordpress-feed-mail-seguire-singoli-post/" title="WordPress &#8211; Feed e Mail per seguire i singoli post (8 giugno 2009)">WordPress &#8211; Feed e Mail per seguire i singoli post</a> (1)</li>
	<li><a href="http://blogger.m3c.it/programmi/tips-and-tricks-per-easyphp5-3-0-su-windows-vista/" title="Tips and Tricks per EasyPHP5.3.0 su Windows Vista (15 dicembre 2009)">Tips and Tricks per EasyPHP5.3.0 su Windows Vista</a> (8)</li>
	<li><a href="http://blogger.m3c.it/client/release-swfobject-2-2-beta/" title="Rilasciato SWFObject 2.2 beta (18 aprile 2009)">Rilasciato SWFObject 2.2 beta</a> (9)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blogger.m3c.it/client-server-side/frame-superati-usiamo-inclusioni/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
