刚才想到了个测试方法,当然不会笨到直接写表格嵌套代码来测试!就用javascript来节省劳动力了,写了个简单的递归函数,用这个函数来生成n层嵌套表格代码。嘿嘿,效果非常好,只需要修改调用TestTable(n)里的数字就可以了。
经过测试,100、200没问题,400、500就出问题了,最后一步步逼近准确值,得到临界值314。超过314就出问题了,堆栈溢出错误。
学过编程的都知道堆栈,IE处理html处理标签基本原理我推理应该是查到一个标签头后(比如
),如果查到尾后就处理中间包含的内容,但是如果还没查到尾的时候又发现了新的标签,那IE就把还没处理完的标签给压到堆栈里,嵌套多少标签就压到堆栈里多少标签。
因为不清楚、是不是也压到堆栈里了,也不清楚IE具体是如何操作的,从他报错的信息基本肯定他的堆栈大小314多一点。事实上目前的的网页还没有复杂到嵌套300个以上标签的地步,这大小已经够用了。我用的是IE5.0,其他公司的浏览器或更高版本的浏览器也许堆栈大小会不同。
测试同时也表明了嵌套多少对运行速度没什么多大影响,嵌套314层还是很快就显示出来了。楼主的担心是多余的!
无标题文档