2014-02-14 2 views
1

Почему моя функция возвращает тот же результат?Получение такого же результата от функции каждый раз

Я хотел бы ввести все значения из функции «ping» в массив и затем вывести этот массив в html. Я запускаю функцию 3 раза, но все три раза результат тот же. Можешь мне сказать почему?

(домены являются всего лишь пример, кстати, не могу ставить оригиналы здесь)

var str = ' '; 
    var t=[]; 
    var n= 2; 
    var arr = ["www.google.com","www.example.com","www.example2.com"]; 
    var results = []; 
    var finalurl = ''; 

    function fun1(){ 

     for (var i=0; i < arr.length; i++){ 
      str = "http://" + arr[i] + "/images/"; 
      finalurl = str + "image-l.gif" + "?id=" + (new Date()).getTime(); 
      ping(finalurl); 
      textt += results[i] + " ";  
      $(‘#ping’).html(textt); 

     } 
    } 


var ping = function(finalurl) { 

    var l = 0; 

    t.push((new Date()).getTime()); 
    if(t.length > n) { 
     p=t[2]-t[1]; 
     results.push(p); 
    } 
    else { 
     var img = new Image; 
     $(img).load(function() { 
     ping(); 
     }).attr('src', finalurl);  
    } 
} 

// небольшая часть HTML:

<h2><a href="#" onclick="fun1();">run</a></h2> 
    <h1 id=“ping”> </h1> 
+0

Вы можете показать ожидаемый выход и фактический выход? – nikis

ответ

0

Это создает три URLs (length из arr), но только попытки показать два (значение n). URL-адреса разные, но вы ограничиваете их в ping, поэтому новые не используются.

Попробуйте установить n на более высокий номер, вы увидите, что он загрузит больше изображений каждый клик - по мере того как он в настоящее время стоит, он пытается загрузить больше за один клик (3), чем позволяет (2).

Примечание: даже если эти URL-адреса отличаются друг от друга, изображения могут быть одинаковыми, это происходит, если сервер игнорирует параметр id ... что, вероятно, делает, так как требует дополнительной настройки для сервера для обработки запросов к ". gif "(который не является известным языком скриптов на стороне серфера) - по умолчанию сервер просто вернет ресурс image-l.gif.

Кстати: у $(‘#ping’) это неправильные цитаты. Также textt не определен - я определил его как var textt = ''; для моих тестов.

Смежные вопросы