Preferiría decir que es todo lo contrario. Usar setTimeout
y setInterval
correctamente, puede reducir drásticamente el uso de la CPU de los navegadores. Por ejemplo, usar setTimeout
en lugar de usar un bucle for
o while
no solo reducirá la intensidad del uso de la CPU, sino que también garantizará que el navegador tenga la oportunidad de actualizar la cola de la interfaz de usuario con más frecuencia. Por lo tanto, los procesos en ejecución no se congelarán y bloquearán la experiencia del usuario.
Pero en general, usar setInterval
realmente me gusta mucho en su sitio puede ralentizar las cosas. 20 intervalos de ejecución simultáneos con trabajos más o menos pesados afectarán el espectáculo. Y de nuevo ... realmente puedes estropear cualquier parte Supongo que no es un problema de setInterval
.
... y, por cierto, no es necesario comprobar el hash de esa manera. Hay eventos para eso:
onhashchange
se dispararán cuando haya un cambio en el hash.
window.addEventListener('hashchange', function(e) {
console.log('hash changed, yay!');
}, false);
realmente depende de la función que se llama y la cantidad de tiempo que especifique. Obviamente, llamar a una función cada 100 milisegundos que tenga 1000 líneas de longitud requerirá una gran cantidad de CPU. – Shaz
En Chrome, la función de intervalo solo se llama una vez por segundo si la pestaña está inactiva, por cierto. Por lo tanto, si su sitio web/aplicación no está activo, es ciertamente amigable para la CPU. – pimvdb
¿Es necesario sondear los cambios? ¿No puede simplemente agregar controladores de clics para todos sus anclajes? – davin