o zaman size kodları yoluyorum.
$("input[name=yazaradi]").keyup(function(){
var sonuc=new Array();
var out=new Array();
if ($(this).val().length>2)
{
$.ajax({
type:"POST",
url:"yazarcek.php",
data:"deger="+$(this).val(),
dataType: "json",
success:function(id){
$.each(id,function(key,valuec){
sonuc.push(key,valuec);
out[valuec]=key;
});
$("input[name=yazaradi]").autocomplete({
autoFocus:true,
delay:1000,
select:function(){
$("input[name=yazaradi]").attr("disabled","disabled");
$(".yazarcik").show();
$("input[name=yazarid]").val("");
},
close:function(){
//alert(out[$("input[name=yazaradi]").val()]);
$("input[name=yazarid]").val(out[$(this).val()]);
},
source:sonuc
});
}
});
}
});
burada sistemi hızlandıracak ne gibi yöntemler kullanabilirim ?
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 20:11:07 -->-> Daha önceki mesaj 20:02:11 --
çok basit her tuşa bastığınızda veritabanına bir sorgu atılıyor 5 karakterli bir aramada işlem bitince 5 sorgu atıyor bunu bir sorguaya düşürmem lazım. ayrıca like ile arama işlemleri veritabanında en zor işlemlerdir id ile aramaya oranla 5 kata kadar sistemi kasar.
javascript kısmı için timeout kontrolü ekleyebilirsin.
http://www.w3schools.com/jsref/met_win_cleartimeout.asp
if ($(this).val().length>2)
direk sorguyu göndermek yerine misal 1 sn sonra arama yaptırabilirsin.
ziyaretçi arama metnini yazarken timeout silinir, yazması bittikten 1 sn sonra ajax ile isteği gönderirsin
.
.
clearTimeout(t);
if ($(this).val().length>2) {
t=setTimeout(function(){timedCount()},1000);
}
--------------------------------
veritabanı açısından
mysql memory table kullanabilirsin daha hızlı olucaktır.
cron ile verileri memory tablosuna aktarırsın düzenli, ordan da arama yaptırabilirsin.
file cache pek uygun değil bence bu uygulama için...