簡體   English   中英

為什么facebook會在每個頁面的頁面標題中添加id =“pageTitle”?

[英]Why does facebook add id=“pageTitle” into page title on every their page?

我一直都知道我們需要將id屬性添加到元素中才能獲得一些獨特的訪問權限。 標題只是html文檔中的一個元素,因此它是一個獨特元素的小修道院。

它是與javascript和Frames相關的東西嗎? 或者因為我們還有屬性標題,並且再次為某些javascript函數更容易通過ID找到它?

謝謝。

原因有兩方面:

  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); 

因此,使用document.getElementById可以讓他們更快地訪問他們所追求的主標題,同時提高性能。 沒有比賽。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM