使用cookie记录点击/浏览历史并以json格式存入

好久没写博客了。今天就写一个小demo。

使用cookie记录每次点击的历史记录,并且以json的格式存入cookie,如果相同的浏览记录,则不记录

demo中只设置了记录最新的3条数据。。

if (len > 2) {
                    json1.splice(0, 1);
}

更多的可修改下面代码中的 2。

具体代码如下:

html部分:

<div class="clx-3">
    <ul id="searchCityListB">
        <li><a class="col1" data-areaId="1" >测试1</a></li>
        <li><a class="col1" data-areaId="2" ><span class="">测试2</span></a></li>
        <li><a class="col1" data-areaId="3" ><span class="">测试3</span></a></li>
        <li><a class="col1" data-areaId="4" ><span class="">测试4</span></a></li>
        <li><a class="col1" data-areaId="5" ><span class="">测试5</span></a></li>
        <li><a class="col1" data-areaId="6" ><span class="">测试6</span></a></li>
    </ul>
</div>

css部分:

*{margin:0; padding: 0;}
.clx-3{ width: 100%;}
.clx-3 li{ float: left; list-style: none; width: 33.333%; line-height: 50px; text-align: center; border-bottom: #ddd 1px solid; border-right: #ddd 1px solid; box-sizing: border-box}
.clx-3 li:nth-child(3n+0){ border-right: none}

js部分:

$(document).on(‘click‘, ‘#searchCityListB li‘, function (event) {
        var areaIdS = $(this).children().attr("data-areaid");
        var cityNameS = $(this).children().text();
        setHistoryK(cityNameS, areaIdS);
    });

    //设置cookies
    function setHistoryK(cityNameS, areaIdS) {
        var len = 0;
        var canAdd = true;
        var historyData, json1;
        var firstStr = " [" +
                " {\"cityName\":\"" + cityNameS + "\"," +
                " \"areaId\":" + areaIdS + "}" +
                " ]";

        var jsonFirstStr = JSON.stringify(firstStr);

        if (!getCookie("cityHistory")) { //第一次的时候需要初始化
            setCookie("cityHistory", jsonFirstStr);
        } else {  //已经存在
            historyData = getCookie("cityHistory");
            json1 = eval("(" + historyData + ")");
            if (typeof(json1) == "string") {
                json1 = JSON.parse(json1);
            }

            len = json1.length;

            $(json1).each(function () {
                if (this.cityName == cityNameS) {
                    canAdd = false;
                    return false;
                }
            });

            if (canAdd == true) {
                if (len > 2) {
                    json1.splice(0, 1);
                }

                var newJsonStr = {"cityName": cityNameS, "areaId": areaIdS},jsonSetStr;
                json1.push(newJsonStr); //添加一个新的记录
                jsonSetStr = JSON.stringify(json1);
                setCookie("cityHistory", jsonSetStr);
                console.log(jsonSetStr);
            }
        }

    }

引用一个cookie.js

具体代码如下:

//写cookies
function setCookie(name,value)
{
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

//获取cookies
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
    else
        return null;
}

//检查cookies
function checkCookie(c_name){
    if (document.cookie.length>0)
      {
      c_start=document.cookie.indexOf(c_name + "=")
      if (c_start>0)
        var arr = new Array();
       arr = document.cookie.split(";");
       return arr.length
      }
}

//删除cookies
function delCookie(name)
{
    var keys=document.cookie.match(/[^ =;]+(?=\=)/g);
    if (keys) {
        for (var i = keys.length; i--;)
            document.cookie=keys[i]+‘=0;expires=‘ + new Date( 0).toUTCString()
    }
}
时间: 2024-10-21 02:48:44

使用cookie记录点击/浏览历史并以json格式存入的相关文章

cookie记录用户的浏览商品的路径

在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联. 下面将使用cookie记录用户的浏览过的历史页面.该网站将每个页面的标题保存在该页面的$TITLE 变量中,用户每访问一次,就将新访问的标题添加到COOKie变量$_COOKIE["history"]值中. 随着访问页面的次数增多,该cookie变量中保存的含有页面标题的字符串会越来越长.将cookie变量切分成数组.然后输出数组元素的值就可以输出用户最近访问的页面的标题了 <

