Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    temporizzare funzione o sub per non perdere dati

    Salve, ho bisogno di far compilare un form ad alcuni miei utenti tramite pagina web, ma ovviamente vorrei cercare di non perdere le modifiche ogni qual volta per sbaglio si chiuda la pagina.
    Come è possibile una cosa simile?
    Avrei pensato almeno ad un salvataggio automatico ogni tot tempo e soprattutto in apertura di pagina, ma non so come sia possibile temporizzare e richiamare una certa sub che esegue il salvataggio (sub già sviluppata per il salvataggio manuale).
    Vi sarei grato se mi suggeriste qualcosa di utile.
    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    potresti farlo con ajax;
    ogni tot secondi lanci una chiamata ajax passandogli tutti i parametri presenti in quel momento sulla pagina...
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Mi potresti fare un esempio più specifico e soprattutto come si lancia una chiamata ajax?
    Va bene anche se ho molti parametri da salvare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    ajax non e' banale da spiegare in un post,
    pertanto ti rimando a queesta guida: http://javascript.html.it/guide/leggi/95/guida-ajax/

    come alternativa, crei un inframe nascosto con un certo nome (es. name="frameNascosto")", e un form che ha come target quel nome li' e come action una pagina che esegue le operazioni di salvataggio. Ogni tot secondi, popoli il form nascosto come quello originale e ne fai il submit.

    Cmq una occhiata ad ajax ti consiglio caldamente di darla!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  5. #5
    Scusate ma non posso fare partire un timer lato server che ogni tot tempo mi lancia una sub già pronta lato server?
    La routine del salvataggio già l'ho sviluppata e quindi orrei richiamare esattamente quella ogni tot secondi se fosse possibile.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    E' un problema di javascript. Perchè non provi a porre la domanda nel forum javascript? Penso che lì sappiano darti una mano.
    Pietro

  7. #7
    Intanto ti ringrazio.
    Quindi significa che non posso comunque farla partire lato server questa "operazione pianificata", chimiamola così...
    ?

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da kontimatteo
    Intanto ti ringrazio.
    Quindi significa che non posso comunque farla partire lato server questa "operazione pianificata", chimiamola così...
    ?
    :master: pensaci bene. E' come se l'utente pigiasse su un pulsante, a intervalli regolari, richiamando una pagina di salvataggio e spedendo i dati del form.
    Io lo farei in ajax, con un timer, magari con jquery che mi piace sempre di più.

    Ciao
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Come ha detto Pietro, un timer ajax è la soluzione per questo tipo di problemi

    Dal reference [http://www.asp.net/AJAX/Documentatio..._UI_Timer.aspx] :

    codice:
    <%@ Page Language="VB" AutoEventWireup="true" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Timer Example Page</title>
        <script runat="server">
            Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
                OriginalTime.Text = DateTime.Now.ToLongTimeString()
            End Sub
    
            Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
                StockPrice.Text = GetStockPrice()
                TimeOfPrice.Text = DateTime.Now.ToLongTimeString()
            End Sub
    
            Private Function GetStockPrice() As String
                Dim randomStockPrice As Double = 50 + New Random().NextDouble()
                Return randomStockPrice.ToString("C")
            End Function
    
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000" />
    
            <asp:UpdatePanel ID="StockPricePanel" runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Timer1" />
            </Triggers>
            <ContentTemplate>
                Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label>
    
                as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label>  
            </ContentTemplate>
            </asp:UpdatePanel>
            <div>
            Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label>
            </div>
        </form>
    </body>
    </html>

  10. #10
    Grazie mille! Mi mancava la dichiarazione del timer che non avevo capito come doveva essere fatta!
    Grazie a tutti!

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.