Die Implementierung eines Einkaufswagen mit AjaxDer Warenkorb wird beispielsweise in abgekürzter Form, um Erläuterungen zu Zwecken durchgeführt werden. Die Lösung wird auf die Generierung der eindeutigen URL konzentrieren und eindeutige URL beim Kauf etwas mit.
Die erste Lösung Das folgende Beispiel illustriert die Einkaufs-Source-Code. Quelle: / client / ajaxrest Artikel / Architektur / shoppingcart.html In der Quelltext-Beispiel stellt die fett-Code der Bausteine, die eine spezifische Verwendung UniqueURL beziehen. Die HTML-Seite in einem umfassenden Kontext stellt die übergeordnete Seite, dass jeder benutzt, um einen Einkaufswagen zu erhalten und einige Artikel zu kaufen. Wenn die Seite geladen ist, wird die body.onload Ereignis ausgelöst, so dass die Initialize-Funktion aufgerufen werden soll. Bei der Durchführung der Initialisierung ist unique.getIt aufgerufen, die Ergebnisse in eine eindeutige URL, die einen Warenkorb darstellt. Durch das Hinzufügen der eindeutige URL Code, um das body.onload Fall sind Sie sicher, dass jeder, der HTML-Seite besucht, wird ein Warenkorb zur Verfügung haben. Die erzeugte URL wird verwendet, wenn Nutzer auf die Sofort-Kaufen-Taste, die Auslösung der Funktion namens BuyItems. Die allgemeine Anwendung von BuyIt ist nicht wichtig, weil das, was Sie tun die letzten Details der Beitrag ist, um zu kaufen, was Nutzer in den Warenkorb gelegt hat. In der asynchronous.post Methode aufrufen, wird die URL verwendet unique.uniqueURL. Wenn der Kauf in der onComplete Umsetzung geräumt, ist das Mitglied uniqueURL Daten gelöscht und ein neues, einzigartiges Warenkorb URL abgerufen werden. Der Code sieht ein Verständnis davon, wie die eindeutige URL zu verwenden, aber Sie müssen die folgenden Überlegungen zu verstehen: • Wenn eine eindeutige URL, z. B. / pyservices/shopping/cart/122343, zurückgegeben wird, die Client fügt die Kennung / checkout. Mit einem nonappended URL wird die Adresse benötigen, um die Post zu und fordert für mehrere Datenstrukturen GET, und dass nicht-konforme REST wäre. Auf der Clientseite, das Anhängen einer Kennung ist keine große Sache, aber auf dem Server, wird daraus ein großes Problem, wie sich bald besprochen werden. • Das Beispiel HTML-Seite nicht enthalten den Code zu suchen, zu durchsuchen, und fügen Sie Elemente in die HTML-Seite. Sie könnten zwei Lösungen: Content-Injektion oder ein iframe. Mit Content-Injektion, würde der Katalog-Artikel werden Stücke von HTML-Code, um die aktuelle HTML-Seite mit der Eigenschaft innerHTML gehören würden. Der andere Ansatz ist es, ein schwimmendes iframe, mit denen Sie die Anzeige der Katalog-Artikel von Manipulationen separate ermöglicht den Einsatz. • Im Fall des Einkaufswagens, ist der Eigentümer der eindeutige URL des Kunden. Dies wirft die Frage: "Wenn der Nutzer die Seite aktualisieren, drücken Sie, wie werden sie, was sie verweisen?" Der Server wird nicht sagen die Kunden, was die eindeutige URL erinnern. Die Kunden können dies mit Client-Seite Cookies zu verwalten, so werden in Kürze dargestellt. Auf der Spur unterschiedlicher URLs Normalerweise verwenden Web Application Frameworks Cookies, um Server zu belassen-Seite Session-Objekte. Während es vielleicht den Anschein, dass server-side session Objekte viele Probleme lösen, sie kann in der Tat viele Probleme verursachen. Nehmen wir an, Sie schreiben eine Service-orientierte Architektur (SOA)-Client, Web-Services verwendet nirgends in der Web-Service-Dokumentation finden Sie immer Anleitungen zur Sitzung nicht finden, denn das ist, wie Code geschrieben wird. Entfernen Sie den Begriff Web-Service und verwenden Sie ein Remote Procedure Call. Standardmäßig wird ein Remote Procedure Call nicht daran erinnern, wer es nannte. Remote Procedure Calls erwarten, dass der Anrufer zu erinnern, dass, wie dies der richtige Ansatz ist. Um Ihnen ein Beispiel aus der Praxis, warum ist es schlecht zu Server-seitigen Einsatz Sitzungen Lassen Sie uns sagen, du bist das Einkaufen auf Amazon.com und Sie sich entschließen, einige Dinge zu kaufen. Du wirst doch nicht für die Inhalte in Ihrem Warenkorb zu bezahlen, weil deine Mutter hat beschlossen, alles als ein Geburtstagsgeschenk zu kaufen. In einem real-life Lebensmittelgeschäft, dass Ihre Mutter Kauf den Inhalt des Warenkorbes, ist so einfach wie reichte ihr den Warenkorb legen. Bei Amazon.com, jeder Benutzer erhält einen einzigen Warenkorb. Deshalb haben deine Mutter bezahlen für die Inhalte, müssen Sie manuell eine Liste erstellen, die Sie zu Ihrer Mutter per E-Mail. Oder Sie können Ihre Mutter fragen, für ihre Kreditkarten-Details. Die erste Option ist einfach zu tun, aber es ist zeitraubend und "lame", wie es zu schreiben, müssen Sie den Inhalt Ihres Warenkorbs und dann haben sie fügen die Elemente zu ihrem Warenkorb. Es ist, als wenn du gehst in einen Laden, füllen Sie den Wagen, und erstellen Sie eine Liste der Elemente in den Wagen und Hand, die Liste, um deine Mutter. Deine Mutter hat dann Rennen rund um den Supermarkt und füllen Sie ihren Wagen mit den gleichen Posten, so dass sie bezahlen kann. Die zweite Option erfordert keine solchen zusätzlichen Aufwand, aber es ist deine Mutter erforderlich sein Vertrauen zu Ihnen mit ihrer Kreditkarte. Ich bin sicher, dass Ihre Mutter Sie vertrauen, aber sie wäre wahrscheinlich unruhig, als würde jemand. Wie Sie sehen, gibt es keine praktikable Option mit server-side, Session-basierte URLs. Die einzige Alternative ist auf die Verwendung server-side, Session-basierte URLs und starten Sie mit eindeutigen URLs mit dem Kunden die Verwaltung der Verweise auf die URL. Verwenden von Client-managed, eindeutige URLs, eröffnet neue Möglichkeiten. Zum Beispiel, sagen wir, dass Sie eine TV, Radio zu erstellen, und Sound-System und fügen Sie diese Elemente in einen Warenkorb. Dann als Mehrwert-Service, Sie Ihren Warenkorb zu fördern, und wenn jemand will, um Ihre super Sound-System zu kaufen, sie nur für den Warenkorb zu zahlen und müssen nicht einmal rund um die Website finden die einzelnen Positionen. Theoretisch könnte man tausende von verschiedenen Warenkörbe mit verschiedenen Konfigurationen zu erstellen. Sie können jedoch nicht diese Art von Mehrwert heute mit server-side, Session-basierte URLs. Viele sagen, HTTP-Cookies sind schlecht, aber es hängt davon ab, wie Cookies werden verwendet. Ich halte Cookies als eine unterstützende Rolle für jede Art der Umsetzung. Now let's talk about client-side Cookies und Verzögerung eine tiefer gehende Diskussion Cookie erst später in diesem Artikel. Es gibt keinen wirklichen Unterschied zwischen einem Client-oder Server-Seite Cookie, weil ein Cookie ist ein Zeichen im Besitz des Kunden und übermittelt an den Server. Die Client-oder Server kann das Token zuzuweisen, und im Falle des Einkaufswagens, wird der Client das Cookie zuordnen. Das Cookie, das zugeordnet wird, ist die eindeutige URL, und der geänderte Warenkorb Code lautet wie folgt (beachten Sie, dass nur der Code wurde aus Gründen der Übersichtlichkeit abgekürzt): Die fett-Code ist der Code für die Verwaltung ein Cookie in Zusammenhang stehen. Insbesondere sind die drei wie-von-doch noch undefinierte Funktionen verwendet: createCookie, readCookie und eraseCookie. Diese drei Funktionen werden benutzt, um zu schreiben, lesen und löschen Sie ein Cookie. Die Funktionen sind auf Benutzerfreundlichkeit ausgerichtet, so dass es so einfach wie möglich zu lesen und zu schreiben, Schlüssel-Wert-Paare. Der Schlüssel ist ein Cookie-Name und der Wert ist ein Cookie-Wert. Die Logik der Cookie-Funktion ist wie folgt: • Wenn die Seite geladen ist, das Initialize-Funktion prüft mit der Funktion readCookie zu sehen, ob ein Cookie mit einem Namen shoppingcart existiert. Wenn das Cookie vorhanden ist, dann ist es nicht notwendig, einen neuen Cookie zu schaffen, sondern den Wert des Cookies muss, um die Daten Mitglied unique.uniqueURL zugeordnet werden. Wenn das Cookie nicht vorhanden ist, bedeutet dies, dass es keinen Zusammenhang Warenkorb legen, und damit die Funktion unique.getIt muss genannt werden. • Wenn ein Cookie abgerufen werden unter Verwendung der Methode unique.getIt, dann, wenn der eindeutige URL generiert wird, ist die Methode unique.haveIt aufgerufen. Bei der Durchführung des unique.haveIt, wird das Cookie shoppingcart dem Wert der Daten Mitglied unique.uniqueURL mit Ablauf von zwei Tagen. • Wenn der Warenkorb gezahlt wurde und eine neue eindeutige URL generiert, die bestehende Cookie wird gelöscht, mit der Funktion eraseCookie. Die Umsetzung der Cookie-Routinen manipuliert die document.cookie Objekt. Die document.cookie Objekt zurückgibt alle Cookies, die für die aktuelle Domäne. Der folgende Code zeigt die Umsetzung der cookie2 Funktionen: Funktion createCookie (name, value, days) (if (Tag) (var date = new Date (); date.setTime (date.getTime () + (Tag * 24 * 60 * 60 * 1000)); var expires = " ; expires = "+ date.toGMTString ();) else var expires =" "; document.cookie = name +"="+ value + expires + "; path = /";) Function readCookie (name) (var nameEQ = name + "="; var ca = document.cookie.split (';');for (var i = 0; i <ca.length; i + +) (var c = ca [i]; while (c.charAt (0) == '') c = c.substring (1, c.length); if (c.indexOf (nameEQ) == 0) return c.substring (nameEQ.length, c.length);) return null;) function eraseCookie (name) ( createCookie (Name ,"",- 1);)Die fett-Code zeigt, wie die document.cookie Objekt manipuliert wird. Die Manipulation ist etwas eigentümlich und ganz unorthodox. Bei der Durchführung des createCookie, wird ein Puffer geschaffen und dann document.cookie zugeordnet. In der Regel eine Zuordnung zu einem Datenelement setzt den Wert der Daten-Mitglied. Nicht so mit dem document.cookie Daten Mitglied. Vergabe der Daten Mitglied entweder eine neue Cookie oder ordnet die Wertsteigerung eines bestehenden Cookies. Bei der Durchführung des createCookie, ordnen Sie die Parameter ein Tag Zeit, um das Cookie erstellt, darauf hinweist, dass das Cookie abläuft. Wenn das Cookie und die Funktion createCookie nicht mit einem Datum Zeit verbunden sind, sind dann die Cookie wäre der Zeitpunkt der Browser geschlossen wird auslaufen. Beim Lesen der Daten Mitglied document.cookie, die Cookies für die Domäne und aktuell geladenen Dokument abgerufen werden. Das folgende Beispiel könnte ein Wert von document.cookie: cc = value1; shoppingcart = / pyservices / Warenkorb / cart / toRedirected Der Wert von document.cookie ist problematisch, weil es sich um eine Zeichenfolge, die mehrere Cookies enthält. Um einen einzelnen Cookie zu finden, hat der String analysiert werden. Die Umsetzung der readCookie verwaltet automatisch die Analyse und ruft den Wert für ein bestimmtes Cookie-Kennung. EraseCookie Die Funktion verwendet die createCookie Funktion, um ein Cookie zu löschen. Auch dies ist unorthodox, aber es nutzt die Funktionalität, wenn die Zuweisung eines Ablaufdatum, ein Cookie wird automatisch das Cookie zu löschen. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Die Implementierung eines Einkaufswagen mit Ajax" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 485 users browsing the articles directory |
|
|