claudiosanches / woocommerce-correios

Correios shipping to the WooCommerce WordPress plugin
http://wordpress.org/plugins/woocommerce-correios/
GNU General Public License v2.0
155 stars 96 forks source link

Erro ao clicar várias vezes em calcular frete #13

Closed brferreira closed 10 years ago

brferreira commented 10 years ago

A ferramenta de calcular frete tem um problema: ao clicar mais de uma vez, aparecem o mesmo número de vezes os valores calculados. Como exemplo, segue a screenshot:

image

Estou utilizando a versão 2.0.2, baixada diretamente do painel de controle do wordpress

claudiosanches commented 10 years ago

Provavelmente é algum problema com o seu tema, veja ai para corrigir ele. O conteúdo é limpo toda vez que é clicado no botão de calcular: https://github.com/claudiosmweb/woocommerce-correios/blob/master/assets/js/simulator.js#L26

brferreira commented 10 years ago

Errado. A chamada para limpar o conteúdo é feita antes da chamada .ajax(). Se o botão for clicado novamente antes de a call assíncrona ser completada, ele limpará o conteúdo, que já estará vazio e terão duas calls assíncronas na fila. Quando forem executadas, o resultado será adicionado duas vezes. O correto é a limpeza ser feito dentro da callback do .ajax()

claudiosanches commented 10 years ago

O conteúdo precisa ser limpo para o "loading..." ter sentido também. Mais tarde vejo de melhorar isso.

brferreira commented 10 years ago

Alterei a proposta. Desta vez, quando o botão é clicado, é definida uma flag que só será zerada quando a operação assíncrona for concluida.

claudiosanches commented 10 years ago

Então, a minha ideia é quase isso. Quero impedir de tentar conectar de novo para cotar o frete enquanto estiver calculando.

brferreira commented 10 years ago

Poderia reabrir #14 ?

claudiosanches commented 10 years ago

@shirayukikitsune acabei de arrumar. Agora quando clica o botão é desativado enquanto esta fazendo o request, desta forma impede do cliente ficar clicando muitas vezes. Porque quando o cliente faz isso é um problemão, vai ficar fazer o servidor enviar mais de uma requisição ao mesmo tempo. Obrigado por me avisar sobre isso e também pela contribuição.