Erfassen Sie den Servercode alle paar Sekunden und aktualisieren Sie die Formularelemente

8

Um zu beginnen hier ist, wie die Anwendung funktioniert: (Hinweis: Es gibt mehrere Benutzer auf der Seite wie Patient M, Patient E, usw.)

1) Neben dem Namen von Patient X befindet sich eine Schaltfläche mit der Bezeichnung Einchecken . Dies wird auf der Serverseite protokolliert.

2) Wenn Sie auf die Schaltfläche Einchecken klicken, wird dem Benutzer ein Dropdown-Menü (anstelle der ursprünglichen Schaltfläche) mit den verschiedenen Standorten angezeigt, die der Benutzer auswählen kann. Nach Auswahl eines Ortes aus der Auswahl wird die Serverseite erneut aktualisiert.

3) Der Benutzer könnte dann mehrere Orte auswählen und Schritt 2 wiederholen

4) Am Ende, wenn der Benutzer die Auswahl der Standorte abgeschlossen hat, klickt er auf die Schaltfläche Auschecken in derselben Auswahl, in der der Benutzer in den Schritten 2 und 3 auf Positionen geklickt hat . Wenn Sie darauf klicken, wird es an checkloc.php gesendet und protokolliert.

5) Schließlich verschwindet das Dropdown und die Wörter ausgecheckt erscheinen.

Leider ist das Problem, dass ich gerade jetzt, wenn ich Computer 1 bin, den Prozess des Klickens auf Einchecken, der Auswahl eines Ortes und des Auscheckens durchführe, dies ist völlig unabhängig von Computer 2.

Hier ist ein Diagramm:

Im Grunde brauche ich eine Möglichkeit, den Servercode alle paar Sekunden zu erfassen und die Formularelemente mit den aktuellen Werten zu aktualisieren. Ich bin ein ziemlich neuer Programmierer, also wären Code und Tutorials besonders hilfreich. Außerdem, wie ich gerade erwähnt habe, bin ich ein neuer Programmierer, also wenn mein Code in irgendeiner Weise bereinigt werden könnte, wäre das fantastisch.

Danke für jede Hilfe! Ich bin froh, irgendwelche Fragen zu klären, die Sie haben!

Heres der Code:

%Vor%

und html:

%Vor%

gibt den serverseitigen Code an (ich habe ihn nur zum Testen in drei Seiten aufgeteilt)

checkin.php

%Vor%

locationchange.php

%Vor%

und checkout.php

%Vor%     
Muhambi 10.11.2012, 00:36
quelle

4 Antworten

6

Sie beziehen sich auf eine Methode, die als "Herzschlag" bekannt ist. Ich werde hier ein Beispiel veröffentlichen, aber zuerst möchte ich Ihnen ein paar Hinweise geben, da Sie, wie Sie sagten, ein neuer Entwickler sind:).

1) Versuchen Sie mit JQuery, den Klassenselektor zu vermeiden. Es ist notorisch langsam. Verwenden Sie den ID-Selektor wo immer möglich oder den Knotennamen-Selektor mit einem eingeschränkten Suchbereich, wenn dies nicht möglich ist. Der Browser verwendet die ID als eine Art "Index" oder "Schlüssel" für das dom-Element, also ist es die schnellste Suche.

2) VORLESEN! Auch wenn Sie Klassenselektoren verwenden, tun Sie nicht

%Vor%

Immer und immer wieder. Wenn Sie mehr als einmal auf dasselbe DOM-Element verweisen, tun Sie Folgendes:

%Vor%

Dadurch suchen Sie nur das DOM einmal. Mit kleineren Apps scheint es nicht viel los zu sein, aber wenn Ihre App immer komplizierter wird, dauert es immer länger, nach DOM nach Elementen zu suchen. Wenn Sie eine Referenz verwenden, suchen Sie nur einmal.

3) (Optional) Ich würde empfehlen, eine MVC-Plattform wie AngularJS (die von Google geschrieben wurde) zu verwenden. Mit MVC oder Model View Controller können Sie ein "Model" (im Grunde genommen ein JavaScript-Objekt) aktualisieren, und die "Ansicht" (der HTML-Code) passt ihren Wert automatisch mithilfe von so genannten UI-Bindings an. Es ist ein großartiger Weg, um eine App von Anfang an zu entwickeln, aber wenn Sie bereits tief in Jane-Code sind, ist es möglicherweise nicht praktisch für Sie. Ich würde immer noch auf ihr Tutorial schauen, um zu sehen, was es Ihnen bieten könnte: Ссылка

