Willkommen Gast. Bitte anmelden oder registrieren.

Autor Thema: Ajax-Frage  (Gelesen 2435 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

JSamir!

  • Bestätigter Nutzer
  • Beiträge: 11
Ajax-Frage
« am: 18. Juli 2012, 13:59:53 »
Hi,

angenommen man hat eine Listview (im Frontend) mit den ganzen Schnickschnack was so eine Listview hat, also Sortieren, Filtern, etc.

Persönlich hat mich immer gestört, dass Filter/Sortieren etc, immer einen neuen Request nach sich ziehen. Es mag vielleicht(?) sinnvoll sein, wenn die Seite für Crawler zugänglich ist, aber für einen Userbereich finde ich sollte da mehr Ajax rein.

Was wäre der korrekte Ansatz, um diesen ganzen Kram per Ajax zu erledigen?

Ich würde ja meinen, man macht eben einen Request per Ajax und rendert das Ergebnis neu in dem Bereich wo die Listview zu sehen ist, allerdings habe ich mich hier immer gefragt wieviel das bringt, wenn für diesen Ajax-Request ja immernoch das ganze Joomla-Framework durchlaufen wird um den Response zu erzeugen? Dann kann ich ja auch gleich die Seite neu laden.

Tipps?

Danke

Edit: die gleiche Frage in abgewandelter Form natürlich auch für andere Ajax-geeignete Views (edit-view z.B.).
"Wenn die geistige Sonne niedrig scheint, dann wirft auch ein Zwerg einen langen Schatten"
www.nachdenkseiten.de
http://islam.de/72.php

bembelimen

  • moderatives Dielektrikum
  • Beiträge: 227
  • Ich kam, sah und zensierte...
    • Joomla! Vereinsverwaltung
Antw: Ajax-Frage
« Antwort #1 am: 18. Juli 2012, 21:55:57 »
Ich würde dem ganzen ja einen JSON View + Controller verpassen, der dann entsprechend aufgerufen wird. Dieser kann die ganz normalen Models nutzen, liefert aber am Ende dann einen JSON-String zurück, der entsprechend geparst und dann die Werte in die Seite eingesetzt werden. Benötigte Javascripts kann man entweder per Override oder per Plugin reinladen.
Joomla! ist auch nur ein Mensch...

JSamir!

  • Bestätigter Nutzer
  • Beiträge: 11
Antw: Ajax-Frage
« Antwort #2 am: 19. Juli 2012, 22:16:34 »
So würde ich das in der Regel auch machen.

Mich interessiert es nur, ob dieser Aufruf (um die JSON Daten zu holen) nicht genauso lange dauert, wie wenn ich die aktuelle Implementierung nutze (also mit Reload der ganzen Seite)?
Im Grunde wird doch beim Aufruf der JSON Daten das ganze Framework wieder "in Gang gesetzt", der einzige Unterschied ist dass die Daten aus der View/Controller direkt zurückgegeben werden anstatt sie in ein Template reinzutun.

Wenn das alles "genauso" lange dauert, dann kann man ja auf die Ajax-Implementierung für diese ganzen Sachen (also Filter, Sortierung) verzichten und immer die Seite neu laden lassen (was Joomla ja derzeit tut), da der einzige positive Effekt des ganzen ein etwas bessere User-Experience wäre.

Worauf ich hinaus will:
Wenn das ganze mit Ajax nicht nur angenehmer für den User ist, da er keinen Reload mitbekommt, sondern auch am Ende "schneller" ist als wenn die Seite neu geladen wird - dann wäre das eine sehr interessante Alternative für UIs die eh nicht für Suchmaschinen gedacht sind.
"Wenn die geistige Sonne niedrig scheint, dann wirft auch ein Zwerg einen langen Schatten"
www.nachdenkseiten.de
http://islam.de/72.php

bembelimen

  • moderatives Dielektrikum
  • Beiträge: 227
  • Ich kam, sah und zensierte...
    • Joomla! Vereinsverwaltung
Antw: Ajax-Frage
« Antwort #3 am: 19. Juli 2012, 22:38:44 »
Einen wirklichen Geschwindigkeitsvorteil bekommst du wohl eher nicht. Vielleicht ein bisschen, da nicht die ganze Seite geladen wird sondern nur ein Teil. Davon musst du dann abziehen, wie lange das Javascript braucht um den JSON/HTML Code umzuwandeln bzw. in die Seite einzusetzen. Auf PHP Ebene wirst du auch kaum einen Unterschied merken. Geschätzt bekommst du wohl ein bisschen einen Vorteil, den Aufwand lohnt es aber kaum, ist halt "cool" so ein Ajax.
Joomla! ist auch nur ein Mensch...

Harmageddon

  • Bestätigter Nutzer
  • Beiträge: 23
    • ZweiIconKram
Antw: Ajax-Frage
« Antwort #4 am: 19. Juli 2012, 23:02:49 »
Wenn du das Gefiltere schon mit Ajax/JS lösen willst, würde ich dir eher empfehlen, dafür nicht eine neue Datenbankabfrage zu machen, sondern die schon geladenen Beiträge per Javascript nach den gewünschten Kriterien zu filtern. Wäre vermutlich sinnvoller im Hinblick auf Ladezeiten etc..

JSamir!

  • Bestätigter Nutzer
  • Beiträge: 11
Antw: Ajax-Frage
« Antwort #5 am: 19. Juli 2012, 23:20:27 »
@Harmageddon:
Genau wegen den mootools Script den es auf der Demoseite zu sehen gibt (sortieren war das glaub ich) bin ich überhaupt erst auf den Gedanken gekommen. Da könnte es aber Probleme bei Pagination geben und falls die Daten die der User sieht nicht nur von ihm stammen, kann es sein dass er zu einem Zeitpunkt veraltete Daten hat (sofern er sich auf einer Seite aufhält und nur die Ajax-Geschichten nutzt ohne einen echten Reload auszulösen).

@bembelimen
Wäre natürlich die Frage ob es sich allein weil Ajax cool ist lohnt sowas zu implementieren. Ich denke ich werde das probieren, vielleicht auch eher in die Richtung die Harmageddon erwähnt hat, da hat man nämlich noch den Geschwindigkeitsvorteil.
"Wenn die geistige Sonne niedrig scheint, dann wirft auch ein Zwerg einen langen Schatten"
www.nachdenkseiten.de
http://islam.de/72.php

bembelimen

  • moderatives Dielektrikum
  • Beiträge: 227
  • Ich kam, sah und zensierte...
    • Joomla! Vereinsverwaltung
Antw: Ajax-Frage
« Antwort #6 am: 19. Juli 2012, 23:29:44 »
Das Problem ist, dass du trotzdem immer einen (AJAX-)Request machen musst um die Datenbank abzufragen. Denn angenommen du hast Item 1-20 da stehen und sortierst neu, dann kannst du per Javascript nur 1-20 sortieren, vom Rest weiß das Javascript aber nichts. Also hast du erst per ID sortiert und willst nun nach Titel sortieren, dann kann es sein, dass Item 21 mit "A" anfängt und an erster Stelle stehen müsste => du brauchst eine Datenbankabfrage.

Das "cool" war eher ironisch gemeint.
Joomla! ist auch nur ein Mensch...

JSamir!

  • Bestätigter Nutzer
  • Beiträge: 11
Antw: Ajax-Frage
« Antwort #7 am: 20. Juli 2012, 01:12:49 »
Das wäre ja ein Grund mehr für die von Harmageddon genannte Variante, also mit immer alle Datensätze abfragen und Sortierung/Filter/Pagination per JS machen (mit den genannten "Problemen").

Ich finde Ajax sehr gut, wenn es so umgesetzt wird wie z.B. bei Github.
"Wenn die geistige Sonne niedrig scheint, dann wirft auch ein Zwerg einen langen Schatten"
www.nachdenkseiten.de
http://islam.de/72.php