Entries Tagged ‘DOM’:

innerHTML and Script Tags

先看源码:innerhtml-and-script-tags.html

注释里已经写得很清楚,不赘述。
特别有趣的是 img onload 方案,很 nice 的 hack, 在写原生小代码时可以派上用场。

KISSY 的解决方案:dom-create.js 里的 setHTML 方法。
应用范例:

KISSY.DOM.html('#container',
               'some html with script tags<script>alert("Hello, KISSY!");</script>',
               true);

文档:dom-create.html

Tags: , ,

JavaScript 框架的 DOM 操作性能

克军提醒,在博客上也搭建了个 TaskSpeed:

http://lifesinger.org/labs/taskspeed/

将感兴趣的框架都更新到最新版本。修改了部分 tests.js, 以保证主流浏览器下所有用例都能得到正确结果。

特别修改了 YUI 2.8 的测试文件:yui-tests.js. 原测试文件大量使用YAHOO.util.Selector这个并不推荐使用的类,不符合 YUI 2 的实际使用情况(一般仅使用 yahoo-dom-event, get, anim 等 utilities)。

从测试结果可以看出:

前三甲是 Dojo 1.4, jQuery 1.4, YUI 2.8
MooTools 在 Safari 下表现优异,其它浏览器下有些惨淡。
Prototype 老矣,尚能饭否?
YUI 3 中规中矩,不出色,但也不糟糕。

Tags: , , , , ,

YUI3 DOM Manipulation Performance Test

测试场景:给 table 的 150 个 tr 添加style="color: #ccc", 重复 20 次。
测试页面:dom-manipulation.html

点击每个测试按钮前,都重新启动浏览器。手工记录 10 * 4 * 4 次无明显偏差的数据,取平均值,可得到以下统计结果:
dom manipulation spent time comparison chart

其它 DOM 操作结果类似。

结论:当页面较复杂,DOM 操作较多时,YUI3 会明显增加脚本执行时间,存在性能隐患。
阅读全文 »

Tags: , , ,

YUI 3 学习笔记:dom

YUI Dom 模块的层次结构很清楚:
yui-dom.png
展开的详细图:yui-dom-full.png
阅读全文 »

Tags: ,

从谷歌的一个Bug说起,谈谈键盘事件的兼容性

点击小图看大图

右图是谷歌首页,当输入某个词时,会弹出自动补全提示。功能并不复杂,但到要兼容各个浏览器,谷歌为此可能花费了不少功夫。然而完美实在是很难得,仔细测试可以发现一个处理得不妥的Bug:

除了Ctrl+X/C/V,Ctrl+Z/Y也是经常使用的快捷键。在Firefox/Safari/Opera中访问谷歌,一切都很正常。但当我们打开IE浏览谷歌时,Ctrl+Z/Y不起作用了。在当今特别是中国,IE是份量最重的浏览器,谷歌首页有此问题,完全可以归为一个Bug.

这个Bug究竟是怎么引起的呢?为了进一步讨论,我们先来看看各个浏览器下,当输入法开启和未开启时,对键盘等事件的响应情况。

猛击查看 JavaScript键盘事件测试小结

通过上面这篇测试小结,我们可以看出,要实现谷歌的自动补全功能并不是 阅读全文 »

Tags: , ,

Page 1 of 212