提问人: 提问时间:10/11/2008 更新时间:3/1/2011 访问量:2052
使用 AJAX 加载程序的最佳方法?
Best approach for using AJAX loaders?
问:
在动态更新内容 DIV 之前,我已经实现了一些糟糕的解决方案来启动 AJAX 加载器,但似乎没有一个是“通用的”,我发现每次我这样做时我都在重新设计它。如果我有一个 DIV,其内容会根据用户在页面上单击的内容进行更新,并且我想在此内容 DIV 上显示加载程序,那么最好的方法是什么?我见过一些开发人员总是在页面上有加载器,他们只是将其显示为块或无,我看到其他人将其附加到 DIV 中。当您还有多个可以更新的区域时呢?我在想一些可重复的东西,我可以用函数调用,也许传递一些参数。
答:
0赞
swilliams
10/11/2008
#1
您可以在不同的库中使用 JQuery 进度条或类似的东西。
2赞
Dimitry
10/12/2008
#2
一些 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 对象进行子类化,每次都指示请求的类型。
例如,
它是否正在保存字段?
是正在加载的页面吗?
容器是否正在更新?new FieldUpdateRequest(field)
new Request();
new PartialRequest(div);
然后捕获每个子类类型,并显示或隐藏不同的加载器图形。
不幸的是,没有快速的解决方案,哈尔。您可以构建一个通用脚本,用于将加载器图形附加到容器中,这应该可以节省一些重复。如果你这样做,介意在这里发布它:)?
评论
0赞
10/12/2008
这是一个很好的答案。感谢您提供所有详细信息。
评论