[Linux-programlama] Re: AJAX ve JavaScipt ile URL deÄŸiÅŸtirme

---------

[Linux-programlama] Re: AJAX ve JavaScipt ile URL deÄŸiÅŸtirme

From: Necmettin Begiter <necmettin.begiter_at_gmail.com>
Date: Tue, 26 Feb 2008 13:18:51 +0200
Message-ID: <3787dfa80802260318m3527bc54xfc90b5b1c26fb59d@mail.gmail.com>

26.02.2008 tarihinde Nuri Akman <nuri.akman_at_hazine.gov.tr> yazmýþ:
>
> Arkadaþlar,
>
> Artýk AJAX kullanýmý oldukça arttý. Ancak, bu durum Arama Motorlarý
> açýsýndan
> sayfanýn indexlenmesinde olumsuz sonuç verdi.
>
> Çünkü, JS ile yapýlan AJAX çaðrýlarý, Arama Motorlarý tarafýndan
> algýlanamýyor.
>
> Örneðin:
> [a href="#" onclick="SayfaGoster(3); return false;"]Ürünlerimiz[/a]
>
> Ayrýca, bu örnekte URL'de yazan http://www.mydomain.com ifadesi deðiþmiyor.
> Böyle olunca sayfanýn kalýcý linki (permenant link) baþkalarýyla
> paylaþýlamýyor.
> Yani ziyaretçiler, "Abi, istediðin ürün þu sayfada : xxx " gibi bir mesaj
> gönderilemiyor.
>
> Burada 3 adet sorun var:
> 1.) Arama Motorlarýnda yer alamama
> 2.) Kalýcý link verememe
> 3.) Hedefi yeni pencerede/sekmede aç sað tuþ fonksiyonlarý çalýþmýyor.
>
> Aþaðýdaki basit çözüm ile buradaki sorunlarýn 2 tanesini gidermek mümkün:
>
> [a href="urunler.php" onclick="SayfaGoster(3); return
> false;"]Ürünlerimiz[/a]
>
> Bu kullanýmda, href'e deðer girildiði için;
> 1.) Arama motoru doðru indexleme yapabilir.
> 2.) Hedefi yeni pencerede/sekmede aç sað tuþ fonksiyonlarý çalýþýr.
>
> Geriye sadece AJAX kullanýmýnda adres satýrýnýn deðiþtirilmesi konusu
> kalýyor.
>
> Geçmiþte FLASH kullanýlarak bunun yapýlabildiðini okumuþtum, ancak o zaman
> ilgimi çekmemiþti.
>
> Ajax ile sayfa URL'inin deðiþtirilmesi, sayfanýn yeniden yüklenmesine
> (post-back) neden olur.
> Bu da AJAX'ýn getirdiði avantajlarýn silinip gitmesi anlamýný taþýr.
>
> FaceBook'da Fotograf Albumü bölümünü incelerken þunu gördüm:
> Sonraki/Önceki fotoðraf düðmelerine basýldýðýnda URL'de :
> http://www.facebook.com/photo.php?pid=300319&id=772293458&ref=nf#pid=160222&id=686426247
> gibi "URL DEÐÝÞÝMÝ" olduðunu gözlemledim.
>
> Ayný sayfa adresi þu þekilde yazýldýðýnda yine sayfa çalýþmaktadýr.
> http://www.facebook.com/photo.php#pid=160222&id=686426247
>
> Sanýrým AJAX çözümünde bu noktaya odaklanýrsam üçüncü ve son sorun da
> çözülmüþ olur.
>
> Bu çerçevede, URL'deki # karakteri sonrasýndaki pid ve id gibi
> parametrelerin ayrýlarak PHP'de $_GET['id'] biçiminde kullanýlabilmesi için
> bir çalýþma yapmak yeterli olacaktýr.
>

Adlandýrýlmýþ köprüler (named anchor) farklý bir sayfadaki
adlandýrýlmýþ köprüye gidilmediði taktirde sunucudan ziyade istemci
taraflý birþey olduðu için, adlandýrýlmýþ köprüye gitme iþlemini
istemci yapýyor, sunucu tarafýnda herhangi bir iþlem yok bununla
ilgili. (Bu kýsým ayrýca ben mesajýmý yazarken Anýl'dan gelen mesaja
da yanýt oluþturuyor.)

Þöyle bir JavaScript bloðu düþünelim (bazý fonksiyonlarda JS'den
ziyade PHP ve Python yapýsý görebilirsiniz ama anlayacaðýnýza eminim):

resimler = ('bir.jpg', 'iki.jpg', 'uc.jpg')
kok = ('http://x/resimler')
aktif = 0
function resmi_goster(numara)
{
if (numara >= 0) and (numara<=len(resimler))
{
aktif = numara
document.getElementById('resim').src = kok + resimler(numara)
}
}

Resmin altýndaki önceki resim köprüsü veya düðmesi de þöyle olsun:
<a href="#resim="+aktif onclick="resmi_goster(aktif-1)">&lt; Önceki resim</a>

PHP tarafýnda da $_SERVER'dan adresi alýp '#' ve sonrasýný
ayrýþtýrarak direkt belirli bir resmin açýlmasý saðlanabiliyor,
dolayýsýyla deðiþmez baðlar da çalýþýyor...
Daha önce bu mantýkla eþim için bir fotoðraf albümü uygulamasý
yapmýþtým, herhangi bir sorun hatýrlamýyorum...

> Sorunu ve çözümü bu þekilde tespit ettikten sonra sanýrým bu konuda web'den
> örnek aramaya gerek olmayacaktýr.
>
> Diðer taraftan, Apache'deki mod_rewrite ile AJAX çaðrýsý konusunun ayrýca
> ele alýnmasý gerekir düþüncesindeyim.

mod_rewrite ile Ajax çaðrýsýnýn baðlantýsýný anlayamadým? Sunucudan
alýnan sayfayla gösterilen adresin farklý olmasýný mý istiyorsunuz?

>
> Arkadaþlar, bu konudaki fikirlerinizi grup üyeleri ile paylaþmanýzý
> dilerim.
>
> Selamlar,
> Nuri AKMAN
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 26 Feb 2008 - 12:40:03 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.