La implementación de un carrito de la compra con Ajax

El ejemplo de carrito de la compra se llevará a cabo en forma abreviada para fines de explicación. La solución se centrará en la generación de la dirección única y el uso de la URL única en la compra de algo.

  

La solución inicial

El siguiente ejemplo ilustra el ejemplo de código fuente de compras.

 Fuente: / cliente / artículos ajaxrest / Arquitectura / shoppingcart.html  Carrito de la compra Initialize ()"> 

En el ejemplo de código fuente, el código en negrita representan las piezas de funcionalidad que se refieren a un uso específico de UniqueURL. La página HTML en un contexto global representa la página principal que cada uno utiliza para obtener un carrito de compras y comprar algunos artículos. Cuando se carga la página, el evento body.onload se activa, haciendo que la función Initialize a ser llamado. En la aplicación de Inicializar, unique.getIt se llama, que se traduce en una URL exclusiva que representa una cesta de la compra.

Al añadir el código de URL exclusiva para el evento body.onload, estás seguro de que quien visita la página HTML tendrá un carrito de la compra a su disposición. La URL generada se utiliza siempre que un usuario haga clic en el botón ¡Cómpralo ya, activando la función llamada BuyItems. La aplicación general de BuyIt no es importante, porque lo que estamos haciendo es la publicación de los últimos detalles restantes para comprar lo que los usuarios han añadido a la cesta de la compra. En la llamada al método asynchronous.post, la dirección utilizada es unique.uniqueURL. Cuando la compra se ha aclarado en la aplicación onComplete, el miembro de datos uniqueURL se borra y una nueva y única de las compras-se recupera de compra de URL. El código proporciona una comprensión de cómo utilizar la dirección URL única, pero debe comprender las siguientes consideraciones:

• Cuando una URL única, como / pyservices/shopping/cart/122343, se devuelve, el cliente añade el identificador / caja. Usar una dirección URL nonappended requerirá la dirección URL a aceptar POST y GET las solicitudes de varias estructuras de datos, y que no serían compatibles con REST. Por el lado del cliente, añadiendo un identificador no es una gran cosa, pero en el servidor, se convierte en un gran problema, como veremos en breve.

• El ejemplo de página HTML no incluye el código para buscar, explorar y añadir elementos a la página HTML. Puede usar dos soluciones: Inyección de contenido o un iframe. Usando una inyección de contenido, los artículos del catálogo serían trozos de código HTML que se añade a la página HTML que utiliza la propiedad innerHTML. El otro enfoque es usar un iframe flotante, lo que le permite separar la presentación de los elementos de catálogo de la manipulación.

• En el caso de la cesta de la compra, el propietario de la dirección única es el cliente. Esto plantea la pregunta: "Si los usuarios presionan la actualización de la página, ¿cómo van a recordar lo que se hace referencia a?" El servidor no le dirá al cliente lo único es la dirección. Los clientes pueden gestionar este cliente que utiliza las cookies de lado, como se ilustra en breve.

Hacer el seguimiento de URL únicas

Normalmente, los marcos de aplicación Web utiliza cookies para mantener un servidor de objetos de sesión de lado. Aunque podría parecer que el servidor de objetos de sesión del lado resolver muchos problemas, que en realidad puede causar muchos problemas. Digamos que usted está escribiendo una arquitectura orientada a servicios (SOA) de cliente que utiliza los servicios Web en ninguna parte de la documentación de servicios Web ¿Alguna vez encontrarás instrucciones sobre cómo mantener la sesión, porque así es como se escribe el código. Eliminar el término Servicios Web y el uso de una llamada a procedimiento remoto. Por defecto, una llamada a procedimiento remoto no se acordará de quién llama. Llamadas a procedimiento remoto de esperar que la persona que llama a recordar que, como es el enfoque correcto. Para darle un ejemplo real de por qué es malo el uso del lado del servidor sesiones , digamos que usted está haciendo compras en Amazon.com, y usted decide comprar algunas cosas. Tú no vas a pagar por el contenido de su carrito de la compra, porque su madre ha decidido a comprar todo como un regalo de cumpleaños. En una verdadera tienda de comestibles de vida, tener su madre compra el contenido de su carrito de la compra es tan fácil como la entrega de su carrito de compras.

En Amazon.com, cada usuario recibe un carrito de la compra única. Por lo tanto, que su madre pagar por el contenido, debe crear manualmente una lista que envías por correo electrónico a tu madre. O puede pedir a su madre por su tarjeta de crédito. La primera opción es fácil de hacer, pero es mucho tiempo y "cojo", como se requiere para escribir el contenido de su cesta de la compra y luego tener su agregar los elementos a su carro de compras. Es como si vas a una tienda, llenar el carro, y luego crear una lista de artículos en el carro y la mano de esa lista a tu madre. Su madre entonces tiene que correr alrededor de la tienda de comestibles y llenar su carrito con los mismos elementos para que pueda pagar. La segunda opción no requiere ningún esfuerzo adicional tal, pero sí requiere de su madre confiando en que con su tarjeta de crédito. Estoy seguro que tu madre se confíe en ti, pero probablemente sería incómodo, al igual que nadie. Como puede ver, no hay ninguna opción viable la participación del lado del servidor, la sesión basada en URL.

