Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js] Paginacja
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam,

Standardowo paginację na stronie wykonywałem za pomocą PHP. Dotyczy to zwłaszcza podstron typu aktualności, wydarzenia, etc... Zwykle leci zapytanie do bazy, pokaż tyle i tyle postów z takiego i takiego zakresu. Każdy klik na cyferki w paginacji powoduje w tym momencie przeładowanie całej strony.

Ostatnio jednak wpadło mi pewne rozwiązanie do rozważenia. Paginacja z wykorzystaniem JS. Czyli ładowanie wszystkich postów i podmiana jakiegoś dynamicznego div-a z odpowiednią ilością i zakresem postów.

Pytanie jednak które z tych rozwiązań jest lepsze, optymalniejsze, szybsze, mobilniejsze, seo-friendly, etc. Ładowanie wszystkiego [JS] czy przeładowania stron [PHP]. Nie bez znaczenia pozostaje też kwestia śledzenia zaangażowania użytkowników za pomocą Analytics, czy klikają na podstrony, etc...

Zakładam, że postów może być np. 1000, gdzie pokazując po 10 na podstronę stworzy nam się w paginacji 100 podstron. Każdy post będzie miał jakąś krótką zajawkę plus małą fotkę wprowadzającą...

Macie jakieś doświadczenie w tym zakresie? A może tylko przesadzam...wink.gif Pozdrawiam, Ł.
Crozin
Rozwiązanie z wykorzystaniem JS będzie szybsze i mniej obciążające. Istotne jest jedynie by dodać obsługę zmiany URL-i przy zmianie strony. Podpięcie GA również nie stanowi problemu.
lukash82
Witam ponownie,

Jednak na zdecydowanej większości stron jest jednak stosowana paginacja za pomocą PHP... Czy to tylko wygoda i łatwiejsza implementacja rozwiązania? Czy może są jakieś inne argumenty, które powodują, że to rozwiązanie jest jednak chyba częściej stosowane? Pozdrawiam, Ł.
trueblue
I tak taka paginacja będzie się opierać o PHP czy inny język po stronie serwera. Zaleta jest taka jak opisał Crozin, generujesz tylko wycinek podstrony - normalnie musiałbyś generować całą. Oprócz tego strona będzie "stać w miejscu", tj. bez przeskoczenia do miejsca paginacji po odświeżeniu.
Nie powiedziałbym, że jest to łatwiejsze, ale i również nie jest trudne, po prostu wymaga odrobinę większego nakładu pracy.

Należy pamiętać, że w takim przypadku oprócz zmienianego wycinka treści, może być wymagana zmiana wycinka z paginacją (zależnie od budowy/wyglądu paginacji).
fate
generujesz tylko wycinek podstrony

Raczej bym powiedział że i tak właśnie generujesz całą ale ukrywasz reszte ktora ma byc niewidoczna w JS a zaś w PHP generujesz wycinek z bazy i lecz czekasz na odpowiedź serwera, także spotkajmy sie posrodku w AJAX
trueblue
fate, nie generuje całej, nic nie ukrywam. W odpowiedzi na ajax zwracam tylko fragment widoku strony.
Reszty nie rozumiem.
grzes999
Zaletą tradycyjnej paginacji jest to, że możesz wysłać komuś link do konkretnej strony i otworzy mu się od razu odpwiednia strona.
Gdy zrobisz to AJAXem po popbraniu parametrów z adresu będziesz musiał wysłać żadanie, żeby pobrać dane, chyba że połączysz te dwa sposoby
fate
Kolega w 1 poscie napisal odnoscie czystego JS
Paginacja z wykorzystaniem JS. Czyli ładowanie wszystkich postów i podmiana jakiegoś dynamicznego div-a

doszedlem do wniosku jak Ty odnosnie zastosowania AJAX jako przyspieszacza
trueblue
Masz rację.
Nawet nie przyszło by mi do głowy, aby wykorzystywać tylko i wyłącznie JS.
Martin-ZG
Nie jestem na 100% pewny, ale myślę, że wpływa to na pozycjonowanie. Ładując AJAXEM masz małą zawartość tekstu na stronie i nie masz linków do podstron, więc roboty ich nie odwiedzają i nie indeksują, raczej powinno się dążyć, aby strony jak najbardziej przypominały napisane w czystym html. Sam javascript i przełączanie contenerów to bardzo złe rozwiązanie - pobieranie dużej ilości danych z bazy, które w danej chwili nie są potrzebne.
nospor
Cytat
Nie jestem na 100% pewny, ale myślę, że wpływa to na pozycjonowanie. Ładując AJAXEM masz małą zawartość tekstu na stronie i nie masz linków do podstron, więc roboty ich nie odwiedzają i nie indeksują
I dlatego Crozi wyraźnie napisał:
"istotne jest jedynie by dodać obsługę zmiany URL-i przy zmianie strony"
trueblue
Cytat(Martin-ZG @ 30.04.2015, 15:03:14 ) *
Nie jestem na 100% pewny, ale myślę, że wpływa to na pozycjonowanie.

Albo należy posłużyć się budową linków z #!, które sugeruje Google, albo wykorzystać History API i zapewnić paginację również przy wyłączeniu JS w przeglądarce.

Cytat(Martin-ZG @ 30.04.2015, 15:03:14 ) *
Ładując AJAXEM masz małą zawartość tekstu na stronie i nie masz linków do podstron [...]

Masz chyba na myśli rozmiar odpowiedzi Ajaxa, a nie zawartość tekstu na stronie.
Linki do podstron powinny być, bo w przeciwnym razie trudno by było nazwać to paginacją.
Martin-ZG
Cytat(trueblue @ 30.04.2015, 15:09:53 ) *
Albo należy posłużyć się budową linków z #!, które sugeruje Google, albo wykorzystać History API i zapewnić paginację również przy wyłączeniu JS w przeglądarce.


Masz chyba na myśli rozmiar odpowiedzi Ajaxa, a nie zawartość tekstu na stronie.
Linki do podstron powinny być, bo w przeciwnym razie trudno by było nazwać to paginacją.


Chodzi mi o to, że im więcej czystego tekstu na stronie tym lepiej pod kątem SEO. To znaczy są zalecane pewne proporcje, żeby były słowa kluczowe, tytuły itp. W każdym razie treść załadowana po stronie serwera jest spokojnie przerabiana przez roboty. Gorzej z treściami ładowanymi po stronie przeglądarki. Nie wiem w sumie, ale na chłopski rozum roboty nie potrafią wywoływać AJAXA i nie widzą tych treści. Czy potrafią ? smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.