Hallo, mit einem raspi /Apache stelle ich eine Webseite zur Verfügung. Selten ändert sich das was. Alle paar Stunden ein paar Ascii Zeichen. Wie kann ich serverseitig realisieren, dass sich die Webansicht der Clients (Webbrowser, alles was es so gibt) dann auch refreshed? Den Server neustarten bringt nichts. Clientseitig habe ich keinen Einfluss. Es geht dabei um eine kleine Informationstafel mit einfacher Darstellung. Danke
Am einfachsten ließe sich das via JS erledigen. Das ist zwar entgegen der Anforderung clientseitig, aber von der Serverseite aus hast du ansonsten keinen Einfluss auf den Client. Nachtrag: es gäbe auch noch <meta http-equiv="refresh" content="[Zeit in s]">
:
Bearbeitet durch User
Der Server kann den Client nicht von sich aus kontaktieren. Du kannst wie hier: https://stackoverflow.com/a/10944561 mit einer Zeile JS periodisch die Seite neuladen. Oder eine Websocket-Verbindung offen lassen, um dem Client Bescheid zu geben, dass sich was geändert hat. Hätte den Vorteil, dass du auch nur die paar veränderten Byte aktualisieren kannst. Aber den Nachteil, dass die ganze Zeit eine Verbindung besteht.
Dirk B. schrieb: > Wie schnell soll denn die Änderung angezeigt werden? Nicht zeitkritisch, in ein paar Minuten. Problem ist auch das es eine Hilfskraft über MS Publisher .o.ä. erledigen soll. Die überschreiben dann den HTML /JS Code ;-(. Wenn es da ein Stück Software für ein paar € gibt, wäre das auch ok. Das ist ja nun keine Nische, aktualisierende Webseiten durch Laien auffrischen zu lassen. Wenn dafür extra ein CMS wie Joomla et erforderlich ist, wäre es auch ok. Oder eine MS Sharepoint Seite??
Kann man bei der Software nicht einstellen, dass sie ein Template nehmen soll? Dann kannst du den HTML Tag dort unterbringen. Im Notfall kannst du die generierte Seite auch nicht direkt anzeigen, sondern in eine andere Seite einbetten, die dann die Reload-Logik enthält.
Jemand schrieb: > Kann man bei der Software nicht einstellen, dass sie ein Template nehmen Es gibt keine "Software"
HTML Fragender schrieb: > Jemand schrieb: >> Kann man bei der Software nicht einstellen, dass sie ein Template nehmen > > Es gibt keine "Software" Ich meinte den von dir angesprochenen MS Publisher oder Alternativen, war zugegebenermaßen etwas missverständlich.
Wie wäre es mit einer Seite (1), die nur einen div-Container mit einer Seite (2) enthält, der dann per Javascript periodisch neu geladen wird? Als (2) wird die Publisher-Seite, die an einem festen Ort liegen muss, geladen. Die Seite (1) darf eben nicht angefasst werden, kann auf dem Webserver im root liegen. Das ganze dann mit einer bebilderten Anleitung und notfalls einem Skript, dass die Seite (1) wieder durch Default ersetzt. mfg mf
Achim M. schrieb: > Wie wäre es mit einer Seite (1), die nur einen div-Container mit einer > Seite (2) enthält, der dann per Javascript periodisch neu geladen wird? > > Als (2) wird die Publisher-Seite, die an einem festen Ort liegen muss, > geladen. Das hört sich nach einem guten Plan an. Ich verstehe es aber nicht. Kannst Du ein Beispiel erstellen? Damit das Konzept klarer wird.
Micro schrieb: > Achim M. schrieb: >> div-Container > Was ist ein div Container? https://www.google.com/search?q=div+container Aber danke für den Hinweis, ja, da hätte ich auch mal die Suchmaschine benutzen können. Man kann dem div einen Namen geben, damit man es nachher im Javascript benutzen kann. Offenbar kann man da aber nur umständlich oder per PHP fremde Inhalte einfügen. Mit einem "iframe" sollte es aber gehen. Micro schrieb: > Das hört sich nach einem guten Plan an. > Ich verstehe es aber nicht. > Kannst Du ein Beispiel erstellen? Hier steht, wie man den iframe mit Javascript aktualisiert: https://stackoverflow.com/questions/2064850/how-to-refresh-an-iframe-using-javascript Hier steht, wie man die Timer-Funktionen benutzt: https://stackoverflow.com/questions/729921/settimeout-or-setinterval mfg mf
meta-refresh funktioniert heute noch wie vor 20 Jahren schon: https://www.w3schools.com/tags/att_meta_http_equiv.asp Einfach die Seite auf sich selbst verweisen lassen.
Vielen Dank für die Beiträge. Es gibt also einen oder mehrere Raspis mit Monitoren ( oder Mini PC mit Windoofs/ egal) wo ein Browser mit dem Betriebssystem automatisch gestartet wird und fest auf eine URL verweist. Jack V. schrieb: > Am einfachsten ließe sich das via JS erledigen. Das ist zwar entgegen > der Anforderung clientseitig, aber von der Serverseite aus hast du > ansonsten keinen Einfluss auf den Client Das ist streng genommen korrekt, aber “erlaubt”. Ich möchte nur von einer zentralen Stelle einen Refresh der geänderten Webseite erreichen. Ich denke die Puzzelstücke reichen, aber wie nun alles zusammenfügen? Die Veränderung der einfachen Webseite ( nur eine ) erfolgt durch einen Laien. Er ändert nur den Inhalt der Seite mit einem geeigneten Programm, das könnte jede geeignete Office Anwendung sein, wer einen besseren Weg/Editor kennt, möge das bitte sagen. Die “ Mimik “ des refreshes muss also vom reinen Content entkoppelt sein, sonst wird der Laie das Konstrukt wohl schnell zerstören. Wenn die Refresh “ Mimik “ einfach auf den Content verwaist, der ggf. an einer anderen Stelle steht und dort nur Fileberechtigungen zum Ändern existieren, wäre das Ziel m.E. erreicht. Kann das jemand bitte nochmal kurz skizzieren, oder konkretisieren? Vielen lieben Dank.
HTML Fragender schrieb: > Ich möchte nur von einer zentralen Stelle einen Refresh der geänderten > Webseite erreichen. Um es nochmal auf den Punkt zu bringen: Das geht nicht. Beim HTTP Protokoll gibt es keine Möglichkeit, wo der Server dem Browser irgend etwas aktiv senden kann. Der Browser muss sich die Updates holen. Damit der Bildschirm nicht unnötig oft flackert, kann man ein AJAX Script (siehe Wikipedia) verwenden, was den Server in regelmäßigen Intervallen fragt "Hast du was neues für mich?". Und wenn ja, dann kann es dieses Update holen oder die ganze Seite neu laden. Wenn es um kurze Intervalle (<1min) geht, kann der Server seine Antwort auch verzögern: > "Hast du was neues für mich"? < moment ... < "ja jetzt schon" / "nein, leider nicht" Bis zu eine Minute kann der Browser warten (mit Tricks geht auch mehr, aber nicht immer und überall. Lasse es besser sein). Es gibt dazu standardisierte Techniken wie SSE und Websockets, die beide jedoch auf dem gleichen Prinzip beruhen. Du kommst nicht umhin, dass der Browser eine Verbindung zum Server aufbauen muss.
Oder man baut dafür einen speziellen Browser, dem man über einen zweiten Kanal mitteilen kann, wann ein refresh nötig ist. Nur mit HTTP und HTML geht es jedenfalls nicht.
ergo70 schrieb: > meta-refresh funktioniert heute noch wie vor 20 Jahren schon: > > https://www.w3schools.com/tags/att_meta_http_equiv.asp > > Einfach die Seite auf sich selbst verweisen lassen. und nachdem das ein Ersatz für "echte" HTTP-Header ist, hat der TE ja auch die Option, einfach echte Header zu senden. -> Eintrag in der apache-config/.htaccess, HTML bleibt unverändert und kann per Frontpage/MS-Word/Notepad/whatever aktualisiert werden. Völlig Laien-Sicher.
1 | <IfModule mod_headers.c> |
2 | Header set Refresh xxxxx |
3 | </IfModule> |
:
Bearbeitet durch User
Du kannst doch in der HTML Seite (Serverseitig) ein Refresh einbauen. Der Client lädt diese Seite und der client-seitig Browser mach dann ein zyklisches Refresh. Genauso kannst du in der HTML Seite (Serverseitig) ein Ajax-Objekt einbauen, welches dazu führt, dass der client-seitig Browser die änderungs-relevanten Teile zyklisch neu lädt.
Stefan ⛄ F. schrieb: > Um es nochmal auf den Punkt zu bringen: Das geht nicht. Beim HTTP > Protokoll gibt es keine Möglichkeit, wo der Server dem Browser irgend > etwas aktiv senden kann. Erst mal danke für die Antwort. Was mir gerade aber sehr negativ erscheint, ist Deine Antwort. Hier im Forum wirft man Dir an einigen Stellen "krankhaftes Geltungsbedürfnis" vor. Dazu kann ich mich nicht äußern. Wenn Du aber offenbar völlig inkompetent "nochmal auf den Punkt" bringst es würde nicht gehen...dann einfach mal die Klappe halten wenn man keine Ahnung hat. Keine Ahnung haben, finde ich nicht schlimm, aber so wirken zu wollen als hätte man diese und dann falsche Fährten zu legen, einen Thread zu sprengen, völlig destruktiv zu sein, das ist Kappes. Halte Dich dann besser raus. Die Hinweise im Thread beweisen genau das Gegenteil und es funktioniert übrigens auch einwandfrei! Danke an die wirklichen Helfer. Ich nehme mal an der Thread ist nun im Eimer, sicher wird es gleich noch eine Rechtfertigung geben ;-((
HTML Fragender schrieb: > Wenn Du aber offenbar völlig inkompetent "nochmal auf den Punkt" bringst > es würde nicht gehen...dann einfach mal die Klappe halten wenn man keine > Ahnung hat. Bitte korrigiere des Sachverhalt - wenn du kannst, anstatt jetzt alle dumm sterben zu lassen. Zu deiner Erleuchtung beruhen alle hier genannten Ansätze darauf, dass der Web Browser selbst sich die Updates in gewissen Intervallen vom Server holt. Also genau das, was ich schrieb. Ich gebe dir einen Tipp: Behandle Leute, die dir helfen, mit Respekt. Sonst hilft dir bald keiner mehr.
HTML Fragender schrieb: > Was mir gerade aber sehr negativ erscheint, ist Deine Antwort. so einen Mist kann man nur schreiben wenn man die Antwort nicht verstanden hat oder nicht verstehen will. HTTP geht immer von Client Anfragen aus, das ist doch komplett richtig. Genau dafür wurden die Websockets entwickelt. Die tunneln ihre Daten in HTTP weil man meist keinen anderen Port als 80 aufmachen will. Für den Client sieht es jetzt dynmisch aus, aber mit einer Erweiterung die sehr lange in einen praktisch genutzten Standard gebraucht hat. Es geht mit den genannten Tricks wie verzögertem ACK auch, aber das ist doch Murks.
Beitrag #6607504 wurde von einem Moderator gelöscht.
Udo schrieb: > Du kannst doch in der HTML Seite (Serverseitig) ein Refresh einbauen. Um nochmal zum Kern zurückzukommen: Wäre das für dich möglich?
Udo schrieb: > Um nochmal zum Kern zurückzukommen: Wäre das für dich möglich? Ja natürlich. Darauf habe ich Zugriff.
HTML Fragender schrieb: > Ja natürlich. Darauf habe ich Zugriff. Dann wäre aus meiner Sicht die Ursprungsfrage geklärt. Einfach in die HTML Seite ein Refresh oder Ajax einbauen und fertig PS: Mein Weltbild ist übrigens auch so, dass http-Aktionen immer vom Client ausgehen und der Server nicht selbständig schicken kann.
Udo schrieb: > Einfach in die HTML Seite ein Refresh [...] einbauen und fertig Warum nicht per Apache-Config/.htaccess? das "meta-http-equiv"-Zeuchs ist ja als Workaround für Webdesigner gedacht, die keinen Zugriff auf die Webserver-Settings haben. Beim TE ist's genau anders herum, er kann die Webserver-Settings verändern, hat aber nur begrenzten Einfluss auf den HTML-Seiteninhalt: HTML Fragender schrieb: > Problem ist auch das es eine Hilfskraft über MS Publisher .o.ä. > erledigen soll. Die überschreiben dann den HTML /JS Code ;-(.
:
Bearbeitet durch User
Εrnst B. schrieb: > eim TE ist's genau anders herum, er kann die Webserver-Settings > verändern, hat aber nur begrenzten Einfluss auf den HTML-Seiteninhalt Mir hat er eben gesagt, dass er Zugriff auf die html-Seiten serverseitig hat. Ich würde zyklische Refreshs nicht per Server-Konfig machen. Die würde ja auch nur das ausgelieferte html modifizieren... Lieber gleich in die Orginal-html-Quellen reinschreiben, was gemacht werden soll. Aber viele Wege führen nach Rom :)
Udo schrieb: > Die würde > ja auch nur das ausgelieferte html modifizieren... Nö. Das setzt einen HTTP-Header, das HTML bleibt unverändert. Mit <meta http-equiv...> im HTML weist du den Browser an, so zu tun, als hätte er diesen HTTP-Header gesehen. Aber egal, funktionieren tut beides.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.