Implementar um Ajax carrinhoTele o foco deste artigo é explicar como criar aweb aplicação que implementa um carrinho de compras. Um carro de shopping é uma coisa pessoal, ainda não está disponível para todos. Este artigo passa por problemas de manipulação de ambos os dados pessoais e públicas. Este artigo aborda os seguintes tópicos:
• Compreender as diferenças entre uma URL pessoal e uma URL geral • Controlar o acesso a uma URL pessoal • Saber quais verbos HTTP para usar com um URL pessoal • Utilizar Asynchronous JavaScript e XML (AJAX) para recuperar uma URL pessoal Problema Pretende implementar um carrinho de compras robusto em seu aplicativo da Web para que o acesso dos dados, que podem ser públicos ou privados, é coerente e direto. Nota Este artigo descreve dois exemplos: um carrinho de compras e um banco de informações da conta. Ambos os exemplos ilustram o problema comum de identidade e de personalização. Teoria Quando você vai a um supermercado, você pega um carrinho de compras. O carrinho de compras é um dos milhares de idêntica aparência carrinhos de compras. No identificador no carrinho de compras torna distinguível de outro carrinho de compras. Um carrinho de compras não é como uma chave, porque a chave é original de uma outra chave, devido à sua forma. A singularidade do carrinho de compras não é definida por o carro real, mas os itens que você coloca no carrinho e plano de compra. Na Europa, esta singularidade é crítica porque os europeus tendem a comprar em seções. Eles encontram um local para estacionar o seu carrinho de compras e, em seguida, encontrar o que necessitam, levar esses itens de volta para o carro, e colocá-los no carro. Eles pegam um caçador-coletor e abordagem, onde a vítima é o alimento no supermercado. Há literalmente centenas de carros, sem donos, mas as pessoas não levam o carro errado, nem começar a tirar coisas dos carros de outras pessoas, 1 nem a pé com o carrinho de alguém de propósito. Digo "de propósito" porque as pessoas fazem, ocasionalmente, cerca de 10 pés com carro de outra pessoa antes de perceber, "Oops, estes não são os meus itens." Olhando para isso de uma perspectiva abstrata, o carrinho de compras tornou-se personalizada, mesmo que ela se torna compras novamente quando a pessoa é feita de genéricos. Carrinhos de compras da Web não são implementadas como carrinhos de compras na vida real. No site aweb, você pode ter apenas um carrinho de compras. Na vida real, você poderia andar com carrinhos de compras múltiplas (que, na verdade, eu fiz). No site aweb, você não pode abrir mão do seu carrinho de compras para outro usuário. Na vida real, você pode dar o seu carrinho de compras para alguém. Do ponto de vista de um programador, um carrinho de compras no site aweb está associado com um usuário e requer gerenciar os detalhes de um indivíduo. Na vida real, a partir da perspectiva de uma caixa, nenhuma informação pessoal é trocado. A realidade da Web baseado em carrinhos de compras é que eles associam os dados gerais, tais como o item que está sendo comprado, com um usuário específico Part. Do problema com a implementação atual de carrinhos de compras é que os aplicativos da Web não é possível distinguir URLs a partir de um outro. Carrinhos de compras são implementadas usando tecnologias que tornam a carrinhos de compras difícil de gerir. Vejamos outra situação que é semelhante a um carrinho de compras. Uma conta bancária é semelhante a um carrinho de compras em que todos podem ter uma conta ea conta bancária pode ser manipulado da mesma forma que um carrinho de compras. A grande diferença entre um carrinho de compras e uma conta bancária é que uma conta bancária requer autorização. Vamos dizer que um banco aweb cria aplicação que permite aos usuários acessar suas contas bancárias através da Internet. Usando as tecnologias atuais, o aplicativo permite aos usuários acessar suas contas usando o mesmo URL e em seguida, pede-lhes para se autenticar. Com base na autenticação, os usuários ver todas as informações da conta bancária é a eles associados. • Um usuário pode usar apenas um conjunto de dados, porque não há nenhuma maneira para que um administrador de existir: Por exemplo, um usuário com várias contas não seria capaz de acessar todas as contas, a menos que você escrever código que agrega as contas controladas. Usando um URL exclusivo com serviço de malha, os usuários podem agregar as contas de si. • A segurança é colocar nas mãos do desenvolvedor do aplicativo da Web: O desenvolvedor do aplicativo da Web deve adicionar obstáculos para garantir que apenas pessoas autorizadas têm acesso a certas informações. Tudo demasiado frequentemente, entretanto, as barreiras podem resultar em problemas de segurança. Segurança HTTP é bem conhecida, bem definidas e estáveis, e aqueles que controlam os administradores de TI estão bem conscientes de quaisquer falhas de segurança. Programmers, embora capazes e inteligentes, não são especialistas em segurança. Solução A solução para tanto o carrinho e os problemas de conta bancária é a utilização de URLs únicas. Por exemplo, o carrinho de compras pode ser URL / shoppingcart/12324, ea conta bancária pode ser / bankaccount / maryjane. Muitas pessoas poderiam impedir nesta solução, porque isso significa que cada usuário terá URL exclusivo e gerenciamento de URLs únicas adiciona complexidade. Por exemplo, imagine mandar um e-mail que diz: "Ei, comprar isso, e você começará com 1.000 pontos creditados em sua conta bancária." Você deve estar se perguntando: "O URL será enviado no e-mail?" Execução de URLsUnique URLs pode ser determinada antes do tempo, ou eles podem ser gerados dinamicamente. De um modo geral, você estará controlando três tipos de URL, definida como segue: • URL RootO objectivo da raiz da URL é proporcionar um contexto para a acção e URLs únicas. A raiz não pode ser o URL de ação. Imagine uma situação em que você deseja obter uma listagem de todos os carrinhos de compras disponíveis. Se a raiz é o URL de ação de URL, um URL exclusivo seria devolvido sempre que a URL raiz é consultado. • Acção URL: Uma ação de URL, como / carrinho / recuperar, o URL é referenciado pelo cliente. Dependendo dos verbos com suporte, uma referência a um único URL é devolvido. No caso do carrinho de compras, o verbo apenas suportado pelo servidor é GET, o que gera uma URL exclusivo quando chamado. No caso da conta bancária, a ação de URL suporta o verbo POST, que gera a URL exclusivo quando chamado. Os verbos PUT e DELETE não são suportadas, porque eles não têm nenhum significado. • URL original: No caso do carrinho de compras, um identificador de URL como / cart/12345 tem um identificador numérico anexada depois da URL raiz do aplicativo de carrinho de compras. Um URL exclusivo não precisam ter um identificador numérico anexado, mas pode ser alfanumérico ou algum outro tipo de identificação. Um URL exclusivo pode suportar todos os verbos HTTP e depende inteiramente do contexto. Cada URL exclusivo gerado não tem de ser idêntica em estrutura. Por exemplo, um aplicativo pode usar os dois URLs / cart/12234 e / big/cart/12/first. As URLs geradas exclusivamente não precisa ser monitorado pelo servidor, e muitas vezes são de responsabilidade do cliente. O servidor só precisa acompanhar o URL único para efeitos de eliminação. Por exemplo, se o carrinho de compras não tenha sido utilizada durante um determinado período de tempo, o servidor exclui-lo. Algoritmos, o desafio consiste em converter o URL de ação em um único URL. Uma forma de resolver o problema é criar uma solicitação HTTP e, em seguida, definir a URL original na resposta. O protocolo HTTP 1.1 fornece os meios para redirecionar o URL de ação para a URL original. No protocolo HTTP falar, isso é chamado realizar um redirecionamento. Compreender o redirecionamento de HTTP Redirecionamento HTTP é um protocolo de handshaking. O cliente faz um pedido, eo servidor recebe e processa o pedido. Se o servidor indica um redirecionamento estiver em ordem, então um código de status HTTP no intervalo de 300 é retornado. Ao receber o código de status 300-gama, o cliente inspeciona a resposta e pode agir por carregar o URL redirecionado. O seguinte é um exemplo de conversa HTTP que executa um redirecionamento HTTP. Como de costume, um cliente faz um pedido HTTP: GET / recurso / HTTP/1.1 Accept: * / * Accept-Language: en Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pt) AppleWebKit/412.6.2 (KHTML , like Gecko Conexão Safari/412.2.2): manter viva-Host: 192.168.1.242:8100 O URL / recurso é reconhecido pelo servidor HTTP como um URL genérico que irá redirecionar para um URL específico quando chamado. O servidor HTTP responde com um HTTP 302 para indicar um redirecionamento, como ilustrado pelo seguinte resposta HTTP: HTTP/1.1 encontrados 302 Data: Ter, 05 Sep 2005 16:29:04 GMT Server: Apache/2.0.53 (Ubuntu) PHP / 4.3.10-10ubuntu4 Localização: / resource / joesmith Content-Length: 346 Keep-Alive: timeout = 15, max = 100 Connection: Keep-Alive Content-Type: text / html; charset = ISO-8859-1 No exemplo, o URL específico enviado para o cliente é definida como / resource / joesmith. Quando o navegador aweb ou um objeto XMLHttpRequest recebe um redirecionamento, o cliente irá reconhecer o redirect e tentar recuperar o conteúdo da URL redirecionada, como ilustra o seguinte pedido final: GET / recurso / joesmith HTTP/1.1 Accept: * / * Accept-Language: en Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en AppleWebKit/412.6.2) ( KHTML, like Gecko Conexão Safari/412.2.2): manter viva-Host: 192.168.1.242:8100 Um redirecionamento HTTP, se executado pelo navegador da Web ou XMLHttpRequest, só pode ser executado se o redirecionamento segue a política de mesma origem. Se um redirecionamento para outro domínio é tentada com XMLHttpRequest, os resultados variam. Por exemplo, o Microsoft Internet Explorer retorna um código de status de 0 e não há dados adicionais. Mozilla browsers baseados retornar o código de status 302 eo URL redirecionada. Embora o uso de redirecionamento de HTTP pode ser eficaz, ele também pode ser problemática do ponto de vista do Ajax. Ao usar o objeto XMLHttpRequest e chamar uma URL que gera um redirecionamento, a URL redirecionada será carregado automaticamente. Isso é ruim porque o roteiro precisa saber qual é a URL redirecionada é, mas o objeto XMLHttpRequest não dá essa URL. Assim, no contexto deste artigo, você não pode usar um intervalo de 300-código de status HTTP. um artigo submetido por Sonja Lande Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Aplicação de um Ajax carrinho" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 205 users browsing the articles directory |
|
|