Czy tak należy tworzyć całe strony w Ajax?

0

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ś.

0

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ą.

0
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

0

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.

0
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.

0

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.

2

Ja jestem ZA, ALE:

  1. zrób obsługę errorów! 99% skryptów w necie ma callbacki na success, i pusto na error (tak samo nie ma niczego, jeżeli zwrotka przyjdzie w niespodziewanym formacie (np. spodziewany się JSONa, a przychodzi Fatal Error z PHP)

  2. 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

  3. html5 pozwala Ci na pełną podmianę adresu w pasku bez przeładowania całej podstrony - skorzystaj z tego

  4. 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).

0

Dzięki, o taką odpowiedź mi chodziło!

0

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.

0

@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 ;)

0

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ę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1