Robię stronę internetową z nieskończonym przewijaniem. Oznacza to, że gdy użytkownik przewija się na dół strony, nowy blok treści jest dołączany do dołu. Jest bardzo podobny do Facebooka. Oto przykład z 3 stron załadowany:Jak zapisać nieskończony stos zawartości AJAX, gdy użytkownik opuszcza stronę?
_________
| |
| 0 |
|_________|
| |
| 1 |
|_________|
| |
| 2 |
|_________|
Gdy użytkownik kliknie coś na ostatniej stronie, biorę je na osobnej stronie szczegółów. Ale jeśli użytkownik kliknie z powrotem na stronę wyników wyszukiwania, nie mam pamięci z poprzedniej lokalizacji i musi ponownie załadować stronę 0.
_________
| |
| 0 |
|_________|
Znam niektórych metodach starej szkoły, aby rozwiązać ten problem, ale każdy z nich ma jakieś poważne problemy:
Hash URL
mogę zaktualizować adres URL za każdym razem, gdy nowa strona jest ładowana. Na przykład: www.website.com/page#2. Gdy użytkownik przechodzi do strony szczegółów iz powrotem, URL mówi mi ostatnią stronę załadowany, więc ja go załadować do niego:
_________
| |
| 2 |
|_________|
Ale to słaba doświadczenie użytkownika. Załadowana zostanie tylko strona 2. Użytkownik nie może przewinąć w górę, aby zobaczyć starszą zawartość. Nie mogę po prostu załadować stron 0, 1 i 2, ponieważ spowodowałoby to przeciążenie serwera, biorąc pod uwagę, że przycisk wstecz stanowi 50% ruchu internetowego (badanie Jacoba Nielsena).
Przechowywanie Lokalna
Cookies nie mają pojemność do przechowywania wielu stron danych. Local Storage powinien mieć wystarczającą ilość miejsca. Jednym z pomysłów jest przechowywanie wszystkich załadowanych stron w Magazynie lokalnym. Kiedy użytkownik wraca do wyników wyszukiwania, ładuję z lokalnego magazynu zamiast uderzać w serwer. Problem z tym podejściem polega na tym, że duża część moich użytkowników znajduje się w przeglądarkach, które nie są support local storage (IE7).
Dlaczego ładowanie wszystkich wyświetlonych stron naraz przeciążałoby serwer, gdy zażądałby ich po 1 na raz? – Tejs
... z nieskończoną ilością pamięci. – Phrogz
@Tejs: Niepoprawnie sformułowałem moją myśl. Chodzi o to, że załadowanie stu stron naraz jest wolne dla użytkownika i niepotrzebnie obciąża serwer. – JoJo