javascript精確統(tǒng)計(jì)網(wǎng)站訪問(wèn)量實(shí)例代碼
網(wǎng)站一般都有訪問(wèn)量統(tǒng)計(jì)工具,比較高效實(shí)用的工具多種多樣,并且非常的精確。實(shí)用javascript也可以簡(jiǎn)單的實(shí)現(xiàn)此功能,盡管沒(méi)有網(wǎng)絡(luò)上常用的精確,不過(guò)的確也實(shí)現(xiàn)了一定的功能,下面就是一段代碼實(shí)例,感興趣的朋友可以參考一下:
<script type="text/javascript"> /** * vlstat 瀏覽器統(tǒng)計(jì)腳本 */ var statIdName = "vlstatId"; var xmlHttp; /** * 設(shè)置cookieId */ function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()) + ";path=/;domain=cecb2b.com"; } /** * 獲取cookieId */ function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) { c_end = document.cookie.length; } return unescape(document.cookie.substring(c_start, c_end)); } } return ""; } /** * 獲取當(dāng)前時(shí)間戳 */ function getTimestamp() { var timestamp = Date.parse(new Date()); return timestamp; } /** * 生成statId */ function genStatId() { var cookieId = getTimestamp(); cookieId = "vlstat" + "-" + cookieId + "-" + Math.round(Math.random() * 3000000000); return cookieId; } /** * 設(shè)置StatId */ function setStatId() { var cookieId = genStatId(); setCookie(statIdName, cookieId, 365); } /** * 獲取StatId */ function getStatId() { var statId = getCookie(statIdName); if (statId != null && statId.length > 0) { return statId; } else { setStatId(); return getStatId(); } } /** * 獲取UA */ function getUA() { var ua = navigator.userAgent; if (ua.length > 250) { ua = ua.substring(0, 250); } return ua; } /** * 獲取瀏覽器類型 */ function getBrower() { var ua = getUA(); if (ua.indexOf("Maxthon") != -1) { return "Maxthon"; } else if (ua.indexOf("MSIE") != -1) { return "MSIE"; } else if (ua.indexOf("Firefox") != -1) { return "Firefox"; } else if (ua.indexOf("Chrome") != -1) { return "Chrome"; } else if (ua.indexOf("Opera") != -1) { return "Opera"; } else if (ua.indexOf("Safari") != -1) { return "Safari"; } else { return "ot"; } } /** * 獲取瀏覽器語(yǔ)言 */ function getBrowerLanguage() { var lang = navigator.browserLanguage; return lang != null && lang.length > 0 ? lang : ""; } /** * 獲取操作系統(tǒng) */ function getPlatform() { return navigator.platform; } /** * 獲取頁(yè)面title */ function getPageTitle() { return document.title; } /** * 創(chuàng)建一個(gè)form * * @return */ function createSubmitForm() { var frm = document.createElement("form"); document.body.appendChild(frm); frm.method = "POST"; return frm; } /** * 為form創(chuàng)建一個(gè)元素 * * @param inputForm * @param elementName * @param elementValue * @return */ function createFormElement(frmInput, elementName, elementValue) { var element = document.createElement("input"); element.setAttribute("id", elementName); element.setAttribute("name", elementName); element.setAttribute("type", "hidden"); element.setAttribute("value", elementValue); frmInput.appendChild(element); return element; } /** * 構(gòu)造XMLHttpRequest對(duì)象 * * @return */ function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } /** * url指定跳轉(zhuǎn)頁(yè),data是要post的數(shù)據(jù)。func類似于函數(shù)指針 * * @param url * @param data * @param func * @return */ function AjaxPost(url, data, func) { var httpRequest = createHttpRequest(); if (httpRequest) { httpRequest.open("POST", url, true); httpRequest.setRequestHeader("content-length", data.length); httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); httpRequest.send(data); httpRequest.onreadystatechange = function() { if (httpRequest.readyState == 4) { try { if (httpRequest.status == 200) { if (func) { // 這里可以調(diào)用想要的函數(shù) func(httpRequest.responseText); } } } catch (e) { alert("Error XMLHttpRequest!"); } } } } else { alert("Error initializing XMLHttpRequest!"); } } function vlstatInitLE(vlch, vlch1, vlch2, vlch3) { var p; var vlstatCH = vlch != null && vlch.length > 0 ? vlch : ""; var vlstatCH1 = vlch1 != null && vlch1.length > 0 ? vlch1 : ""; var vlstatCH2 = vlch2 != null && vlch2.length > 0 ? vlch2 : ""; var vlstatCH3 = vlch3 != null && vlch3.length > 0 ? vlch3 : ""; var vlstatCookieId = getStatId(); var vlstatUA = encodeURIComponent(getUA()); var vlstatIPAddress = document.localName; var vlstatREFURL = encodeURIComponent(document.referrer); var vlstatURL = encodeURIComponent(document.URL); var vlstatScreenX = screen.width; var vlstatScreenY = screen.height; var vlstatOS = getPlatform(); var vlstatBrower = getBrower(); var vlstatBrowerLanguage = getBrowerLanguage(); var vlstatPageTitle = encodeURIComponent(getPageTitle()); var vlstatAction = "index.php"; p = "cookieId=" + vlstatCookieId + "&ua=" + vlstatUA + "&ip=" + vlstatIPAddress + "&refurl=" + vlstatREFURL + "&url=" + vlstatURL + "&screenX=" + vlstatScreenX + "&screenY=" + vlstatScreenY + "&os=" + vlstatOS + "&brower=" + vlstatBrower + "&browerLang=" + vlstatBrowerLanguage + "&title=" + vlstatPageTitle + "&ch=" + vlstatCH + "&ch1=" + vlstatCH1 + "&ch2=" + vlstatCH2 + "&ch3=" + vlstatCH3; var urlGo = vlstatAction + "?" + p; createXMLHttpRequest(); xmlHttp.open('GET', urlGo); xmlHttp.send(null); } </script>
希望本文所述對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JS實(shí)現(xiàn)的DOM插入節(jié)點(diǎn)操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)的DOM插入節(jié)點(diǎn)操作,結(jié)合實(shí)例形式分析了javascript針對(duì)頁(yè)面dom元素動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04JavaScript生成的動(dòng)態(tài)下雨背景效果實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript生成的動(dòng)態(tài)下雨背景效果實(shí)現(xiàn)方法,通過(guò)自定義函數(shù)實(shí)現(xiàn)動(dòng)態(tài)背景效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02javascript實(shí)現(xiàn)圖片左右滾動(dòng)效果【可自動(dòng)滾動(dòng),有左右按鈕】
這篇文章主要介紹了javascript實(shí)現(xiàn)圖片左右滾動(dòng)效果,可實(shí)現(xiàn)自動(dòng)滾動(dòng),帶有左右按鈕功能,基于插件scrollPic.js實(shí)現(xiàn),附帶了相應(yīng)的demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09解決layui數(shù)據(jù)表格Date日期格式的回顯Object的問(wèn)題
今天小編就為大家分享一篇解決layui數(shù)據(jù)表格Date日期格式的回顯Object的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09微信小程序手機(jī)號(hào)碼驗(yàn)證功能的實(shí)例代碼
這篇文章主要介紹了微信小程序手機(jī)號(hào)碼驗(yàn)證功能的實(shí)例代碼及微信小程序正則判斷手機(jī)號(hào)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08JS技巧動(dòng)手實(shí)現(xiàn)紅包兔子雨效果示例詳解
這篇文章主要為大家介紹了JS技巧動(dòng)手實(shí)現(xiàn)紅包兔子雨效果示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤的幾種解決方案
在寫項(xiàng)目時(shí)候需要在表單里面加一個(gè)picker選擇器,但選擇input的時(shí)候軟鍵盤與選擇器會(huì)同時(shí)彈出,下面這篇文章主要給大家介紹了關(guān)于uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤的幾種解決方案,需要的朋友可以參考下2024-02-02JavaScript實(shí)現(xiàn)多張圖片放大鏡效果示例【不限定圖片尺寸,rem單位】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)多張圖片放大鏡效果,結(jié)合實(shí)例形式分析了javascript實(shí)現(xiàn)不限定圖片尺寸,采用rem單位的多張圖片縮放功能相關(guān)操作技巧,需要的朋友可以參考下2019-05-05js 多種變量定義(對(duì)象直接量,數(shù)組直接量和函數(shù)直接量)
js 多種變量定義(對(duì)象直接量,數(shù)組直接量和函數(shù)直接量),大家可以參考下,對(duì)于以后學(xué)習(xí)js 面向?qū)τ谂cjson操作會(huì)有幫助。2010-05-05