के साथ वादे करता हूं मैं jQuery में नई (आईएसएच) स्थगित वस्तु की जांच कर रहा हूं और मैं इस वेबसाइट आलेख here पर ठोकर खा रहा हूं।jquery defer और getScript
लेख में कुछ कोड स्क्रिप्ट को कैश करने के लिए डिज़ाइन किए गए हैं ताकि उन्हें एक से अधिक बार अनुरोध नहीं किया जा सके।
var cachedScriptPromises = {};
$.cachedGetScript = function(url, callback) {
if (!cachedScriptPromises[ url ]) {
cachedScriptPromises[ url ] = $.Deferred(function(defer) {
$.getScript(url).then(defer.resolve, defer.reject);
}).promise();
}
return cachedScriptPromises[ url ].done(callback);
};
// You would then call it like thus.
$.cachedGetScript(url).then(successCallback, errorCallback);
क्या यह मेरे लिए की तरह दिखाई देता लिए सुनिश्चित करें कि अपनी स्क्रिप्ट अगर आपके $.getScript()
सफल रहा था केवल निष्पादित हो जाएगा एक तरीका था।
जहां तक मेरे प्रयोग चले गए हैं, हालांकि त्रुटि कॉलबैक कभी भी कॉल नहीं किया जाता है, भले ही मैं गलत यूआरएल प्रदान करता हूं।
क्या मुझे कुछ स्पष्ट याद आया है या कोड नमूना गलत है?
नोट: मैंने इस प्रश्न को साइट पर पूछा होगा लेकिन टिप्पणी प्रणाली काम नहीं कर सका। : -एस
एक बहुत शर्म की बात है कि। अंतर्दृष्टि के लिए धन्यवाद। –
यह इस बात पर निर्भर करता है कि '.getScript' दोनों के पास [सीओआरएस] (http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing) और स्क्रिप्ट टैग इंजेक्शन देने के लिए समर्थन है या नहीं। यहां तक कि उत्तरार्द्ध भी स्थगित करने का समर्थन करने में सक्षम हो सकता है लेकिन क्या यह वर्तमान में करता है या नहीं, मुझे नहीं पता। – hippietrail
@lonesomeday, क्या आप वाकई स्थानीय अनुरोध के लिए AJAX के माध्यम से चलेंगे? यदि ऐसा है तो स्थानीय स्क्रिप्ट के लिए $ .ajax को कॉल करते समय, यह केवल डेटा देता है लेकिन इसे निष्पादित नहीं करता है? – adardesign