Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139792
  • 博文数量: 57
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-04 22:57
文章分类

全部博文(57)

文章存档

2011年(1)

2010年(1)

2009年(55)

我的朋友

分类: 系统运维

2009-05-17 22:28:58

避免CSS表达式
 
CSS表达式是动态设置CSS属性的强大又危险的方法。在IE5.0以后开始支持。例如,使用CSS表达式可以每个小时轮回设置背景颜色:
    background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
 
如下所示,CSS表达式接受一个JavaScript表达式。此属性就被设置成了JavaScript表达的计算结果。在其他浏览器中表达方法式被忽视的,因此它是在需要建立一个跨浏览器的统一的用户体验时,专门用在Internet Explorer中的。
 
表达式的问题是,它们计算量超出了大多数人的期望。它们不仅在网页渲染,调整大小时需要计算,而且在页面滚动,甚至是用户移动鼠标时都会进行计算。通过在CSS表达式添加计数器,可以让我们跟踪到表达式在什么时候计算,计算多少次。在页面被移动鼠标就能简单地产生超过10,000次计算。 
 
减少CSS表达式计算次数的一种方式是使用一次性的表达式:当表达式第一次计算样式属性后就用一个确定的结果替换表达式。如果在页面生成周期里,样式属性必须动态设置的话,使用事件处理也是一种替换CSS表达式的一种方法。如果必须使用CSS表达式,请记住它可能被计算成千上万次极大地影响页面的性能。

阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~