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 相关文章推荐
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
JavaScript DOM节点添加示例
Jul 16 Javascript
了不起的node.js读书笔记之node.js中的特性
Dec 22 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
Nov 07 Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
Javascript Worker子线程代码实例
Feb 20 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
python获取交互式ssh shell的方法
2019/02/14 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
经理秘书找工作求职信
2013/12/19 职场文书
设计专业自荐信
2014/06/19 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
夫妻吵架保证书
2015/05/08 职场文书