Size: a a a

2021 March 12

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
я могу сказать что если у тебя есть мобильные пользователи то на них это сильно влияет, потому что они могут поскролить страничку, а гидрация сбросит скролл в начало страницы
Ты, кстати, уверен, что скролл собьётся?
Я ни на каких синтетических тестах подтвердить это не смог.

Например, если я захожу на анкор-ссылку в своём блоге с slow 3g и 6х замедлением процессора, страница у меня отображается достаточно быстро (секунды 2-3). Это потому что вернулся голый HTML от сапёра. При дальнейшей загрузке скриптов сброса скролла не вижу.
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Ты, кстати, уверен, что скролл собьётся?
Я ни на каких синтетических тестах подтвердить это не смог.

Например, если я захожу на анкор-ссылку в своём блоге с slow 3g и 6х замедлением процессора, страница у меня отображается достаточно быстро (секунды 2-3). Это потому что вернулся голый HTML от сапёра. При дальнейшей загрузке скриптов сброса скролла не вижу.
кто-то уже проверял на свелте в чате
источник

AP

Alexander Ponomarev in Svelte [svelt]
синтетический тест очень простой setTimeout(hydrate, 5000) и скролить вниз пока эти 5000 не стрельнули
источник

11

1 1 in Svelte [svelt]
Alexander Ponomarev
я могу сказать что если у тебя есть мобильные пользователи то на них это сильно влияет, потому что они могут поскролить страничку, а гидрация сбросит скролл в начало страницы
не проверял что конкретно со свелтом, но у браузеров  скролл сбрасывается только если между сносом старого и заполнением нового контента происходит перерисовка.
источник

AP

Alexander Ponomarev in Svelte [svelt]
1 1
не проверял что конкретно со свелтом, но у браузеров  скролл сбрасывается только если между сносом старого и заполнением нового контента происходит перерисовка.
нет это не правда https://jsfiddle.net/0dnz3v2f/
источник

AP

Alexander Ponomarev in Svelte [svelt]
отцепка и прицепка той же самой ноды в то же самое место без какого-либо кадра сбрасывает все состояние ноды в том числе и скролл
источник

11

1 1 in Svelte [svelt]
так это не то поведение о котором речь идёт. замена самого скроллящегося элемента - это не то же самое, что замена его содержимого.
источник

DK

Dan Kozlov in Svelte [svelt]
Да, ты ж тут два коммита в дом делаешь.
Ща попробую то же самое с replaceChild сделать.
источник

AP

Alexander Ponomarev in Svelte [svelt]
свелт никакой реплейс чайлд не делает, он делает детач и аппенд
источник

AP

Alexander Ponomarev in Svelte [svelt]
и весь смысл всех этих манипуляций СПЕЦИАЛЬНО потерять дом состояние
источник

DK

Dan Kozlov in Svelte [svelt]
Ну, с реплейсом всё равно сбрасывается :)
источник

AP

Alexander Ponomarev in Svelte [svelt]
чтобы у картинок повторно вызвался on:load если он стрельнул до гидрации =)
источник

11

1 1 in Svelte [svelt]
если в этом примере дёргать .content - не сбрасывается.  если в нормальных условиях скроллится body - то любые манипуляции с содержимым без перерисовки скролл не сбрасывают
источник

AP

Alexander Ponomarev in Svelte [svelt]
это маразм если често
источник

AP

Alexander Ponomarev in Svelte [svelt]
1 1
если в этом примере дёргать .content - не сбрасывается.  если в нормальных условиях скроллится body - то любые манипуляции с содержимым без перерисовки скролл не сбрасывают
не понял
источник

AP

Alexander Ponomarev in Svelte [svelt]
ты имеешь в виду боди отцепить нельзя поэтому у него скролл не сбросится?
источник

11

1 1 in Svelte [svelt]
  const element = document.querySelector('.content');
источник

AP

Alexander Ponomarev in Svelte [svelt]
ща соберу еще один пример
источник

AP

Alexander Ponomarev in Svelte [svelt]
да ты прав
источник

AP

Alexander Ponomarev in Svelte [svelt]
если скролл на боди то все будет ок
источник