используйте следующий javascript для добавления файла javascript в async режиме после загрузки страницы.
(function() {
var d=document,
h=d.getElementsByTagName('head')[0],
s=d.createElement('script');
s.type='text/javascript';
s.async=true;
s.src='/js/myfile.js';
h.appendChild(s);
}());
Если у вас есть большое количество файлов для загрузки этого способа, вы можете преобразовать их в вызов функции.
function asyncLoader(scriptName)
{
var d=document,
h=d.getElementsByTagName('head')[0],
s=d.createElement('script');
s.type='text/javascript';
s.async=true;
s.src = scriptName;
h.appendChild(s);
}
Этот метод не гарантирует/не уведомляет о загрузке js-файла. для этого вы можете поместить какой-либо вызов в загружаемый файл.
Если вы загружаете какой-либо html из ajax и добавляете его в свой текущий html (как innerHtml), вы можете поместить тег <script>
внутри этого html и он будет вести себя так же, как и код выше.
см. Это question и его ответы для более подробной информации.
EDIT:
Ниже приведен способ JQuery с использованием $.getScript
$.getScript("path/my_script.js", function(){
console.log("Load was performed.");
}); //JQuery can also be used instead of $
делает то же самое, используя $.ajax
$.ajax({
url: "path/my_script.js",
dataType: "script",
success: function(){
console.log("Load was performed.");
}
});
Можете ли вы показать нам, что вы получили до сих пор – Charlie74
Может быть eval - это то, что вы запираете за плохое, что считается опасной и плохой практикой. http://www.w3schools.com/jsref/jsref_eval.asp – pethel
Возможный дубликат [асинхронного загрузки/выполнения javascript] (http://stackoverflow.com/questions/4631845/asynchronous-javascript-loading-executing) – Kaarel