Pull to refresh

Comments 29

Стоит еще раз подчеркнуть, что применение такого решения не ограничивается RoR.
Turbolinks is not dajaxproject.

как я понял аналога для djnago нет.
Если кому интересно посмотреть сайт с турболинками и без:
old.oratorica.ru/ (Первая загрузка может быть долгой, там выключается сервер, когда в течение 15 минут не заходит никто. Потом будет нормально.)
и
oratorica.ru/ (Турболинки и много других оптимизаций)
UFO just landed and posted this here
То есть не парсит снова все стили и яваскрипты.
Если пользоваться кнопкой back в браузере, все работает «просто замечательно»
Спасибо за сообщение об ошибке.
Исправил. Теперь «просто замечательно» :)
Если бы проблемы, описанные в этой статье были хотя бы десятой частью… Я недавно по этому поводу писал, просто положу это здесь: borisstaal.com/blog/2013/01/18/dangers-of-turbolinks/. Турболинки – это стильно, модно, молодежно, но будьте аккуратны.
Спасибо, что поделились ссылкой! Было очень интересно почитать и открывшиеся проблемы меня ужаснули. Очевидно, что гем очень сырой, но есть надежда на то, что его-таки доработают до приемлего состояния.
В перепалке в твиттере по результату этой статьи, @dhh обещал, что @sstephenson сделает нормальный коллектор мусора при смене страницы. Но, увы, это практически невозможно сделать хорошо. Как я и писал в этой статье, либо он станет еще одним микро-фреймворком, либо под него начнут писать Rails-специфичный код. В любом случае, посмотрим как ситуация будет развиваться. В интересное время живем.
Одного не могу понять — зачем Turbolinks хранит 10 снимков DOM деревьев, если это все в итоге ломает?

Писать специфичный код под гем в большинстве своем будут только люди, твердо решившие начально проектировать приложение на Rails 4/Rails 3 с ним с самого начала, как мне видится. С такими проблемами Turbolinks почти невозможно интегрировать в крупные приложения.
Ломает все не только это, это завершающий гвоздь в крышку гроба. Хранит он их по очень простой причине – это кэш для события «назад». В этом ведь смысл Турболинков – скорость.

А что до тех, кто будет его писать, вот вам пример: twitter.com/karthik_ak/status/292935068631044098. Люди просто используют то, что им дают. Хорошо это (coffee, sprockets), плохо это (prototype, например) – не важно. «Rails has beome a trendsetter.» – это ведь действительно так. Только это больше ответственности, чем некоторые думают. И, как по мне, это опасно для комьюнити очень.
Турболинкс весьма убог по своей идее. Его единственный плюс в том, что простые приложения (и простые не всегда) работают из коробки.

Если уж на то пошло, то очень часто хочется обновить только определённую область страницы, например при пагинации или фильтрации. Мы в компании применяем что-то подобное (History API + AJAX) с начала 2012 года, после выхода Turbolinks решили и наше решение завернуть в gem, вот что получилось https://github.com/igor-alexandrov/wiselinks.
Спасибо, ребята, за этот гем. Очень удобное решение.
Не за что! Рады слышать отзывы.
В ближайшее время напишем пост о разных случаях использования Wiselinks, в том числе о разных «подводных» камнях и способах их решения.
Жалко в голосовании нет, что я использую другую библиотеку реализующую pjax.

Я считаю, что если используется pjax, то это отличны способ добавить нормальные анимации переключения страниц — вспышки при загрузке современных страниц не очень приятно. Хотя понятно, что анимации нужно прописывать отдельно, а идея turbolinks — дать счастье всем и сразу.
Я использовал турболинкс в одном проекте, огреб кучу проблем со стороним js, начиная с гугл аналитикса, до гема nested_form.

Попробовал помочь jquery.turbolinks, github.com/kossnocorp/jquery.turbolinks/issues/8, но в итоге это, похоже, еще больше сломало.
В случаях когда по ссылке нужно перейти обычным способом, можно добавить параметр data-no-turbolink=«true» к контейнеру, тогда все ссылки внутри будут вызывать полную перезагрузку страницы.
А как же SEO? Как поисковики реагируют на данное поведение страниц сайта?
А в чём проблема? Как я понял, для поисковиков каждая страница будет просто загружаться целиком (так же, как и в старых браузерах).
Как пример из хелпа поисковика:
Навигация через скрипты. Наиболее распространенным способом размещения ссылки является HTML тег. Но существуют и другие способы навигации между страницами. Например, можно использовать технологии JavaScript или Flash. Робот Яндекса не переходит по таким ссылкам, поэтому следует дублировать ссылки, реализованные при помощи скриптов, обычными текстовыми ссылками.

help.yandex.ru/webmaster/?id=1108949

Если отключить javascript в браузере и пройтись по страницам — все будет работать?
В HTML-коде страницы остаются обыкновенные ссылки. JavaScript'ом обрабатываются события click всех ссылок.
Отключен JavaScript => нет обработчика => обыкновенные ссылки.
«Подобная техника похожа на pjax»

Тогда уж говорите, что «похоже» означает тождественность:
This is similar to pjax, but instead of worrying about what element on the page to replace, and tailoring the server-side response to fit, we replace the entire body. (из описания гема)

Нет никакой разницы в том, что использовать, техническая реализация на базе pjax состоит всего лишь в нескольких строках. Также стоит упомянуть о поддержке браузеров. И если уж речь идет об ускорении, то лучше ручками говорить серверу какую часть страницы обновлять. Часто как раз во внешний лейаут входят нагруженные вещи, которые вычислять каждый раз нет смысла — надо обновлять лишь контентную часть страницы.
Как к такой технологии относятся поисковики? Мне кажется велика вероятность получить бан от какого-нибудь Гугла или Яндекса, так как с их точки зрения это очень сильно смахивает на клоакинг — подмену контента для поисковиков.
Поисковики не выполняют Javascript
Sign up to leave a comment.

Articles

Change theme settings