Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подгрузился ли файл (https://javascript.ru/forum/misc/21514-podgruzilsya-li-fajjl.html)

Reflexion 13.09.2011 12:36

Подгрузился ли файл
 
При работе сайта динамически подгружаю js
var js = document.createElement('script');
js.setAttribute('src', link);
js.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(js);


После этого надо выполнить функцию из файла, не срабатывает, но если перед вызовом функции поставить alert(), выигрыется время пока я окошко закрою и фйл подгрузится, как сделать так чтобы JS переходил в функции только после загрузки файла? Просьба не предлогать решение вызов функции в подгружаемом файле

devote 13.09.2011 13:29

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");
});

Работает только в пределах своего домена.

devote 13.09.2011 13:32

если нужно из удаленки, то удалите строки 3,4,5,16,17,18,19 но в ИЕ будет работать не корректно, ибо даже если не существующий файл если подставить, то ИЕ все равно выдаст loaded

Reflexion 13.09.2011 13:35

нет из удаленки не нужно, спасибо большое

Reflexion 14.09.2011 23:57

Возник вопрос когда я делаю
req.open( "GET", src, true );
браузер будет смотреть на кеш? Тоесть проверит ли по заголовкам закеширован ли этот файл или 100% отправит запрос?

devote 15.09.2011 00:32

Проблема с кешированием в Microsoft Internet Explorer

Reflexion 15.09.2011 03:25

Internet Explorer кеширует GET-запросы.
В статье написано что кеширует, а другие браузеры кешируют? У меня сервер прописывает что надо кешировать, я к тому что перед тем как послать запрос браузеры проверят кеш?


Часовой пояс GMT +3, время: 19:11.