2013-02-19 5 views
0

iframe을 사용하여 페이지 로딩 시간을 찾으려고합니다. 나는 배열의 iframe 배열에 넣은 urls 배열을 가지고있다. 그리고 나서 자바 스크립트를 사용하여 각 iframe의로드 타임을 얻는다. 내 문제 - 시간 값은 배열이 아니므로 1 값 (첫 번째 프레임의 값을 표시 한 다음 두 번째 프레임의 값을 두 번째 프레임의 값으로 바꿉니다)을 표시합니다. 내가 URL을 ($의 URL)의 배열을이 코드에서 값 배열 대신 단지 하나의 값을 반환하는 자바 스크립트 함수

<html> 
    <body> 
    <center> 
    <?php 
    $url = array('example.com', 'example2.com'); 
    foreach($url as $i){ 
    ?> 
    <iframe onload="pageloadingtime();" width="505" height="505" scrolling="no" security="restricted" src="<?php echo "http://www.".$i; ?> "></iframe> 
    <?php 
    } 
    ?> 
    <div id="loadingtime"></div> 
    </center> 
    </body> 
    <script type="text/javascript">  
    beforeload = (new Date()).getTime(); 
    function pageloadingtime() 
    { 
     afterload = (new Date()).getTime(); 
     secondes = (afterload-beforeload)/1000; 
     document.getElementById("loadingtime").innerHTML = "<font color='red'>(Page took " + secondes + " seconds to load)</font>"; 
    } 
    </script> 
    </html> 

는 URL이만큼의 iframe을 만드는 foreach는 사이클을 실행하고 난 페이지 로딩 시간을 계산 자바 스크립트를 사용하여. 내가 로딩 시간을 얻은 후에 나는 그것을 "loadingtime"div에 넣는다. 하지만 내가 말했듯이, 값의 배열을 넣는 대신 1 개의 값만 넣을뿐입니다. 대신 덮어 쓰기의 상태 DIV에

beforeload = (new Date()).getTime(); 
function pageloadingtime() 
{ 
    var afterload = (new Date()).getTime(); 
    secondes = (afterload-beforeload)/1000; 
    document.getElementById("loadingtime1").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>"; 
} 

답변

1

추가합니다 :

은 이제 표시되지 않는 것도이로 변경뿐만 아니라

document.getElementById("loadingtime").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>"; 

의 로컬로 afterLoadsecondes 선언 함수 :

var afterload = (new Date()).getTime(); 
var secondes = (afterload-beforeload)/1000; 
+0

코드가 변경되었지만 표시가 변경되었습니다. ng 이제는 어떤 값이든, 나는 여기에 코드를 쓰지 않기 때문에 내 포스트를 편집했다. – user1894929

+0

스크립트는/body가 아니라 그 앞에있다. 아마 그거야? – bfavaretto

관련 문제