Показать сообщение отдельно
  #8 (permalink)  
Старый 15.07.2015, 23:20
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Фреймы - зло.

На самом деле можно найти готовые скрипты загрузчиков которые сами проверяют по урлу или по алиасу был загружен такой скрипт или нет. То есть вам не нужна выдача скриптов с сервера аяксом-шмаяксом. Вы просто проверяете что если какого-то скрипта нет - то сказать чтоб выдали. Там же будет и событие загрузки, в которое можно передать функцию обеспечивающую дальнейшую работу.

Кстати по js мне тут и давали лукарство:

loader=(function(){

	var cache={
		js:{},
		css:{}
	},
	url=function(name,type){
		return (location.protocol=="https:"?"https:":"http:")
			+'//'+location.hostname+'/ass/'+name+'/'+type+'/'+name+'.'+type;
	};

	return {
		css:function(name){
		
			var href=url(name,'css');

			if(cache.css.hasOwnProperty(href))
				return true;
				
			var el = D.createElement("link");
			el.rel = "stylesheet";
			el.href = href;
			cache.css[href] = 1;
			D.head.appendChild(el);
		},
		js:function(name,callback) {
		
			var src=url(name,'js');
			
			if (cache.js.hasOwnProperty(src))
				callback && (callback());
				
			else {
				var el = D.createElement('script'),	loaded = 0;
				el.src = src,
				D.body.appendChild(el),
				cache.js[src] = 1;
				
				if(!callback)
					return true;
					
				el.onload = el.onreadystatechange = function () {
					if ((el.readyState 
						&& el.readyState !== 'complete' 
						&& el.readyState !== 'loaded') || loaded)
						return false;
					el.onload = el.onreadystatechange = null, loaded = 1, callback();
				};
			}
		}
	};
	
})();
Ответить с цитированием