| jQuery中html(val)的效率问题 | |
[ ]2009年2月7日 12:15:25 |
|
| 收藏到: | 字号:增大 正常 减小 |
前两天有人问我:".html(val)是不是innerHTML="Str"的简单封装?"我一时无语,仔细想想,这确实是一个问题,因为这牵扯到一个效率问题。 我们知道向元素内部插入一段HTML标签,采用innerHTML这个通用的方法虽然很简单,但效率很低,这是一个众所周知的问题。这里举一个例子:向<DL id="dl"></DL>内插入<DT class="style1">Test</DT>,document.getElementById("dl").innerHTML="<DT class="style1">Test</DT>",虽然很方便,但效率很低,所以一般采用DOM构造的方法:
这里仅仅是一个很简单的例子,但已经存在效率上的差异,如果是烦琐的DOM构造,两者间的效率差异会更大。所以html(val)是不是简单的innerHTML封装,很重要。 请教了下朋友,问题得到了解决。看一下jQuery库的源码:
这下就很清楚了,html(val)内部直接调用了append(),而不是innerHTML的简单封装,所以没必要特地为了效率而规避使用html(val)。 说实话对于jQuery库,除了开始学的时候看过几次,后来把方法搞熟了就懒得去看了,这里不妨给大家一个启示,一味的取而用之不是件好事,在用别人的东西的时候不妨先看看别人是怎么实现的。 |
|
| 评论[4]┆阅读[618]┆引用┆栏目:Ajax Technology[11]┆Tags:开发[16] jQuery[10] | |
| 文章评论[] | |