selbst updatende Webseite in Perl oder PHP

also dann start mal das script 10 mal hintereinander dann siehst bei ner Persistent Connection das nur eine connection aufgemacht wurde und die offen bliebt (und nach einer gewissen zeit von mysql austimeoutet.. selbst schon in projekten festgestellt)
auch wenn das script sich beendet...
daher "Persistent Connection" das handled dann der apache mit dem interpreter irgendwie zusammen ab, genaue funktionsweise ist mir nicht bekannt..


und windowsliebhaber.. mein cheffe auch so einer.. unser software router ist ne Windowskiste... mit nem scheiss programm mit total seltsamer "firewall" hatte letztens mit unserem admin gekotzt nur weil wir n port auf dem router öffnen wollten weil da n apache nun drauf läuft sassen wir 2 tage dran und nix klappte.. nach einem anruf beim hersteller der software gabs dann den hinweis "wir müssen ein trick nutzen" ... den port auf sich selbst leiten...
naja funktionieren tuts (=

und wegen den verbindungen nochmal.. einfach mal nen selbstversuch starten mit apache und mysql ... einfach von 10 rechnern im rhytmus von 10 sekunden die seite neuladen lassen die ne verbindung aufbaut oder so und das script halt mit persistent connection machen..

wenn dann 10 connections dasind ists halt "mist" aber wenn nur eine is es super für dich..
 
Was mir grade auch noch in den Sinn kam: SOAP.
So wie ich das verstanden habe laeuft auf deinen Clients Windows. Microsoft bietet auch ein kleines Interface dazu:
http://www.microsoft.com/germany/ms...ServiceMithilfeDerSOAPLitePerlBibliothek.mspx

Dann koennte man eigentlich mit IO::Socket::INET auf dem Server einen Daemon starten und die Clients mit ihm verbinden. Aendert sich was sagt der Server den Clients, dass sie per SOAP die Seite aufrufen/aktualisieren sollen.
 
teK schrieb:
Wie kriegt der Browser das mit, wenn sich am Server etwas ändert?

Eigentlich gar nicht. Der Browser (HTML) ist ohne Script was aller n-sekunden stupid die seite neulädt oder einem Programm/Script was einen eigenen Sockel aufmacht der dann direkte Verbindung hält (wie Java-Chat Client bei BSD-Foren), nicht in der Lage "zu wissen" das sich etwas am Server geändert hat.

Ich würde mir auch ganz genau überlegen ob ich in einer Firma aller n-Sekunden eine Datenbankabfrage machen lasse, den schließlich hat man da meist mehr als nur einen Browser am laufen.

Thomas
 
Buschhardt schrieb:
Ich würde mir auch ganz genau überlegen ob ich in einer Firma aller n-Sekunden eine Datenbankabfrage machen lasse, den schließlich hat man da meist mehr als nur einen Browser am laufen.

Thomas
Doch das ist genau das Problem und das Ziel!!!
Es sollen permanent unzählige PC mit der Datenbank verbunden sein, über das Webinterface Daten reinschaufeln und ständig sehen was passiert!

Beispiel:
Patient wird aufgenommen - OP-Indikation - bekommt einen OP-Saal mit Team und Sollzeit zugewiesen - von irgendeinem Chirurgen an irgendeinem PC in irgendeinem Zimmer in irgendeinem Haus im Klinikum!
Ein anderer hat einen oder 10 andere usw. usw. und jeder muß sehen:
* wo läuft was gerade
* wie lange ist geplant
* ist irgendwo ein OP-Saal frei
* kann ich die Reihenfolge des Ablaufs ändern usw.

Anderer Ort zeitgleich
* eine OP-Schwester markiert eben eine OP als begonnen, beendet usw. - Arzt irgendwo sieht auf Monitor - ah Saal x eben fertig, nix wie hin, ich war Erster, MEINER jetzt!!!

Noch anderer Ort!
*Großes Auge sieht alles, ist immer wach - (genannt Sauron äh OP-Manager), sieht auch was wer macht, ändert mal die Reihenfolge, streicht Patienten wieder aus Liste usw. usw.!!!

Es muß möglichst in Echtzeit, wenigstens aber in einer kurzen Wiederholung erfolgen, ohne Update-Button! Wie ich welche Daten grafisch, tabellarisch usw. darstelle ist ein anderes Problem!

Ich habe mich aber nun für Perl entschieden, ich denke für spätere externe Anbindungen sind einfach mehr Möglichkeiten da, als mit PHP - siehe SAP-Schnittstelle!
Hier ist das Problem, die Firmen geben ungern ihre Informationen an freie Programmierer und einen Schlüssel von SAP muß man über Lehrgang usw. kaufen - Kosten einige Tausend Eu's ! Egal!

Danke nochmal an alle für die Unmengen an Tipps, ich werde sie einzeln nochmal durchgehen!
Falls jemand noch eine Idee mit den permaneten DB-Verbindungen an MySQL hat - herdamit, besser Erfahrungswerte!

Gruß Frank aus LE, der London nicht mehr leiden kann! ;'(
 
franco98 schrieb:
Doch das ist genau das Problem und das Ziel!!!
Es sollen permanent unzählige PC mit der Datenbank verbunden sein, über das Webinterface Daten reinschaufeln und ständig sehen was passiert!

Dann wirst du nicht umhinkommen auf jedem Clienten eine Anwendung zu installieren - ich habe gute Erfahrungen mit Flash gemacht-also:

MySQL (oder DB irgendwas) -> PHP -> Browser mit FlashMovie über XML (am besten mit komprimiertem Stream - wegen der Datenmengen)

Da in den Verwaltungen, für die ich schon was geschrieben hatte, meist Java ausgeschaltet und Flash/SWF eingeschaltet war - habe ich das verwendet.

Im Prinzig bräuchtest Du dann nicht einmal einen Webbrowser mehr :-)

