Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    43

    elaborazione dati,stampa a video e quindi salvataggio

    premessa: non sono sicuro che si ottenga una real vantaggio a fare quello che chiedo. (Sto testando tutte la varie funzionalità che java e jsp mi danno, ora sono arrivato ai database.)

    dato un imput utente (una form per esempio) una pagina jsp esegue delle operazioni e stampa a video il risultato, fin qui nessun problema.
    Ora vorrei far si che i dati mostrati all'utente vengano salvati in un db, ma per velocizzare il tutto vorrei che venissero salvati solo dopo aver generato la pagina sul browser.

    Come potrei fare? ma soprattutto, si avrebbe un vantaggio in termini di velocità per l'utente (a cui interessa solo vedere i dati)"scollegando" la stampa a video dal salvataggio?


    spero di essermi spiegato!

    grazie..

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Allora...potresti farlo.

    In termini di attesa questo si potrebbe risolvere solamente se i dati da scrivere sono parecchi ed il tempo impiegato sia alto, come per esempio serializzare tramite BLOB un file ( image ) all'interno del db.

    Dovresti fare così.
    1) Mandi la form iniziale
    2) Inivii la risposta all'utente
    3) All'onload della pagina fai una richiesta ajax che ti salva i dati.
    4) Sarebbe buona norma verificare che il salvataggio sia cmq andato a buon fine.

    Cmq, solitamente i tempi non sono alti se è stata gestita correttamente la connessione al db ( in quanto l'istanza di una nuova connessione computazionalmente occupa tanto tempo ).

    Spero di esser stato chiaro.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Demandare ad AJAX (e quindi al browser dell'utente) il compito di "ricordare" al server di memorizzare i dati prodotti non fornisce le garanzie necessarie che ciò venga davvero effettuato: e se, ad esempio, il browser avesse Javascript disabilitato?

    Nell'immediato io vedo due soluzioni possibili:
    1) esegui i salvataggi su DB in un thread avviato dalla JSP;
    2) esegui una out.flush() al termine della produzione del codice della pagina (inviando così i dati all'utente) e poi procedi con il salvataggio su DB

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Originariamente inviato da desa
    Demandare ad AJAX (e quindi al browser dell'utente) il compito di "ricordare" al server di memorizzare i dati prodotti non fornisce le garanzie necessarie che ciò venga davvero effettuato: e se, ad esempio, il browser avesse Javascript disabilitato?

    Nell'immediato io vedo due soluzioni possibili:
    1) esegui i salvataggi su DB in un thread avviato dalla JSP;
    2) esegui una out.flush() al termine della produzione del codice della pagina (inviando così i dati all'utente) e poi procedi con il salvataggio su DB
    Mmmh...
    Vediamo...Nel primo caso, di un Thread, se viene creato un thread per ogni utente che fa questa richiesta potrebbe diventare un'occupazione di memoria incredibile, ricordando che la creazione di un Thread è parecchio onerosa...

    Altresì si potrebbe fare un misto della tua seconda soluzione e della mia.

    Ovvero, qualora sia presente il JS fare la richiesta ajax e non permettere la navigazione sino a quando l'operazione ( atomica ) venga eseguita e portata a termine dando riscontro.

    Mentre qualora sia disabilitato fare il flush( sempre che un eventuale framework utilizzato lo permetta ) e poi proseguire conil salvataggio. In questo modo però l'utente non avrà riscontro di quello che sta accadendo, quindi se il dato è stato o meno salvato a meno che non venga inviata un'altra pagina...rischiando però che tra il report dei dati da mostrare ed il feedback del salvataggio passi troppo poco tempo.

    Ovvio, dipende tanto se ci deve esser tale feedback all'utente.

    Finendo...js oramai difficilmente si trova disabilitato, in quanto un buon 70% dei siti lo utilizza di default. Basti pensare a tutti i siti noti che lo utilizzano...
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  5. #5
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Sono partito dal presupposto che i dati DEBBANO essere salvati su DB e che l'operazione sia trasparente per l'utente: se qualcosa va a storto nel meccanismo di "logging", a lui cosa gliene frega? In questi termini l'utilizzo di Ajax mi pare fuori contesto, soprattutto perchè è demandato al client e non dà quindi garanzia che l'operazione vada a buon fine (il caso del Javascript disabilitato era un esempio: un altro potrebbe essere la caduta della connessione). Naturalmente, disabilitare la navigazione da parte dell'utente presenta le stesse problematiche, con l'aggiunta di un molto probabile senso di fastidio.

    Sebbene l'utilizzo di un thread non possa dirsi un'operazione onerosa - anzi! - sono comunque favorevole a ritenere la soluzione 2) come la più efficiente, anche ragionando in termini di memoria occupata

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    43
    effettivamente mi sa che non si può passare per ajax, in quanto l'intenzione è creare una specie di web service (e quindi non sarebbe un browser inviare e leggere i dati).

    In ogni caso vi ringrazio delle risposte, siete stati molto gentili! Appena riprendo lo studio ci guardo attentamente (sono appena diventato zio!!)



    - se può interessare la mia piattaforma di test|studio è ubuntu 10.04 64 bit + tomcat 6 + eclipse

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.