不要使用CSS Expression的原因分析
CSS Expression,这是一种动态设置CSS属性的强大工具,拥有无可否认的威力,但也隐藏着不容忽视的危险性。它的核心特性在于能够利用JavaScript表达式来灵活调整CSS属性。这一特性在仅为IE浏览器编写代码时特别有用,因为从IE5开始,IE浏览器就支持CSS Expression。
以狼蚁网站SEO优化的代码为例,我们可以看到CSS Expression如何被用于改变背景颜色:`background-color: expression((new Date()).getHours()%2 ? "F00" : "00F")`。这段代码每隔一小时就会切换一次背景颜色,显示了CSS Expression的动态性。
CSS Expression的问题在于其计算频率远超我们的想象。不仅仅是页面显示和缩放会触发计算,就连页面滚动、鼠标移动这样的小动作都会引发表达式的重新计算。有时,仅仅在页面中随便移动一下鼠标,就可能引发超过10000次的计算。
为了减少CSS Expression的计算次数,一种方法是使用“一次性”表达式。这种表达式在首次运行时将结果赋值给相应的样式属性,之后就用这个属性替代CSS Expression,避免不必要的计算。
如果样式属性必须在页面周期内频繁改变,那么使用事件句柄可能是一个更好的选择,尽量避免使用CSS Expression。必须使用时,要意识到CSS Expression会进行大量的计算,可能会影响到页面的性能。我们应避免让用户打开页面时感到机器运行缓慢。
在此提醒一句,对于使用CSS Expression的开发者来说,注意其在网页性能方面的潜在影响是至关重要的。在页面加载和渲染的过程中,要尽可能地优化这一特性的使用,以免给用户的浏览体验带来不必要的负担。如使用`cambrian.render('body')`这样的技术时,更要注重其背后的机制与性能考量。
编程语言
- 不要使用CSS Expression的原因分析
- 根据Hibernte的cfg文件生成sql文件
- 提示“处理URL时服务器出错”和“HTTP 500错误“的
- php简单分页类实现方法
- jsp给后台带多个参数的方法
- php实现数组筛选奇数和偶数示例
- php 读取文件夹下所有图片、文件的实例
- 只能是字母或数字或者是字母和数字的组合的正
- 完美的2个php检测字符串是否是utf-8编码函数分享
- JS实现当前页居中分页效果的方法
- 微信小程序 参数传递实例代码
- 值得分享的Bootstrap Table使用教程
- php中的观察者模式简单实例
- BootStrap Validator 版本差异问题导致的submitHandler失
- PHP 二级子目录(后台目录)设置二级域名
- php检测文本的编码