Jump to content
xt:Commerce Community Forum
Sign in to follow this  
gswkaiser

xtc und AJAX, eine Traumpaar! (II)

Recommended Posts

Eine neuer Status-Update.

(Ich habe einen neuen Thread er?ffente, weil der erste schon etwas un?bersichtlich war.)

Die Arbeit an xtc/AJAX ruhte etwas, geht aber wieder weiter.

Das Form-Handling auf AJAX-Basis hatte sich als ziemliches Problem herausgestellt, vor allem auch deshalb, weil in einigen xtc-Formularen ein (verstecktes) Feld "action" verwendet wird, um die auszuf?hrende Option zu ?bergeben.

Im nicht Nicht-AJAX-Betrieb st?rt das nicht weiter, aber da ich bei AJAX mir ja den Formular-Inhalt und die Zieladresse selbst auslesen muss, gab es das Problem, dass dieser Feldname "action" mit dem Attribut "action" des Formulars (also die Zieladresse der Daten) in Konflikt geriet. Beim Auslesen des "action"-Attributes des Formulares in Javascript wurde daher immer das Feld "action" als Objekt zur?ckgeliefert. (Das hat einige Zeit gedauert, bis mir das klar wurde...)

Aber mittlerweile habe ich das mit den Formularen auch so weit im Griff.

Apropos Javascript: Das Javascript-Modul f?r den AJAX-Support hat mittlerweile doch schon ca. 800 Zeilen erreicht...

Darin enthalten ist aber auch schon der Code f?r eine AJAX-basierte intelligente Feldvalidierung, die ich mir auch vorgenommen habe, und auch der Code f?r einen verschiebbaren Warenkorb (wenn die Produktliste auf dem Bildschirm nach unten verschoben wird, soll ein Warenkorb mitwandern, damit man sieht, was man so bestellt).

Die Feldvalidierung ist mit Daten in der DB hinterlegt und wird folgendes leisten:

(Allen Funktionen gemeinsam ist, dass, wenn es f?r eine Eingabe mehrere Datens?tze gibt in der Datenbank gibt, diese Optionen in einer Auswahlbox unter dem Feld zur Auswahl angeboten werden. Man kann also durchaus nur Teile des Feldes (Plz, Blz) eingeben, und erh?lt dann die daf?r zutreffenden Optionen zur Auswahl.)

Pr?fung der Vornamen

- auf richtige Schreibweise und ?bereinstimmung von Namensgeschlecht (Herr Ingrid z.B. w?rde damit angemeckert).

(Diese DB-Tabelle hat ca. 45.000 Eintr?ge, mit Namen aus aller Welt)

Pr?fung der Postleitzahl (D-A-CH)

- auf Existenz. Wird Sie gefunden, wird auch die Stadt und das Bundesland (f?r "D") im Formular gleich mit aktualisiert, sonst erfolgt eine Fehlermeldung.

(Diese DB-Tabelle hat ca. 26.500 Eintr?ge)

Pr?fung der Bankleitzahl

- auf Existenz. Wird Sie gefunden, wird auch der Bankname im Formular gleich mit aktualisiert, sonst erfolgt eine Fehlermeldung.

Pr?fung der Kontonummer (f?r "D")

- auf Konformit?t mit den Pr?fziffernverfahren der Banken. Damit kann man die formale Richtigkeit der Kontonummern pr?fen.

(Diese DB-Tabelle hat ca. 8.500 Eintr?ge)

Der PHP-Teil dieser Validierung ist so weit fertig, der Javascript-Teil der Validierung muss noch ?berarbeitet werden. Aber das sieht schon sehr gut aus...

================================================================

Ich habe auch die Notwendigkeit zur Neuberechnung diverser Boxen weiter reduziert, indem diese nur dann angezeigt werden, wenn sie ben?tigt werden.

Die Navigationsbox z.B. wird nur noch angezeigt, wenn eine Navigation stattgefunden hat usw.. Da kann man doch noch einiges reduzieren.

================================================================

Ich hoffe, im Laufe der Woche eine neue Version online stellen zu k?nnen, die auch das Formular-Handling nach AJAX-Art vollst?ndig abdeckt.

Share this post


Link to post
Share on other sites

Es gibt eine neue xtc2/AJAX-Variante online unter http://www.seifenparadies.de/ajax_test/index.php .

Die ist schon recht vollst?ndig, auch was die Verwendung von Formularen betrifft (Warenkorb etc.)

Was auch implementiert ist, ist der "wandernde Warenkorb", den finde ich echt cool.

