国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
AngularJS進(jìn)階(十五)Cookie ''''data'''' possibly not set or overflowed because it was too large

Cookie 'data' possibly not set or overflowed

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

故事起源

      項(xiàng)目開發(fā)過程中遇到以上問題,剛開始以為只是個(gè)警告,沒太在意。后來發(fā)現(xiàn)直接影響到了程序的執(zhí)行效果。果斷尋找解決方法。

問題分析

    根據(jù)Chrome瀏覽器信息定位,顯示以下代碼存在錯(cuò)誤:

$cookieStore.get("data")

    由于自己在程序使用cookieStore存儲(chǔ)了大量所需數(shù)據(jù),其數(shù)據(jù)量超過了cookie默認(rèn)設(shè)定的存儲(chǔ)值4K,故會(huì)報(bào)錯(cuò)。

    換用instance試試。問題成功解決,實(shí)踐證明:instance比cookieStore好用。

刨根問底

1.cookieStore默認(rèn)存儲(chǔ)多少數(shù)據(jù)?可否更改默認(rèn)存儲(chǔ)數(shù)據(jù)?

        經(jīng)過網(wǎng)絡(luò)查詢也沒能獲得明確答案,不過從提示可以看出,其可存儲(chǔ)數(shù)據(jù)空間就是4K,而且其提供的方法只有put、get、remove三種,故得知更改其默認(rèn)存儲(chǔ)數(shù)據(jù)空間是不現(xiàn)實(shí)的事情。

2.從cookieStore獲取數(shù)據(jù)后,系統(tǒng)自己釋放存儲(chǔ)空間,還是必須得手動(dòng)釋放?是不是類似于java的垃圾回收機(jī)制?

        憑借直覺,cookieStore應(yīng)該類似于java的垃圾回收機(jī)制,就算沒有人工編碼實(shí)現(xiàn)釋放cookieStore所占用的存儲(chǔ)空間,系統(tǒng)也會(huì)在其生命周期結(jié)束后釋放其存儲(chǔ)空間。最佳實(shí)踐是:當(dāng)從cookieStore中取出所需數(shù)據(jù),不再需要cookieStore時(shí),應(yīng)收到釋放其所占用的內(nèi)存空間。這樣才是合理的設(shè)計(jì)。

3.cookieStore與instance的區(qū)別?

        如上述所分析,從內(nèi)存占用的角度考慮,cookieStore中存儲(chǔ)的數(shù)據(jù)置于內(nèi)存之中,實(shí)實(shí)際際的占用內(nèi)存空間。而instance類似于指針,只是其指向的是一個(gè)對(duì)象地址,其對(duì)象是可以存儲(chǔ)任意內(nèi)容、格式、大小的數(shù)據(jù)的,不受內(nèi)存所限。

注:有關(guān)instance的詳情請(qǐng)點(diǎn)擊此處.

附:使用步驟

    AngularJS 提供了很好的 $cookie 和 $cookieStore API 用來處理 cookies 。 

    這兩個(gè)服務(wù)都能夠很好的發(fā)揮HTML5 cookies,當(dāng)HTML5 API可用時(shí)瀏覽器會(huì)選擇使用HTML5提供的API,如果不可用則默認(rèn)選擇document.cookies。無論那種方式,你都可以選擇使用相同的API來進(jìn)行工作。

Step 1 - include cookies module

第一步加載JS文件,并且依賴 cookie module

[javascript] view plain copy
print?
  1. <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script>  
  2. <script src="http://code.angularjs.org/1.2.9/angular-cookies.min.js"></script>  

創(chuàng)建 angular module

[javascript] view plain copy
print?
  1. var DemoApp = angular.module( 'DemoApp', ['ngCookies'] ).config( demoConfig );  

Step 2 - Inject into controller

    將cookie module 注入到 controller 中

[javascript] view plain copy
print?
  1. DemoApp.controller('DemoController', function($cookieStore, $scope, $location, $routeParams, $http , $timeout ){ .. body here .. })  

Step 3 - Using the $cookieStore

    現(xiàn)在可以使用put、get 、remove方法操作 cookie , $cookieStore 可以直接存儲(chǔ)對(duì)象到cookie中,它會(huì)使用angularjs 的 toJson/fromJson 自動(dòng)序列化和反序列化

[javascript] view plain copy
print?
  1. $cookieStore.put("name","my name");  
  2. $cookieStore.get("name") == "my name";  
  3. $cookieStore.remove("name");  
  4. $cookieStore.put("persion", {  
  5.             name: "my name",  
  6.             age: 18  
  7. });  
  8. $scope.person = $cookieStore.get("persion");  

Step 4 - Using the $cookie

[javascript] view plain copy
print?
  1. DemoApp.controller('DemoController', function ($cookies, $scope) {  
  2.         $cookies.myFavorite = 'oatmeal haha';  
  3. })    


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Angular cookies cookieStore
什么是Cookie?有哪些類型?如何創(chuàng)建、讀取和刪除?
android中HttpClient獲取Session然后使用 WebView共享session的解決辦法(轉(zhuǎn))
OkHttp3之Cookies管理及持久化
AngularJS 1.3.0 不再支持 IE8
AngularJS開發(fā)指南28:創(chuàng)建服務(wù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服