[Linux-programlama] Re: AJAX ve JavaScipt ile URL değiştirme

---------

[Linux-programlama] Re: AJAX ve JavaScipt ile URL değiştirme

From: Nuri Akman <nuri.akman_at_hazine.gov.tr>
Date: Tue, 26 Feb 2008 13:26:11 +0200
Message-ID: <47C3F753.5020803@hazine.gov.tr>

Merhaba,

Necmettin Bey, mesajınızda "/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.../" diyorsunuz.

Ben, PHP içinden URL'deki # ve sonrasını almayı başaramadım.
Bunu nasıl yaparım acaba? Çünkü $_SERVER içindeki alanlara baktığımda # ve sonrası YOK.

mod_rewrite konusuna gelince, ajax konumuzu açıklığa kavuşturduktan sonra bu konuyu tartışmaya açalım.

Necmettin Begiter yazmış:
> 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:
> < Önceki resim
>
> 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
>
>

_______________________________________________
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:47:28 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.