createElementNS如何工作?

5
我不是很理解createElementNS的工作原理。例如:
svg = "http://www.w3.org/2000/svg";
group = document.createElementNS(svg,"g");

这个代码是否连接到指定的命名空间并获取g元素的定义?

如果是的话,如果放在一个for循环里,会有某种请求发送到指定的url吗?

是否有另一种创建g元素的方法?不需要在线连接的那种。

我觉得不会,因为我没有看到任何请求去那里。但是还是有点模糊。

我问的原因是因为我的脚本明显变得非常缓慢,而我不知道确切的原因。


我认为HTML页面不会从命名空间地址检索任何数据。在其他语言(如C++、Java)中定义命名空间时,它本质上是一个字符串标签。我认为人们使用地址是因为它指的是他们正在使用的命名空间的确切规范。例如,如果您有一个名为“svg”的命名空间,则查看代码的人不会获得任何其他信息。如果您将地址输入到Web浏览器中,则可以获取命名空间功能的每个细节。据我所知,这只是一种组织命名空间的好方法。它还分离了标准的不同版本。 - NuclearPeon
1个回答

11
这会连接到指定的命名空间并获取g元素的定义吗?
不是。您无法“连接”到命名空间。 http://www.w3.org/2000/svg 是命名空间的唯一标识符,但命名空间不是URL。处理DOM的软件需要理解SVG(并将命名空间在内部映射到其对SVG的理解)。 http://www.w3.org/2000/svg 的URL是一个文档,告诉读者在哪里找到有关SVG的更多信息,但这只是作者乐于助人,没有该文档存在的编程意义。

为什么必须是字符串而不是“randomString”呢?不管怎样,谢谢你的回答(我将在9分钟后接受它)。表格很具欺骗性。 - zozo
1
@zozo - 因为了解SVG的软件知道SVG命名空间是http://www.w3.org/2000/svg,并不知道randomString命名空间是什么。SVG规范的作者们本来可以选择randomString来表示命名空间,但他们没有这样做。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接