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

Um comentário 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 *