Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
OnBeforeUnload e PostBack
martedì 02 febbraio 2010 - 09.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
paquito_ita
Profilo
| Senior Member
224
messaggi | Data Invio:
mar 2 feb 2010 - 09:32
Ciao,
dalla mia applicazione web [ASP.NET/C#], apro in una nuova pagina del browser (tramite javascript window.open) un grafico fornito da un partner esterno.
Piu' nel dettaglio invoco un REST web service che, aperto nella nuova pagina, visualizza una Mind Map. L'utente puo' apportarvi delle modifiche e, una volta chiusa la pagina, il file viene automaticamente salvato sul server del partner che fornisce il servizio.
A questo punto (tramite un'altra API) posso ottenere la descrizione delle modifiche fatte. Il problema e' che tale API andrebbe invocata quando la pagina è chiusa (in modo da ottenere una descrizione consistente).
Come potrei quindi implementare un meccanismo che, quando la pagina viene chiusa dall'utente, la mia API (lato server) viene invocata per ottenere le modifiche fatte?
Grazie in anticipo
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
mar 2 feb 2010 - 10:09
Ciao
benchè sia possibile intercettare il Closing del browser da javascript, non te lo consiglio perchè potrebbe accadere che l'evento non venga invocato correttamente o che l'utente abbia disabilitato i javascript.....
Ti consiglio di lavorare sulla base delle azioni dell'utente..... quindi, o metti un semplice pulsante del tipo "Salva dati" oppure dovresti salvarti lato server tutte le informazioni necessarie ed intercettare la chiusura della sessione (nel global asax) e utilizzare quell'evento lato server... .ma anche questo approccio se utilizzato con una sessione non in memoria non funzionerebbe, se ad esempio hai un ASPState su SQL Server perchè hai una batteria di n server......
Riassumendo, la scelta più semplice e più efficace sarebbe il pulsante "Salva"
tienici informati
ciao
Antonio Esposito
MCTS, MCP
http://blogs.dotnethell.it/espositos
paquito_ita
Profilo
| Senior Member
224
messaggi | Data Invio:
mar 2 feb 2010 - 13:35
Ciao,
rianalizzando il problema anche io ero propenso per un button che permettesse di salvare le modifiche (anche parziali) sul nostro DB. Usare la sessione non penso funzionerebbe, in quanto la nuova pagina che viene aperta (che a seconda delle impostazioni del browser potrebbe essere una nuova tab) visualizza l'output prodotto da un servizio esterno, quindi non associato con la nostra applicazione.
Grazie per il consiglio, credo proprio procedero con un button e creando un thread che regolarmente, ad esempio alle 2 di notte, esegue un look up e salva i dati relativi alle mind map non "aggiornate" sul nostro DB, previo settaggio di un flag.
Considero il seguente scenario:
1) Click sul button "Open Map" -> imposto flag "isUpdated" a FALSE (l'utente modifica la mappa)
2) Click sul button "Apply changes" -> resetto il flag e imposto a TRUE (in tal modo la routine non deve considerare tale dato)
Se un utente clicca sul button "Apply changes" mentre un altro utente sta ancora editando la mappa, allora NON resetto il flag.
Avresti eventuali consigli per migliorare il processo?
Grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !