Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!