Подгрузился ли файл
При работе сайта динамически подгружаю js
var js = document.createElement('script');
js.setAttribute('src', link);
js.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(js);
После этого надо выполнить функцию из файла, не срабатывает, но если перед вызовом функции поставить alert(), выигрыется время пока я окошко закрою и фйл подгрузится, как сделать так чтобы JS переходил в функции только после загрузки файла? Просьба не предлогать решение вызов функции в подгружаемом файле |
function loadScripts( src, callback ) {
var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
if ( this.readyState == 4 && this.status == 200 ) {
var script = document.createElement("script");
script.onload = script.onreadystatechange = function( e ){
if ( ( !this.readyState || this.readyState == "loaded" || this.readyState == "complete" ) ) {
this.onreadystatechange = this.onload = null;
callback();
}
};
script.src = src;
var head = document.getElementsByTagName( "head" )[ 0 ];
head.appendChild( script );
}
}
req.open( "GET", src, true );
req.send( null );
}
loadScripts( link, function(){
alert("loaded");
});
Работает только в пределах своего домена. |
если нужно из удаленки, то удалите строки 3,4,5,16,17,18,19 но в ИЕ будет работать не корректно, ибо даже если не существующий файл если подставить, то ИЕ все равно выдаст loaded
|
нет из удаленки не нужно, спасибо большое
|
Возник вопрос когда я делаю
req.open( "GET", src, true );браузер будет смотреть на кеш? Тоесть проверит ли по заголовкам закеширован ли этот файл или 100% отправит запрос? |
|
Internet Explorer кеширует GET-запросы.
В статье написано что кеширует, а другие браузеры кешируют? У меня сервер прописывает что надо кешировать, я к тому что перед тем как послать запрос браузеры проверят кеш? |
| Часовой пояс GMT +3, время: 15:17. |