setInterval ( "uptime()",1000 ) ; var ut_second = -10; function createXmlHttp() { //ref:http://www.hawk.34sp.com/stdpls/xml/xmlhttprequest.html return this.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); } function flash(n){ var url="/uptime.20060802.php"; var xmlhttp = createXmlHttp(); xmlhttp.onreadystatechange =function(){ if (xmlhttp.readyState == 4) { disptime(xmlhttp.responseText); //h.innerHTML=xmlhttp.responseText; } }; xmlhttp.open("GET",url , true); xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("If-Modified-Since","null"); //ref:http://www.semblog.org/msano/archives/000386.html xmlhttp.send(""); } function disptime(n){ var d = document.getElementById("day"); var h = document.getElementById("hour"); var m = document.getElementById("mini"); var s = document.getElementById("sec"); var sec = n%60; s.innerHTML=sec; ut_second = sec; n = (n-sec)/60; var min = n%60; m.innerHTML=min; n = (n-min)/60; var hou = n%24; h.innerHTML=hou; n = (n-hou)/24; var day = n; d.innerHTML=day; } function uptime(){ ut_second +=1; if(ut_second == -9 || ut_second == 60){ //更新頻度をあげたい場合はここを変更 flash(); //alert("sync"); }else if(ut_second < 0 || ut_second >=60){ //安全策(?)同期に1秒以上かかったりした場合のため flash(); }else{ var s = document.getElementById("sec"); s.innerHTML = ut_second; } }