Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    10

    Scritta "caricamento in corso" in attesa dei risultati

    Ciao a tutti.. visto che su questo forum sto trovando gente competente e che soddisfa ogni volta le mie esigenze, ora voglio chiedervi se qualcuno sa inserire delle scritte del tipo "caricamento in corso" in attesa dei risultati su un sistema basato su JSP e servlet.. avrei bisogno in particolare di inserire quella scritta prima che venga fatto il forward dalle servlet... ho provato con response ma una volta inviato non mi fa il forward... voi come risolvereste??? grazieeee...

  2. #2

    Re: Scritta "caricamento in corso" in attesa dei risultati

    Originariamente inviato da Dariux88
    Ciao a tutti.. visto che su questo forum sto trovando gente competente e che soddisfa ogni volta le mie esigenze, ora voglio chiedervi se qualcuno sa inserire delle scritte del tipo "caricamento in corso" in attesa dei risultati su un sistema basato su JSP e servlet.. avrei bisogno in particolare di inserire quella scritta prima che venga fatto il forward dalle servlet... ho provato con response ma una volta inviato non mi fa il forward... voi come risolvereste??? grazieeee...
    Ciao, il forward è un metodo utilizzato da una servlet per passare il controllo ad un altro componente lato server (che può essere una servlet o una jsp), quindi finché tu fai dei forward il browser non vede nessun cambiamento (aspetta sempre una risposta , una response appunto...), ci pensa l'ultimo componente della catena di forward a scrivere la response verso il browser. Quando da una servlet fai redirect invece, stai di fatto restituendo una response al browser un po particolare, una che gli dice : ok, ora fai un'altra chiamata a questa url (cui risponderà probabilmente un'altra servlet o jsp, o anche un sito esterno).
    Fatta questa premessa, per chiarire alcune cose che magari non ti sono chiare (o così mi è parso da quello che hai scritto) posso illustrarti 3 possibili soluzioni per il tuo caricamento in corso:

    1)la servlet che restituisce l'html in cui deve andare il monitor di progresso, inserisce in questo html anche del particolari tag meta (nell'header della pagina) che istruiscono il browser affinché richieda periodicamente la stessa pagina in modo da ricevere la stessa pagina ma con il progress aggiornato
    2)fai lo stesso del punto due ma con un javascript
    3) usi ajax per richiedere periodicamente (usando un setTimeout) al server solo il pezzetto di html relativo al progress status

    Inutile dire che fra le 3 l'unica che ritengo decente è la terza perché è più performante e consente all'utente di non vedersi la pagina sparire per un attimo da sotto il naso mentre al sta leggendo (come accade ad esempio )qui ...fastidiosissimo.
    Nella terza soluzione devi predisporre una seconda servlet (in generale diversa dalla prima che restituisce tutta la pagina) che restituisca solo il pezzetto con il progress. Puoi anche usare la stessa servlet e passare un parametro per discriminare le due situazioni, vedi un po tu.

    Comunque mi pare di averti già suggerito questa soluzione in un altro post (o non eri tu ?)
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    10
    si ero sempre io... cmq ti ringrazio tantissimo.. vedo cosa posso fare anche se a dire la verità speravo in una soluzione meno complicata visto ke non mi viene richiesta esplicitamente questa funzione.. era solo per bellezza e per far capire all'utente che deve aspettare.. cmq un giorno mi farò molto bene ajax.. vedo che serve a parecchie cose.. grazieeeeeeee

  4. #4
    Originariamente inviato da Dariux88
    si ero sempre io... cmq ti ringrazio tantissimo.. vedo cosa posso fare anche se a dire la verità speravo in una soluzione meno complicata visto ke non mi viene richiesta esplicitamente questa funzione.. era solo per bellezza e per far capire all'utente che deve aspettare.. cmq un giorno mi farò molto bene ajax.. vedo che serve a parecchie cose.. grazieeeeeeee
    guardati Jquery e in particolare questa funzione load, ti assicuro che è tutt'altro che complicato, devi fare sostanzialmente 3 cose:

    1) includere jquery come libreria javascript
    2) scrivere una servlet che restituisca il tuo pezzetto di html dinamico per il progress
    3) richiamare load periodicamente con un setTimeout

    sono due stupidaggini
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    se non devi visualizzare una barra di avanzamento, puoi fare una cosa molto più semplice... prima di chiamare la servlet che elabora i dati, chiami una jsp che al suo interno ha un semplice gif di caricamento in corso(o anche una semplice scritta "attendere prego, accesso in corso") e che effettua la redirect alla servlet sopra menzionata. Fino a quando la servlet non effettuera la forward restituendo il controllo al browser, all'utente rimmarrà visibile la jsp di "caricamento in corso".

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    10
    non ho capito molto bene il concetto di Vindav... io ho una jsp che manda dati ad una servlet e questa servlet deve effettuare calcoli e restituire il risultato tramite forward ad un altra jsp... dove dovrei inserire il redirect e poi come devo fare?? ho provato ma senza risultati finora..

  7. #7
    Originariamente inviato da Vindav
    se non devi visualizzare una barra di avanzamento, puoi fare una cosa molto più semplice... prima di chiamare la servlet che elabora i dati, chiami una jsp che al suo interno ha un semplice gif di caricamento in corso(o anche una semplice scritta "attendere prego, accesso in corso") e che effettua la redirect alla servlet sopra menzionata. Fino a quando la servlet non effettuera la forward restituendo il controllo al browser, all'utente rimmarrà visibile la jsp di "caricamento in corso".
    credo di non aver capito nemmeno io...in particolare questa frase "la servlet non effettuera la forward restituendo il controllo al browser" non la capisco. Una servlet che effettua un forward lo effettua lato server, passando di fatto la stessa request che gli è arrivata ad un'altra servlet o a una jsp (che è una servlet anche lei alla fine della fiera), nessun controllo viene restituito al browser finche si effettuano solo dei forward, può succedere solo scrivendo la response (esplicitamente o non) o facendo un redirect (che scrive la response pure quello).
    Magari mi sono perso qualcosa io della tua soluzione, puoi provare a rispiegarla? chiaramente se non ha bisogno di grandi cose una soluzione più semplice della mia ben venga
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Si effettivamente mi sono spiegato male... quello che dovresti fare è semplicissimo. Tu hai una jsp che manda dei dati alla servlet. Invece di spedire i dati alla servlet richiami la jsp di "caricamento in corso" effettuando una submit. In questa pagina recuperi i dati dalla request e li piazzi nei campi hidden. All'onload della pagina effettui un ulteriore submit(con javascript ma è semplicissimo è una riga di codice) alla servlet che elaborerà i dati e richiamerà la pagina di presentazione. Ora se l'elaborazione dei dati della servlet sara molto lunga, l'utente in questo lasso di tempo vedrà la pagina di caricamento in corso, cioè l'ultima pagina caricata dal browser. Probabilmente non è la soluzione migliore ma credo sia la piu semplice sopratutto se non conosci o non vuoi utilizzare ajax e jquery.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.