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

Discussione: Timer ASP [VB]

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    103

    Timer ASP [VB]

    Salve a tutti,
    Devo inserire in una pagina ASP un timer che ogni 1000 ms (1 secondo) incrementi una variabile (a=a+1). Lavorando con Visual Web Developer 2008 ho inserito tutto ciò che mi serve ma quando vado a vedere l'anteprima la variabile non viene incrementata.

    P.S.= non c'è un modo per non far aggiornare la pagina ogni secondo?
    Grazie 1000 a tutti anticipatamente.

  2. #2
    ma ti conviene usare il timer dell'estensione ajax
    la vita è un fulmine ma prenderlo nel culo è un lampo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    103
    Tu cosa mi consigli?
    ancora non mi era mai capitato di usare il timer quindi sono un pò inesperto.

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    103
    Rispondete per favore, devo risolvere urgentemente questo problema.

    Grazie 1000

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    103
    Ma non c'è nessuno che sappia dirmi come devo fare per incrementare di 1 (per esempio) una qualsiasi variabile?

  6. #6
    ma la variabile devi anche stamparla ogni secondo?
    la vita è un fulmine ma prenderlo nel culo è un lampo.

  7. #7
    Vedi se questo esempio ti va bene
    Questo è il Web.config
    Codice PHP:
    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
                        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    </sectionGroup>
                </sectionGroup>
            </sectionGroup>
        </configSections>
        <system.web>
            <pages>
                <controls>
                    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                </controls>
            </pages>
            <!--
              Set compilation debug="true" to insert debugging
              symbols into the compiled page. Because this
              affects performance, set this value to true only
              during development.
        -->
            <compilation debug="false">
                <assemblies>
                    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                </assemblies>
            </compilation>
            <httpHandlers>
                <remove verb="*" path="*.asmx"/>
                <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
            </httpHandlers>
            <httpModules>
                <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            </httpModules>
        </system.web>
        <system.web.extensions>
            <scripting>
                <webServices>
                    
                    <!--
          <jsonSerialization maxJsonLength="500">
            <converters>
              <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
            </converters>
          </jsonSerialization>
          -->
                    
                    <!--
            <authenticationService enabled="true" requireSSL = "true|false"/>
          -->
                    <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
               and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
               writeAccessProperties attributes. -->
                    <!--
          <profileService enabled="true"
                          readAccessProperties="propertyname1,propertyname2"
                          writeAccessProperties="propertyname1,propertyname2" />
          -->
                </webServices>
                <!--
          <scriptResourceHandler enableCompression="true" enableCaching="true" />
          -->
            </scripting>
        </system.web.extensions>
        <system.webServer>
            <validation validateIntegratedModeConfiguration="false"/>
            <modules>
                <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            </modules>
            <handlers>
                <remove name="WebServiceHandlerFactory-Integrated"/>
                <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            </handlers>
        </system.webServer>
    </configuration>
    Default.aspx.cs
    codice:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
                Label1.Text = "0";
        }
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            int x = int.Parse(Label1.Text) + 1;
            Label1.Text = x.ToString();
        }
    }
    Default.aspx
    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <div>
    			<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
    			</asp:Timer>
            
            </div>
    		
    
    		<asp:Label ID="Label1" runat="server"></asp:Label>
        </form>
    </body>
    </html>
    la vita è un fulmine ma prenderlo nel culo è un lampo.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Tu sai che quando crei una variabile nel server, questa viene persa non appena la pagina viene inviata al browser.
    Perciò bisogna salvare questa variabile in qualche posto.
    Un modo è quello di usare la sessione. Un altro è quello di usare un cookie. Altro modo è quella di usare un hidden.

    Ti faccio un esempio con la sessione. L'esempio fa uso di ajax (scarica il file qui:http://packed.it/runtime/?project=ABC)

    Il client produce un numero casuale (da 1 a 10), lo manda al server, lo somma, lo fa vedere nel client, ad intervallo di 1 secondo.

    Il codice, per aspx, va pure bene (con piccoli adattamenti) pure per asp.

    codice:
    <%@ Page Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim comando_ajax As String = Me.Request.QueryString("comando_ajax")
            If comando_ajax = "1" Then
                eseguiProcedura()
            End If
        End Sub
        
        Private Sub eseguiProcedura()
            'recupero il numero ricevuto (da 1 a 10)
            Dim random As String = Me.Request.Form("random")
            
            'lo aggiungo alla variabile session random
            Dim o As Object = Me.Session("random")
            If (o Is Nothing) Then
                Me.Session.Add("random", Integer.Parse(random))
            Else
                Me.Session("random") = CInt(Me.Session("random")) + Integer.Parse(random)
            End If
            
            Dim s As String = "Parametro random ricevuto = " + random + "
    " _
                    + "variabile sessione = " + Me.Session("random").ToString
            
            Me.Response.Write(s)
            Me.Response.End()
    
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Incremento variabile server</title>
        <link href="../../../stili/Styles.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="../../../js/abc.js"></script>
    
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    function procedi()
    {
        var a1 = document.getElementById("a1");
        if(a1.style.display == "none")
        {
            continua = true;
            a1.style.display = "";
        }
        
        var url = "?comando_ajax=1";
        var parametri = {random:random(1,10) };
        parametri.onLoad = onload;
        parametri.onError = onerror;
        
        ABC(parametri, url);
        
        function onload(request, elapsedTime)
        {
            document.getElementById("div1").innerHTML += "<hr/>" + (request.responseText);
            if(continua) 
                window.setTimeout(procedi, 1000);
            else
                a1.style.display = "none";
        }
        
        function onerror(xhr, elapsedTime)
        {
            alert("Errore di trasmissione: " + xhr.status);
        }
    
    }
    
    //restituisce numero casuale compreso tra min e Max, compresi
    function random(min, Max)
    {
    	return Math.floor(min + (Math.random() * (Max - min + 1)));
    }
    
    var continua = true;
    function stop()
    {
        continua = false;
    }
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
            <h5>Spedisco un numero random al server, lo sommo alla variabile di sessione e visualizzo la variabile di sessione nel client</h5>
            Procedi
            
            Stop
            <hr />
            <div id="div1"></div>
        </form>
    </body>
    </html>
    Pietro

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    103
    Grazie per le risposte, ma non ho risolto ancora il mio problema.
    Il timer ajax aggiorna sempre la pagina. Non c'è un modo per evitare ciò?

    qst è un esempio
    http://www.mediafire.com/?tccm4jlwmjd
    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    non ho capito bene quello che devi fare..
    potresti spiegare esattamente... COSA ti serve?
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

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.