Newsgroup: it.comp.lang.javascript
Titolo: prototype, jquery, modalbox?

Devo eseguire delle elaborazioni su alcuni files.
Tale elaborazione richiede circa 30 minuti di tempo e vorrei impedire 
all'utente di interromperla fino a compimento.
Pendavo ad un popup attivato al click su un link il quale fa partire 
l'elaborazione.
Tale popup deve mostrare qualcosa come "Elaborazione in corso....." 
mettendo in background la finestra principale in modo che l'utente non 
possa interagire e sparendo ovviamente quando viene caricata la nuova 
pagina.
E' necessario usare una delle librerie in oggetto?
Come posso fare?

 Come posso fare?
http://tinyjs.com/files/projects/jquery-smart-modal/index.html
http://www.ericmmartin.com/projects/simplemodal-demos/
sono solo due esempi di jquery, ma ne trovi tonnellate al seguente:
http://plugins.jquery.com/
Inoltre trovi una libreria specifica con altri effetti presso:
http://jqueryui.com/demos/dialog/#modal

 
http://www.ericmmartin.com/projects/simplemodal-demos/
Ma le modal non sono quelle finestre che richiedono un'interazione con 
l'utente?
Io devo solo mostrare un popup che resti fino al termine 
dell'elaborazione e che non permetta nessun intervento dell'utente.

 dell'elaborazione e che non permetta nessun intervento dell'utente.
Qui io devo immaginare, non conosco esattamente quali meccanismi vuoi
attivare, quindi il mio ragionamento è ipotetico.
Si tratta di una elaborazione su lato server che però suppongo venga
iniziata da un intervento dell'utente, per esempio un click su un
bottone.
L'evento scatenato apre una finestra modale ed, al tempo stesso, invia
una istruzione attraverso un oggetto ajax, il callback (funzione
collegata all'oggetto ajax), attenderà il risultato della chiamata
ajax, suppongo esso sia una serie di informazioni organizzate, invia
il risultato dove è utile inviarlo e chiude la finestra
modale,  .dialog( 'close' ) nel caso di UI.
Da notare che all'interno di una finestra modale è possibile inserire
un gif animato per dare l'impressione che il meccanismo sia in moto.
Esempio: 
http://www.ajaxload.info/

 una istruzione attraverso un oggetto ajax, il callback 
Uso grails come framework di sviluppo.
Non e' necessario far intervenire ajax per l'elaborazione.
Semplicemente l'utente fa un click e chiama un'action, si potrebbe 
paragonare ad un semplice cgi.
Siccome questo cgi ci mette un po a fare le elaborazioni richieste prima 
di restituire la pagina con i risultati, volevo mostrare all'utente un 
popup, magari con un gif animato e nel contempo mettere in background la 
pagina in modo da non permettergli di dare altri click.

 pagina in modo da non permettergli di dare altri click.
Devi usare ajax, altrimenti come intercetti la fine dell'elaborazione
senza che la pagina intera venga richiamata?
Ti sconsiglio l'uso di una finestra esterna alla pagina che chiama il
cgi ( o similare ) per due ragioni: la finestra originale può essere
comunque manipolata, alcuni browser talvolta non permettono popup. La
finestrella modale è un div che viene posto in primo piano rispetto
alla pagina e rimane tale finchè non viene reso invisibile. L'oggetto
ajax ti permette di aprire la finestrella modale, attendere che
l'elaborazione sia finita ed infine chiudere la finestrella.
L'importante è che il programma lato server, alla fine
dell'elaborazione, restituisca qualcosa, Anche un semplice 1 oppure 0,
qualcosa che possa essere interpretato come fine dell'elaborazione,
del ciclo di programma.

 senza che la pagina intera venga richiamata?
Uso grails come framework di sviluppo, forse l'ho gia' detto :-), 
all'esecuzione di una action corrisponde la visualizzazione di una 
pagina, percio' non e' necessario che intercetti la fine 
dell'elaborazione, semplicemente quando termina l'elaborazione mi viene 
presentata la pagina con i risultati.

 E' necessario usare una delle librerie in oggetto?
Con YUI:
var panel = new YAHOO.widget.Panel("mypanel", {
		close:true,
		visible:false,
		draggable:true,
		modal:true
	});
panel.setBody(...);
panel.render();


scusa per capirsi e devo tenere aperto il browser 30 minuti?
mi pare folle...
metti la richiesta in coda e manda una mail quando finito.