Cookie案例-显示商品浏览历史纪录

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.Date; 6 import java.util.HashMap; 7 import java.util.LinkedHashMap; 8 import java.util.Map; 9 10 import javax.servlet.ServletException; 11 im

网页浏览历史纪录(Cookie技术)

一.实现原理: 首先创建一个Cookie用于记录访问网页的编号:或者商品的编号 每次访问完就往这个Cookie中更新新的数据(新建Cookie重新添加,主要用于访问的页面在原有历史纪录中已经存在,需要删除原有纪录重新添加) 在需要显示的历史纪录的数据准备页面进行获取,然后转发给显示JSP页面,进行显示. 二.DEMO 图书数据准备页面:ShowBookList (Servlet) package com.heima.demo1; import java.io.IOException; impor

Cookie小案例-----记住浏览过的商品记录

Cookie小案例------记住浏览过的商品记录 我们知道,这个功能在电商项目中很常见.这里处理请求和页面显示都是由servlet实现,主要是为了体现cookie的作用, 实现功能如下: 1,点击购买的商品后,显示到另一页面 2,记住用户浏览过的商品,并在页面时中显示 3,当浏览过的数量超过最大值限度时,最下面一个商品被挤下去 4,当浏览过的商品本身就在浏览记录中,显示列表将其从中间移到最上面 显示一打开网站的样子和显示用户的浏览记录: package cn.itcast.cookie; im

cookie技术案例-用户浏览商品的记录

1引言 你点击了桌面上的Chrome图标,一个浏览器窗口出现了,输入网址就可以在Internet世界愉快玩耍.这一切是怎么实现的呢?Chromium这个多进程的程序是如何启动各个进程的呢?浏览器主进程(界面进程)启动了哪些线程?如何启动的呢?这些问题一直萦绕在心头,一起来看看源代码吧.本文主要针对Chromium for Mac的源代码,其它操作系统大同小异. 2背景知识 浏览器作为一个应用程序,是以进程的形式运行在操作系统上的.首先,Chromium是一个多进程的应用程序,我们需要了解Chro

PHP实现将浏览历史页面网址保存到cookie的方法

这篇文章主要介绍了PHP实现将浏览历史页面网址保存到cookie的方法,涉及php对cookie的读取.字符串转化及保存等技巧,需要的朋友可以参考下 本文实例讲述了PHP实现将浏览历史页面网址保存到cookie的方法.分享给大家供大家参考.具体如下: 将浏览历史页面网址保存到cookie,大致的思路如下面的代码,与实际应用有些差别. 代码如下: <?php /*******  说明:cookie只能保存字符串 本实例中,需要保存多个URL(历史访问记录),思路是先将URL数组转为字符串,然后保存

记录文件浏览历史路径

这里使用ComboBox显示和记录浏览历史,用*.ini文件永久记录浏览历史,这里记录的是文件夹路径,记录文件路径也是一样的. string inimultipleFilePath = Application.StartupPath + @"\Plugin\CreateWaterhistoricalpath.ini";//*.ini文件的存放路径 List<string> listHistory = new List<string>();//用于临时存储浏览历史

BOM 浏览器对象模型_当前窗口的浏览历史 history 对象

当前窗口的浏览历史 window.history 对象 保存了当前窗口访问过的所有页面网址 由于安全原因,浏览器不允许脚本读取这些地址,但是允许在地址之间导航 history.back() 相当于 history.go(-1) 浏览器工具栏的 “前进” 和 “后退” 按钮,其实就是对 History 对象进行操作 // 当前窗口访问过多少个网页 window.history.length // 1 // History 对象的当前状态 // 通常是 undefined,即未设置 window.h

【编程马拉松】【022-网页浏览历史】

[编程马拉松算法目录] [022-网页浏览历史][工程下载>>>] 1 题目描述 标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录.通过后退或向前按钮就能在历史记录之间跳转. 现在,请你模拟这个功能,接收如下三条指令: 1. BACK:回退功能,即回退到上一个访问的页面: 2. FORWARD:使用BACK返回上一页之后,可以使用FORWARD回到下一页: 3. VISIT url:访问指定url的页面,并且所有FORWARD的页面都被清空. 1.1 输入描述: 输入包含多组