jQuery + SEO
Sziasztok.
Most tanulgatom a jQuery-t és azt szeretném megvalósítani, hogy az oldal újratöltése nélkül frissüljön egy bizonyos doboz tartalma. Ezzel nincs is semmi gond, megy szépen.
A feladathoz tartozó html:A szkript:A probléma azzal van, hogy ebből hogyan csinálok kereső optimalizált történetet.
Az teljesen világos, hogy aki nem rendelkezik JS támogatással annak is biztosítani kell lehetőséget a tartalom "megszerzésére". Ezt hivatott elintézni, hogy a linkek nem könyvjelzőként, hanem teljes urlként vannak megadva. Természetesen az egész alatt fog majd futni egy szerveroldali szkript is. Az fogja kiszolgálni majd azokat a kéréseket, amik nem a http://site.com urlen érkeznek, hanem mondjuk a http://site.com/rolunk -ról.
Ügyebár a jelenlegi állás szerint a keresők a következő urleket indexelnék az oldalról: http://site.com/ , http://site.com/rolunk/ , http://site.com/eloadasok/ , http://site.com/kapcsolat/
Ekkor ha valaki a keresőkből érkezik mondjuk a http://site.com/rolunk/ linken, az alkalmazás gond nélkül visszaadja a teljes oldal, amiben a rolunk menüpont tartalma szerepel a megfelelő helyen, ám nekem ezzel az a bajom, hogy ha van a kliensnek js támogatása, akkor a további navigálás esetén a link elég csúnya lesz. ( pl.: http://site.com/rolunk/#kapcsolat )
Viszont az sem megoldás, hogy a hash-es url-t tároltatom el indexeltetem be a keresőkkel, mert akkor meg ha valaki olyan érkezik a keresőből akinek nincsen js támogatása, akkor neki nem fog betöltődni a tartalom.
Nem tudtok erre valami megoldást? :)
■ Most tanulgatom a jQuery-t és azt szeretném megvalósítani, hogy az oldal újratöltése nélkül frissüljön egy bizonyos doboz tartalma. Ezzel nincs is semmi gond, megy szépen.
A feladathoz tartozó html:
<a class="menuitem" href="http://site.com/rolunk/">Rólunk</a>
<a class="menuitem" href="http://site.com/eloadasok/">Előadások</a>
<a class="menuitem" href="http://site.com/kapcsolat/">Kapcsolat</a>
$( function() {
$('.menuitem').click( function( e ) {
$('.text').fadeOut('slow' , function(){
var link = e.currentTarget.href.split('/');
var page = link[link.length - 1] == '' ? link[link.length - 2] : link[link.length - 1];
window.location.hash = page;
$('.text').load('http://'+window.location.host+'/pages/'+page+'.html');
} );
$('.text').fadeIn('slow');
return false;
} );
});
Az teljesen világos, hogy aki nem rendelkezik JS támogatással annak is biztosítani kell lehetőséget a tartalom "megszerzésére". Ezt hivatott elintézni, hogy a linkek nem könyvjelzőként, hanem teljes urlként vannak megadva. Természetesen az egész alatt fog majd futni egy szerveroldali szkript is. Az fogja kiszolgálni majd azokat a kéréseket, amik nem a http://site.com urlen érkeznek, hanem mondjuk a http://site.com/rolunk -ról.
Ügyebár a jelenlegi állás szerint a keresők a következő urleket indexelnék az oldalról: http://site.com/ , http://site.com/rolunk/ , http://site.com/eloadasok/ , http://site.com/kapcsolat/
Ekkor ha valaki a keresőkből érkezik mondjuk a http://site.com/rolunk/ linken, az alkalmazás gond nélkül visszaadja a teljes oldal, amiben a rolunk menüpont tartalma szerepel a megfelelő helyen, ám nekem ezzel az a bajom, hogy ha van a kliensnek js támogatása, akkor a további navigálás esetén a link elég csúnya lesz. ( pl.: http://site.com/rolunk/#kapcsolat )
Viszont az sem megoldás, hogy a hash-es url-t tároltatom el indexeltetem be a keresőkkel, mert akkor meg ha valaki olyan érkezik a keresőből akinek nincsen js támogatása, akkor neki nem fog betöltődni a tartalom.
Nem tudtok erre valami megoldást? :)
.htaccess
Érdemes utánna olvasni, nem csak emiatt.
.htaccess-t használok, de nem
Tudnál adni egy kis segítséget?
Lehet mégiscsak értem
Arra gondolsz, a htaccess segítségével alakítsam át a hagyományos url-t hash-es urlre?
pl:
ezt kéri le a felhasználó: http://example.org/rolunk/
erre alakítom: http://example.org/#rolunk
Ha erre gondolsz, akkor szerintem önmagában ez sem jó megoldás. Hiszen csak akkor jut el a szerverhez a kérés, ha a felhasználónál valamiért nem támogatott a js, akkor viszont feleslegesen alakítom át, mert nem fog neki betöltődni a tartalom.
Ha nem erre gondoltál, akkor végképp nem értem, hogy mi köze az anchor-hoz a htaccessnek :)
re
Erre reagálva írtam, hogy a hash-es formát alakítsd át normál alakúvá.
http://site.com/rolunk/#kapcsolat -> http://site.com/rolunk/
(ez a működésben nem jelent módosulást, mert a htaccess, csak átírja az url-t, de nem navigál át, mintha js-el irányítottad volna át)
Nos erre azért nem gondoltam,
De szólj ha tévednék! :)
Lehet hogy nem írtam le elég világosan.
Ebben az esetben arról van szó, hogy a felhasználó képes futtatni JS-t.
Megérkezik a http://example.com/rolunk/ linkre.
Ekkor a szerveroldal segítségével betöltődik a megfelelő tartalom amit a /rolunk jelez a php-nak a linkben.
Ezek után ha a felhasználó mondjuk a menüben a kapcsolat menüpontra kattint akkor a JS segítségével a link így alakul:
http://example.com/rolunk/#kapcsolat
Ez a link váltás el sem jut a szerver felé, hiszen tartalmat anchor elemet, ami a böngészőnek ügye azt jelenti, hogy nem kell elküldeni a szerver felé, mert az adott dokumentum egy részére mutat a link.
Valójában az én problémám az, hogy az url-ek melyik verzióját tároltassam el a keresőkkel.
sztem ha van js és nem a
Igen, végül én is így
Ha van js, és a location.pathName nem üres, és nem is /, akkor csinálok egy refresht.
Azét köszönöm. :)