Html event handling (rhtml - javascript)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Html event handling (rhtml - javascript)

Beitrag von chroiss » 04.01.2013 22:51:06

Moin,

mir fiel keine bessere/passendere Ueberschrift ein.
Ich habe ein rHtml Dokument [0], welches dafuer genutzt werden soll, einen rechner per etherwake zu starten. Solange der Rechner nicht online ist, soll ein per javascript erzeugter "Loading-Balken" angezeigt werden. Das alles funktioniert.
Der Loading-Balken soll natuerlich dann verschwinden, wenn der Rechner online ist. Das zu ueberpruefen funktioniert mit ruby und Net::Ping eingebettet in html natuerlich super:

Code: Alles auswählen

<%
<--snip
snap-->
 host = "192.168.1.1"
 hwaddress = "aa:bb:cc:dd:ee:ff"
 online = Net::Ping::External.new(host,nil,0.1).ping
%>
<--snip
snap-->
<% while !online %>
<% sleep 2 %>
<% end %>
Doch wenn dieser Code innerhalb der HTML Datei (siehe [0]) erreicht wird, laedt die html Seite logischer Weise auch nicht zu Ende, so dass der Ladebalken nicht angezeigt wird. Hier gibt es ein konzeptionelles Problem, dessen Loesung ich anscheinend nicht kenne. Vielleicht weiss einer von euch eine funktionierende Methode?!

Viele Gruesse

[0] http://nopaste.debianforum.de/36915
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Benutzeravatar
TRex
Moderator
Beiträge: 8356
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Html event handling (rhtml - javascript)

Beitrag von TRex » 04.01.2013 23:01:44

Wie wäre es mit einer rhtml-Datei, welche den Dienst bereitstellt, einen Host zu pingen und eine gewöhnliche HTML, die diesen "Webservice" mittels ajax/javascript pollt?

Edit: könnte natürlich auch dieselbe Datei sein, welche parametrisiert den Dienst bereitstellt.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Html event handling (rhtml - javascript)

Beitrag von Cae » 05.01.2013 00:32:47

Mir fallen dazu drei Punkte ein: Zum einen hast du vor <!DOCTYPE... vermutlich eine Newline zuviel (== illegal, steht unter Todesstrafe. Nein, das nicht, aber es kann Parser verwirren). Dann koennte es helfen, die Seite bis zum </body> sofort auszuliefern und *danach* ein <script type="text/javascript">...</script> nachzuschiessen, welches dann den Balken aendert.

Der dritte Punkt: Die Wartungsseite vom Debianapt-cacher-ng macht genau das Gewuenschte. Seite unvollstaendig ausliefern und asynchron Inhalt nachschieben, waehrend sie sofort angezeigt wird. Zur Analyse hab' ich mal Header und Seitenanfang nach NoPaste [1] gepackt. Auffallend ist (fuer mich) das Transfer-Encoding: chunked in den Headern und <meta name="MSSmartTagsPreventParsing" content="true" />, was aber nicht nach einem Standard, sondern nach Hersteller-eigener Frickelei aussieht.

Gruss Cae

[1] NoPaste-Eintrag36916
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Re: Html event handling (rhtml - javascript)

Beitrag von chroiss » 06.01.2013 13:14:39

TRex hat geschrieben:Wie wäre es mit einer rhtml-Datei, welche den Dienst bereitstellt, einen Host zu pingen und eine gewöhnliche HTML, die diesen "Webservice" mittels ajax/javascript pollt?
Edit: könnte natürlich auch dieselbe Datei sein, welche parametrisiert den Dienst bereitstellt.
Ich habe eine Seite die einen Host pingen kann und eine gewöhnliche HTML Seite zurückliefert. Was genau wie gepollt werden soll verstehe ich leider nicht.
Cae hat geschrieben:Mir fallen dazu drei Punkte ein: Zum einen hast du vor <!DOCTYPE... vermutlich eine Newline zuviel
Kopierfehler.
Cae hat geschrieben:Dann koennte es helfen, die Seite bis zum </body> sofort auszuliefern und *danach* ein <script type="text/javascript">...</script> nachzuschiessen, welches dann den Balken aendert.
Der erste Aufruf der Seite wird komplett geladen. Getriggert wird der Ladebalken durch den Submit button. Danach befindet sich die Seite jedoch in der While schleife, so dass sie sich dann im ständigen Ladezustand befindet (ohne das der Ladebalken angezeigt wird - lasse ich die while schleife weg, kommt natuerlich der Ladebalken, aber ich habe keine Möglichkeit diesen abzubrechen, da ich nicht mehr überprüfen kann wann der Host online ist.)
Cae hat geschrieben: Der dritte Punkt: Die Wartungsseite vom Debianapt-cacher-ng macht genau das Gewuenschte.
Sehe ich mir mal an - Danke
[EDIT]
So wie ich das sehe stellt apt-cacher-ng einen eigenen Webserver-Dienst bereit, so dass schonmal rausfällt.
[/EDIT]
Trotzdem denke ich nach wie vor (ohne zu wissen wie), dass dieses Problem einfach zu lösen sein müsste.

Gruesse
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Html event handling (rhtml - javascript)

Beitrag von Cae » 07.01.2013 00:12:11

Ein ueber CGI aufgerufenes Perl-Skript [1] verhaelt sich genauso. Moeglicherweise liegt's an dem Webserver, der mit der Auslieferung auf das EOF vom Parser wartet?

Das mit dem ACNG meinte ich mehr als Vergleich, wie "da geht's doch auch"; eigentlich ist der fuer was ganz anderes gut.

Gruss Cae

[1] NoPaste-Eintrag36919
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
TRex
Moderator
Beiträge: 8356
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Html event handling (rhtml - javascript)

Beitrag von TRex » 07.01.2013 06:58:59

chroiss hat geschrieben:
TRex hat geschrieben:Wie wäre es mit einer rhtml-Datei, welche den Dienst bereitstellt, einen Host zu pingen und eine gewöhnliche HTML, die diesen "Webservice" mittels ajax/javascript pollt?
Edit: könnte natürlich auch dieselbe Datei sein, welche parametrisiert den Dienst bereitstellt.
Ich habe eine Seite die einen Host pingen kann und eine gewöhnliche HTML Seite zurückliefert. Was genau wie gepollt werden soll verstehe ich leider nicht.
rHTML-Datei 1 enthält den Code zum Pingen eines Hosts (1x) und die Rückgabe des Ergebnis als true/false zB.
HTML-Datei 2 enthält eine statische HTML-Seite mit Javascript, welches mit AJAX auf das rHTML wiederholt zugreift, das Ergebnis in einer Variable speichert und dabei wasauchimmer tut, zB einen Ladebalken oder ähnliches anzeigen/updaten.

Ich verschiebe hier quasi die ping-Wartezeit aus dem einen Aufruf auf Serverseite in mehrere Clientaufrufe nach dem Seitenaufbau.

Edit: und natürlich kann das immer noch in einer Datei gemeinsam existieren, solange man eine Parameterweiche für den ruby-code anlegt.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Antworten