javascript - regresivo - Función de llamada con setInterval en jQuery?
setinterval javascript español (4)
Estoy intentando crear una llamada de intervalo a una función en jQuery, ¡pero no funciona! Mi primera pregunta es, ¿puedo mezclar JavaScript común con jQuery?
¿Debo usar setInterval("test()",1000);
o algo como esto:
var refreshId = setInterval(function(){
code...
}, 5000);
¿Dónde pongo la función a la que llamo y cómo activo el intervalo? ¿Es una diferencia en cómo declarar una función en JavaScript en comparación con jQuery?
setInterval (function () {updatechat ();}, 2000);
función updatechat () {alert (''hola mundo''); }
En primer lugar: Sí, puedes mezclar jQuery con JS común :)
La mejor manera de crear una llamada intervall de una función es usar el método setTimeout:
Por ejemplo, si tiene una función llamada prueba () y desea repetirla todos los 5 segundos, podría construirla así:
function test(){
console.log(''test called'');
setTimeout(test, 5000);
}
Finalmente tienes que activar la función una vez:
$(document).ready(function(){
test();
});
Esta función de documento listo se llama automáticamente, después de cargar todo el HTML.
Para escribir el mejor código, debe "usar" este último enfoque, con una referencia de función:
var refreshId = setInterval(function() {}, 5000);
o
function test() {}
var refreshId = setInterval(test, 5000);
pero tu enfoque de
function test() {}
var refreshId = setInterval("test()", 5000);
también es básicamente válido (siempre que test()
sea global).
Tenga en cuenta que realmente no hay tal cosa como "en jQuery". Todavía estás escribiendo el lenguaje Javascript; solo estás usando algunas funciones prefabricadas que son la biblioteca jQuery.
jQuery es solo un conjunto de ayudantes / bibliotecas escritas en Javascript. Aún puede usar todas las funciones de Javascript, por lo que puede llamar a cualquier función, también desde dentro de las devoluciones de llamadas jQuery. Así que ambas posibilidades deberían estar bien.