2010-01-15 20 views
5

जावास्क्रिप्ट (या अजाक्स) का उपयोग करना मैं एक पृष्ठ (.php पेज) हर 10 सेकंड से कनेक्ट करना चाहते खोलने का प्रयास करें। यह एक वेब पेज के भीतर उपयोगकर्ता-पक्ष (ब्राउज़र) में किया जाएगा। बस, मैं ऑनलाइन उपयोगकर्ताओं को देखने की कोशिश कर रहा हूं। मेरी व्यक्तिगत वेबसाइट में मेरे पास लगभग 1-2 आगंतुक हैं।एक पृष्ठ हर 10 सेकंड

+5

का उपयोग कर इसे खोलने http://www.google.com/analytics पर एक नज़र/ – kgiannakakis

उत्तर

8

jQuery के $.post() पद्धति का उपयोग करना:

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

मैं आप अपने खुद के स्थानीय स्क्रिप्ट क्वेरी करने के लिए एक अच्छा कारण है यह सोचते हैं रहा हूँ। आप अपनी साइट पर जा रहा है, कब, और क्या वातावरण के प्रकार (मशीनों, ब्राउज़र, आदि) से बारे में विस्तृत जानकारी चाहते हैं, तो मैं तुम्हें Google Analytics की तरह कुछ को लागू करने पर गौर सुझाव देना चाहेंगे।

1

यह जावास्क्रिप्ट पेज usersonline.php हर 10 सेकंड पढ़ सकते हैं और वर्तमान वेब पेज पर सामग्री स्थापित करेंगे।

<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) स्ट्रिंग के बजाए 'सेटटाइमआउट' पर एक वास्तविक फ़ंक्शन गुजरना बेहतर है क्योंकि इसमें अंतर्निहित eval शामिल नहीं है, और 3) यह आईई में काम नहीं करता है 'XMLHttpRequest' उस वातावरण में मौजूद नहीं है। –

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> 

परिवर्तन यूआरएल तदनुसार, अपने डेस्कटॉप पर count.html के रूप में ऊपर कोड को बचाने, और Firefox

संबंधित मुद्दे