Timer & Update Panel

giovedì 30 agosto 2007 - 10.38

Anonimo Profilo | Senior Member

Salve,
mi sono registrato perchè (come ogni nuovo utente) ho un problemino da risolvere, ovvero:

ho bisogno di costruire una paginetta web che mi permetta di visualizzare una immagine e aggiornare la stessa ogni secondo (per aggiornamento non intendo assolutamente il refresh della pagine). Mi spiego meglio.

L'url contenente l'immagine è sempre lo stesso e si trova in rete (ma l'immagine cambia, per farvi un'idea penasate ad una webcam in rete, il mio obbiettivo è scattare una foto ogni secondo così da ottenere una sorta di "filmato").
Adesso ho bisogno di fare in modo che ogni secondo l'oggetto Image "aggiorni" l'immagine.

Ho provato con l'estensione Ajax, utilizzando il timer e l'update panel :

lato progettazione:

<%@ Page Language="VB" CodeFile="Default.aspx.vb" 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>view</title>
</head>
<body>
<form id="frm1" runat="server">
<asp:ScriptManager id="ScriptManager1" runat="server" />
<div>
<asp:Timer id="TimerTlc" runat="server" OnTick="Tick" Enabled="True" Interval="1000" />
<asp:UpdatePanel id="UpdateVideo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Image ID="Image" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TimerTlc" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>

lato codice:

Protected Sub Tick(ByVal sender As Object, ByVal e As System.EventArgs)
Me.ImageTlc.ImageUrl = "http://....jpg"
End Sub

Ma utilizzando il codice sopra riportato mi viene fuori solo la prima immagine, mentre se utilizzo il timer in maniera sincrona, quindi, modificando il codice "lato progettazione" in questo modo:

<%@ Page Language="VB" CodeFile="Default.aspx.vb" 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>view</title>
</head>
<body>
<form id="frm1" runat="server">
<asp:ScriptManager id="ScriptManager1" runat="server" />
<div>
<asp:Timer id="TimerTlc" runat="server" OnTick="Tick" Enabled="True" Interval="1000" />
<asp:UpdatePanel id="UpdateVideo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Image ID="Image" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>

Mi restituisce l'immagine ad ogni secondo ma risulta sgradevole da vedere per lo sfarfallio dell'operazione di aggiornamento.

Gradirei gentilmente un aiuto, un osservazione sul codice, magari su errori effettuati, oppure su altre strade possibili da effettuare nel caso questa soluzione non sia proprio quella ottimale.

ringrazio per l'attenzione, SERGIO.

Anonimo Profilo | Senior Member

Prova ad utilizzare l'iframe e refresha solo l'iframe
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5