Javascript问题(异步调用)

时间:2012-02-06 02:28:29

标签: javascript jquery

我在获取Feed之前尝试更改文字 但是我得到了这些文字后,文字发生了变化 问题/答案仅适用于谷歌浏览器(因为它是一个扩展名)
抱歉我的英语很差; - )

$("h1").click(function(){

    $(this).text("Loading..."); // this happen after fids();
    fids(); // function to get feeds

});

1 个答案:

答案 0 :(得分:4)

最好将fids更改为异步工作,但如果您不能这样做,则可以在超时时运行fids

$("h1").click(function(){
    $(this).text("Loading...");
    setTimeout(fids, 0);
});
JSFiddle上的

Try it

它无法按照您的方式工作的原因是,在所有常见浏览器中,JavaScript都在UI线程上运行。如果更改文本然后调用阻止函数,浏览器会在更新UI之前等待JavaScript完成运行。在浏览器有时间重绘文本之后,使用setTimeout使其在下一个事件循环上运行。