为什么facebook会在每个页面的页面标题中添加id =“pageTitle”?

时间:2013-05-30 08:31:15

标签: javascript html title

我一直都知道我们需要将id属性添加到元素中才能获得一些独特的访问权限。 标题只是html文档中的一个元素,因此它是一个独特的元素。

它与javascript和Frames有关吗?或者因为我们还有属性标题,并且对于某些javascript函数再次更容易通过ID找到它?

感谢。

1 个答案:

答案 0 :(得分:3)

原因有两方面:

  1. 按标签名称(document.getElementsByTagName)访问任何内容总是比通过id(document.getElementById)访问内容要慢。这是因为getElementByTagName始终返回LIVE nodeList(或HTMLCollection)。这意味着它不仅需要搜索整个文档结构来查找所有标题(并返回标题集合),它还会使列表保持实时和更新,以便插入。然而,大多数浏览器都有一种非常快速的索引id的方法,它只会返回元素引用(即不需要保留任何更新)。

  2. 如果页面上有框架,则document.getElementsByTagName('title')将返回页面上所有标题的列表(即包括任何iframe标题),这显然不是他们想要的。然后,他们必须搜索nodeList以找到他们正在寻找的标题。我在jsfiddle上做了一个简单的例子:http://jsfiddle.net/9QtZu/

    var titles = document.getElementsByTagName('title');
    console.log(titles);
    
  3. 因此,使用document.getElementById可以让他们更快地访问他们所追求的主标题,同时提高性能。没有比赛。

    https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById https://developer.mozilla.org/en-US/docs/Web/API/element.getElementsByTagName