Sự khác nhau giữa ngStorage và $ window.localStorage là gì? Khi nào thì tốt hơn nên sử dụng cái kia thay vì cái kia? Tôi phải chọn một trong số chúng cho một ứng dụng web. Tôi phải lưu dữ liệu của người dùng tiểu sử và mã thông báo
Trả lời
này là bình thường html5 lưu trữ địa phương:
Với lưu trữ địa phương, các ứng dụng web có thể lưu trữ dữ liệu cục bộ trong trình duyệt của người dùng. Trước HTML5, dữ liệu ứng dụng phải được lưu trữ trong cookie, được bao gồm trong mọi yêu cầu máy chủ. Bộ nhớ cục bộ an toàn hơn và số lượng lớn dữ liệu có thể được lưu trữ cục bộ mà không ảnh hưởng đến hiệu suất trang web. Không giống như cookie, giới hạn lưu trữ lớn hơn nhiều (ít nhất 5MB) và thông tin không bao giờ được chuyển tới máy chủ. Lưu trữ cục bộ là mỗi gốc (mỗi tên miền và giao thức). Tất cả các trang, từ một nguồn gốc, có thể lưu trữ và truy cập cùng một dữ liệu.
Nó cung cấp cho bạn với các đối tượng để truy cập lưu trữ - window.localStorage và window.sessionStorage
window.localStorage - lưu trữ dữ liệu không có ngày hết hạn
window.sessionStorage - lưu trữ dữ liệu cho một phiên , vì vậy dữ liệu bị mất khi tab trình duyệt được đóng
Để lấy dữ liệu bạn sẽ làm một cái gì đó như thế này
localStorage.getItem("lastname");
Vì vậy, nếu bạn muốn làm điều này trong góc, bạn sẽ sử dụng dịch vụ $ window nhưng nó sẽ hoạt động giống như các ví dụ trên.
Để giải quyết ngStorage:
Một module AngularJS mà làm cho lưu trữ web làm việc trong Way góc. Chứa hai dịch vụ: $ localStorage và $ sessionStorage.Không đối phó với getter và setter như bạn có để phục vụ cửa sổ $
Bạn có thể vượt qua $ localStorage hoặc $ sessionStorage bằng cách tham khảo dưới $ phạm vi:
$scope.$storage = $localStorage;
Sau đó, bạn có thể sử dụng $ lưu trữ như và khác góc biến
<body ng-controller="Ctrl">
<button ng-click="$storage.counter = $storage.counter + 1">{{$storage.counter}}</button>
</body>
Nếu bạn sẽ làm việc với angularjs trong webapp của bạn, tôi sẽ sử dụng ngStorage vì bạn sẽ thoải mái hơn và quen thuộc với cú pháp. Đó chỉ là ý kiến của tôi.
Biến số $window
thường là biến số toàn cầu window
. Lý do mà Angular khuyến cáo sử dụng $window
là bởi vì đôi khi bạn muốn giả hoặc thay thế đối tượng "thực" window
(ví dụ cho mục đích thử nghiệm).
Nói điều này, sử dụng $window.localStorage
có nghĩa là bạn đang sử dụng API vani Storage của địa phương, trong khi ngStorage là
Một AngularJS mô-đun mà làm cho lưu trữ web làm việc trong Way góc. Có hai dịch vụ:
$localStorage
và$sessionStorage
Nguồn here
Rõ ràng hơn, ngStorage sẽ quản lý các khía cạnh tuần tự hóa cho bạn, đây có thể là trình tiết kiệm thời gian. –
Chỉ cần lưu ý ngStorage sử dụng đồng hồ góc để theo dõi các thay đổi đối tượng $storage
/$localStorage
tức là một chu trình phân hủy được yêu cầu duy trì giá trị mới của bạn một cách đáng tin cậy vào bộ nhớ cục bộ của trình duyệt. Thông thường không phải là vấn đề nhưng nếu bạn lưu trữ một giá trị trong $localStorage
và mở một tab mới mà không có chu kỳ tiêu hóa xảy ra, bạn có thể không nhìn thấy các giá trị được lưu trữ trong tab/cửa sổ vừa mới mở của bạn.
Đã khắc phục sự cố này trên IE và phải sử dụng window.localStorage
để khắc phục sự cố.
var setLocalStorage = function (token, uname)
{
$localStorage.token = token;
$localStorage.name = uname;
}
$timeout(setLocalStorage(token, userForm.uname), 500);
Mô-đun sử dụng: ngStorage
Nó hoạt động!
- 1. Sự khác nhau giữa .Equals và ==
- 2. Sự khác nhau giữa% w và% W
- 3. Sự khác nhau giữa ParameterInfo.DefaultValue và ParameterInfo.RawDefaultValue
- 4. Sự khác nhau giữa MBean và MXBean
- 5. Sự khác nhau giữa ConfigurationManager và ConfigurationSettings
- 6. Sự khác nhau giữa Tkinter và Tkinter
- 7. Sự khác nhau giữa! = Và =! trong Java?
- 8. Sự khác nhau giữa 'SpecialFolder.LocalApplicationData' và 'SpecialFolder.ApplicationData'?
- 9. Sự khác nhau giữa String.getBytes() và IOUtils.toByteArray()?
- 10. Sự khác nhau giữa presentModalViewController và presentViewController?
- 11. Sự khác nhau giữa NSInvocationOperation và NSBlockOperation
- 12. Sự khác nhau giữa TVar và TMVar
- 13. Sự khác nhau giữa onClickListener và onItemClickListener
- 14. Sự khác nhau giữa QPushButton và QToolButton
- 15. Sự khác nhau giữa okhttp và httpurlconnection?
- 16. Sự khác nhau giữa clBLAS và ViennaCL?
- 17. Sự khác nhau giữa JSONParser và JSONRenderer
- 18. Sự khác nhau giữa băm và hashValue
- 19. Sự khác nhau giữa hàm và Function.prototype
- 20. Sự khác nhau giữa express.Router và app.get?
- 21. Sự khác nhau giữa MPI_Scatter và MPI_Bcast
- 22. Sự khác nhau giữa JWT và SAML?
- 23. Sự khác nhau giữa onResume() và onResumeFragments()
- 24. Sự khác nhau giữa `require` và` gem`
- 25. Sự khác nhau giữa HttpUtility.HtmlEncode và Server.HtmlEncode
- 26. Sự khác nhau giữa sqlplus và sqldeveloper?
- 27. Sự khác nhau giữa JPA và JPA2
- 28. Sự khác nhau giữa DECIMAL và NUMERIC
- 29. Sự khác nhau giữa "./somescript.sh" và ". ./somescript.sh"
- 30. Sự khác nhau giữa GIT và CVS
Bạn đã rất rõ ràng, cảm ơn bạn rất nhiều! – panagulis72
Không thành vấn đề! – sebenalern