London: Die armen Leute.

PS: Evtl könntest Du dir sogar die Scriptsprache sparen wenn die Datenbank XML-RPC direkt unterstützt.

Ciao Thomas
 
Buschhardt schrieb:
Dann wirst du nicht umhinkommen auf jedem Clienten eine Anwendung zu installieren - ich habe gute Erfahrungen mit Flash gemacht
Ciao Thomas

Das Problem ist: ich habe null Zugriff auf die Clients - hatte das schon geschrieben - es geht nur über Intranet bzw. Webbrowser, da ich nur der Programmierer nicht der Admin bin!

Das mit London tut mir auch sehr leid, ich nehme meinen Scherz vom letzten Artikel mit London und LE -> 2012 zurück!
Tolle Stadt, super Leute - hoffe sie bleiben stark jetzt!!!

Gruß Frank aus LE, der London die Spiele 2012 von Herzem gönnt!
 
franco98 schrieb:
Das Problem ist: ich habe null Zugriff auf die Clients - hatte das schon geschrieben - es geht nur über Intranet bzw. Webbrowser, da ich nur der Programmierer nicht der Admin bin!

Wie du die Programm/Applikation-Umsetzung zum Schluss nennst: JavaScript,Actionsscript,SOAP, ActiveX.. ist eigentlich wurscht - du wirst nicht umhinkommen dich mit dem Admin zusammenzusetzen.

Beim Browser-Reload hatte ich immer sehr große Schwierigkeiten, da manche Clienten die Seiten gecached hatten und du dann immer in der url irgendetwas "zufälliges" mitschicken mußt, damit der wirklich "reloaded".

<- Ich hasse eigentlich Anglismen :-)


franco98 schrieb:
Gruß Frank aus LE, der London die Spiele 2012 von Herzem gönnt!
Hey cool - ich komme auch aus LE :P

PS: Wegen London - kein Problem :cool:
Ciao Thomas
 
*einmisch*
irgendwie hat's mich hier her gegoogled auf der Suche nach der Lösung meines Problems, das sebbo mal angesprochen hat:
ich hab ein Winamp-Plugin, das den laufenden Titel und die Playliste (mit laufendem Titel markiert) selbstständig aktualisiert.
im Moment hab ich einfach 'nen Meta-Refresh drin, würde das aber gern so lösen, dass sich die Site nur bei Titelwechsel, also bei Änderung der Datensätze (sind ja nur 2, und die ändern sich synchron) automatisch aktualisiert.
da das Script dazu aber keine Datenbank ausliest, sondern nur jene 2 Includes aktualisiert werden (und ich eh nicht recht 'nen Plan von PHP hab), wüsste ich gern ob und (falls ja) wie das zu realisieren ist.

zur Urfrage mal was von mir:
falls die Datenbank via PHP dargestellt wird, ist der Auto-Refresh eh völlig simpel!

Code:
<html>
<head>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="refresh" content="15">
</head>
<body>
<?
... der PHP-Kram ...
?>
</body>
</html>

die einfachste Lösung... und auch ausreichend effizient
 
Schnuddel schrieb:
*einmisch*
im Moment hab ich einfach 'nen Meta-Refresh drin, würde das aber gern so lösen, dass sich die Site nur bei Titelwechsel, also bei Änderung der Datensätze (sind ja nur 2, und die ändern sich synchron) automatisch aktualisiert.

Na genau das ist ja eigentlich das Problem der Diskussion. Wenn Du Internetseiten vom Server anforderst, liefert dir der Server die angeforderte Seite, ob da nun Script oder nicht drin ist, ist doch eigentlich egal - Du erhälst nur eine Textseite - die dann angezeigt wird. Der browser selbst hat nicht die Fähigkeit eine Dauerhafte Verbindung mit dem Server aufzubauen, wie sollte er da von einer Aktualisierung was erfahren? Die Einzige Möglichkeit ist die, ein Programm auf dem Clienten zu starten (Flash,ActiveX ....) das diese Fähigkeit hat und natürlich muß auch serverseitig ein Socket-Server laufen, mit dem sich dein Clientenprogramm verbindet.

Naja in deinem Fall ist wohl der Refresh aller n-Sekunden die einfachste Lösung und wenn die resultierende HTML Seite klein ist spricht doch auch nichts dagegen.

Die Includes interessieren den Browser (Client) nicht.
 
mit anderen Worten:
wir brauchen "intelligentere" Browser! einer, der quasi im Hintergrund den dargestellten Seiteninhalt mit dem aktuell zur Verfügung stehenden Inhalt vergleicht und bei Differenz (also eben NUR dann) die Seite im Browser refreshed

die Idee gefällt mir! :)
 
Schnuddel schrieb:
mit anderen Worten:
wir brauchen "intelligentere" Browser! einer, der quasi im Hintergrund den dargestellten Seiteninhalt mit dem aktuell zur Verfügung stehenden Inhalt vergleicht und bei Differenz (also eben NUR dann) die Seite im Browser refreshed

die Idee gefällt mir! :)

Naja ich weiß nicht ob das die Aufgabe eines Browser sein sollte -
ABER :D inm Firefox hast du eine solche Funktionalität.

Ciao Thomas
 
Schnuddel schrieb:
hmpf?
dann hab ich die noch nicht gefunden!

Benutzt hab ich die Funktionalität auch noch nicht. :confused: Zu finden ist es im Lesezeichen-Manager - Neues dynamisches Lesezeichen -
Das sollte dich eigentlich informieren wenn sich auf der Seite was verändert hat.

Ciao Thomas
 
Zurück
Oben