Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

Ajax sorgusu

Diyelim ki butona tiklayinca ajax calisiyor ve mysql baglanti kurarak veri aliyorum. Sorun soyle ki ben butona ard arda 10 15 ve ya daha cok tiklarsam o kadar sorgu calisiyor siteye zarar vere bilirler. Nasil onlem ala bilirim ?

2

Cevaplar (2)

İşlem devam ediyor, lütfen bekleyin..
Emre BÜYÜKDURMUŞ
Doğru Cevap
@ebykdrms
1 ay önce [Güncellendi]

Butona tıklandığında ilk olarak butonu pasif yapın. Şu şekilde yapabilirsiniz:

$('#butonum').prop('disabled',true);


Ajax isteği tamamlandığında (mesela complete fonksiyonunda) butonu tekrar aktif edin. Şu şekilde yapabilirsiniz:

$('#butonum').prop('disabled',false);


Ayrıca butona tıklandığında butonun aktif olup olmadığını kontrol ederek eğer aktif değilse işlem yaptırmayabilirsiniz. Örneğin:

// butona tıklandığında
$('#butonum').on('click',function(){

    // eğer buton pasifse bi'şey yapma.
    if($(this).prop('disabled')==true) return false;

    // butonu pasif hale getir
    $('#butonum').prop('disabled',true);

    // buradan sonra da yukarıda bahsettiğim şekilde
    // ajax isteğini başlatabilirsiniz.
    
});
Cevapla @muratcankuruoffical1 ay önce
@ebykdrms abi beni ınstagramda eklermisin muratcankuruoffical yada twitter muratcankuruu
Cevapla @ebykdrms1 ay önce
@muratcankuruoffical, Google'a kullanıcı adımı yazdığında ilk sayfada bana ulaşabileceğin bir çok yol olduğunu görebilirsin. Twitter hesabım var ama kullanmıyorum. Instagram'da da pek aktif değilim.
İşlem devam ediyor, lütfen bekleyin..
Abdulbaki Zırıh
@abdulbaki
1 ay önce [Güncellendi]
<button id="send">Gönder</button>
<script>
var process = false; // işlem süreci için değişken tanımlayıp default olarak false değerini atıyoruz.
$("#send").click(function(){ // butonumuza tıklandığında.
  if(process === false){ // işlem başlamamış ise başlamaya hazır.
    process = true; // değeri true yapıyoruz ve işlem bitmeden tekrar tıklanırsa tekrar çalışmaması için.
    $.ajax({
      type: 'post',
      url: url,
      data: { 'data': data },
      success: function(result){
        if(result = "success"){
          process = false; // işlem bittiğinde değeri tekrar false yapıp fonksiyonu çalışmaya hazır hale getiriyoruz.
        }
      }
    });
  }
});
</script>
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın

Yabancı Dizi Arşivi