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 浮动广告实现代码
Dec 25 Javascript
JavaScript 动态将数字金额转化为中文大写金额
May 14 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
深入探密Javascript数组方法
Jan 08 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
详解JS模块导入导出
Dec 20 Javascript
js 实现watch监听数据变化的代码
Oct 13 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 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
laravel withCount 统计关联数量的方法
2019/10/10 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
vue如何使用rem适配
2021/02/06 Vue.js
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python学习小技巧总结
2018/06/10 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python json读写方式和字典相互转化
2020/04/18 Python
应届生新闻编辑求职信
2013/11/19 职场文书
教室标语大全
2014/06/21 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
领导视察通讯稿
2015/07/18 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
Vue2.0搭建脚手架
2022/03/13 Vue.js
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL