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前台判断开始时间是否小于结束时间
Feb 23 Javascript
仿新浪微博返回顶部的jquery实现代码
Oct 01 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
JavaScript中判断两个字符串是否相等的方法
Jul 07 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 Javascript
JS实现页面侧边栏效果探究
Jan 08 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中echo和print的区别
2014/08/28 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
jquery multiSelect 多选下拉框
2010/07/09 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
vue中 this.$set的用法详解
2019/09/06 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
python函数的5种参数详解
2017/02/24 Python
Python SQLite3简介
2018/02/22 Python
Python多进程原理与用法分析
2018/08/21 Python
python如何求解两数的最大公约数
2018/09/27 Python
python求质数的3种方法
2018/09/28 Python
python实现抽奖小程序
2020/04/15 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
学前班教师的自我鉴定
2013/12/05 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
文体活动实施方案
2014/03/27 职场文书
公开承诺书格式
2014/05/21 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL