LINUX.ORG.RU

Собрать единую страницу из нескольких html+js

 , , ,


1

1

Есть куча html+js файлов веб-клиента для RESTful-сервиса. Клиент статический (никакой серверной генерации). Как правильно из них собрать единое приложение? Сделал через jquery.load, но там свои проблемы, например повторные загрузки скриптов и стилей. Ладно, поборол это велосипедом:

function loadContent(url) {
	$('#content').empty();
	var container = $('<div></div>');
	container.load(url, function() {
		
		// remove existed script references
		$('script', container).each(function() {
			var script = $(this);
			var src = script.attr('src');
			if (src != null) {
				var existed = $('script[src="' + src + '"]').length > 0;
				if (existed)
					script.remove();
			}
		});
		
		// remove existed css references
		$('link', container).each(function() {
			var script = $(this);
			var href = script.attr('href');
			if (href != null) {
				var existed = $('link[href="' + href + '"]').length > 0;
				if (existed)
					script.remove();
			}
		});
		
		$('#content').html(container);
		$('.dropdown-toggle').dropdown();
	});
}
Теперь другая проблема, запросы по таймеру setInterval(function, 10000); продолжают в фоне работать и накапливаться если повторно загрузить страницу. Тоже в принципе можно решить, но может есть что-то готовое для такой задачи? Беглый обзор что-то не дал таких результатов.

★★★★★

Последнее исправление: orm-i-auga (всего исправлений: 1)
Ответ на: комментарий от Norgat

Хм, возможно это то что надо. Правда получится что все js придётся собрать в один, включая те которые не нужны в текущем контексте. Возможно тогда придется и их код поправить для такой задачи.

orm-i-auga ★★★★★
() автор топика

gulp/grunt
Можешь к тому же склеить/минифицировать и т.д свои js/css.

ritsufag ★★★★★
()

продолжают в фоне работать и накапливаться

А потому что говнокод.
Надо было руки из жопы вырвать сначала, а потом уже писать код.

Как правильно

Правильно — рефакторить.
Для начала надо прочитать мануал про clearInterval, если эти интервалы вообще нужны.

Goury ★★★★★
()
Ответ на: комментарий от orm-i-auga

Ну логично, что не работает. А что, сейчас фронт енд разработчики работают без nodejs? Сейчас же куда не чихни - везде нода. Мы даже less/sass компилируем нодой, и сборка проекта/деплой идёт или фабриком (нужен питон) или гульпом (нужна нода). А как иначе? 2016 год на дворе.

menangen ★★★★★
()
Ответ на: комментарий от menangen

static html

впихнем ноду патамушта все так делают

genius.jpg

anonymous
()
Ответ на: комментарий от menangen

2016 год на дворе.

ага, диссонас у меня от этого. JS/CSS - надо собирать/компилировать. Бэкенд - даже сервер сам перезапускает при изменениях.

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от Dred

JS/CSS - надо собирать/компилировать

Современные реалии. Ибо браузер никакой модульности не предоставляет.

anatoly
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.