Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript facebook为什么要添加id=";pageTitle";在他们的每一页上输入页面标题?_Javascript_Html_Title - Fatal编程技术网

Javascript facebook为什么要添加id=";pageTitle";在他们的每一页上输入页面标题?

Javascript facebook为什么要添加id=";pageTitle";在他们的每一页上输入页面标题?,javascript,html,title,Javascript,Html,Title,我一直都知道,我们需要id属性来添加到元素中,以便对其进行一些唯一的访问。 Title在html文档中只能是一个元素,因此它是一个独立的元素 它是否与javascript和框架相关?或者因为我们还有一些属性title,对于某些javascript函数,通过ID更容易找到它 谢谢 原因有两方面: 通过标记名(document.getElementsByTagName)访问任何内容总是比通过id(document.getElementById)访问任何内容慢。这是因为getElementByTagN

我一直都知道,我们需要id属性来添加到元素中,以便对其进行一些唯一的访问。 Title在html文档中只能是一个元素,因此它是一个独立的元素

它是否与javascript和框架相关?或者因为我们还有一些属性title,对于某些javascript函数,通过ID更容易找到它


谢谢

原因有两方面:

  • 通过标记名(document.getElementsByTagName)访问任何内容总是比通过id(document.getElementById)访问任何内容慢。这是因为getElementByTagName始终返回活动节点列表(或HTMLCollection)。这意味着它不仅必须搜索整个文档结构以查找所有标题(并返回标题集合),还将保持列表处于活动状态并在插入时进行更新。然而,大多数浏览器都有一种非常快速的ID索引方法,它只返回元素引用(即,不必保持任何更新)

  • 如果页面上有框架,则document.getElementsByTagName(“标题”)将返回页面上所有标题的列表(即包括任何iframe标题),这显然不是他们想要的。然后,他们必须在节点列表中搜索,以找到他们正在寻找的标题。我在JSFIDLE上做了一个简单的示例:

  • 因此,使用document.getElementById可以让他们更快地访问他们想要的主标题,同时也提高了性能。没有竞争


    是否可以用于优化目的?也许在他们的测试中,他们发现
    $('pageTitle')
    $('title')
    快。。可能是一个原因。。起初,我认为一些注入框架(它们大量使用)可能有自己的页面标题。。为了区别他们,他们还补充说,他们足够冷静。非常感谢。
    var titles = document.getElementsByTagName('title');
    console.log(titles);