0

我正在为我们的 UI 使用 dojo,并希望按顺序加载页面内容的某些部分。例如,对于某只股票,我想加载股票的一般信息,例如股票代码、公司名称、关键统计数据等,以及最近 30 天开盘/收盘价的网格。不同的内容将分别从服务器获取。现在,我想首先加载网格,以便用户可以查看一些内容,然后,比如说,开始加载大型数据集的关键统计数据需要更长的时间来加载。我该怎么做呢。我试过: dojo.addOnLoad(function() {

开始网格();//模拟网格启动功能,工作正常 getKeyStats(); //mock key stat getter 函数也可以正常工作 });

但是由于某种原因,dojo 正在加载 getKeyStats(),然后在此处加载 startGrid(),并且此处的顺序似乎无关紧要。那么如何随意控制加载顺序呢?提前致谢!

大卫

4

2 回答 2

1

顺序无关紧要,因为它们是异步请求;它们出现的顺序与从服务器接收到的响应的顺序相同,这不一定与它们被调用的顺序相同。

要以正确的顺序加载它们,请照常提出请求。为成功响应添加回调,将响应数据以任意顺序放入共享存储桶中。一旦你有适当数量的响应(在回调结束时检查它),开始以你喜欢的任何顺序将数据插入页面。

于 2009-11-20T01:38:42.350 回答
0

您可能想查看 dojo.publish并使用 pub sub 模式来松散耦合这些事件,以便您可以订购它们。Pub sub 将允许您发出请求并监听所有要触发的主题。有了这个,您可以异步调用请求并在相应的位置加载小部件,同时将它们隐藏起来,并使用 pub sub 根据一系列主题发布使它们可见。

于 2009-11-21T01:19:37.373 回答