Задать вопрос
Arsenowitch
@Arsenowitch
Front-End developer

Есть ли что то вроде include (в PhP) у JavaScript?

Здравствуйте,и так-хочу создавать отдельные части сайта,например: хедер,контент,меню,футер и т д.
И что бы не писать всё это для каждой страницы отдельно хочу реаливать всё как в PhP (incud'ами).И потом удобней менять значения определённого элемента на всех страницах-изменил в одном файле и он подключился ко всем страницам.
Есть ли что то подобное в JavaScript?
  • Вопрос задан
  • 2283 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
@Elizavetta
Matroid: gamedev/js-разработка
Речь о серверном javascript? В любом шаблонизаторе есть инклуды.
Ответ написан
Комментировать
viktorvsk
@viktorvsk

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

И есть ряд решений типа:
labjs.com
headjs.com
requirejs.org
Ответ написан
Arsenowitch
@Arsenowitch Автор вопроса
Front-End developer
Да,видимо о серверном.
Спасибо Елизавета
Ответ написан
Serhioromano
@Serhioromano
Web Developer
Не уверен что о серверном. Так как ссылки на node.js нет а автор сам не уверен.

1. Решение зависит от того что вы имеете в виду. Если вам надо динамически подгружать сам JS то тогда что Виктор Выскребенцев: посоветовал.

2. А если вам надо подгружать шаблоны HTML то тут 2 варианта.

a) Если вы наполняете их данным на сервер, то полсьл можно исаользовать AJAX.
б) Если вы их заполняете данными динамически при помощи яваскрипт то у вас SPA. Для этого лучше всего использовать готовые фреймворки как Ангуляр. И они сами обо всем позаботяться.
Ответ написан
Комментировать
@iliyaisd
Т.е. вы хотите прямо из js файла подключать другие js файлы? Либо ответ Виктор Выскребенцев , либо я делал так: делаем аякс-запрос нужного скрипта с сервера, если запрос на jQuery, его можно просто вставить в какой-нибудь скрытый div, и можно пользоваться. Если же без jQuery (что вряд ли), то нужно сделать его eval() (при это он не схавает функции, объявленные через function some() {}).
Ответ написан
Комментировать
@IllusionTurtle
function include(url,callBack){
var script = document.createElement('script');
script.src=window.location.protocol+'//'+window.location.host+url;
document.getElementsByTagName('head')[0].appendChild(script);
script.onload = function(){window[callBack]};
}
include('/path/to/js/script.js','includeFinished')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы