检查bug的步骤
1. bug定位
在js脚本中,按照脚本执行的顺序,你可以用console或alert,来确定bug发生的代码区间,然后在区间内进一步来查找bug发生的具体代码段。
2. bug fix
通过排除,就是在插入节点内容的时候导致了bug,我用的是kissy的DOM.html()方法,其功能类似于DOM元素节点innerHTML方法,我起初认为是这个方法导致的IE6\7渲染出错,然后我换成了innerHTML方法,结果还是有误。
这时候我想到了内存泄露,看看是不是在循环拼接字符串的过程中,有循环引用或者其他原因造成内存泄露,然后在一些方法结束的时候,我把一些变量赋值null,来防止内存泄露(虽然不知道是否有效,但是至少我这么尝试过了),结果还是不行。
是不是数据过多,导致一下子渲染的时候崩溃呢?于是我减少了拼接的数据长度,这个起效了。1~3条数据的时候,可以渲染上,那就说明方法是没有错的;但是3条以上的数据,IE6\7还是无法响应。于是我又试着一条一条数据取持续插入,因为一次插入1条数据没有问题的话,我大不了多插入几次吧,但是IE还是有问题。其实,这时候我的思路已经偏离了。
后来找同事来看看,说之前也碰到过这个问题,是IE6\7下,标签没有正确闭合的原因导致的。没错,这就是这个bug的真正原因啦。后来,我把拼接的字符串打印出来,然后再使用格式化工具进行格式化,变很快发现了我拼接字符串的时候出现的这个问题,于是很快fix掉这个bug。我用的在线格式化工具:http://tool.chinaz.com/Tools/JsFormat.aspx
3. 测试
测试时候,我们写上一串html代码,并对一些标签不闭合,看看IE和chrome对比情况。
代码如下,在第二个li标签里,我们对ul标签中的其中一个<span>标签,做不闭合处理
复制代码 代码如下:
<ul>
<li>
<ul>
<li>inner li</li>
<li>inner li</li>
<li>inner li</li>
</ul>
</li>
<li>
<ul>
<li>inner li</li>
<li>inner li</li>
<li>inner li
<span>not closed<span>error happend</span></li>
</ul>
</li>
<li>
<ul>
<li>inner li</li>
<li>inner li</li>
<li>inner li</li>
</ul>
</li>
</ul>
IE 和chrome下都正常显示,如上图。
接下来通过开发工具调试看看。
在IE7~9下面,dom结构错乱,发送错误的地方就在那个没有闭合的<span>标签那里,原来的第三个<li>节点的内容直接插到了<span>节点下面。
我们再来看看chrome下面的情况吧:第三个li正常的渲染到dom树里面,在发生错误的span标签那里,自动补上了一个span的闭合标签
4. 总结
各个浏览器在渲染html的时候表现不一样,尤其是IE浏览器同其他的浏览器。chrome和FF的容错性能很好,即使页面中存在html标签没有正常闭合,它也会智能的进行识别,并使其在浏览器中看上去无恙,且最终的DOM结构也没有问题,然而不好的一面就是你不知道你的代码有错,还以为一切正常。而IE8\9现在也可以这样处理,看上去页面内容没有问题,但是呢,通过开发工具,你可以看到错误的html代码没有正常的DOM结构。但是IE6\7就不会给你这样的机会,要么就直接崩溃了。
chrome可以容许我们犯错,而IE却对我们更加严格,虽然IE让我们很头疼,但是却对我们的代码提出了更高的要求!忽然觉得,有IE也蛮好的。。。
如果有一天,你发现IE下dom结构都无法渲染出来的时候,记得提醒自己,是否代码中有标签没有闭合。
ul,li,互相嵌套
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]