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

131
Visualizações
¿setTimeout en KeyDown puede afectar el rendimiento?

Con la ayuda de un miembro de Stack Overflow, obtuve un código para tener accesos directos usando Keydown.

¿Cómo comprobar si jQuery .keydown() tiene otras teclas presionadas o no?

El código usa la función setTimeout para cada evento de pulsación de tecla. Lo estoy usando en una página donde los usuarios suelen escribir más de 1000 palabras. (4k-5k caracteres supongo)

Esto significa que Keydown se ejecutará en todas esas pulsaciones de teclado de 5k y los nuevos tiempos de espera comenzarán muchas veces.

 var NewKeys = {}; var NewTimeout; jQuery(document).keydown(function (e) { if (NewTimeout) { clearTimeout(NewTimeout); } NewKeys[e.which] = true; NewTimeout = setTimeout(function () { if (typeof NewKeys[17] !== "undefined" && typeof NewKeys[83] !== "undefined" && Object.keys(NewKeys).length === 2) { e.preventDefault(); if(!jQuery('.SearchCreations').hasClass('Show')){ e.preventDefault(); jQuery('.SaveCreation').click(); } } if (typeof NewKeys[27] !== "undefined" && Object.keys(NewKeys).length === 1) { jQuery('.Thumbnail.Close').click(); jQuery('.Action').removeClass('Collapse'); } if (typeof NewKeys[16] !== "undefined" && typeof NewKeys[17] !== "undefined" && typeof NewKeys[83] !== "undefined" && Object.keys(NewKeys).length === 3) { e.preventDefault(); if(jQuery('.CreationEditor').hasClass('Autosaving')){ jQuery('.StopSave').click(); } else{ jQuery('.AutoSave').click(); } } }, 200); });

¿Puede esto afectar el rendimiento/la confiabilidad para el usuario final?

Lo último que desea hacer es tener una página web que consuma tantos recursos que el dispositivo de su usuario deje de funcionar correctamente.

Probé este código en una computadora portátil de 6 a 7 años (i5, 4 GB de RAM, Windows 10). Noté que si sigo usando la página funciona bien. Pero si cambio de ventana a alguna otra aplicación usando Alt + Tab y vuelvo al navegador en unos 5-7 segundos a mi sitio, las teclas de acceso directo dejarán de funcionar.

Puedo confirmar que este comportamiento es consistente y es reproducible en múltiples máquinas con Windows 10 a partir de ahora.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto depende en gran medida de su valor de tiempo de espera y también de la velocidad de su escritura. Por ejemplo, su tiempo de espera es 3 y escribe 5 letras en segundo. Entonces terminará con 15 funciones que se ejecutan simultáneamente.

Está bien, pero cuando usa un tiempo de espera más largo, como quizás 10 segundos y su velocidad es de 10 letras/segundo, entonces tendrá 100 funciones ejecutándose al mismo tiempo, lo cual no es apropiado.

Especialmente si intenta realizar tareas más pesadas que cambiar de clase y algunas manipulaciones de DOM.

about 4 years ago · Juan Pablo Isaza 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