Wenn der Warenkorb gef?llt ist, und der statische Warenkorb aus dem Sichtfeld gescrolled wird, wird dieser angezeigt, so dass man auch noch am Ende der Produktseite einen Warenkorb sieht.

Das funktioniert z.Zt. nur noch mit dem IE (ich hatte das heute aber auch schon im Firefox gesehen, muss da noch mal nachschauen).

Wie ich gerade festsellen musste, gibt es noch ein Problem mit unserem SSL-Server, das XMLHTTPRequest-Objekt bekommt da einen Fehler beim Zugriff. Also alles was den Bestellvorgang betrifft ist daher auf dem online-Server noch nicht machbar, da das ?ber SSL abgewickelt wird. (Auf dem lokalen Server funktioniert das problemlos.)

Share this post


Link to post
Share on other sites

Noch was vergessen!

Eine erste online direkt-Validierung ist auch implementiert.

Wenn man im Feld Schnellkauf z.B. die

Artikel-Nr.

1111 eingibt, erh?lt man die Meldung, dass das Produkt derzeit ausverkauft ist

7777 eingibt, erh?lt man die Meldung, dass das Produkt nicht existiert

1046 eingibt, wird das Produkt dem Warenkorb hinzugef?gt.

Share this post


Link to post
Share on other sites

Mal wieder ein Status-Update.

Die Arbeit schreitet weiter voran, die Online-Validierung ist jetzt auch so weit fertig.

Es k?nnen validiert werden:

Vorname/Geschlecht (Von "Aafke (weiblich)" bis "Z?mr?t (weiblich)")

F?r D-A-CH:

PLZ (mit automatischem setzen von Stadt (und Bundesland f?r D), wenn die PLZ gefunden wurde)

BLZ (mit automatischem setzen der Bank, wenn die BLZ gefunden wurde)

F?r D:

Pr?fen der Kontonummer auf G?ltigkeit anhand des Pr?fziffernverfahrens der jeweiligen Bank.

F?r alle Online-Validierungen gilt:

Werden f?r die eingegebenen Werte mehrere Eintr?ge gefunden (man kann auch Teile eines Begriffs eingeben), wird unter dem betreffenden Feld eine Auswahlbox mit den gefundenen Alternativen angezeigt, aus denen dann die richtige gew?hlt werden kann. (Im Regelbetrieb wird man das tunlichst vermeiden, aber derzeit kann man sich alle 46.431 Vornamen, 19.241 BLZ und 26.564 PLZ auf diese Art zur Auswahl anbieten lassen. (Da hat der Browser doch ein paar Sekunden zu tun, um diese Auswahlboxen in die Seite einzubauen.) Im Regelbetrieb wird f?r die Eingabe eine Mindestanzahl einzugebender Zeichen vorgeschrieben, um die Auswahlm?glichkeiten zu reduzieren.)

Fehler und Hinweise werden ?ber die gewohnte WINDOWS-Messagebox ("alert" in Javascript) mitgeteilt.

Als kleine Spielerei (um die M?glichkeiten des Verfahrens zu testen) ist es auch vorgesehen, dass bei der ?nderung des Landes in der Kundendatenmaske die Bundesl?nder des jeweiligen Landes im "Bundesland"-Feld erscheinen, bzw. das ganze Bundesland-Feld entfernt wird, wenn es keine Bundesl?nder gibt.

Validiert wird auch die "Schnellkauf"-Funktion, wo entweder ein Fehler angezeigt wird ("Artikel-Nr. falsch", "Produkt ausverkauft" u.?.), oder der Warenkorb aktualisiert wird.

Alles also so, wie man es von lokalen Anwendungen ?blicherweise gewohnt ist

Welche Funktionen sind denn noch f?r eine Online-Validierung interessant?

(Die Preis- und Warenkorb-Aktualisierung bei der Attribut-Auswahl w?re m.E. noch ein guter Kandidat daf?r.)

======================================================================

Implementiert ist auch etwas, was ich "sticky cart" getauft habe, also ein Warenkorb, der beim Scrollen auf einer Kategorie-Produkt-Seite am rechten Rand "angeklebt" (deshalb "sticky") und sichtbar bleibt. (Mich jedenfalls hat das immer gest?rt, dass ich beim Einkauf nie den Warenkorb sehen konnte, wenn dieser aus dem Bildfeld gescrolled war. Mit AJAX kann man diesen jetzt sehr sch?n immer sichtbar und aktuell halten.)

======================================================================

Offene Probleme:

Noch ungel?st ist das Problem, dass die normale Browser-Historie keine G?ltigkeit mehr hat, da der ganze AJAX-Verkehr am Browser vorbei l?uft. Aber so langsam bekomme ich einen Plan, wie man das l?sen k?nnte...

Wenn f?r die Installation der "SSL"-Verkehr definiert ist, muss die AJAX-Anwendung von Anfang an ?ber das "https"-Protokoll abgewickelt werden. Das f?r den AJAX-Verkehr verwendete XMLHTTP-Objekt aller Browser erlaubt es n?mlich nicht, dass eine unsichere Seite eine sicher aufruft.

======================================================================

Der ganze mittlerweile vorhandene Komfort hat nat?rlich auch seinen Preis:

das xtc/AJAX-Javascript das den ganzen AJAX-Verkehr und den lokalen Teil der Validierung abwickelt, hat mittlerweile 1.850 Zeilen (der Lesbarkeit wegen allerdings gro?z?gig formatierten) Code. Das ist aber nicht weiter tragisch, da der ja nur einmal beim Start der Anwendung geladen wird, und bei den einzelnen Programmschritten jeweils immer nur kleine Teile daraus ben?tigt werden.

Die xtc/AJAX-Entwicklung wird sicher noch etwas Zeit ben?tigen, aber mir pers?nlich gef?llt das xtc/AJAX-Konzept immer besser.

Share this post


Link to post
Share on other sites

btw, auf nem schnellen server sieht man mit und ohne ajax keine unterschiede.

denn aktuelle browser wie firefox 1.5 rendern sowieso nurmehr was ge?ndert wurde, von daher eher ne verschwendete zeit =)

Share this post


Link to post
Share on other sites

Originally posted by mzanier@Jan 28 2006, 02:39 PM

btw, auf nem schnellen server sieht man mit und ohne ajax keine unterschiede.

denn aktuelle browser wie firefox 1.5 rendern sowieso nurmehr was ge?ndert wurde, von daher eher ne verschwendete zeit =)

Quoted post

Es ist immer wieder interessant zu sehen, was f?r festgef?gte Meinungen doch manchmal Leute haben, die gar nicht wissen k?nnen, wie sich etwas konkret verh?lt.

Und Tsch?s....

Share this post


Link to post
Share on other sites

ich mach hier keinen mie? oder sonstwas, und ich weiss durchaus von was ich rede.

und das ist keine festgefertige meinung, sondern wir haben hier seit langen erfahrung mit dieser technologie, und ich habe lediglich einen ratschlag gegeben da dies imho sinnlos ist diese technologie heutzutage f?r das zu nutzen was du vorhast.

wenn du zuviel zeit hast, bitte.

auf ajax zu setzen au?er bei der formvalidierung ist absolut verschwendete zeit und eine sackgasse da immer mehr personen js deaktiviert haben (cb 35% !!! alleine auf unserer seite), gleioch verh?lt es sich bei diversen shops die wir betreuen, eine absolute sackgasse.

und da die browsertechnologie immer weiterschreitet, rendern aktuelle browser sowieso nur mehr was ge?ndert wurde, so sieht man am aktuellen ff keinen unterschied zwischen einem normalen shop und einen shop mit ajax, das selektive rendern wird auch in den m$ expl in n?chster version integriert.

und den geschwindigkeitsvorteil solltest du mal ?berpr?fen, denn ich bin mir sogar ziemlich sicher das die ajax variante wesentlich langsamer ist durch das laden eine 2000 zeilen js.

so ziemlich jeder webspezi wird dieser meinung beipflichten.

und wenn du auf andere shopsysteme setzen willst, wo nichtmal die entwickler php programmieren k?nnen, dann hast du die 2te sackgasse erwischt, viel spa? =).

meine meinung.

Share this post


Link to post
Share on other sites

Die Idee AJAX in XTC zu integrieren kann ich auch nur unterst?tzen. Ich glaube da f?hrt langfristig kein Weg dran vorbei.

Ich sehe die Bedenken hier nicht.

F?r mich ist immer noch der Shop von Apple ein gro?es Vorbild, wo auch AJAX eingesetzt wird. Die L?sung mit den Optionen bei der Konfiguration finde ich dort sehr gut gel?st.

Nicht nur das der Seitenaufbau beschleunigt wird, wobei ich da derzeit mir XTC keine Probleme habe, f?nde ich eine bessere L?sung und ?bersichtlichkeit bei den Optionen und Staffelpreisen sehr wichtig.

Ich w?rde mich freuen, wenn diese neue alte Technik in XTC einflie?en w?rde.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...