【发布时间】:2011-07-07 19:34:57
【问题描述】:
我的“忙碌”图标出现浏览器问题。代码如下所示:
$("#busysymbol").show();
$("#busysymbol").position({my:"right top",at:"right top",of:$("#datepicker"),offset:"-3 3"});
var resp = $.ajax({url: "book_ajax.php?req=daysformonth&month=1",
cache: false,
async: false
}).responseText;
$("#busysymbol").hide();
var daysInMonth = resp.split(",");
...etc...
此代码在 Firefox 中完美运行,但在 Chrome 和 Safari 中没有显示忙碌符号。我相信 Chrome 和 Safari 正在缓存对 DOM 的更改,并且 $("busysymbol").show() 调用不会立即刷新。
有没有办法强制 Chrome/Safari 更新显示。
【问题讨论】:
-
在
$("#busysymbol").hide();之前做alert('Hello')看看会发生什么 -
添加 alert('Hello') 确实会强制 $("#busysymbol") 显示。这很好,因为它证明了程序流程是正确的,但是,如果警报不存在,则不会发生 DOM 更新,忙碌符号保持隐藏。
标签: jquery ajax dom asynchronous refresh