però ho fatto qualche cosa in più. ho aggiunto un box di notifica che dovrebbe apparire al lancio della funzione che scatta all'unonload (proprio prima che parta il for):
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
<style type="text/css">
#closing {
width: 200px;
padding: 10px;
background: yellow;
position: absolute;
top: 10px;
left: 10px;
display: none;
}
</style>
</head>
<body onunload="return ritarda()">
<div id="closing">
saving details before closing ...
</div>
<script type="text/javascript">
// il codice sincrono (come quello del for qui presente) deve essere eseguito
// completamente prima di far chiudere la pagina! In effetti si nota un
// una elapse of time prima che la pagina si chiuda
function ritarda(){
document.getElementById("closing").style.display = "block";
for (var i=0; i<5000000; i++) {
document.write = "ciao!
";
}
}
</script>
</body>
</html>
come vedi il box giallo non appare anche se l'effetto ritardo generato dal lunghissimo for permane! insomma pare che la funzione ritarda() sia eseguita ma che il computo di menate relative ai css venga interrotto durante questa critica fase!