当前位置: 首页 > 面试题库 >

XmlHttpRequest的进行时间间隔

赖翰
2023-03-14
问题内容

我正在使用XmlHttpRequests将图像上传到服务器,并且想向用户显示这些上传的进度。

不幸的是,对我的onprogress-event处理程序的调用之间的间隔太大。对于500k图像,通常仅一次或两次调用onprogress。

这是我的代码:

/* This function is not called often enough */
function progress(e){
    console.log('Uploading: ' + Math.round((e.loaded / e.total) * 100) + ' %');
}

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', progress, false);
xhr.send(data);

可以更改此行为,还是在浏览器实现中将其硬编码?


问题答案:

W3在其XMLHttpRequest Level
2
文档中提出了以下准则。显然,跨浏览器的一致性级别会有所不同。

上载:

当请求实体主体正在上载并且上载完成标志为false时,将任务排队以在XMLHttpRequestUpload对象上大约
每50毫秒或发送的每个字节中 触发一个名为progress的进度事件 ,以最不频繁的时间为准 。-W3
XMLHttpRequest级别2(以粗体显示)

资料下载:

当据说要进行进度通知时,在下载正在进行的同时,将任务排队,以大约 每50毫秒或每接收到一个字节 触发一个名为progress的进度事件
,以最不频繁的时间为准 。-W3 XMLHttpRequest级别2(以粗体显示)

我不知道可以自定义此功能的API。



 类似资料:
  • 问题内容: 我在这里找到执行跟踪任务的最惯用的方法。 任务 : 将数据从通道写入文件。 问题 : 我有一个频道 我需要从通道读取并将从通道读取的值写入文件。我的问题基本上是鉴于 如果通道已满,请立即写入值 如果通道未满,则每5s写一次。 因此,从本质上讲,至少需要每5s将数据写入文件一次(假设至少每5s将数据填充到通道中一次) 请告诉我用最好的方式,并做到我上面的任务吗? 谢谢! 问题答案: 没有

  • 问题内容: 是否可以获取旧的运行过程的开始时间?如果今天不是开始日期,似乎会报告日期(而不是时间),如果今年不是开始日期,则只会报告日期。旧工艺会永远失去精度吗? 问题答案: 您可以指定格式器并使用,例如以下命令: 上面的命令将输出所有进程,并带有格式化程序以获取PID,命令运行以及启动日期和时间。 示例(从Debian / Jessie命令行) 您可以阅读的联机帮助页或查看Opengroup的其

  • 我有一个包含一系列事件及其时间戳的数据库。 我在这里读到这是可以在SQLite中实现的,我想知道是否也可以在presto中实现。我查看了文档,但找不到一个类似的函数来执行SQLite中的操作。

  • 问题内容: 有人可以告诉我这为什么起作用: 但这失败了: 这是错误: 问题答案: 这行: 是一个简短的变量声明,右侧表达式为:。是包中的类型常量,其类型为;并且是一种 无类型数值常量 ,其在表达时,将可能的话采取适当的类型。由于具有作为其基础类型,因此可以在不损失精度的情况下将常量转换为常量,从而可以执行常量表达式。 另一行: 第一行是一个简短的变量声明,其中的类型将从右边的表达式中推断出来,这是

  • 问题内容: 我正在用Go编写负载平衡的服务器系统。 负载平衡服务器将与多个应用程序服务器通信并处理请求。这些服务器都可以在同一台计算机或网络上运行。 我已经找到了网络,但是现在我需要找到一种最佳的方式来使负载均衡器与本地应用程序服务器进行通信。使用-networking似乎并非最佳选择。 我正在尝试通过和系统调用共享内存,但是没有找到任何有效的示例,并且该软件包也完全没有文档说明。 有人可以为我提

  • 问题内容: 我有一个这样的dataFrame,我想每60分钟进行一次分组,然后从06:30开始分组。 我在用: 我得到这个分组: 但我正在寻找这个结果: 我如何告诉该功能以6小时30分开始以一小时为间隔进行分组? 如果 .groupby(pd.TimeGrouper(freq =‘60Min’)) 无法完成此 操作 ,最好的方法是怎么做? 致敬并非常感谢 问题答案: 使用会同中的参数。 指定将使时