Web dünyasının yeni çocuğu JQUERY ile ajax’la uğraşanların büyük sorunu olan harici yüklenen sayfalarda “.js” kullanımına kendimce bir çözüm ürettim paylaşıyorum.
öncelikle jquery i sayfamıza ekliyoruz nasıl eklendiğini anlatmama gerek yok sanırım
function ajaxGetir(hedef,adres){
$(“#”+hedef).ajaxStart(function(){
$(this).html(“<object classid=’clsid:d27cdb6e-ae6d-11cf-96b8-444553540000′ codebase=’http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0′ width=’110′ height=’25′ id=’loading’ align=’middle’><param name=’allowScriptAccess’ value=’sameDomain’ /><param name=’movie’ value=’include/loading.swf’ /><param name=’quality’ value=’high’ /><param name=’wmode’ value=’transparent’ /><param name=’bgcolor’ value=’#ffffff’ /><embed src=’include/loading.swf’ quality=’high’ wmode=’transparent’ bgcolor=’#ffffff’ width=’110′ height=’25′ name=’loading’ align=’middle’ allowScriptAccess=’sameDomain’ type=’application/x-shockwave-flash’ pluginspage=’http://www.macromedia.com/go/getflashplayer’ /></object>”)
});
$.ajax({
type: ‘GET’,
url: adres+”.php”,
success: function(ajaxCevap) {
$(‘#’+hedef).html(ajaxCevap);
$.ajax({type: ‘GET’,cache: false,url: ‘include/’+adres+’.js’,dataType: ‘script’});
},
error: function(nesne, sebep, hata) {
$(“#”+hedef).html(‘<b>Bağlantı sırasında bir sorun oluştu. Lütfen sayfayı yenileyin…</b>’+hata);
}
});
}
burada senaryo şu şeklide:
bir tane ajaxGetir fonsiyonumuz var ve bu fonsiyon parametre olarak “hedef” yani içeriğin yükleneceği alan “adres” harici içeriğimiz.
“adres” ile aynı isimde birde o sayfada kullanılacak javascript kodlarını barındıran “.js” dosyası oluşturuyoruz.daha sonra ilk önce içeriğimizi yüklüyoruz hemen arkasından da ilgili “.js” dosyasını yüklüyoruz.İlgili “.js” dosyasınıda
$(document).ready(function(){});
kodlarıyla çalıştırıyoruz ve sorunsuz bir şekilde çalıştığını görüp hayretler içerisinde kalıp bana teşekkür ediyorsunuz.:)
$(“#”+hedef).ajaxStart(function(){
$(this).html(“<object classid=’clsid:d27cdb6e-ae6d-11cf-96b8-444553540000′ codebase=’http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0′ width=’110′ height=’25′ id=’loading’ align=’middle’><param name=’allowScriptAccess’ value=’sameDomain’ /><param name=’movie’ value=’include/loading.swf’ /><param name=’quality’ value=’high’ /><param name=’wmode’ value=’transparent’ /><param name=’bgcolor’ value=’#ffffff’ /><embed src=’include/loading.swf’ quality=’high’ wmode=’transparent’ bgcolor=’#ffffff’ width=’110′ height=’25′ name=’loading’ align=’middle’ allowScriptAccess=’sameDomain’ type=’application/x-shockwave-flash’ pluginspage=’http://www.macromedia.com/go/getflashplayer’ /></object>”)
});
bu ajaxStart() fonksiyonunu istediğiniz şekilde düzenleyebilirsiniz. Preloader’inizin gösterileceği fonksiyondur ben projemde “.swf” preloader kullanmayı uygun gördüm.
Dipnot: kullanacağınız harici “.js” dosyalrını mümkün olduğunca azaltıp hızlanmasını sağlamanız yararınıza olur. Belki bazı fonksiyonları sayfa ilk yüklendiğinde hazır edip harici “.js” ile tetiklemek daha mantıklı olabilir.



