AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Timer unter ASP.NET

Ein Thema von Turbo30 · begonnen am 13. Jan 2006 · letzter Beitrag vom 14. Jan 2006
Antwort Antwort
Turbo30

Registriert seit: 12. Jan 2006
5 Beiträge
 
Delphi 8 Enterprise
 
#1

Timer unter ASP.NET

  Alt 13. Jan 2006, 09:09
Hi
Ich habe eine kleine ASP.NET Anwendung mit Delphi2005 geschrieben, die nur 1 Seite mit 2 DataGrids enthält. Die Grids sollen zykl. aus verschiedenen MS-SQL Tabellen aktualisiert werden. Die Anwendung enthält eine proc die die Aktualisierung ausführt.
Das ich den "System.Timers.Timer" nicht zum Laufen bringe, aktualisiere ich die Seite über <meta refresh content=....>
Funktioniert soweit tadellos hat aber den Nachteil, dass nach einigen Stunden der IIS (V6, V5.1 egal) den ganzen Server-Rechner abschießt (MEM >>)

Beim Aufruf über der Proc über einen Button stellt sich der Speichereffekt nicht ein. Wie bringt man den Timer zum Laufen.
"Start" oder "Enabled=True" hat keinen Effekt.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#2

Re: Timer unter ASP.NET

  Alt 13. Jan 2006, 09:16
Gar nicht. Wie soll denn das auch gehen? Der Timer wird erstellt, die HTML-Seite wird an den Client ausgeliefert und alle Objekte (die existieren ja nur auf dem Server) werden wieder zerstört.

Um es kurz zu sagen: Dein Timer existiert nur beim Erstellen der Webseite, nicht mehr, wenn sie angezeigt wird.

Was Dein 'Phänomen' angeht: Drückst Du den Button, so wird die aktuelle 'Session' weiterbenutzt. Beim refresh-Header fehlt dem Server bei der neuen Anfrage vom Browser die Session-Id und er erstellt eine neue Session die wieder neuen Speicher braucht. Warum die alten Sessions nach einer gewissen Zeit jedoch nicht aufgeräumt werden weiss ich jetzt spontan auch nicht.

Ich würde das so lösen: Du erstellst einen Button und füllst die Seite zusätzlich noch mit einem Javascript-Timer. Somit hast Du Deinen Timer auf dem Client (wo er ja auch hin muss) und nach n Minuten drückt das JavaScript einfach auf den Button.

Damit hast Du das Session- / Speicherproblem nicht mehr und den automatischen Refresh realisiert.

Edit Nachtrag:
Noch ne andere Idee:

Du erstellst einfach einen Webservice, der 2 DataSets als Antwort ausliefert. Dann programmierst Du eine normale Windows.Forms-Anwendung mit 2 Grids die einen Timer hat, im Timer-Event den Webservice abfragt und die neu empfangenen DataSets mit den alten austauschst. Das erfordert kein JavaScript auf dem Client-Browser.
Natürlich braucht der Client dann ein Windows.Forms fähiges .NET Framework wie z.B. dotGNU auf MacOS X oder Linux, aber das dürfte wohl die elegantere Lösung sein.

Edit Nachtrag 2:
Manchmal gibts zufälle. Hab gerade nach einer Lösung für mein akutes Problem gesucht und dabei noch eine Lösung zu Deinem gefunden. Mein Javascript-Ansatz war gar ned so doof. Hier ein Beispiel aus dem Code Project: http://codeproject.com/aspnet/autopostback.asp
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Turbo30

Registriert seit: 12. Jan 2006
5 Beiträge
 
Delphi 8 Enterprise
 
#3

Re: Timer unter ASP.NET

  Alt 14. Jan 2006, 11:16
Schönen Dank für die prompte Anwort. Klar, dass mit dem Timjer leuchtet ein.
Werde mich mal mit der Java-Lösung beschäftigen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz