這篇文章主要介紹了PHP+jquery實(shí)時(shí)顯示網(wǎng)站在線人數(shù)的方法,較為詳細(xì)的分析了實(shí)時(shí)顯示在線人數(shù)的原理與代碼實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了PHP+jquery實(shí)時(shí)顯示網(wǎng)站在線人數(shù)的方法。分享給大家供大家參考。具體分析如下:
在線人數(shù)最簡(jiǎn)單的就是直接利用js調(diào)用php,這樣可以顯示出有多少人訪問(wèn)了本站,如果要在用戶未刷新頁(yè)面的狀態(tài)實(shí)時(shí)顯示用戶在線人數(shù),我們可以利用jquery ajax來(lái)實(shí)現(xiàn)。
我們?cè)谝恍?yīng)用中需要?jiǎng)討B(tài)展示數(shù)據(jù),比如當(dāng)前在線人數(shù),當(dāng)前交易總額,當(dāng)前匯率等等,前端頁(yè)面需要實(shí)時(shí)刷新獲取最新數(shù)據(jù)。這里我們將結(jié)合實(shí)例給大家介紹使用jQuery和PHP來(lái)實(shí)現(xiàn)動(dòng)態(tài)數(shù)字展示效果。
本例假設(shè)要在頁(yè)面上動(dòng)態(tài)展示(無(wú)需刷新整個(gè)頁(yè)面,只是局部刷新動(dòng)態(tài)數(shù)字)當(dāng)前在線用戶數(shù),常見(jiàn)在一些統(tǒng)計(jì)平臺(tái)上應(yīng)用。在HTML頁(yè)面中只需定義以下結(jié)構(gòu):
代碼如下:
<div class="count">當(dāng)前在線:<span id="number"></span></div>
首先我們要定義一個(gè)動(dòng)畫過(guò)程,使用jQuery的animate()函數(shù)實(shí)現(xiàn)從一個(gè)數(shù)字到另一個(gè)數(shù)字的變換過(guò)程,以下magic_number()自定義函數(shù)將代碼整合如下:
[code]function magic_number(value) {
var num = $("#number");
num.animate({count: value}, {
duration: 500,
step: function() {
num.text(String(parseInt(this.count)));
}
});
};
然后update()函數(shù)使用了jQuery的$.getJSON()向后臺(tái)number.php發(fā)送了一個(gè)ajax請(qǐng)求,在得到PHP相應(yīng)后,調(diào)用magic_number()展示最新的數(shù)字。為了能看到更好的效果,我們使用setInterval()設(shè)置代碼執(zhí)行的間隔時(shí)間。
代碼如下:
function update() {
$.getJSON("number.php?jsonp=?", function(data) {
magic_number(data.n);
});
};
setInterval(update, 5000); //5秒鐘執(zhí)行一次
update();
PHP代碼部分:
實(shí)際項(xiàng)目中,我們會(huì)使用PHP獲取數(shù)據(jù)庫(kù)中的最新數(shù)據(jù),然后通過(guò)PHP返回給前端。本例為了更好的演示,使用隨機(jī)數(shù)字,最后以json格式返回給前端js,number.php代碼如下:
復(fù)制代碼 代碼如下:
$total_data = array(
'n' => rand(0,999)
);
echo $_GET['jsonp'].'('. json_encode($total_data) . ')';
原理其實(shí)非常的簡(jiǎn)單就是利用js settimeout實(shí)現(xiàn)過(guò)幾秒加載一個(gè)php文件從而達(dá)到了實(shí)時(shí)顯示在線人數(shù)的功能了。
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
更多信息請(qǐng)查看IT技術(shù)專欄