jQuery.cookie.js实现记录最近浏览过的商品功能示例


Posted in Javascript onJanuary 23, 2017

本文实例讲述了jQuery.cookie.js实现记录最近浏览过的商品功能。分享给大家供大家参考,具体如下:

1、jquery.cookie.js

/*jquery.cookie.js */
jquery.cookie = function(name, value, options) {
  if (typeof value != 'undefined') { // name and value given, set cookie
    options = options || {};
    if (value === null) {
      value = '';
      options.expires = -1;
    }
    var expires = '';
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
      var date;
      if (typeof options.expires == 'number') {
        date = new Date();
        date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
      } else {
        date = options.expires;
      }
      expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
    }
    var path = options.path ? '; path=' + options.path : '';
    var domain = options.domain ? '; domain=' + options.domain : '';
    var secure = options.secure ? '; secure' : '';
    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
  } else { // only name given, get cookie
    var cookieValue = null;
    if (document.cookie && document.cookie != '') {
      var cookies = document.cookie.split(';');
      for (var i = 0; i < cookies.length; i++) {
        var cookie = jQuery.trim(cookies[i]);
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) == (name + '=')) {
          cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
          break;
        }
      }
    }
    return cookieValue;
  }
};

2、实现最近浏览过的商品

var cookieName = "PrdIDCookie";  //cookie名称
var nid;             //最新访问的商品ID
var N = 5;            //设置cookie保存的浏览记录的条数
//记录最近浏览过的商品
function HistoryRecord() {
  var historyp;
  nid = $("#PrdID").val();
  if (nid == null || nid == "") {
    return;
  }
  //判断是否存在cookie
  if ($.cookie(cookieName) == null) //cookie 不存在
  {
    //创建新的cookie,保存浏览记录
    $.cookie(cookieName, nid, { expires: 7, path: '/' });
  }
  else //cookies已经存在
  {
    //获取浏览过的商品编号ID
    historyp = $.cookie(cookieName);
  };
  //分解字符串为数组
  var pArray = historyp.split(',');
  //最新访问的商品编号放置载最前面
  historyp = nid;
  //判断是该商品编号是否存在于最近访问的记录里面
  var count = 0;
  for (var i = 0; i < pArray.length; i++) {
    if (pArray[i] != nid) {
      historyp = historyp + "," + pArray[i];
      count++;
      if (count == N - 1) {
        break;
      }
    }
  }
  //修改cookie的值
  $.cookie(cookieName, historyp);
}
//获取最近浏览过的商品
function BindHistory() {
  var historyp = "";
  if ($.cookie(cookieName) != null) //cookie 不存在
  {
    //获取浏览过的商品ID
    historyp = $.cookie(cookieName);
  }
  if (historyp == null && historyp == "") {
    return;
  }
  else
  {
    var prdIDs = [];  //将商品ID以列表或数据的方式保存
    var pArray = historyp.split(',');
    for (var i = 0; i < pArray.length; i++) {
      if (pArray[i] != "") {
        //alert(pArray[i]);
        prdIDs.push(pArray[i]);
      }
    }
    //--->请求商品详细详细...
  }
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 禁止复制网页
Jun 11 Javascript
jquery 事件执行检测代码
Dec 09 Javascript
jquery+json 通用三级联动下拉列表
Apr 19 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
JavaScript Date对象功能与用法学习记录
Apr 28 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
JS实现可以用键盘方向键控制的动画
Dec 11 Javascript
利用JS实现简单的日期选择插件
Jan 23 #Javascript
获取IE浏览器Cookie信息的方法
Jan 23 #Javascript
jQuery实现的简单悬浮层功能完整实例
Jan 23 #Javascript
原生和jQuery的ajax用法详解
Jan 23 #Javascript
基于MVC方式实现三级联动(JavaScript)
Jan 23 #Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 #Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 #Javascript
You might like
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
PHP异常处理浅析
2015/05/12 PHP
php短信接口代码
2016/05/13 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
Node.js模块加载详解
2014/08/16 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
软件测试常见笔试题
2012/02/04 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
初级会计求职信范文
2014/02/15 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis