网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月08日漏签0天
javase吧 关注:61,890贴子:983,774
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 8回复贴,共1页
<<返回javase吧
>0< 加载中...

Forcing a DOM refresh in Internet explorer after javascript

  • 只看楼主
  • 收藏

  • 回复
  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
标题用英文是不是看起来牛点???
哇咔咔


  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
IE often delays changes on the screen until after the Javascript thread completes. They (Microsoft) feel this is an optimization. After all, the sequence
Show mask screen
do some work
Remove mask screen
accomplishes the same (permanent) screen effects as
do some work
Solution
End the thread by yielding control back to IE itself. Do this by calling setTimeout with a 0 ms delay.
Show mask screen
setTimeout to call next function with 0 ms delay
do some work
setTimeout to call next function with 0 ms delay
Remove mask screen


2025-06-08 22:51:51
广告
  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Mozilla (maybe IE as well) will cache/delay executing changes to the DOM which affect display, so that it can calculate all the changes at once instead of repeatedly after each and every statement. To force an update (to force an immediate, synchronous reflow or relayout), your javascript should read a property that's affected by the change, e.g. the location of someSpan and otherSpan.


  • java_zf
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
E文的伤不起啊·


  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
当对dom的操作会影响显示的时候,IE会延迟这些操作(直到这个javascript线程结束)。
比如
function test(){
1、宽度设为100
2、宽度设为50
3、宽度设为70
}
那么,实际上IE执行的只有一个操作【3、宽度设为70】
因为以前的浏览器认为这是一种优化(Firefox貌似现在会分别执行1、2、3)
===========
这样的话,可能得出某些出乎我们意料的结果。
比如上面的test方法,我们本意是希望它宽度依次改变为100,50,70,实际上得出的结果却是一步到位变成70.
================
解决方法1、
1、宽度设为100
setTimeout(..........,0),用setTimeout延迟0毫秒
2、宽度设为50
setTimeout(..........,0),用setTimeout延迟0毫秒
3、宽度设为70
==================
解决方法2、
去读取一个会被你的javascript代码改变的属性。
比如上例的test将宽度改变了,那么,你可以尝试去读取这个宽度



  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
中文来了。
不过中文的是被我嚼过的,没味道,剩下渣了


  • java_zf
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • JinCeon
  • 初一年级
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这该死的问题,去你mlgb


2025-06-08 22:45:51
广告
  • __ultimate__
  • 五年级
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主强悍, 啃 E 文的味道美味不


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回javase吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示