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 相关文章推荐
jQuery的学习步骤
Feb 23 Javascript
js限制文本框只能输入数字(正则表达式)
Jul 15 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
Feb 05 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
基于JavaScript实现前端数据多条件筛选功能
Aug 19 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 Javascript
浅谈JavaScript浅拷贝和深拷贝
Nov 07 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
PHP的FTP学习(四)
2006/10/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
PHP7新增函数
2021/03/09 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
解决vue-router中的query动态传参问题
2018/03/20 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python归并排序算法过程实例讲解
2020/11/04 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
团委竞选演讲稿
2014/04/24 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
oracle重置序列从0开始递增1
2022/02/28 Oracle