基本上我做的是检查对象的存在,如果它没有找到,该脚本将尝试加载使用getScript加入源文件。我只希望一次检查,虽然这则返回true或false来调用获取函数()

  fetch:function(obj){
      ...
        isReady = false;
   $.getScript(obj.srcFile,function(){

    isReady=true;
    warn("was able to load object "+key);

   });

   return isReady;

   }

但脚本之前在返回踢负载= /

后的脚本被加载,但该函数返回假。

这是异步的,我想美容...

什么是处理这个问题的最好方法......也许我可以再次一些其他的点,如果对象存在检查?

或者,也许有更好的方法来做到这一点,我不要有可能锁定浏览器?

有帮助吗?

解决方案

这是你的代码的组织,我猜你正在使用的对象包含你的方法。如果是这样,那么你可以使用像这样的自定义事件:

var thing = {
    fetch: function(obj){
        var self = this;
        if (obj.isReady){
            self.trigger('ready', [obj]);
            return;
        }
        $.getScript(obj.srcFile,function(){
            obj.isReady = true;
            self.trigger('ready', [obj]);
        });
    }   
};

thing.bind('ready',function(e, obj){
    // do what you need to do when the object exists here
});
var obj = {};
thing.fetch(obj);

其他提示

请参阅 jQuery.ajax():请async

  

缺省情况下,所有的请求被发送异步(即这是通过默认设置为true)。如果您需要同步请求,请将此选项设置为false。请注意,同步请求可能会暂时锁定浏览器,禁用任何操作而请求是活动的。

fetch:function(obj){
 isReady = false;
 $.getScript(obj.srcFile,function(script_data){

  isReady=true;
  warn("was able to load object "+key);
  if ( typeof( script_data ) != 'undefined' ) {
     return isReady;
  }

  });


 }

您需要返回的回调函数内的值,否则将启动该请求,然后返回直线距离。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top