题
我在动态更新内容DIV之前实现了一些糟糕的解决方案来启动AJAX加载器,但似乎没有<!>“通用<!>”,我发现每次我都这样做正在改造它。如果我的DIV内容根据用户点击页面的内容而更新,并且我想在此内容DIV上显示加载器,那么最佳方法是什么?我已经看到一些开发人员总是在页面上加载加载器,他们只是显示阻止或没有,我看到其他人将它附加到DIV。当你还有多个可以更新的区域时呢?我正在想一些可重复的东西,我可以用函数调用,也许可以传递一些参数。
解决方案
某些JavaScript库允许侦听打开和关闭请求。查看Prototype的请求响应者 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对象子类化,每次都指示请求的类型。
E.g。结果
这是一个被保存的领域吗? new FieldUpdateRequest(field)
结果
它正在加载页面吗? new Request();
结果
容器是否正在更新? new PartialRequest(div);
然后捕获每个子类类型并显示或隐藏不同的加载器图形。
遗憾的是没有快速解决方案。您可以构建一个通用脚本,用于将加载器图形附加到容器,这可以为您节省一些重复。如果你这样做,请记住在这里张贴:)?
其他提示
您可以使用 JQuery进度条或在不同的图书馆中有类似的东西。
不隶属于 StackOverflow