在浏览器中同步加载“一堆不同的资源”

时间:2015-03-11 23:16:24

标签: javascript multithreading browser xmlhttprequest

我有以下情况:

按钮上的

'单击'我需要使用动态选择的JavaScript例程更新页面的一部分。反过来,在内部,我调用其他动态选择的JavaScript例程。一些例程事先知道他们将进一步调用N个其他例程。所有这些都更新DOM并添加一些CSS(也从单独的文件加载)。

目前这个人员正在同步工作 - 资源逐个加载(同步XHR)并执行(JS eval)。问题是,页面当然没有响应。 “无响应”是可以的,但是在短时间内,我正在寻找通过并行加载已知资源来减少无响应时间的方法 - 我希望获得如下功能:“启动5异步XHR”和“同步等待所有人完成”。不幸的是,XHR不提供这样的API - 只能回调,但这不合适,因为......

  • 通过回调保持实际的渲染上下文非常困难
  • 使用回调进行渲染会导致持续重绘并出现明显的闪烁,通过“关闭DOM”渲染进行修复也需要付出很大的努力
  • 另一项交易将是'状态控制' - 确保用户操作是否不会制止再现过程的状态(我知道'阻止UI',但这可能不那么容易)

那么......有没有办法“同步等待”完成多个“异步XHR”?顺便说一句,我不是专门研究XHRs - IE10 +中可用的任何适用的API都可以。

BTW:由于同样的原因,Web Workers不适合 - 不能通过异步'onmessage'事件同步检查其状态。

0 个答案:

没有答案