Вы можете фактически бездействовать во встроенном JavaScript: 1- Измените параметр типа во встроенном сценарии на: text / delayscript
ОТ
<!– Inline Script –>
<script type="text/javascript" language="javaScript">
/* Code */
</script>
На
<!– Inline Script –>
<script type="text/delayscript">
/* Code */
</script>
Придание тегу script пользовательского типа MIME text / delayscript заставляет браузер игнорировать его содержимое (обратите внимание, что полное его исключение будет по умолчанию использовать text / javascript).
2 - Ленивая загрузка всех встроенных скриптов Однажды заголовки.js (или другой фреймворк, который вы можете использовать) подтверждает, что он загружает все ваши внешние JS лениво, затем вы можете получить содержимое всех ваших пользовательских тегов скрипта и вставить их на страницу:
<script>
head.ready(function() {
var
_head = document.getElementsByTagName("head")[0],
_script = document.createElement('script'),
_scripts = document.getElementsByTagName("script"),
_txt = "text/delayscript",
_contents = []
;
for(var i=0,l=_scripts.length;i<l;i++){
var _type = _scripts[i].getAttribute("type");
if(_type && _type.toLowerCase() ==_txt)
_contents.push(_scripts[i].innerHTML)
}
_script.type = 'text/javascript';
_script.innerHTML = _contents.join(" ");
_head.appendChild(_script);
});
Чтобы быть еще более изящным, вы можете фактически сохранить встроенные сценарии в их исходной иерархии в дереве DOM вместо того, чтобы заклинивать все их содержимое в одном сценарии, как я предлагал выше, заменив отмеченный тег встроенного сценарияновым, который имеет тип MIME текст / JavaScript:
head.ready(function() {
var
_scripts = document.getElementsByTagName("script"),
_doc = document,
_txt = "text/delayscript"
;
for(var i=0,l=_scripts.length;i<l;i++){
var _type = _scripts[i].getAttribute("type");
if(_type && _type.toLowerCase() ==_txt)
_scripts[i].parentNode.replaceChild((function(sB){
var _s = _doc.createElement('script');
_s.type = 'text/javascript';
_s.innerHTML = sB.innerHTML;
return _s;
})(_scripts[i]), _scripts[i]);
}
});