`
huobengle
  • 浏览: 860612 次
文章分类
社区版块
存档分类
最新评论

Javascript动态改变样式表性能测试。

 
阅读更多

<html>
<style type="text/css">
.csdn_logo{width:50px;height:50px;background:url(http://csdnimg.cn/www/images/csdnindex_piclogo.gif);}
.google_logo{width:50px;height:50px;background:url(http://www.google.cn/intl/zh-CN/images/logo_cn.gif);}
</style>
<body>
<script type="text/javascript">
var table= document.createElement("table");
table.cellPadding = "0px";
table.cellSpacing = "0px";
var tr = table.insertRow(-1);
var cells = [];
for (var i = 0; i < 1000; i++) {
var td = tr.insertCell(-1);
var div = document.createElement("div");
div.className = "logo";
div.innerHTML = i;
td.appendChild(div);
cells.push(div);
}
document.body.appendChild(table);

function buttonTest_Click(sender, title) {
var tick = new Date().getTime();
for (var i = 0; i < cells.length; i++) {
//if (cells[i].className != title + "_logo") // 注意这个注释
cells[i].className = title + "_logo";
}
sender.value = title + " 花掉" + (new Date().getTime() - tick) + "毫秒";
}
</script>
<input type="button" onclick="buttonTest_Click(this, 'csdn')" value="csdn"/>
<input type="button" onclick="buttonTest_Click(this, 'google')" value="google"/>
</body>
</html>

【两个样式表切换】(来回点击两个按钮)
Chrome 3毫秒
Firefox3 22毫秒
IE8 78毫秒

【指定一样的样式】(只点击一个按钮)
Chrome 2毫秒
Firefox3 7毫秒
IE8 78毫秒(没变)

看来在IE下面赋值样式真耗时间,,,就算赋值同样的样式也花费同样的时间。。。

看来在IE环境中加这个判断有点必要:
if (cells[i].className != title + "_logo") // 注意这个注释
cells[i].className = title + "_logo";

分享到:
评论

相关推荐

    精通javascript

    • 3.17.htm 用()改变运算优先级 • 3.18.htm 运算符结合性 第4章(\第4章) • 4.1.htm 条件语句内单行代码的写法 • 4.2.htm 变量赋初值 • 4.3.htm if…else举例 • ...

    精通JavaScript

    • 3.17.htm 用()改变运算优先级 • 3.18.htm 运算符结合性 第4章(\第4章) • 4.1.htm 条件语句内单行代码的写法 • 4.2.htm 变量赋初值 • 4.3.htm if…else举例 • ...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    12.7.htm 使用Ajax动态改变局部元素样式 CSSmenu 使用Ajax+CSS实现动态菜单效果 第13章(/C13/) 13.1.xml 一个简单的xml文件 13.1.xsl 使用XSLT将XML转换为HTML 13.2.xml ...

    ExtJS(ajax框架) 4.2.1

    ExtJs最开始基于YUI技术,由开发人员 JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是 一款不可多得的JavaScript客户端技术的精品。 ...

    精通AngularJS part1

    85使用指令修改按钮样式219 编写一个按钮指令220 86理解AngularJS的组件指令222 编写一个分页指令222 为分页指令编写单元测试代码223 在指令中使用HTML模板224 从父作用域中隔离指令225 使用@插入属性226 ...

    asp.net知识库

    动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和...

    detect-element-resize:跨浏览器、基于事件的元素调整大小检测

    除了能检测 JavaScript 引起的元素大小改变,还能检测由 CSS(:hover, animations) 引起的大小改变 兼容 Chrome Firefox IE11 及一下(在 IE11 10 9 8 7 上做过测试) 注意 该实现会在页面头部引入必要的 CSS 样式,...

    超实用的jQuery代码段

    4.2 使用removeClass()函数动态移除样式类 4.3 使用toggleClass()函数切换页面元素的样式类 4.4 为body增加class类支持 4.5 操作div的显示与隐藏 4.6 如何设定div始终居中显示 4.7 测试浏览器是否支持某些CSS 3...

    jquery插件使用方法大全

    从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。 jQuery 1.2(2007年9月):这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够支持对...

    jQuery基础教程(第四版)

    附录B向读者介绍使用jQUnit库对JavaScript程序进行单元测试。这个库是开发和维护高度完 善的Web应用所必须的工具。 附录C提供了jQuery的简明参考,包括所有方法和选择符表达式。在实际开发中,明确自己

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, ...

    flex3的cookbook书籍完整版dpf(包含目录)

    验证,格式化及正则表逹式(493) 15.1节. 在TextInput及TextArea控件上使用Validator 和Formatter 15.2节. 如何创建一个自定义的Formatter 15.3节. 使用正则表达式创建国际化邮政编码Validator 15.4节. 如何创建一...

    ExtAspNet_v2.3.2_dll

    目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源...

    ASP.NET2.0高级编程(第4版)1/6

     改变样式88 4.3 HTML服务器控件93 4.3.1 HtmlControl基类95 4.3.2 HtmlContainerControl类96 4.3.3 所有的HTML类96 4.3.4 使用HtmlGeneric  Control类97 4.4 通过JavaScript处理页面和  服务器控件98 4.4.1 使用...

    jQuery权威指南-源代码

    虽然jQuery使用简单,但它毕竟是一门新的技术,与传统的JavaScript在性能与语法上存在诸多差异,需要相应的书籍来引导开发者们迅速而有效地掌握它,并能真正付诸实践。综观现在已经出版的中文类jQuery图书,不是...

Global site tag (gtag.js) - Google Analytics