2013-08-27 15 views
9

हम Bootstrap Modal window का उपयोग कर रहे हैं जो किसी दूरस्थ स्रोत के माध्यम से लोड होने वाले कुछ HTML को प्रदर्शित करने के लिए उपयोग कर रहे हैं। remote विकल्प का उपयोग करके और url को पास करके हम Bootstrap दस्तावेज़ों में अनुशंसित तरीके से ऐसा कर रहे हैं। (वर्णित here के रूप में)बूटस्ट्रैप मॉडल रिमोट स्रोत त्रुटि

उदाहरण के लिए:

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

मेरा प्रश्न: यह मामला है कि index.html उपलब्ध नहीं है में एक त्रुटि को संभालने के लिए संभव है?

मुझे प्रलेखन में कोई जवाब नहीं दिख रहा है।

मुझे पता है कि यह शायद ही कभी होता है, हालांकि अगर किसी के पास धीमा या स्पॉटी कनेक्शन है, तो मैं उन्हें खाली मोडल के साथ बस लटकने की बजाय एक त्रुटि दिखाऊंगा। पर काम किया जा

… 
if (this.options.remote) this.$element.load(this.options.remote) 
… 

जो इंगित करता है कि कोई कॉलबैक प्रयोग किया जाता है, अनुरोध के परिणाम सीधे डोम तत्व को सौंपा गया है:

+1

मैं एक 1+ दिया था, लेकिन मैं भी जा रहा हूँ इसे जोड़ने के लिए ऐसा लगता है कि एक फ़ाइल कमजोर हो जाएगी जब बाकी फाइलें नहीं होंगी - दूसरे शब्दों में, आपका ऐप/पेज शायद अन्य क्षेत्रों में समस्याग्रस्त हो जाएगा, यह मानते हुए कि यह संपत्ति उसी सर्वर/डोमेन से लोड की गई है परिस्थिति। –

+1

धन्यवाद! हाँ मैं सहमत हूँ। हमने इस मुद्दे को विशेष रूप से मोबाइल पर देखा - जो स्पष्ट कारणों से कवरेज को छोड़ सकता है क्योंकि कवरेज हमेशा सही नहीं होता है। जब ऐसा होता है तो हमारा पूरा ऐप जमे हुए है क्योंकि इसमें त्रुटियों/टाइमआउट के लिए कोई शर्त नहीं है (जहां तक ​​मैं बता सकता हूं)।जब तक आप हार्ड रीसेट नहीं करते हैं तब तक आपको पृष्ठ को कवर करने वाली अंधेरी पृष्ठभूमि मिलती है। – nostromo

उत्तर

5

आप में एक वैश्विक अजाक्स त्रुटि हैंडलर लागू करने के लिए चाहते हो सकता है आपके एप्लिकेशन, इस हर Ajax अनुरोध किया जाता है कि करने के लिए जोड़ देती है, कार्यान्वयन कुछ इस तरह दिखेगा:

$(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 
    } 
}); 

आप वैश्विक अजाक्स हैंडलर के बारे में अधिक पढ़ सकते हैं here

+0

ओह स्नैप! महान बिंदु। –

3

वर्तमान में Github रेपो (/js/modal.js) मोडल प्लगइन परिभाषा इस टुकड़ा होता है ।

डॉक्स jQuery.load से

:

इस विधि सर्वर से डेटा प्राप्त करने का सबसे आसान तरीका है। यह लगभग $ .get (url, डेटा, सफलता) के बराबर है, सिवाय इसके कि यह वैश्विक फ़ंक्शन की बजाय विधि है और इसमें एक अंतर्निहित कॉलबैक फ़ंक्शन है। जब एक सफल प्रतिक्रिया का पता चला है (यानी जब टेक्स्टस्टैटस "सफलता" या "नोटमोडाइफाइड" है), .load() लौटाए गए डेटा पर मिलान किए गए तत्व की HTML सामग्री सेट करता है।

$("#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); 
    } 
}); 

ऐसा लगता ट्विटर टीम करने का विकल्प चुना त्रुटि को संभाल नहीं:

दस्तावेज़ में बाद में वहाँ एक कोड snippt का वर्णन करता है कि कैसे load के साथ एक विफलता का पता लगाने के लिए है।

शायद यह एक मुद्दा शुरू करने के लिए समय आ गया है, यह एक "मोबाइल पहली" पुस्तकालय की तरह लगता है बात इस तरह का हैंडल करना चाहते हैं शान से ;-) https://github.com/twbs/bootstrap/issues

संबंधित मुद्दे