2013-03-04 1 views
0

У меня есть скрипт, который ставит URL-адреса из файла txt в iframe, а затем проверяет время загрузки каждого источника. Если у меня есть 4urls в моем txt-файле, я получаю 3 результата, которые достаточно хороши для меня, но 1 результат всегда слишком короткий (говорит, что рамка загружена через 0,016 секунды или около того, где другие занимают 1-4 секунды для загрузки). Если я удалю другие URL-адреса из своего списка и оставляю только тот, который дает плохую ценность, а затем запускает мой скрипт - я получаю нормальное значение (несколько секунд для загрузки).Время загрузки iframe с несколькими источниками, 1 значение всегда плохо

Хереса им сценарий говорит:

<script type="text/javascript"> 
    $.get("imones.txt", function (data) { 
     var array = data.split(/\r\n|\r|\n/); 
     var beforeloadingtime = (new Date()).getTime(); 
     var beforeTime = []; 
     beforeTime[0] = beforeloadingtime; 
     $.each(array, function (index, value) { 
      var jsonnuorodos = "http://anyorigin.com/get?url=" + array[index] + "&callback=?"; 
      $.getJSON(jsonnuorodos, function (data) { 
       var iframe = $("#frame_id")[0]; 
       var doc = iframe.document; 
       if (iframe.contentDocument) { 
        doc = iframe.contentDocument; 
       } else if (iframe.contentWindow) { 
        doc = iframe.contentWindow.document; 
       } 
       doc.open(); 
       doc.writeln(data.contents); 
       doc.close(); 
       var loadingtime = (new Date()).getTime(); 
       beforeTime.push(loadingtime); 
       for (i = 0; i < array.length; i++) { 
        var result; 
        result = (beforeTime[i + 1] - beforeTime[i])/1000; 
        $("#loadingtimediv" + i).html(result); 
       } 
      }); 
     }); 
    }); 
</script> 

Почему я получаю эту inacurate результата при запуске моего сценария, когда я иметь несколько адресов?

Редактировать: я думаю, что мой скрипт действительно не дождался, пока 1 URL-адрес полностью загрузится, прежде чем добавлять следующий, может ли это быть причиной получения ложных результатов?

ответ

1

Результат может быть точным. Браузеры обычно загружают сразу несколько ресурсов. Нет никаких оснований полагать, что файлы будут загружаться последовательно или даже в том порядке, в котором вы их запрашиваете. (Представьте себе все различные файлы, которые необходимо загрузить, чтобы отобразить веб-страницу: CSS, JS, изображения, рамки ...)

Если вы хотите подтвердить, ваш браузер, вероятно, имеет сетевую отладку. Например, в инструментах разработчика Chrome есть вкладка в сети, которая сообщит вам время запроса и ответа с сервера.

Или попробуйте протоколировать разницу между временем загрузки и каждым временем завершения загрузки, а не разницей между одной загрузкой и предыдущей.

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