7

के बीच अंतर ngStorage और $ window.localStorage के बीच क्या अंतर है? एक के बजाय एक का उपयोग करना बेहतर क्यों है? मुझे एक वेब ऐप के लिए उनमें से एक चुनना है। मुझे प्रोफ़ाइल उपयोगकर्ता का डेटा और टोकन

उत्तर

5

यह सामान्य HTML5 स्थानीय संग्रहण है:

स्थानीय भंडारण के साथ

, वेब अनुप्रयोगों उपयोगकर्ता के ब्राउज़र के भीतर स्थानीय स्तर पर डेटा स्टोर कर सकते हैं दो सेवाओं शामिल हैं। एचटीएमएल 5 से पहले, प्रत्येक सर्वर अनुरोध में शामिल कुकीज़ में एप्लिकेशन डेटा को संग्रहीत किया जाना था। स्थानीय भंडारण अधिक सुरक्षित है, और वेबसाइट प्रदर्शन को प्रभावित किए बिना बड़ी मात्रा में डेटा को स्थानीय रूप से संग्रहीत किया जा सकता है। कुकीज़ के विपरीत, स्टोरेज सीमा बहुत बड़ी है (कम से कम 5 एमबी) और जानकारी सर्वर पर कभी भी स्थानांतरित नहीं होती है। स्थानीय भंडारण प्रति मूल (प्रति डोमेन और प्रोटोकॉल) है। सभी मूल, एक मूल से, एक ही डेटा को स्टोर और एक्सेस कर सकते हैं।

यह संग्रहण तक पहुंचने वस्तुओं के लिए आप देता है - एक सत्र के लिए भंडार डेटा -

window.sessionStorage कोई समाप्ति तिथि के साथ दुकानों डेटा - window.localStorage और window.sessionStorage

window.localStorage है, तो डेटा जब ब्राउज़र टैब

बंद कर दिया है खो दिया है डेटा पुनः प्राप्त करने के लिए आप इस

localStorage.getItem("lastname"); 
की तरह कुछ करना होगा

तो यदि आप इसे कोणीय में करना चाहते हैं तो आप $ विंडो सेवा का उपयोग करेंगे, लेकिन यह ऊपर दिए गए उदाहरणों के समान व्यवहार करेगा।

Source


ngStorage संबोधित करने के लिए:

एक AngularJS मॉड्यूल है कि वेब कोणीय मार्ग में काम कर संग्रहण में आता है। दो सेवाएं शामिल हैं: $ स्थानीय स्टोरेज और $ सत्र स्टोरेज।कोई getters और setters के साथ काम कर $ खिड़की सेवा में करने के लिए की तरह तुम हो

आप $ दायरे में संदर्भ द्वारा localStorage $ या $ sessionStorage पारित कर सकते हैं:

$scope.$storage = $localStorage; 

तो फिर तुम के रूप में और अन्य $ संग्रहण का उपयोग करने कोणीय चर

<body ng-controller="Ctrl"> 
    <button ng-click="$storage.counter = $storage.counter + 1">{{$storage.counter}}</button> 
</body> 

Source


यदि आप अपने वेबपैप में कोणीय के साथ काम करेंगे तो मैं ngStorage का उपयोग करूंगा क्योंकि आप वाक्यविन्यास से अधिक आरामदायक और परिचित होंगे। हालांकि यह मेरी राय है।

+0

आप बहुत स्पष्ट थे, बहुत बहुत धन्यवाद! – panagulis72

+0

कोई समस्या नहीं महोदय! – sebenalern

6

परिवर्तनीय $window आमतौर पर वैश्विक window चर है। कारण है कि कोणीय $window का उपयोग करने की अनुशंसा करता है क्योंकि कभी-कभी आप "असली" window ऑब्जेक्ट (उदाहरण के लिए परीक्षण उद्देश्यों के लिए) को नकल या प्रतिस्थापित करना चाहते हैं।

इस ने कहा, का उपयोग कर $window.localStorage मतलब है कि आप स्थानीय संग्रह के वेनिला एपीआई का उपयोग कर रहे हैं, जबकि ngStorage

एक AngularJS मॉड्यूल है कि वेब कोणीय मार्ग में काम कर संग्रहण बना देता है। $localStorage और $sessionStorage

स्रोत here

+2

अधिक स्पष्ट रूप से, ngStorage आपके लिए क्रमबद्ध पहलुओं का ख्याल रखेगा, जो एक समय बचाने वाला हो सकता है। –

0

बस ध्यान में रखना ngStorage आंतरिक रूप से यानी एक डाइजेस्ट चक्र अपने नए मूल्यों ब्राउज़र के स्थानीय संग्रहण में मज़बूती से लागू करने के लिए आवश्यक है $storage/$localStorage वस्तुओं में परिवर्तन की निगरानी के लिए एक कोणीय घड़ी का उपयोग करता हो। आम तौर पर कोई समस्या नहीं है, लेकिन यदि आप $localStorage में कोई मान संग्रहीत करते हैं और पाचन चक्र के बिना एक नया टैब खोलते हैं, तो हो सकता है कि आप अपने नए खुले टैब/विंडो में संग्रहीत मूल्यों को देख सकें।

आईई पर इस समस्या में भाग लें और इसे पाने के लिए window.localStorage का उपयोग करना पड़ा।

0
var setLocalStorage = function (token, uname) 
{ 
$localStorage.token = token; 
$localStorage.name = uname; 

} 
$timeout(setLocalStorage(token, userForm.uname), 500); 

मॉड्यूल उपयोग किया: ngStorage

यह काम करता है!

संबंधित मुद्दे