知道
JavaScript严格是单线程的,不会产生settimeout
新线程。相反,它遵循事件循环模型
辅助线程是HTML5的新功能,但仍不支持
在所有HTML5浏览器中可用
我应该使用哪一个进行后台数据下载?如果您有任何经验或有任何基准数据,请分享。
不知道要问的问题如何,但是为了完整起见,我想提一下,数据应采用XML格式,并且将调用多个服务器端服务来获取数据。是否已有可用的框架同时满足基于手持设备的浏览器和基于桌面的浏览器的数据下载?
最佳答案
目前尚未在所有主流浏览器上都支持工作线程,因此除非您只想支持最新的浏览器,否则我认为将工作线程纳入您的设计并不是一个好主意。
所有的Ajax调用都可以并行进行,但是我想您的问题是如何知道所有ajax调用的响应都已经到来,并且数据已插入/更新到浏览器的数据库中。知道已处理所有AJAX响应的一种方法是链接所有AJAX调用。但这将保证您将AJAX调用序列硬编码到您的代码库中。如果不希望这样做,那么您将需要一个单独的异步流来继续检查是否所有AJAX调用均已响应。您可以通过为每个ajax调用设置一个标志并将使用响应后的标志设置为true来实现。然后,您将继续检查另一个流中所有标志的状态(从settimeout开始)。
我知道任何现有的框架都可以处理这种复杂的活动,因此您必须自己编写相同的代码。希望这会对您有所帮助。