Como desativar ligações AJAX-y antes página Javascript prontos para lidar com eles?
-
22-08-2019 - |
Pergunta
Estou implementando um carrinho de compras para o meu site, usando um efeito pseudo-AJAX Lightbox-esque. (Na verdade, não chamar o servidor entre os pedidos -. Tudo é apenas a magia Prototype para atualizar os valores exibidos)
Há também um comportamento fallback semi-graciosa para usuários sem Javascript: se eles clique em Adicionar ao carrinho eles são levados para um (offsite, menos desejável-interação) carrinho.
No entanto, um usuário com Javascript habilitado que carrega a página e, em seguida, imediatamente sucessos adicionar ao carrinho fica levado para fora da página, também. Eu gostaria de ter o Javascript apenas atrasá-los por um tempo, em seguida, executar o comportamento show de carrinho, uma vez que está pronto. Em alternativa, apenas ignorando totalmente cliques antes do Javascript está pronto é provavelmente viável também.
Todas as sugestões?
Solução
Agora eu fazer isso com jQuery b / c Lembro-me vagamente diferenças navegador que jQuery cuida de:
Tente
$ (document) .ready (function () { // colocar toda a bondade sua jQuery aqui. });
Outras dicas
é o código que realmente lento que este é um problema? Eu estaria disposto a apostar que ninguém vai estar comprando o seu produto que logo após o carregamento da página. Em qualquer caso razoável, o usuário irá esperar a página carregar antes de interagir com ele, especialmente para algo como uma compra.
Mas, para responder à sua pergunta original, você pode desativar os links no código normal, em seguida, reativar-los usando uma chamada document.observe("dom:loaded", function() { ... })
.
Você pode tentar, escondendo as ligações em css, em seguida, mostrar-lhes quando a página é carregada.
<script type="text/javascript">
document.write('<link rel="stylesheet" type="text/css" href="someCssThatHidesLinks.css" />');
window.onLoad = function() {
//show links
}
</script>
Desta forma, se o usuário não tem javascript, então suas ligações ainda estão ativos, caso contrário, se o fizerem, então as ligações estão escondidos até que você carregar e ativá-los. Nunca fiz isso antes, mas eu acho que isso deve funcionar se você quiser manter as características de sua página à prova de falhas.
No entanto, um usuário com Javascript habilitado que carrega a página e, em seguida, imediatamente sucessos adicionar ao carrinho fica levado para fora da página, também.
Quando você está começando-se seus scripts? Se você estiver usando onload documento, ele estará esperando por todas as imagens para download antes de inicializar, o que seria, de fato dar ao usuário a chance de click-to-buy.
Se você acionar o reforço JS quando o DOM está pronto, seja por apenas colocando seu