【发布时间】:2008-10-10 14:01:21
【问题描述】:
我刚刚开始摆脱 ASP.NET UpdatePanels。我正在使用 jQuery 和 jTemplates 将 Web 服务的结果绑定到网格,并且一切正常。
事情是这样的:我试图在刷新表格时显示一个微调器 GIF(在 ASP.NET 中的更新进度)我已经完成了所有工作,除了微调器被冻结。为了查看发生了什么,我尝试将微调器从更新进度 div 中移出,并移到我可以一直看到的页面上。它不停地旋转直到刷新开始,并保持冻结状态直到刷新完成,然后再次开始旋转。 “请稍候”微调器并不是您真正想要的!
这是在 IE7 中 - 还没有机会在其他浏览器中进行测试。有什么想法吗? ajax 调用或客户端数据绑定是否占用大量资源,以至于浏览器无法处理其动画 GIF?
更新
这是刷新网格的代码。不确定这是同步的还是异步的。
updateConcessions = function(e) {
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: "{'Countries':'ga'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
applyTemplate(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});
}
applyTemplate = function(msg) {
$('div#TemplateTarget').setTemplate($('div#TemplateSource').html());
$('div#TemplateTarget').processTemplate(msg);
}
更新 2
我刚刚检查了jQuery documentation,$.ajax() 方法默认是异步的。只是为了好玩,我添加了这个
$.ajax({
async: true,
...
它没有任何区别。
【问题讨论】:
-
显示微调器的呼叫何时发生?
-
您是否在 IE 的设置中禁用了动画?
-
这可能会帮助像我一样一直在搜索的人:stackoverflow.com/questions/7440897/…
-
更好的解决方案fgnass.github.io/spin.js
标签: javascript jquery