jquery使用Cookie和JSON记录用户最近浏览历史


Posted in Javascript onApril 19, 2016

在一些电商网站,有“商品浏览历史记录”这一功能,一些视频类、小说类的网站也能记录用户最近的浏览历史。本文将使用Cookie以及JSON来讲解如何实现这一功能。
Cookie可以用来记录客户端用户ID、密码、浏览过的网页、停留的时间等信息,jQuery提供了一个cookie插件,能非常方便的读写cookie信息。
基本流程:
1、获取文章详情页面文章的标题和页面地址;
2、获取浏览历史cookie信息,判断如果浏览历史的cookie中已经存在当前文章的浏览记录,则不进行任何操作;
3、如果浏览历史的cookie中不存在当前文章的浏览记录,则将当前文章的cookie信息(文章标题和页面地址)写入浏览历史的cookie信息中。写入的cookie信息,采用JSON数据格式,便于读取。
4、获取浏览历史cookie信息,遍历JSON数据,分析并输出浏览历史记录。
详解:
1、保证要记录浏览历史的文章详情页面已载入jquery和cookie插件。获取当前文章页面的文章标题和页面地址: 

var art_title = $(".blog_txt h2").text(); //文章标题 
var art_url = document.URL; //页面地址

2、获取用户历史浏览记录,如果已经存在浏览历史,则分析历史记录的cookie信息(JSON数据格式),获取记录长度。

var canAdd = true; //初始可以插入cookie信息 
var hisArt = $.cookie("hisArt"); 
var len = 0; 
if(hisArt){ 
  hisArt = eval("("+hisArt+")"); 
  len = hisArt.length; 
}

3、如果浏览历史cookie信息已经存在,则遍历cookie信息,对比当前文章标题,如果cookie信息中已经存在当前文章标题,则中止程序,不做任何操作。

$(hisArt).each(function(){ 
  if(this.title == art_title){ 
    canAdd = false; //已经存在,不能插入 
    return false; 
  } 
});

4、如果浏览历史cookie中不存在当前文章,则可以像浏览历史cookie中插入当前文章的cookie信息。此时需要构建json数据,将已有的浏览记录cookie和当前页面的cookie信息已经组合成JSON数据,然后通过$.cookie()方法写入到浏览历史记录中。

if(canAdd==true){ 
  var json = "["; 
  var start = 0; 
  if(len>4){start = 1;} 
  for(var i=start;i<len;i++){ 
    json = json + "{\"title\":\""+hisArt[i].title+"\",\"url\":\""+hisArt[i].url+"\"},"; 
  } 
  json = json + "{\"title\":\""+art_title+"\",\"url\":\""+art_url+"\"}]"; 
  $.cookie("hisArt",json,{expires:1}); 
}

这样,我们就得到了用户的浏览历史记录cookie信息,cookie名称为hisArt,值为JSON格式的数据,如:[{"title":"article1","url":"a.html"},{"title":"article2","url":"b.html"},]
5、接下来,我们就要在需要展示用户浏览历史记录的cookie信息。在本例对应的demo页面,首先要获取浏览历史cookie:hisArt的值,然后分析,遍历,组合成字符串输出到页面,代码如下:

$(function(){ 
  var json = eval("("+$.cookie("hisArt")+")"); 
  var list = ""; 
  for(var i=0; i<json.length;i++){ 
    list = list + "<li><a href='"+json[i].url+"' target='_blank'>"+json[i].title+"</a></li>"; 
  } 
  $("#list").html(list); 
});

我们在demo的页面中放置了一个#list的列表,当然这个页面也需要预先载入jquery库和cookie插件。

以上就是本文的全部内容,希望对大家学习cookie插件有所帮助。

Javascript 相关文章推荐
Mozilla 表达式 __noSuchMethod__
Apr 05 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
jQuery取消特定的click事件
Feb 29 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
JS实现可视化文件上传
Sep 08 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 #Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 #Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 #Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 #Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 #Javascript
深入浅析JavaScript中的constructor
Apr 19 #Javascript
js点击返回跳转到指定页面实现过程
Aug 20 #Javascript
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
smarty中post用法实例
2014/11/28 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
vue图片上传组件使用详解
2019/12/23 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
机器学习实战之knn算法pandas
2019/06/22 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
python asyncio 协程库的使用
2021/01/21 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
小学德育工作经验交流材料
2014/05/22 职场文书
环保标语口号
2014/06/13 职场文书
升职自荐信怎么写
2015/03/05 职场文书
关于倡议书的范文
2015/04/29 职场文书
工程进度款催款函
2015/06/24 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
python实现简单反弹球游戏
2021/04/12 Python
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers