Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Non interrompere script all'abbandono del client

  1. #1

    Non interrompere script all'abbandono del client

    Ho un problema:
    Ho una pagina dove l'utente carica delle immagini (max 4) e le invia al server.
    Il server compie queste operazioni:
    - Prende le immagini
    - Corregge le dimensioni
    - Assegna uno specifico nome
    - Esegue delle operazioni di inserimento e di aggiornamento su 5 tabelle
    - Invia 3 mail diverse a 3 contatti diversi
    Al termine l'utente riceve una pagina di cortesia indicante che il caricamento è andato a buon fine.

    A volte accade che, vuoi per lentezze degli smartphone o altro, l'utente chiude non appena termina il caricamento delle immagini.
    Accade che le tabelle non sempre si aggiornano e le mail non partono.

    Esiste un modo per far proseguire lo script lato server indipendentemente dall'utente?
    In PHP esiste il comando "ignore_user_abort()"
    C'è qualcosa di simile in Asp classico?


    Grazie.

  2. #2

  3. #3
    Moderatore di XHTML e HTML L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    17,807
    Quote Originariamente inviata da SoloWiFi Visualizza il messaggio
    In PHP esiste il comando "ignore_user_abort()"
    C'è qualcosa di simile in Asp classico?
    no

    bisogna tentare un escamotage a livello procedurale.
    ad esempio provare a salvare tutti i dati prima del caricamento immagini, anche se si potrebbe presentare un problema in caso di rinomina dei file.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,930
    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
    Moderatore di XHTML e HTML L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    17,807
    si, anche in asp semplice esiste IsClientConnected:
    https://www.w3schools.com/asp/prop_i...tconnected.asp

    non ho pensato di suggerirlo perché... non lo so perché

  6. #6
    ... sperimentiamo

  7. #7
    Non è chiaro come possa usarla visto che mi torna solo vero o falso ... ma potrei fare questa prova e vedere cosa accade
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <%
    Start=Timer+20
    do while Start>Timer
        ' fai nulla
    loop
    
    if Response.IsClientConnected then
        response.write "Tempo Scaduto"
    else
        ' inviami una maiil
        ...
        ...
        ...
    end if
    %>
    Oppure potrei imporre una condizione sempre vera per far proseguire il lavoro

    codice:
    if Response.IsClientConnected or not Response.IsClientConnected then
    
       ' fai questo 
    
    end if
    
    if Response.IsClientConnected or not Response.IsClientConnected then
    
       ' fai anche questo
    
    end if
    Ultima modifica di SoloWiFi; 20-09-2017 a 18:54

  8. #8
    Moderatore di XHTML e HTML L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    17,807
    il concetto sarebbe quello di far proseguire l'elaborazione nonostante il client sia disconnesso.
    quindi
    codice:
    if Response.IsClientConnected or not Response.IsClientConnected then
    
       ' fai questo e quello
    
    end if
    "POTREBBE" essere utile

  9. #9
    Allora ragazzi: Prove fatte e rifatte. Questo è l'esito:

    IsClientConnected non serve ad una cippa o meglio può servire per NON ESEGUIRE in caso di terminata connessione.

    Ho provato facendo eseguire un ciclo per 2 minuti e al termine farmi inviare una mail
    Ho lanciato la pagina e dopo 3 secondi ho chiuso il browser.

    Inserendo: if Response.IsClientConnected or not Response.IsClientConnected then
    La mail è arrivata, quindi la pagina ha proseguito l'esecuzione.

    Poi ho voluto fare la prova contraria ovvero remmare la if e mandare in esecuzione la pagina con le stesse modalità.
    La mail è arrivata lo stesso.

    Questo significa che sul server continua comunque l'esecuzione indipendentemente dal client.
    Dopo questo test è evidente che IsClientConnected può essere usato solo per terminare il lavoro sul server in caso di disconnessione.


    Dopo questa delusione ... il mio problema rimane e devo capire dove è il problema escludendo il server.

  10. #10
    Dimenticare quello che ho scritto sopra.
    FUNZIONA!!

    Ho rieffettuato i test preoccupandomi di pulire la cache dei browser
    Ripeto: Funziona!

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 © 2017 vBulletin Solutions, Inc. All rights reserved.