Web İki Defa Post Etme Sorunu
-
Merhaba mürit ve mürideler,
Sistemde bir çok button var ve bu buttonlara iki defa tıklanıldığında 2 defa üste işlem yapıyor. Yani atıyorum o an internet yavaşlasa vs. 2 defa tıklayınca son kullanıcı o işi 2 defa yapıyor.
Bunun önlemi nasıl alınır ?
Aklıma ajax cevap verene kadar buttonu hide yapmak yada disabled yapmak geliyor ama sistemde 10.000 e yakın button var diyebilirim. Hepsine tek tek bunu yapmak benim için şuan ölüm....Server-side vs bir çözüm üretilebiliniyor mu ? Yada Jquery ajax tarafında ?
Sistem : Php .
Framework : Yok.
Post işlemlerinin tümü Ajax ile gerçekleşiyor.
Server : Apache.
Edit : bu sorun tahribatta var iki kere gitmiş diyoz ya hani :D
MhmdAlmz tarafından 20/Ara/18 17:35 tarihinde düzenlenmiştir -
frontend tarafinda onun onlemini alman lazim oncelikle, sonra da race condition i arastir bi haci.
-
async yi false yap, tüm sayfa ajaxı bekler, ajax bitmeden tıklayamaz bir yere.
jquery ajax kullanıyosan şu yeterli
$.ajaxSetup({
async: false
});
-
yolbulucu bunu yazdı
async yi false yap, tüm sayfa ajaxı bekler, ajax bitmeden tıklayamaz bir yere.
jquery ajax kullanıyosan şu yeterli
$.ajaxSetup({
async: false
});
Yok hocam Async olması lazım başka alternatif gerekli. Ajax yapıları bilinçli bir şekilde async yapılmış durumda
@iskeltan , bakayım hocam bir.
MhmdAlmz tarafından 20/Ara/18 17:52 tarihinde düzenlenmiştir -
MhmdAlmz bunu yazdıyolbulucu bunu yazdı
async yi false yap, tüm sayfa ajaxı bekler, ajax bitmeden tıklayamaz bir yere.
jquery ajax kullanıyosan şu yeterli
$.ajaxSetup({
async: false
});
Yok hocam Async olması lazım başka alternatif gerekli. Ajax yapıları bilinçli bir şekilde async yapılmış durumda
@iskeltan , bakayım hocam bir.
kodunu bilmiyorum ama,
button elementinin click fonksiyonunda tıklanan her butonu disable edip, ajax çağrısından sonra geri açsan yemiyor mu ?
-
yolbulucu bunu yazdıMhmdAlmz bunu yazdıyolbulucu bunu yazdı
async yi false yap, tüm sayfa ajaxı bekler, ajax bitmeden tıklayamaz bir yere.
jquery ajax kullanıyosan şu yeterli
$.ajaxSetup({
async: false
});
Yok hocam Async olması lazım başka alternatif gerekli. Ajax yapıları bilinçli bir şekilde async yapılmış durumda
@iskeltan , bakayım hocam bir.
kodunu bilmiyorum ama,
button elementinin click fonksiyonunda tıklanan her butonu disable edip, ajax çağrısından sonra geri açsan yemiyor mu ?
Hocam daha önce bahsettiğim gibi 10.000 e yakın button var. Hepsine tek tek bunu nasıl yapam :D
-
ajax başında butonu disable getir . ajax done olunca disable attributunu kaldır. bunu otomatik yapmak istersen blockui jquery kütüphanesi otomatik yapıyor.
-
Hiç girişmeyeyim bu işe en iyisi hepsi front-end çözüm amelelik işi uğraşamam :D
Teşekkürler cevaplar için..
-
yanlis yere yazdim
cybermole tarafından 20/Ara/18 20:50 tarihinde düzenlenmiştir -
MhmdAlmz bunu yazdı
Hiç girişmeyeyim bu işe en iyisi hepsi front-end çözüm amelelik işi uğraşamam :D
Teşekkürler cevaplar için..
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
tek satır kodda çözüceksin işlemi bir ameleliği yok şu kod sayfada herhangi bir ajax işlemi olduğunda çalışır işlem bitince biter. sen burda ister element blokla ister sayfa -
FCN bunu yazdıMhmdAlmz bunu yazdı
Hiç girişmeyeyim bu işe en iyisi hepsi front-end çözüm amelelik işi uğraşamam :D
Teşekkürler cevaplar için..
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
tek satır kodda çözüceksin işlemi bir ameleliği yok şu kod sayfada herhangi bir ajax işlemi olduğunda çalışır işlem bitince biter. sen burda ister element blokla ister sayfaHocam çok fazla button var yada ben bunun mantığını anlamadım ?