我正在使用Chrome下载大型PNG文件(地图图块256x256)。 Chrome chokes on TOO many XHR2 requests
如果我只是循环播放并执行其中的5K,那么Chrome浏览器就不会限制并且内存不足(Chromium Folks将在某一天解决这个问题:https://code.google.com/p/chromium/issues/detail?id=244910)
直到那时我需要做自己的限制。
我认为我正在寻找的是开始一个“线程”,这将涉及一批约100个xhr2提取和IndexedDB(IDB)存储。然后当它完成“发信号”时,父进程再向它提供100个,然后循环直到完成(这就是我将如何做到C ++,C#,VB.NET等)。
但这是在JavaScript中,我刚刚离开它多年后才重新开始。
我应该寻找什么? JQuery延期?诺言?自定义活动? [trigger()& bind()]或执行此线程协调的其他方式(监视器,信号量)等。浏览器确实将XHR2和IDB请求放在不同的线程上,但不提供典型的IPC控制机制。
我正在寻找以前工作的一些指示和一些提示。
答案 0 :(得分:0)
我首先考虑创建数量有限的网络工作者。但是,在FireFox和IE10中,Web工作者中的IndexedDB工作不佳。 (同步IDB或异步IDB)。我认为异步IDB适用于Chrome。
所以我选择使用Jquery Defer,等待IDB put完成,然后用$ .resolve()发信号以启动一个新的fetch / save线程。
工作正常。