JQuery - AJAX: Unterschied zwischen den Versionen
| Zeile 10: | Zeile 10: | ||
== Datenanforderung mit jQuery und AJAX == | == Datenanforderung mit jQuery und AJAX == | ||
| + | Daten werden vom Server immer im Klartext geliefert und über das http Protokoll übertragen. | ||
| + | === Textdatei anfordern === | ||
ajax1.html | ajax1.html | ||
<pre> | <pre> | ||
| Zeile 47: | Zeile 49: | ||
Die 2 Buttons bekommen eine Klickfunktion zugewiesen. | Die 2 Buttons bekommen eine Klickfunktion zugewiesen. | ||
Button 1 führt einen AJAX Request über GET aus. Button 2 über Post ($.get() bzw. $.post()). Als Parameter enthält die Funktion die Datei und eine weitere Funktion (oder Referenz auf eine Funktion). Diese neue Funktion bekommt als Parameter die erhaltenen Daten und schreibt sie in das div mit der id #ausgabe. | Button 1 führt einen AJAX Request über GET aus. Button 2 über Post ($.get() bzw. $.post()). Als Parameter enthält die Funktion die Datei und eine weitere Funktion (oder Referenz auf eine Funktion). Diese neue Funktion bekommt als Parameter die erhaltenen Daten und schreibt sie in das div mit der id #ausgabe. | ||
| + | |||
| + | === HTML Anfordern === | ||
| + | Enthält die Antwort HTML Daten sollte der Browser sie auch so interpretieren. Dazu kann man jQuery direkt mitteilen, dass es sich um HTML Daten handelt. | ||
| + | <pre> | ||
| + | //$("#ausgabe").text(data); | ||
| + | $("#ausgabe").html(data); | ||
| + | </pre> | ||
Version vom 19. Oktober 2012, 07:39 Uhr
Wie funktioniert AJAX ?
Früher mußte man bei jeder Anfrage die Webseite komplett neu laden. Auch wenn nur ein kleiner Teil neu benötigt wird (z.B. ein Suchergebnis). Mit AJAX kann man Teile einer Website neu laden. Das funktioniert über ein JavaScript Objekt den sogenannten XML-HTTP Request oder kurz XHR. Dieser kommuniziert quasi am Browser vorbei mit dem Server.
Die alte Kommunikationsart ist Synchron: Eine Anfrage - eine Webseite. Die neue Art ist asynchron. Alle Eigenschaften zusammengefaßt spricht man von Asynchronous JavaScript and XML - AJAX
jQuery und AJAX
jQuery bietet eine gute AJAX Unterstützung, und macht es dem Programmierer leicht mit den Besonderheiten der verschiedenen Browser umzugehen.
Datenanforderung mit jQuery und AJAX
Daten werden vom Server immer im Klartext geliefert und über das http Protokoll übertragen.
Textdatei anfordern
ajax1.html
<html>
<head>
<script type="text/javascript" src="lib/jquery/jquery.js"></script>
<script>
$(document).ready(function(){
$("button:first").click(function(){
$.get("ajax.txt", function(data){
$("#ausgabe").text(data);
});
});
$("button:eq(1)").click(function(){
$.post("ajax.txt", function(data){
$("#ausgabe").text(data);
});
});
});
</script>
</head>
<body>
<button>AJAX-Anfrage mit $.get()</button>
<button>AJAX-Anfrage mit $.post()</button>
<div id="ausgabe"></div>
</body>
</html>
ajax.txt
Es gibt zwei Sachen, denen ich mir völlig sicher bin. Erstens: Männer sind viel schlauer als Frauen! Und zweitens? Die Erde ist flach. Genau.
Erklärung:
Die 2 Buttons bekommen eine Klickfunktion zugewiesen. Button 1 führt einen AJAX Request über GET aus. Button 2 über Post ($.get() bzw. $.post()). Als Parameter enthält die Funktion die Datei und eine weitere Funktion (oder Referenz auf eine Funktion). Diese neue Funktion bekommt als Parameter die erhaltenen Daten und schreibt sie in das div mit der id #ausgabe.
HTML Anfordern
Enthält die Antwort HTML Daten sollte der Browser sie auch so interpretieren. Dazu kann man jQuery direkt mitteilen, dass es sich um HTML Daten handelt.
//$("#ausgabe").text(data);
$("#ausgabe").html(data);