2013-04-23 19 views
5

Bu basitse özür dilerim; JQuery’de yeniyim. this gibi soruları araştırdım ve buldum, ama sorumu yanıtlamıyor gibi görünmüyorlar.Tarayıcı durdurma düğmesi üzerinde işlem gerçekleştirme

Ben uzun zaman alabilir eylemler için bir aptal ilerleme göstergesi göstermek için JQuery kullanıyorum:

kullanıcı form düğmesini tıkladığında
$(document).ready(function() { 
    $('form').submit(function() { 
     $('#progress').show(); 
    }); 
}); 

, sadece bir animasyonlu gif ile bir div gösterir. Bu div, sayfanın görünür olduğu süre boyunca görünür. Formun eylemi tamamlandıktan sonra yeni bir sayfa yüklenir.

Bu iyi çalışıyor, ancak kullanıcı eylem tamamlanmadan önce tarayıcıda "durdur" u tıklarsa ne olur? Div'u nasıl yok edebilirim? Bu olayı yakalamanın bir yolu var mı yoksa tüm durumu ele almanın daha iyi bir yolu var mı?

Yardımlarınız için teşekkürler.

+0

o olayı yakalayabilir: deneyebileceğiniz Ne

ilerleme iletişim küçük zaman aşımı sonra kaybolur yapmaktır. Ama daha iyi bir yol, AJAX kullanarak form verilerinizi göndermek olacaktır. Belki de [bunu kontrol edin] (http://stackoverflow.com/questions/1960240/jquery-ajax-submit-form) – musefan

+0

Bir "onstop" etkinliği var, tarayıcılar arası değil, çok güvenilir. – Xotic750

+0

Sadece div seçip kaldırabilir misin? Şöyle bir şey: '$ ('# progress'). Remove()' DOM'den çıkarır. Ne gibi eylemler olursa olsun durmayacak. Bunu yapmak, işlemi nasıl yaptığınıza bağlı olarak başka işlemler gerektirir. – ckersch

cevap

0

"onstop" olayını işlemek için kullanabilirsiniz, ancak yalnızca IE için çalışacaktır. Bu tür etkinlikleri diğer tarayıcılarda kullanamazsınız. Bu olası değildir

$('form').submit(function() { 
    $('#progress').show(); 
    setTimeout(function(){ 
      $('#progress').hide(); 
    },3000); 
}); 
+0

Evet, mümkün olmadığına karar verdim. Ancak, bir zaman aşımından sonra ortadan kaybolmak gerçekten işe yaramıyor. Bunu daha da kafa karıştırıcı hale getirir: Görev tamamlanmadan önce diyalog kutusu kaybolacaktır (kullanıcı başarısız olduğunu düşünerek); ya da durduklarında kaybolmak için bir süre geçecek (kullanıcı bunu devam ettirdiğini düşünerek); ya da her ikisi de. –

İlgili konular