LINUX.ORG.RU

Скажите, я правильно вообще делаю?

 , ,


2

1

Погружаюсь в AngularJS. Не спрашивайте, почему, но в 1.2 (максимальная кросс-платформенность и минимальное отъедание памяти), никаких jQuery...
использую bootstrap.ui, пагинацию из него.

Пагинация прекрасна и быстра, вот только если посетитель с 99-й страницы перейдёт куда-либо, а потом вернётся, или сохранит в закладки, его UX превратится в тыкву страница снова станет первой.

Не проблема, я нагуглил, что надо использовать $location.path
Но тогда перезагружается страница, и смысл теряется.

Хорошо, в router-ng ставим reloadOnSearch: false

... опять UX превратится в тыкву - если посетитель нажмёт на пункт меню, приведший его на эту пагинацию, он не сработает.

Нашёл воркэраунд - в роутинге писать:

    $routeProvider.when('/bottles/:xxxxx', {
        templateUrl : '/templates/ng/bottles.jade',
        reloadOnSearch: true
    });

    $routeProvider.when('/bottles', {
        templateUrl : '/templates/ng/bottles.jade',
        reloadOnSearch: false
    });


Так я это о чём... Это мне одному вот это вот всё жидкое и густое вперемешку не нравится в этом вашем JavaScript? А остальным и так нормально, и они считают это мощным и немногословным инструментом, или я просто не там копаюсь?

Сейчас иногда на wxPython что-то делаю, так там по сравнению с UI в браузере просто какой-то прекрасный мир идеальных вещей.

★★★★★

Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от ChALkeR

кривым и громоздким sass нынче пользуются только неосиляторы современного css

Покажи плиз как на современном css автоматически создавать спрайты из картинок или автоматически переводить те же картинки в base64.

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)
Ответ на: комментарий от TDrive

css
base64

Так, я рано жаловался, я еще не докопался.
Всем спасибо, глубже я вряд ли зароюсь.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Точнее даже не альтернатива, а еще один способ убрать кучу запросов. Если у тебя миллион маленьких картинок 5 на 5 пикселей которые используются для бекграундов в спрайт их не запихать, а запрашивать с сервера по одной фигово с точки зрения производительности, остается только base64.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

автоматически создавать спрайты из картинок или автоматически переводить те же картинки в base64.

Во-первых, есть плагины для postcss, которые это умеют (см. postcss-url для встраивания, например).

Во-вторых, в современном вебе спрайты не нужны.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 2)
Ответ на: комментарий от ChALkeR

Во-первых, есть плагины для postcss, которые это умеют (см. postcss-url для встраивания, например).

Ну и какая блин разница sass будет собирать css или галп? И то и другое явно не современный css о котором ты говоришь.

Во-вторых, в современном вебе спрайты не нужны.

Почему?

TDrive ★★★★★
()
Ответ на: комментарий от Kilte

Во фронтенде сейчас всё бурно развивается

Нет. Во фронтенде сейчас и всегда - хождение по кругу. Тот дикий оверхед, который сейчас и всегда несут эти технологии (начиная с jquery) предлагая в замен.. ничего, вводит меня в легкое непонимание происходящего. Просто yet another своеобразный способ биндинга данных и навешивания событий. Сегодня мы запилим на jquery/ангуляре почтовый интерфейс гугла, а завтра ВНЕЗАПНО осознаем, что он тормозит как сука. И так 140 раз. А потом еще каждый удод будет говорить, что веб приложения тормозят. Мы уже давно должны были подмять мобильную платформу, но мы же решаем другие задачи.. например как отрендерить дом-дерево на сервере - это очень важно, да.

Ты сказал, что это вершина всей этой кучи дерьма. Я правильно понял?

Нет, ничего такого я не говорил.

special-k ★★★★
()
Ответ на: комментарий от ChALkeR

Только вот ангулар 1 был медленным говном чуть более, чем полностью (про 2 пока не могу сказать), кофескрипт объективно умер (смотри график коммитов и висящие по несколько лет пулл реквесты с просьбой смерджить то, что у людей с ES давно работает), jade уже некоторое время как переименовали в pug, а кривым и громоздким sass нынче пользуются только неосиляторы современного css.

