netch80 (netch80) wrote,
netch80
netch80

2.5 ёлки метёлки

Вот у меня открыта лента FB, вот ткнул в ссылку, оно перешло на неё. Жму back - и как понять, где я был, и продолжить чтение дальше? А если переход был случаен?

Дурнейшее поветрие современного web 2.5 (или как там его назвать, потому что 2.0 уже было) - отсутствие чёткого понятия, что такое показываемая страница. В общем случае тебе покажут что угодно, приблизительно совпадающее с тем, что ты хотел. А особенно "лента", которую начал, может быть, тот же facebook, но поддерживают все (ладно там flickr, который 90% кошки и трамваи в тумане, но уже и itc.ua!) И вот я куда-то перешёл... скорее всего, случайно. Ибо:

1. Одни олигофрены от интерфейсостроения решили, что можно совместить полностью противоположные(!) функции на одной кнопке, если они не могут быть выбраны одновременно. Например, в Firefox - остановить загрузку и перезагрузить страницу. В результате жму на долго не грузившейся странице... привет, race condition: пока палец тратил миллисекунды на нажатие кнопки на мышке, страница успела "докачаться". Точно так же средняя кнопка мыши: пока курсор на ссылке, это open in new tab, а когда нет - это go to link from clipboard. Спасибо, это хоть можно в about:config зарулить нормально, в отличие от предыдущего. Но боюсь, скоро и это уберут.

2. Другие такие же недержатели IQ, начиная с facebook, не могут внятно показать, это ссылка или нет. Ещё неделю назад было, что "Показати більше..." это открыть кат в том же окне (а средняя кнопка открывает ещё одну ленту), а "Читати далі..." это полноценная ссылка, которую лучше открыть в новой вкладке. Но сейчас это не так - кучу раз наткнулся уже, что "Показати більше", но открывает другую страницу (в той же вкладке). Прощай, лента. Так читать её больше трёх последних котиков нельзя. Что, на каждом подозрительном объекте щёлкать правой и искать, нет ли там open in new tab, и сравнивать URL с текущим? Так тоже могут обхитрить, диверсанты.

В ЖЖ это сделано более разумно. Все кнопки типа "развернуть комментарии", "открыть подкат" имеют две реакции - при обычном нажатии JS разворачивает, а при средней кнопке (или правой плюс open in a new tab) - делает показ в ограниченном виде (только подветка, только один постинг). Это даже после последних переделок. Видно, что там ещё сохранились остатки здравой технической мысли. И лента там показывается почти по-человечески - каждый кусок имеет свой URL.

А почему "почти"? Потому что если я читал первый кусок, потом пошёл на более старые где "?skip=50", а за это время добавилось 10 сообщений, то я увижу 10 уже виденных в начале ленты. Конечно, спасибо, что известили, что есть новые, но это лучше делать иначе - где-нибудь в заголовке выходной страницы.

А ещё они таким подходом убивают сервера базы, и появляются в интернете рецепты типа "страшно тормозит сервер на выборках типа SELECT ... LIMIT 100 OFFSET 100500500? Выберите с offset'ом только id статей подзапросом и затем выберите сами статьи через SELECT * ... in (SELECT id...)". То, что надо было при формировании страницы запомнить timestamp самой старой записи и уже, не задрачивая сервер, спросить просто и эффективно "SELECT * from messages WHERE форум AND ts_updated < ${threshold_from_url} ORDER BY ts_updated DESC LIMIT 50", им, видимо, на ум не приходит уже лет 20, сколько есть эти форумы и ленты.

UPDATE: Почему такой бардак в переключении между частями ленты даже там, где она есть?
У одних в прошлое это "previous page", в будущее - "next page".
У других строго наоборот в прошлое это next page - ну логично же, [censored], начинают-то с самых свежих (а кто не скачет с нами, тот предатель, да).
У хабра к более старым это "туда". To Du.blin. Они считают читателей такими тупыми, что не разберутся, куда же надо листать?
На opennet поставили на этих ссылках "раньше"/"позже" по моей просьбе, но впараллель к невнятному "следующая страница" и "предыдущая страница" соотственно.

UPDATE2: если забанить кого-то в FB, это настолько срывает блюдце скрипту, что лента перерисовывается полностью с нуля. "Семь бед - один Reset" (tm)

"Пробачте за емоції, простите, накипело" ((c) Орест Лютий)

Кстати, у меня на работе FB показывает верхнюю полоску (в которой поиск и нотификации) постоянно, а дома - нет. Акаунт один и тот же, версии FF одинаковые, основные настройки - тоже. Что за ахтунги у них в DevOps?
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 19 comments