Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   javascript include (https://javascript.ru/forum/project/5100-javascript-include.html)

+ASD+ 15.09.2009 13:18

javascript include
 
только начинаю программировать в JavaScript-е...поэтому не пинайте сильно. Решил организовать подключение "модулей", наподобие как в С++


<html>
	<head>
		<script type="text/javascript" src="JS/js_env.js"></script>
	</head>
	
	
	<body>
	<script>
		JEnv.include("JS/dLite.js");
		JEnv.include("JS/CImage.js");
	</script>
	   
	<img src="img/bubi.gif" id="bubi"/>
		
	<script>
		var otest = dLite.elm('bubi');
		var i1 = new CImage(otest);
		i1.SetObject(otest);
	</script>
	</body>
</html>


js_env.js
если заремлен то ф-ция include не работает Exception: CObject is not defined File: .....JS/CImage.js , как только убранно заремлевание..."модули подгружаются"

var JEnv = function () {

	
	return {
		init : function () {
				window._JEnv = 1;
			},
		include : function(script_filename) {
				var html_doc = document.getElementsByTagName('head').item(0);
				var js = document.createElement('script');
				js.setAttribute('language', 'javascript');
				js.setAttribute('type', 'text/javascript');
				js.setAttribute('src', script_filename);
				html_doc.appendChild(js);
//				alert(js.toString()); - если заремлен то ф-ция include не работает Exception: CObject is not defined File: .....JS/CImage.js 
				return false;
			}
	};
}();
JEnv.init();


CImage.js
JEnv.include("JS/CObject.js");

function CImage (element) 
{
	var _this = element;
}

CImage.prototype = new CObject();


CObject.js
function CObject(element) 
{
	
	
}

CObject.prototype			=	new XYZ();
		
CObject.prototype.capture	=	"object";


CObject.prototype.Init	=	function()
									{
										
									};

CObject.prototype.SetObject	=	function(element)
									{
										_this = element;
									};


Помогите, разобраться

Kolyaj 15.09.2009 13:34

В чем разобраться? В вашем коде?

+ASD+ 15.09.2009 13:37

Цитата:

Сообщение от Kolyaj
В чем разобраться? В вашем коде?

Почему ф-ция include перестает подгружать "модули" если заремлен alert в файле js_env.js.

Kolyaj 15.09.2009 13:48

Потому что подгрузка асинхронная, и когда есть алерт, файлы успевают подгрузиться.

+ASD+ 15.09.2009 13:51

Цитата:

Сообщение от Kolyaj
Потому что подгрузка асинхронная, и когда есть алерт, файлы успевают подгрузиться.

Я догадывался....как решить данную проблему? установкой timeout?

B~Vladi 15.09.2009 14:08

Установкой callback-функции или использованием AJAX.

+ASD+ 15.09.2009 14:25

Цитата:

Сообщение от B~Vladi (Сообщение 30191)
Установкой callback-функции или использованием AJAX.

callback-функцию в конструкторе? или в include?

Kolyaj 15.09.2009 14:34

Это вообще не очень хорошая идея, дозагружать таким образом файлы. На начальном этапе может и разберетесь, но потом проблем не оберетесь. Но если сильно, то читайте http://jsx.ru/

+ASD+ 15.09.2009 14:52

Цитата:

Сообщение от Kolyaj (Сообщение 30194)
Это вообще не очень хорошая идея, дозагружать таким образом файлы. На начальном этапе может и разберетесь, но потом проблем не оберетесь. Но если сильно, то читайте http://jsx.ru/

на самом деле очень тяжело все эт дело переварить(после С++), охото как то систематизировать, упорядочить...вообщем пока тяжело в понимании.

Kolyaj 15.09.2009 14:54

Ну тогда не с того вы начали переваривать.


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