AJAX Request
milow
- javascript
Hallo,
Bislang hab ich nur AJAX-Programmierungen gesehen, in denen der Client periodisch ein Request an den Server schickt und dieser gegebenenfalls eine Antwort zurücksendet. Nun könnte man die ganze Angelegenheit auch so programmieren, dass der Client ein Request aussendet, das Serverskript aber solange in einer Endlosschleife verweilt, bis eine gewünschte Änderung eintritt, sodass der Server nicht immerzu mit Requests bombardiert werden muss.
Was wären die möglichen Vor- und Nachteile der zweiten Vorgehensweise, bestünde ein signifikanter Performance-Unterschied zwischen den beiden Methoden?
Hallo,
Was wären die möglichen Vor- und Nachteile der zweiten Vorgehensweise, bestünde ein signifikanter Performance-Unterschied zwischen den beiden Methoden?
Nachteile:
- Es gibt i.d. regel einen Timeout wie lange ein Request brauchen darf, bevor er vom Client genacelt wird.
- Wenn Du das Serverskript entsprechend verzögerst, werden die Resourcen des Server-Skriptes (Datei-Handle, Datenbank-Verbindungen,...) "festgehalten". Bei hinreichend vielen Anfragen können dann neue Requests nicht mehr bearbeitet werden, weil alle offenen Prozesse die Resourcen "blockieren".
Wenn der Server in einer Endlosschleife verharrt, verbrät er unnötig CPU-Last ohne WIRKLICH etwas zu tun. Man kann das etwas minimieren (z.b. den Prozess für eine gewisse Dauer "schlafen" legen), abhängig von der Programmiererung macht der Betriebssystem-Scheduler das auch selbst - aber schön ists trotzdem nicht.
Wie willst Du erkennen, wann der Client die Seite verlässt und folglich der Server das Skript beenden kann?
Vorteile:
erkenn ich nicht wirklich
Viele Grüße,
Jörg
Hi,
... das Serverskript aber solange in einer Endlosschleife verweilt, bis eine gewünschte Änderung eintritt, sodass der Server nicht immerzu mit Requests bombardiert werden muss.
Ich denke, dass es sinnvoller ist, beim Client Verzögerungen einzubauen, so dass jede neue Eingabe, die innerhalb von ein paar Millisekunden passiert, die Reaktion auf die voherige Eingabe abbricht.
Gruesse, Joachim
Hallo,
Bislang hab ich nur AJAX-Programmierungen gesehen, in denen der Client periodisch ein Request an den Server schickt und dieser gegebenenfalls eine Antwort zurücksendet. Nun könnte man die ganze Angelegenheit auch so programmieren, dass der Client ein Request aussendet, das Serverskript aber solange in einer Endlosschleife verweilt, bis eine gewünschte Änderung eintritt, sodass der Server nicht immerzu mit Requests bombardiert werden muss.
2 Fälle wo Änderungen stattfinden könnten:
1. beim Client ändert sich was => kriegt der Server nicht mit
2. auf dem Server ändert sich was => Wayne interessierts
Was wären die möglichen Vor- und Nachteile der zweiten Vorgehensweise, bestünde ein signifikanter Performance-Unterschied zwischen den beiden Methoden?
??? Falls sich beim Client Änderungen ergeben, die der Server mitkriegen soll, brauchts einen neuen Request.
Hotte