Welcome to 2016.

В - виток вниз.

с ES давноажмесяц работает в ночной сборке какого-то браузера

Поправил.

про 2 пока не могу сказать

Я могу: медленное говно. Реакт? - ЧСХ, медленное говно. Что еще тебе подсказать?

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

Реакт? - ЧСХ, медленное говно. Что еще тебе подсказать?

В каком месте реакт медленное говно и что тогда по твоему быстрее?

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

В каком месте реакт медленное говно

Блин, поставь нормальную задачу, например текстовый процессор, или таблицы аля excel, векторный редактор, растровый редактор и т.д. Чем тут поможет реакт?

special-k ★★★★
()
Ответ на: комментарий от TDrive

о есть ты не знаешь?

Знаю: в каждом. Все что он делает - все медленно. Все это в десятки раз медленнее чем делать непосредственным образом работая с DOM.

special-k ★★★★
()
Ответ на: комментарий от special-k

Векторный редактор на сайте мягко говоря не нормальная задача и реакт тут ни чем не поможет у него другая область применения. Так что именно в реакте медленно работает?

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

А реакт с чем по твоему работает?

Лол, естественно оно все рано или поздно взаимодействует с DOM, но через задницу.

special-k ★★★★
()
Ответ на: комментарий от special-k

Знаю: в каждом. Все что он делает - все медленно. Все это в десятки раз медленнее чем делать непосредственным образом работая с DOM.

Реакт как раз непосредственным образом работает с DOM.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Векторный редактор на сайте мягко говоря не нормальная задача

Векторный редактор на HTML5 = это вполне нормальная задача. Это совершенно точно гораздо более нормальная задача чем векторный редактор на java, например. Т.е. сложные интерфейсные задачи реакт, и ангуляр и т.д. решать не позволяют.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

и что тогда по твоему быстрее?

Нормальная работа с DOM.

Это ты так со мной спорить пытаешься? Я соглашусь с тем, что реакт — та ещё ерундовина. Я бы не стал им пользоваться (я, собственно, и не стал).

И да, нормальная работа с DOM быстрее.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 2)
Ответ на: комментарий от special-k

Не знаю у меня нет опыта запиливания векторных редакторов на сайтах, и вообще я не могу вспомнить ни одного такого сайта. Интерфейс в принципе можно сделать на реакте, из плюсов работа со стейтом, рендеринг html со дифом старой и новой версии что бы избежать лишних обращений к DOM.

Ты конечно и сам все это можешь написать без реакта, вот только через пару месяца у тебя получится свой реакт (это еще если повезет) который будет в 10 раз хуже оригинального реакта банально из за отсутствия комьюнити и нехватки жопа-часов программиста.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Реакт как раз непосредственным образом работает с DOM.
.<

Что в твоем понимании «непосредственно». Как jsx можно называть непосредственной работой с DOM?)

special-k ★★★★
()
Ответ на: комментарий от special-k

ажмесяц работает в ночной сборке какого-то браузера

А вот это не волнует вообще. Что coffeescript, что современный js сейчас компилируются в старый добрый яваскрипт, поддерживаемый всеми браузерами. Но у второго есть перспективы стать широко поддерживаемым нативно через пару лет, а у первого нет. Плюс во втором больше фич, которые упрощают жизнь бедных js-программистов, а в первом — кукиш с маслом и полное уныние в проекте и нежелание что-либо добавлять.

ChALkeR ★★★★★
()
Ответ на: комментарий от special-k

Что в твоем понимании «непосредственно». Как jsx можно называть непосредственной работой с DOM?)

Он один раз рендерит его в DOM а потом все изменения стейта сравнивает со своим внутренним представлением и по необходимости обращается к конкретным частям DOM для отображения этих изменений. Раз уж мы говорим о перформансе я надеюсь ты понимаешь что обращения к DOM это основное из за чего может тормозить сайт? Так вот реакт максимально оптимизирует количество этих запросов.

TDrive ★★★★★
()
Ответ на: комментарий от ChALkeR

