#javascript #html #node.js
#javascript #HTML #node.js
Вопрос:
Я создаю веб-сайт с помощью сервера nodejs (с помощью express). Все страницы будут иметь одинаковый заголовок с логотипом и т. Д. которые отправляются снова и снова с сервера. Как избежать этого дублирования.
app.use(express.static("frontend"));
каталог внешнего интерфейса имеет ‘index.html » и «login.html ‘ (оба имеют один и тот же заголовок
Я открыт для всех вариантов (изменения в интерфейсе / бэкэнде).
PS: Я просто хочу отправить заголовок только один раз (не полный веб-сайт / приложение). Итак, как мы это делаем (отправляем заголовок, когда кто-то делает запрос, но при последующих запросах html-файлы не будут иметь заголовка, браузер отобразит содержимое под заголовком и сохранит заголовок нетронутым)
Комментарии:
1. Ваш логотип должен быть кэширован браузером при первом вызове. Но если вы хотите, чтобы все было извлечено только один раз, для этого вам понадобится одностраничное приложение (SPA). Ванильный HTML всегда будет извлекать всю страницу снова.
2. @ tbking, я просто хочу отправить заголовок только один раз (не полный веб-сайт / приложение). Итак, как мы это делаем (поэтому отправка заголовка, когда кто-то делает запрос, но при последующих запросах html-файлы не будут иметь заголовка, браузер отобразит содержимое под заголовком и сохранит заголовок нетронутым)
Ответ №1:
Вообще говоря: вы этого не делаете.
HTML для создания заголовка, как правило, довольно мал. Тяжелыми частями будут такие вещи, как изображения, которые являются отдельными URL-адресами, которые в любом случае могут кэшироваться. Это редко то, о чем стоит беспокоиться.
Можно избежать повторной отправки данных с помощью фреймов, но это имеет последствия для людей, ссылающихся на контент, поисковые системы и общую доступность.
Аналогично, вы можете использовать JavaScript для загрузки основного содержимого вместо использования обычной ссылки, но это имеет аналогичные проблемы, если вы не объедините его с резервными вариантами на стороне сервера (хотя большая часть работы по устранению этих проблем выполняется за вас, если вы используете фреймворк, такой как Next.js ).
Комментарии:
1. Мне понравилась часть javascript. Но, как вы сказали, об этом не стоит беспокоиться, поэтому я оставлю все как есть. Таким образом, нам не нужно беспокоиться о кэшировании. Браузер сам об этом заботится?
2. Типичная конфигурация по умолчанию для веб-сервера устанавливает разумные заголовки управления кэшем для статических ресурсов. Вы можете настроить их для повышения производительности (например, заставить их кэшироваться дольше, если вы знаете, что они будут редко меняться / иметь стратегию уничтожения кэша, готовую к тому, что они изменятся).
3. таким образом, параметр maxAge в express.static (root, [options]) выполнит эту работу. по умолчанию его значение равно 0.