在崩溃浏览器之前,您可以拥有多少个HTML嵌套标签?

时间:2010-07-27 11:23:02

标签: html cross-browser web-standards stability

我今天早些时候曾想过嵌套HTML标签以及浏览器如何呈现它们:

<html xmlns="http://www.w3.org/1999/xhtml" {or whichever html version} xml:lang="en" lang="en">
<head>
</head>
<body>

n = 1

<div>

将div n次递归到最大值(浏览器失败)

</div>
</body>
</html>

当浏览器无法再处理递归时n会是什么?

我认为每个浏览器都会有所不同,移动应用也会有所不同。是否有Web标准,例如域名最多127个字符?

我从来没有遇到过这个问题,但我很好奇。

3 个答案:

答案 0 :(得分:3)

没有标准要求最大嵌套,因此这将完全针对具体实现。

有可能在崩溃之前,浏览器将变得无法使用(减速等)。

如果您非常好奇,可以对此进行基准测试 - 编写一个生成嵌套标签的应用程序,并查看每个浏览器何时崩溃:)

答案 1 :(得分:0)

你太担心了。或者你计划一个过于复杂的布局。即便如此,你也不太可能每次都达到这样的限制而不是刻意创建HTML。

如果浏览器的HTML解析器是递归的,那么仅在因为堆栈溢出而导致深度嵌套的标记时它可能会崩溃。但是在现代系统/操作系统上,默认情况下,堆栈足够大,可以支持一百或更多级别的递归,具体取决于堆栈分配变量的大小。

如果解析器不是递归的,那么当给出一个非常复杂的(非常大的非常深的嵌套)文档时,我的下一个赌注就是OutOfMemoryError。

答案 2 :(得分:0)

似乎(好像?)是关于这个问题的Firefox的一些问题。

请参阅https://groups.google.com/forum/#!topic/mozilla.dev.platform/SUknMzK1ZAc

特别是,Firefox限制(编辑?)深入到200个元素。