Re(4): JavaScript-Dauproblem...
Geizhals » Forum » Programmierung » JavaScript-Dauproblem... (49 Beiträge, 368 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
JavaScript-Dauproblem...
13.04.2006, 13:03:13
Hi !

Bin wieder mal am Rumprimitiveln - diesmal wird's ein HTML/JS-Teil.
Ich versuche mal, das Problem zu reduzieren:

Gegeben sei eine Datenbank, in der es pro Guppe bis zu 100 Kundennamen gibt.

Ein Mitarbeiter soll jetzt in einem HTML-Formular nach Auswahl der Gruppe einen Kunden in eine Inputbox eingeben - wobei er implizit gleich neue Anlegen können soll.

Bisher hatte er eine freie Inputbox zur Verfügung, wobei natürlich das Problem entsteht, daß 3 Buchende denselben Kunden verschieden schreiben - und dadurch mehrere Einträge in der DB entstehen.

Mein Lösungsansatz wäre grob jetzt folgender:

  • Nach Auswahl der Gruppe wird ein XMLHttpRequest zum Server geschickt, der eine Liste der bekannten Kunden in der Gruppe holt.
  • Die Kunden werden dem Eingebenden in einem DIV oder so präsentiert. Wenn er auf einen klickt, soll der automatisch eingetragen werden
  • ansonsten kann er weiter frei eingeben


Folgende Probleme erwarte ich dabei:
1.) Das dauernde Requesten der bekannten Kunden macht ja wohl nur Sinn, wenn man es mit Caching am Client verheiratet. Der Client könnte sich also in einem Array merken, daß es in Gruppe "GRUPPE_1" zb die Kunden "Müller","Meier",... gibt.
Mir ist jetzt völlig unklar, wie ich eine Obergrenze des Cachings implementieren soll...

  • Wie erkenne ich, wann ich zuviele gecacht habe und wieder welche nach LRU wegwerfen soll ?
  • Bekomme ich aus JS meine Speicherauslastung raus ?
  • Oder soll ich eine willkürliche Grenze ziehen mit zB 1000 Kunden und danach die ältesten rauswerfen ?
Dann werden sowohl die Benutzer mit sehr alten als auch die mit sehr neuen Rechnern unglücklich sein ... Wie löst man sowas richtig ?

2.) Wenn parallel eingebucht wird, soll es möglich sein, daß

  • zB Benutzer A einen neuen Kunden in GRUPPE2 anlegt und
  • Benutzer B den automatisch auch in seiner Vorschlagsliste sieht, wenn er einen in Gruppe2 anlegen will.

Das bedeutet also, daß es eine Möglichkeit geben muß, daß Benutzer A den Cache von Benutzer B invalidiert. Wie löst man das ?
Mein billigster Lösungsansatz wäre,

  • daß Benutzer A einen eigenen Request an den Server schickt, wenn er einen neuen Kunden anlegt.
  • Der Server könnte eine SerialNumber/Sequence (ähnlich wie bei DNS) pro Gruppe haben, die er dann hochzählt.
  • Jeder Benutzer würde dann pro Buchung die SerialNumber der gerade aktuellen Gruppe am Server holen müssen -
  • und könnte so feststellen, wann er den eigenen Gruppencache invalidieren muß.

Kommt mir einfach aber beshissen vor.
Ein anderen Fall wäre, daß sich der Server merkt, welcher Client welche Stände kennt - und nur die Differenzen/neuen an den Client mitschickt. Kommt mir aber stressig und umständlich vor... Lösungsansätze ?

Ach ja, Gruppen gibt es rund 7000 - also es ist ausgeschlossen, daß man alles (Gruppen+Kunden) an den Client überträgt, vor allem, weil es dann mit der Adresse weitergeht  ;-)

