最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

判斷用戶是否在線的代碼

 更新時(shí)間:2011年03月05日 12:16:05   作者:  
判斷用戶是否在線的代碼,需要的朋友可以參考下。
考慮兩種情況:
(1)用戶關(guān)閉瀏覽器或重定向到其他網(wǎng)頁(yè)
復(fù)制代碼 代碼如下:

<script type=text/javascript>
function exit_init() {
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){ //
}
else{
alert("there was a problem accessing the server:"+xmlhttp.status);
}
}
}
//定義windows 的onbeforeunload 事件,當(dāng)用戶非正常退出即瀏覽器非正常關(guān)閉時(shí),對(duì)用戶登錄狀態(tài)進(jìn)行處理
window.onbeforeunload=function () {
//if(event.clientY<0||event.altKey) {
exit_request = false;
//創(chuàng)建請(qǐng)求對(duì)象
if (window.XMLHttpRequest) {
exit_request = new XMLHttpRequest();
if (exit_request.overrideMimeType){
exit_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
try{
exit_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
exit_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
if (!exit_request) {
alert("Your brower is not compatible the current opration.Please use the IE 5.0! ");
return false;
}
var url='null.php?userid='+document.getElementById("userid").value;
//定義頁(yè)面調(diào)用的方法exit_init,不是exit_init();沒有();
exit_request.onreadystatechange = exit_init;
exit_request.open('GET', url, true);
//禁止IE 緩存
exit_request.setRequestHeader("If-Modified-Since","0");
//發(fā)送數(shù)據(jù)
exit_request.send(null);
}
//}
</script>

說(shuō)明:null.php用來(lái)將用戶狀態(tài)設(shè)為下線
(2)用戶長(zhǎng)時(shí)間不再瀏覽本網(wǎng)站
思路:創(chuàng)建表active_stat,屬性有userid,lasttime,nowtime。用戶每打開一次本網(wǎng)站,更改lasttime為當(dāng)前時(shí)間now(),每隔1分鐘更改nowtime為當(dāng)前時(shí)間,判斷nowtime-lasttime是否大于20分鐘,若大于,則修改用戶狀態(tài)為下線
復(fù)制代碼 代碼如下:

<script language=javascript>
function test(userid){
setInterval("offline('"+userid+"')", 60000 ); //每隔1分鐘執(zhí)行一次
}
function offline(userid){
var xmlhttp=false;
try{
xmlhttp=new activeXObject('Msxml2.XMLHTTP');
}catch(e){
try{
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
try{
xmlhttp=new XMLHttpRequest();
}catch(e){}
}
}
if(xmlhttp.readyState==4||xmlhttp.readyState==0)
{
xmlhttp.open('get','../user/include/offline.php?userid='+userid,false);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
//
}
else{ alert("there was a problem accessing the server:"+xmlhttp.status);}
}
}
xmlhttp.send(null);
}
}
</script>
<BODY onLoad="test('<? echo $userid;?>');">

offline.php
復(fù)制代碼 代碼如下:

<?php
//連接數(shù)據(jù)庫(kù)
$userid=$_GET["userid"];
pg_exec("update active_stat set nowtime=now() where userid='".$userid."';");
$result=pg_exec($dbconn,"select (nowtime-lasttime) as activetime from active_stat where userid='".$userid."'");
$str=pg_result($result,0,"activetime");
if(strlen($str)>16){
$array=explode(" ",$str);
$t=explode(":",$array[1]);
$t[0]=$t[0]+$array[0]*24;
$s=explode(".",$t[2]);
$t[2]=$s[0];
$y=((int)$t[0])*3600+((int)$t[1])*60+((int)$t[2]);
}
else{
$total_time=explode(".",$str);
$x=explode(":",$total_time[0]);
$y=((int)$x[0])*3600+((int)$x[1])*60+((int)$x[2]);
}
if($y>=1200){
pg_exec("update users set status='f' where userid='".$userid."';");
}
?>

相關(guān)文章

  • easyui window refresh 刷新兩次的解決方法(推薦)

    easyui window refresh 刷新兩次的解決方法(推薦)

    下面小編就為大家?guī)?lái)一篇easyui window refresh 刷新兩次的解決方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • JS文件中加載jquery.js的實(shí)例代碼

    JS文件中加載jquery.js的實(shí)例代碼

    這篇文章主要介紹了JS文件中加載jquery.js的方法,JS文件添加其他JS的實(shí)例代碼,感興趣的小伙伴們可以參考一下,具體如下
    2018-05-05
  • 淺談JS之tagNaem和nodeName

    淺談JS之tagNaem和nodeName

    下面小編就為大家?guī)?lái)一篇淺談JS之tagNaem和nodeName。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • google廣告之另類js調(diào)用實(shí)現(xiàn)代碼

    google廣告之另類js調(diào)用實(shí)現(xiàn)代碼

    這篇文章主要介紹了google廣告之另類js調(diào)用實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2020-08-08
  • JS操作Cookies的小例子

    JS操作Cookies的小例子

    這篇文章介紹了JS操作Cookies的小例子,有需要的朋友可以參考一下
    2013-10-10
  • js 操作css實(shí)現(xiàn)代碼

    js 操作css實(shí)現(xiàn)代碼

    雖說(shuō)jquery支持css選擇器,可以把一些css規(guī)則放在js里,js無(wú)論如何是比css靈活的。但是js修改的是dom的htmlelement的stlye,是一個(gè)操作而非規(guī)則。
    2009-06-06
  • javascript輕量級(jí)模板引擎juicer使用指南

    javascript輕量級(jí)模板引擎juicer使用指南

    Juicer 是一個(gè)高效、輕量的前端 (Javascript) 模板引擎,使用 Juicer 可以是你的代碼實(shí)現(xiàn)數(shù)據(jù)和視圖模型的分離(MVC)。
    2014-06-06
  • JavaScript 未結(jié)束的字符串常量常見解決方法

    JavaScript 未結(jié)束的字符串常量常見解決方法

    做JavaScript的時(shí)候,發(fā)現(xiàn)老是出現(xiàn)錯(cuò)誤:“未結(jié)束的字符串常量”. 自己找了下應(yīng)該是傳參數(shù)的時(shí)候,有特殊字符引起的.網(wǎng)上也找了下,也有好多出現(xiàn)這種情況.做下總結(jié),以方便以后查閱.
    2010-01-01
  • 微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果

    微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解JS內(nèi)存空間

    詳解JS內(nèi)存空間

    因?yàn)镴avaScript具有自動(dòng)垃圾回收機(jī)制,所以對(duì)于前端開發(fā)來(lái)說(shuō),內(nèi)存空間并不是一個(gè)經(jīng)常被提及的概念。特別是很多不是計(jì)算機(jī)專業(yè)的朋友在進(jìn)入到前端之后,會(huì)對(duì)內(nèi)存空間的認(rèn)知比較模糊,甚至有些人干脆就是一無(wú)所知。為了解決大家的疑惑,本文將詳細(xì)介紹JS內(nèi)存空間
    2021-06-06

最新評(píng)論

黑龙江省| 云龙县| 漯河市| 丹阳市| 宣威市| 高淳县| 右玉县| 田阳县| 吕梁市| 双桥区| 开平市| 安达市| 土默特左旗| 江西省| 闵行区| 炎陵县| 乌拉特后旗| 芦山县| 宁晋县| 康保县| 介休市| 冀州市| 精河县| 西宁市| 砚山县| 浦江县| 崇明县| 贵南县| 平安县| 宜昌市| 蚌埠市| 常德市| 绥化市| 阿克苏市| 寻甸| 定西市| 剑阁县| 梁山县| 临江市| 桂平市| 明光市|