Ajax Page Echo gegen Hintergrund Ajax/Direct HTML Manipulation?
-
27-10-2019 - |
Frage
Ich habe ein Dilemma und könnte wirklich Ratschläge verwenden. Ich baue ein Bestellsystem mit PHP/Smarty/HTML/JQuery. Derzeit wird an der Website gearbeitet, auf der der Verkäufer Bestellungen bestätigt.
Ich muss 3 Divs haben.
- Wartenbestellungen Div - enthält einen Tisch mit unverarbeiteten Bestellungen
- Letzte Bestellungen Div - enthält eine Tabelle mit zuletzt verarbeiteten Bestellungen (10-20 Zeilen)
- Details Div - enthält Informationen zur Bestellung und Schaltflächen, um zu bestätigen/abzulehnen
Es ist eine typische Master-Detail-Situation, nur der Master ist in 2 Teile (1,2) aufgeteilt, und Details sind in Div 3 aufgeteilt. Natürlich ist alles mit JavaScript/Ajax verbunden, damit der Benutzer das "Echtzeit" -Feeling erhalten kann. Wartenbestellungen Div wird über Kometen (langwierige) Technik gefüllt.
Mein Dilemma ist, wie Sie die Divs mit JavaScript/Ajax verbinden. Sollte ich Echo -Seiten erstellen, die dem DB -Zustand entsprechen und die vollständig in Divs laden. Oder sollte ich nur die Tischreihen manipulieren und AJAX nur für Hintergrund -DB -Anrufe verwenden?
Um mich klarer zu machen:
Option 1 (AJAX Complete Pages):
- Wenn der Benutzer die Warteschläge auswählt, wird eine neue Seite (Echoed Tabelle) mit AJAX abgerufen und in Details Div geladen
- Wenn der Benutzer die Reihenfolge in Div 3 bestätigt/ablehnt, werden Divs 1 und 2 mit AJAX aktualisiert (Echo -Seiten mit Tabellen, die dem Status in DB entsprechen)
Option 2 (HTML Manipulation/Hintergrund Ajax):
- Wenn der Benutzer die wartende Reihenfolge auswählt, sind Elemente von Div 3 mit neuem Wert gefüllt.
- Wenn der Benutzer in der Reihenfolge in Div3 bestätigt/ablehnt, wird TR aus der Tabelle in Div 1 entfernt (Hintergrund AJAX zu DEL von DB) und derselbe TR wird in Div 2 (Hintergrund AJAX zum DB einfügen) hinzugefügt.
Also, welchen Weg zu gehen?
Lösung
Beide Wege sind Akzeptanz, aber NR 1 ist aufgrund von Reload Div 1 & 2 weniger benutzerfreundlich. Wenn Sie etwas in Div 3 laden, haben Sie seine ID, daher sollte es ein Problem sein, TR zu kopieren / anzuhängen (und Farbe hinzuzufügen, damit der Benutzer weiß, was passiert ist).
Wenn Sie 2 auswählen, denken Sie daran, neue Aktionen an Ihre TR -Elemente zu entbinden / zu binden, denn wenn Sie Ihren TR an einen anderen Ort verschieben, wird dies nicht zuvor von Ihnen gebetene Aktionen ausgelöst.
Ich würde wahrscheinlich mit 2 selbst gehen;)
Ps. Fügen Sie Overlay mit Ajax Loader hinzu (http://ajaxload.info/), um auf der sicheren Seite von Benutzerumrechten zu sein, während Sie Daten in Div 3 laden. Der Benutzer wird auch glücklicher, weil er weiß, dass etwas los ist;)