Visualizzazione dei risultati da 1 a 6 su 6

Discussione: submit duplicato

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    submit duplicato

    Mi capita su alcuni webform che, a causa della lentezza della risposta del server, se un utente clicca due volte sul bottone che fa il submit, il codice che c'è dietro (scrive dei record in un db) venga eseguito due volte e quindi poi mi trovo record duplicati in database e blablabla...
    Posso ovviare prima di fare gli inserimenti dei record verificando il timestamp dell'ultimo record inserito e se non è passato meno di x tempo posso bloccare l'inserimento di un nuovo record, però mi sembra un workaround un po' "grezzo"... ci sono modi più eleganti per evitare il problema?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Hai provato disabilitando il button al click?

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    vero... che stordito, non ci avevo pensato
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Quote Originariamente inviata da supermac Visualizza il messaggio
    vero... che stordito, non ci avevo pensato
    può capitare, a volte le cose più facili ci sfuggono.

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    è un problema piuttosto comune, volendo farlo bene, dovresti "congelarlo" ad inizio operazione e "scongelarlo" alla fine di essa.

    Ci sono varie soluzioni in rete
    Ultima modifica di djciko; 11-04-2016 a 13:56

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Torno sul tema perchè continuo ad avvicinarmi ma non ci arrivo mai:
    ho trovato questo che mi sembrava adeguato
    http://stackoverflow.com/questions/2...-the-same-time
    quindi ho implementato la soluzione proposta.

    Dopo un paio di tentativi sono arrivato a questa forma del bottone:
    <asp:Button ID="Button1" runat="server" CausesValidation="True" CommandName="Insert" Text="Conferma" ValidationGroup="detail" OnClientClick="this.disabled = true;" UseSubmitBehavior="false" />

    Come si vede non ho messo il submit JS sul clientclick come invece consigliato nel link perchè ho visto che il bottone faceva lo stesso il postback quindi era inutile glielo facessi fare un'altra volta via JS.

    Il problema è che il bottone però scatena anche la validazione del form lato client e succede che se la validazione non va a buon fine per qualche motivo il bottone resta disabled... dovrei (penso) intercettare il risultato della validazione e ripristinare l'enabled del bottone qualora non passi.... ma dovrei farlo lato client: e come/dove si fa?


    EDIT: risolto
    OnClientClick="if(Page_ClientValidate('detail')){t his.disabled=true;}"
    Ultima modifica di supermac; 10-05-2016 a 15:18
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.