熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

巧用JavaScript記錄網站訪問次數

2013-11-15 11:38:28  來源: JSP教程 
我們知道Cookie是記錄訪問你站點的用戶的信息它駐留在用戶的硬盤上如果該用戶再次返回你的站點則該cookie就會被一起發回到你的服務器中便於你統計和處理重復到訪者的信息在IE和NS兩個浏覽器中都提供了對Coo kie的支持並且允許我們用JavaScript或者VBScript去操作它們 

為了簡單了解一下Cookie讀寫的原理請看以下例子 


  寫Cookie
  < script >
   function setCookie()      
//建立設定Cookie的函數  
   { var the_visits = ;     
//初始化VISIT即訪問次數為
    var the_cookie = Ware=uservisits:
 + escape(the_visits);
                   
//加入自己的標識符並用escape函數對Cookie編碼
    okie = the_cookie;//寫入Cookie
   }        
   < /script > 

 這樣將生成一個字符串Ware=uservisits:就是把一個名為Ware的Cookie 保存到硬盤裡該Cookie的值就是uservisits:當我們讀Cookie的時候只需 尋找名字為Ware的Cookie然後用unescape解碼讀出訪問次數 
   讀Cookie
   < script >
    function readCookie()
     { var the_cookie = okie; 
 //獲得已寫的Cookie值
 var broken_cookie = the_cookiesplit(:);
 //找出分隔符
      var the_visits = broken_cookie[]; 
 //讀出分隔符後一部分
      var the_visits = unescape(the_visits);
 //用unescape函數對Cookie解碼
      documentwriteln(Your visits is: 
+ the_visits); //寫出訪問次數
     }
   < /script >

這樣將生成一個字符串Ware=uservisits:就是把一個名為Ware的Cookie 保存到硬盤裡該Cookie的值就是uservisits:當我們讀Cookie的時候只需尋找名字為Ware的Cookie然後用unescape解碼讀出訪問次數 


   讀Cookie
   < script >
    function readCookie()
     { var the_cookie = okie; 
 //獲得已寫的Cookie值
 var broken_cookie = the_cookiesplit(:);
 //找出分隔符
      var the_visits = broken_cookie[]; 
 //讀出分隔符後一部分
      var the_visits = unescape(the_visits);
 //用unescape函數對Cookie解碼
      documentwriteln(Your visits is: 
+ the_visits); //寫出訪問次數
     }
   < /script >

最後在網頁中加入< script >setCookie();readCookie();< /script >就 能記住訪問的次數了

這個只是基本的原理實際操作還涉及到Cookie存放的路徑什麼時候失效它的有效作用域在那裡以及檢查訪問次數是否存在等問題考慮到以上問題實際的程序如下 


  < html >
    < script Language=JavaScript >
     function GookieVal(offset)   
 //獲得Cookie解碼後的值 
     {
      var endstr = okie
indexOf (; offset);
      if (endstr == )
      endstr = okielength;
     return unescape(okie
substring(offset endstr));
     }
     function Gookie(name) 
 //獲得Cookie的原始值
     { var arg = name + =;
      var alen = arglength;
      var clen = okielength;
      var i = ;
      while (i < clen)
      {
         var j = i + alen;
         if (okie
substring(i j) == arg)
         return GookieVal (j);
      i = okieindexOf(  i) + ;
      if (i == ) break;
      }
      return null;
     }
   function Sookie(name value)   
 //設定Cookie值
     { var argv = Sookiearguments;
      var argc = Sookieargumentslength;
      var expires = (argc > ) ? argv[] : null;
      var path = (argc > ) ? argv[] : null;
      var domain = (argc > ) ? argv[] : null;
      var secure = (argc > ) ? argv[] : false;
      okie = name + = + 
escape (value) +((expires == null) ?
       : (; expires=+ expirestoGMTString()))
 +((path == null) ?  : 
      (; path= + path)) +((domain == null) ? 
 : (; domain= + domain))
      +((secure == true) ? ; secure : );
     }
   function Dookie(name)
     { var exp = new Date();
      expsetTime (expgetTime()  );
      var cval = Gookie (name);
      okie = name + = + cval + ; 
expires=+ exptoGMTString();
     }
   < /script >
   < script >
    var expdate = new Date();
    expdatesetTime(expdategetTime() + 
( *  *  *  * ));
    if(!(visits = Gookie(wave))) 
     { visits = ;
   Sookie(wave visits expdate / null false);
   documentwrite(這是您第 + visits + 次光臨本站);}
   else{ visits++; 
     Sookie(wave visits expdate / null false);
    documentwrite(您已經第 + visits + 次光臨小站);
         } 
    if(visits< )
    documentwrite(是小站的新手上路加油哦)
    if(visits >=&&visits< )
   documentwrite(是小站的初級站友不錯嘛) 
    if(visits >=&&visits< )
   documentwrite(是小站的高級站友很厲害啊!) 
    if(visits >=)
   documentwrite(是小站的支柱我實在太感動了!)  
   < /script >
   < /html >

在判斷訪問次數所表達的句子上你可以根據網站的風格改為有自己個性的話語相信如果訪問者在你的網站上看到這些話留給他的印象一定很深刻這樣就可以讓你的網站更加吸引別人了
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19349.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.