Aquí está mi problema. Tengo esta función para probar servidores proxy.¿Por qué mi llamada de función que debería ser programada por setTimeout se ejecuta inmediatamente?
function crawl() {
var oldstatus = document.getElementById('status').innerHTML;
document.getElementById('status').innerHTML = oldstatus + "Crawler Started...<br />";
var url = document.getElementById('url').value;
var proxys = document.getElementById('proxys').value.replace(/\n/g,',');
var proxys = proxys.split(",");
for (proxy in proxys) {
var proxytimeout = proxy*10000;
setTimeout(doRequest(url,proxys[proxy]), proxytimeout);
}
}
Quiero la función 'doRequest()' que se llamará en aproximadamente 10 segundos de intervalo, pero incluso con el setTimeout() las funciones se llaman inmediatamente.
Cualquier idea es bienvenida, gracias.
PD: Incluso si pongo un valor arbitrario para 'proxytimout' no tiene ningún efecto.
Corrígeme si me equivoco, pero como esto sucede dentro de un ciclo, el segundo método que hayas dado no funcionará. El valor de 'proxy' cambiará porque no se ha creado ningún cierre. – nickf
@nickf: estaba a punto de decir eso. Además, la tercera opción infringe 'eval is evil'. – SLaks
@nickf, eres cierto, pasé por alto ese punto. He actualizado mi respuesta. –