JS统计页面访问次数并传递可选参数

来源:互联网 发布:php域名授权管理系统 编辑:程序博客网 时间:2024/06/06 06:37
主题 概要 JS 用JS统计网站页面的访问次数,并传递可选参数 编辑 时间 新建 20171218 序号 参考资料 1

网站有些页面需要统计用户的访问次数,下面是一个简单的JS,引用在需要统计的页面类。
网站上有个Handler处理提交来的信息,只是简单的入库处理,用户每访问或者刷新一次,就有一条记录插入库中。

JS如下:

/**  * 统计页面访问次数 * 依赖于jquery * 使用方法: * 在页面添加引用 <script src="../../Scripts/PageVisit.js" type="text/javascript"></script> * 支持两个参数:  rootUrl:门户服务器地址,默认为空串 *               visiter:访客名,默认为'anonymous' * 门户页面引用可以不传递参数,直接使用相对路径 * 传递参数方法: *      <script src="../../Scripts/PageVisit.js?rootUrl=http://127.0.0.1:28099&visiter=test" type="text/javascript"></script> * 注意:rootUrl最后不应有'/'*/(function (root, factory) {    //--root is window    factory(root.jQuery, root);})(this, function ($, window) {    function PageVisit() {        this.parseOption();        this.recordLog();    }    PageVisit.defaults = {        visiter: 'anonymous',        rootUrl: ''    };    /**     * 解析选项,如果未设置选项,则用默认选项     */    PageVisit.prototype.parseOption = function () {        var params = new Map();        var document = window.document;        var js = document.getElementsByTagName("script");        for (var i = 0; i < js.length; i++) {            if (js[i].src.indexOf("PageVisit.js") >= 0) {                var arraytemp = new Array();                arraytemp = js[i].src.split('?');                if (arraytemp.length > 1) {                    var paramsArray = arraytemp[1].split('&');                    paramsArray.forEach(element => {                        paramsArray = element.split('=');                        params.set(paramsArray[0], paramsArray[1])                    });                }            }        }        var parsedOption={rootUrl:params.get('rootUrl'),visiter:params.get('visiter')}        this.options = $.extend({}, this.constructor.defaults,parsedOption);    }    PageVisit.prototype.recordLog = function (options) {               var self = this;        var pathname = window.location.pathname;        var hostname = window.location.hostname + ':' + window.location.port;        var search = window.location.search.split('?')[1];        var href = window.location.href.split('?')[0];        var reqUrl = "/Modules/SYS/PageVisitHandler.ashx";        if (self.options.rootUrl !== undefined && self.options.rootUrl !== '') {            reqUrl = self.options.rootUrl + reqUrl;        }        $.ajax({            type: "Post",            url: reqUrl,            data: { pathName: pathname, domainName: hostname, url: href, params: search, visiter: self.options.visiter },            success: function (data) {            }        });    }    return new PageVisit();});

两种使用方式:
1.如果页面与后台Handler是同一个站点,则直接引用

<script src="../../Scripts/PageVisit.js" type="text/javascript"></script>

2.如果页面与后台Handler不是同一个站点,如是APP中的页面,则要传递Handler所在服务器的地址,如:

<script src="../../Scripts/PageVisit.js?rootUrl=http://127.0.0.1:28099&visiter=test" type="text/javascript"></script>
原创粉丝点击