L'attuazione di un Ajax Carrello

Tha scopo di questo articolo è quello di spiegare come creare un'applicazione AWeb che implementa un carrello della spesa. Un carrello della spesa è una cosa personale, ma è a disposizione di tutti. In questo articolo si passa attraverso i problemi di gestione sia di dati personali e pubbliche. Questo articolo vengono illustrati i seguenti argomenti:

  

• Comprendere le differenze tra un URL personale e un URL generale

• Controllare l'accesso a un URL personale

• Conoscere quali verbi HTTP da utilizzare con un URL personale

• Utilizzo di Asynchronous JavaScript e XML (AJAX) per recuperare un URL personale

Problema Si desidera implementare un carrello robusto shopping a vostra applicazione Web in modo che l'accesso dei dati, che possono essere pubbliche o private, è coerente e lineare.

Nota In questo articolo si illustra due esempi: un carrello della spesa e di una banca-visualizzare le informazioni account. Entrambi gli esempi illustrano il problema comune di identità e di personalizzazione.

Teoria Quando si va in un negozio di alimentari, si afferra un carrello della spesa. Il carrello è uno delle migliaia di identici-looking carrelli della spesa. N. identificativo sul simbolo del carrello lo rende distinguibile da un altro carrello della spesa. Un carrello della spesa non è come una chiave, perché è una chiave unica da un altro tasto a causa della sua forma. L'unicità del carrello non è definita dal carro reale, ma gli elementi che si inserisce nel carrello e il piano per l'acquisto.

In Europa, questa unicità è fondamentale perché gli europei tendono a shop in sezioni. Trovano un posto per parcheggiare la loro carrello della spesa e quindi trovare ciò di cui hanno bisogno, portare con sé gli elementi Torna al carrello, e metterli nel carrello. Prendono un cacciatore-raccoglitore e di approccio, in cui la preda è il cibo al supermercato. Ci sono letteralmente centinaia di carri senza proprietari, ma la gente non prendere il carrello sbagliato, né si inizia a prendere le cose di carri di altre persone, 1 né a piedi con il carrello di qualcun altro di proposito. Dico "a scopo", perché la gente fa di tanto in tanto a piedi 10 piedi con il carrello di qualcun altro prima di rendersi conto, "Oops, non sono i miei oggetti." Guardando a questo da un punto di vista astratto, il carrello della spesa è diventato personalizzati, anche se diventa generica shopping di nuovo quando la persona è fatto. Shopping carts Web non vengono attuate come carrelli della spesa nella vita reale.

