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 相关文章推荐
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
jquery中通过过滤器获取表单元素的实现代码
Jul 05 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
JavaScript利用正则表达式去除日期中的-
Jun 09 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
JavaScript 是什么意思
Sep 22 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
js实现图片360度旋转
Jan 22 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
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 session机制
2011/07/17 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python使用sorted对字典的key或value排序
2018/11/15 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
银行求职推荐信范文
2013/11/30 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
教师个人教学总结
2015/02/11 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript