Myślę, że zadajesz niewłaściwe pytanie. Który jest szybszy podczas aktywnej sesji jest w zasadzie nieistotny, ponieważ oba są przechowywane lokalnie, a lokalne wyszukiwanie jest prawie natychmiastowe (w porównaniu do zdalnego wyszukiwania). (Jedna uwaga: nie wszystkie przeglądarki opierają się na nagłówkach pamięci podręcznej, ale zwykle bardziej pochylają się w kierunku nadmiernego buforowania, niż pod buforowaniem).
Jednak Twoja przykładowa sytuacja zakłada, że pamięć podręczna przeglądarki nigdy nie jest wyczyszczona . Ogólnie jest to niepoprawne: nie tylko użytkownik może wyczyścić pamięć podręczną w dowolnym momencie (lub ustawić automatyczne usuwanie), ale sama przeglądarka może zdecydować o usunięciu danych przechowywanych w pamięci podręcznej witryny (zazwyczaj w zależności od miejsca).
Zamiast tego powinieneś pomyśleć o długowieczności danych i o tym, jak regularnie użytkownik będzie szukał go ponownie.
Jeśli ta informacja jest dostępna tylko okazjonalnie, powinieneś polegać na wbudowanym mechanizmie buforowania przeglądarki. Umożliwia to przeglądarce usunięcie go, gdy nie jest już potrzebny.
Jeśli jednak dane są ładowane regularnie lub wymagane przy każdej wizycie na stronie, należy użyć localStorage
. Lokalna pamięć masowa to , a nie rozliczana automatycznie z pamięcią podręczną, a w rzeczywistości jest zwykle opróżniana tylko wtedy, gdy użytkownik usunie pliki cookie dla tej witryny. Dzięki temu informacje mogą być przechowywane dłużej, nawet jeśli witryna nie jest odwiedzana wystarczająco regularnie, aby zachować pamięć podręczną odświeżoną. Ale teraz nagle będziesz odpowiedzialny za utrzymywanie bazy danych informacji.
Na koniec najważniejsze pytanie: jako deweloper, czy opłaca się wypracować bardziej kompleksowe rozwiązanie oparte na localStorage
? Innymi słowy, czy zauważysz wystarczającą korzyść dla użytkownika końcowego, buforując wyszukiwanie 1-2s, czy też mówisz o znacznej ilości informacji, gdy użytkownik zobaczy wzrost o 30s +.
Jako przykład, dla dużych, złożonych aplikacji internetowych opracowałem czas temu, użyłem localStorage
do przechowywania dużej liczby bibliotek JS. Podczas ponownego odwiedzania strony, zostały one po prostu przeanalizowane z lokalnej kopii (po zweryfikowaniu skrótu). To rozwiązanie pozwoliło wielu przeglądarkom na znaczne zmniejszenie czasu uruchamiania, nawet jeśli pamięć podręczna została wyczyszczona. (Nie mówię, że to jest dobre wykorzystanie, ale pracował w tym czasie.)