<?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>Sprazzi di lucidità &#187; Coding</title>
	<atom:link href="http://simone.ruffilli.it/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://simone.ruffilli.it</link>
	<description>Call for a quote</description>
	<lastBuildDate>Tue, 11 May 2010 16:41:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Reset di un campo Select mediante jQuery</title>
		<link>http://simone.ruffilli.it/2009/09/reset-di-un-campo-select-mediante-jquery/</link>
		<comments>http://simone.ruffilli.it/2009/09/reset-di-un-campo-select-mediante-jquery/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 16:00:15 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=539</guid>
		<description><![CDATA[Appunti per me, per google e per coloro che sapranno cosa farsene: Reset alla prima option $(&#8216;#select_id&#8217;).val($(&#8216;option:first&#8217;, this).val()); Reset ad opzione nulla $(&#8216;#select_id&#8217;).val(null);]]></description>
			<content:encoded><![CDATA[<p>Appunti per me, per google e per coloro che sapranno cosa farsene:</p>
<ul>
<li>Reset alla prima option</li>
</ul>
<blockquote><p>$(&#8216;#select_id&#8217;).val($(&#8216;option:first&#8217;, this).val());</p></blockquote>
<ul>
<li>Reset ad opzione nulla</li>
</ul>
<blockquote><p>$(&#8216;#select_id&#8217;).val(null);</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2009/09/reset-di-un-campo-select-mediante-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il meteo sul display della stampante</title>
		<link>http://simone.ruffilli.it/2009/02/il-meteo-sul-display-della-stampante/</link>
		<comments>http://simone.ruffilli.it/2009/02/il-meteo-sul-display-della-stampante/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 00:50:18 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Frivolezze]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[metar]]></category>
		<category><![CDATA[meteo]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[stampante]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=389</guid>
		<description><![CDATA[Ispirato da questo, ho fatto una modifica allo script proposto da Yaakov al fine di stampare i risultati nel caro, vecchio sistema metrico decimale e per importare i dati del METAR di Forlì. E&#8217; necessario installare da CPAN le librerie use LWP::Simple; use IO::Socket; use Geo::METAR; e modificare l&#8217;indirizzo IP della stampante ed il codice [...]]]></description>
			<content:encoded><![CDATA[<p>Ispirato da <a href="http://kovaya.com/miscellany/2007/10/get-weather-on-your-hp-4200.html">questo</a>, ho fatto una modifica allo script proposto da <em>Yaakov</em> al fine di stampare i risultati nel caro, vecchio sistema metrico decimale e per importare i dati del <a href="http://it.wikipedia.org/wiki/METAR">METAR</a> di <a href="http://it.wikipedia.org/wiki/Aeroporto_di_Forl%C3%AC">Forlì</a>.</p>
<p><a href="http://simone.ruffilli.it/wp-content/uploads/2009/02/4200wx.jpg"><img class="aligncenter size-full wp-image-391" title="4200wx" src="http://simone.ruffilli.it/wp-content/uploads/2009/02/4200wx.jpg" alt="4200wx" width="400" height="183" /></a></p>
<p>E&#8217; necessario installare da CPAN le librerie<br />
<code><br />
use LWP::Simple;<br />
use IO::Socket;<br />
use Geo::METAR;<br />
</code></p>
<p>e modificare l&#8217;indirizzo IP della stampante ed il codice <a href="http://it.wikipedia.org/wiki/Codice_aeroportuale_ICAO">ICAO</a> che, nel caso di Forlì, è LIPK.</p>
<p>Lo script è stato testato su una HP4350, che ha un display 20&#215;4. Your mileage may vary.</p>
<p><a href="http://simone.ruffilli.it/wp-content/uploads/2009/02/meteohpfo.pl"></a><span id="more-389"></span></p>
<pre>
use strict;
use POSIX qw(ceil floor);

use LWP::Simple;
use LWP::UserAgent;
use IO::Socket;

use Geo::METAR;
my $m = new Geo::METAR;

my $wx = getmetar('LIPK');          # Put your ICAO code here
setdisplay($wx, '10.0.1.52');   # This should be your printer's IP

sub getmetar {
  my $icao = shift;

  my $page = get("http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=$icao") or exit;

  $page =~ /($icao .+)/;
  my $report = $1;

  $m->metar($report);

  my $wx;
    $wx = "  CHE TEMPO CHE FA  ";   # This can be edited to localize it.
                                    # Keep it the same length and center
                                    # the text in the quotes with spaces.

    my $temp = "Temp. ".$m->TEMP_C."C";
    my $pad = (20 - length $temp)/2;
    $wx .= " " x $pad.$temp." " x $pad;

    my $vis = $m->VISIBILITY;
    $vis =~ /(\d+)/;
	my $tmp = ceil($1*1.6/1000);
    my $atmos = "Visib. $tmp km";
    $pad = (20 - length $atmos)/2;
    $wx .= " " x $pad.$atmos." " x $pad;

    my $wspd = $m->WIND_MPH;
	$wspd = floor($wspd*1.6);
    my $wind = "Vento $wspd kmh";
    $pad = (20 - length $wind)/2;
    $wx .= " " x $pad.$wind." " x $pad;

return $wx;

}

sub setdisplay {

  my $rdymsg = shift; my $peeraddr = shift;
  my $socket = IO::Socket::INET->new(
      PeerAddr	=> $peeraddr,
      PeerPort	=> "9100",
      Proto     => "tcp",
      Type	=> SOCK_STREAM
  ) or die "Could not create socket: $!";

my $data = &lt;&lt;EOJ
\e%-12345X\@PJL JOB
\@PJL RDYMSG DISPLAY="$rdymsg"
\@PJL EOJ
\e%-12345X
EOJ
;
  print $socket $data;
  print $rdymsg;

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2009/02/il-meteo-sul-display-della-stampante/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Spammer FAIL</title>
		<link>http://simone.ruffilli.it/2009/01/spammer-fail/</link>
		<comments>http://simone.ruffilli.it/2009/01/spammer-fail/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 11:34:11 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=373</guid>
		<description><![CDATA[... Date: Fri, 23 Jan 2009 12:09:48 +0900 From: [?var=TAGMAILFROM] Subject: [?var=rx] ... [?var=rx] http://[?var=urlrx] Ritenta, sarai più fortunato&#8230;]]></description>
			<content:encoded><![CDATA[<pre id="line1">
...

Date: Fri, 23 Jan 2009 12:09:48 +0900
From: [?var=TAGMAILFROM]
Subject: [?var=rx]

...

[?var=rx]

http://[?var=urlrx]</pre>
<p>Ritenta, sarai più fortunato&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2009/01/spammer-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome Acid3 test</title>
		<link>http://simone.ruffilli.it/2008/09/chrome-acid3-test/</link>
		<comments>http://simone.ruffilli.it/2008/09/chrome-acid3-test/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:55:48 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[acid3]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google chrome acid3 test]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=317</guid>
		<description><![CDATA[  Onestamente mi aspettavo qualcosina di più da Webkit&#8230;]]></description>
			<content:encoded><![CDATA[<p> </p>
<div id="attachment_318" class="wp-caption alignnone" style="width: 310px"><a href="http://simone.ruffilli.it/wp-content/uploads/2008/09/chrome.jpg"><img class="size-medium wp-image-318" title="chrome" src="http://simone.ruffilli.it/wp-content/uploads/2008/09/chrome-300x213.jpg" alt="Chrome" width="300" height="213" /></a><p class="wp-caption-text">Chrome</p></div>
<p><div id="attachment_319" class="wp-caption alignnone" style="width: 310px"><a href="http://simone.ruffilli.it/wp-content/uploads/2008/09/safari.jpg"><img class="size-medium wp-image-319" title="safari" src="http://simone.ruffilli.it/wp-content/uploads/2008/09/safari-300x214.jpg" alt="Safari" width="300" height="214" /></a><p class="wp-caption-text">Safari</p></div><br />
Onestamente mi aspettavo qualcosina di più da Webkit&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/09/chrome-acid3-test/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Chrome Javascript Benchmark</title>
		<link>http://simone.ruffilli.it/2008/09/google-chrom-javascript-benchmark/</link>
		<comments>http://simone.ruffilli.it/2008/09/google-chrom-javascript-benchmark/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 22:40:58 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gecko]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[javascript benchmark]]></category>
		<category><![CDATA[mozilla firefox]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[opera 9]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[sunspider]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=312</guid>
		<description><![CDATA[A voi due miei cari lettori, ecco i dati tratti dal sito di Sunspider relativi al benchmark javascript che ho effettuato su tutti i browser che ho a disposizione, ordinati per performance ottenuta: minore il risultato, migliore la prestazione. (Less is better). Google Chrome 0.2.149.27 Total: 1483.6ms +/- 0.7% Mozilla Firefox 3.0.1 Total: 3435.0ms +/- [...]]]></description>
			<content:encoded><![CDATA[<p>A voi due miei cari lettori, ecco i dati tratti dal <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html">sito di Sunspider</a> relativi al benchmark javascript che ho effettuato su tutti i browser che ho a disposizione, ordinati per performance ottenuta: minore il risultato, migliore la prestazione. (Less is better).</p>
<pre>Google Chrome 0.2.149.27
	Total:                 1483.6ms +/- 0.7%
Mozilla Firefox 3.0.1
	Total:                 3435.0ms +/- 1.2%
Safari 3.1.2
	Total:                 3437.4ms +/- 1.1%
Opera 9.5.2
	Total:                 4003.6ms +/- 4.4%
Internet Explorer 7.0.5730.13
	Total:                 26231.8ms +/- 2.3%</pre>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/09/google-chrom-javascript-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personal file sharing</title>
		<link>http://simone.ruffilli.it/2008/08/personal-file-sharing/</link>
		<comments>http://simone.ruffilli.it/2008/08/personal-file-sharing/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:40:37 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Pensieri]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[personal file sharing]]></category>
		<category><![CDATA[scambio di dati]]></category>
		<category><![CDATA[torrent]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=256</guid>
		<description><![CDATA[Le premesse lasciamole a chi non ha nulla da dire: andiamo al sodo. Il problema dello scambio di dati da 1 ad N persone su internet viene solitamente affrontato sulla base del valore di N: una persona: email, IM piccolo gruppo di persone: email, FTP enorme gruppo di persone: bittorrent con relativi svantaggi: Email: limitazioni [...]]]></description>
			<content:encoded><![CDATA[<p>Le premesse lasciamole a chi non ha nulla da dire: andiamo al sodo.</p>
<p>Il problema dello scambio di dati da 1 ad N persone su internet viene solitamente affrontato sulla base del valore di N:</p>
<ul>
<li>una persona: email, <a href="http://it.wikipedia.org/wiki/Instant_messaging">IM</a></li>
<li>piccolo gruppo di persone: email, FTP</li>
<li>enorme gruppo di persone: <a href="http://it.wikipedia.org/wiki/BitTorrent">bittorrent</a></li>
</ul>
<p>con relativi svantaggi:</p>
<ul>
<li>Email: limitazioni nella dimensione degli allegati</li>
<li>IM: costoso in termini di banda per chi invia</li>
<li>FTP: costoso in termini di banda, tipicamente non disponibile</li>
<li>bittorrent: privacy inesistente nel caso di pubblicazione su un tracker pubblico, difficile setup di un tracker privato</li>
</ul>
<p>La soluzione bittorrent, pur con dei -<a href="http://www.uvnc.com/addons/nat2nat.html">risolubili?</a>- <a href="http://www.andreabeggi.net/2005/09/15/tcpip-in-pillole-nat/">problemi</a>, appare immediatamente come quella tecnicamente più conveniente, scalando perfettamente da piccoli numeri (comunicazione 1-1) a numeri anche grandissimi (comunicazione 1-N).</p>
<p>Ho deciso di dedicarmi, come progetto a lungo termine, alla programmazione di un client IM basato su <a href="http://it.wikipedia.org/wiki/Jabber">XMPP</a> che implementi un tracker/client bittorrent e la relativa gestione dei download ristretta a gruppi di utenze.</p>
<p>Chiunque abbia suggerimenti, feature da proporre, voglia di dare una mano, può lasciare un commento qui.</p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/08/personal-file-sharing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modificare una pagina web con una riga di Javascript</title>
		<link>http://simone.ruffilli.it/2008/07/modificare-una-pagina-web-con-una-riga-di-javascript/</link>
		<comments>http://simone.ruffilli.it/2008/07/modificare-una-pagina-web-con-una-riga-di-javascript/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 12:28:33 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=205</guid>
		<description><![CDATA[Testato e funzionante su Firefox 3 ed Internet Explorer 7. Copiate la riga che segue nella barra dell&#8217;indirizzo, sostituendola con l&#8217;URL presente e premete invio. javascript:document.body.contentEditable='true'; document.designMode='on'; void 0 Buon divertimento! via blogstorm]]></description>
			<content:encoded><![CDATA[<p>Testato e funzionante su Firefox 3 ed Internet Explorer 7. Copiate la riga che segue nella barra dell&#8217;indirizzo, sostituendola con l&#8217;URL presente e premete invio.</p>
<pre><code>javascript:document.body.contentEditable='true'; document.designMode='on'; void 0
</code></pre>
<p>Buon divertimento!</p>
<p><a href="http://simone.ruffilli.it/wp-content/uploads/2008/07/js_modifica_pagina.png"><img class="aligncenter size-full wp-image-206" title="js_modifica_pagina" src="http://simone.ruffilli.it/wp-content/uploads/2008/07/js_modifica_pagina.png" alt="" width="499" height="184" /></a></p>
<p>via <a href="http://www.blogstorm.co.uk/cut-and-paste-one-line-of-code-to-make-any-website-editable/">blogstorm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/07/modificare-una-pagina-web-con-una-riga-di-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InnerHTML su oggetto Select e Internet Explorer</title>
		<link>http://simone.ruffilli.it/2008/07/innerhtml-su-oggetto-select-e-internet-explorer/</link>
		<comments>http://simone.ruffilli.it/2008/07/innerhtml-su-oggetto-select-e-internet-explorer/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 07:55:28 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[ie5]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[innerhtml]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[options]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=111</guid>
		<description><![CDATA[L&#8217;impostazione della proprietà innerHTML su un oggetto di tipo select &#60;select name="name" id="id"&#62; &#60;option value="a"&#62;a&#60;/option&#62; &#60;/select&#62; tramite una chiamata Javascript come document.getElementById('id').innerHTML='&#60;option value="b"&#62;b&#60;/option&#62;'; fallisce miseramente su Internet Explorer. Il workaround è un wrap dell&#8217;oggetto select all&#8217;interno di un &#60;div&#62; così strutturato &#60;div id="div-id"&#62; &#60;select name="name"&#62; &#60;option value="a"&#62;a&#60;/option&#62; &#60;/select&#62; &#60;/div&#62; e la riscrittura dell&#8217;intero contenuto del [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;<strong>impostazione</strong> della proprietà <strong>innerHTML</strong> su un oggetto di tipo select</p>
<pre>&lt;select name="name" id="id"&gt;
 &lt;option value="a"&gt;a&lt;/option&gt;
&lt;/select&gt;</pre>
<p>tramite una chiamata <strong>Javascript</strong> come</p>
<pre>document.getElementById('id').innerHTML='&lt;option value="b"&gt;b&lt;/option&gt;';</pre>
<p><strong>fallisce miseramente</strong> su Internet Explorer.</p>
<p>Il workaround è un <strong>wrap dell&#8217;oggetto select all&#8217;interno di un &lt;div&gt;</strong> così strutturato</p>
<pre>&lt;div id="div-id"&gt;
 &lt;select name="name"&gt;
  &lt;option value="a"&gt;a&lt;/option&gt;
 &lt;/select&gt;
&lt;/div&gt;</pre>
<p>e la riscrittura dell&#8217;<strong>intero contenuto</strong> del div mediante innerHTML come segue:</p>
<pre>document.getElementById('div-id').innerHTML='&lt;select name="name&gt;&lt;option value="b"&gt;b&lt;/option&gt;&lt;/select&gt;';</pre>
<p>via <a href="http://support.microsoft.com/kb/276228">support.microsoft.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/07/innerhtml-su-oggetto-select-e-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evitare il re-submit dei dati di un form mediante refresh</title>
		<link>http://simone.ruffilli.it/2008/06/evitare-il-re-submit-dei-dati-di-un-form-mediante-refresh/</link>
		<comments>http://simone.ruffilli.it/2008/06/evitare-il-re-submit-dei-dati-di-un-form-mediante-refresh/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 16:55:26 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[header location]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[refresh]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[submit]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=63</guid>
		<description><![CDATA[Durante l&#8217;implementazione di un meccanismo di inserimento dati via web, mi sono imbattuto in un problema derivante dal comportamento atipico del pulsante &#8220;Refresh&#8221; del browser Mozilla Firefox. Per evitare il re-submit accidentale dei dati del form mediante un refresh della pagina di destinazione (quella indicata nell&#8217;attributo &#8220;action&#8221; del tag &#8220;form&#8221;), ho creato un sistema, basato [...]]]></description>
			<content:encoded><![CDATA[<p>Durante l&#8217;implementazione di un meccanismo di inserimento dati via web, mi sono imbattuto in un problema derivante dal <strong>comportamento atipico</strong> del pulsante &#8220;Refresh&#8221; del browser Mozilla <strong>Firefox</strong>.</p>
<p>Per evitare il <strong>re-submit accidentale</strong> dei dati del form mediante un <strong>refresh</strong> della pagina di destinazione (quella indicata nell&#8217;attributo &#8220;action&#8221; del tag &#8220;form&#8221;), ho creato un sistema, basato sull&#8217;impostazione dell&#8217;header &#8220;Location:&#8221; che redirige il browser dalla pagina che elabora gli input a quella che conferma l&#8217;avvenuto inserimento dei dati.</p>
<p>Il &#8220;percorso&#8221; realizzato durante la navigazione è dunque quello che segue:</p>
<ol>
<li><strong>form.jsp</strong> : inserimento dati</li>
<li><strong>dataprocess.jsp</strong> : elaborazione dati, redirige senza alcun input sulla pagina seguente</li>
<li><strong>confirm.jsp</strong> : pagina statica di conferma dell&#8217;avvenuta ricezione dei dati inseriti.</li>
</ol>
<p>In questo modo, pensavo, il refresh della pagina confirm.jsp non tenterebbe il resubmit dei dati, essendo quest&#8217;ultima differente dalla pagina indicata come action su -1-.<br />
Questo è vero per i browser IE6, Safari 3, Opera 9.5, i quali, log del web server alla mano, effettuano solamente un GET di -3-.<br />
Firefox 3, al contrario, esegue nuovamente un POST su -2- per poi finire come da copione su -3-.</p>
<p>Una soluzione possibile viene dal settaggio di un cookie impostato su -1-, che deve essere letto come prima operazione su -2- ed immediatamente distrutto. La presenza del cookie testimonia che il percorso effettuato per il submit dei dati è effettivamente un POST da -1- e non un refresh da -2- o -3- che sia.</p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/06/evitare-il-re-submit-dei-dati-di-un-form-mediante-refresh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tag &quot;option&quot; ed evento &quot;onClick&quot; su Internet Explorer</title>
		<link>http://simone.ruffilli.it/2008/06/tag-ed-evento-onclick-su-internet-explorer/</link>
		<comments>http://simone.ruffilli.it/2008/06/tag-ed-evento-onclick-su-internet-explorer/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 06:22:04 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[onchange]]></category>
		<category><![CDATA[onclick]]></category>
		<category><![CDATA[option]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://simone.ruffilli.it/?p=56</guid>
		<description><![CDATA[Sulla falsariga del post di ieri, continuo ad appuntarmi i problemi incontrati con JS su Internet Explorer, nella speranza che quanto scritto possa servire, prima o poi, a qualcuno. Internet Explorer, perlomeno nella versione 6, non supporta la sintassi che segue: &#60;select id="do"&#62; &#60;option onclick="do(this)" value="Do This"&#62; Do This &#60;/option&#62; &#60;option onclick="do(this)" value="Do That"&#62; Do [...]]]></description>
			<content:encoded><![CDATA[<p>Sulla falsariga del <a href="http://simone.ruffilli.it/index.php/2008/06/setattribute-su-internet-explorer-pita/">post di ieri</a>, continuo ad appuntarmi i problemi incontrati con JS su Internet Explorer, nella speranza che quanto scritto possa servire, prima o poi, a qualcuno.</p>
<p>Internet Explorer, perlomeno nella versione 6, <strong>non supporta</strong> la sintassi che segue:</p>
<pre>&lt;select id="do"&gt;
    &lt;option <strong>onclick="do(this)"</strong> value="Do This"&gt; Do This &lt;/option&gt;
    &lt;option <strong>onclick="do(this)"</strong> value="Do That"&gt; Do That &lt;/option&gt;
&lt;/select&gt;</pre>
<p>La soluzione viene dalla sintassi</p>
<pre>&lt;select id="do" <strong>onchange="do( this.value )"</strong>&gt;
    &lt;option value="Do This"&gt; Do This &lt;/option&gt;
    &lt;option value="Do That"&gt; Do That &lt;/option&gt;
&lt;/select&gt;</pre>
<p>ossia dallo spostamento dell&#8217;evento dal singolo elemento  all&#8217;elemento select padre. La funzione dovrà essere ovviamente invocata non più utilizzando <strong>this</strong> come argomento, ma <strong>this.value</strong>, ovverosia l&#8217;attributo value dell&#8217;opzione selezionata. Tale funzione avrà una forma simile a quanto segue:</p>
<pre>function do( optionValue )
{
	switch( optionValue )
	{
		case "Do This" :
			// SPECIFIC CODE HERE
		break;
		case "Do That" :
			// SPECIFIC CODE HERE
		break;
	}
}</pre>
<p>via <a href="http://matthom.com/archive/2006/08/08/ie-capture-option-element-onclick">matthom</a></p>
]]></content:encoded>
			<wfw:commentRss>http://simone.ruffilli.it/2008/06/tag-ed-evento-onclick-su-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
