從你的解釋看來你的頁面設置如下:
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('jquery');
$(document).ready(function(){
... do stuff ...
});
</script>
<script src="/my/external.js" type="text/javascript"></script>
但是,這個將不會像您期望的那樣工作,因爲在完全加載DOM之前,document.ready
事件不會觸發。但是,JavaScript文件在加載時執行。因此,實際的執行是這樣的:
- 加載谷歌JSAPI
- 負荷的jQuery
- 負載External.js
- 調用文檔準備
取決於你的代碼看起來其餘比如,您可能希望將所有初始化代碼放在單獨的文件中,或將您的search
加載回主文檔中。
關於不顯眼CODE:
大衛,不顯眼的JavaScript與它是如何影響的頁面,而不是與它是否是頁內或外部的事情。
它更多的不是讓您的網站如此依賴於JavaScript,它不與它禁用
舉例來說,這是突兀的功能:
<a href="#" onclick="doSomething(); return false;">Click Me</a>
因爲它只會工作,支持JavaScript 。此外,該代碼是內聯的,因爲它不會將結構(HTML)的功能分開。
然而,採取類似的一段代碼:
<a href="/do/something" id="do-something">Click Me</a>
,並使用這個JavaScript/jQuery的片段:
$(document).ready(function(){
$("#do-something").click(function(e){
doSomethingNicer();
e.preventDefault(); // Keep the browser from following the href
});
});
是變得不顯眼,因爲頁面仍然有效(負載/做的/事情默認),但是當啓用JavaScript時執行更好的方式(執行javascript而不是加載該url)。這也被稱爲漸進式增強。