cookie插件下载地址:http://pan.baidu.com/s/1i4tpsET

在web项目开发过程中,会有页面的跳转,部分跳转需要加载数据,这里就存在不同的解决方案,其中之一就是cookie携带参数到跳转的页面。其他的解决方案只做思想的说明,不详细说明,cookie方式实现将在本博客中具体说明。

方式一:通过将参数拼接在链接后,发送跳转请求,在工程中将请求需要的参数放到request域中,然后跳转到目标页面,在目标页面通过request域获取参数数据,通过获取的参数再向后台发送请求,获取需要加载的数据,将数据加载到页面。这种方式需要在链接后面拼接参数,参数较少还不是很麻烦,要是参数较多就存在问题,毕竟搜索框中链接的长度是有限的,另外就是参数过于的暴露,不是很友好的方式。

方式二:在方式一的基础上,在跳转的过程中,就将请求的最终数据封装到域中,而不是将参数保存到域中,减少一次请求,这种方式同样具有方式一的缺点。不算是友好的方式。

方式三(重点):cookie实现请求数据的封装

第一步:将需要使用的参数存储到cookie中,然后直接跳转到目标页面

第二步:在目标页面从cookie中取值,取出需要的参数,将参数存储到页面的全局变量中

第三步:发送ajax请求,带上参数,获取页面需要加载的数据,将数据显示出来

第四步:定义一个页面加载完毕事件,在页面加载结束后,将cookie携带的参数清除

优点:

1、cookie携带数据,不需要在链接中拼接参数;

2、在目标页面加载结束后,将cookie清除,可以相对保证数据安全,在整个操作过程中cookie存在的时间很短;

3、cookie清除后,可以防止cookie共享数据的污染,如两个页面的cookie对应的path属性相同且变量名相同,就会导致修改一个页面的cookie参数,另一个页面的cookie参数也会变化,造成数据污染;

4、cookie清除后,可以防止cookie数量超过限制,一个域名下存储的cookie是有限的;

缺点:

1、由于参数保存在页面的全局变量中,会造成刷新页面,数据丢失问题,但是这个问题并不是太大,因为现在大多都是采用异步请求局部刷新的方式,一般不会导致数据丢失;

2、不同的浏览器存在cookie的存储差异,可能会存在问题,但是这个问题也不大,因为主流浏览器都能完美支持,不会出现这种情况。

代码的实现:

1、 jQuery自身是没有cookie的保存、取出、删除的功能,需要自己添加jQuery的cookie插件,这里提供给大家。

<script src="https://code.csdn.net/snippets/1557059.js"></script>

2、        在页面中存储cookie的值

默认路径存储cookie的值

[javascript] view plain copy

$.cookie("test","aabbcc");

自定义路径存储cookie的值

[javascript] view plain copy

$.cookie("test","aabbcc",{path: "/web/test/list"});

注意这里设置的路径,在取cookie值的页面中,页面要是这个路径的子路径或者相同路径,否则无法取到cookie中的值

3、在页面中取出cookie的值

[javascript] view plain copy

var cookie_value = $.cookie("test");

cookie_value就是cookie中存在的值

4、在页面删除cookie值

页面加载结束清除cookie值

<script src="https://code.csdn.net/snippets/1557048.js"></script>

页面关闭清除cookie值

<script src="https://code.csdn.net/snippets/1557051.js"></script>

上面的两种清理方式其实是一样的,主要是相说明这两个事件。

这些都是在开发过程遇到的问题,和团队讨论的结果,希望对博友们有所帮助。有什么问题记得留言哦,大家可以一起讨论。

本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1740053

