相關(guān)資訊
- 《戰(zhàn)國(guó)無(wú)雙4-2》怎么換服裝?戰(zhàn)國(guó)無(wú)
- 關(guān)于責(zé)任的名言警句大全
- 《戰(zhàn)國(guó)無(wú)雙4-2》PC版如何聯(lián)機(jī)? 戰(zhàn)
- 戰(zhàn)國(guó)無(wú)雙4-2技能覺(jué)醒牛逼嗎 全新
- 《戰(zhàn)國(guó)無(wú)雙4-2》手柄無(wú)效怎么解決
- 戰(zhàn)國(guó)無(wú)雙4-2如何設(shè)置語(yǔ)言 戰(zhàn)國(guó)無(wú)雙
- 戰(zhàn)國(guó)無(wú)雙4-2怎么樣跳過(guò)進(jìn)入開(kāi)場(chǎng)動(dòng)畫(huà)
- 什么是應(yīng)屆生畢業(yè)生
- 應(yīng)屆生簡(jiǎn)歷自我評(píng)價(jià)
- 應(yīng)屆生簡(jiǎn)歷怎么寫(xiě)
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
本文向大家分享到的是關(guān)于一些Asp技巧和實(shí)用解決方法,ASP初學(xué)者們可以學(xué)習(xí)一下。
隨機(jī)數(shù):
<%randomize%>
<%=(int(rnd()*n)+1)%>
查詢數(shù)據(jù)時(shí)得到的記錄關(guān)鍵字用紅色顯示:
<% =replace(RS("字段X"),searchname,"<font color=#FF0000>" & searchname & "</font>") %>
通過(guò)asp的手段來(lái)檢查來(lái)訪者是否用了代理
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
response.write "<font color=#FF0000>您通過(guò)了代理服務(wù)器,"& _
"真實(shí)的IP為"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
%>
判斷上一頁(yè)的來(lái)源
request.servervariables("HTTP_REFERER")
java script: document.referrer
清除緩存,重新加載頁(yè)面
<%response.expires = 0
response.expiresabsolute = now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.cachecontrol = "no-cache"
%>
在下拉菜單中顯示年和月
<select name="select">
<%
Dim M_Year
Dim M_Month
Dim M_MonthJ
Dim M_TheMonth
Dim M_YM
For M_Year = 2000 To Year(Date)
M_Month = 12
If M_Year = Year(Date) Then
M_Month = Month(Date)
End If
For M_MonthJ=1 To M_Month
If M_MonthJ < 10 Then
M_TheMonth = "0" & M_MonthJ
Else
M_TheMonth = M_MonthJ
End If
M_YM = M_Year& "-" & M_TheMonth %>
<option value="<%= M_YM %>"><%= M_YM %></option>
<%
Next
Next %>
</select>
檢索并刪除數(shù)據(jù)庫(kù)里的重復(fù)記錄
conn.execute("delete from table where id not in (select distinct from table)")
在做一個(gè)在線交流的網(wǎng)站時(shí),有個(gè)問(wèn)題很令我頭疼,就是關(guān)于實(shí)時(shí)統(tǒng)計(jì)在線用戶的問(wèn)題,客戶要求:統(tǒng)計(jì)當(dāng)前在線人數(shù)、游客人數(shù)、會(huì)員人數(shù)、在線用戶列表,包括游客、會(huì)員和管理員(如果是游客,則自動(dòng)生成游客的ID,如果是會(huì)員,則顯示會(huì)員姓名)。因?yàn)樗笥袑?shí)時(shí)性,則首先我將用global.asa解決的想法pass掉。
問(wèn)題的關(guān)鍵是如何判斷用戶已經(jīng)離開(kāi),和當(dāng)用戶離開(kāi)時(shí)如何執(zhí)行一個(gè)文件或一個(gè)函數(shù)。
經(jīng)過(guò)和網(wǎng)上一些朋友的探討,終于解決了這個(gè)問(wèn)題。
解決的原理為:編寫(xiě)一個(gè)通用頁(yè)面,所謂的通用頁(yè)面,就是應(yīng)用里的每個(gè)頁(yè)面都包含這個(gè)頁(yè)面,例如:header.ASP,在這個(gè)頁(yè)面里,用XMLHTTP寫(xiě)一段代碼,這段代碼的作用是每隔10秒或20秒就向服務(wù)器發(fā)送一個(gè)請(qǐng)求,目的是更新當(dāng)前用戶的在線時(shí)間并刪除在線時(shí)間超過(guò)一定時(shí)間的用戶,使數(shù)據(jù)庫(kù)中的在線用戶記錄保持一定的實(shí)時(shí)性。
主要實(shí)現(xiàn)方法為:
新建一數(shù)據(jù)庫(kù),字段名稱分別為:id(字符),name(字符),user(數(shù)字)tt(日期),admin(權(quán)限代碼,0-普通用戶,1-管理員)
表名:online
header.asp ↓
============================================================
<%
... ...
if session("s_in")<>1 and session("s_name")="" then ’如果用戶是第一次登陸
rs.open "select * from online",conn,3,3
rs.addnew
rs("id")=session.sessionID
rs("name")="游客" & session.sessionID
rs("user")=0 ’0表示用戶未登陸,是游客身份
rs("tt")=now
rs.update
rs.close
session("s_in")=1 ’設(shè)置用戶的資料已經(jīng)存入數(shù)據(jù)庫(kù),表示已經(jīng)在線
end if
if session("s_name")<>"" then ’如果用戶已經(jīng)通過(guò)登錄框登錄
rs.open "select * from online where id=’" & session.sessionID & "’",conn,3,3
rs("name")=session("s_name")
rs("admin")=session("s_admin") ’將用戶的姓名更新為會(huì)員名稱
rs("user")=1 ’表示用戶已經(jīng)登陸,是會(huì)員身份
rs("tt")=now ’將當(dāng)前系統(tǒng)時(shí)間設(shè)置為用戶的登陸時(shí)間
rs.update
rs.close
end if
... ...
%>
... ...
<head>
... ...
<script language=java script>
function Test()
{
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlhttp.open("POST","onceonline.asp",false); // 向onceonline.asp發(fā)送更新請(qǐng)求
xmlhttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
xmlhttp.send();
}
setInterval("Test();",10); // 10秒鐘發(fā)送一次更新請(qǐng)求
</script>
... ...
</head>
... ...
==========================================================
onceonline.asp
<%
rs.open "select tt from online where id=’" & session.sessionID & "’",conn,3,3
rs("tt")=now() ’更新當(dāng)前在線用戶的在線時(shí)間
rs.update
rs.close
rs.open "delete from online where datediff(’s’,tt,now())>60",conn,3,1 ’刪除超時(shí)用戶
%>
==============================================================
這樣,基本保證了數(shù)據(jù)庫(kù)中用戶列表的實(shí)時(shí)性,誤差取決于更新時(shí)間和刪除時(shí)間的差值大小和服務(wù)器的處理速度,建議不要將刪除超時(shí)用戶的時(shí)間間隔取的過(guò)于小,那樣有可能會(huì)導(dǎo)致在線用戶0人的失誤。
本方案在WIN2000+SQL Server2000上調(diào)試通過(guò),由于本方案對(duì)系統(tǒng)要求比較大,期待其他朋友拿出更好的方案,一起解決這個(gè)問(wèn)題!