我一直在调查jQuery中的新(ish)延迟对象,我偶然发现了这个网站文章
here.
在本文中有一些代码用于缓存脚本,因此不会多次请求它们.
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()成功时才能执行脚本的方法.
至于我的实验已经消失,即使我提供了一个不正确的网址,也不会调用错误回调.
我错过了一些明显的或者代码示例错了吗?
注意:我在网站上问过这个问题,但评论系统没有用. :-S