Najpierw troszkę wyjaśnienia. Otóż postanowiłem, że zrobię sobie w Rails 5 “single page web app” i w tej aplikacji newsy będę ładował dynamicznie za pomocą AJAX-a (z jquery). Klikam sobie w linka “następny news” i w przeznaczonym do tego div-ie zmienia mi się treść na tę z kolejnego newsa. Analogicznie sprawa się ma z “poprzedni news”. Wszystko działa
Tutaj pojawia się pytanie: czy ładowanie każdego newsa z osobna nie jest przesadą? Pytam, bo mógłbym ładować od razu porcję np. 10 newsów, ale z drugiej strony, to przecież “single page web app” i użytkownik niekoniecznie zawsze wejdzie, aby czytać newsy, ale np. by sprawdzić ofertę i po co mu wtedy od razu wczytywać z automatu ostatnich 10 newsów skoro nie będzie nimi zainteresowany? Pytanie też, czy jeśli ładowałbym każdy news osobnym AJAX-owym zapytaniem, to czy taki użytkownik, który zacznie sobie klikać szybko na “następny news” nie zarżnie jakoś serwera tymi zapytaniami? Jak radzilibyście mi to rozwiązać?
Jest taka zasada jak KISS (Keep It Stupid Simple) czyli na polski tłumacząc “nie rozwiązuj problemu, którego nie ma” ;). Zamiast pytać czy może to być problemem (bo może, ale nie musi) poczekaj aż nim będzie i wtedy będziesz rozwiązywać realny problem. Jeśli chcesz znać moje zdanie na temat Twoich wątpliwości:
Tutaj pojawia się pytanie: czy ładowanie każdego newsa z osobna nie jest przesadą?
Nie. Jest normalnym rozwiązaniem, które w 95% przypadków wystarczy na luzie.
Pytanie też, czy jeśli ładowałbym każdy news osobnym AJAX-owym zapytaniem, to czy taki użytkownik, który zacznie sobie klikać szybko na “następny news” nie zarżnie jakoś serwera tymi zapytaniami?
Może zajechać. Tak samo jak może to zrobić przeładowywując stronę w kółko. Realnie zależy ilu użytkowników spodziewasz się na stronie na raz, jaki masz serwer, ile trwa wygenerowanie strony itp.
Jak radzilibyście mi to rozwiązać?
Radziłbym nie rozwiązywać problemu, które jeszcze nie masz, chyba, że na 100% jesteś pewien, że mieć będziesz :-).
Dzięki za odpowiedź Sugestia, że wczytywanie pojedynczych newsów jest raczej standardowym rozwiązaniem pokrywa się z moim przeczuciem, że tak to powinno być zrobione. Wolałem jednak dopytać, bo w tworzenie SPA bawię się pierwszy raz.