L'implementazione di un carrello degli acquisti utilizzando Ajax

L'esempio carrello della spesa verrà attuato in forma abbreviata, per scopi spiegazione. La soluzione si concentrerà sulla produzione di l'URL univoco e l'utilizzo di URL unici che al momento di acquistare qualcosa.

  

La prima soluzione

L'esempio seguente illustra il codice sorgente di esempio lo shopping.

 Fonte: / client / articles ajaxrest / architettura / shoppingcart.html  Carrello Initialize ()"> 

Nell'esempio di codice sorgente, il codice in grassetto rappresenta i pezzi di funzionalità che si riferiscono a un uso specifico di UniqueURL. La pagina HTML in un contesto globale che rappresenta la pagina principale che tutti usano per avere un carrello della spesa e acquistare alcuni oggetti. Quando la pagina viene caricata, l'evento body.onload viene attivato, causando la funzione Initialize di essere chiamato. Per l'attuazione del Initialize, unique.getIt si chiama, che si traduce in un URL univoco che rappresenta un carrello della spesa.

Aggiungendo il codice URL univoco per l'evento body.onload, stai sicuro che chiunque visiti la pagina HTML avrà un carrello della spesa a loro disposizione. L'URL generata viene utilizzata ogni volta che gli utenti fanno clic sul pulsante Compralo Subito, attivando la funzione chiamata BuyItems. L'attuazione generale del BuyIt non è importante, perché quello che stai facendo è il distacco ultimi dettagli che restano a comprare qualunque cosa gli utenti hanno aggiunto al carrello. Nella chiamata asynchronous.post metodo, l'URL utilizzato è unique.uniqueURL. Quando l'acquisto ha autorizzato l'attuazione onComplete, il membro uniqueURL dati viene cancellata e una nuova, unica di shopping-cart URL viene recuperato. Il codice fornisce una comprensione di come utilizzare l'URL univoco, ma si deve comprendere le seguenti considerazioni:

• Quando un URL univoco, come / pyservices/shopping/cart/122343, viene restituita, il client aggiunge l'identificatore / checkout. Utilizzando un URL nonappended richiederebbe l'URL di accettare le richieste GET e POST per più strutture di dati, e che non sarebbero conformi REST. Sul lato client, aggiungendo un identificatore non è un grosso problema, ma sul server, lo fa diventare un grosso problema, come sarà discusso a breve.

• La pagina di esempio HTML non include il codice per cercare, navigare e aggiungere elementi alla pagina HTML. È possibile utilizzare due soluzioni: l'iniezione di contenuti o un iframe. Usando l'iniezione di contenuti, gli elementi catalogo sarebbe pezzi di codice HTML che viene aggiunto alla pagina HTML corrente utilizzando la proprietà innerHTML. L'altro approccio è quello di utilizzare un iframe galleggiante, che consente di separare la visualizzazione del catalogo prodotti dalla manipolazione.

• Nel caso del carrello, il proprietario del URL univoco è il client. Ciò solleva la questione: "Se gli utenti premere il refresh di pagina, in che modo ci si ricorda di quello che stavano riferimento?" Il server non lo dirò ai clienti quello che è l'unico URL. I clienti possono gestire il client che utilizza i cookie di lato, come verrà illustrato tra breve.

Tenere traccia degli URL Unique

In genere, i framework applicativi Web utilizzano i cookie per conservare oggetti server-side session. Anche se può sembrare che il server oggetti di sessione lato risolvere molti problemi, essi, infatti, può causare molti problemi. Diciamo che stai scrivendo un service-oriented architecture (SOA) client che utilizza i servizi Web da nessuna parte nella documentazione di servizio Web verrà mai trovato le istruzioni su come mantenere sessione, perché è così che il codice è scritto. Rimuovere il termine Web service e utilizzare una chiamata di procedura remota. Per impostazione predefinita, una chiamata di procedura remota non si ricorderà che la chiamavano. Chiamate di procedura remota si aspettano che l'interlocutore di ricordare che, come tale è l'approccio giusto. Per darvi un esempio reale di questo che è male per l'uso di server-side sessioni , diciamo che stai acquisti su Amazon.com, e si decide di acquistare alcune cose. Non avete intenzione di pagare per i contenuti nel carrello, perché tua madre ha deciso di acquistare tutto come un regalo di compleanno. In un vero e proprio negozio di alimentari della vita, avere il vostro acquisto madre il contenuto del tuo carrello è facile come porgendole il carrello della spesa.

Presso Amazon.com, ogni utente riceve un unico carrello di shopping. Pertanto, per avere tua madre pagare per i contenuti, è necessario creare manualmente un elenco di email a tua madre. Oppure si potrebbe chiedere a tua madre per la sua carta di credito. La prima opzione è facile da fare, ma richiede tempo e "lame", in quanto richiede di scrivere il contenuto del tuo carrello e poi averla aggiungere gli elementi al suo carrello della spesa. E 'come se tu vai in un negozio, riempire il carrello, e quindi creare un elenco di articoli nel carrello e la mano che la lista a tua madre. Tua madre è quindi di correre intorno al negozio di alimentari e riempire il carrello con gli stessi elementi in modo che lei può pagare. La seconda opzione non richiede un tale sforzo supplementare, ma ha bisogno di tua madre fido di te con la sua carta di credito. Sono sicuro che tua madre si fida di te, ma sarebbe probabilmente a disagio, come sarebbe nessuno. Come potete vedere, non è un'opzione praticabile che coinvolgono server-side, session-based URL.

