首页 > 其他分享 >AngularJS进阶(十五)Cookie ‘data‘ possibly not set or overflowed because it was too large_angular

AngularJS进阶(十五)Cookie ‘data‘ possibly not set or overflowed because it was too large_angular

时间:2024-09-06 12:52:04浏览次数:8  
标签:存储 set 进阶 cookies module instance cookie cookieStore was

Cookie ‘data’ possibly not set or overflowed

because it was too large (5287 > 4096 bytes)!

注:请点击此处进行充电!

故事起源

项目开发过程中遇到以上问题,刚开始以为只是个警告,没太在意。后来发现直接影响到了程序的执行效果。果断寻找解决方法。

问题分析

根据Chrome浏览器信息定位,显示以下代码存在错误:

$cookieStore.get(“data”)

由于自己在程序使用cookieStore存储了大量所需数据,其数据量超过了cookie默认设定的存储值4K,故会报错。

换用instance试试。问题成功解决,实践证明:instance比cookieStore好用。

刨根问底

1.cookieStore默认存储多少数据?可否更改默认存储数据?

经过网络查询也没能获得明确答案,不过从提示可以看出,其可存储数据空间就是4K,而且其提供的方法只有put、get、remove三种,故得知更改其默认存储数据空间是不现实的事情。

2.从cookieStore获取数据后,系统自己释放存储空间,还是必须得手动释放?是不是类似于java的垃圾回收机制?

凭借直觉,cookieStore应该类似于java的垃圾回收机制,就算没有人工编码实现释放cookieStore所占用的存储空间,系统也会在其生命周期结束后释放其存储空间。最佳实践是:当从cookieStore中取出所需数据,不再需要cookieStore时,应收到释放其所占用的内存空间。这样才是合理的设计。

3.cookieStore与instance的区别?

如上述所分析,从内存占用的角度考虑,cookieStore中存储的数据置于内存之中,实实际际的占用内存空间。而instance类似于指针,只是其指向的是一个对象地址,其对象是可以存储任意内容、格式、大小的数据的,不受内存所限。

注:有关instance的详情请点击此处.

附:使用步骤

AngularJS 提供了很好的  c o o k i e  和  cookie 和  cookie 和 cookieStore API 用来处理 cookies 。

这两个服务都能够很好的发挥HTML5 cookies,当HTML5 API可用时浏览器会选择使用HTML5提供的API,如果不可用则默认选择document.cookies。无论那种方式,你都可以选择使用相同的API来进行工作。

Step 1 - include cookies module

第一步加载JS文件,并且依赖 cookie module

<script src="http://code.angularjs.org/1.2.9/angular.min.js"></script>
<script src="http://code.angularjs.org/1.2.9/angular-cookies.min.js"></script>

创建 angular module

    var DemoApp = angular.module( 'DemoApp', ['ngCookies'] ).config( demoConfig );
Step 2 - Inject into controller

将cookie module 注入到 controller 中

DemoApp.controller('DemoController', function($cookieStore, $scope, $location, $routeParams, $http , $timeout ){ .. body here .. })

Step 3 - Using the $cookieStore

现在可以使用put、get 、remove方法操作 cookie , $cookieStore 可以直接存储对象到cookie中,它会使用angularjs 的 toJson/fromJson 自动序列化和反序列化

标签:存储,set,进阶,cookies,module,instance,cookie,cookieStore,was
From: https://blog.csdn.net/2401_86400095/article/details/141873526

相关文章

  • C++ STL set/multiset容器
    set/multiset容器简介Set的特性是,所有元素都会根据元素的值自动被排序。Set不允许两个元素有相同的值。Set的迭代器iterator是一种const_iterator,不能通过迭代器改变任意set元素的值。multiset的特性和用法和set相同,唯一的差别在于它允许值重复。set和multiset的底层实现是红......
  • GROUPING_SETS 用法
    在Hive中,`GROUPINGSETS`是一个用于生成多个分组聚合的SQL功能,它可以让你在一个查询中指定多个分组集,这样可以有效地生成多维度的汇总数据。下面我将通过一个例子来展示如何使用`GROUPINGSETS`,并创建一个Hive表以及插入十条数据进行演示。###步骤1:创建Hive表首先,我们创建......
  • 第七.八.九天---RSA进阶题型
    还是先复习,没有连续更新的原因是因为有一天满课,有一个家里有事情没有心情弄,不说了,好好干吧!T31--扩展欧几里得一.题目:fromCrypto.Util.numberimport*flag=b'******'m1=bytes_to_long(flag[:len(flag)//2])m2=bytes_to_long(flag[len(flag)//2:])assert18608629......
  • OWASP TOP10 漏洞解析:访问控制崩溃
    一、定义访问控制崩溃,指的是访问控制策略没有被正确地执行,导致用户可以在他们的预期权限之外进行操作。这种缺陷通常会导致未授权的信息被泄露、修改、销毁,或者让用户执行了超出其权限限制的业务功能。表现形式,也就是我们常说的越权漏洞。越权分为:水平越权:A、B两个用户......
  • 武汉黑马进阶班第五天
    正则表达式&&泛型&&Collection集合1.正则表达式String方法.matches(规范格式)2.用在方法里面(是由一串特殊字符组成的字符串)不需要去记,上网查都是能够查到的2.泛型<>---里面可以是四类八种包装类,也可以是String,也可以是自定义对象注意:Student类中需要规范JavaBean接口先定义......
  • 【Day06-集合-Collection&List&Set】
    集合        集合框架概述        Java集合框架(JavaCollectionFramework,JCF)是Java编程语言的一部分,它提供了一种存储和操作一组对象的方式。这个框架的设计目标是提供一组标准的数据结构来帮助开发者更有效地管理数据。        接口与实现接口......
  • 『功能项目』AssetBundle上传加载u3d模型【23】
    本章开始做游戏的登陆界面,运用热更新的AssetBundle上传加载u3d模型首先在22骑乘坐骑项目基础上重新创建一个场景重命名为RegistrationUI在资源商店下载一个场景选择一个免费资源场景导入进入新导入的场景完全解压缩后重命名为ResUIScene将颜色调成为蓝色调删......
  • 第四天 Pytset 测试框架
    一、Pytset介绍pytest是一个用于Python的开源测试框架,支持简单、灵活且功能强大的单元测试、功能测试和集成测试。它是目前最流行的Python测试工具之一,具有易用性和丰富的功能pytest使用简单的命名规则,测试函数的名称必须以test_开头,便于框架自动识别和执行pytest ......
  • Datawhale X 李宏毅苹果书 AI夏令营(进阶Task03)
    批量归一化为什么不同的参数在更新时其梯度变化如此之大?首先,对于模型中w1,w2两个参数,可以看到其w1参数的梯度变化较为平滑,w2梯度变化较为陡峭,原因是x1较小时,当w1变化较大,由于x1较小,其整体乘积较小,对损失值影响不大;x2较大时,w2发生变化,其乘积较大,其对损失值变化很大,影响较大。......
  • 第16篇 如何制作自己的安装程序--使用InnoSetupPE工具
    1.安装去官网下载最新版本:https://jrsoftware.org/isdl.php#stable2.进入应用主界面3.点击file》New【开始打包】直接next4.填写相关数据直接点next5.根据要求填写,然后直接next6.这里默认不改,然后直接next7.这里也默认不改,然后直接next8.这里为空,可以不填,然后......