Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2011, 12:36
Аспирант
Отправить личное сообщение для Reflexion Посмотреть профиль Найти все сообщения от Reflexion
 
Регистрация: 25.10.2009
Сообщений: 51

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


После этого надо выполнить функцию из файла, не срабатывает, но если перед вызовом функции поставить alert(), выигрыется время пока я окошко закрою и фйл подгрузится, как сделать так чтобы JS переходил в функции только после загрузки файла? Просьба не предлогать решение вызов функции в подгружаемом файле
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2011, 13:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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 (permalink)  
Старый 13.09.2011, 13:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

если нужно из удаленки, то удалите строки 3,4,5,16,17,18,19 но в ИЕ будет работать не корректно, ибо даже если не существующий файл если подставить, то ИЕ все равно выдаст loaded
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2011, 13:35
Аспирант
Отправить личное сообщение для Reflexion Посмотреть профиль Найти все сообщения от Reflexion
 
Регистрация: 25.10.2009
Сообщений: 51

нет из удаленки не нужно, спасибо большое
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2011, 23:57
Аспирант
Отправить личное сообщение для Reflexion Посмотреть профиль Найти все сообщения от Reflexion
 
Регистрация: 25.10.2009
Сообщений: 51

Возник вопрос когда я делаю
req.open( "GET", src, true );
браузер будет смотреть на кеш? Тоесть проверит ли по заголовкам закеширован ли этот файл или 100% отправит запрос?
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2011, 00:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Проблема с кешированием в Microsoft Internet Explorer
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2011, 03:25
Аспирант
Отправить личное сообщение для Reflexion Посмотреть профиль Найти все сообщения от Reflexion
 
Регистрация: 25.10.2009
Сообщений: 51

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно достать файл из <input type="file"/> преобразовать файл в base 64 maxcab Events/DOM/Window 2 28.06.2011 22:52
не прикрепляется файл .js 4aineg Элементы интерфейса 10 22.03.2010 20:29
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Большой JS файл. Кэш IE6. deadpsh Общие вопросы Javascript 1 26.11.2008 23:38
JavaScript как файл закодировать base64? Трактор AJAX и COMET 3 10.06.2008 13:22