Javascript Requirejs加载主干和下划线的潜在竞争条件
当使用requirejs从amazon s3中提取主干线和下划线时,下面的错误会在1/10左右刷新,该主干线和下划线在/shared/common.js文件中的require shim中定义 下面的代码加载到header.jade文件中,以呈现header中的主干视图,从而从localstorage中提取数据并确定用户的信息 然后将其加载到头DOM中Javascript Requirejs加载主干和下划线的潜在竞争条件,javascript,jquery,backbone.js,requirejs,underscore.js,Javascript,Jquery,Backbone.js,Requirejs,Underscore.js,当使用requirejs从amazon s3中提取主干线和下划线时,下面的错误会在1/10左右刷新,该主干线和下划线在/shared/common.js文件中的require shim中定义 下面的代码加载到header.jade文件中,以呈现header中的主干视图,从而从localstorage中提取数据并确定用户的信息 然后将其加载到头DOM中 script(type="text/javascript"). require(['/shared/common.js'], funct
script(type="text/javascript").
require(['/shared/common.js'], function (common) {
require(['/shared-marketplace/views/global-header-view.js', '/shared-marketplace/views/quote-form-modal-view.js'], function(GlobalHeaderView, QuoteFormModalView){
var globalHeaderView = new GlobalHeaderView({el : $('header')});
$('.open-quote-request').on('click', function(e){
e.preventDefault();
var phaseLoad = $(e.currentTarget).data('phase')
quoteFormView = new QuoteFormModalView({'phase' : phaseLoad, 'fromNonProfilePage' : true}).$el.modal({show : true, backdrop: 'static'});
});
});
});
页面页脚的代码也依赖于/shared/common.js,在主页js可以与所有主干视图一起加载之前,需要先加载/shared/common.js
script.
require(['/shared/common.js'], function (common) {
require(['main.js']);
require(['/shared-marketplace/js/search-advisor.js'], function(){
require(['/shared-marketplace/js/quote-form.js']);
});
});
问题
如果可以确保变量/属性等在作用域链中定义之前不会被使用,则可以使用以下hack:。(我用requirejs在谷歌上搜索了比赛条件。)@ourmandave我想你错过了我说的我在使用shim@AleksandrLitvak你到底在哪里需要主干线和下划线。。?垫片是什么样子的。。?为什么不使用模块而不是嵌套的requires?@PerryTew这正是我试图解决的问题,但我想我找到了问题所在。我相信我在调用依赖于下划线和主干的模块时设置了require.config,因为竞争条件,配置要么用s3位置更新,要么不是这样,有时我调用本地路径而不是s3引用。我做了一些更新,现在看起来一切正常。如果您可以确保变量/属性等在作用域链中定义之前不会被使用,您可以使用以下hack:。(我用requirejs在谷歌上搜索了比赛条件。)@ourmandave我想你错过了我说的我在使用shim@AleksandrLitvak你到底在哪里需要主干线和下划线。。?垫片是什么样子的。。?为什么不使用模块而不是嵌套的requires?@PerryTew这正是我试图解决的问题,但我想我找到了问题所在。我相信我在调用依赖于下划线和主干的模块时设置了require.config,因为竞争条件,配置要么用s3位置更新,要么不是这样,有时我调用本地路径而不是s3引用。我做了一些更新,现在看起来一切正常。