使用AJAX加载程序的最佳方法?

使用AJAX加载程序的最佳方法?,ajax,loader,Ajax,Loader,在动态更新contentdiv之前,我已经实现了一些糟糕的解决方案来启动AJAX加载程序,但是没有一个解决方案是“通用的”,我发现每次我这样做都是在重新编写它。如果我有一个DIV,其内容根据用户在页面上单击的内容进行更新,并且我希望在这个内容DIV上显示加载程序,那么最好的方法是什么?我看到一些开发人员总是在页面上显示加载器,他们只显示它block或none,我还看到其他人将它附加到DIV中。当您还有多个可以更新的区域时会怎么样?我在想一些我可以用函数调用的可重复的东西,可能传递一些参数。您可以

在动态更新contentdiv之前,我已经实现了一些糟糕的解决方案来启动AJAX加载程序,但是没有一个解决方案是“通用的”,我发现每次我这样做都是在重新编写它。如果我有一个DIV,其内容根据用户在页面上单击的内容进行更新,并且我希望在这个内容DIV上显示加载程序,那么最好的方法是什么?我看到一些开发人员总是在页面上显示加载器,他们只显示它block或none,我还看到其他人将它附加到DIV中。当您还有多个可以更新的区域时会怎么样?我在想一些我可以用函数调用的可重复的东西,可能传递一些参数。

您可以在不同的库中使用a或类似的东西。

一些JavaScript库允许侦听打开和关闭请求。查看Prototype的请求响应程序

您可以这样做:

Ajax.Responders.register({
  onCreate: function() {
    $('loader').show();
    Ajax.activeRequestCount++;
  },
  onComplete: function() {
    Ajax.activeRequestCount--;
    if (Ajax.activeRequestCount < 1) $('loader').hide();
  }
});
Ajax.Responders.register({
onCreate:function(){
$('loader').show();
activeRequestCount++;
},
onComplete:function(){
Ajax.activeRequestCount--;
if(Ajax.activeRequestCount<1)$('loader').hide();
}
});
至于加载的可视化表示,您可能希望识别页面的不同部分,这些部分可能需要单独的加载图形,并对请求对象进行子类化,每次都指示请求的类型

例如
这是一个正在保存的字段吗<代码>新字段更新请求(字段)
这是正在加载的页面吗<代码>新请求()
是否正在更新容器<代码>新的部分请求(div)

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


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

这是一个很好的答案。谢谢你提供所有的细节。