24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Рассказывайте кто в чем пишет. Желательно со скринами. И со списком фичей, которыми вы пользуетесь и без которых не можете жить (например smartparens пикрелейтед).
>>1061493 У тебя функция b() вызывается когда интерпретатор javascript читает определение f(). Значение this определяется в момент выполнения блока в котором оно содержится. Поскольку в этот момент b() не связана ни с каким объектом, то this указывает на window.
>>1061509 Потому что тебя наебали. Грубо говоря this зависит от того что перед точкой. Если перед точкой нихуя нет как в > b() то и this там будет undefined/window
>>1061509 Думай как аутист программист. Значение this вычисляется внутри скопа функции b(), в момент ее выполнения. На момент выполнения f() значение этого this уже вычислено вместе со значением b().
>>1061544 это и есть основа, долбоебина >передача метода в сеттаймаут >копирование ссылки на метод >применение call >вызов через new >надуманные примеры мне две колы и картошку фри
>>1061589 глупый чтоле? эта хуйня работает везде где есть Node.js. Насколько я понимаю Node.js в винду завезли еще в те времена когда я ебал твою молодую мамку.
document.getElementById('save-text').addEventListener('click', function() { // blablabla some code }); Можно ли как нибудь вызвать код blablabla some code внутри этой функции в другой функции? Если просто засунуть в переменную, то сам ивент листенер глушится и перестает работать.
>>1062143 jsfiddle и так запускает твой код внутри onload, так что удали document.body.onload. Вне jsfiddle, код тоже не будет работать, т.к. >document.body.onload = map.render рендер потеряет this. Заверни это в функцию или забайнди. Ну и это >new Array(height * width) Делает совсем не то, что ты думаешь.
Котаны, просто если кому то нехуй делать - распишите на словах плиз, не бубните что я нуб и все такое.
var timers = {};
// прибавит время выполнения f к таймеру timers[timer] function timingDecorator(f, timer) { return function() { var start = performance.now(); //откуда перфоманс нов? Выглядит как метод но нигде нету такого, что за хуйня?
var result = f.apply(this, arguments); // (*)
if (!timers[timer]) timers[timer] = 0; //можно эти две строки в словах мне прочитать? timers[timer] += performance.now() - start;
return result; } }
// функция может быть произвольной, например такой: var fibonacci = function f(n) { return (n > 2) ? f(n - 1) + f(n - 2) : 1; }
// использование: завернём fibonacci в декоратор fibonacci = timingDecorator(fibonacci, "fibo");
>>1062284 выкладывай код в песочницу, как я должен это говно читать? >performance.now() ты никогда не пробовал сперва просто копирнуть что-то неизвестное в гугл? один из стандартных методов браузера >var result = f.apply(this, arguments); // (*) вызвать переданную функцию и сохранить результат в резалт. на всякий случай вызывают через apply чтобы не проебать контекст >if (!timers[timer]) timers[timer] = 0; если в объекте timers нет нужного таймера- создать его и присвоить ноль
Анон, никогда не занимался фронтом, поэтому не суди строго. В общем захотелось по фану сделать самостоятельно UI для редактора и начать с дерева файлов (на самом деле не совсем файлов но не важно, суть та же), где можно их перетаскивать, вкладывать в директории и тп. И когда задумался, то понял что вообще не знаю, как начать. Вот я например построю дерево из div'ов (или это вообще не версткой, а рисованием делается?). Потом захочу перетаскивать элемент и для него должно будет подсвечиваться место вставки, элементы должны будут "расступаться", потом он должен плавно материализоваться на новом месте. Как такое вообще делается? Это дохуя сложно?
>>1062919 Как-как, жопой о косяк, еблан тупоголовый. Тебе дали список либ, которые выполняют задачи, которые ты описал в своём посте. Чекаешь демки, смотришь под капот либам, делаешь подобное. Ещё вопросы?
>>1062920 попустись, черт. нахуй ему нужен умл, когда ему нужна драгндроп либа? >>1062852 а ты гуглить научись, идешь сюда тыкаешь в примеры, подрубаешь и копируешь http://interactjs.io/
>>1062955 Зависит от того что ты хочешь получить. Можно, как уже сказали, просто хранить в localStorage. Если нужно, что пользователь мог открыть страницу с другого браузер/мобилы/планшета, то хранишь у себя на сервере в памяти/БД для текущего пользователя. Если нужно, чтоб пользователь мог ещё и скинуть ссылку кому-то (совместное редактирование), то хранишь также на бэкэнде по какому-то идентификатору, который незаметно добавишь к url.
Объясните нахуя все биндят в конструкторе класса вместо использования стрелочных функций? В прошлом треде я писал этот вопрос мне что то пукнули про "проблемы производительности". Когда должны проявиться "проблемы производительности"? У меня приложение на 100+ компонентов, никаких проблем нет.
Как можно в node.js элегантно добавить в класс проверку на наличие проперти? А-ля __index в lua. Юзкейс такой: есть примитивный логгер с уровнями (info, err, warn и т.д.), одна общая функция log(level, str, ...args). Хочу чтобы при вызове logger.err(str, ...args) он сам вызывал log('err', str, ...args).
Читал про прокси, но ему нужен уже готовый объект, а я это на прототип/класс навесить как-то бы хотело. Единственнвый выход это оборачивать всё в функцию и вызывать уже её, но без 'new', что немного с толку сбивает, а унаследовать от Proxy нельзя.
Гуру фронтенда подскажите. Есть всплывающее из края уведомление function showMessage() { $('#alert_box').animate({left: '0px'}, 500).delay(1000).animate({left: '-300px', opacity: '0.8'}, 500); setTimeout(function(){ $('#alert_box').remove(); }, 2000); } При вызове все нормально отрисовывает, но если на кнопку нажимать очень быстро то этот блок начинает дергаться, как сделать чтобы уведомление плавно исчезало накладываясь на предыдущее, а не удаляя его. Кнопка при этом может нажиматься очень быстро, это портит всю анимацию.
>>1063109 Очевидно, тебе нужно обращаться к окошку не по айди (я так понимаю, у тебя там где-то до вызова этой функции создаётся элемент alert_box? Ведь ты его удаляешь в конце), ведь их у тебя несколько.
Ребята, поясните, что такое getASTNode, не могу ничего вразумительного нагуглить. Разбираюсь с деструктуризацией объектов в es6. AST -- это, наверное, abstract syntactic tree
var {op, lhs, rhs} = getASTNode() // я блять хуй знает, что тут происходит
>>1063277 Так этой функции как таковой, насколько я понимаю, и не существует вовсе, это просто указатель на то, что справа должен быть объект какой-то. https://repl.it/LNOS/1
Есть возможность сначала выучить JS, а потом html и css? Хочу в идеале в бек на ноде вкатиться, но пугает что надо реально много знать в html и css (фреймворки, адаптивная верстка, кроссбраузерная, кроссплатформенная и т.д)? Как бы не проблема выучить все это, просто кодить мне нравится, а верстка отбивает все желание сидеть за компом и писать что-то.
>>1063289 Не оттягивай неизбежное. Когда ты окунёшься в удивительный мир программирования, ты уже не сможешь найти для себя времени и мотивации, чтоб разобраться с этой декларативной дрыснёй и её закидонами. Это займёт не больше месяца. Зато потом у тебя не будет проблем, как у неквалифицированного говна, у которых CSS плохо и непонятно работает, а они смешные кружечки делают, типа это им поможет. Ентри-лвл, сгоришь на рубинчиках — проиграешь: https://htmlacademy.ru/courses Менее спинномозговой, больше дисциплины и любознательности требует: https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web
>>1063321 Что значит до какого уровня. Выбери минимум 15 шаблонов РАЗНОЙ направленности и пока их не сверстаешь, не суйся во фронты. Ещё раз разной блядь, а не 15 барбершопов лендингом.
>>1063321 К сожалению, нет уровней. Ты пока ещё даже писать не умеешь, спинномозговая ХТМЛАкадемия поможет тебе втянуться. Просто начни делать что-то и не пытайся торговаться, экономить на спичках. Второй гайд от Мозиллы как раз заканчивается Нодой. К тому моменту, когда ты всё предшествующее осилишь, тебе уже не нужны будут наши советы. Но будет это не так скоро, как тебе бы хотелось.
>>1063339 > Трех верстальных проектов должно хватить с головой Что-то проиграл, с 3 проектов он научится только выравнивать див по центру и выставлять фонты. Хороший уровень который позволит более менее свободно верстать именно 15-20 макетов. А 3 макета - это уровень школьника 7 класса средней школы.
Вакансии фронтендеров и фуллстаков лучше обходить за версту, а на все вопросы про вёрстку говорить "не умею, не делаю и не буду". Потому что если один раз ступишь в это болото даже ради лёгких и быстрых денег, то потом пропьёшь время и уже не захочешь идти в бэк на более низкую зарплату. Я уже год по уши в верстке, об меня каждый тестер и дизайнер ноги вытирает.
>>1063349 А я внаглую вёрстку делаю через жопу и долго, постоянно отправляют на доработку, а мне и похуй. Потому что пошли нахуй, если жмутся нанять отдельную макаку, меня не предупреждали, что придётся в это говно окунаться.
Привет ковырятелям жабаскрипта и зоопарка вокруг. Поясните по хардкору про связку Vue.js, TypeScript и webpack. Всё это мне нужно прикрутить к .net mvc 5 проекту. Вроде все основные фичи я понял: качаем вуй, тайпскрипт и вебпак через нпм, потом качаем всякие тс-лоадеры, вуй-декораторы и прочее гонвно, прописваем зависимости и вроде можно работать. Но тут у меня ломается мозг, так как проект подразумевает кучу отдельных страниц, на каждую нужен свой скрипт. А вебпак по умолчанию всё будет собирать в один гигантский бандл.жс. Мне теперь что, для каждового скрипта прописывать ентри и оутпут поинты ручками? Всё примерны в интернете такой связки рассчитаны на пару исходных скриптов, один выходной и одну вьюху. Но мне не нужен чёртов спа. Короче, помогите понять, где я объёбываюсь. Мб в моём случае можно вообще без вебпака обойтись, одним строенным в вижуал студию компилятором тайпскрипта?
>>1063651 Ответ конечно охуенный, но как ты себе это представляешь? У меня один build.js, в котором лежат все скрипты, стили и прочая поебень, всё это весит несколько мегов и я это подключай ко всем старницам? Какая то хрень как по мне.
Ребзя, изучил за последние 3 мес такой стек: Django (REST), Vue.js, webpack, npm, git. Сделал SPA приложение (vue, routing, router), которое подтягивает данные (json) с джанги, с авторизацией по токену (уже все висит на vds и работает). Вопрос: я уже могу идти в фриланс? Неспешно ищу подработки в таком стеке.
Как сделать чтобы Hot Module Reloading перезагружал корневой скрипт?
У меня куча скриптов, и они подключаются по одному в зависимости от передаваемого параметра в командной строке. В каждый скрипт вставлять hot.module или что? Как сделать чтобы перезагружалоь без вставки?
вобщем мальчишки смотрите, надо стобы в докименте отобразились данные из ./countries.json, как делать то? надо сервер ставить или че??? я пока нуб, помогай прогаммач>>1063796 >>1063804 >>1063895 >>1063655
А чем принципиально отличаются геттеры и сеттеры? Выглядит так, что они оба существуют лишь что бы вместо obj.method() писать obj.method. Зачем они на самом деле?
>>1064247 Меня интересует чисто техническая сторона вопроса. Я понял, что они расширяют возможности свойств. Но разница между гет/сет в чем? Единственное отличие я заметил в том, что например на лернджаваскрипт код
var user = { firstName: "Вася", surname: "Петров",
Какого чёрта нода ругается на unhandled promise rejection, если я ещё просто не успел его обработать? Пытаюсь сначала набрать кучу говна промисов в массив, а затем в следующем лупе уже ожидать завершение. Вполне логичное же применение, не?
Вот в таком коде: https://repl.it/LXR1/1 если await'ы вызываются в том же порядке, что и заканчиваются промисы, то всё ок. Если же нет, то нода ругается (на сайте почему-то нет, недостаточно новая версися, видимо, ещё не задепрекейтили) — https://pastebin.com/sv0Pqisd . .then и .catch не предлагать, пожалуйста, нахуй оно надо с божественными async/await.
>>1064343 await висит на proms[0] 3 секунды. В этом время setTimeout реджектит свой промиз, который никто не ждет (потому что await висит на proms[0]). А раз его никто не ждет он взрывается.
>>1064391 Да я понял, почему оно так. Зачем оно так? Неужели нельзя было дожидаться хотя бы конца жизни скоупа, где промис создан был, перед объявлением его Unhandled'ом?.. Ведь try{await} спокойно ловит ошибку и после собственно реджекта внутри промиса.
>>1064399 Спасибо, .catch мне нахуй не нужен, потому что это никакая не починка: внутри лупа-то я как узнаю, что у меня там что-то отклонено было? await промиса с catch'ем уже никаких ошибок не выдаёт. https://repl.it/LXR1/4 Мне ж не просто строку текста при реджекте написать надо, в конце концов.
>>1064472 Справедливости ради, из .catch'а ж можно-таки вернуть err и он получен в val = await proms будет. Но мне нужно затем как-то образом тогда самому определять, успеный у меня там результат или не очень (val.prototype === Error?).
>>1064497 Два чаю. Потом еще JS прогеров за говнокодеров держат. Ему интерпретатор прямым текстом говорит - необработанный режект, он, блядь, опять за свое. Все await'ы оборачивай в try/catch долбоебина.
>>1064497 >Затем что в общем случае хуй его знает что ты там намудрил. Создал несколько промисов, теперь жду их завершения. Это что, какая-то прям какая-то охуенно нестандартная задача, что ли? Promise.all даже для этого делали. А с await'ом появилась возможность не через миллиард коллбеков всё делать, а линейно в коде. Вот только не совсем, как оказалось.
>>1064502 > Ему интерпретатор прямым текстом говорит - необработанный режект, он, блядь, опять за свое. Так я его с удовольствием обработаю, только дай ты возможность коду до этого места добраться.
>Все await'ы оборачивай в try/catch долбоебина. Ещё раз, обёрнуто всё. Ты код вообще открывал?
>>1064570 Так ты не оригинальный код запускаешь же, лол,а мои объяснения, почему "исправления" другого анона (>>1064399) не очень полезны. Там даже написано, что в лупе я никакой ошибки поймано не было.
Вот тут https://repl.it/LXR1/1 и https://repl.it/LXR1/4 всё обёрнуто. В первом случае try/catch ни на что не влияет, потому что нода ругается до того, как позволяет меня await'нуть нужный промис, а во втором уже похуй, потому что другой листенер повешен и catch ничего не ловит.
>>1064571 Так я не против, может и правда хуйню, но вы объясните тогда, пожалуйста, как красиво и правильно это делают современные люди. С сахарком, без коллбеков. Вот юзкейс примерно такой: https://repl.it/LZkJ/2на деле я буду удалять на 404, а не "не добавлять", но не суть.
>>1064581 >Так ты не оригинальный код запускаешь же Я не пойму, что тебе в итоге нужно-то ? Я внес в твой оригинальный код пару исправлений, теперь он работает в последней ноде без предупреждений о не пойманных режектах, без дебильных промис-катчей, перехватывая все в блоках try/catch функций. Я wait, если ты обратил внимание, в отличие от оригинального кода не запускаю сразу в for лупе. Все равно не так да не эдак.
>>1064582 >Опиши задачу словами. Что дано и что надо получить. Так код же, вроде, и так яснее всего описывает. Если развёрнутее, то вот: есть следилка за избранными пользователями на перископе, соответственно периодически проверяет на наличие новых стримов и качает/конвертит их, если есть. Выходит так, что некоторые (многие :3) каналы частенько удаляются, в таком случае я при попытке получения страницы пользователя ловлю эту пресловутую 404 и удаляю имя пользователя из базы, забывая о нём навсегда.
>>1064587 >Я не пойму, что тебе в итоге нужно-то ? Я хочу обрабатывать результат промиса в том же контексте. чтобы после строки с await у меня был результат промиса, и при этом я достоверно знал, зарезолвлен он был или реджектнут, не полагаясь на косвенные признаки, вроде типа возвращённой переменной. Возможно я тут туплю и о чём-то забываю.
>Я wait, если ты обратил внимание, в отличие от оригинального кода не запускаю сразу в for лупе. Нет, не обратил, но и не очень понимаю, о чём ты. Всё там запускается же, даже если весь остальной код удалить.
>>1064584 А вам зачем? Не разработчик на ноде точно, лишь хобби.
>>1064343 Попробую объяснить как мне все видится. Если что не так, можете обоссать. Это, так сказать, расширенная версия ответа анона >>1064391.
tl; dr - промисы запускаются сразу
Все проблемы из-за того, что ты не знаешь/не понимаешь, что промисы запускаются сразу, а не ждут когда ты соизволишь присобачить к ним колбеки или заюзать await. К тому моменту когда ты добираешься до второго цикла (точнее до первого await в нем), твои промисы уже, что называется, "in progress" и когда делаешь await proms, остальные промисы в списке не ждут когда до них тоже доберется очередь для обработки (они то уже запущены и любой из них может завершится раньше чем тот промис, который ты await-ишь на данный момент), и если какой-то из них резолвится/режектится, то его получается тупо нечем обработать, поскольку колбеков у них нет, а await занят/блочен другим промисом. Await последовательный это надо запомнить. Максимально упрощу твой пример:
// на месте Promise.resolve может быть любая хуйня, это не важно await Promise.resolve(1); await Promise.resolve(2);
Тут await вызовет Promise.resolve(1), дожидается его результата, и только потом запустит второй и дождется уже его результата.
Оба промиса уже запущены и await в этом случае ведет себя скорее как Promise.all. Видишь где проблема? Пока ты await-ишь один промис, другой режектится раньше него, без последующей обработки, отсюда и unhandledrejection
>если await'ы вызываются в том же порядке, что и заканчиваются промисы, то всё ок. Если же нет, то нода ругается И правильно. Во втором случае у тебя промис, который режектится должен закончиться через ~2 секунды, в то время пока ты await-ишь промис, который должен закончиться через ~3 секунды (напоминаю, что await последователен). Две секунды проходят, промис завершается, а обработать его не кому. Это все опять же из-за того, что промисы запускаются сразу же как ты их создаешь.
>>1064532 >Создал несколько промисов, теперь жду их завершения. А в чем проблема создавать их прямо в await-e если хочешь чтобы промисы завершались по порядку, один за другим?
>>1064587 >без дебильных промис-катчей, перехватывая все в блоках try/catch функций. Вот тут я не понял. Ты считаешь try/catch дебильными или же New Promise().catch()? Мне как араз try/catch с await'ом и хочется, няшно жи.
>>1064592 Да нет, я это всё понимаю, я, так сказать, не согласен с реализацией, что ли. Вот ты говоришь: >другой режектится раньше него, без последующей обработки последующая же есть.
То есть, мне не понятно, почему resolve может спокойно молча дожидаться, пока его кто-то не заawait'ит, а reject — нет. Что за дискриминация такая? А вдруг в скором времени и unhandled resolve введух, может тогда и это вылезет?
>А в чем проблема создавать их прямо в await-e если хочешь чтобы промисы завершались по порядку, один за другим? Я тогда на питоне синхронные запросы писать пойду, лол. >Или использовать Promise.all c await-ом если надо чтоб все сразу? А он ту же проблему имеет, что и мой вариант с массивом. Полагаю, внутри там точно то же всё и делается же, лол.
Может, есть способ каким-то образом обабатывать промисы именно в порядке их завершения? Мне ж на их порядок плевать.
>>1064601 >почему resolve может спокойно молча дожидаться, пока его кто-то не заawait'ит, а reject — нет. Точнее, почему reject так рано сообщает о необработке. Ведь промис ещё жив, мусорщик его никуда не выкидывал, контекск функции в самом разгаре. Вот отодвинуть бы хотя бы это предупреждения до конца функции и всё, я был бы счастлив.
В общем, я всё понял, я хочу того, чего нельзя, всем спасибо ответы на мои доёбы.
Дядьки, как правильно вкатиться в React/Vue? Чето второй день читаю оф документацию, нихуя не понимаю пока что это и зачем. Сленга блять как в мморпг. Так-то на жс пишу, колбеки промисы знаю
>>1064692 я смотрел видео на ютюбчике по вью, потом офдоки почитал, параллельно мини проектик делаю. Промисы и колбэки после этого уже начал понимать, тк даже на жс не писал до этого. На питухоне кодил как хобби
>>1064748 Через жсон апи получаю массив объектов, вывожу их через v-for, но там у каждого объекта есть вложенный массив, вот его тоже надо вывести во вьюхе.
Падскажыти начинающему довену. Как по-красивее сделать из выделенных красном зон отдельные одномерные массивы. Т.е. первый массив будет таким : [ 1, 2, 3, 10, 11, 12, 19, 20, 21 ] второй : [ 4, 5, 6, 13, 14, 15, 22, 23, 24 ]
Создал webpack проект с vue-cli. Установил зависимости. Запускаю npm run dev, жду 5 минут и выключаю нахуй. Пробовал отключить eslint loader. Как узнать, чем эта поскуда замедляется? Там дохрена dev dependencies.
>>1064772 пиздабол //setTimeout( func.call(this), 3000 ) // в таком варианте func получает в this обьект obj и выводит red, но таймаута никакого нет само собой.
this у тебя это window, с какого хуя там должно быть red? и нахуй вызывать функцию, когда надо setTimeout(callback, delay[, ...args])
>>1064792 >> и проёбываешь контекст чуть более чем
Вся суть комюнити,лол,сообщат что ты нихуя не знаешь, и накидают своих решений. Хотя я не просил сделать за меня. Я не просил других вариантов. Я просто хочу понять почему в конкретно моем примере проебывается this. И просил это объяснить.
Есть директория /site/ в которой лежат 3 папки - html, script, text. Думаю понятно что в каждой из них лежит. Так вот, ajax срабатывает лишь в том случае, если text.txt лежит в папке html, рядом с index.html Мне надо сделать так, что бы скрипт брал text.txt из папки text. Но, как бы я не прописывал путь, он не работает. Пробовал и абсолютный и относительный путь. Нихуя не работает. Помогайте, Аноны.
Это нормально, что меня тошнит от ванильного жс? Не понимаю зачем его учить, если можно клепать приложения на реакте ( не очень увлечен программированием, но деньги зарабатывать нужно).
что пишет сеть в консоли бровзера? открой её клавишей ф12 посмотри куда уходит твой хттп запрос, явно же на / а нужно как я понял на /site/text.txt вот и пропиши ручками в ajax этот путь
>>1064784 Абсолютно непонятно, нажалась ли кнопка, загружается ли что-то, вообще нихуя. Оно даже не до конца работает: изменение города после отображения результато не позволяет получить новые данные. Про два "загружаю" выше уже сказали. Лучше подожди, пока и время, и погода будет, и всё сразу отобрази.
Отменяй дублирующие нажатия кнопки "готово", если текст запроса не изменился, а ответа ещё не было. (Ну или какое-нибдуь ограничение по времени хотя бы.)
>>1064799 >Я просто хочу понять почему в конкретно моем примере проебывается this. Значение this определяется в момент вызова. В твоём случае, функцию переданную в setTimeout, грубо говоря, вызвает уже не объект j, а глобальный контекст, он же window. Вот как-то так: https://repl.it/L2jU/1 (знающие спеку люди можете смело кидать говном и поправлять, если я не прав).
>>1064899 Всё вышесказанное, однако, применимо лишь если функция не была явно к чему-то забиндена. https://repl.it/L2sv (AnotherColour делает, в принципе, то же, что и Colour, просто развёрнутее, а не в php стиле.)
>>1064937 ajax, если чо, делает запрос на сервер (или хуй знает куда, если ты хтмл локально открываешь). К диску у браузера доступа нет. И уж тем более ajax-ом ты их хуй откроешь.
Так вот, >ajax срабатывает лишь в том случае, если text.txt лежит в папке html Потому что адрес в ajax-запросе, это не конкретный путь к файлу (и уж тем более /home/user/ там использовать нельзя), это путь, который сервер должен обработать. Он тебе на site.com/kotik.jpg может выдать хоть порно, хоть ~/.ssh/authorized_keys.
Хуй знает, что у тебя за сервер и есть ли он вообще, так что опиши задачу ещё, принимая во внимание вышесказанное.
>>1064976 Хм, а ты про спрашивающего или ответившего? Потому что эти бесконечные выбиральщики курсов, но так никогда к делу и не переходящие, и правда как дети...
Скажите, а когда мы делаем свойство объекта через set property = function(argument){blablabla}, аргумент blablabla всегда равен тому, что мы присвоим этому свойству объекта потом, типа
object.property = 123; //123 будет нашим blablabla, так и задумано? blablabla для этого и создан в языке?
>>1065160 > map/filter/reduce? C этими методами неудобно например обойти все элементы массива, кроме двух последних, либо начать обход с третьего элемента. Простой for будет гораздо понятней. Вы если такие функциональщики дохуя, то возьмите нормальный функциональный язык с типами и изучите его, толку больше будет.
>>1065175 А если нужно индексы использовать в цикле? Я как-то видел код вроде range(3, 8).map((el, i) => ...) и мне кажется это усложнением, когда есть простой for
>>1065177 Цикл это низкоуровневая структура, которая имеет слишком широкий диапазон функциональности. Таким образом использование высокоуровневых функций типа map filter take(slice) или range лучше показывает твои намерения.
Конечно, если ты хочешь побайтоебить с индексами, юзай цикл, никаких проблем.
>>1065180 Для map/reduce/filter давно уже лодаш не нужен. Единственное, что меня смущает в этом подходе - отсутствие ленивости. Слишком длинная цепочка из этих функций не повлияет ли на производительность?
>>1065182 Ленивость это палка о двух концах. Количество проблем которые она создает не меньше, чем решает. Конечно если ты будешь в 33 прохода мапить это ударит по производительности.
вот смари, задача. есть массив чисел, каждое из них нужно заменить либо на ближайшее число слева, меньше этого, либо -1 если такого нет. пример инпут: [3, 5, 2, 4, 5], аутпут: [-1, 3, -1, 2, 4]. как чотко это делается мапающими методами f=a=>a.map((v,i)=>a.slice(0,i).reverse().find(j=>j<v)||-1) перепиши на форах и загрусти
>>1065177 блять нихуя ты животное ебаное! тебе нужно из массива людей сделать массив их возрастов, но ты блядина будешь ебаться с for. потом нормальный программист придет и скажет "что это за блядина писала? нахуй с нуля переделать все"
var enimals = [{age: 13 /обычно столько лет животным, которые думают что немножко функциональщины пиздец как сложно/}]; var ages = enimals.map(function(enimal) { return enimal.age; });
теперь блядина приводи пример как бы ты написал это "просто"
>>1065185 Я не призываю отказываться от map/filter/reduce. У меня была ситуация, когда slice использовать было нецелесообразно, так как он создаёт новый массив, а мне нужно было работать с пикселями на мобилках. Пикселей как правило несколько миллионов.
>>1065188 Научись общаться нормально, пост твой не дочитал.
>>1065193 > i < enimals.length - 1 сука долбоеб ты последний элемент пропустил. должно быть либо i <= e либо без -1 что в очередной раз доказывает мне что ты ебучее животное без мозгов "сложно" ему блять
>>1065200 Хули ты агрессивный такой? Пиздуй выплёскивать свою злость в другом месте, мы тут обсуждаем как лучше, а не пытаемся оскорбить собеседника как можно сильнее.
>>1065202 так тут если долбоеб пишет что ему forEach сложнее чем for! ебануться!
вот я делал простую демку когда мне это было интересно. сердечки там не принципиальны, просто под руку попалась подходящая картинка. там используются циклы, где это надо. а когда мне просто нужно перечислить массив, я просто прохожу по массиву через forEach, потому что это просто.
>>1065192 Любая работа с хэш-таблицами с необходимость раннего выхода из цикла. Обычный break/continue часто проще воспринимается чем вязанка filter+map+reduce
>>1065206 >раннего выхода из цикла. Обычный break/continue часто проще воспринимается чем вязанка filter+map+reduce для этих целей есть every/some/find/findIndex
>https://twitter.com/izs/status/911105515798720513 >сео нпм агрессивно настроен против белых натуралов, хочет на джсконф только нигров и баб как лучше взаимодействовать с подобными субъектами в рамках рабочего процесса? как вы решали конфликты с подобными у себя в компании? пиздили или просто обоссывали?
>>1065230 Если быть точным он хочет разнообразить сосисочную тусу белых докладчиков ниграми и бабами для "покрытия большей выборки аудитории". Вероятно он по выемкам в черепе оценивает способности кодеров.
>>1065240 Нет, мне похуям. Как по мне, заявки надо вообще анонимно принимать, чтобы оценка о приеме докладчика зависила от качества доклада, а не от размера и цвета клитора.
>https://code.facebook.com/posts/300798627056246 а тем временем фейсбук переводит реакт джест флоу и имутабл.жс на MIT лицензию. больше без хитрожопой бсд-лицензии с патентамитеперь вуй соснет окончательно.
>>1065185 а если я указываю инпут массив [3,5,2,6,4,5], то твой пример работает некорректно и выводит [-1, 3, -1, 2, 2, 4] хотя вместо "2" должно быть -1. Походу ты проебался с .find()
Алсо, ты там создаёшь ну просто дохуищща массивов, в итоге от 100 элементов выполняется по крайней мере в 20 раз медленнее. (А дальше всё только хуже, и обработка одного массива один раз в 100к элементов выливается в минуту против секунды.) В for'е, я уверен, можно ещё как-то поиграться и уменьшить количество элементов во временном, сократив время выполнения ещё больше.
С for'ом, конечно, будет не так красиво, но твой код обзательно нужно будет комментарием дополнить, чтобы понять, в чём смысл задачи вообще заключался, хоть отдельные шаги и ясны. Сначала хотел сказать, что хуй проссышь, что там делается, потом минутку подумал и понял, что всё вообще-то легко и очевидно. А с фор'ом, фактически, дословно твой текст задачи и написан, кстати: "Для каждого элемента массива, находим первое число, меньшее этому из предыдущих, а если нет — -1."
>>1065208 У меня есть массив с говном. Мне нужно жрать говно до тех пор, пока не съем говно носорога. Как это сделать с вашими функциями? Опять arr.findIndex().slice().forEach() с созданием отдельного массива? (Если нет, то напишите.) По-моему, >for (let govno of kuchaGovna) { > eat(govno.myakotka); > if (govno.source === rhino) { break } >} Достаточно лаконично.
>>1065285 Нигде там про "сравнение двух чисел" не говорилось: >на ближайшее число слева, меньше этого Что вполне понятно как обход массва в обратном направлении, а не "сравнить с ближайшим левым".
Алсо, лично моя проблема со всеми этими функциональными штучками это потеря this (т.е. необходимость писать self = this и чувствовать себя питонистом). Кого-то ещё это парить или я один такой странный?
>>1065230 Пришёл бы он сюда или хоть куда на форум, можно было бы и поспорить, а на твиттере только лозунгами и кидаться, ведь в 140 ни один аргумент толком не сформулируешь. Он, кажется, вообще не в курсе, как рабоатет статистика/вероятности. >if all of the proposals come from white men, then you've ALREADY ruled out 70% of the best talks. Какая ж долбоёбина, блядь, я хуею.
>>1065372 Это немного глупо, да. Есть уже this. В питоне self явно указывается лишь при объявлении функции, а при вызове сам добавляется (за счёт чего можно делать бесполезную дрянь типа https://repl.it/L57k ). Тебе же приходится самому всюду self этот пихать, не? Терзают меня сомнения, что ты в питоне правильно этим self'ом пользуешься.
>>1065377 Всмысле выглядит как питонячий код, когда селф передаю. А в чем большая проблема передать контекст именно в функции? Это же то же самое, что и call()?
>>1061439 (OP) Братики, когда-то на хабре была статья о том, как всякие пиздатые тесты провести перед деплоем приложения. Там были и тесты производительности и тесты на ошибки и на много чего, не осталось ни у кого этой статьи или мб чего-то подобного?
>>1065480 Внезапно, программистов нанимают для того, чтобы они писали код. На галерах, где большой поток проектов, код пишут и по 12 часов в день, перед работой, на работе и после работы. В больших компаниях больше времени уделяется архитектуре, хорошим решением, так что там написание кода разбавляется корпоративной суетой.
>>1065490 Есть. Но ты видимо вкатывальщик так что тебе для начала основы языка бы выучить. Статей конкретных нет, так как нужно знать самому какая архитектура тебе нужна под конретную задачу. Это может быть какой-то MVC монолит, а могут быть микросервисы, а могут быть лямбда функции, и каждая архитектура проявит себя лучше всего в определённых проектах. Тебе до осознания этих вещей ещё очень далеко. И в любом случае, чтобы попасть в хорошую компанию, тебе нужно отработать пару годиков на галере, чтобы получить опыт решения разнообразных задач.
>>1065500 поинтересовался о самой возможности найти ментора. Сейчас показать нечего. Вернее есть свой пет-проджект, но там лютый хардкод. В данный момент времени для мобилки делаю круд (phonegap+vuejs+framework7)
>>1065491 >. И в любом случае, чтобы попасть в хорошую компанию, тебе нужно отработать пару годиков на галере, чтобы получить опыт решения разнообразных задач. А это обязательно - так долго? Работаю полгода на мелкогалере, делаю круды и црм на втором ангуляре, иногда с свг какую-нибедь еболу. Планировал набрать год работы и уходить в хорошую компанию на позицию джуна-миддла.
Тема стара как мир, но все же. Проблема 0.1+0.2 !=0.3 Так вот, правильно я понимаю, что эта проблема касается только вычисляемых чисел? Но если я присвою любое число переменной, то оно в ней будет гарантировано хранится в таком же виде как было задано литералом?(исключая граничные случат очень больших и малых чисел) let x = 0.000000234; if( x === 0.000000234) =>true
Лолблять, нихуя. Ты только сам себя наёбываешь. "Ну это я как бы знаю, это вроде бы понятно, вот здесь я так же бы сделал, наверное". А потом пытаешься написать что-то подобное с нуля самостоятельно и терпишь фиаско.
>>1065475 Это все замануха на их платные курсы. Хотя справедливости ради у этой конторы они еще ничего по сравнению с некоторыми. Ну хочешь посмотри, но смысл? Текстовая инфа воспринимается быстрее чем видео. За то время что ты будешь тупить в ютуб ты бы половину всей доки по реакту прочитал. А дальше ты не повторяешь как попугай, а сам ставишь задачу, прям берешь и пишешь сам себе тех задание - "вот тут должна быть кнопка, она должна уметь вот это" и решаешь ее. Я лично видео туториалы смотрел во время жратвы только.
>>1065609 >сти ради у этой конторы они еще ничего по сравнению с некоторыми. >Ну хочешь посмотри, но смысл? Текстовая инфа воспринимается быстрее чем видео. За то время что ты будешь тупить в ютуб ты бы половину всей доки по реакту прочитал. А дальше ты не повторяешь как попугай, а сам ставишь задачу, прям берешь и пишешь сам себе тех задание - "вот тут должна быть кноп
Вот это двачую. Лучше всего учишься, когда сам себе ставишь задачу, а не как попугай повторяешь за лектором.
Начни с какой-нибудь примитивной херни. Например, запили часы на реакте. Потом добавляй разные фичи. Переключатель часовых поясов, таймер, секундомер и т.п.
Вставляем в свой app.js или где там у вас основной код "new EvalControl(process.stdin)" и радуемся интерактивной консольке с историей, поиском и прыжкам к началу следующего/предыдущего слова во время ввода текста (alt+стрелки). Как вариант, можно засабклассить Control и сделать свои команды, разумеется.
пилю для развития борду на ноде, на данный момент из дб запрашиваются сначала тредики /линия 325/, потом к этим тредикам запрашиваются 3 последних ответа /начиная с линии 357/, у меня есть ахуенные подозрения, что это неправильный подход, так как нет гарантии, что ДБ в цикле на 363 линии будет всегда отвечать сразу, что означает блокировку кода.
как решить эту задачу на ноде? я пробовал пилить хитрые запросы непосредственно в ДБ, но SQL не может возвратить в одном запросе в сабквери больше одного поля, т.е я могу получить например только айди ответов, но не весь "объект" post, пример:
>(SELECT GROUP_CONCAT(id SEPARATOR '¸') FROM posts as p_a WHERE p_a.parent_id = post.id) as post_answers
инб4, я мог бы место for использовать map, но я не хочу плодить лишние массивы, так как это backend, и все ресурсы ограничены.
>>1065782 Как вариант впихни в таблицу с тредами нужную инфу о трех последних постах и обновляй её при постинге. Это наиболее производительный вариант.
у меня треды и посты в одной таблице, треды там маркируются статусом -1, если там число, то это значит, что пост принадлежит к треду /= ответ/, иначе это ОП-пост /пик 1/. ок, можно добавить какое-то поле, и обновлять его у 4х постов при ответе в тредик /первый это ОП-пост + 3 последних ответа/...
там, если что, всё обернуто в промисы /пик 2/. мне тру не до конца понятна асинхронность ноды, вроде же если что-то обернуто в промис, оно отсылается в microtask queue /пик 3/, если это так, то по суте нет разницы, приложение будет работать дальше, не дожидаясь ответа из дб?
с ними ничего не меняется таки, в джойне нельзя сделать лимит, он будет тупо возвращать все строки, где совпадают ключи. имхо твоя первая идея самая перспективная в этом плане
>>1065782 >это backend, и все ресурсы ограничены А на frontend'е они типа неограничены, что ли? Хуёввенько, мне кажется, если такой подход у создателей.
>>1065806 >если это так, то по суте нет разницы, приложение будет работать дальше, не дожидаясь ответа из дб? Да, await передаёт управление дальше и программа твоя не блокируется, а занимается другими делами. Когда будет ответ из бд (и эвентлуп доберётся до этого промиса), тогда и продолжится выполнение с 363-ей строки. Если ты под >что означает блокировку кода. подразумевал что твой сервер просто встанет и будет ждать ответа от ноды, то ты ошибался, да.
Я вообще не особый спец по бэкэндычу (хотя в своё время на Django + MySQL делал штуки, так что представление имею), да и вопрос не в тему, конечно, но... вообще зачем париться с SQL-БДшками, когда есть noSQL, та же Mongo?
Преимущества в виде производительности? Более высокая отказоустойчивость?
Хз, я вот с SQL, помню, повозился изрядно, как и с чистым, так и с ORM, и как-то вот возвращаться не хочется, когда есть "key: value" подход.
Что бы такого запилить на реакте в качестве первого приложения, чтобы еще не пришлось апи самому писать? Отсутствие идей останавливает от освоения реакта.
Существование Vue.js должно останавливать тебя от освоения React.js, хех.
А по делу - есть кучка публичных API, которые можно тыкать без какого-бы там ни было токена, и которые, следовательно, подходят для frontend-only приложухи. То же GitHub API, например (оно еще и CORS-enabled, так что с JSONP запариваться не надо даже).
>>1065829 Когда ты знаешь конкретно что тебе нужно - можно выбирать NoSQL решения, если они в данных конкретных случаях подходят. Во всех остальных случаях нужно брать строго SQL, иначе будет эпический обосрамс, когда потребуется реляционщина, а не просто документарность или ключ-значение.
NoSQL это специализированные решения, подходящие для конретных задач. В них они справляются лучше реляционщиные, но только в них.
>>1065854 Сугубо личное предпочтение, на самом деле, но в случае с React'ом я дальше Getting Started'а не смог пройти, настолько всё уёбищно показалось. С Vue.js же всё зашло на ура, теперь тащусь от Single File Components и отсутствия всякой мути типа JSX.
норм. если с промисами всё работает так ахуенно, то по суте получается, что нода хитро реализует параллельные задачи всего на одном потоке. если я правильно понял суть, когда ты что-то оборачиваешь в промис, оно уходит в microtask queue и там вычисляется независимо пруфы/инфа? для решения конкретно моей задачи, я воспользуюсь советом этого Антона >>1065783допилю в таблицу поле show_on_bp /bp = board_page/ @ профит
не охота ебаться с map/reduce, пикрелейт. да и монгодб в случаях, где нужно сделать что-то сложнее хелло-ворда не разу не быстрее мускуля. она норм для больших данных, где нужна горизонтальная масштабируемость и будущие поля объектов не известны, для всего другого она плохо подходит
>>1065782 Используй оконную функцию с row_id и джойни треды с постами - будет один запрос всего, но потребуется или ORM, или написать маппер, который одинаковые THREAD.* колонки будет схлопывать в один объект.
Блять как вы это задрочили, ебучая канторовская кофеварка с этим ООП, постоянно контекст куда то проебывается, гетеры сетеры залупа this=self из замыкания што ты несеш блять
Задание: Создать массив и добавить в него все нечётные числа от 50 до 150. https://jsfiddle.net/m1km4hxd/ При попытке запуска зависает, консоль не могу открыть. В чем проблема?
>>1065967 Переделал с циклом for. Правильно понимаю, что в while нельзя использовать continue? Как можно было бы решить данную задачу в более-менее общем виде с while?
Поясните за реакт с флаксом (редакс, например). Насколько нормально иметь контейнер с компонентами 3-4 уровнями вложенности и при любом изменении стора ререндерить всех детей?
Знаю что можно дописывать shouldUpdate и прочие хуки, но насколько это все быстро и правильно работает из коробки и будучи написано максимально плоско и просто?
они норм для анализа, мб когда-то пригодятся, для моей задачки они вроде не подходят
>маппер, который одинаковые THREAD.* колонки будет схлопывать в один объект
я пробовал конкатить колонки из сабквери функцией JSON_ARRAY, все работает как надо, пока там лимит 1, а там таки нужен лимит 3, мускуль пишет в этом случае, что сабквери вернула больше одной строки.
похоже это никак не решить одним sql запросом, без парсига ответа в жс коде и новым запросом
Может тут помогут. В сети гуляет книга Ильи Кантора, есть у кого, заходил ребятам во фронтенд - у них ссыли протухли и торрент уже удален, а очень-очень надо
затестил сейчас, не взлетает идея с полем о трех последних постах, так как в таком случае мы получаем все записи из бд, которые будут отсортированы по их айди, затем ещё с помощью ЖС всё это нужно будет отсортировать по updatedAt, не забыв при этом отделить ОП-посты от ответов, поместив ответы в отдельный массив к каждому тредику. в таком случае ЖС будет заниматься эпичной рабой.
>>1066404 в функцию >this.setState передать объект со свойством >likesIncreasing значение которого определяется логическим выражением >nextProps.likeCount > this.props.likeCount то есть туда попадет тру или фолс в зависимости от того больше или меньше лойсов там или хер пойми чего
В ней 2 редактора, один визуальный, другой с рав текстом так сказать.
Теперь мне вот что нужно делать, сохранять из редактора текст.
Как это делать из каждого редактора в отдельности мне понятно. Но вот как добиться консистентности, ведь, их содержимое, не сходится (/br) опускаются в текстовом редакторе.
Мне интересно, там есть где-то какой-то хитрый объект хранящий текст для обоих вариантов, или они тупо синхронизируются при переключении(копируют один из другого)?
Посоны, TypeScript или Flow? Какие у них преимущества/недостатки?
Алсо, не понял одну хуйню из этой статьи https://habrahabr.ru/company/ruvds/blog/323612/ >Через некоторое время мы пришли к двум вариантам — TypeScript и Flow. Оба обещали дать нам статические типы для улучшения контроля над кодом, но одного этого было недостаточно. Мы хотели использовать всю мощь ES6 и будущих версий языка. Flow, по сути, это статический анализатор кода, что означает, что нам пришлось бы использовать транспилятор для всего нашего ES6-кода, но применяя TypeScript, который является надстройкой над JavaScript, мы получили бы и статические типы, и поддержку большинства последних возможностей ECMAScript. Не понял как у них различается поддержка новых фич ES. Вроде бы наоборот, новые фичи легче поддерживать Flow, т.к. он только типы анализирует (транспайлерит Bable, просто удаляя Flow-код). А TypeScript и типы проверяет и в JS транспайлерит.
Задача: вывести 200 кругов разных цветов размерами от 50 до 150 пикселей. Проблема: круги отображаются не друг под другом, а друг на друге. В коде страницы показано, что див записывается внутрь дива. В чем ошибка?
>>1066574 Во-первых, выкинь к хуям курс, который учит создавать элементы плейн текстом и потом добавлять их через document.write. Во-вторых, >В коде страницы показано, что див записывается внутрь дива. Ну а ты удали style="<...>;" из своего примера, оставив чистый div, и посмотри, чему равно str, сразу всё ясно станет.
>>1066785 Вот полудурок-то блядь, тебе несколько человека обмалафили рожу, а ты визжишь, что это был один. Тебя полюбэ опустили, понимаешь ты это, джесодрянь?
Создаю элемент x = dоcument.createElement('div') Хочу поместить его в форму textarea Пишу dоcument.querySelector('textarea').value = x В ответ мне в поле textarea выводит [object HTMLSelectElement] А мне нужно чтобы было <div></div> Я понимаю с чем это связано, но не помню как решается
Это просто пример на 1 переменной, а так у меня в textarea будет вставлять html код сгенерированный циклом
Аноны, есть один div, в нём есть 2 input, если я хочу в него добавить span, я пишу appendChild, но это добавляет его в конец, а как сделать, чтобы он встал перед этими 2-мя input?
Есть <div class="block"> <input type="checkbox"> <input type="checkbox"> </div> Как вставить <span>Текст</span> перед этими input? appendChild добавляет его после этих input.
Там два редактора, один CKEditor, другой обычный textarea с руками приклеенными кнопками форматирования. Текст между ними синхронизируется при переключении табов.
Понятно(теперь) что к CKEditor доуступ из плагина простым способом не получить. Поэтому приходится ждать когда он создаст свои dom элементы, и вашать ивенты на них, там конкретно ифрейм.
И того, слушать и textarea и CKEditor.
Потом html из CKEditor немного пропарсивать, и готово. Пидарасы. Хоть бы кто ответил.
Пилю потихоньку свой говнокод, понадобилось скрывать и показывать блок в зависимости от того, правильно ли введен логин/пароль, а проверяю правильность я пыхой. Так вот, как по-человечески связать пыху и js? Единственное что я надумал это чтобы при клике на кнопку, после обработки логина, сервер посылал жсу результат проверки логина/пароля, а жс уже в зависимости от этого либо показывал блок либо нет. В общем подскажите как это правильно делают.
Игра. Есть игровое поле состоящее из клеток. Есть массив содержащий объекты существ, зданий, ресурсов, пустые пространства, на каждую клетку. Каждый кадр цикл проходит по массиву и обновляет его согласно совершенным действиям его объектов и отрисовывает на игровом поле. Правилен ли такой подход? Ведь если к примеру два существа будут в одном ходу поедать одно и тоже растение, то тот, кто будет находится раньше в массиве, тот и будет всегда есть. Как решить эту проблему?
>>1066911 Ну если ты передаёшь 1Гб json'ом, то ты немного ебанутый, я бы сказал, но вот, пожалуйста, никаких проблем с Content-Length'ами. Другое дело, что нода такие json'ы обрабатывать не может, а фф выдаёт allocation overflow.
>>1067105 нода может если ранить с правильными флагами, другое дело что долбаёбы её изначально не правильно готовят node --max-old-space-size=4096 dolbajobus.js
>>1067110 >нода может если ранить с правильными флагами Можно малой кровью обойтись (сиречь ограниченными ресурсами) и без анальных флагштоков, если юзать стримы для дампа запощенной хуйни и ее последующей сериализации. Другое дело, что для ньюби это совсем уж запредельный хардкор.
По работе нужно фронтэндом заняться. Сам ЖС вроде освоил, скажите книга Стояна Стефанова Паттерны ещё актуальна, или ES2015 решает большинство проблем?
Почему javascript такой уебанский, зачем столько магии и как в ней разобраться, почему все настолько сложно и не очевидно, почему эти цепочки возвратов тянутся по тысячам файлов, нахуя эти бабели, вебпацки и прочая хуета, которая друг в друга долбится интегрируется, как это все организовать и не поломать?! ПОЧЕМУ БЛЯДЬ НЕЛЬЗЯ ПРОСТО ВЗЯТЬ И НАЧАТЬ ПИСАТЬ ПРОЕКТ И ИМПОРТИРОВАТЬ ФАЙЛЫ, ПОЧЕМУ НУЖНО ТОННЫ ГОВНЯНЫХ БИБЛИОТЕК ПОСТАВИТЬ???
>>1067293 Да, блядь, оффициально двачую, для решения каждой мельчайшей задачи в жс надо подключать отдельную перделку, половина из которых забагована и давно заброшена авторами.
Почему хромопера не дает сохранять в локальное хранилище с оффлайновых страничек? Чем это лечить? Хочется написать приложение в виде странички html, которое может одинаково работать в онлайне и оффлайне в большинстве браузеров. Для удобной работы приложения нужно хранить настройки у клиента, а опера не дает это делать, если запустить приложение с диска, и даже блочит весь скрипт. В хроме не тестил, возможно у него та же проблема.
>>1067293 >ррря почему самолет такой уебанский, лампочек дохуя, столько магии и как вообще огромная железная хуйня взлетает в воздух? то ли дело лошадь! так че ты на сишке 98 не пишешь?
Ребят, поясните. Я UX/UI дизайнер, есть такая программа как framer ( https://framer.com/ ). Нужна она для создания интерактивных прототипов непосредственно кодом. Суть в том что она coffeescript компилирует в JS. Собственно вопрос, что есть coffeescript (я почитал но все же интересны подводные), трудно ли его учить, нужны ли знания js-a для его изучения (если нужны, сразу нахуй фреймер).
Так уже и вижу как ты прыщавое чучело сидишь и с умным ебалом ни нужного отщепенца общества: - НУ ЭТА ПРОСТА ПИТОНААБРАЗНЫЙ СИНТЕКСИС ТАЩЕМТА ПОНЯТНА
Как сисадмин прям, чмо попущенное задрочилу хуету которую каждый даун осилит но из-за нехватки времени оставляет это людям которые более компетентны и строит гения. ТИпа ну тупые блин эт ж очевидна)))
Нормально ли на сервере шарить промисы между разными запросами? Допустим, если мой сервер при запросе скачивает данные откуда-то, а в это время приходит второй запрос на те же данные, я просто вижу уже имеющийся промис и "присасываюсь" к нему, вместо дублирования. Как-то так: https://repl.it/Lkut
>>1067574 А чем тебе так js-то не нравится, что ты готов был учить какой-то абсолютно неизвестный тебе coffeescript, а узнав, что это надстройка над js — сразу нахуй?
>>1067521 >Я UX/UI дизайнер не тот очкастый, но обоссал бы тебя и отпиздил, выебав на твоих глазах отрезанную голову твоей матери. если ux дизайнер не может в фронт в 2017 - ему место на свалке. а теперь уебывай в /fem/
Двач, какого хера в моём сайте не работают: fadeIn(), fadeOut(), animate() и прочие. Тупо нет анимации. Например, кнопка вверх:
$('html, body').animate({ scrollTop: 0 }, 600);
Анимации нет, и всё, что делает этот код - просто резко скролит страницу наверх без анимации. Шо я мог отключить при разработке? Грешил на Velocity, снёс нахуй - не помогло. Я уже заебался двое суток искать эту злоебучую причину. Может сталкивался кто?
>>1067886 Блэт, сука. Только напишешь куда-то свой ебанутый вопрос, так он сразу и решается. Кароч, jQuery Easing почему-то блокировал всю jQuery-анимацию.
>>1067674 Например, идёшь на гитхаб youtube-dl'а, добавляешь им фичу с возможностью автоматического перезапуска скачивания при ограничении скорости со стороны контент-провайдера, потому что для себя уже написал это и хочешь поделиться. Тебе указывают на пару ошибок, ты их фиксишь, и всё, дальше тебя почти год игнорят. А вот за неимоверный вклад в виде фикса одной ссылки на апи какого-то из сайтов предлагают вписать своё имя в список контрибуторов!
>>1067582 Слишком много времени на него уйдет, я ж не погромист. CSS\HTML знаю, а джс сложно 100% и потребуют по крайней мере для меня много времени на обучение основам.
for (var i = 0; i < YobaFunction("2ch"); i++) { console.log("hello"); }
У меня вопрос: значение YobaFunction("2ch") вычисляется один раз и можно так и писать или оно вычисляется при каждой новой итерации и по-хорошему её нужно закэшировать в какую-нибудь переменную, чтобы было
var cacheLvlB = YobaFunction("2ch"); for (var i = 0; i < cacheLvlB; i++) { console.log("hello"); }
>>1068002 Пилю лайфхак: подавляющее большинстве кода (а уж тем более джаваскрипт) можно запускать, не опасаясь при этом сжечь компьютер! https://repl.it/LpEH
>>1063600 Я щас какрас вкатывался в vuejs и webpack задавай свои ответы может подскажу чем то. В webpack'е если не ошибаюсь можно сделать вроде такого ...output: '[name].js' но это не точно.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md
Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/
Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.