相关疑难解决方法(0)

在javascript dom操作之后强制在Internet Explorer中进行DOM刷新

情况就是这样.我有一些看起来像这样的JavaScript:

function onSubmit() {
    doSomeStuff();
    someSpan.style.display="block";
    otherSpan.style.display="none";
    return doLongRunningOperation;
}
Run Code Online (Sandbox Code Playgroud)

当我将其作为表单提交操作并从非IE浏览器运行时,它会快速交换两个跨度可见性并运行长时间的javascript操作.如果我在IE中执行此操作,则直到onSubmit()完全返回后才会执行交换.

我可以通过粘贴一个警告框来强制重绘:

function onSubmit() {
    doSomeStuff();
    someSpan.style.display="block";
    otherSpan.style.display="none";
    alert("refresh forced");
    return doLongRunningOperation;
}
Run Code Online (Sandbox Code Playgroud)

此外,明显的jquery重构不会影响IE行为:

function onSubmit() {
    doSomeStuff();
    $("#someSpan").show();
    $("#otherSpan").hide();
    return doLongRunningOperation;
}
Run Code Online (Sandbox Code Playgroud)

IE8和IE6上存在此行为.反正是否强制在这些浏览器中重绘DOM?

javascript internet-explorer dom

28
推荐指数
4
解决办法
5万
查看次数

在Javascript例程中DOM何时重绘?

如果这个问题已经存在,我道歉,但我找不到它.

在下面的代码中,假设在每个点更新DOM对象,将触发页面重排/重绘的点?

(function() {

  //POINT A

  for (var a=0; a<2; a++) {

    //POINT B

    for (var b=0; b<2; b++) {
      //POINT C
    }
    //POINT D

    for (var b=0; b<2; b++) {
      //POINT E
    }
    //POINT F

  }

  //POINT G

})();

//POINT H
Run Code Online (Sandbox Code Playgroud)

本质上,我不确定DOM是否能够在函数,循环等中间进行更新.每次移动元素时它都能更新吗?只有退出循环后?所有活动循环退出后?所有功能完成后?

html javascript css dom

4
推荐指数
1
解决办法
616
查看次数

标签 统计

dom ×2

javascript ×2

css ×1

html ×1

internet-explorer ×1