Como utilizar setTimeout() para gerenciar interações do usuário

Que tal evitar o “abuso” inconsciente de seus serviços, reduzindo o número de requisições HTTP ou qualquer outro processamento desnecessário causado pela indecisão do usuário? O padrão Submission Throttling trocando em miúdos faz exatamente isso!

cliques-consecutivos

Problema – Um campo autocomplete normalmente espera a digitação mínima de N caracteres até realizar a primeira consulta e trazer a lista de possíveis opções, no entanto o usuário ainda não terminou sua digitação e logo pressiona outra tecla, e outra novamente disparando novas requisições que podem chegar de forma desordenada e outra vez sua aplicação se encontra consumindo mais recursos do que necessariamente precisaria.

A proposta do padrão Submission Throttling é aguardar a finalização das interações do usuário como sinal verde para a execução de uma tarefa.

O pulo do gato é um “desarme” seguido de um “agendamento” de uma determinada ação caso o usuário interaja novamente antes da execução iniciar. Com a implementação ainda temos a vantagem de equipar nossas funções manipuladoras de eventos de forma desacoplada da lógica da aplicação.

Nota: Em JavaScript funções são objetos de primeira classe, sendo assim setTimeout() aceita o parâmetro fn (objeto Function) não sendo necessário fornecer uma string “fn()” e assim evitar um antipadrão que é a avaliação de expressões através da função eval.

Publicado por

Willie Oliveira

Desenvolvedor de interfaces na TQI, bacharel em Ciência da Computação pela UNITRI

2 comentários em “Como utilizar setTimeout() para gerenciar interações do usuário”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *