Witam
Napisałem całą stronę opartą na Ajaksie. W skład strony wchodzi jedynie jeden dokument html, dużo skryptów js z ajaxem i kilka skryptów php odpowiedzialnych za pobieranie danych(głównie newsów i artykułów) z bazy danych. Strona ma służyć do celów reprezentacyjnych pewnej instytucji :). Strona wydaję się być bardzo lekką w porównaniu do poprzedniej.
Czy nikt mi nie zarzuci, że stron nie powinno się tworzyć w taki sposób? Rzadko się widzi tego typu strony w internecie, mimo że przeglądarki w pełni obsługują ajaxa nie od dziś.
Problem z takimi stronami jest taki, że z punktu widzenia np. wyszukiwarek to jest ciągle ten sam adres, a content różny. Ciężko też podać komuś linka do konkretnej treści, bo załaduje mu się domyślny content. Zdarzają się też ludzie z wyłączoną obsługą JS i nic na takiej stronie nie zobaczą.
GThoro napisał(a):
Problem z takimi stronami jest taki, że z punktu widzenia np. wyszukiwarek to jest ciągle ten sam adres, a content różny. Ciężko też podać komuś linka do konkretnej treści, bo załaduje mu się domyślny content. Zdarzają się też ludzie z wyłączoną obsługą JS i nic na takiej stronie nie zobaczą.
Moja strona wyświetla kontent na podstawie adresu. Każda podstrona ma swój adres, którego można bez problemu użyć. Wiem, że i tak może być problem z indeksowaniem w wyszukiwarce, ale znalazłem coś takiego: https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
Ale po co tworzyć całą stronę w ajaxie ? ramki sobie może zaciągnij jeszcze ? Bez sensu, ajax jest do update'u elementów i nie powinien robić jako koń pociągowy serwisu.
niezdecydowany napisał(a):
Ale po co tworzyć całą stronę w ajaxie ? ramki sobie może zaciągnij jeszcze ? Bez sensu, ajax jest do update'u elementów i nie powinien robić jako koń pociągowy serwisu.
A dlaczego nie? Po co przeładowywać stronę za każdym razem, skoro szablon strony jest ciągle jest ten sam, a zmienia się jedynie jego zawartość? Co w tym złego? :)
Poza tym, można tworzyć unikalne przejścia i animacje między stronami(wiem, bez przesady). Strona ma reprezentować daną instytucję, więc moim zdaniem kluczowa jest tu oryginalność i estetyka.
Gdyby to było normalne i jakkolwiek popularne to byś nie zadał tego pytania. Kolejny robin hood internetu tworzący "nowe trendy"
Nie twierdzę, że jest to normalne. Jestem początkujący i spytałem się co w tym złego.
Skąd ta agresja? Drażnią cię moje pytania? Nie musisz znać odpowiedzi na nie wszystkie.
Ja jestem ZA, ALE:
-
zrób obsługę errorów! 99% skryptów w necie ma callbacki na
success
, i pusto naerror
(tak samo nie ma niczego, jeżeli zwrotka przyjdzie w niespodziewanym formacie (np. spodziewany się JSONa, a przychodzi Fatal Error z PHP) -
zrób obsługę serwisu bez JS! (czyli przy pomocy PHP i rewrite tworzysz sobie index.html, kontakt.html, costam.html - i one normalnie są linkowane i normalnie działają, ale dodatkowo - jeżeli podasz parametr
?ajax=1
- wtedy strony ładują się bez nagłówka/stopki - i pod wszystkie linki w serwisie dopinasz zdarzenie JS, które blokuje "nieajaxowe" przejście pod daną stronę, tylko dopisuje ten parametr i ładuje treść podstrony -
html5 pozwala Ci na pełną podmianę adresu w pasku bez przeładowania całej podstrony - skorzystaj z tego
-
pamiętaj o aktualizacji tagu
title
, jeżeli jest różny dla różnych podstron
Projekt pjax - http://pjax.heroku.com/ - spełnia punkty 4, 3, 2 i zdaje się 1 poprzez zmianę window.location w przypadku błędu (czyli po prostu nieajaxowe przejście).
Dzięki, o taką odpowiedź mi chodziło!
dodałbym jeszcze, że warto AJAXem zamiast całego kodu HTML, pobierać czyste dane, np. w postaci JSON, a później je renderować/aktualizować po stronie przeglądarki (tj. po stronie przeglądarki zamieniać dane z JSONa na HTML). Tym sposobem zmniejszymy transfer, a co za tym idzie szybkość ładowania strony.
W skład strony wchodzi jedynie jeden dokument html, dużo skryptów js z ajaxem i kilka skryptów php odpowiedzialnych za pobieranie danych(głównie newsów i artykułów) z bazy danych
na developerce dużo skryptów JS jest okej, ale przed wrzuceniem na serwer produkcyjny warto je połączyć w jeden duży plik *.js - tym sposobem unikniemy sytuacji, że przeglądarka będzie słała np. z 20 requestów HTTP do serwera, bo tyle ma skryptów.
@LukeJL:
Dane w JSON najbardziej się przydają jak robisz jakąś webaplikację, jak jest typowa "wizytówkowa" strona i podstrony różnią się contentem będącym blokiem tekstu to nic tu JSON nie da w sumie ;)
// Choć ja zawsze puszczam zwrotki ajax w JSON, naprostsza zwrotka z HTML to {error: 0, content: '<b>jakis html</b>'}
// Rozpoznam wtedy czy jest błąd przy przetwarzaniu żądania (złe ID czy cokolwiek), od razu mam kod błędu (więc bool odpada)
// A gdy powracający string jest "zepsuty" i nie da się zdekodować, to wiem, że jakieś cudo od PHP wrzuciło mi jakiegoś Warninga w kod
// Odróżnię też wtedy oczywiście błędy HTTP (500 Internal Server Error itd)
Ilość requestów oczywiście polecam zmniejszyć, ale tyle dobrego, że w stronce całej na ajaxie - i tak wczytują się raz ;)
A ja jestem za jeśli chodzi o strony, które działają bez przeładowania. I tak jak mówi Aux można zrobić niezłe przejścia pomiędzy jedną treścią, a drugą. Ostatnio sam bawiłem się w takie efekty i wyszło całkiem przyzwoicie. Dzięki JS można zrobić taką stronę jak we flashu. Jednak proponowałbym to rozwiązanie dla stron informacyjnych, nie dla bardziej rozbudowanych typu sklep.
@Aux pochwal się Swoją stroną chętnie zerknę!
@dzek69 dzięki na te punkty będę zwracał na nie uwagę.