Nun zu Ihrer ursprünglichen Frage! Ja, dies ist mit jQuery vollständig möglich, indem eine Methode verwendet wird, die als Heartbeat bezeichnet wird. Mit einem Heartbeat können Sie die Datenpersistenz zwischen dem Server und dem Client emulieren. Je häufiger der Heartbeat ist, desto synchroner sind Ihre Clients, desto größer ist auch die Belastung Ihres Webservers. Es ist ein Balanceakt.
Kurz gesagt, es funktioniert in etwa so:

%Vor%

Ich würde auch empfehlen, JSON zu verwenden, um zwischen dem Client und dem Server zu kommunizieren. JSON ist an beiden Enden leicht zu parsen, und am Client ist es einfach der schnellste Mechanismus zum Parsen von Massendaten. JSON wird direkt in ein JavaScript-Objekt geparst, da die Schreibweise JS tatsächlich zum Speichern von Objektdaten im Browser verwendet. XML ist auch eine gute Wahl. Beides ist sehr einfach mit:

Kundenseite: Sie können jQuery verwenden, um rudimentäres XML zu analysieren:

%Vor%

Sie können JSON in ein JSO wie folgt parsen:

%Vor%     
Andrew Rhyne 13.11.2012, 16:18
quelle
5

Sehen Sie sich Socket.IO an, denn auf der Site steht:

  

Was ist Socket.IO?

     

Socket.IO soll Echtzeit-Apps in jedem Browser und jedem mobilen Gerät ermöglichen

Obwohl sich Socket.IO in NodeJS / Javascript befindet, gibt es eine ziemlich gute Unterhaltung über mit PHP mit Socket .IO

    
Koen. 12.11.2012 23:23
quelle
2

Im Grunde scheint es so zu sein, dass Sie Daten von einer Maschine auf einer anderen Maschine aktualisieren möchten, ohne dass Sie die Seite neu laden müssen.

Es ist gut, dass Sie bereits mit AJAX vertraut sind, da dies wahrscheinlich einer der Wege ist, wie Sie Ihre Lösung implementieren können. Was Sie im Wesentlichen benötigen, ist den Server von den Webseiten in einem bestimmten Intervall abzufragen (vielleicht jede Sekunde oder alle paar Sekunden, je nach Bedarf). Sie können dies mit AJAX tun.

Wenn Sie diesen Server abfragen, können Sie Daten (HTML-Fragmente, JSON-Daten, was auch immer in Ihrer Anwendung sinnvoll ist) herunterziehen und diese Daten verwenden, um die Seite zu aktualisieren. Wenn ein Benutzer also ein Update auf Computer 1 vornimmt, kann Computer 2 den Server abfragen und Updates beziehen, die sich auf die Datenänderungen auf Computer 1 beziehen.

    
Mike Brant 10.11.2012 00:59
quelle
2

Es ist eines der Grundprinzipien einer Webanwendung, dass jede Aktion auf dem Client initiiert wird, dh wenn Sie die Anzeige auf einem der Computer ändern möchten, müsste jemand auf etwas auf diesem Computer klicken . Ursprünglich gab es keine Möglichkeit, die Anzeige auf dem zweiten Computer zu aktualisieren, wenn etwas auf dem Server passiert, und es gibt immer noch keine triviale Lösung.

Mit modernen Browsern wurden jedoch verschiedene Technologien entwickelt , die unter Web-Mail-Clients und reaktionsfähigem "Web" weit verbreitet sind 2.0 "Anwendungen. Sie müssten sich für eines von ihnen entscheiden und es selbst implementieren, wobei jedes seine Vor- und Nachteile hat.

Der am einfachsten zu implementierende (abgesehen von einer einfachen "Refresh" -Schaltfläche) ist wahrscheinlich, alle paar Sekunden eine AJAX-Anfrage zu machen und den Bildschirm entsprechend dem aktuellen Benutzerzustand, den der Server meldet, zu aktualisieren.

    
AndreKR 10.11.2012 00:58
quelle

Tags und Links