使用JavaScript制作一個(gè)簡(jiǎn)單的計(jì)數(shù)器的方法
設(shè)計(jì)思想
該方法的關(guān)鍵是Cookie技術(shù)和動(dòng)態(tài)圖像特性的綜合運(yùn)用。使用Cookie,可以在用戶端的硬盤(pán)上記錄用戶的數(shù)據(jù),下次訪問(wèn)此站點(diǎn)時(shí),即可讀取用戶端硬盤(pán)的Cookie,直接得知來(lái)訪者的身份和訪問(wèn)次數(shù)等有關(guān)信息。JavaScript中通過(guò)document.cookie屬性訪問(wèn)Cookie,這個(gè)屬性包括名字、失效日期、有效域名、有效URL路徑等。用等號(hào)分開(kāi)的名字和其值是Cookie的實(shí)際數(shù)據(jù),本例中用來(lái)存儲(chǔ)該訪問(wèn)者訪問(wèn)該頁(yè)面的次數(shù)。通過(guò)把Web頁(yè)中的圖像映射到一個(gè)Images數(shù)組,一定條件下修改該數(shù)組項(xiàng)的特性,可以實(shí)現(xiàn)動(dòng)態(tài)圖像顯示。本例中,首先預(yù)載入一組圖像,每次調(diào)用該Web頁(yè)時(shí),隨機(jī)產(chǎn)生新的一組圖像,通過(guò)覆蓋原圖像實(shí)現(xiàn)動(dòng)態(tài)的趣味性效果。
源程序count.html
< html> < head> < meta http-equiv=″Content-Type″ content=″text/html; charset=gb2312″> < title>趣味計(jì)數(shù)器< /title> < /head> < body> < p>< script language=″JavaScript″> var expdays=60; var exp=new Date(); exp.setTime(exp.getTime() (expdays*24*60*60*1000)); function count(info){ //若是該訪客的第一次訪問(wèn),將計(jì)數(shù)器值賦1,否則加1累積 var wwhcount=getcookie(′wwhcount′); if (wwhcount==null){ wwhcount=1; } else{wwhcount++;} setcookie(′wwhcount′,wwhcount,exp); return countdisp(wwhcount) } function countdisp(countvar){ //實(shí)現(xiàn)隨機(jī)顯示,不足6位以0補(bǔ)全,可以自己調(diào)整顯示位數(shù) var countvar1=″000000″+countvar; var howFar1=countvar1.length; countvar1=countvar1.substring(howFar1, howFar1-1) var index=″ ″+Math.floor(Math.random()*10); if (index==″10″){ index=″0″}; for (var icount=0;icount< 6;icount++){ var g=countvar1.substring(icount,icount+1); document.images[icount].src=″http: //localhost/images/″+index+g+″.gif″; } } function getCookieVal(offset){ //獲取該訪問(wèn)者的已訪問(wèn)次數(shù) var endstr=document.cookie.indexOf(″;″,offset); if (endstr==-1) endstr=document.cookie.length; return unescape(document.cookie.substring(offset,endstr)); } function getcookie(name){ //截取Cookie中的name信息段 var arg=name+″=″; var alen=arg.length; var clen=document.cookie.length; var i=0; while (i< clen){ var j=i+alen; if (document.cookie.substring(i,j)==arg) return getCookieVal(j); i=document.cookie.indexOf(″ ″,i)+1; if (i==0) break;} return null; } function setcookie(name,value){ //存儲(chǔ)該訪客計(jì)數(shù)器的數(shù)值 var argv=setcookie.arguments; var argc=setcookie.arguments.length; var expires=(argc>2)?argv[2]:null;var path=(argc>3)?argv[3]:null; var domain=(argc>4)?argv[4]:null; var secure=(argc〉5)?argv[5]:false; document.cookie=name+″=″+escape(value) ?。?(expires==null)?″ ″:(″;expires=″+expires.toGMTString())) ?。?(path==null)?″ ″:(″;path=″+path))+((domain==null)?″ ″:(″;domain=″+domain))+((secure==true)?″;secure″:″ ″); } function deletecookie(name){ //使該信息行失效,刪除該用戶關(guān)于訪問(wèn)次數(shù)的信息 var exp=new Date(); exp.setTime(exp.getTime()-1); var cval=getcookie(name); document.cookie=name+″=″+cval+″;expires=″+exp.toGMTString(); } < /script>< /p> < ! --預(yù)載入圖像數(shù)組--> 您是第 < img src=″http://localhost/images/00.gif″ height=20 width=20> < img src=″http://localhost/images/00.gif″ height=20 width=20> < img src=″http://localhost/images/00.gif″ height=20 width=20> < img src=″http://localhost/images/00.gif″ height=20 width=20> < I mg src=″http://localhost/images/00.gif″ height=20 width=20> < img src=″http://localhost/images/00.gif″ height=20 width=20>次光臨! < script language=″JavaScript″> //調(diào)用count()函數(shù),實(shí)現(xiàn)計(jì)數(shù)器的動(dòng)態(tài)圖像顯示 count(); < /script> < /body> < /html>
注意事項(xiàng)
由于使用了JavaScript語(yǔ)言,因此該方法具有與應(yīng)用平臺(tái)的無(wú)關(guān)性,可以適用于Unix、Windows等多種平臺(tái)。另外,此計(jì)數(shù)器不同于一般意義上的訪客計(jì)數(shù)器,專(zhuān)門(mén)用于記錄某一訪客對(duì)某一網(wǎng)站的訪問(wèn)次數(shù)。
- 一個(gè)簡(jiǎn)單的網(wǎng)站訪問(wèn)JS計(jì)數(shù)器 刷新1次加1次訪問(wèn)
- js計(jì)數(shù)器代碼
- JavaScript實(shí)現(xiàn)計(jì)數(shù)器基礎(chǔ)方法
- jsp網(wǎng)頁(yè)計(jì)數(shù)器實(shí)現(xiàn)示例
- javascript下計(jì)數(shù)器每秒自動(dòng)加1
- 一個(gè)可以防止刷新的JSP計(jì)數(shù)器
- jsp計(jì)數(shù)器制作
- 用JAVASCRIPT幫我寫(xiě)個(gè)計(jì)數(shù)器
- jsp計(jì)數(shù)器代碼
- 原生js實(shí)現(xiàn)寬度計(jì)數(shù)器
相關(guān)文章
Javascript實(shí)現(xiàn)異步編程的過(guò)程
這篇內(nèi)容詳細(xì)分析了Javascript實(shí)現(xiàn)異步編程的過(guò)程以及原理解釋?zhuān)瑢?duì)此知識(shí)點(diǎn)有興趣的朋友可以學(xué)習(xí)下。2018-06-06淺談javascript中onbeforeunload與onunload事件
javascript中onbeforeunload與onunload事件就是頁(yè)面加載前與頁(yè)面關(guān)閉時(shí)的兩個(gè)功能的函數(shù),可以防止頁(yè)面刷新時(shí)給提示再刷新或頁(yè)面關(guān)閉時(shí)給出提示,下面我來(lái)介紹onbeforeunload與onunload事件用法。2015-12-12控制臺(tái)報(bào)錯(cuò)object is not a function的解決方法
頁(yè)面的功能用不了,打開(kāi)控制臺(tái)發(fā)現(xiàn)報(bào)錯(cuò):object is not a function,下面是原因與解決方法,有類(lèi)似情況的朋友可以看看2014-08-08javaScript arguments 對(duì)象使用介紹
函數(shù)體內(nèi)可以通過(guò) arguments 對(duì)象來(lái)接收傳遞進(jìn)來(lái)的參數(shù),下面有個(gè)不錯(cuò)的示例,大家可以感受下2013-10-10JavaScript編程中window的location與history對(duì)象詳解
這篇文章主要介紹了JavaScript編程中window的location與history對(duì)象,是JavaScript入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10關(guān)于JavaScript 原型鏈的一點(diǎn)個(gè)人理解
本文給大家分享的是個(gè)人關(guān)于JavaScript原型鏈相關(guān)知識(shí)的一些理解,這里推薦給大家,希望大家能夠喜歡2016-07-07實(shí)例分析javascript中的call()和apply()方法
因項(xiàng)目需求去研究了下javascript中的call和apply方法,去百度看了幾篇介紹JS中call和apply的文章,總覺(jué)得不是很好懂,這里寫(xiě)下我自己的理解,供網(wǎng)友們參考。2014-11-11