7
A
回答
4
嵌入腳本使用腳本後的散列進行配置。例如,看看所提供的實施例(實):
1. window.setTimeout(function() {
2. var a = /(connect.facebook.net|facebook.com\/assets.php).*?#(.*)/;
3. FB.Array.forEach(document.getElementsByTagName('script'), function (d) {
4. if (d.src) {
5. var b = a.exec(d.src); //RegExp.exec on the SRC attribute
6. if (b) {
7. var c = FB.QS.decode(b[2]); //Gets the information at the hash
8. ...
在腳本中,每個<script>
標籤線3在屬性檢查出現線的散列的5線2 。然後,如果散列存在行6,則hashdata被提取行7,並且該函數繼續。
2
這大概是引用.js
文件讀取原始URL並提取參數內使用(使用例如window.location
,例如解析出#
之後的內容)。
3
我在加載腳本方面沒有做任何事情。我猜測的是,腳本本身會查找自己的腳本標記,然後在散列(bar = 1)之後挑選出該部分,並用它來配置其行爲。爲此,他們可能必須遍歷所有腳本標籤並匹配src
屬性。
0
URL中散列之後的部分被認爲是fragment identifier。如果存在,它指定整個資源或文檔中的部分或位置。與HTTP一起使用時,它通常指定頁面內的部分或位置,並且瀏覽器可以滾動以顯示頁面的該部分。
對於JavaScript文件,程序的作者很可能將它用作將參數傳遞給文件的方法。但是,不應該使用這種方法。網址可能包含query strings,它們的用途相同。
儘管如此,將參數嵌入到JavaScript文件的URL並不是一個好主意,因爲對於每一個不同的參數集,URL都會被再次緩存,這是浪費內存。相反,最好將查詢字符串設置爲包含腳本本身的HTML頁面的URL。這是因爲JavaScript具有內置屬性來訪問網頁的查詢字符串:location.search
。你可以閱讀更多關於它here。
相關問題
- 1. 「散貨」是什麼意思?
- 2. '散列缺點'是什麼意思?
- 3. Bash'type someCmd':什麼意思是'散列'?
- 4. JS $是什麼意思?
- 5. []是什麼意思在JS?
- 6. JS variable.new是什麼意思?
- 7. 是什麼意思:是什麼意思?
- 8. 這個JS代碼是什麼意思?
- 9. JS中的語法是什麼意思?
- 10. 這個JS Expression是什麼意思?
- 11. JS代碼$$是什麼意思?
- 12. 條件是什麼意思?
- 13. 在JS文件中if(!window.Sys)是什麼意思?
- 14. js文件引用結尾的花括號是什麼意思?
- 15. 文件中的「^ @」是什麼意思?
- 16. @是什麼意思?在make文件中?
- 17. C++緩存文件是什麼意思?
- 18. 這是什麼意思@ -moz-文件
- 19. 宏中的雙重散列(##)是什麼意思?
- 20. 什麼意思是「x位散列函數」
- 21. 散列time_t的字節是什麼意思?
- 22. 「散列函數的分佈」是什麼意思?
- 23. 散列函數增量是什麼意思?
- 24. 散列中的聚集(在碰撞中)是什麼意思?
- 25. Ruby on Rails這個散列輸出是什麼意思?
- 26. %{}是什麼意思?
- 27. '#'是什麼意思?
- 28. 「?」是什麼意思?
- 29. #{...}是什麼意思?
- 30. || =是什麼意思?
你從哪裏看到這個?通常,查詢字符串(例如'foo.js?123)被用作「高速緩衝存儲器斷路器」。哈希可能不應該影響緩存。 –
@Ates Goral上下文:Facebook的按鈕嵌入腳本//connect.facebook.net/en_US/all.js#xfbml=1 – jsj
對我來說,它看起來像Facebook發送一些參數。也許在all.js他們得到這個參數並使用它。 – Krasimir