2010-05-21 8 views
6

मान लीजिए, उदाहरण के लिए, मैं आंशिक रूप से jQuery अजाक्स के साथ जीमेल के इंटरफेस को क्लोन करना चाहता हूं और आवधिक ऑटो-सेविंग के साथ-साथ भेजना चाहता हूं। और विशेष रूप से, मान लीजिए कि मुझे त्रुटि प्रबंधन, नेटवर्क और अन्य त्रुटियों की अपेक्षा करने की परवाह है, और केवल आशावादी होने की बजाय मैं अलग-अलग त्रुटियों के समझदार हैंडलिंग चाहता हूं।अजाक्स सुविधा विधियों और त्रुटि प्रबंधन के संबंध में jQuery सर्वोत्तम प्रथाएं क्या हैं?

यदि मैं $ .ajax() की "निम्न-स्तर" सुविधा का उपयोग करता हूं तो यह स्पष्ट है कि त्रुटि कॉलबैक निर्दिष्ट करने के लिए, लेकिन $ .get(), $ .post(), और .load की सुविधा विधियां() त्रुटि कॉलबैक निर्दिष्ट करने की अनुमति न दें।

निराशावादी त्रुटि प्रबंधन के लिए सर्वोत्तम प्रथाएं क्या हैं? क्या यह कुछ .jaxError() को कुछ लिपटे सेट के साथ पंजीकृत कर रहा है, या $ .ajaxSetup() में एक आत्म-निरीक्षण शैली वैश्विक त्रुटि हैंडलर है? कोड का प्रासंगिक भाग एक ऑटोसव को शुरू करने जैसा दिखता है ताकि स्वत: सहेजने का प्रयास विफल होने पर "स्वत: सहेज नहीं सकता" टाइप चेतावनी प्रदर्शित की जा सके, और शायद एक संदेश जो त्रुटि के प्रकार के लिए अनुकूलित किया गया हो?

धन्यवाद,

उत्तर

10

आम बात गैर $.ajax कार्यों के दौरान त्रुटियों के लिए एक सामान्य कॉलबैक हैंडलर निर्दिष्ट करने के लिए $.ajaxSetup उपयोग करने के लिए है। जैसे

function init() { 
    $.ajaxSetup({ 
     error: handleXhrError 
    }); 
} 

function handleXhrError(xhr, errorType, exceptionThrown) { 
    // ... 
} 

अंदर handleXhrError आप Gmail की तरह या तो मोडल विंडो या कुछ सूचना पट्टी प्रदर्शित कर सकते हैं, या पूरे document की जगह, कार्यात्मक जरूरतों पर निर्भर करता है। xhr.status से xhr.responseText और/या HTTP status code द्वारा प्राप्त प्रतिक्रिया निकाय के आधार पर आप कार्रवाई कर सकते हैं। प्रतिक्रिया शरीर और स्थिति के मूल्य सर्वर की ओर से नियंत्रित हैं। उनको समस्या के बारे में पर्याप्त जानकारी और कौन सी त्रुटि कार्रवाई करने के लिए पर्याप्त जानकारी प्रदान करनी चाहिए। errorType एक समय समाप्ति होने पर 'timeout' के बराबर होगा (यानी नेटवर्क समस्या)।

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

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