我在3个表(DB)上有一个2000次读操作循环。每个人都需要0.5秒才能完成(或更少) 我要显示文字“Pass 1,Pass 2,Pass 3” 所以我试图使用settimeout让导航器刷新信息。
我有:(pesudocode)
main()
{ load_data();
analize_data();
}
load_data () {
settimeout(read1 , 300);
settimeout(read2 , 300);
settimeout(read3 , 300);
}
我的问题和无知: - 每个setttimeoput都等到上一个代码“timed”结束了吗?我能相信我会在settimeouts之间有一个开端流量控制吗? (或不 ?) - 我是否要为'analize_data'定义一个settimeout。如果不是我进入该功能,我有一个错误,因为我没有数据读取...我有未定义数据的错误。 - 我是否要为settimeout流程定义全局策略? (也就是说,settimetouts对我的流程至关重要吗?)如果我有10个函数调用,我是否要定义10个settimeouts?
我很乐意找到与“do_pending_events”,“dojavascript_events”或“do_DOM_events”非常相似的内容。
我知道这是一个非常明显的问题,但我仍然没有任何明确和简单的解决方案, 我的数据库访问模式是本地的(所以我不需要任何类似的AJAX)
任何帮助或链接都将不胜感激。
答案 0 :(得分:0)
你的超时几乎会在同一时间点燃 - 即。第二个不会等到第一个完成。 你用load_data()函数做的是你设置三个超时,所有三个超时计划在300毫秒,然后返回。 然后在大约300ms内,将调用read1,read2和read3--每个都有自己的范围。
您可以使用flow.js(https://github.com/willconant/flow-js)
来完成此操作或者你自己。
您可以修改此逻辑以包含任意数量的步骤。