Size: a a a

2021 January 31

OJ

Oleg Junior in javascript_ru
whyamsx
Капец а как тогда с этим быть
Set можно заюзать, если очень нужно. там порядок сохраняется.
источник

P

PWG in javascript_ru
Oleg Junior
Вопрос по стилю написания кода. Я постепенно пришел к такому стилю. Стрелочные функции пишу только в коллбеках, т.к. они не поднимаются, а объявляю все вспомогательные функции внутри функции методом декларирования. Тогда получается, что когда я заглядываю в функцию потом, то сверху у меня сразу более абстрактная логика ( зеленый блок ) и сразу видно всю логику функции. Но вот если писать подфункции стрелочные, то зеленого блока сверху не получится, и я вынужден буду пробегать глазами код подфункций и опустить взгляд вниз чтобы понять логику функции. Как вам такой подход?
Там всё ужасно
источник

P

PWG in javascript_ru
Начиная с отсутствия типизации и тестов
источник

P

PWG in javascript_ru
Что такое .split(“ “)??
источник

VL

Vitaliy Lebuhorskiy in javascript_ru
разделение строки по разделителю?
источник

P

PWG in javascript_ru
Спасибо, капитан. Но для этого есть .split(/\s+/)
источник

m

mark in javascript_ru
После полной загрузки и отрисовки страницы с помощью
form.submit();
передаю данные на сервер, при этом на стороне сервера выполняется длительный процесс. Во всех браузерах кроме  Safari, страница с которой осуществляется переход остаётся без изменений (доступна для просмотра). Safari же блокирует содержимое страницы на которой был активирован
form.submit();
. Как победить?
источник

К

Константин in javascript_ru
PWG
Там всё ужасно
Как минимум потому что там каждый раз создание функций внутри функции, причем которые топ-левел.
У них нету кложуры (захваченных переменных) внутри, нормальные движки конечно их захойстят снаружи, но как бы..
источник

P

PWG in javascript_ru
Где-то на хабре была статья что хром научился инлайнить (разворачивать) несложные 2-3 строчные функции.
Но соглашусь
источник

К

Константин in javascript_ru
Да там ещё и использование до декларирования
источник

К

Константин in javascript_ru
Что вообще антипатерн
источник

К

Константин in javascript_ru
PWG
Где-то на хабре была статья что хром научился инлайнить (разворачивать) несложные 2-3 строчные функции.
Но соглашусь
А потом он запихает туда неявно по ошибке глобаль из кложуры и будет год искать ошибку :)
источник

P

PWG in javascript_ru
Не, там именно было за функции вроде sum(a,b){return a+b}
Они инлайнятся при оптимизации и экономят джамповые такты
источник

P

PWG in javascript_ru
Лень искать
источник

К

Константин in javascript_ru
Да это понятно.
Я про его случай, что у него внутри логикак на кой-то разделена на функции внутри функции.
источник

К

Константин in javascript_ru
Там в в8 агрессивный инлайн это понятно, но далёко не всегда. Если ты будешь часто юзать метод - он не заинлайнит,  так как будет огромный выхлоп из-за кодогенерации.
Там есть предел превышения размера оригинальной функции, так как кодоген до jita приходится.

Кароче, там жопа сложная :) не хочу думать даже об этом сильно.

Это как со светлете с его агрессивным инлайном на проперти.
источник

P

PWG in javascript_ru
mark
После полной загрузки и отрисовки страницы с помощью
form.submit();
передаю данные на сервер, при этом на стороне сервера выполняется длительный процесс. Во всех браузерах кроме  Safari, страница с которой осуществляется переход остаётся без изменений (доступна для просмотра). Safari же блокирует содержимое страницы на которой был активирован
form.submit();
. Как победить?
Уже сто лет for.submit не видел.
Люди отправляют ажаксом, фетчем. Всякими прослойками через ангуляр(суть есть xhr/ажакс) через сокеты гоняют. Но чтоб форм.сабмит
источник

P

PWG in javascript_ru
Вероятно сафари пытается избежать двойной сабмит формы.
Но фраза «выполняется длительный процесс» меня пугает
источник

m

mark in javascript_ru
PWG
Уже сто лет for.submit не видел.
Люди отправляют ажаксом, фетчем. Всякими прослойками через ангуляр(суть есть xhr/ажакс) через сокеты гоняют. Но чтоб форм.сабмит
Не спорю, в идеале всё переписать под fetch и проблемы бы не было. Но тут на эту форму столько всего завязано в том числе и recaptcha. Самым простым решением было бы отучить Safari (WebKit) сбрасывать отрисовку, при выполнении
.submit()
пока «выполняется длительный процесс» на стороне сервера, так же как это делают все остальные браузеры.😔
источник

В

Владислав in javascript_ru
function browser() {
 var ua = navigator.userAgent;
 
   if (ua.search(/MSIE/) > 0 )return 'Internet Explorer';
   if (ua.search(/Firefox/) > 0) return 'Firefox';
   if (ua.search(/Opera/) > 0) return 'Opera';
   if (ua.search(/Chrome/) > 0) return 'Google Chrome';
   if (ua.search(/Safari/) > 0) return 'Safari';
   if (ua.search(/Konqueror/) > 0) return 'Konqueror';
   if (ua.search(/Iceweasel/) > 0) return 'Debian Iceweasel';
   if (ua.search(/SeaMonkey/) > 0) return 'SeaMonkey';
 
   // Браузеров очень много, все вписывать смысле нет, Gecko почти везде встречается
   if (ua.search(/Gecko/) > 0) return 'Gecko';

   // а может это вообще поисковый робот
   return 'Search Bot';
}
подскажите, почему при заходе через IE11 функция возвращает Gecko? Как можно проверить браузер пользователя на IE11?
источник