網頁上長得令人髮指的id和class是用什麼實現的,又是基於怎樣的原因?
01-14
前端新手,看一些網站頁面的源碼時,總發現id或者class後跟著很長而且沒什麼意義的字元串,這是用什麼工具實現的?原因?
舉例:fb和quora。btw:我知道id 和class是啥。麻煩不懂的不要亂噴。
如果你指的是類似於Google旗下的各種網站,他的id和class都是經過工具做了壓縮處理的,開發的時候不可能用這種id和class的,他有一套叫做Closure Tools的工具處理這些壓縮或是加密過程。
鏈接如下:Closure Tools另外比較成熟的大的前端工程會用類似grunt或者gulp這些工具做拼接,打包,加版本好,壓縮,加密,發布,測試等等各種工作。樓上兩位大概不知道樓主問的是啥吧,就說樓主傻。。題主說的可能是一串類似與md5一樣的16進位字元串吧,http://asp.net網站中多見到的
quora 不知道 , FB大概知道一些,好像是在《編程珠璣》里看到的:
FB 里不僅僅是 自己的 app,還有很多第三方的app,如果直接使用一些通用概念的id或者class,可能會導致安全問題,第三方應用使用 通用 id或者class獲取 或者 修改 facebook的 官方部分頁面。 比如,找到 FB 的鏈接 ,改成自己的; 獲取當前登陸用戶名等。因此,最終渲染到客戶的瀏覽器的 js和css都是經過編譯的,使用的id是根據一定規則算出來的。
包括編譯過的js的調用。比如 開發一個第三方 app 裡面聲明一個 &
渲染的 就成了 &js里的調用 也由 document.getElementById("my-app-canvas") 變成了 document.getElementById("23fasdf-asdfsadf-asdfs-my-app-canvas")當然具體實現里,可能會 提供一些專用的js函數給第三方 APP開發者,簡化處理。
另外還有一個例子就是 淘寶,在店家的頁面里,其實也是這樣做了處理的。
@張克炎 的答案里 對於單一 開發方比較適用,對 上面說的需要內嵌 第三方 開發的頁面內容的就不太合適了。
另外,Quora里也有內嵌第三方應用么?有多少人明白了題主想表達的是啥,反正我是么有懂的
推薦閱讀:
※怎麼看待一個阿里工作四年出來的,但卻連children()這樣的方法都不知道是什麼意思的前端?
※為什麼我將知乎文章保存在本地後不能打開?
※英語是否會成為開發工程師的發展瓶頸?
※沒有為 position: absolute 元素賦予 left、top 等值,與賦予 left:0; top:0; 的效果為何不一樣?
※Win10下如何在右鍵新建菜單中添加.html文件?