13.04.2006, 13:05 Uhr - Editiert von gepeinigter_aon_neukunde, alte Version: hier
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 13:14:11)
...  Re(3): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 13:32:41)
.....  Re(5): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 13:52:20)
.......  Re(7): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:12:10)
.......  Re(7): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:21:09)
.....  Re(5): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:03:54)
.......  Re(7): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:09:48)
.........  Re(9): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:30:42)
........  Re(8): JavaScript-Dauproblem...  (Dr. Watson am 13.04.2006, 19:56:53)
.  Re: JavaScript-Dauproblem...  (littleo am 13.04.2006, 14:43:47)
..  Re(2): JavaScript-Dauproblem...  (Sir Hondo am 13.04.2006, 14:55:24)
....  Re(4): JavaScript-Dauproblem...  (littleo am 13.04.2006, 15:42:09)
...  Re(3): JavaScript-Dauproblem...  (littleo am 13.04.2006, 16:09:58)
....
Re(4): JavaScript-Dauproblem...
13.04.2006, 16:22:34
Eher letzteres... Und ja, es soll so ähnlich wie bei google suggestions enden (plus zusätzlich eben der Vorschlagsliste)

Also gehen wir's mal durch, wie ich es mir dachte:
Gruppen sind sowieso am Client gespeichert.

Wenn die Gruppe "27" ausgewählt wurde (es werden immer viele Buchungen in derselben Gruppe erfolgen) - dann sollen eben nur die Kunden von Gruppe27 kommen. Wenn er sie beim ersten mal via AJAX holt, könnte er sie sich in einen Array wegspeichern. (Das werde ich nun wohl doch über den Page-Cache lösen).

Der Witz ist eben, daß meist wenige Gruppen Benutzt werden - da macht Cachen schon Sinn (insbesondere da es nur maximal 100 Elemente pro Gruppe sind)...

Ziel ist
- Reduktion des NW-Verkehrs (die XML-Antwort der größten Gruppe sind immerhin 4K) - und im Endausbau werden ca. 50 User drauf arbeiten.
- schnelleres Arbeiten beim Bucher (bis zu 800 Buchungen pro Tag und Bucher)
- Serverentlastung (der Server ist ja jetzt schon mit seinem bisherigen sehr beschäftigt).
- Ergänzung unseres PHP-Frameworks um einfache Methoden um andere Teile zu AJAXifizieren ;-)
- Umstellungen vieler bestehender "normaler" POST-Formulare um den Server weiter zu entlasten, wenn wir alles davor im griff haben.

NW-Anbindung ist /traurigerweise/ echt Thema... Ich habe bisher auch noch nie irgendwelche kommerziellen Kunden gesehen, die einen 400MB-pro-Monat-Tarif hatten (und jetzt kenne ich solche) - und glaub mir, ich habe es /ehrlich/ versucht, die zu einem Wechsel - wurscht wohin - zu bewegen.

Ad DBA:
Die Kompetenz des DBA dort ist praktisch nur durch sein überdimensioniertes männliches Sexualorgan sowie seine traumhafte Erscheinung erreichbar - das bin ich ;-). Nöö, aus DB-Sicht paßt's schon.

EDIT:
Das saubere js-Teil wäre nett... Würde mich freuen (wenn es frei ist)

13.04.2006, 16:23 Uhr - Editiert von gepeinigter_aon_neukunde, alte Version: hier
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
.  Re: JavaScript-Dauproblem...  (Undying am 13.04.2006, 15:38:46)
...  Re(3): JavaScript-Dauproblem...  (Undying am 13.04.2006, 15:50:14)
.....  Re(5): JavaScript-Dauproblem...  (Undying am 13.04.2006, 17:11:03)
.......  Re(7): JavaScript-Dauproblem...  (Undying am 13.04.2006, 18:54:41)
.........  Re(9): JavaScript-Dauproblem...  (Undying am 13.04.2006, 20:58:47)
...........  Re(11): JavaScript-Dauproblem...  (Undying am 13.04.2006, 21:28:40)
.  Re: JavaScript-Dauproblem...  (Ingenico am 18.04.2006, 18:34:51)
..  Re(2): JavaScript-Dauproblem...  (littleo am 19.04.2006, 09:35:06)
.  Re: JavaScript-Dauproblem...  (littleo am 19.04.2006, 09:30:33)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung