1.从客户端获取piwik信息,后台接口接收传入的值再存入数据库 js代码如下

var npCore = {cookie: {set: function(key, val, time) { //设置cookie方法var date = new Date(); //获取当前时间var expiresDays = time; //将date设置为n天以后的时间date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000); //格式化为cookie识别的时间document.cookie = key + "=" + val + ";expires=" + date.toGMTString(); //设置cookie},get: function(key) { //获取cookie方法/*获取cookie参数*/var getCookie = document.cookie.replace(/[ ]/g, ""); //获取cookie,并且将获得的cookie格式化,去掉空格字符var arrCookie = getCookie.split(";"); //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中var tips; //声明变量tipsfor (var i = 0; i < arrCookie.length; i++) { //使用for循环查找cookie中的tips变量var arr = arrCookie[i].split("="); //将单条cookie用"等号"为标识,将单条cookie保存为arr数组if (key === arr[0]) { //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作tips = arr[1]; //将cookie的值赋给变量tipsbreak; //终止for循环遍历}}return tips;},delete: function(key) { //删除cookie方法var date = new Date(); //获取当前时间date.setTime(date.getTime() - 10000); //将date设置为过去的时间document.cookie = key + "=v; expires =" + date.toGMTString(); //设置cookie}},//浏览器detectbrowser: function() { //判断是什么浏览器var sUserAgent = navigator.userAgent;var browser;var version;var versioncode;var start;var end;if (sUserAgent.indexOf("Firefox") > -1) {browser = "Firefox";start = sUserAgent.indexOf("Firefox/");end = sUserAgent.substring(start + 7, sUserAgent.length);browser = browser + end;} else if (sUserAgent.indexOf("OPR") > -1) {browser = "Opera";start = sUserAgent.indexOf("OPR/");browser = browser + sUserAgent.substring(start + 3, sUserAgent.length);} else if (sUserAgent.indexOf("QQBrowser") > -1) {browser = "QQBrowser";start = sUserAgent.indexOf("QQBrowser/");browser = browser + sUserAgent.substring(start + 9, sUserAgent.length);} else if (sUserAgent.indexOf("Chrome") > -1 &&sUserAgent.indexOf("Safari") > -1 &&sUserAgent.indexOf("QQBrowser") === -1) {browser = "Chrome";start = sUserAgent.indexOf("Chrome/");end = sUserAgent.indexOf(" ", start);browser = browser + sUserAgent.substring(start + 6, end);} else if (sUserAgent.indexOf("Safari") > -1 && sUserAgent.indexOf("Chrome") === -1) {browser = "Safari";start = sUserAgent.indexOf("Version/");end = sUserAgent.indexOf(" ", start);browser = browser + sUserAgent.substring(start + 7, end);} else if (sUserAgent.indexOf("Trident") > -1) {browser = "IE";start = sUserAgent.indexOf("Trident");end = sUserAgent.indexOf(";", start);version = sUserAgent.substring(start + 8, end);if (version === 7.0) {versioncode = 11;} else if (version === 6.0) {versioncode = 10;} else if (version === 5.0) {versioncode = 9;} else if (version === 4.0) {versioncode = 8;}browser = browser + versioncode;}return browser;},//系统语言getlanguage: function() {if (this.detectbrowser().indexOf("IE") > -1) {return window.navigator.language;} else {return window.navigator.languages;}},//操作系统detectOS: function() {var sUserAgent = navigator.userAgent;var isWin = (navigator.platform === "Win32") || (navigator.platform === "Windows");var isMac = (navigator.platform === "Mac68K") ||(navigator.platform === "MacPPC") ||(navigator.platform === "Macintosh") ||(navigator.platform === "MacIntel");if (isMac) return "Mac";var isLinux = navigator.platform.indexOf("Linux") > -1;if (isLinux) return "Linux";if (isWin) {var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;if (isWin2K) return "Win2000";var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;if (isWinXP) return "WinXP";var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;if (isWin2003) return "Win2003";var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;if (isWinVista) return "WinVista";var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;if (isWin7) return "Win7";var isWin8 = sUserAgent.indexOf("Windows NT 6.2") > -1 || sUserAgent.indexOf("Windows 8") > -1;if (isWin8) return "Win8";}},//cookie seedcookieSeed: function () {var result;//cookieif (this.cookie.get("seed") === null || this.cookie.get("seed") === "" || this.cookie.get("seed") === "undefined") {var seed = "";var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];for (var i = 0; i < 32; i++) {var id = parseInt(Math.random() * 61);seed += chars[id];}this.cookie.set("seed", seed, 365);}result = this.cookie.get("seed");return result;}
};var __np = {nua: "UA_12501254214",cookie: npCore.cookieSeed(),host: location.host,//主机userAgent: navigator.userAgent,//用户代理信息referrer: document.referrer,//上一个页面acceptLanguage: npCore.getlanguage().toString(),//接收语言domain: document.domain,//域url: location.href,//链接地址title: window.document.title, //页面标题charset: window.document.charset,//页面编码os: npCore.detectOS(),//操作系统browser: npCore.detectbrowser(),//浏览器resolution: window.screen.deviceXDPI,// 分辨率responseHeader: "",//响应头server: ""
}//console.log(__np);

2.从服务器获取信息 后台使用HttpContext.Current.Request获取不同信息,如域名,服务器,浏览器等

3.将该项目发布至服务器,在需要采集的项目的页面中加入以下代码

<script src="http://analysis.lsmaps.com/Context/js/piwikInfo.js"></script>
<script>var _np_host = "http://analytics.lsmaps.com";$.ajax({url: _np_host + "/api/Get",type: "GET",   //请求方式data: __np,    //参数值});
</script>

【注】使用ajax方式存在跨域问题,所以后期要进行修改。要将客户端的信息获取到存入到图片中,这样安全且不存在跨域的问题,类似google analytics。

javascript 实现网站浏览统计功能相关推荐

  1. 一分钟为网站添加统计功能

    首先我们需要选择第三方平台,推荐使用腾讯分析或者百度统计 为什么使用这些平台呢? 1.首先省事高效,我们不需要自己去开发这些功能,只需要一行代码粘贴到自己的网站中,就可以生效使用了: 2.第二点大公司 ...

  2. 利用HttpSessionListener实现网站在线人数统计功能

    为什么80%的码农都做不了架构师?>>>    在网站中经常需要进行在线人数的统计.过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点击 ...

  3. html调用一言api,纯 JavaScript 实现网站一言功能

    之前网站分享过一个一言功能 >>> 网站新增一言功能--微语录就是这么简单 .主要是用来在网站指定位置显示一句语录用的,之前的方式是通过后台 PHP 获取输出到网站前端的,最近闲来无 ...

  4. php 足迹,php实现网站浏览足迹功能

    /*** * 向cookie中添加内容 */ public function addcookie($content){ $trace=cookie('trace');//读取原有值 if (!empt ...

  5. 使用百度统计功能快速统计网站的访问情况

    在网站建设完成后,很多人都希望统计到网站的访问情况,如访问了哪个页面.页面停留时间.访问者的IP地址以及访问设备.访问者所在的省份区域.访问来源等诸多信息,要实现这种功能可以自行编写代码,从http请 ...

  6. 网站统计功能的设计与实现

    关键字:网站统计 设计 实现  作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/p/website-statistic-analysis.html 本文简要介绍 ...

  7. 网站统计功能的设计和实现

    本文简要介绍网站统计功能的设计与实现. 本文分为以下五个部分: 埋点设计与实现 页面引入 数据接收 数据入库 统计分析 一.埋点设计与实现 在JavaScript中,包含了很多对象,可以用于获取用户的 ...

  8. 自建站的博客网站添加百度统计功能统计流量

    有了自己的网站后,想要知道自己网站的访问情况怎么办,有两种方法,一种是自己写代码进行ip地址获取并解析IP地址来源从而得到IP地址属地,进一步进行统计.另一种方法就是使用现有的统计工具,我这里使用的是 ...

  9. 【Storm】Spout的storm-starter及Grouping策略、并发度讲解、网站浏览量和用户数统计

    maven先安装好. 以下讲storm-starter的使用. 1.从github下载官方的storm-starter例子包,是maven工程, 地址 https://github.com/natha ...

最新文章

  1. oschina多媒体工具
  2. Django models部分,数据库建立,错误解决
  3. Floyd-傻子也能看懂的弗洛伊德算法
  4. JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)
  5. 现代c++之列表初始化/统一初始化
  6. SAP ABAP SE16 and SE17
  7. if的作用域问题 *输出1~6的随机数*
  8. 前端开发-编辑器安装-HbuilderX安装过程与基本使用 0226
  9. Java中Javadoc的{@link}与@see的简单区别
  10. 李彦宏发布人生第一条Vlog,发力视频从自己做起
  11. lxc设置网络为公网IP
  12. RF修改服务器设置,3-RF服务端程序安装手册V1.0(7页)-原创力文档
  13. 基于时空融合的高效率多阶段视频降噪方法-EMVD
  14. 诗词温习集:跟梁瀚文一起重温诗词(唐诗)之《春望》
  15. ZZULIOJ:1035: 分段函数求值
  16. 数据结构算法(2)--字符串匹配
  17. 计算机基础知识(基础入门小白专属)四
  18. 装了oracle 开机卡黑屏,开机黑屏进不了系统,手把手教你解决电脑开机黑屏进不了系统...
  19. MATLAB图像的平移和旋转
  20. springboot+神奇桔乡旅游信息系统 毕业设计-附源码191750

热门文章

  1. 改纸盒大小_【亲子手工】废旧纸盒大改造,孩子们超级喜欢玩.......
  2. python常见知识点整理
  3. 建立副本名称冲突_WOW副本杂谈(七)——哀嚎洞穴:若只如初见
  4. 360携手贵阳开启数据安全战略合作 周鸿祎警示勒索攻击危害
  5. lingo3d学习之路
  6. Dell Inspiron 3670装机记录
  7. iOS 之获取IP地址 以及 判断个人热点是否开启
  8. 《从面试别人想到的》----泡论坛看到的,写的很有见地,适合我们刚毕业的和毕业一段时间的孩子。...
  9. 社交应用如何防范“虚假流量”?安全检测服务帮你快速识别
  10. 【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)