Sul sito AWeb, si può avere solo un carrello della spesa. Nella vita reale, si può andare in giro con carrelli multipli (che, di fatto, l'ho fatto). Sul sito AWeb, non è possibile mano dal tuo carrello a un altro utente. Nella vita reale, si può dare al vostro carrello a nessuno. Dal punto di vista di un programmatore, un carrello della spesa sul sito AWeb è associata ad un utente e richiede la gestione dei dettagli di un individuo. Nella vita reale, dal punto di vista di un cassiere, nessun dato personale viene scambiato. La realtà dei web-based carrelli è che associare i dati generali, come elemento che viene acquistato, con un utente specifico. Parte del problema con l'implementazione corrente di carrelli della spesa è che le applicazioni Web non è in grado di distinguere gli URL di un altro. I carrelli di acquisto sono realizzate attraverso le tecnologie che rendono carrelli della spesa difficile da gestire. Vediamo un'altra situazione che è simile a un carrello della spesa. Un conto in banca è simile a un carrello della spesa in che ognuno può avere un account, e il conto in banca può essere manipolato nello stesso modo come un carrello della spesa. La grande differenza tra un carrello della spesa e un conto in banca è che un conto in banca richiede l'autorizzazione.

Diciamo che una banca AWeb crea un'applicazione che consente agli utenti di accedere ai propri conti bancari da Internet. Utilizzando le tecnologie attuali, l'applicazione consente agli utenti di accedere ai propri account utilizzando lo stesso URL e poi chiede loro di autenticarsi. Sulla base della autenticazione, gli utenti visualizzare tutte le informazioni bancarie è associato con loro.

Un utente può utilizzare un solo set di dati, perché non vi è alcun modo per un amministratore di esistere: Ad esempio, un utente con più account non sarebbe in grado di accedere a tutti i conti, a meno che non si scrive il codice che consente di aggregare i conti controllati. Utilizzando un URL univoco con servizio AWeb, gli utenti possono aggregare i conti stessi.

La sicurezza è nelle mani dello sviluppatore di applicazioni Web: Lo sviluppatore di applicazioni Web devono aggiungere gli ostacoli per garantire che solo le persone autorizzate possano accedere a taluni pezzi di informazioni. Troppo spesso, però, gli ostacoli possono provocare problemi di sicurezza. Sicurezza HTTP è noto, ben definito e stabile, e coloro che gestiscono gli amministratori IT sono ben consapevoli di eventuali buchi di sicurezza. Programmatori, sebbene capace e intelligente, non sono esperti di sicurezza.

Soluzione La soluzione ad entrambi il carrello della spesa e problemi di conto in banca è quello di utilizzare gli URL univoco. Ad esempio, il carrello della spesa URL potrebbe essere / shoppingcart/12324, e il conto in banca potrebbe essere / BankAccount / Maryjane. Molte persone potrebbero esitano a questa soluzione, perché significa che ogni utente avrà URL univoco, e la gestione di URL unici aggiunge complessità. Per esempio, immaginate l'invio di una e-mail che dice: "Ehi, compra questo, e ti vengono accreditati con 1.000 punti nel vostro conto in banca." Forse ti starai chiedendo: "Che cosa URL sarà inviato nella e-mail?"

Attuazione Unique URLsURL unici può essere determinato in anticipo, oppure possono essere generati dinamicamente. In generale, vi saranno tre tipi di gestione di URL, definiti come segue:

Root URL: Lo scopo della radice URL è quello di fornire un contesto per l'azione e gli URL unici. La radice non può essere l'URL di azione. Immaginate una situazione in cui si desidera ottenere un elenco di tutti i carrelli disponibili shopping. Se la radice URL è l'azione URL, un URL univoco verrà restituito quando la radice URL viene eseguita una query.

Azione URL: Un'azione URL, come ad esempio / cart / recuperare, è l'URL di riferimento da parte del cliente. Seconda della verbi sostenuto, un riferimento ad un URL univoco viene restituito. Nel caso del carrello, il verbo supportato solo dal server è GET, che genera un URL univoco quando viene chiamato. Nel caso del conto bancario, il ricorso URL sostiene il verbo POST, che genera l'URL univoco quando viene chiamato. I verbi PUT e DELETE non sono supportati, perché non hanno alcun significato.

Unico URL: Nel caso del carrello della spesa, un URL, come identificatore / cart/12345 ha un identificatore numerico aggiunto dopo l'URL principale dell'applicazione carrello. Un URL univoco non ha bisogno di avere un identificativo numerico aggiunto, ma può essere alfanumerico o qualche altro identificatore. Un URL univoco in grado di supportare tutti i verbi HTTP e dipende interamente dal contesto. Ogni URL generato unico non devono essere identiche nella struttura. Per esempio, una applicazione potrebbe utilizzare entrambi gli URL / cart/12234 e / big/cart/12/first. Gli URL univoco generato non hanno bisogno di essere rintracciate per il server, e spesso sono sotto la responsabilità del cliente. Il server ha solo bisogno di tenere traccia delle URL univoco a fini di Wikipedia. Ad esempio, se il carrello della spesa non è stato utilizzato per un certo periodo di tempo, il server lo elimina. Algoritmica, la sfida consiste nel trasformare l'URL di azione in un URL univoco. Un modo per risolvere il problema è quello di creare una richiesta HTTP e quindi definire l'URL univoco nella risposta. Il protocollo HTTP 1.1 fornisce i mezzi per reindirizzare l'URL di azione per l'URL univoco. Nel protocollo HTTP dire, questo si chiama l'esecuzione di un reindirizzamento.

Comprensione reindirizzamento HTTP

Reindirizzamento HTTP è un protocollo di handshaking. Il client effettua una richiesta, e il server riceve ed elabora la richiesta. Se il server indica un reindirizzamento è in ordine, quindi un codice di stato HTTP nella gamma 300 viene restituito. Dopo aver ricevuto il codice di stato 300-range, il client controlla la risposta e può intervenire caricando l'URL di reindirizzamento. Quello che segue è una conversazione esempio HTTP che esegue un reindirizzamento HTTP. Come al solito, un client effettua una richiesta HTTP:

GET / risorse / HTTP/1.1 Accept: * / * Accept-Language: it Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6.2 (KHTML , like Gecko) Safari/412.2.2 Connection: keep-alive Host: 192.168.1.242:8100 L'URL / risorsa viene riconosciuto dal server HTTP come un URL generico che reindirizza a un URL specifico quando viene chiamato. Il server HTTP risponde con un HTTP 302 per indicare un reindirizzamento, come illustrato dal seguente risposta HTTP: HTTP/1.1 302 Found Date: martedì, 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

In questo esempio, l'URL specifico inviato al client è definito come / risorse / joesmith. Quando entrambi i browser AWeb o un oggetto XMLHttpRequest riceve un redirect, il client riconosce il reindirizzamento e tentare di recuperare il contenuto del reindirizzato URL, come illustrato dal seguente richiesta finale:

GET / risorse / joesmith HTTP/1.1 Accept: * / * Accept-Language: it Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6.2 ( KHTML, like Gecko) Safari/412.2.2 Connection: keep-alive Host: 192.168.1.242:8100

Un reindirizzamento HTTP, se eseguito dal browser Web o XMLHttpRequest, può essere eseguito solo se il reindirizzamento segue la stessa politica di origine. Se un reindirizzamento ad un altro dominio è tentato con XMLHttpRequest, i risultati possono variare. Ad esempio, Microsoft Internet Explorer restituisce un codice di stato 0 e senza altri dati. Browser basati su Mozilla restituire il codice di stato 302 e l'URL di reindirizzamento.

Sebbene l'utilizzo di reindirizzamento HTTP può essere efficace, può anche essere problematico dal punto di vista Ajax. Quando si utilizza l'oggetto XMLHttpRequest e chiamando un URL che genera un reindirizzamento, l'URL reindirizzata verrà caricato automaticamente. Questo è un male perché lo script ha bisogno di sapere qual è il reindirizzata URL è, ma l'oggetto XMLHttpRequest non dà l'URL. Pertanto, nel contesto di questo articolo, non è possibile utilizzare un 300 codice gamma di stato HTTP.

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 "Implementazione di un Ajax Carrello" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 201 users browsing the articles directory   


  

|