0

我正在使用 Chrome 下载大型 PNG 文件(地图图块 256x256)。Chrome 因太多 XHR2 请求而窒息

如果我只是循环并执行其中的 5K,那么 Chrome 浏览器不会节流并且内存不足(Chromium Folks 有一天会解决这个问题:https ://code.google.com/p/chromium/问题/详细信息?id=244910

在那之前,我需要自己做节流。

我想我正在寻找的是启动一个“线程”,它将执行一批大约 100 个 xhr2 提取和 IndexedDB (IDB) 存储。然后,当它完成“信号”父进程再喂它 100 个,并循环直到完成(这就是我将如何做它 C++、C#、VB.NET 等)。

但这是在 JavaScript 中,我在远离它多年后才重新开始使用它。

我应该寻找什么?JQuery 延迟?承诺?自定义事件?[ trigger()& bind()] 或其他一些进行这种线程协调的方式(监视器、信号量)等。浏览器确实将 XHR2 和 IDB 请求放在不同的线程上,但没有给出典型的 IPC 控制机制。

我正在寻找一些指向先前工作的指针和一些技巧。

4

1 回答 1

0

我首先考虑创建数量有限的网络工作者。但是网络工作者中的 IndexedDB 在 FireFox 和 IE10 中还不能很好地工作。(同步 IDB 或异步 IDB)。我认为异步 IDB 在 Chrome 中有效。

所以我选择使用 Jquery Defer,等待 IDB put 完成,然后用 $.resolve() 发出信号以启动一个新的 fetch/save 线程。

工作正常。

于 2013-06-23T19:22:09.310 回答