1

我有一个带有私有 goog.net.XhrManager 的组件,它用于发出 ajax 请求以使用服务器数据填充列表和表格。

我还有一个 div,它有一个加载指示器,所有的 CSS 都设置为显示和隐藏它。

现在,我让 XhrManager 执行一系列调用,并使用传递给 XhrManager 的 send 方法的事件 id 来辨别在 COMPLETE 回调中要做什么。但是,由于在分别显示和隐藏加载指示器的 READY 和 [SUCCESS, ERROR] 回调中调用顺序可能是任意的,因此我很难干净地打开和关闭指示器。

我想知道是否还有另一组回调或我应该使用的不同技术。例如,如果 g-mail 不仅加载下一页邮件,而且加载上下文侧边栏信息、广告等,那么当您单击下一个箭头以翻阅邮件时,g-mail 是如何做到这一点的?

4

1 回答 1

1

您可以对每个挂起的请求使用引用计数来设置/取消设置指标。另一种选择是使用 goog.async.DeferredList.awaitDeferred(otherDeferred) 累积所有结果,以便使其同步。我正在使用最后一种方法来完成此操作。希望这能让你朝着正确的方向前进。

问候,

雷内

于 2012-09-22T11:34:29.413 回答