gpt4 book ai didi

html - Chrome 因过多的 XHR2 请求而阻塞

转载 作者:行者123 更新时间:2023-11-28 03:32:27 25 4
gpt4 key购买 nike

我有一个使用 XHR2 在紧密循环中获取 PNG(二进制 Blob)的“类似 JSFiddle”的演示。第一个演示抓取 341 张 PNG 图像,然后将它们保存在 IndexedDB 中(使用 PouchDB)。

这个演示工作正常:http://codepen.io/DrYSG/pen/hpqoD

(要操作,先按[Delete DB],Reload Page,等待Status = Ready(你应该看到它计划获取341个tiles),然后按[Download tiles]。)

下一个演示是相同的代码(相同的 JS、CSS、HTML),但它尝试获取 6163 个 PNG 文件(同样来自 Google Drive)。这次你会在控制台日志中看到很多 XHR 0 错误。

http://codepen.io/DrYSG/pen/qCGxi

它使用的算法如下:

  • 测试是否存在 XHR2、IndexedDB 和 Chrome(没有二进制 blob,但有 Base64)。并显示此状态信息
  • 从 GoogleDrive 获取 PNG 图 block 的 JSON list (我有 171 个 PNG 图 block ,每个大小为 256x256)。 list 列出了它们的名称和大小。
  • 将 JSON list 存储在数据库中
  • MVVM 和 UI 控件来自 KendoUI(这次我没有使用他们出色的网格控件,因为我想探索 CSS3 网格样式)。
  • 我正在使用 PouchDB 的夜间构建
  • 所有文件 PNG 文件均来自 Google 云端硬盘(NASA Blue Marble。
  • 我用 Safe FME 2013 Desktop 创建了瓷砖金字塔.

我的猜测是所有这些 XHR2 请求都是异步触发的,被放置在与 JavaScript 线程分开的线程上,然后当有太多未决请求时,Chrome 就会生病。

FireFox 没有这个问题,IE10 也没有。

您可以 fork 代码,并为第 10 行尝试不同的值:(要获取的最大图 block 数)。

我已经向 Chromium Bugs 提交了一个bug ,但是有没有人在限制异步 XHR2 提取以将大量数据下载到 Chrome 浏览器方面有任何经验?

最佳答案

Chromium 人员承认这是他们应该解决的问题:https://code.google.com/p/chromium/issues/detail?id=244910 ,但与此同时,我已经使用 jquery defer/resolve 实现了节流,以保持较低的线程数。

更新:我将删除我的代码笔,因为我不需要再显示此错误。

关于html - Chrome 因过多的 XHR2 请求而阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16819676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com