Java script - czy działajac na stronie może sam pobierać dane z bazy mysql?

0

Jak java script pobiera dane do np. wykreowania listy menu albo do odświeżenia strony (ajax)? czy sam komunikuje sie z bazą danych na serwerze czy tylko przez php?

0

To powinno Ci rozjaśnić podstawowy mechanizm działania AJAX: http://www.w3schools.com/ajax/ajax.gif

0
  1. Czyli z tego co widzę Java script wykonuje sie po stronie użytkownika (przeglądarka) a nie po stronie serwera jak PHP?
  2. Ale jeżeli strona wykorzystuje php to w przypadku Ajaxa java script musi wywołać stronę php która np. pobierze dane z bazy, wykreuje kod html i przekaże to dopiero skryptowi ajaxa, tak? czyli php tu pośredniczy?
  3. a w przypadku tworzenia takiego obiektu jak jakieś menu. Czy java script może samodzielnie (bez php) pobrać z bazy listę punktów tego menu?
0

AJAX to asynchroniczne wykonywanie się kodu JavaScript. W dużej mierze jest ono używane do tego, by pobrać dane z serwera. Jakiego? To już inna sprawa. Cały Ajax można podzielić na parę części:

  • zapytania do serwerów - tutaj mamy aktualnie 2 rodzaje zapytań

    • XMLHttpRequest z trochę nieszczęśliwą nazwą, bo XMLa mało kto już zwraca, który to pozwala na wysłanie zapytania do serwera tylko w same-origin policy (są plany by to zmienić, ale to teraz nieważne)
    • JSONP - jest to obejście SOP w taki sposób, że wywołujemy zapytanie do serwera zewnętrznego chcąc pobrać skrypt (dodajemy nowy tag <script>), który wywołuje funkcję przekazując do niej obiekt JSa.
  • Eventy na stronie, które masz wylistowane na stronie MDN https://developer.mozilla.org/en-US/docs/Web/Reference/Events

  • WebSockets, WebWorkers, etc., ale to już bardziej skomplikowane

Czy musi być na serwerze PHP? Nie. Może być dowolna inna technologia zwracająca dane w formacie, które będziesz mógł przetworzyć w JSie.
Czy może być to DB? Tak, ale raczej niewiele z nich na coś takiego pozwala. Raczej będą to jakieś NoSQL jak CouchDB, MongoDB czy Cassandra.

0

Chodzi mi o jak najbardziej popularne rozwiązanie. Robię stronkę w php + mysql. Java Script znam bardzo pobierzenie tylko z prostych funkcji. Projekt który robię wymagałby użyci w paru miejscach js (między innymi menu i ładowanie ajaxem). Chciałbym zlecić napisanie kilku skryptów na szybko komuś z zewnątrz (pilny termin) i teraz nie wiem czy to co otrzymam powinno się spiąć z php czy też będą to zupełnie niezależne wtyczki które umieszczę w kodzie strony. Taki jest temat.

0

Ze strony PHP będziesz musiał zwracać treść w jakiejś formie. Nie polecam zwracania czystego HTMLa, lepiej zwrócić jakiś JSON i z niego wydłubać dane. Jednak jeśli chcesz tylko podmieniać treść strony przy użyciu AJAXa (bez migania) to znacznie łatwiej będzie użyć Turbolinks. Nie musisz wtedy wprowadzać żadnych zmian w kod. Jedyne co robisz to dodajesz ten skrypt.

0

Jeśli chodzi o ajaxa to właśnie chodzi mi tylko o podmianę treści bez odświeżania całej strony.

0

To tu masz do tego gotowy kod https://github.com/rails/turbolinks. Link do samego skryptu https://github.com/rails/turbolinks/blob/master/lib/assets/javascripts/turbolinks.js.coffee. Możesz też użyć PJAX: http://pjax.heroku.com/ (ale on już polega na jQuery).

0

Tak czytam o tym Turbolinks. To jekiś skrypt z Ruby on Rails? Nie wysypuje sie to na przeglądarkach? Zależy mi na tym żeby strona chodziła również na starym IE8.
Może to JQuery jet lepsze.

0

Ani jedno ani drugie nie zadziała na IE mniejszych niż 10 ze względu na to, że nie obsługują document.pushState. Więc jedyne co Ci pozostaje to poszukać rozwiązania z hashbangiem.

0

No to jest właśnie problem. Jak coś jest fajnego to zawsze ma wymagania. A ta pierwsza wersja ajax z obiektem JSON pójdzie na IE8?
Mam pewne podstawy z programowania w Java. Oczywiście nie jest to Java Script ale może jakoś to przyswoję : ).

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