AJAX - Content Loading: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 14: | Zeile 14: | ||
=== Load Container Content === | === Load Container Content === | ||
| + | ==== Mit load() ==== | ||
Über jQuery den Inhalt eines Elements (inkl. Element) anfordern. | Über jQuery den Inhalt eines Elements (inkl. Element) anfordern. | ||
| − | $("# | + | $("#target").load("something.html #source"); |
Oder nur die Inhalte ohne das umschließende DIV | Oder nur die Inhalte ohne das umschließende DIV | ||
| − | $("# | + | $("#target").load("something.html #source > *"); |
Variante wäre evtl. mit .innerHTML(); | Variante wäre evtl. mit .innerHTML(); | ||
| + | ==== Mit ajax() ==== | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | $.ajax({ | ||
| + | url: 'something.html', | ||
| + | dataType: 'html', | ||
| + | success: function(html) { | ||
| + | var div = $('#sourceDiv', $(html)).addClass('done'); | ||
| + | $('#targetDiv').html(div); | ||
| + | } | ||
| + | }); | ||
| + | </syntaxhighlight> | ||
=== Funktion nach Abschluss des Ladevorgangs ausführen === | === Funktion nach Abschluss des Ladevorgangs ausführen === | ||
Version vom 2. März 2017, 13:48 Uhr
Links
- https://api.jquery.com/load/
- http://www.webdesignerdepot.com/2014/02/how-to-supercharge-your-sites-speed-with-ajax-and-jquery/ Interessant zu URL Hashes
- JavaScript - Page Transitions - Beispiele
Grundlagen
Strategien
Über AJAX ist es möglich nur Teile einer Website zu laden und an bestehende anzufügen oder diese zu ersetzen. Das spart Ladezeit. Aus SEO Sicht sollte man die URL ebenfalls aktualisieren. Und die Browserhistory aktualisieren. Außerdem sollte die gesamte Seite neu geladen werden, wenn Die Seite direkt im Browser aufgerufen wird. Also alle Inhalte.
Wenn Teile der Seite geladen werden sollen gibt es generell zwei Wege.
- Server checkt ob AJAX Anforderung vorliegt und liefert dann nur den benötigten Teil der Inhalte aus. I.d.R. den Inhalt.
- Über den AJAX Aufruf werden bestimmte Teile der Seite angefordert. Diese wird dann geparsed und die benötigten Inhalte geladen. Etwas mehr Ladevolumen, weil der komplette Markdown geladen wird. Allerdings nur die benötigten Verweise (also keine Skripte, Bilder, etc. die nicht benötigt werden).
- Evtl. gibt es interessante Möglichkeiten über serverseitigem JS ???
Load Container Content
Mit load()
Über jQuery den Inhalt eines Elements (inkl. Element) anfordern.
$("#target").load("something.html #source");
Oder nur die Inhalte ohne das umschließende DIV
$("#target").load("something.html #source > *");
Variante wäre evtl. mit .innerHTML();
Mit ajax()
$.ajax({
url: 'something.html',
dataType: 'html',
success: function(html) {
var div = $('#sourceDiv', $(html)).addClass('done');
$('#targetDiv').html(div);
}
});
Funktion nach Abschluss des Ladevorgangs ausführen
jQuery - ausführlich
$.ajax({
type: "POST"
url: url,
data: { ajax: true },
success: function(data,status){
$pageData = data;
}
}).done(function(){
// when finished and successful
}
});