2013-08-27 27 views
9

Uzak bir kaynak aracılığıyla yüklenen bazı html'leri görüntülemek için Bootstrap Modal window kullanıyoruz. Bunu Bootstrap belgelerinde önerilen yoldan, remote seçeneğini kullanarak ve url geçirerek yapıyoruz.Bootstrap Modal Uzak Kaynak Hatası Hata İletisi

Örneğin (here açıklandığı gibi):

$('#id').modal({remote:'index.html'}); 

Sorum: mevcut olmadığının index.html durumunda bir hata işlemek mümkün mü?

Belgelerde hiç bir yanıt göremiyorum.

Bunun nadiren gerçekleşmesi gerektiğini biliyorum, ancak birisi yavaş veya noktalı bir bağlantıya sahipse, yalnızca boş bir modelle asmaktan ziyade bir hata göstermeyi tercih ederim. üzerinde çalışılan

bir geri arama kullanıldığını gösterir
… 
if (this.options.remote) this.$element.load(this.options.remote) 
… 

, istek sonucu direkt dom elemanına tahsis edilir:

+1

here Ben bir +1 verdi Küresel Ajax işleyicileri hakkında daha fazla bilgi bulabilirsiniz ama ben de gidiyorum onu eklemek Dosyaların geri kalanı yokken tek bir dosyanın bu kadar kötü bir şekilde ön plana çıkma olasılığı düşük gibi görünüyor. Diğer bir deyişle, uygulamanızın aynı sunucu/alandan yüklendiği varsayıldığında, uygulamanız/sayfanız muhtemelen başka alanlarda sorunlu olacaktır. durum. –

+1

Teşekkürler! Evet katılıyorum. Bu konuyu özellikle mobilde fark ettik. Bu, açık nedenlerin kapsama alanı her zaman mükemmel olmadığı için bağlantıları düşürebiliyor. Bu olduğunda, tüm uygulamalarımız, hatalar/zaman aşımları için herhangi bir koşulun (anlayabildiğim kadarıyla) olmadığı için donduruldu.Sadece zor bir sıfırlama yapana kadar sayfayı kapatan koyu arka planı elde edersiniz. – nostromo

cevap

5

senin Uygulamanın bu yapılır her Ajax isteğine ekler, uygulama aşağıdaki gibi görünecektir:

$(document).ajaxError(function(event, jqxhr, settings, exception) { 
    //Since this handler is attach to all ajax requests we can differentiate by the settings used to build the request 
    if (settings.url == "index.html") { 
    //Handle error 
    } 
}); 

Sen

+0

Oh snap! Harika bir nokta. –

3

anda Github Repo (/js/modal.js) kalıcı eklenti tanımı bu parçasını içeren . docs jQuery.load itibaren

:

Bu yöntem sunucudan veri almak için en basit yoldur. Küresel işlevden ziyade yönteminden başka bir deyişle $ .get (url, veri, başarı) ile eşdeğerdir ve örtülü bir geri çağırma işlevi vardır. Başarılı bir yanıt saptandığında (yani, textStatus "başarı" veya "değiştirilmemiş" olduğunda) .load(), eşleşen öğesinin HTML içeriğini döndürülen verilere ayarlar.

$("#success").load("/not-here.php", function(response, status, xhr) { 
    if (status == "error") { 
    var msg = "Sorry but there was an error: "; 
    $("#error").html(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

Bu heyecan ekibi hatayı işlemez seçti görünüyor:

ilerleyen doc load ile bir arızanın saptanmasını açıklamaktadır bir kod snippt yoktur.

Belki bir sorunu başlama zamanı, bu tür şeyleri ele almak isteyeyim bir "mobil ilk" kütüphanesi gibi görünüyor incelikle ;-) https://github.com/twbs/bootstrap/issues

Sen bir Global Ajax Error Handler uygulamak isteyebilirsiniz