2010-01-15 36 views
5

使用Javascript(或Ajax)我想每10秒連接一個頁面(一個.php頁面)。這將在網頁內的用戶端(瀏覽器)完成。只是,我試圖看到在線用戶。我每天約有1-2位訪客,在我的個人網站上。嘗試每隔10秒打開一個頁面

+5

打開它看一看http://www.google.com/analytics/ – kgiannakakis 2010-01-15 06:05:05

回答

8

使用jQuery$.post()方法:

setInterval(function(){ 
    $.post("getCount.php", function(result) { 
    // do something with result 
    }, "html"); 
}, 10000); 

我假設你有一個很好的理由來查詢自己的本地腳本。如果你想獲得關於誰訪問你的網站的詳細信息,什麼時候以及來自什麼類型的環境(機器,瀏覽器等),我建議你考慮實施類似Google Analytics的東西。

1

此Javascript將每10秒讀取一次usersonline.php頁面並將內容放置到當前網頁上。

<html> 
<head> 
<script> 

var xmlrequest; 

function gotnewdata() 
{ 
    if(xmlrequest.readyState == 4) 
    { 
     document.getElementById("output").innerHTML = xmlrequest.responseText; 
     setTimeout("loadpage();", 10000); 
    } 
} 

function loadpage() 
{ 
    xmlrequest = new XMLHttpRequest(); 
    xmlrequest.open("GET", "usersonline.php", true); 
    xmlrequest.onreadystatechange = gotnewdata; 
    xmlrequest.send(null); 
} 

</script> 
</head> 
<body onload="loadpage();"> 
<h1>My Page</h1> 
<p>USERS ONLINE:</p><p id="output"></p> 
</body></html> 
+1

這有三個問題。 1)內聯事件附件是不好的形式並存在問題,2)將實際函數傳遞給'setTimeout'而不是字符串是更可取的,因爲它不涉及隱式的eval,3)這在IE中不起作用該環境中不存在「XMLHttpRequest」。 – 2010-01-15 06:52:13

1
<html> 
<body> 
<form target='userCountFrame' action='http://www.google.com'></form> 
<iframe name='userCountFrame'></iframe> 
<script> 
setInterval(function(){ 
    document.getElementsByTagName('form')[0].submit(); 
}, 10 * 60 * 1000); 
</script> 
</body> 
</html> 

更改URL因此,保存在桌面上,上面的代碼爲count.html,並使用Firefox

相關問題