Implémentation d'un panier en utilisant AjaxL'exemple de panier sera mis en œuvre dans sa forme abrégée, à des fins d'explication. La solution se concentrera sur la génération de l'URL unique et d'utiliser cette URL unique lors d'un achat.
La solution initiale Le tableau suivant illustre l'exemple de code source shopping. Source: / client / articles ajaxrest / architecture / shoppingcart.html Dans l'exemple de code source, le code en gras représentent les morceaux de fonctionnalité qui se rapportent à une utilisation spécifique de UniqueURL. La page HTML dans un contexte global représente la page parent que tout le monde utilise pour obtenir un panier d'achat et d'acheter certains articles. Lorsque la page est chargée, l'événement body.onload est déclenché, causant la fonction d'initialisation d'être appelé. Dans la mise en œuvre de Initialize, unique.getIt est appelée, qui se traduit par une URL unique qui représente un panier d'achat. En ajoutant le code unique Web à l'événement body.onload, vous êtes assuré que celui qui visite la page HTML aura un panier à leur disposition. L'URL générée est utilisée lorsque les utilisateurs cliquent sur le bouton Achat, ce qui déclenche la fonction appelée BuyItems. La mise en œuvre générale de buyit n'est pas important, parce que ce que vous faites est annonce les derniers détails restent à acheter ce que les utilisateurs ont ajouté au panier. Dans l'appel de méthode asynchronous.post, l'URL utilisée est unique.uniqueURL. Lorsque l'achat a autorisé la mise en œuvre onComplete, le membre de données uniqueURL est effacé et un nouveau panier d'achat unique-Web est récupérée. Le code permet de comprendre comment utiliser les URL uniques, mais vous devez comprendre les considérations suivantes: • Lors d'une URL unique, tel que / pyservices/shopping/cart/122343, est renvoyé, le client ajoute l'identificateur / checkout. Utilisation d'une URL nonappended exigerait l'URL à accepter les requêtes POST et GET pour les structures de données multiples, et qui serait non-REST conforme. Du côté du client, l'ajout d'un identificateur n'est pas une grosse affaire, mais sur le serveur, il ne deviennent un gros problème, comme nous le verrons sous peu. • La page HTML d'exemple, ne comprend pas le code pour rechercher, consulter et ajouter des éléments à la page HTML. Vous pourriez utiliser deux solutions: l'injection du contenu ou une iframe. Utilisant l'injection de contenu, les articles du catalogue seraient des morceaux de code HTML qui serait ajouté à la page HTML en cours en utilisant la propriété innerHTML. L'autre approche consiste à utiliser une iframe flottante, qui permet de séparer l'affichage des articles du catalogue de la manipulation. • Dans le cas du panier d'achat, le propriétaire de l'URL unique est le client. Cela soulève la question suivante: «Si l'utilisateur appuyait sur la rafraîchissement de page, comment ils se souviennent de ce qu'ils étaient référencement?" Le serveur ne sera pas indiquer aux clients de ce que l'URL est unique. Les clients peuvent gérer ce client en utilisant des cookies côté, comme cela sera illustré sous peu. Assurer le suivi du URLs uniques Typiquement, cadres d'application Web utilisent les cookies pour garder le serveur objets de session côté. Bien qu'il puisse sembler que le serveur d'objets de session côté de résoudre de nombreux problèmes, en fait, ils peuvent causer de nombreux problèmes. Disons que vous écrivez une architecture orientée services (SOA) client qui utilise les services Web nulle part dans la documentation du Service Web vous trouverez toujours des instructions sur la façon de tenir la session, parce que c'est la façon dont le code est écrit. Supprimer le terme Service Web et l'utilisation d'un appel de procédure distante. Par défaut, un appel de procédure distante ne sais plus qui l'a appelé. Appels de procédure distante s'attendre à l'appelant de rappeler que, comme c'est la bonne approche. Pour vous donner un exemple réel de savoir pourquoi il est mauvais d'utiliser côté serveur sessions , disons que vous faites des achats sur Amazon.com, et que vous décidez d'acheter certaines choses. Vous n'allez pas payer pour du contenu de votre panier d'achat, parce que ta mère a décidé d'acheter toute chose comme un cadeau d'anniversaire. Dans un magasin réel d'épicerie vie, d'avoir votre achat mère du contenu de votre panier d'achat est aussi facile que lui remettant le panier. Chez Amazon.com, chaque utilisateur reçoit un panier d'achat unique. Par conséquent, pour que votre mère payer pour le contenu, vous devez créer manuellement une liste que vous e-mail à votre mère. Ou vous pouvez demander à votre mère pour sa carte de crédit. La première option est facile à faire, mais cela prend du temps et «boiteux», comme on vous oblige à écrire le contenu de votre panier, puis ai ajouter les éléments à son caddie. C'est comme si vous allez dans un magasin, veuillez remplir le chariot, puis créez une liste d'articles dans le panier et part cette liste à votre mère. Votre mère a alors à la course autour du supermarché et remplir son panier avec les mêmes éléments pour qu'elle puisse payer. La seconde option ne nécessite aucun effort supplémentaire que telle, mais elle ne nécessite de votre mère vous confier sa carte de crédit. Je suis sûr que ta mère te faire confiance, mais elle serait probablement mal à l'aise, comme le ferait n'importe qui. Comme vous pouvez le voir, il n'existe aucune option viable impliquant côté serveur, session-fondé des URL. La seule option viable est de cesser d'utiliser côté serveur, session des URL et commencer à utiliser des URL uniques avec le client, la gestion des références à l'URL. Utilisation du client géré URL uniques ouvre de nouvelles possibilités. Par exemple, disons que vous créez une télévision, la radio, et système de son et d'ajouter ces éléments à un panier d'achat. Puis, comme un service à valeur ajoutée, vous la promotion de votre panier, et chaque fois que quelqu'un veut acheter votre système de son super, ils ne paient que pour le panier d'achat et n'ont pas à aller sur le site de trouver des articles individuels. En théorie, on pourrait créer des milliers de paniers différents avec des configurations différentes. Cependant, vous ne pouvez pas faire ce genre de valeur ajoutée aujourd'hui avec côté serveur, session-fondé des URL. Beaucoup disent que les cookies HTTP sont mauvais, mais cela dépend de comment Les cookies sont utilisés. Je considère les cookies comme un rôle de soutien pour tout type d'application. Maintenant, nous allons parler de cookies côté client et retarder une discussion plus approfondie cookie que plus tard dans cet article. Il n'ya pas de réelle différence entre un client ou côté serveur cookie de côté, car un cookie est un jeton de détenus par le client et envoyé au serveur. Le client ou serveur peut attribuer le coup, et dans le cas du panier d'achat, le client va assigner le cookie. Le cookie qui est attribué est l'URL unique, et le code modifié Panier se présente comme suit (veuillez noter que seul le code a été écourtée à des fins de clarté): Le code en gras représente le code lié à la gestion d'un cookie. En particulier, trois as-de-encore toujours les fonctions non définies sont utilisées: createCookie, readCookie, et eraseCookie. Ces trois fonctions sont utilisées pour écrire, lire et supprimer un cookie. Les fonctions ont été orientés vers la facilité d'utilisation, la rendant aussi simples que possible pour lire et écrire des paires clé-valeur. La clé est un nom de cookie, et la valeur est une valeur de cookie. La logique de la fonctionnalité des cookies est la suivante: • Lorsque la page est chargée, les contrôles en utilisant la fonction Initialize readCookie fonction pour voir si un cookie avec un panier nom existe. Si le cookie existe, alors il n'est pas nécessaire de créer un nouveau cookie, mais la valeur du cookie doit être attribué à la donnée membre unique.uniqueURL. Si le cookie n'existe pas, cela signifie qu'il n'y a pas de panier associé, et donc la unique.getIt fonction doit être appelée. • Si un cookie doit être récupéré en utilisant la méthode unique.getIt, puis quand l'URL unique est généré, le unique.haveIt méthode est appelée. Dans la mise en œuvre de unique.haveIt, le panier cookie est attribué la valeur de la donnée membre unique.uniqueURL avec une échéance de deux jours. • Lorsque le panier d'achat a été payé et une URL unique est créé, le cookie existantes sont effacées en utilisant la eraseCookie fonction. La mise en œuvre des routines cookie manipule l'objet document.cookie. Les rendements document.cookie objet tous les cookies applicable au domaine en cours. Le code suivant montre l'application de la Cookie2 fonctions: createCookie function (name, value, days) (if (jours) (var date = new Date (); date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000)); var expires = " ; expires = "+ date.toGMTString ();) else var expires =" "; document.cookie = name +"="+ value + expires + "; path = /";ReadCookie) function (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) c.substring retour (nameEQ.length, c.length);) return null;) eraseCookie fonction (son nom) ( createCookie (nom ,"",- 1);)Le code en gras illustre comment l'objet document.cookie est manipulée. La manipulation est assez particulière et complètement fantaisistes. Dans la mise en œuvre de createCookie, un buffer est créé, puis affecté à document.cookie. Habituellement, une affectation à un membre de données réinitialise la valeur du membre de données. Rien de tel avec le membre document.cookie données. Assigner le membre de données soit crée un nouveau cookie ou réaffecte la valeur d'un cookie existant. Dans la mise en œuvre de createCookie, les jours de paramètre attribuer un temps pour le cookie est créé, indiquant que le cookie expire. Si le cookie et le createCookie fonction ne sont pas associés au temps de ce jour, alors le cookie expire au moment où le navigateur est fermé. À la lecture du document.cookie membre de données, les cookies applicable au domaine actuellement chargé et document sont extraites. Les éléments suivants pourraient être une valeur d'exemple de document.cookie: cc = valeur1; = panier / pyservices / shopping / cart / toRedirected La valeur de document.cookie est problématique, parce que c'est une chaîne qui contient plusieurs cookies. Pour trouver un seul cookie, la chaîne doit être analysée. La mise en œuvre de readCookie gère automatiquement l'analyse et récupère la valeur à un identificateur de cookie particulier. EraseCookie La fonction utilise la fonction createCookie de supprimer un cookie. Là encore, cela est peu orthodoxe, mais il utilise la fonctionnalité, où l'attribution d'une date d'expiration d'un cookie sera automatiquement supprimer les cookies. un article présenté par Sonja Lande Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «Mettre en œuvre un Panier en utilisant Ajax" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 294 users browsing the articles directory |
|
|