项目cookie优化之cookie数量限制和多页面共享污染数据问题相关推荐

  1. Vue-cli3项目seo优化--静态化打包(动态改变页面Titl、keyWords、description)

    Vue-cli3项目seo优化,静态化打包(动态改变页面Titl.keyWords.description) 文章目录 Vue-cli3项目seo优化,静态化打包(动态改变页面Titl.keyWord ...

  2. iOS:项目中用到的Cookie

    1.介绍: 做了这么长时间开发,Cookie真是用的不多,可是现在不一样了,这次的项目我用到了Cookie.其实,Cookie的使用在项目中愈加的频繁,一般情况下,提供的接口是用Cookie来识别用户 ...

  3. springboot项目中session和cookie

    cookie例子: 添加cookie 需要在方法中添加参数 HttpServletResponse response Cookie cookie = new Cookie("u_id&quo ...

  4. Vue项目性能优化篇

    Vue项目性能优化是个老生常谈的问题了,本人开发过程中也查过很多关于Vue项目优化的文章,每篇文章说的都差不多,本章我就结合我的心得和大家的智慧做一个总结. 1.懒加载 懒加载应该是提高性能的最简单有 ...

  5. Vue 项目上线优化

    上线项目的优化 优化上线项目,首先在上线打包时我们通过babel插件将console清除,当然对项目打包后的体积的影响是微乎其微,对项目的入口文件的改善也是很有必要的,因为在开发阶段和上线如果我们使用 ...

  6. java删除一级域名下cookie_java操作cookie示例(删除cookie)

    1.设置Cookie 代码如下: Cookie cookie = new Cookie("key", "value"); cookie.setMaxAge(60 ...

  7. 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文 ...

  8. vue项目性能优化——断点续传

    vue项目性能优化 用户上传文件的时候,如果文件过大,那么上传可能就会很耗时.而且一旦上传的过程中发生了网络中断,那上传就前功尽弃了.为了提高用户的体验,我们可以选择断点续传,也就是把文件切分成小块后 ...

  9. 微信公众号删除cookie失败,cookie设置了过期时间不管用,微信公众号cookie比较诡异,删不掉,解决办法,原生JS封装cookie统一操作删除cookie,读取cookie,删除cookie

    公司有个项目,需求是这样的: pc 端的项目,有一个步骤可以在手机上操作,页面都在同一个域名下面,但是pc端需要登录(用到了 cookie ),公众号端不需要登录(不用 cookie ) ,不清楚服务 ...

  10. 项目性能优化之性能问题分析和压力测试

    项目性能优化之性能问题分析和压力测试 性能问题分析 为什么要性能优化 影响性能的关键要素 性能优化出发点 性能压力测试 什么是压力测试 压力测试的指标 常用压测工具 性能问题分析 为什么要性能优化 应 ...

最新文章

  1. BaaS, IaaS, PaaS, SaaS介绍
  2. MIT霸气护学生:你换导师,我替你买单!
  3. 计算机二进制加减符号,(带符号的二进制数的表示方法及加减法运算).ppt
  4. eclipse安装maven插件_牛X!Eclipse 开始支持 Java 14~
  5. mysql关于or的索引问题
  6. 求素数为什么到平方根就行了
  7. java gc时自动收dump_Full GC分析:设置Java VM参数实现在Full GC前后自动生成Dump
  8. c语音异或运算符_C语言中的按位异或运算符有什么用处?
  9. java 自带导出excel_4.java项目页面导出excel功能
  10. 计算机视觉基础---OpenCV框架与图像插值算法(图像伸缩)cpp+python
  11. 正则表达式 re模块
  12. 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
  13. 小技巧处理div内容溢出
  14. 利用GDB、KGDB调试应用程序及内核驱动模块
  15. 光储并网直流微电网控制策略及仿真模型
  16. 4g通信模块怎么连接sim卡_SIM卡GPRS模块知识详解 浅谈SIM卡GPRS之原理模块
  17. redis基础篇——数据一致性
  18. OpenCore 版本升级后清除NVRAM
  19. windows2008服务器sa密码修改,关于SQL Server 2008忘记sa密码修改sa密码的方法图解
  20. win10 java无法运行_如何解决win10配置jdk之后javac无法运行的情况?

热门文章

  1. css中用于设置首行文本缩进的属性是,css中设置段落缩进的属性是什么
  2. C语言 链表 3个结点,一个关于C语言链表头结点的问题
  3. C#中如何获取一个二维数组的两维长度,即行数和列数?
  4. python join用法
  5. Layui layui-soul-able 组件 表格列进行拖拽
  6. sprintf参数包含本身时,结果并不符合预期
  7. SVN遗漏so文件的解决办法
  8. 使用之后,谈谈国产芯片的体验
  9. error MSB8008: 指定的平台工具集()未安装或无效。请确保选择受支持的 PlatformToolset 值
  10. 管理感悟:一偷懒,必出错