зашел просто поддержать лайком, смотреть позже буду) если бы не твои ролики, то не знаю как бы выполнил тестовое задание по Next.js с котором не сталкивался до этого
у меня такой вопрос с ревалидейт (возможно глупый) то есть по истечении времени первый запрос все равно придет со старыми данными из кэша? (которые помечены как устаревшие) и данные на странице обновятся только после второго запроса? или придут старые данные, потом сервер кэширует новые данные и отправляет их на клиент и контент страницы изменится на глазах? то есть ты первые секунды видишь старый контент, а потом бац и текст на странице поменялся?)
По истичении времени кеш обозначается как неактуальный, но пересборки не происходит После того как первый юзер запросит неактуальный кеш, сервер ему отдаст старую версию в целях быстродействия, а сервер в это время запустит пересборку в фоновом режиме Т.е. юзер все еще получает старую версию Дальше все зависит от того насколько быстро сервер пересобрал страницу, если он успел то второй юзер получит новую версию(скорее всего так и будет) Это можно обойти если искуственно запросить переборку роута(не то же самое что ревалидация) с сервера в таком случае выходит что кеш обозначен как неактуальный, улетел запрос на пересборку, и первый юзер получит уже актуальную версию) так же тут может быть подвох в самом router chache так как браузер уже закеширует страницу(и не важно что дальше произойдет на сервере) и следовательно она не сможет обновиться в реальном времени
Спасибо за ваши уроки! Вы говорите что “когда мы первый раз запрашиваем, они закешируются и потом при последующих запросах из других компонентов, ф-ция запроса выполнятся не будет”. В документации говорится “После визуализации маршрута и завершения этапа рендеринга память «сбрасывается», и все записи запоминания запросов очищаются.” Я так понимаю, после того, как страница (маршрут) полностью отрендерена и пользователь видит конечный результат на своем экране, вся информация, которая была временно сохранена (закэширована) для ускорения этого процесса рендеринга, удаляется из памяти. Вопрос у меня такой: Если кеш очищается в одном компоненте после рендеринга всего компонента, то в другом компоненте если мы сделаем запрос с одним и тем же URL и с одними и теми же параметрами, выходит так что кеш у нас будет пустым, и ф-ция запроса будет выполняться. Но вы говорили что “ф-ция запроса не будет выполняться”. Не понятно просто
Возможно что-то изменилось за прошедшее время с router-cache, но если мы изменим данные на сервере, то на клиенте они обновятся через 25 секунд без обновления страницы, но пользователю нужно будет перейти по ссылкам (запросы будут идти заново). Если мы обновляем страницу, то эти данные обновятся мгновенно - получается SSR. Если не обновляем страницу, а переходим по ссылкам , то через 25 секунд на клиенте произойдут повторные запросы на сервер - своеобразный ISR на стороне клиента.
Смотреть Ваши одно удовольствие. Спасибо. По Suspenze можете записать видео и по env - переменным, пробовал, смотрел видео, делал по документации - все равно не видит.
Спасибо автору за понятное экспертное объяснение! Давно искал эксперта по Next, который умеет доходчиво объяснять. У меня есть запрос на индивидуальные консультации по Next, автор напиши пожалуйста контакт, куда можно тебе написать.
Привет, отличный материал. Можешь подсказать по паре вопросов. 1. Я использую react-query в связке с axios. next revalidate будет работать в options axios? 2. Какие есть способы рантайм обновления next build, когда в базе данных через админку что-то меняется?
1. Если не fetch, то можно отдельно добавить export const revalidate = 3600 nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#time-based-revalidation 2. Можно сделать ревалидацию по url или по тэгу nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#on-demand-revalidation
@@easydev1205 привет. спасибо, да я уже пришел к этому. только не получилось с react query ревалидацию серверную завести. Там invalidate своей жизнь живет.
Дякую, дуже доступно все пояснили, виправив помилки які були в проекті завдяки Вашому відео
Огромное спасибо за понятную подачу материала, и жирный лайк.
Большое спасибо за отличную подачу и подробное объяснение сложной темы, очень качественный и полезный контент!
Отличный канал, просто находка 👍
Привет. Отличное видео, спасибо за труды и адекватное объяснение все информации.
Мне бы твоё спокойствие братишка. Спасибо за урок
Просто коммент, для продвижения контента. Спасибо, было познавательно 🙃
Отличное видео и классные примеры!
Огромное спасибо. Можно сказать что весь APP ROUTER тут))) суть...
Ты супер
Привет, спасибо большое за видео, очень полезно
запиши или напиши пожалуйста список твоих расширений для VScode)
Коротко о кешировании в Next: Router cache -> SSG cache -> Request cache -> SSR cache
зашел просто поддержать лайком, смотреть позже буду) если бы не твои ролики, то не знаю как бы выполнил тестовое задание по Next.js с котором не сталкивался до этого
у меня такой вопрос с ревалидейт (возможно глупый)
то есть по истечении времени первый запрос все равно придет со старыми данными из кэша? (которые помечены как устаревшие) и данные на странице обновятся только после второго запроса?
или придут старые данные, потом сервер кэширует новые данные и отправляет их на клиент и контент страницы изменится на глазах?
то есть ты первые секунды видишь старый контент, а потом бац и текст на странице поменялся?)
По истичении времени кеш обозначается как неактуальный, но пересборки не происходит
После того как первый юзер запросит неактуальный кеш, сервер ему отдаст старую версию в целях быстродействия, а сервер в это время запустит пересборку в фоновом режиме
Т.е. юзер все еще получает старую версию
Дальше все зависит от того насколько быстро сервер пересобрал страницу, если он успел то второй юзер получит новую версию(скорее всего так и будет)
Это можно обойти если искуственно запросить переборку роута(не то же самое что ревалидация) с сервера
в таком случае выходит что кеш обозначен как неактуальный, улетел запрос на пересборку, и первый юзер получит уже актуальную версию)
так же тут может быть подвох в самом router chache так как браузер уже закеширует страницу(и не важно что дальше произойдет на сервере) и следовательно она не сможет обновиться в реальном времени
@@кафввкарелина А какие варианты это обойти
Спасибо за ваши уроки!
Вы говорите что “когда мы первый раз запрашиваем, они закешируются и потом при последующих запросах из других компонентов, ф-ция запроса выполнятся не будет”. В документации говорится “После визуализации маршрута и завершения этапа рендеринга память «сбрасывается», и все записи запоминания запросов очищаются.” Я так понимаю, после того, как страница (маршрут) полностью отрендерена и пользователь видит конечный результат на своем экране, вся информация, которая была временно сохранена (закэширована) для ускорения этого процесса рендеринга, удаляется из памяти.
Вопрос у меня такой: Если кеш очищается в одном компоненте после рендеринга всего компонента, то в другом компоненте если мы сделаем запрос с одним и тем же URL и с одними и теми же параметрами, выходит так что кеш у нас будет пустым, и ф-ция запроса будет выполняться. Но вы говорили что “ф-ция запроса не будет выполняться”. Не понятно просто
Возможно что-то изменилось за прошедшее время с router-cache, но если мы изменим данные на сервере, то на клиенте они обновятся через 25 секунд без обновления страницы, но пользователю нужно будет перейти по ссылкам (запросы будут идти заново). Если мы обновляем страницу, то эти данные обновятся мгновенно - получается SSR. Если не обновляем страницу, а переходим по ссылкам , то через 25 секунд на клиенте произойдут повторные запросы на сервер - своеобразный ISR на стороне клиента.
Смотреть Ваши одно удовольствие. Спасибо.
По Suspenze можете записать видео и по env - переменным, пробовал, смотрел видео, делал по документации - все равно не видит.
env файл перенёс в родительскую папку, заработало.
Suspenze - нашёл пример в документации, делается так же как и в React
Спасибо автору за понятное экспертное объяснение! Давно искал эксперта по Next, который умеет доходчиво объяснять. У меня есть запрос на индивидуальные консультации по Next, автор напиши пожалуйста контакт, куда можно тебе написать.
Спс
Привет, отличный материал. Можешь подсказать по паре вопросов. 1. Я использую react-query в связке с axios. next revalidate будет работать в options axios? 2. Какие есть способы рантайм обновления next build, когда в базе данных через админку что-то меняется?
1. Если не fetch, то можно отдельно добавить
export const revalidate = 3600
nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#time-based-revalidation
2. Можно сделать ревалидацию по url или по тэгу
nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#on-demand-revalidation
@@easydev1205 привет. спасибо, да я уже пришел к этому. только не получилось с react query ревалидацию серверную завести. Там invalidate своей жизнь живет.