La única opción viable es dejar de usar el lado del servidor, la sesión basada en URL y empezar a utilizar direcciones URL única con el cliente, la gestión de las referencias a la URL. Uso de clientes gestionados URL exclusivas abre nuevas posibilidades. Por ejemplo, supongamos que se crea un televisor, radio y sistema de sonido y añadir los elementos a un carrito de la compra. Entonces, como un servicio de valor añadido, a promocionar su carrito de compras, y cuando alguien quiere comprar su sistema de sonido super, que sólo paga por el carrito de la compra y no tener que ir alrededor del sitio de búsqueda de los elementos individuales. En teoría, se pueden crear miles de carros de la compra con diferentes configuraciones diferentes. Sin embargo, no se puede hacer ese tipo de valor añadido a día de hoy con el lado del servidor, la sesión basada en URL. Muchos dicen cookies HTTP son malos, pero depende de cómo se utilizan cookies. Considero que las cookies como un papel de apoyo para cualquier tipo de aplicación. Ahora vamos a hablar de cliente-lado y cookies demora una discusión más a fondo "cookie" hasta más adelante en este artículo. No hay ninguna diferencia real entre un cliente o servidor cookie de lado, porque una "cookie" es un símbolo en poder del cliente y se envía en el servidor. El cliente o el servidor puede asignar la contraseña, y en el caso de la cesta de la compra, el cliente deberá asignar la cookie. La cookie que se asigna es la dirección única, y la modificación de código cesta de la compra es el siguiente (tenga en cuenta que sólo el código se ha abreviado para efectos de claridad):

El código en negrita representa el código correspondiente a la gestión de una cookie. En particular, tres como-de-y aún sin definir las funciones se utilizan: createCookie, readCookie, y eraseCookie. Estas tres funciones se usan para escribir, leer y borrar una cookie. Las funciones se han orientado hacia la facilidad de uso, por lo que es lo más simple posible para leer y escribir pares clave-valor. La clave es un nombre de cookie, y el valor es un valor de cookie. La lógica de la función de cookies es la siguiente:

• Cuando se carga la página, los controles utilizando la función Initialize readCookie función para ver si una cookie con un nombre ShoppingCart existe. Si la cookie existe, entonces no es necesario crear una nueva cookie, pero el valor de la cookie debe ser asignado al miembro de datos unique.uniqueURL. Si la cookie no existe, significa que no hay cesta de la compra asociada, y por tanto la unique.getIt función debe ser llamada.

• Si una "cookie" tiene que ser recuperado mediante el método de unique.getIt, entonces cuando se genera la dirección única, se llama el unique.haveIt método. En la aplicación de unique.haveIt, la ShoppingCart cookie se asigna el valor de la miembro de datos unique.uniqueURL con un vencimiento de dos días.

• Cuando el carrito de la compra haya sido pagado y una dirección URL única se genera, la cookie se borra existentes utilizando la función eraseCookie. La aplicación de las rutinas cookie manipula el objeto document.cookie. Los rendimientos document.cookie objeto aplicable a todas las cookies del dominio actual. El código siguiente muestra la aplicación de la Cookie2 funciones:

createCookie función (nombre, valor, días) (if (días) (var date = new Date (); date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000)); var expires = " ; expires = "+ date.toGMTString ();) else var expires =" "; document.cookie = nombre +"="+ valor + expira + "path = /";ReadCookie) function (nombre) (var nameEQ = name + "="; var ca = document.cookie.split (';');for (var i = 0; i <ca.length; i + +) (var c = ca [i], mientras que (c.charAt (0) == '') c = c.substring (1, c.length); if (c.indexOf (nameEQ) == 0) return c.substring (nameEQ.length, c.length);) return null;) eraseCookie función (nombre) ( createCookie (nombre ,"",- 1);)

El código en negrita se muestra cómo se manipula el objeto document.cookie. La manipulación es bastante peculiar y completamente heterodoxo. En la aplicación de createCookie, un buffer se crea y luego se asigna a document.cookie. Normalmente una asignación a un miembro de datos se restablece el valor del miembro de datos. No sucede así con el miembro de datos document.cookie. Asignación de el miembro de datos o bien crea una nueva cookie o vuelve a asignar el valor de una cookie existente.

En la aplicación de createCookie, los días de asignar un parámetro de tiempo para que la cookie que se crea, lo que indica que la cookie expira. Si la cookie y el createCookie función no se asocian con una fecha y hora, entonces la cookie expire el momento en que el navegador está cerrado. Al leer el document.cookie miembro de datos, las cookies aplicables al ámbito cargado y el documento se recuperan. El siguiente podría ser un ejemplo de valor de document.cookie:

cc = valor1; = ShoppingCart / pyservices / shopping / carro / toRedirected

El valor de document.cookie es problemático, porque es una cadena que contiene varias cookies. Para encontrar una sola cookie, la cadena tiene que ser analizada. La aplicación de readCookie gestiona automáticamente el análisis y recupera el valor de un identificador de cookie en particular. EraseCookie La función utiliza la función de createCookie para eliminar una cookie. De nuevo, esto es poco ortodoxo, pero utiliza la funcionalidad en la asignación de una fecha de vencimiento a una cookie se eliminará automáticamente la cookie.

un artículo presentado por Sonja Lande


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "Implementación de una cesta de compra con Ajax" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 264 users browsing the articles directory