Из того, что вы объяснили, кажется, ваша страница что-то вроде этого:
<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>
Однако этот не будет работать так, как вы ожидаете, так как событие document.ready
не срабатывает, пока DOM не будет полностью загружен. Файлы JavaScript, однако, выполняются по мере их загрузки. Таким образом, фактическое исполнение выглядит следующим образом:
- нагрузки Google JSAPI
- Load Jquery
- Load External.js
- Вызов документа Готовые
В зависимости от того, что остальная часть вашего кода выглядит например, вы можете захотеть либо поместить весь свой код инициализации в отдельный файл, либо переместить ваш search
обратно в основной документ.
О ненавязчивым КОД:
Дэвид, ненавязчивый 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
});
});
Is становится ненавязчивым, потому что страница все еще работает (нагрузки/сделать/что-то по по умолчанию), но он работает лучше, когда JavaScript включен (выполняется загрузка javascript вместо загрузки этого URL-адреса). Это также называется прогрессивным улучшением.