а у первого нет

Что значит нет? Как бы весь атом написан на coffee.

Плюс во втором больше фич, которые упрощают жизнь бедных js-программистов

Ну.. нет. Весь синтаксис coffee упрощает жизнь программиста.

special-k ★★★★
()
Ответ на: комментарий от TDrive

HTTP/2 я упоминал выше. Упаковывание картинок в спрайты только вредит сейчас.

На всякий случай — HTTP/2 поддерживают все браузеры, включая даже едж и ие11 (но ие11 только на вин10). У ие сейчас жалкие четыре процента в сумме по всем версиям, впрочем.

Кроме этого, растровые картинки вообще сейчас не самая лучшая затея, когда у большей части устройств количество экранных точек на 1px отлично от единицы, а расположение сабпикселей не всегда RGB. Даже если сделать три варианта по размеру — всё равно где-то будет мыло.

Иконки лучше отображать через SVG или шрифты, а фотографии в тайлы и так никто не складывал.

ChALkeR ★★★★★
()
Ответ на: комментарий от TDrive

обращения к DOM это основное из за чего может тормозить сайт?

Нет) Например может охрененно тормозить дата-биндинг, или обсервер. Или css. Частые запросы к серверу.

реакт максимально оптимизирует количество этих запросов

Да он сам хуже любого запроса))

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

Что значит нет? Как бы весь атом написан на coffee.

Ты зацитировал кусок этой фразы:

Что coffeescript, что современный js сейчас компилируются в старый добрый яваскрипт, поддерживаемый всеми браузерами. Но у второго есть перспективы стать широко поддерживаемым нативно через пару лет, а у первого нет.

Как легко заметить, полностью утверждение, которое ты пытаешься опровергнуть, выглядит как

У coffeescript нет перспектив стать широко поддерживаемым нативно через пару лет

Наплевать, на чём написан atom — нет у кофескрипта никаких перспектив стать поддерживаемым браузерами. Атом, не атом, да хоть вижуалстудия — всё равно coffeescript в браузеры никто тянуть не будет, для него всегда нужен будет трансплиттер. Который уже активно не пилят и который находится в стадии разложения.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 2)
Ответ на: комментарий от special-k

Весь синтаксис coffee упрощает жизнь программиста.

async/await просто офигенно упрощает жизнь жс-программиста. А в кофескрипте тебе его не видать как своих ушей.

ChALkeR ★★★★★
()
Ответ на: комментарий от ChALkeR

Но у второго есть перспективы стать широко поддерживаемым нативно через пару лет

А первый будет компилиться в новый нативный js через пару лет, и будут там доступны все те же самые фичи что и в новом нативном js. Вон в typescript вообще можно выбирать версию в какой стандарт js нужно скомпилить.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

реакт максимально оптимизирует количество этих запросов

Вот я хочу сдвинуть блок на 1px. Что будет быстрее этого?) block.style.left = parseInt(block.style.left) + 1 + 'px' реакт?)

special-k ★★★★
()
Ответ на: комментарий от special-k

Нет)

да

Например может охрененно тормозить дата-биндинг, или обсервер. Или css. Частые запросы к серверу.

И причем тут реакт во всех этих случаях?

Да он сам хуже любого запроса))

Но аргументов от тебя я пока так и не услышал

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

А первый будет компилиться в новый нативный js через пару лет, и будут там доступны все те же самые фичи что и в новом нативном js

Не совсем понял — зачем тогда компилить? Или ты имеешь ввиду в последней фразе «ещё более новом»? Тогда да, согласен. Какие-то фичи можно будет использовать уже нативно, уменьшив необходимость тянуть компилятор и возложив это на браузеры (попутно уменьшив результирующий вес выходного файла), какие-то новые ещё более клёвые фичи на первом этапе будут доступны только через трансплиттеры.

Вон в typescript вообще можно выбирать версию в какой стандарт js нужно скомпилить.

В babel тоже фактически можно, но это не настолько явный переключатель — ты можешь себе хоть es3-property-literals включить для тех сред, которые не умеют es5 толком.

