AJAX json oder jquery oder plain js

Django, Flask, Bottle, WSGI, CGI…
Antworten
FrankTheFox
User
Beiträge: 13
Registriert: Montag 18. Juli 2011, 11:37

Hi,

ich möchte eine Seite dynamisch gestalten. Ich möchte, ohne die Seite neu zu laden Datenbankanfragen machen. Ich weiß nicht womit ich anfagen soll.
Ich möchte z.B. Drag 'n' Drop', was anklicken oder während der Eingabe (wie Google) was suchen im Textfeld.


Gruß
Franky
deets

Woher sollen wir wissen, womit du anfangen sollst? Was ist denn ueberhaupt deine Frage?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Es gibt halt mehrere Möglichkeiten. Entweder man schickt Ergebnisse zum Client via JSON und zwar Rohdaten, die dann in JS zu html verwurstet die aktuelle Seite ersetzt/ergänzt...
Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann. OK, man könnte was in JS nehmen, aber dann hat man einmal Template-Engine auf dem Server und wahrscheinlich eine anders funktionierende auf dem Client.

Also mach ich es in PyLucid teilweise so, das fertig gerenderte HTML-Bröckchen als JSON übermittelt werden und auf dem Client dann ein Teil der Seite ersetzten. Ist natürlich langsamer, aber dafür braucht man weniger Logik in JS und kann das gewohnte Template-System auf dem Server nutzten...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann.
Hm? Du kannst doch mittels JS das von der Template-Engine generierte HTML manipulieren. Manipulieren in dem Sinn, dass man z.B. Werte für Felder einsetzten kann oder bestimmte Elemente ausblendet.

@FrankTheFox:
Drag'n'Drop hat erstmal nix mit AJAX zu tun, Anklicken kannst du auch in plattem HTML.

Gruß, noisefloor
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

noisefloor hat geschrieben:
Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann.
Hm? Du kannst doch mittels JS das von der Template-Engine generierte HTML manipulieren. Manipulieren in dem Sinn, dass man z.B. Werte für Felder einsetzten kann oder bestimmte Elemente ausblendet.
Klar, kann man das machen. Kommt halt auf die konkrete Anwendung an. Möchte man nur wenige Daten "tauschen" oder einen ganzen HTML-Block auswechseln.

z.B.: Eine Tabelle: Man kann die neuen Tabellen Daten Nackt als JSON bekommen und Zelle für Zelle die neuen Werte per JS eintragen. Man könnte aber auch im AJAX Request gleiche die neue Tabelle als HTML bekommen und in der Seite austauschen...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten