【问题标题】:Google Closure XhrIo PROGRESS EventTypeGoogle Closure XhrIo PROGRESS EventType
【发布时间】:2017-02-08 14:50:32
【问题描述】:

我向 XhrIo 对象注册了一个 EventType.PROGRESS 侦听器和一个 EventType.COMPLETElistener。我调用XhrIo.send 方法发布一些表单数据。 COMPLETE 侦听器按预期触发。但是PROGRESS 监听器似乎永远不会触发(我也尝试过UPLOAD_PROGRESSDOWNLOAD_PROGRESSINCREMENTAL_DATA,但没有运气)。

我搜索了代码示例,但(令人惊讶的是)找不到任何代码示例。

以前有没有人成功使用过google关闭EventType.PROGRESS

【问题讨论】:

  • 如何注册事件监听器?
  • 另外,你用的是什么浏览器?

标签: javascript google-closure-library


【解决方案1】:

这应该可以工作:

goog.events.listen(xhr, goog.net.EventType.PROGRESS,
  (progressEvent) => {
    console.log('Downloaded ' + progressEvent.loaded + '/' + progressEvent.total);
  });

【讨论】:

    【解决方案2】:

    如何创建一个新的 XhrIo 实例并通过 xhr_ 属性访问原始的 xhr 对象?然后可以监听进度事件,并报告进度。在我的本地主机上,我在发送数据时得到奇怪的结果,即加载的只是一些数字,总数为 0。

    const xhr = goog.net.XhrIo.send('/api/upload/test-api', () => {
      const obj = xhr.getResponseJson()
    }, 'POST', base64encoded)
    goog.events.listen(xhr.xhr_, 'progress', ({ event_ }) => {
       console.log('Uploaded ' + event_.loaded + '/' + event_.total)
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 2014-10-15
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2011-08-22
      相关资源
      最近更新 更多