jQuery, Ajax, html HEAD probléma
Szervusztok!
Egy olyan kódot írok, amelynek segítségével az oldalon a linkre kattintva a böngésző nem tölti újra az oldalt, hanem csak a tartalmat cseréli ki.
A jQuery és Ajax segítségével sikerült összehozni a dolgot, még a HEAD részt is lefrissíti, azonban van egy kis problémám. :S
Az újratöltéseket ez a JS kód végzi:A problémám az, hogy bár az ajax kérésekre kapott válasz megfelelő és jó helyre is kerül, mégis a böngésző nem használja az új HEAD részt, kizárólag a régit.
Emiatt nem működnek az újonnan betöltött javascript kódok sem a stíluslapok.
Tud nekem ebben valaki segíteni, van erre valamilyen megoldás?
Előre is köszönöm!
■ Egy olyan kódot írok, amelynek segítségével az oldalon a linkre kattintva a böngésző nem tölti újra az oldalt, hanem csak a tartalmat cseréli ki.
A jQuery és Ajax segítségével sikerült összehozni a dolgot, még a HEAD részt is lefrissíti, azonban van egy kis problémám. :S
Az újratöltéseket ez a JS kód végzi:
$(document).ready( function() {
$("a").click(function(){
if ($(this).attr("rel")=="ajax")
{
showAjaxloader();
//egy html kódot szúr be a /body elé, ami egy animált gif,
//a böngésző terület közepén (ajax loader)
var url=$(this).attr("href");
$("head").load("index.php?getheader="+url+"&ajax=true", function(response, status, xhr) {
$(".content").load("index.php?page="+url+"&ajax=true", function(response, status, xhr) {
//az ajax loader eltüntetése, html kódjának törlése
$("#ajaxloader").fadeOut('fast', function() {
$("#ajaxloaderBG").fadeOut('fast', function() {
$("#ajaxloaderBG").remove();
$("#ajaxloader").remove();
});
});
});
});
return false;
}
});
});
Emiatt nem működnek az újonnan betöltött javascript kódok sem a stíluslapok.
Tud nekem ebben valaki segíteni, van erre valamilyen megoldás?
Előre is köszönöm!
Head-be ajax?
De ha a head-ben lecseréled a "szöveget" (pl. css-link), mi fogja megmondani a böngésződnek, hogy "olvasd újra"?! Mondjuk pont egy frissítés... (Most beugrott a reload, de valszeg erre nem használható.)
Ezen kívül úgy tűnik, hogy mindent cserélsz némi kevéske kiegészítő tartalmi elemen kívül, emiatt eleve kérdéses, hogy a két ajax-kérés gyorsabb/jobb lenne, mint egyetlen refresh/redirect. A kieg. cuccost lehet (kell) szerveroldalon cache-elni, az ajax nem túl jó komplett oldalcserére, inkább egy-egy pici részlet frissítésére.
És még a JS-nélküli működésről nem is szóltam: műxik majd úgy is?
De ha mindenképp így akarod, akkor a JS-eket húzhatod <body>-n belülre is, a load lefutása után pedig meghívod belőlük az inicializáló fv-t.
Olvasd újra
Jó, hát ha nem lehet, akkor nem csináljuk!
Minden esetre köszi a választ!
A JS nélküli működésről gondoskodtam! Alapjáraton, ha nincs engedélyezve, akkor a böngésző megy a href-ben megadott címre.
A JS-ek body-n belülre húzásával nem érek el sokat, mert a stílus fájlok is változank a különböző pluginok miatt.
Na sebaj!
Arra következtetek, hogy 2 megoldás marad:
1. Ha nem egy robot nyitja meg az oldalt, akkor betöltődik minden CSS és JS file, így elég 1 ajax kérés és minden szépen megy, mert csak a TITLE-t kell felülírni.
Ha robot nyitja meg az oldalt, akkor meg nincs ajax...
2. Egyáltalán nem alkalmazok ajaxot... :D
Még egyszer köszönöm a válaszod, számomra tanulságos volt!
keress rá. a
az $('a').click(); helyett érdemes volna
Köszönöm, ki fogom próbálni
Sajnos ez sem jó megoldás, de