0

今日、入れ子になった HTML タグと、ブラウザーがそれらをレンダリングする方法について考えました。

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

レットn= 1

<div>

最大までdivn回を再帰する (ブラウザが失敗する)

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

nブラウザがこれ以上再帰を処理できない場合はどうなりますか?

これはブラウザごとに異なり、モバイルアプリでも異なると思います。ドメイン名の最大 127 文字など、Web 標準はありますか?

この問題に遭遇したことはありませんが、いつ発生するのか興味があります。

4

3 に答える 3

3

最大のネストを要求する標準はないため、これは完全に実装固有になります。

クラッシュする前に、ブラウザーが使用できなくなる可能性があります (速度低下など)。

非常に興味がある場合は、これをベンチマークできます。ネストされたタグを生成するアプリケーションをコーディングし、各ブラウザーがいつクラッシュするかを確認してください:)

于 2010-07-27T11:26:02.490 に答える
0

あなたは心配しすぎです。または、あまりにも複雑なレイアウトを計画しています。それでも、意図的に作成されていない HTML を使用して、そのような制限に達することはほとんどありません。

ブラウザーの HTML パーサーが再帰的である場合、深くネストされたタグを入力すると、単にスタック オーバーフローが原因でクラッシュする可能性があります。しかし、最新のシステム/OS では、スタックに割り当てられた変数のサイズに応じて、スタックはデフォルトで 100 以上のレベルの再帰をサポートするのに十分な大きさです。

パーサーが再帰的でない場合、私の次の賭けは、非常に複雑な (信じられないほど大きく、信じられないほど深くネストされた) ドキュメントが与えられたときに OutOfMemoryError になるでしょう。

于 2010-07-27T11:32:35.220 に答える