Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    41

    redirect a pagina asp server to server

    Buongiorno,
    ho un sito in asp,
    avrei la necessità di far chiamare "in background" una pagina .asp che il server continua ad eseguire fino al suo completo caricamento, ma nel frattempo la navigazione da browser possa continuare liberamente.

    Faccio l'esempio:
    -form.asp (contiene un mio form di dati)
    -update.asp (al submit del form, questa pagina scrive i dati del form in una riga del database, e fa una serie di controlli e scritture "secondarie" piuttosto lunghe, circa 20secondi. ed al termine fa un redirect alla pagina di esito)
    -esito.asp (una pagina di esito della riga scritta)

    Il mio problema è che la update.asp ci mette tanto a fare le scritture "secondarie", ma finchè non ha eseguito l'intera pagina, non visualizzo la pagina di esito...
    Quello che vorrei ottenere è:
    Far fare alla update.asp soltanto la scritture della singola riga.
    Contestualmente far eseguire "server to server" una pagina con le scritture secondarie(per esempio:update2.asp) e reindirizzare subito alla pagina di esito.asp
    In questo modo il server continua ad eseguire la update2.asp fino a che non l'ha completata, ma al navigatore viene subito proposta la pagina di esito senza inutili e fastidiose attese...

    come posso fare?
    grazie

  2. #2
    ma ha senso proporre la pagina esito se update non ha finito? e se qualcosa va storto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    41
    per update.asp, l'unica cosa fondamentale e necessaria è soltanto scrivere i dati del form in una riga nel database. (operazione quasi istantanea).

    Sono le altre operazioni secondarie ad essere lunghe, sebbene siano correlate alla mia riga scritta, non pregiudicano l'esito. La pagina di esito si riferisce soltanto alla riga scritta.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Cosa non ho capito?
    <%
    ' aggiorna la riga
    ' scrivi in out la pagina
    response.flush
    ' prosegui con il resto dell'elaborazione
    %>
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    41
    Ciao br1,
    con il tuo metodo ti sfugge il fatto che se l'utente si vede il messaggio che l'operazione è stata conclusa con successo(la riga è stata scritta), potrebbe poi chiudere il browser o cliccare un altro link del sito, ma in realtà le operazioni secondarie stanno ancora terminando di essere eseguite...
    ecco perche il file con le operazioni secondarie deve continuare ad essere eseguito dal server fino al completo caricamento. La navigazione dell'utente deve restare indipendente.

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da codem
    Ciao br1,
    con il tuo metodo ti sfugge il fatto che se l'utente si vede il messaggio che l'operazione è stata conclusa con successo(la riga è stata scritta), potrebbe poi chiudere il browser o cliccare un altro link del sito, ma in realtà le operazioni secondarie stanno ancora terminando di essere eseguite...
    ecco perche il file con le operazioni secondarie deve continuare ad essere eseguito dal server fino al completo caricamento. La navigazione dell'utente deve restare indipendente.
    Sei sicuro che in caso di disconnessione dell'utente l'elaborazione termini? Non mi pare che tu faccia il test di Response.IsClientConnected ...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Originariamente inviato da codem
    per update.asp, l'unica cosa fondamentale e necessaria è soltanto scrivere i dati del form in una riga nel database. (operazione quasi istantanea).

    Sono le altre operazioni secondarie ad essere lunghe, sebbene siano correlate alla mia riga scritta, non pregiudicano l'esito. La pagina di esito si riferisce soltanto alla riga scritta.
    quindi le operazioni secondarie possono anche fallire, e nessuno lo saprà mai?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    41
    Originariamente inviato da br1
    Sei sicuro che in caso di disconnessione dell'utente l'elaborazione termini? Non mi pare che tu faccia il test di Response.IsClientConnected ...
    Scusa br1, quindi tu vuoi dire che se io ho una pagina.asp che ha un tempo di caricamento molto lungo, e diciamo dopo che elaborato la sua prima metà, faccio un response.Flush per far visualizzare parte del contenuto al navigatore, ed il navigatore a quel punto chiude il suo browser o clicca un altro link, il server continua ad eseguire comunque il resto della pagina asp fino al completamento della stessa?

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Prova.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    41
    Azz... funziona....

    prima del response.flush ho messo in javascript un top.location.href="pagina_di_esito.asp";

    cosi vengo subito reindirizzato al mio esito, ma in realtà la pagina asp continua ad essere eseguita dal server.
    ottimo! grazie davvero molte!
    E' davvero affidabile come metodo? Nel senso: posso essere veramente sicuro che la pagina continua ad essere eseguita per intero?

    Ora devo pero capire il perche questo accade.... perchè uso il response.flush?
    altrimenti se andavo al mio esito con un response.redirect l'esecuzione della pagina sarebbe stato interrotta, giusto?

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.