除了爲Google提供AJAX內容可抓取之外,還有其他用於shebangs/hashbangs的用法嗎?或者是它?什麼是shebang/hashbang?
回答
在Ajax發明之前,URL中使用的哈希已存在。
它最初是作爲對一個頁面內的子部分的引用。在這種情況下,例如,你可以在頁面的頂部有一個目錄,每個目錄都是同一頁的一部分的哈希鏈接。當你點擊這些鏈接時,頁面向下(或向上)滾動到相關標記。
當瀏覽器接收到一個含有散列的URL時,只有散列之前的地址部分作爲頁面請求發送到服務器。哈希部分由瀏覽器保存以處理自身並將頁面滾動到相關位置。
這是哈希語法最初的目的,所以這是對您的問題的直接答案。但我會進行一點,並解釋我們如何從那裏到現在我們現在...
當Ajax被髮明時,人們開始想要找到方法來在他們的網站上有一個單一的頁面,但仍然有人們可以通過點擊外部鏈接直接獲取相關內容。
開發人員很快意識到現有的哈希語法可以爲他們做到這一點,因爲它可以從JavaScript內讀取URL的哈希值。所有你需要做的就是當它看到一個散列(這很容易)時停止滾動,並且你已經獲得了瀏覽器有效忽略的一些URL,但是可以通過javascript讀取和寫入;非常適合與Ajax一起使用。谷歌在其搜索中包含URL的哈希部分這一事實只是一個幸運的獎金,但是由於技術已經變得更加普遍,這一點已經變得相當重要。
我注意到人們稱這個散列語法爲「shebang」或「hashbang」,但從技術上講這是不正確的;它只是一個相關的散列 - 「hashbang」這個詞的'bang'部分是指感嘆號('bang'是它的印刷行業術語)。某些URL確實可能在散列後添加感嘆號,但只有散列與瀏覽器相關;後面的字符串完全取決於網站的作者;它可能包含一個驚歎號或不包括他們選擇的感嘆號,但無論哪種方式,瀏覽器都不會對它做任何事情。如果你喜歡,可以隨意稱它爲hashbang或shebang,但要明白只有散列纔有意義。
實際術語「shebang」或「hashbang」可以追溯到很多,並且確實涉及到#!
語法,但不在URL的上下文中。
這個詞的本義是當這些符號是在一個Unix腳本文件的開頭使用,告訴什麼編程語言的腳本編寫腳本處理器。
所以這確實是一個答案你的問題,你說過的方式,但可能不是你的意思,因爲它根本與URL無關。
哇,很好的解釋,認真。謝謝! – federicot
- 1. 什麼「?」做?什麼是__FILE__?
- 2. 什麼是<NS0:什麼?
- 3. 什麼是setDetailItem:做什麼?
- 4. 什麼是純SVG和什麼是SMIL?
- 5. 春天 - 什麼是豆,什麼不是?
- 6. 什麼是PPC,這是什麼意思?
- 7. 是什麼代碼是什麼意思?
- 8. 什麼是session_reset()到底是什麼?
- 9. 是什麼!<是什麼意思?
- 10. 是什麼意思:是什麼意思?
- 11. 這是什麼`_time_independent_equals`是什麼意思?
- 12. 什麼是.size是什麼意思
- 13. 什麼是()=> {}是什麼意思?
- 14. 什麼是Ext.apply xtype是什麼意思?
- 15. 什麼是$ http timeout是什麼意思?
- 16. 是什麼??('')。?。?`是什麼意思?
- 17. dir是什麼? dir +「/」:「」是什麼意思?
- 18. 什麼是AjaxAdapter和什麼是query()?
- 19. 什麼是stringWithFormat:@「%@ - 1」是什麼意思?
- 20. Django:什麼是`sys.path`應該是什麼?
- 21. 什麼是MIME?它到底是什麼?
- 22. 什麼是PHPCI - 什麼是構建?
- 23. 什麼是流量?什麼是`initialize`在做什麼?
- 24. 什麼是JSTL?什麼是JSP標籤庫?有什麼區別?
- 25. 究竟是什麼ObjectFactory是什麼,它用於什麼?
- 26. 什麼是string array [] =「」;是什麼意思?爲什麼它有效?
- 27. 什麼是-XX,-X和-d在java中?什麼是-XX:+是什麼意思?什麼-XX: - 意味着什麼?
- 28. 什麼是靜態庫,什麼是動態庫,有什麼區別,什麼是更好的使用,爲什麼?
- 29. 什麼是RKUIManager?
- 30. 什麼是Angular.Js
可能的重複[什麼是hashbang(#!)在Facebook和新的Twitter的URL?](http://stackoverflow.com/questions/3009380/whats-the-hashbang-in-facebook-and-new- twitter-urls-for) –