requirejs模块加载缓慢,导致javascript框架其他部分出现空指针
我们已经开始在javascript框架中使用requirejs,但是我们注意到一个似乎只在firefox中出现的问题 当请求来自服务器时,它包含我们想要显示的组件(按钮、标签、复选框等)的html和javascript。 该脚本将包含特定于组件的信息。例如,标签中的文本应该是什么颜色 一个简单的例子是requirejs模块加载缓慢,导致javascript框架其他部分出现空指针,javascript,ajax,requirejs,Javascript,Ajax,Requirejs,我们已经开始在javascript框架中使用requirejs,但是我们注意到一个似乎只在firefox中出现的问题 当请求来自服务器时,它包含我们想要显示的组件(按钮、标签、复选框等)的html和javascript。 该脚本将包含特定于组件的信息。例如,标签中的文本应该是什么颜色 一个简单的例子是 <button type="button" id="button123">Test</button> require(['BUTTONDEPENDENCY'], funct
<button type="button" id="button123">Test</button>
require(['BUTTONDEPENDENCY'], function() {
register("button123");
console.log("component info");
...
});
该请求还包含一个JSON数组,其中包含有关这些组件的信息(我将不详细介绍它们)。
JSON数组在浏览器上加载html/javascript后执行
在JSONArray中执行每个对象时,我需要执行一个getComponent()
函数。当它试图执行getComponent('button123')
时,找不到它,因为require函数尚未执行(需要执行register(“button123”);
)。它确实会被执行,但是在找不到它之后。我在Chrome中没有看到这个问题,所以我猜这是时间问题(Chrome加载依赖项的速度更快?)
为什么它在铬合金中工作良好
为什么即使以前已加载到模块,加载所需的时间也更长
我是否应该强制javascript在执行getComponent之前等待,直到执行了register?这可能会导致我们的应用程序出现问题
任何建议都很好。我相信这正是RequireJS的工作方式 例如,在以下代码中,我相信您将在1之前获得第2个警报:
<script>
require(['foo'], function(foo){
alert(1);
});
</script>
<!-- lots of HTML -->
<script>
alert(2);
</script>
require(['foo'],函数(foo){
警报(1);
});
警报(2);
<script>
require(['foo'], function(foo){
alert(1);
});
</script>
<!-- lots of HTML -->
<script>
alert(2);
</script>