Показать сообщение отдельно
  #1 (permalink)  
Старый 06.11.2012, 22:45
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Многоскриптие или индиплагин "Всунька 1.0"
Индивидуальный плагин "Всунька один в ноль" предназначен для подключения ваших скриптов на ваши страницы

А если серьёзно

Кто как организует подключение скриптов на страницы в случае их большого количества (и тех и других)?

Прописывать на каждую страницу все подключения морочно (и не разумно, если есть более разумное решение ).
Решением видится подключение на страницу одного скрипта, который подключит все остальные.

моё очень хиленькое решение

страница
<head>
<script src="loadScripts.js"></script>
</head>
</body>
<script>
var int = setInterval(function () {
	if (scriptsReady[0] == scriptsReady.length) {
		clearInterval(int);
		jQuery(function ($) {
			alert($('body').html());
		});
	}
}, 500);
</script>


loadScripts.js
var scriptsReady = '';
(function () {
	var scripts = [
		'jquery-latest.min.js',
		'myscript.js',
		//и т.д;
	];
	var len = scripts.length;
	scriptsReady = len;
	var head = document.getElementsByTagName('head')[0];
	for (var i = 0; i < len; i++) {
		var script = document.createElement('script');
		script.src = scripts[i];
		head.appendChild(script);
		script.onload = function () {
			scriptsReady += '1'; 
		}
	}
	
})();

Здесь пришлось бахнуть одну глобальную переменную и весь код оборачивать в setInterval (создавая вторую глобальную переменную, конечно, можно ещё раз обернуть, но в идеале хотелось бы, чтобы код не нужно было совсем дополнительно оборачивать), который проверяет загрузились ли подключаемые скрипты.
Ещё вариант вместо setInterval помещать весь код в window.onload (хотя это работает, меня почему-то терзают сомнения, что эти динамические подключения всегда учитываются, прежде чем window.onload начнёт работу), ну и ограничения самой window.onload (придётся дождаться загрузки всех картинок).
Как это реализовать более разумно?

Если решение найдётся, следует вопрос: стоит ли подключать таким образом скрипты ко всем страницам, даже если, часть из них не будет использоваться (по идее после первого просмотра, все они в кеше (на решение, очевидно, должен повлиять их суммарный объём))?

Если нет (что скорее всего), тогда нужно будет вместо массива ссылок на скрипты делать что-нибудь типа объекта, в котором ключи - псевдонимы адресов скриптов, а значения - сами адреса, и указывать после хеша # в адресе подключающего скрипта эти имена, на основе этой доп.записи и подключать только нужные.

Последний раз редактировалось bes, 06.11.2012 в 23:10.
Ответить с цитированием