2017-02-21 27 views
1

Нам не нужно перезапускать сервер после внесения изменений в HTML или JAVASCRIPT. Но мы должны перезапустить его после внесения изменений в сервлет или любой код на стороне сервера. Зачем?Не нужно перезапускать сервер после внесения изменений в html или javascript. Зачем?

+1

Поскольку HTML и JS не запускаются на сервере? –

ответ

1

HTML и JS интерпретируются во время работы браузера и, следовательно, изменения немедленно отражаются при обновлении браузера. Сервлеты и серверный код обычно требуют компиляции и, следовательно, требуют перезагрузки сервера. Перезапуск сервера заставляет перезагружать измененные классы. Именно поэтому JRebel интересен (он позволяет перезагружать серверные классы без перезагрузки сервера). Надеюсь это поможет!

+2

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

0

Код сервера - это просто программа. Когда вы запускаете программу, ее содержимое загружается в ОЗУ и запускается. Если вы обновляете программу, версия на диске обновляется, однако старая версия остается в ОЗУ. Вам нужно закрыть старую версию серверной программы и запустить новую.

HTML и Javascript оказываются на клиентах. Обычно они не загружаются в ОЗУ сервера (кроме кеширования). HTML/JS даже не являются частью кода сервера (хотя JS может взаимодействовать с сервером, примером является AJAX)

0

Поскольку HTML и JS выполняются на стороне клиента - в браузере пользователей. Вместо серверного кода. Но это неправильное предложение перезагрузить сервер при изменении кода, поскольку серверный код выполняется на каждом пользовательском внешнем запросе сервером.

Вы можете сделать какое-то кэширование, чтобы не выполнять код, прежде чем произойдет какое-то специальное событие на стороне сервера.

1

Речь идет не о стороне сервера или на стороне клиента, а о том, как ваш сервер обслуживает ваше приложение. Вы использовали слово «сервлеты», поэтому я предполагаю, что вы пишете в JavaEE.

Когда ваш сервер Catalina запускает приложение, он загрузит все приложение в JVM, выполняющее весь сервер. Он не отслеживает изменения файлов на диске. Если вы хотите, чтобы Catalina сделала это, вы можете проверить это. Why are my JSP changes are not reflected without restarting Tomcat?

Где я согласен другие ответы, это об упрощении:

Это не потому, что это код на стороне сервера, что вы должны перезагрузить сервер. Вы можете найти множество языков, которые отслеживают такие модификации файлов, как PHP, например, или даже ваш дорогой JavaEE, поскольку вы можете прочитать его по вышеуказанной ссылке.

Вы также можете отметить, что это не потому, что HTML, CSS и JS выполняются на стороне клиента, вам не нужно перезагружать сервер. Это связано с тем, что ваша конфигурация сервера считывает файлы на диске каждый раз, когда клиент запрашивает их. Если у вас была какая-либо система кеша, вам нужно будет ее сначала очистить, чтобы просмотреть измененные файлы, загруженные клиенту.

Смежные вопросы