Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

301
Visualizações
¿Cómo puedo retrasar la solicitud del servidor si se envía repetidamente en Reactjs?

Tengo una entrada de casilla de verificación para una aplicación de lista de tareas pendientes y, cuando marco la tarea como realizada, se enviará una solicitud al servidor para actualizarla, pero creo que puede ralentizar el servidor, ya que puede marcar y desmarcar la ingrese repetidamente, ¿hay alguna forma de retrasar las solicitudes? por ejemplo, 300 ms después de cambiar la casilla de verificación aquí está mi código

 const [todos, setTodos] = React.useState([]); const completedOnChangeHandler = (e, id) => { const x = e.target.checked; console.log(x); axios .patch(`http://127.0.0.1:8000/todo/todos/${id}/`, { completed: x, }) .then( (response) => { console.log(response.data); setTodos([response.data]); }, (error) => { console.log(error); } ); }; return ( <form> {todos.map((todo) => ( <ul key={todo.id}> <li>{todo.title}</li> <li>{todo.description}</li> <button>delete</button> <input type="checkbox" placeholder="completed" onChange={(e) => completedOnChangeHandler(e, todo.id)} checked={todo.completed} /> </ul> ))} </form> ); }; export default Form;
about 4 years ago · Santiago Gelvez
3 Respostas
Responde à pergunta

0

Debe recuperar la solicitud y deshabilitar la casilla de verificación mientras la solicitud está en curso para evitar una condición de carrera. Aquí hay un ejemplo de una función de rebote:

 function debounce(func, timeout = 300){ let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, timeout); }; } function saveInput(){ console.log('Saving data'); } const processChange = debounce(() => saveInput());

O puede usar lodash/debounce, si el paquete lodash está disponible en su proyecto.

about 4 years ago · Santiago Gelvez Relatório

0

Puede usar la función de eliminación de rebote de lodash o, si no desea agregar toda la biblioteca a su proyecto, puede usar: lodash.debouce

Puede establecer la cantidad de tiempo que desea entre solicitudes y lo administrará por usted.

about 4 years ago · Santiago Gelvez Relatório

0

Quizás podría declarar una variable/estado que contenga la hora de la última vez que se verificó su entrada.

Cada vez que el usuario verifica la entrada, compara la hora actual con la última vez que se verificó su entrada. Si el delta es superior a 300 ms, envíe su solicitud http.

Puede usar el módulo Date con el método Date.now() . Este método devuelve el número de milisegundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC.

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda