2

在动态更新内容 DIV 之前,我已经实现了一些用于启动 AJAX 加载器的糟糕解决方案,但似乎没有一个是“通用的”,而且我发现每次这样做时我都在重新处理它。如果我有一个 DIV,其内容会根据用户在页面上单击的内容而更新,并且我想在此内容 DIV 上显示加载器,那么最好的方法是什么?我见过一些开发人员总是在页面上使用加载器,他们只是将它显示为块或不显示,我还看到其他人将它附加到 DIV。当您还有多个可以更新的区域时怎么办?我在想一些可重复的东西,我可以用函数调用,也许传递一些参数。

4

2 回答 2

2

一些 JavaScript 库允许监听打开和关闭请求。查看 Prototype 的 request Responder http://www.prototypejs.org/api/ajax/responders

你会做这样的事情:

Ajax.Responders.register({
  onCreate: function() {
    $('loader').show();
    Ajax.activeRequestCount++;
  },
  onComplete: function() {
    Ajax.activeRequestCount--;
    if (Ajax.activeRequestCount < 1) $('loader').hide();
  }
});

至于加载的可视化表示,您可能希望识别页面的不同部分,这些部分可能需要单独的加载图形并子类化 Request 对象,每次都指示请求的类型。

例如
,它是一个正在保存的字段吗?new FieldUpdateRequest(field)
是正在加载的页面吗?new Request();
容器是否正在更新?new PartialRequest(div);

然后捕获每个子类类型并显示或隐藏不同的加载器图形。

不幸的是,没有快速的解决方案,哈尔。您可以构建一个通用脚本来将加载器图形附加到容器中,这样可以节省一些重复。如果你这样做了,介意把它贴在这里:)?

于 2008-10-11T16:17:00.353 回答
0

您可以在不同的库中使用JQuery 进度条或类似的东西。

于 2008-10-11T04:31:13.163 回答