L'unica soluzione possibile è quella di interrompere l'utilizzo sul lato server, basati su sessioni URL e iniziare a usare gli URL univoco con il cliente, la gestione dei riferimenti alle URL. Utilizzando client gestiti URL unici apre nuove possibilità. Ad esempio, supponiamo che si crea una TV, radio, e il sistema audio e di aggiungere le voci di un carrello. Quindi come un servizio a valore aggiunto, a promuovere il tuo carrello della spesa, e ogni volta che qualcuno vuole acquistare il tuo super sound system, si paga solo per il carrello della spesa e non devono andare in tutto il sito trovando le singole voci. In teoria, è possibile creare migliaia di carrelli della spesa differenti con differenti configurazioni. Tuttavia, non si può fare questo tipo di valore aggiunto, oggi, con lato server, basati su sessioni URL. Molti dicono i cookie HTTP sono cattivi, ma dipende da come I cookie sono utilizzati. Ritengo che i cookie come un ruolo di supporto per qualsiasi tipo di applicazione. Ora parliamo di cookie sul lato client e ritardare un discussione più approfondita cookie solo in seguito in questo articolo. Non c'è vera differenza tra un client-side o server-side cookie, perché un cookie è un token in possesso del cliente e inviato al server. Il client o server può assegnare il token, e nel caso del carrello della spesa, il cliente assegnerà il cookie. Il cookie che viene assegnato è l'URL univoco, e il codice modificato carrello della spesa è la seguente (si noti che solo il codice è stato abbreviato per motivi di chiarezza):

Il codice in grassetto rappresenta il Codice in materia di gestione di un cookie. In particolare, tre come-di-ma ancora non definito le funzioni vengono utilizzate: createCookie, readCookie, e eraseCookie. Queste tre funzioni vengono utilizzate per scrivere, leggere ed eliminare un cookie. Le funzioni sono stati orientati verso la facilità d'uso, il che rende più semplice possibile leggere e scrivere le coppie chiave-valore. La chiave è un nome di cookie, e il valore è un valore cookie. La logica della funzionalità cookie è il seguente:

• Quando la pagina viene caricata, la funzione controlla Initialize readCookie utilizzando la funzione per vedere se un cookie con un shoppingcart nome esiste. Se il cookie esiste, allora non è necessario creare un nuovo cookie, ma il valore del cookie deve essere assegnato al membro di dati unique.uniqueURL. Se il cookie non esiste, significa che non vi è associato carrello della spesa e quindi la unique.getIt funzione deve essere chiamata.

• Se un cookie deve essere recuperato utilizzando il metodo unique.getIt, poi quando l'URL univoco viene generato, il unique.haveIt metodo viene chiamato. Per l'attuazione del unique.haveIt, il shoppingcart cookie viene assegnato il valore del membro di dati unique.uniqueURL con una scadenza di due giorni.

• Quando il carrello della spesa è stata pagata e un nuovo URL univoco viene generato, il cookie viene cancellato esistenti utilizzando la funzione di eraseCookie. L'implementazione delle routine cookie manipola l'oggetto document.cookie. I rendimenti oggetto document.cookie tutti i cookie applicabile al dominio corrente. Il codice seguente mostra l'esecuzione del Cookie2 funzioni:

createCookie function (name, value, days) (if (days) (var data = new Date (); date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000)); var expires = " ; expires = "+ date.toGMTString ();) var else expires =" "; name = document.cookie +"="+ 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 return (nameEQ.length, c.length);) return null;) eraseCookie function (name) ( createCookie (nome ,"",- 1);)

Il codice in grassetto illustra come l'oggetto document.cookie viene manipolato. La manipolazione è assai peculiare e del tutto non ortodosse. Per l'attuazione del createCookie, un buffer viene creato e poi assegnato a document.cookie. Di solito un incarico di un membro di dati reimposta il valore del membro di dati. Non è così con il membro dati document.cookie. Assegnare il membro dati o crea un nuovo cookie o riassegna il valore di un cookie esistente.

Per l'attuazione del createCookie, il giorno parametro assegnare un tempo per il cookie viene creato, che indica che il cookie scade. Se il cookie e la createCookie funzione non sono associati a una data ora, poi il cookie che scade il momento in cui il browser viene chiuso. Durante la lettura del document.cookie membro dati, i cookie applicabili al settore attualmente caricati e documento vengono recuperati. Il seguente potrebbe essere un esempio di valore document.cookie:

cc = value1; = shoppingcart / pyservices / shopping / cart / toRedirected

Il valore di document.cookie è problematico, perché è una stringa che contiene più cookie. Per trovare un singolo cookie, la stringa deve essere analizzato. L'attuazione del readCookie gestisce automaticamente l'analisi e recupera il valore di un particolare identificativo cookie. EraseCookie La funzione utilizza la funzione createCookie per eliminare un cookie. Ancora una volta, questo è poco ortodosso, ma utilizza la funzionalità di cui assegnare una data di scadenza di un cookie cancellerà automaticamente il cookie.

un articolo presentato da Sonja Lande


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "L'implementazione di un Carrello con Ajax" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 390 users browsing the articles directory