本文提供两种基于JavaScript的简单网站访问次数统计方案。通过操作Cookie记录用户访问状态,实现访客计数功能。代码示例展示了如何读取、更新并写入Cookie,最终在页面显示累计访问人数。适合需要轻量级统计功能的网站管理员参考使用。
JavaScript访问统计方案概述
作为网站管理员或站长,了解网站的实际访问量是常见需求。虽然市场上有站长统计、腾讯统计等成熟的第三方工具,但对于仅需基础统计功能的场景,使用简单的脚本即可满足。以下介绍两种通过JavaScript实现访问量统计的方法。
第一种实现方式如下:
具体代码示例如下:
第一种统计代码实现
<script type="text/javascript">
var caution=false
function setCookie(name,value,expires,path,domain,secure)
{
var curCookie=name+"="+escape(value) +
((expires)?";expires="+expires.toGMTString() : "") +
((path)?"; path=" + path : "") +
((domain)? "; domain=" + domain : "") +
((secure)?";secure" : "")
if(!caution||(name + "=" + escape(value)).length <= 4000)
{
document.cookie = curCookie
}
else if(confirm("Cookie exceeds 4KB and will be cut!"))
{
document.cookie = curCookie
}
}
function getCookie(name)
{
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
{
return null
}
var cookieEndIndex=document.cookie.indexOf(";",cookieStartIndex+prefix.length)
if(cookieEndIndex == -1)
{
cookieEndIndex = document.cookie.length
}
return unescape(document.cookie.substring(cookieStartIndex+prefix.length,cookieEndIndex))
}
function deleteCookie(name, path, domain)
{
if(getCookie(name))
{
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}
function fixDate(date)
{
var base=new Date(0)
var skew=base.getTime()
if(skew>0)
{
date.setTime(date.getTime()-skew)
}
}
var now=new Date()
fixDate(now)
now.setTime(now.getTime()+365 * 24 * 60 * 60 * 1000)
var visits = getCookie("counter")
if(!visits)
{
visits=1;
}
else
{
visits=parseInt(visits)+1;
}
setCookie("counter", visits, now)
document.write("您是到访的第" + visits + "位用户!")
</script>
第二种实现方式如下:
具体代码示例如下:
第二种统计代码实现
<script type="text/javascript">
var caution=false
function setCookie(name,value,expires,path,domain,secure)
{
var curCookie=name+"="+escape(value) +
((expires)?";expires="+expires.toGMTString() : "") +
((path)?"; path=" + path : "") +
((domain)? "; domain=" + domain : "") +
((secure)?";secure" : "")
if(!caution||(name + "=" + escape(value)).length <= 4000)
{
document.cookie = curCookie
}
else if(confirm("Cookie exceeds 4KB and will be cut!"))
{
document.cookie = curCookie
}
}
function getCookie(name)
{
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
{
return null
}
var cookieEndIndex=document.cookie.indexOf(";",cookieStartIndex+prefix.length)
if(cookieEndIndex == -1)
{
cookieEndIndex = document.cookie.length
}
return unescape(document.cookie.substring(cookieStartIndex+prefix.length,cookieEndIndex))
}
function deleteCookie(name, path, domain)
{
if(getCookie(name))
{
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}
function fixDate(date)
{
var base=new Date(0)
var skew=base.getTime()
if(skew>0)
{
date.setTime(date.getTime()-skew)
}
}
var now=new Date()
fixDate(now)
now.setTime(now.getTime()+365 * 24 * 60 * 60 * 1000)
var visits = getCookie("counter")
if(!visits)
{
visits=1;
}
else
{
visits=parseInt(visits)+1;
}
setCookie("counter", visits, now)
document.write("您是到访的第" + visits + "位用户!")
</script>
以上介绍了两种利用JavaScript统计网站访问量的方法,供站长们参考使用。