ChALkeR ★★★★★
()
Ответ на: комментарий от special-k

Вот я хочу сдвинуть блок на 1px. Что будет быстрее этого?) block.style.left = parseInt(block.style.left) + 1 + 'px' реакт?)

А ты думаешь на реакте это как то принцыпиально по другому будет? В данном случае будет не быстрее, а так же.

TDrive ★★★★★
()
Ответ на: комментарий от ChALkeR

Не совсем понял — зачем тогда компилить? Или ты имеешь ввиду в последней фразе «ещё более новом»? Тогда да, согласен. Какие-то фичи можно будет использовать уже нативно, уменьшив необходимость тянуть компилятор и возложив это на браузеры (попутно уменьшив результирующий вес выходного файла), какие-то новые ещё более клёвые фичи на первом этапе будут доступны только через трансплиттеры.

Я имею в виду фичи кофескрипта которые делают код лаконичным и более удобным для чтения и поддержки, например отсутствие скобочек, тоек с запятыми и ретюрнов. Вон там выше скидывали форк кофескрипта livescript в котором можно писать числа в виде 12_344km, педалька и буквы игнорируются во время компиляции а код намного понятнее. круто же.

Ну а фичи нового стандарта будут доступны в кофе когда они станут нативными в браузерах.

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)
Ответ на: комментарий от TDrive

А ты думаешь на реакте это как то принцыпиально по другому будет?

Реакт скорее всего заменит элемент целиком. А еще будет долго его искать. В общем да, есть пара принцыпиальных отличий даже на таком крохотном примере.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

А, так кофе даже форкнули с горя от того, что апстрим загнулся и не хочет мерджить?

Вот это уже интересно — смотреть надо. Про iced пока ничего не могу сказать. Но я всё равно за стандартный js, потому что iced не застрахован от такой же медленной смерти, как и оригинальный coffee.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 1)
Ответ на: комментарий от special-k

Реакт скорее всего заменит элемент целиком. А еще будет долго его искать.

Нет, так как раз будет в первом angular.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Ну а фичи нового стандарта будут доступны в кофе когда они станут нативными в браузерах.

Чёрта с два. У кофескрипта есть парсер (кэп), и он может тупо не распарсить твой скрипт, который использует новые фичи жс.

ChALkeR ★★★★★
()
Ответ на: комментарий от special-k

Я правильно понимаю, что его await никаким боком не совместим со стандартными async/await и промисами? Или я чего-то не так понял?

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 1)
Ответ на: комментарий от special-k

Зачем кидать линк на протухший язык? Из всех кофеподобных сейчас жив только livescript, но и он едва ли нужен в веб (хотя однострочники на нём писать удобно).

x3al ★★★★★
()
Ответ на: комментарий от ChALkeR

А, так кофе даже форкнули с горя от того, что апстрим загнулся и не хочет мерджить?

Нет форкнули потому что захотели запилить свой кофескрипт, и даже не один раз форкнули, опенсурс же.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

будет в первом angular.

Основная фича реакта - пакетирование изменений. А слово снапшот тебе ничего не говорит? Как думаешь, что за ним стоит?)

special-k ★★★★
()
Ответ на: комментарий от ChALkeR

Чёрта с два. У кофескрипта есть парсер (кэп), и он может тупо не распарсить твой скрипт, который использует новые фичи жс.

Так обновят парсер, а даже если и не обновят и кофескрипт умрет нету ни каких проблем забить на кофескрипт и взять что нибудь другое, даже в рамках одного проекта, просто галп будет собирать нативный js из кофескрипта, тайпскрипта, лайв скрипта... не все ли равно?

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

А в чём проблема собирать нативный жс из более нового нативного жс? =) Разговор и пошёл про то, что кофескрипт не просто сдох, а ещё и слегка попахивает, а новый нативный жс и так ему не уступает уже.

ChALkeR ★★★★★
()
Ответ на: комментарий от special-k

Ты бы лучше взял и проверил. Достаточно руками поменять что нибудь в элементе, изменить стейт реакта и проверить остались твои изменения или нет.

TDrive ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.