Mettre en œuvre un Ajax PanierTIl objet de cet article est d'expliquer comment créer AWeb application qui implémente un panier d'achat. Un panier électronique est une chose personnelle, mais il est accessible à tous. Cet article va au bout des problèmes de manipulation, tant les données personnelles et publiques. Cet article traite des sujets suivants:
• Comprendre les différences entre une URL personnelle et une URL générale • Contrôle de l'accès à une URL personnelle • Savoir quels verbes HTTP à utiliser avec une URL personnelle • Utilisation de Asynchronous JavaScript and XML (Ajax) pour récupérer une URL personnelle Problème Vous voulez mettre en oeuvre un panier robuste dans votre application Web afin que l'accès de ces données, qui mai être public ou privé, est cohérent et explicite. Note Cet article décrit deux exemples: un panier d'achat et d'une banque d'affichage des informations de compte. Ces deux exemples illustrent le problème commun d'identité et de personnalisation. Theory Lorsque vous allez dans une épicerie, vous prenez un panier. Le panier est l'un des milliers de lettres identiques prospectifs caddies. Aucun identifiant sur le petit caddie en fait distinguer d'un autre panier. Un caddie n'est pas comme une clé, car une clé est unique d'une autre clé à cause de sa forme. L'unicité du panier n'est pas défini par la charrue réelle, mais par les articles que vous placez dans le chariot et le plan d'achat. En Europe, cette unicité est essentielle parce que les Européens ont tendance à magasin en sections. Ils trouvent une place pour garer leur panier, puis à trouver ce dont ils ont besoin, porter ces éléments à l'arrière du chariot, et placez-les dans le panier. Ils prennent des chasseurs-cueilleurs et d'approche, où la proie est la nourriture à l'épicerie. Il ya littéralement des centaines de voitures sans propriétaires, mais les gens ne prennent pas la charrue tort, pas plus qu'ils ne commencer à prendre les choses hors de chariots d'autres personnes, 1 et ils ne marchent loin avec panier de quelqu'un d'autre à dessein. Je dis «à dessein», car les gens ne marchent parfois 10 pieds avec voiturette de quelqu'un d'autre avant de réaliser, "Oops, ce ne sont pas mes articles." En regardant ce à partir d'un point de vue abstrait, le panier est devenu personnalisé, même si elle devient génériques shopping à nouveau lorsque la personne est fait. Caddies Web ne sont pas implémentées comme des paniers d'achat dans la vie réelle. Sur le site AWeb, vous pouvez avoir un seul panier. Dans la vraie vie, on pouvait se promener avec des caddies multiples (qui, en fait, je l'ai fait). Sur le site AWeb, vous ne pouvez pas main de votre panier pour un autre utilisateur. Dans la vraie vie, vous pouvez donner votre panier à personne. Du point de vue du programmeur, un panier sur le site AWeb est associé à un utilisateur et exige de gérer les détails d'un individu. Dans la vraie vie, dans la perspective d'un caissier, aucune information personnelle n'est communiquée. La réalité du Web basé sur des paniers d'achat, c'est qu'ils associer les données générales, telles que quel élément est en cours d'achat, avec un utilisateur spécifique. Une partie du problème avec l'implémentation actuelle de paniers est que les applications Web ne peut pas distinguer les URL d'un autre. Paniers d'achats sont mis en œuvre en utilisant les technologies qui font des paniers d'achat difficile à gérer. Regardons une autre situation qui est semblable à un panier d'achat. Un compte bancaire est semblable à un panier d'achat en ce que tout le monde peut avoir un compte et le compte bancaire peut être manipulé de la même manière comme un panier. La grande différence entre un panier et un compte bancaire est qu'un compte bancaire nécessite une autorisation. Disons qu'une banque crée AWeb application qui permet aux utilisateurs d'accéder à leurs comptes bancaires sur Internet. En utilisant les technologies actuelles, l'application permet aux utilisateurs d'accéder à leur compte en utilisant la même URL et puis leur demande de s'authentifier. Repose sur l'authentification, les utilisateurs voient toutes les informations de compte bancaire est associé avec eux. • Un utilisateur peut utiliser un seul ensemble de données, car il n'y a aucun moyen pour un administrateur d'exister: Par exemple, un utilisateur possédant plusieurs comptes ne seraient pas en mesure d'accéder à tous les comptes, à moins que vous écrivez du code qui regroupe les comptes contrôlés. Utilisation d'une URL unique avec un service AWeb, les utilisateurs peuvent regrouper les comptes eux-mêmes. • La sécurité est mis dans les mains du développeur d'applications Web: Le développeur d'application Web doit ajouter des obstacles afin d'assurer que seules les personnes autorisées peuvent accéder à certains éléments d'information. Trop souvent, cependant, les obstacles peuvent entraîner des problèmes de sécurité. HTTP sécurité est bien connue, bien définis et stables, et ceux qui gèrent les administrateurs informatiques sont bien conscients de tous les trous de sécurité. De programmation, bien que capable et intelligent, ne sont pas des spécialistes en sécurité. Solution La solution à la fois le panier et les problèmes de compte en banque est d'utiliser des URL uniques. Par exemple, le panier URL peut être / shoppingcart/12324, et le compte bancaire peut être / bankaccount / Maryjane. Beaucoup de personnes pourraient reculer devant cette solution, car cela signifie que chaque utilisateur devra URL unique, et la gestion des URL uniques crées complexité. Par exemple, imaginez envoyer un e-mail qui dit: "Hé, vous pouvez acheter cela, et vous serez crédité de 1000 points dans votre compte bancaire." Vous vous demandez probablement: «Que URL sera envoyé dans l'email? La mise en œuvre des URLs uniquesURL uniques peuvent être déterminées à l'avance, ou elles peuvent être générées dynamiquement. D'une manière générale, vous serez la gestion de trois types d'URL, défini comme suit: • Root URL: Le but de la racine Web est de fournir un cadre pour l'action et des URL uniques. La racine ne peut pas être l'URL d'action. Imaginez une situation où vous voulez obtenir une liste de tous les paniers d'achat disponibles. Si la racine Web est l'action d'URL, une URL unique serait renvoyé lorsque la racine Web est interrogée. • Action URL: Une action d'URL, tel que / cart / récupérer, est l'URL référencées par le client. Selon les verbes pris en charge, une référence à une URL unique est retourné. Dans le cas du panier d'achat, le verbe uniquement pris en charge par le serveur est GET, ce qui génère une URL unique lorsqu'il est appelé. Dans le cas du compte bancaire, l'action prend en charge les URL POST verbe, qui génère l'URL unique lorsqu'il est appelé. Les verbes DELETE et PUT sont pas pris en charge, parce qu'ils n'ont pas de sens. • URL unique: Dans le cas du panier d'achat, une URL identifiant comme / cart/12345 a un identificateur numérique annexée après l'URL racine de l'application panier. Une URL unique n'a pas besoin d'avoir un identifiant numérique, en annexe, mais il peut être alphanumérique ou un autre identificateur. Une URL unique peut soutenir tous les verbes HTTP et dépend entièrement du contexte. Chaque URL unique généré n'a pas à être identiques dans leur structure. Par exemple, une application peut utiliser les deux URL / cart/12234 et / big/cart/12/first. Les URL uniquement générés n'ont pas besoin d'être suivis par le serveur, et, souvent, sont sous la responsabilité du client. Le serveur n'a besoin que de garder une trace de l'URL unique à des fins de suppression. Par exemple, si le panier d'achat n'a pas été utilisée pendant une certaine période de temps, le serveur le supprime. Algorithmiquement, le défi réside dans la conversion de l'URL d'action dans une URL unique. Une façon de résoudre le problème est de créer une requête HTTP et ensuite définir l'URL unique dans la réponse. Le protocole HTTP 1.1 fournit les moyens pour rediriger l'URL d'action à l'URL unique. Dans le protocole HTTP parler, c'est ce qu'on appelle d'effectuer une redirection. Comprendre la redirection HTTP Redirection HTTP est un protocole de connexion. Le client fait une demande, et le serveur reçoit et traite la demande. Si le serveur indique une redirection est en ordre, puis un code de statut HTTP dans la gamme 300 est retourné. Sur réception du code d'état 300-gamme, le client inspecte la réponse et peut prendre des mesures en chargeant l'URL redirigée. Ce qui suit est un exemple HTTP conversation qui effectue une redirection HTTP. Comme d'habitude, un client effectue une requête HTTP: GET / resource / HTTP/1.1 Accept: * / * Accept-Language: fr Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (compatible; PPC Mac OS X; fr) AppleWebKit/412.6.2 (KHTML , like Gecko) Safari/412.2.2 Connection: keep-alive Host: 192.168.1.242:8100 L'URL / ressource est reconnue par le serveur HTTP comme une URL générique qui seront redirigés vers une URL spécifique lorsqu'il est appelé. Le serveur HTTP répond par un HTTP 302 pour indiquer une redirection, comme illustré par la réponse suivante HTTP: HTTP/1.1 302 Found Date: Mar, 05 Sep 2005 16:29:04 GMT Server: Apache/2.0.53 (Ubuntu) PHP / 4.3.10-10ubuntu4 Location: / resource / joesmith Content-Length: 346 Keep-Alive: timeout = 15, max = 100 Connection: Keep-Alive Content-Type: text / html; charset = iso-8859-1 Dans l'exemple, l'URL spécifique envoyée au client est défini comme / resource / joesmith. Quand l'un navigateur AWeb ou un objet XMLHttpRequest reçoit une redirection, le client reconnaît la redirection et tenter de récupérer le contenu de l'URL redirigée, comme illustré par la demande finale suivante: GET / resource / joesmith HTTP/1.1 Accept: * / * Accept-Language: fr Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (compatible; PPC Mac OS X; fr) AppleWebKit/412.6.2 ( KHTML, like Gecko) Safari/412.2.2 Connection: keep-alive Host: 192.168.1.242:8100 Une redirection HTTP, qu'il ait été exécuté par le navigateur Web ou XMLHttpRequest, peut être exécutée que si la redirection suit la politique même origine. Si une redirection vers un autre domaine est tentée avec XMLHttpRequest, les résultats varient. Par exemple, Microsoft Internet Explorer renvoie un code d'état 0 et aucune autre donnée. Navigateurs basés sur Mozilla retourner le code de statut 302 et l'URL redirigée. Bien que l'utilisation de redirection HTTP peut être efficace, il peut également s'avérer problématique dans une perspective Ajax. Lorsque vous utilisez l'objet XMLHttpRequest et en appelant une URL qui génère une redirection, l'URL de redirection seront chargés automatiquement. Ceci est mauvais car le script a besoin de savoir ce que l'URL de redirection est, mais l'objet XMLHttpRequest ne donne pas cette URL. Par conséquent, dans le cadre de cet article, vous ne pouvez pas utiliser un code HTTP 300-plage d'état. 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 Ajax Panier" 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: 252 users browsing the articles directory |
|
|