假設我有兩個文件A.js和B.js.比方說,我在導入他們在我的HTML如下JavaScript在瀏覽器中加載腳本(排序)
<script type="text/javascript" src="A.js"></script>
<script type="text/javascript" src="B.js"></script>
比方說,我定義裏面A.一些變量
1)我可以從訪問變量B中 2 )什麼是加載順序。乙能來嗎?
假設我有兩個文件A.js和B.js.比方說,我在導入他們在我的HTML如下JavaScript在瀏覽器中加載腳本(排序)
<script type="text/javascript" src="A.js"></script>
<script type="text/javascript" src="B.js"></script>
比方說,我定義裏面A.一些變量
1)我可以從訪問變量B中 2 )什麼是加載順序。乙能來嗎?
是的,你可以從B中訪問該變量。但是在A中,除非它完成加載,否則你將無法訪問B的變量。加載將保持序列A然後B.我會更喜歡如果您使用jquery並使用document.reday函數並訪問其中的變量。這將等待,直到你的所有腳本都被加載,然後它將開始執行。超出任何函數的變量都是js中的全局變量,因此您可以從任何想要的位置訪問該變量。
有可以使用這些 屬性來選擇了三個可能的模式。如果異步屬性存在,那麼腳本將是 異步執行,只要它是可用的。如果異步 屬性不存在,但延遲屬性存在,那麼當頁面完成解析時,將執行 腳本。如果 屬性都不存在,則在用戶代理繼續解析頁面之前立即提取並執行腳本 。
所以,只要你不使用defer
或async
屬性,A
將提供給B.js
。
Javascript不像其他編程語言。首先,它們是連續加載的,此外,在B語言結束之前,B中的變量不可訪問。
換句話說,在您面臨的情況下,您不能在B中調用A中的任何內容,直到頁面加載完成或您可以使用jQuery文檔準備就緒。
使用此以下,
<script type="text/javascript">
var test = "";
</script>
<script type="text/javascript" src="A.js"></script>
<script type="text/javascript" src="B.js"></script>
他爲什麼要用這個? –
谷歌搜索和粗略的測試會回答這兩個問題你。您可以通過創建變量並嘗試調用它來回答1,並且您可以通過瀏覽器的網絡控制檯來回答2。 – Utkanos
@Utkanos,當然我測試過了,但我可以相信文件A總是被加載過嗎? – yerassyl
好吧,您可以在js文件之外定義全局範圍變量(在加載之前),然後在文件內與它們交互。 - 它爲我這個基於客戶端的HTML遊戲工作。 –