24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Краткий FAQ: 1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
6. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок, то учи оригинал и не забивай себе голову этим.
7. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS: Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Есть вопрос к бывалым ангуларобогам. Сам я нуб ебаный - запилил на ангуларе тествое задание. Больше я его не трогал. Да и вообще недавно относительно в веб вкатился. Мало что знаю во фронтенде. Тут мне внезапно прилетает предложение с конторы, которая иногда подгоняет халтурки (не основная работа): - Можешь в AngularJS ? - Почти не работал, но могу попробовать - Отлично. Нам тут нужно перехуячить легасисайт на ангулар. - Ок, давайте.
Я то думал, что меня кинут в команду фронтэндщиков, а оказалось, что нас двое - я на фронтенде и чувак на бэке. Дали нам репозиторий с сайтом, а там дохуя всего уже. Обосрался знатно, но подумал, что похуй. Постараюсь осилить. Кароче курочить то, что уже есть, я не стал. А запилил свой ламповый репозиторий, в котором с нуля ебашу сайт (изучая фронтэнд, хотя сроки жмут), юзая готовые стили, ресурсы и верстку. Проблема еще в том, что сайт на пыхе, которую я не осилил поднять. В своем репозитории поднял сайт на iis, хуярю из VS. Из этого вытекает проблема, что я ебашу в своем репозитории, потом перекидываю целиком папку в их репозиторий. Все правильно делаю? Или есть более грамотные способы такой работы?
>>650371 А что ещё есть среди MVC-фреймворков, которые не загнутся в течении хотя бы нескольких лет, и у которых есть большое сообщество и модульная база?
>>650348 > Из этого вытекает проблема, что я ебашу в своем репозитории, потом перекидываю целиком папку в их репозиторий. Все правильно делаю? Нахуя в таком случае вообще репозиторий тебе? Нужно мёржить, а не просто папку кидать
>>650402 Полностью сосет у второго ангуляра и пропадет так же внезапно, как и появился.
Да и вообще меня вот такое говно до дрожи пугает, даже не говоря уже про эстетику такого подхода. Вы что, ебанутые? Как более-менее большой проект может быть написан в подобном стиле? [CODE] import React from 'react';
class NewsList extends React.Component {
getDataFromServer() { return [ {id: 1, title: 'News item #1', snippet: 'Lorem ipsum dolor sit amet'}, {id: 2, title: 'News item #2', snippet: 'Lorem ipsum dolor sit amet'} ]; }
>>650381 А вопрос немного не о том. Зачем работающий сайт перепиливать на другую технологию, если он и до моды на всякие моделивьюхиконтроллеры работали? Что за сайт кстати? Инфо портал?
>>650383 Сайт на пыхе. Я привык ебошить на iis и мне так удобней. Создал солюшн в VS, в нем накидываю сайт. Потом после окончания таска, перекидываю все, что не относится к инфраструктуре дотнета и студии.
Всем доброго вечера! Прошу помощи. Хочу состряпать расширение для хрома, но мне не хватает понимания/знания некоторых вещей. А именно: 1. Как правильно юзерскрипты должны хранить настройки/текстовую инфу? Чтобы читать/писать их можно было находясь в любом домене. 2. Возможен ли вообще доступ к ФС? Судя по поискам, вроде нет. 3. Возможно ли по событию, инициировать, как бы загрузку файла? То есть скрипт генерит файл, а потом по клику етц, браузер его загружает в папку загрузок. 4. Как организованы органы управления, которые видно всегда на странице? Как у куклы, например. Естественно уже пытался гуглить, но даже искабельный запрос не получается сделать.
>>650493 Тащемта быстрый рост практически всегда ведёт к быстрому падению. Плавное повышение гораздо долгосрочнее. Посмотри на раби - был резкий скачок, все рекорды по популярности, а потом резкое падение и где он сейчас?
>>650500 >>650493 Ну вот когда релизнется, тогда и поговорим. Там не так много нового, на самом деле, поэтому когда люди поймут, что нихуя принципиально не изменилось, и снова нужно учить всякую ненужную хуйню типо #const *ngFor и прочее говно, то и хайп пройдёт.
>>650433 Тащемта это не разметка, а dsl для создания элементов vdom'a. Если это говно писать на Typescript или Scala, будет компайлтайм проверка валидности тегов и аттрибутов, чего в ангуларе не будет никогда.
Глобальная переменная внутри функцииАноним12/02/16 Птн 04:19:03#23№650906
Ниже приведен пример. Нужно вызвать переменную a в funArt, но вот проблема, она undefined. Знаю причину, но хотелось бы иметь возможность исправить подобное поведение. https://jsbin.com/yesezeluwa/edit?html,js,output
Господа, я снова выхожу на связь с вопросом о дизайне кода. У меня есть приложение, в котором присутствуют условно два модуля. В соответствии с принципами проектирования, каждый модуль изолирован от другого и выполняет только одну задачу и ничего не возвращает, тащемта. И есть главный модуль, условно - app starter, который отвечает за выполнение в определенной последовательности этих двух модулей. Так вот, нужно, чтобы 'app starter' получал состояние выполнения каждого из этих модулей и, по запросу, возвращал пользователю. --- Будет ли корректно выглядеть такой код: https://jsbin.com/tepizu/2/edit?js,console В 'app starter' объявляется общий объект данных и передается в инициализаторы модулей. По мере выполнения набора инструкций каждый модуль пишет в переданную ссылку на объект статус. Это грязный трюк, лол, или норма?
Аноны, я перекатился к вам из (а точнее, параллельно / дополнительно) пейтона. UI я там писал в киви, и процесс был для меня крайне приятен. Целую неделю (!) разбираюсь с js.
Прочитал основы js, jquery и bootstrap. Написав пару аппов, пришел к пониманию, что я делаю что-то не так, ведь на js пишут все и всем (?) нравится, а я после пары строчек чувствую себя словно только что покопался в навозе.
Долго думал, пришел к двум выводам: 1) Код на js выглядит ужасающе, но я понимаю, что я только начал – может, проблема в этом. Смотрел на coffeescript и проч. – мило, но еще один слой над js, к которому нужно привыкнуть. Не знаю, стоит ли. 2) Структура приложения – точнее, её отсутствие. Также отчасти из-за отсутствия опыта. Погуглил; вероятно, мне нужен angular или аналоги. Просветите за аналоги (reactjs+flux, meteor, ember, backbone, angular2).
>>651012 >перекатился к вам из пейтона >после пары строчек чувствую себя словно только что покопался в навозе
Что тебя заставило почувствовать такой контраст? Просто интересно, за что каждый ренегат старается поносить JS, при этом, не озвучивая причины такого поведения.
>>650492 И тебе доброго утра! 1. В грисманки/темперманки юзерскриптах это делается с помощью GM_setValue/getValue, в экстеншенах что-то типо chrome.storage.sync.set/get(), но я настоящие расширения писал давно и только под лису, так что говорить могу только за обычные юзерскрипты. 2. Обычные юзерскрипты не умеют, для экстеншенов гугли "%browsername% extensions file system access". 3. По "javascript generate and download file" говорят вполне возможно, хотя на вид костыльно. 4. Хтмель скрипта вставляется прямо в хтмель страницы. Для "видно всегда" выставляется большой z-index и position: fixed/absolute. Еще вид поднастраивается для каждого отдельного сайта, т.к. часто возникнут конфликты, где сайт задаст общее css правило которое распространится на твои элементы или что подобное.
>>651032 >грисманки/темперманки юзерскриптах это делается с помощью GM_setValue/getValue Я всегда настройки записывал в куки, так как не знал, каким образом применять настройки для всех страниц, которые будут открываться в последствии, спасибо. А выставлять настройки как? GM_config спрашивает настройки каждый раз, когда я захожу на страницу, для которой работает юзерскрипт.
>>651043 Имею в виду выставлять настройки не в коде, а мышкой на странице. Я создавал с помощью menuitem дополнительные опции в контекстном меню, нажатие на которые изменяло настройки.
>>651043 Про GM_config без понятия, не пользовался. >>651048 Мне стандартные средства не особо нравятся, я обычно настройки показывал внутри своих хтмлей. Но если у тебя их мало или скрипт почти не гуевый, то и они сгодятся.
>>651020 Анон, но ведь я описал это в целых двух пунктах, при этом в каждом указал, что по меньшей мере часть вины на мне. На js я пишу плохо, но мой русский вполне читаем. Так что имел смысл дочитать пост, анон, или не отвечать; впрочем, настрой возможных ответов мне уже ясен.
>>651012 JS влевый, не пизди. Пишу на питоне, js, крестах и еще штуках на 5 разной муйни. Кофе не трож, иначе так и не научишься. За архитектурой смотри todomvc на разный фреймворках (поновее).
>>651085 Ты просишь порекомендовать тебе инструменты, но не поясняешь, для каких целей, не конкретизируешь критерии.
Если ты собрался пилить клиент-сайд с упором на UI, то тебе вполне хватит связки из любого CSS фреймворка и, скажем, RactiveJS для двустороннего биндинга данных и вида.
>>651229 Ну вот возьмем тогда ивенты. Они триггерятся у меня в модулях, к примеру, выполняя действия внутри промисов. С этим понятно. Но чтобы передать статус выполнения этих действий пользователю, необходимо точно так же передать на вход модуля что-то - будь то объект, массив etc. коллбэки мы отсекли
Использовать ссылку на объект при инициализации модулей совсем плохо, да? Меня просто привлекло свойство объекта, позволяющего передавать ссылку на него. Следовательно, нет необходимости возвращать что-либо из функций и, соответственно, все функции-обладатели ссылки на объект шарят те же данные.
>>651265 Понял, анон, тебя. Создать в модуле-стартере 'app-start' лиснер и передать его в дочерние модули. В дочерних модулях привязать его к изменяемым данным. А если управлятор через веб работает, то отдавать данные можно будет их по мере готовности после лонг полл реквеста. Спасибо, анон!
Подскажите, как реализовать интерфейс игры морской бой на js? Поле 10х10, на нем по клику размещаются корабли. ПКМ - корабль удаляется, ЛКМ - переворачивается. Мне не готовый код, а хотя бы что изучить, на что обратить внимание.
>>651509 Спасибо, гений -"Как создать ААА mmorpg?" -"Да просто, пишешь качественный движок, нормальные модельки, текстуры. Вот и все. Не забудь о пиаре"
Аноны, есть несколько вопросов про богоподобный Node.js. 1) Есть ли в ноде что-то схожее с тыртырпрайзом в Java? Пытаются ли её сделать стандартом для корпоративной разработки? Пока смог нагуглить только strongloop. 2) Покажите образцовый репозиторий и/или мануал как правильно разбивать структуру бекенда на файлы, пока что пишу всё в одном основном файле и это - пиздец. 3) Покажите годный мануал по таск раннерам (системы сборки?) типо gulp/grunt. Пока вообще не понимаю зачем и где их используют.
>>652147 > Есть ли в ноде что-то схожее с тыртырпрайзом в Java? Пытаются ли её сделать стандартом для корпоративной разработки? > Пока смог нагуглить только strongloop. Да, это strongloop
> Покажите образцовый репозиторий и/или мануал как правильно разбивать структуру бекенда на файлы, пока что пишу всё в одном основном файле и это - пиздец. Ты на экспрессе пишешь? Дели сам проект на модули и раскидывай по папкам или бери фреймворки. Скажи свою задачу, я накидаю какие фреймворки лучше всего подходят.
>>652154 Спасибо. Ссылки записал, вечером посмотрю что там. Пилю на express пока, да. Не знаю как точно описать задачу, да и проект уже дописан, я скорее собираю инфу на будущее. Какие преимущества у express? А есть пример разделения проекта на модули на гите где-нибудь?
>>652177 Если на express пишешь, можешь взять божественный http://sails.io/ , это надстройка на express'ом с кучей плюшек и архитектурой искаробки > Какие преимущества у express? Самый развивающийся фреймворк с огромный коммьюнити > А есть пример разделения проекта на модули на гите где-нибудь? Да любой express-проект на гитхабе Вот, например https://github.com/madhums/node-express-mongoose-demo
>>651265 >Может глобальный ивент диспатчер сделать и сабскрайб/паблиш у него. Ну или нет. Нашел watch.js Надо будет попробовать заюзать его, похоже на то, что нужно. Но если серьезно браться за дело, разумнее таки будет взяться за 'harmony proxy'.
Какой фреимворк использовать для тестирования ноды с последующей очисткой базы? Встроенный в Django после себя сразу очищал базу, удаляя всё созданное во время тестирования. Есть такой на ноду или нужно всё вручную вычищать?
Подскажите, что выбрать для решения подобной задачи. Есть файл, json, к примеру, в котором указаны пары ключ-значение. Будет одна HTML-страница, в которой один input. По мере того, как я ввожу что-то в input, выводятся результаты по ключам (из файла). Например, ввёл "a", отобразились все значения ключей, начинающихся на "a". Ввёл "ab", запрос уточнился, результатов стало меньше. Подозреваю, что такие задачи очень просты для реализации на каких-нибудь фреймворках. Куда копать?
Аноны, подксажите, как в стрикт моде получить имя функции изнутри функции? arguments.callee.name не катит. Только вызывая другую функцию, которая обнаружит caller'а? Нужно для логгирования, скопировать/вставить однотипный код во все функции...
Аноны, скажите, подойдет ли JS для изучения в качестве первого языка? Одно НО, в идеале хотелось бы заниматься бэкенд-разработкой, а в интернетах пишут, что Node.js срань и вообще не очень перспективно.
>>652673 > Аноны, скажите, подойдет ли JS для изучения в качестве первого языка? Программирование надо научинать учить с дроча алгоритмов, а не выбора языка
> а в интернетах пишут, что Node.js срань и вообще не очень перспективно Топуп кекус. Больше доверяй даунам в интернетах, пикрел
>>652677 >Программирование надо научинать учить с дроча алгоритмов, а не выбора языка Планирую учить язык / дрочить алгоритмы одновременно. Или это мертвый путь?
>пикрел Проблема в том, что в моем миллионнике работа на JS связана только с фронтендом, в двух вакансиях с node.js требует ультрасиниоров с пятью годами опыта.
Антошки, помогите сделать функцию: Делаю CRUD, есть REST сервер, web на ангуляре, задача в том что мне на сервер нужно послать json объект в котором содержится массив других объектов, но сейчас посылается не массив а только один объект. Вот код: <script src="http://ideone.com/e.js/AmkaPo" type="text/javascript" ></script> Там кусок хтмл и контроллер. Суть в том что это раскрывающийся список и по клику на элементе списка он добавляет мне в свойства объекта ОДНОГО пользователя из списка, а мне надо чтобы по клику он мог добавлять их несколько в массив. Я скопировал и контроллер на всякий случай, просто плохо разбираюсь в ангуляре, хз как это реализовать. Помогите пожалуйста.
>>652840 Ты уверен? У меня просто понимание html вообще практически нет, знаю только как таблички делать и классы ксс расставлять. Ок, тогда такой вопрос: есть формочка, туда пользователь вводит всякие данные, из них собирается json и отправляется на мой сервер. Как мне сделать так чтобы в json незаметно от пользователя добавлялось поле? Ну то есть к формочке как здесь >>652809 еще добавлялось поле currentUser например? Антошки, выручайте.
>>653017 Все, почти разобрался. У меня есть такой кусок кода в контроллере: $scope.save = function () { $scope.isSaving = true; if ($scope.entry.id != null) { Entry.update($scope.entry, onSaveSuccess, onSaveError); } else { Entry.save($scope.entry, onSaveSuccess, onSaveError); } }; Я туда просто вставлю $scope.entry.user = currentUser; и теоретически должно заработать. Спасибо, антош, извини за глупые вопросы, просто с js вообще никогда не сталкивался.
>>650246 (OP) Мы снова выходим на связь и готовы ответить на самые ваши глубокие вопросы по поводу политики и концепции вещей, не многие поймут и не многие подозревают о чем это - постараюсь рассказать подробно и просто - с пруфами
10 RANDOMIZE 20 DIM DNA[2000] 30 LENGTH=10 40 POSITION=1 50 M=RND 60 IF M<.5 THEN M=0 ELSE M=1 70 DNA[POSITION]=M 80 RESULT=0 90 FOR I=1 TO POSITION 100 IF DNA=0 THEN RESULT=RESULT-1 ELSE RESULT=RESULT+1 110 NEXT I 120 IF RESULT<0 OR RESULT>10 THEN GOTO 50 130 POSITION=POSITION+1 140 IF POSITION<LENGTH THEN GOTO 50 150 PRINT "CODE:" 160 FOR I=1 TO LENGTH 170 PRINT DNA" "; 180 NEXT I
Пиздец, ананасы. Пишу на js 2 года, ебашил всякие формочки, калькуляторы и дерьмо на ангуляре. Сейчас начал работать с графикой и охуел от того как много математики в расчетах анимации и геометрии фигур.
Учите математику, если не хотите всю жизнь api писать.
>>652691 > Планирую учить язык / дрочить алгоритмы одновременно. Или это мертвый путь? Дело в том, что жс событийно-ориентированный язык. Он выполняет инструкции ассинхронно. Новичка это может очень сильно путать
Послушал этого анона, и во время чтению кое-что понимаю, но не представляю, как буду что-то пытаться писать сам. Понимаю, что у меня начнет что-то получаться только, когда начну писать сам код, надеюсь я не ошибаюсь что начал свой путь в джс именно так?
Как проверить доступность асинхронного хранилища? Для простоты на примере chrome.storage, пожалуйста. И нужно ли это делать? И если нужно то как? Я имею ввиду не только поддержку браузером, но и тест на запись-извлечение.
Поцоны, не могли бы вы мне помочь? jquery + ajax Пишу некий бар-информер для сайта, который бы показывал список друзей онлайн. Необходимо постоянно проходиться по ссылкам (в переменной links) некоей функцией (watcher), результат которой будет выводится собственно на экран. В настоящее время я сделал костыль(последовательное программирование) который запрещает асинхронный запрос, ждет окончания всех запросов, промежуточные данные сохраняет в переменную, и только потом выводит данные. Браузер жутко тормозит, и из-за этого я даже не могу остановить таймер. Как я понял, нужно полностью перейти на асинхронный шаблон чтоб этого избежать. Но я нихуя не понимаю в этих коллбеках, деферерах. Немогли бы вы мне указать на явные ошибки, и показать структуру программы к какой мне необходимо стремиться. (какие приемы использовать, как организовать промежуточное хранение, коллбек функции). Если не сложно ссылки на примеры как это реализовать, или хотябы ключевые слова, по которым я это могу загуглить. http://pastebin.com/zd7PDr4q
>>653764 Колись, откуда спиздил код? Сделай async:true в аякс запросе (нафиг вообще фоллс то? Если хочешь, чтобы последовательно один за одним запросы шли, сделай рекурсивный вызов ( в get_callback сделай i++; ajax_get(links ;. Ну и проверки-проверочки ). Ещё у тебя results массив у тебя бесконечно увеличивается, через полчасика, если страничка активно обновляется , будет пиздос.
>>653728 Ну есть приложение (chrome extension), есть данные и есть хранилище. Нужно сохранять данные в хранилище (chrome.storage). Хранилище работает асинхронно. То есть если я делаю chome.storage.local.set({key: val}), то оно может только через пол часа запишет.
В api нашёл метод onChanged, но что-то засомневался оправданно ли делать столько телодвижений. И подумал может анон знает какую-нибудь good practice для этого случая?
>>653788 get callback - в смысле обрабатывает http get >>653793 что такое снейк кейс? >>653781 в начале watcher переменная обнуляется же. >results = [] в каком месте у меня утечка памяти то?
>>653833 > get callback - в смысле обрабатывает http get Вот и я о чем, еба. > что такое снейк кейс? snake_case, camelCase, PascalCase, kebab-case/lisp-case
>>653832 Ну я по примерно понял по статьям, что это нынче тренд или что-то в этом духе. А что за рельсы скажете? Так-то приятен глазу синтаксис руби и в целом по началу казалось, что я бы хотел вкатиться в, но потом глянул, что материалов по JS для новичка вроде больше и вообще. не стукайте за ту хуйню, что я несу, просто хочу разобраться и уже начать заниматься
Подскажите, как сделать, что бы поле textarea увеличивалось по мере того, как пользователь в нем пишет? При этом нужно чтобы он сам не мог изменять его размер. (т.е. resize: none установлен).
>>653941 Нет. В интерпретаторе можно писать и синхронный код онле. А можно пользоваться библиотеками с асинхронными API. Вот скажи, питон синхронный или асинхронный? Или Си? Данный вопрос не имеет смысла, если мы не обсуждаем конкретные вызовы конкретных API.
>>653857 Рельсы это веб фреймворк/библиотека для руби, просто довольно популярная стала, как ангуляр в джаваскрипте, например. Руби, хоть и не пишу, но новичку советовать не стану, там, слыхал, очень популярно метапрограммирование и финты ушами — еще сильнее запутаешься.
>>653781 >Сделай async:true в аякс запросе можно тогда просто $.get() писать? >сделай рекурсивный вызов так? http://pastebin.com/3FpeiAtF >Ну и проверки-проверочки по-подробнее можно? там опечатка вместо links - lins, но мне лень новую пасту
>>653986 >>654010 Бля ещё опечатку нашел. Вот правильная. http://pastebin.com/Cg02WVQY >то ли вечная рекурсия if (tmp_links.length) вот в этом месте же проверяется >пытается посмотреть на чужую переменную она глобальная же, я её без var объявлял
Алсо, ещё вопрос: я запрашивая страницу (выделена прямоугольником), а в ответ начинает куча всякой хуйни лезть, как от этого избавиться? Сайт на клайдфларе, к которому я обращаюсь. >>654071-кун
>>654091 какой "запрос"? если ты в браузере смотришь страницу, то браузер автоматически все необходимые ресурсы подтягивает (css, js, шрифты, картинки).
>>654101 значит ты ответ в свою страницу встраиваешь и браузер ревестит все остальное. если ты только в консоль напечаешь, например, то ничего лишнего запрашиваться не будет.
>>654101 Если ты не делаешь append в DOM, то html остается html'ем, и дополнительные запросы не происходят. А если ты приаппендил, то будут запрошены все ресурсы, на которые есть ссылки.
>>650246 (OP) Подскажите нормальный логгер для node.js. Обмазываюсь winston'ом - это же говнище. Похоже на него надо навесить ещё 100500 модулей, чтобы он нормально работал. Где файлы вроде debug_20160101.log? Где нормальные категории без изъёбств? Где нормальные конфиги наконец? В общем, я уже потратил кучу часов, но так и не довёл его до состояния Log.Net или log4j.
Вопрос по архитектуре приложения. На ноде сервачёк имеющий два роутера: гет /form отдаст форму, а пост /post-form обработает её. Соответственно имею два мидалвара (контроллера). Первый (гет) подготовит данные (сходит в базу и т.д.) для рисования формы. Во втором мадалваре мне нужно вернуть ошибки или показать направить на страницу с успехом лол. Так вот, а как вернуть эти ошибки в ту же форму? Т.е. чтобы из второго (который для поста) роута рендернуть форму нужно дублировать функционал первого (запросы в базу сделать). Плохой я писатель кароч.
>>654425 /post-form должен печатать форму, только уже с ошибками. Только это колхоз и 2005 Уже околостандарт формы ажаксом слать. И писать проще, и по юзеру по трафику легче
>>654425 Хуле не запихнуть в роут /tvoya-sranaya-forma и отдачу формы, и прием данных? Распознавать факт приема данных (чтобы запускать валидаторы) можно по post-ключу form_status=1 или типа того. А вообще в этой вашей ноде должен быть какой-нибудь пакет, в котором будут реализованы базовые валидаторы, csrf-защита форм и прочая поебистика. Сам в ноде не шарю.
>>654425 Херню какую-то ты пишешь по-ходу. Тебе не нужно заного рендерить форму, всё что нужно во втором роуте, это возвращать ошибку (или успех), а на фронте только после успешного результата переходить дальше по роуту на страницу "успеха", или хендлить ошибку, если она есть. Бекенд не должен за это отвечать, по идее, только код ошибки присылать. Что-то типо того. Если я правильно понял твой вопрос.
Аноны, помогите плиз. Делаю вот проект с использованием jQuery и Material design lite: https://jsfiddle.net/nxe1pc4y/3/ Проблема в том, что в поле для ввода, которое сделано вручную, боковое меню работает, а вот в заметках, которые добавляет скрипт- нет. (Значок меню не отображается почему-то, так что его можно найти по буквам "me" в углу заметок) Вероятно дело в следующей строчке: componentHandler.upgradeElement(button); Которая присутствует в примере ( https://codepen.io/anon/pen/Wrmbro ) Я не особо понял как она работает, но если её добавить в код, заменив соответственно button на note(или на что-нибудь еще), то вылетает ошибка.
Сейчас переписал свой скрипт >>653764 , вроде все работает нормально. 1) все переделал на рекурсии, 2) ajax запросы только асинхронные, 3) регулярки вместо jquery'вского поиска по DOM Результат: страничка больше не подвисает. Спасибо, вот этим господам >>653781>>654124 за дельные советы. правда появились утечки памяти
>>654431 Я шлю multipart данные аяксом. На ноде, помимо экспресса, стоит multer, для упрощенной обработки принятых бинарных данных. В этом роуте, после проверки условий, возвращается и ответ.
>API ведения логов веб-консоли (console.log, console.info, console.warn, console.error) был отключен скриптом на этой странице. Как эту консоль ебучую включить? Из аддонов у меня стоит greasemonkey, и adblock.
Поставил Атом для работы с кодом. Не понимаю, как в нем работать. Объясните, прошу. Пишу код, а нихуя не происходит, нет кнопки run или еще чего-то такого. Да, я туповат, можно этот момент пропустить.
>>654844 Поясни, няша, что мне сделать, чтобы я мог спокойно себе упражняться, решать задачки - и сразу же видеть результат, чтобы нажал run (а у меня к примеру там всего одна строка alert("test"); ) и чтобы оно отработало. Я только базовый курс прошел, понимаю мало еще.
>>654874 Если упрощать, то это большая куча, висящая в оперативной памяти. Память быстрее диска в любом случае, так что можно кешировать что нибудь, хранить данные сессии. если рисковый, то можно вообще всё там хранить. Но если у тебя проект для себя с 1000 уников в день, то можешь даже не париться, даже мускул тормозить не будет.
>>655102 Попробовал добавить componentHandler.upgradeElement(node.get(0)) после предыдущих двух или вместо них, визуально не вижу разницы, но если предыдущие удалить- то перестают меню работать. И еще вопрос, если переписать код используя ООП, т.е. заметки как объекты создавать, то необходимость делать "апгрейд" все равно останется?
>>655148 Такс, странно, если componentHandler.upgradeElements(node.get(0)) добавить то перестает работать независимо от наличия первых двух. Зато с upgradeAll меню вместе с рипл-эффектом работает.
Антошка, подсоби советом. Начал изучать JS на http://learn.javascript.ru/, и мне нужно определиться с темой диссертационной работы для магистратуры, есть ли какие-то мысли, как я могу совместить приятное с полезным? Какую темку можно выбрать, связанную с js и вебом в общем?
>>655199 Если ты в теме, что такое "сцена", то можно написать неплохую CMS платформу для релизов (к примеру, mp3, x264, warez etc...), которую, помимо всего прочего, можно будет и продать. В свое время один парниша написал такую CMS для сайта astro.nom.es на рельсах. Релизы чекались на pre-таймы, нюкинг и проч, извлекались нфошки. Интересное коммьюнити было, да. Идею можно расширять в разные направления, такие как: интеграция с приватным FTP, заливка на сидбокс.
Еще вопрос по динамически добавляемым элементам. Если я добавляю элементы с помощью функции и хочу для этих элементов задать функцию-обработчик события, то обработчик должен задаваться внутри функции? Потому что если задавать внутри основной функции, то он не обрабатывает динамически добавляемые. http://jsfiddle.net/nxe1pc4y/11/
>>655264 http://jsfiddle.net/nxe1pc4y/12/ Там note надо было, а не node. Обработчики, да, надо вешать либо внутри функции создания, либо на body (добавил в пример)
>>655199 1. Хорошая магистерская должна не предлагать что-то революционно новое, а в первую очередь провести полное или подробное исследование существующих решений. 2. js-движки - исследование производительности в разных задачах, например https://habrahabr.ru/post/276617/ , предложение по улучшению. Если твои предложения будут достаточно хороши и ты сможешь пропихнуть их в репозиторий - отлично за диссертацию обеспечена. Задача актуальная, а вот с научной новизной могут быть проблемы, сам уже придумай что сказать.
>>655584 И при первых же признаках популярности переписали движок на другой язык, ибо руби не может в хайлоад. Твиттер как пример. Руби подходит только стартапам из двух школьников, все кто крупнее - выбирают другой язык, либо страдают и потом всё таки меняют его.
>>655584 > а то что куча стартапов успешно запилили на руби и вышли в плюс -- не щитается? Вышли в плюс, а потом переписали на нормальный язык Руби подкупает только быстрой разработки, но с хайпом js и появлением всяких Sails ему совсем пизда
Анон, не пойму, как использовать Proxy? Почитал, вроде фича не новая, бразуер - хром последний из стабильной ветки, а в консоли, при попытке выполнить код var proxy = Proxy.create(handler, proto); выкидывает 'Proxy is not defined'. Что за шляпа?
Посоны, понадобилось вот в Ionic Framework вкатиться срочно, кто сталкивался, кто что посоветует? Я, конечно, пока пару минут потратил на поиски годного туториала, но понял, что на хабре статьи древние все кроме одной, на официальном сайте нет упорядоченного и годного туториала для новиса, а лишь видосы по разным кускам и частям сего фрейма. На тыТтрубу только полезу сейчас.
Такой вопрос, parent() с использованием селектора только непосредственных родителей может выбирать? Вот пример: http://jsfiddle.net/5g7r4mhq/2/ А иначе мне приходится использовать строчки вида: $(this).parent().parent().parent().parent() Как-то некрасиво.
>>655296 Попробовал по-разному сделать, твой вариант самый рабочий. Можешь пояснить, чем event.target отличается от this? И почему нельзя писать $('ul li:last').contains($(event.target))?
Еще попытки: http://jsfiddle.net/nxe1pc4y/14/ Если определять обработчик внутри функции, то работает только с элементами, создаваемыми функцией. Я так понимаю, на скорость работы тоже плохо влияет. Если с помощью $('parent_static').on('event', 'children_dinamic', handler); то работает только с последним добавленным элементом.
Сори, что так много вопросов. Я для себя делаю, хочу не чтобы лишь бы работало, а разобраться как сделать лучше/красивее/быстрее.
>>656452 http://jsfiddle.net/Bateman/nxe1pc4y/16/ Там надо не :last, а :last-child. Думаю все же лучше повесить разные классы на элементы меню, а не псевдоселекторами ебаться. event.target - элемент на котором произшло событие, а this там смотрел на body. На самом деле анон выше годно написал про .on с фильтром по дочерним элементам, в таком случае this смотрит на li. Алсо, починил тебе лэйболы.
>>656821 Аа, теперь понятно почему только последнее меню работало. И с event.target тоже понял, но это далеко не так удобно как с on. За лейболы спасибо, рано или поздно пришлось бы их доделывать. В общем добра тебе, анон.
А есть какой-нибудь js shell? Чтобы прям в родной соснольке быдлокодить. Насоветуйте самый лучший если их несколько. А то в devtools шрифт милипиздрический, если в маленьком окне - надоело щуриться.
>>654950 Пикрелейтед означает что я заигрался с рекурсиями, лол? Придется все таки на событийно-ориентированный шаблон переписывать. Алсо, установил я этот firebug, как с помощью него найти утечку?
>>657769 Именно рекурсивный вызов setTimeout. Ты подписываешься на событие event loop браузера, и как таковой рекурсии внутри джаваскрипта у тебе не будет, как не будет и разрастания стека вместе с твоей ошибкой. Попробуй. setInterval - для другого.
Здарова всем! Верстальщик-ньюфаня в треде. Курю продвинутый интенсив от академии и короче делал д.з. за 7-8 урок продвинутого (ну где js)
Там задавали мол сделать чтобы кнопки "+" и "-" работали. Потом чтобы когда увеличиваем количество взрослых и детей добавлялось на каждого по 3 поля (ФИО).
Затем решил сделать как они рассказали чтобы отправлялось типа AJAX'ом форма и при выборе картинок отображались их превьюхи и можно было их удалить.
Можете посмотреть че там с моим кодом на js - сильно ужасен?
>>657848 В верстке и js ньюфаня. (скурил базовый интенсив, сверстав 4 статичных макета, сейчас пилю респонсив вот изучая продвинутый, потом засяду за базовый интенсив по js и кантора)
До этого закончил вузик на прикладного математика, где толком нихуя полезного не рассказали (было чутка с++ (про ооп вскользь), фортрана и ms sql и тонны математики блядь).
Ладно, спасибо, если более-менее норм, буду тогда докуривать продвинутый дальше.
Если кто еще че скажет - почиткаю тоже. Все-равно к вам захожу время от времени, хотя больше в верстка-треде сижу. Когда сяду за js поплотнее к вам переберусь.
Поцаны, как найти все вхождения подстроки, чтоб хранили свой индекс? В первом случае находит все вхождения, но не показывает индекс, во втором показывает индекс, но находит только первое. Чет я туплю.
>>657929 Вот ещё в догонку. >Можно повесить обработчик событий практически на любой объект: А если мне не нужно использовать объект? Просто нужно произвести какой-то код, в ответ на событие, насколько валидна такая запись?
ES6 это просто каноничный пример "эффекта второй системы". Напихано столько бесполезного говна, я ебал. let, const, классы - все это абсолютно не нужно. А компилировать ES6 в js - какой вообще ебантяй придумал что это хорошая идея? Получите все отсосы динамической параши плюс головная боль компиляции - два по цене одного, просто заебись. Все эти напиханные новые свистоперделки никогда не будут работать совместно консистентно (да еще в разных браузерах). При нормальной разработке языков каждая блядь малюсенькая фича обсасывается со всех сторон и все равно в итоге случаются эпические отсосы. Хотелось бы чтобы эта поебень никогда не взлетела как то предыдущее говное, когда хотели запихать такую же кучу говна и еще типы. Но вряд ли, уж больно большой момент вся эта поебень похоже набрала.
Платина, наверное, но всё же спрошу. Какие есть для js редакторы/ide с нормальным автодополнением? Чтоб подсказывало не только кейворды, но и функции из внешних скриптов. Кроме WebStorm и NetBeans.
>>658108 >По-русски это называется инерция. Только если ты ебантяй безграмотный. Можно с большой инерцией сидеть на жопе ровно как жабка например. https://en.wikipedia.org/wiki/Momentum Просто я угораю по теорфизу, и меня не наебешь.
>>658037 https://kangax.github.io/compat-table/es6/ -- свистоперделки уже работают во всех современных браузерах, бро (кроме модулей, тут и спецификация довольно загадочная, хз как их вообще имплементировать нативно, плюс при сборке можно из модулей выкинуть ненужное, в браузерах так не сделать). В принципе можно уже даже писать без бабеля и только перед заливкой на сервер код компилировать для пенсионеров, последний некоммерческий проект так и запилил. Про "классы не нужны" двачую, а большинство остальных фишечек очень сладкие. Да и вообще ты говоришь так, будто тебя обнаженные валькирии с плетками заставляют писать на es6, старый добрый JS то никуда не делся тащемта.
из Dlang-хаты спрашивают: когда там в браузерах запилят интерпретатор байткода? Грозились вот недавно же (всего-то лет 5 назад) что-то типа NaCl или WebAssembly (или что там после них придумано было?) запилить
Как так получается, что инструменты, наподобие ASM.js, на выходе дают более оптимизированный код, нежели инструменты оптимизации для Vanilla JS? Прозреваю, что секрет во всяких плюшках типа two-pass optimisation, статических анализаторов и прочего. Есть ли сопоставимый по эффективности инструмент для чистого жс?
>console.log((1 / 3)3); >1 Это он как так сообразил? Почему не 0.999...? И если раз он такой умный, то почему с console.log((1 / 49)49); уже не осиливает?
Как удобнее в jsdom по страницам шастать? Например, описали стартовую страницу через jsdom.env, в коллбэке вводим логин, кликаем по кнопке. Как получить новую страницу и что-то выполнить на ней, когда она загрузиться?
>>658718 Поред вопросом я конечно гуглил, и на эту страницу не меньше 3 раз, лол. Тут он загружает реквестом, но в таком случае не удастся именно просто "кликать" по всяким кнопкам, а выкавыривать следующий url руками. Не такая большая проблема, но можно как-то поудобней сделать, все для этого есть.
У тебя фантом параллельно работает? Можно парсить сотни-тысячи страниц одновременно?
Поясните за новый синтаксис экспорта/импорта. export var test = 12 экспортирует переменную test. export deafult function hui() {} экспортирует функцию hui. А можно ли сделать export default var test = 12? У меня IDE пишет ошибку.
А есть ли среди анонов метеорщики? Думаю вот насчет него, какие подводные камни? Проект планируем что то вроде CRM с элементами соц сети. И еще страшно монго.
>>658659 Это пример же был, откуда такие проекции. Естественно это не проблемы жса, он же просто язык. Ведь все современные браузеры поддерживают es2015 в полном объеме?
Почему классы в ES6 такие уёбищные? Вот хуле я должен писать this.field, чтобы обратиться к полю внутри метода? Почему нельзя просто field? Почему я должен вызывать метод внутри класса как this.someMethod(), а не просто someMethod(). И какого хера нет возможности объявить private поле/свойство/метод? Хуле я что должен через нижнее подчёркивание теперь всё писать, типа "это private, чуваки, видите '_', вот это трогать нельзя".
>>659336 >Почему классы в ES6 такие уёбищные? Не более, чем синтаксический сахар над давно известными всем конструкциями. Обвиняли ES в отсутствии классов, насмехались? Получите и распишитесь.
>this.someMethod(), а не просто someMethod() >Почему нельзя просто field? Потому, что краеугольный камень ES - скопинг и контекст. С точки зрения этих понятий, такой подход не вызывает вопросов.
>Хуле я что должен через нижнее подчёркивание теперь всё писать Должен, да не обязан. Это один из 'workaround / approaches' в виду особенной, прототипной концепции языка. Здесь представлен еще один из вариантов создания приватных объектов (экспорт только публичных) https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-know
Аноны, прочитал learnjavascript первую часть и прошел первую часть codeschool, но все-равно как-то в тумане немного считаю понимания этого языка. Может я не правильно, что-то делаю? Видел в шапке, что надо будет змейку сделать, но не представляю как это возможно сделать.
>>659439 бесконечный цикл - "движение" змейки, есть некий массив хранящий части змейки, за каждый такт добовляется новый элемент(где голова), и удаляется последный(где хвост), повесь на кнопки обрабочик - будет тебе "управление".
>>659439 Начни с более простых задач. Например, написать скрипт, который генерирует поле (матрицу) с заданным размером, произвольно выставляет препятствия на этом поле, точку старта и финиша, и сам генерирует кратчайший путь между двумя точками.
Вариантов решения такой задачи множество, гуглятся они по кейвордам "maze runner".
Анончики, помогите написать простейший userjs. Нужно изменить имеющуюся на странице ссылку. При этом ссылка должна содержать часть урла самой страницы. Асло ссылка в скрытом диве (display: none), в идеале этот див при наведении на кнопку отображать (display: block !important).
Есть у меня идея для сайта на jQuery. Задать элементы на странице- как объекты и определить для них методы. А добавлять их чтобы можно было тоже методом, использую селектор $ т.е. создавались они в том объекте, который выбран с помощью $ Например: $('.container').createElement() А потом создавать его содержимое методами: element.addTitle(); element.addContent() и т.д. Но затрудняюсь, как это реализовать. Если для создания конструктора и определения методов еще имею представление, то создание с помощью query-селектора для меня не понятно. Поясните, плиз нубо джун
Появилось немного свободного времени. Думаю его использовать, чтобы подтянуть чистый js. Что посоветуете: прочитать книгу (good parts на примете), курсы какие-нибудь пройти, мб задачи порешать? Или вообще по алгоритмам или компутер-саенс почитать?
>>660232 По джсу чистому читни Джона Резига "Секртеы джс-ниндзя". Этот тот же толстяк, что жикфверя написал. Я прочел половину - пока заебок, здорово меняет взгляд на написание кода, ну и для себя нашел пару триков хороших.
>>660757 >Матрица смежности и списки смежности являются основными структурами данных, которые используются для представления графов в компьютерных программах
Можно ли как-то ограничить размер объекта/массива? Чтобы если задано ограничение 50, то при достижении размера, например, 51, первый элемент удалялся. Есть что-то такое? Может либа какая? Я уже заебался ифы писать для каждого добавления
Этой осенью я пойду на первый курс, так что хотелось бы уже уметь что-нибудь до начала учёбы. Учебных материалов и курсов целая куча, недолго и запутаться. Но пока решил начать с HTML/CSS, затем JS с jQuery на codeschool.com. Сразу вопрос: курсы на CodeAcademy лучше или хуже, чем на Code School? Параллельно буду читать книжки из ОП-поста. Потом планирую заняться PHP и попробую хоть немного вдуплить в работу с БД и системное администрирование. Это нормальный набор скиллов? Стоит ли включить в него Ruby?
>>650246 (OP) Обоссал JS-макак, вместо того чтобы править стандарт эти петухи будут городить 100500 строк кода, только чтобы сделать себе костыль и потом будут любоваться лагающим куском говна с 3мя кнопками на всю страницу и дурацкой плавающей менюшкой, бить кулаком в грудь и говорить "вот как же всё заебато сделано, целых 5 фпс на мозиле с core i7, и всего 5 секунд на загрузку"
Как передать массив в функцию поаргументно? Сейчас приходится писать func(mas[0], mas[1], mas[2]). Но проблема в том, что я не знаю заранее размер этого массива
>>661759 Нет, не передастся. Он именно разложится по-аргументно там, и если у тебя вариативная функция, как я понял, там, то она будет юзать эти аргументы.
>>661763 Значит у тебя там массив в массиве, нужно его выровнять сначала, либо два раза спред делать, но это уже костыль какой-то, сделай просто ...(_.flatten(mas))
>>661766 >Нет же, у меня просто массив, в нем при ошибке два элемента - первый хттп-код, второй ошибка. А при успешном ответе элементов гораздо больше Ты ебанутый? Сука даун тупой. Если у тебя просто массив, то хули ты гонишь на спред, который к тому же у тебя не работает? Мразь поганая.
>>661774 >Этот оператор не поддерживается v8, то есть официально не поддерживается в ноде, зачем ты мне его советуешь? И что? Сложно бабель подключить?
Сука, даже спасибо не сказал за apply, вот блять советуй вам тут теперь.
>>661954 Для первого курса не нужно знать все что ты написал, тебе это там преподавать будут. Если шило в жопе- по компьютер саенс или алгоритмам почитай. А лучше всего бухай и туси все лето, потому что потом ебала начнется.
http://pastebin.com/4vHk2TFD Чяднт? Почему срабатывает только последний фильтр, а как сделать это правильно? Вариант не выёбыватбся и взять лазижс\лодаш\етц не предлагать, у меня слишком древнее окружение, в котором даже полифилы не работают из коробки, кек.
>>650246 (OP) Почаны, есть смысл перекатываться из питон-дева во фронт-эндера, скорее даже полностью в этот ваш MEAN ? Так то серверные проблемы мне решать относительно легко, а вот клиентские дела - на очень базовом уровне умею, а верстку и дизайн не умею совсем.
>>662451 МЕАН - это больше сервер, чем клиент. Если у тебя нет лютой ненависти JS, как у некоторых питонистов, то перекатывайся. Хотя вместо ангулара я бы посоветовал взять реакт.
Есть тут аноны, которые умеют в Meteor.js? Вопрос такой, мне на сервере нужно отслеживать изменение в размере массива в коллекции, и при разных его значениях вызывать разные функции. Учитывая, что коллекции реактивные, должно быть какое-то красивое решение с трекер.авторан или чем-то подобным, но у меня нихрена не получается.
Продолжаю свой ленивый велосипед, но есть один момент который мне люто мозолит глаза. Тысячи сравнений с null. Eсть код вида $$([obj, ..., obj]).find(foo).filter(bar).take(10); Код ленивый, внутри оно всё замыкается на один внутренний метод. Т.е. последний вызов(take) превращается во что-то вроде: for(var i = 0; i < 10; i++) ret = filter(find(get(), foo), bar); Так вот, на любом из этапов данные могут внезапно закончится: входных мало, фильтр всё зарежет и т.д. Сейчас у меня в таких случаях просто прокидываеться наверх null. И, соответственно, если во входных данных внезапно будет null то всё пойдет по пизде. У меня хоть нулов быть и не должно, но всё равно неприятно. Какие есть еще варианты? Бросать исключения? И, в случае с исключением - как будет с производительностью? Не будет ли одно исключение в конце работы медленней чем 9000 сравнений null на каждом этапе и для каждого элемента?
>>663006 Да нет, я про то что если там те же исключения, то я и сам бросать их умею, и не вникая в промисы. Вопрос то в том лучший ли это(исключения) вариант? >>663007 Нативных промисов у меня точно никаких нет, а те кустарные реализации паттерна которые сходу гуглятся на тех-же исключениях.
>>663018 Ну вот я и спрашиваю, сильно ли оно повлияет если я его сделаю чуть менее редким, бросая вручную. Грубо говоря сейчас на вход я даю массив из 1000 элементов, на него вешаю 5 фильтров. В моей текущей реализации это приведет к тому что каждый из элементов в каждом из фильтов будет сравнен с null. Т.е. если всё пройдет через все фильтры то за время работы 5000 раз отработает "if(val == null) return null" В качестве альтернативы у меня вариант сделать один if(sourceData.length == 0) throw false в одном только последнем шаге, дергающем исходные данные, ну и ловить его на первом шаге, а в промежуточных фильтрах будет и так ясно что либо всё ок, либо исключение всплывает выше. Одно исключение на обработку всей цепочки. Ну или может кто подскажет какие есть еще варианты.
Время тупых вопросов. Чем отличается открытие html напрямую браузером и запуском через сервер. Работает ли и насколько по разному js в этих случаях? Статей покидайте, можно и на англ. Заранее спасибо.
Какие типичные задания выполняет жс-девелопер? Какие задания наиболее интересны?
Алсо, мне вот, например, нравится жс-анимация, визуализация. То есть жс больше привлекает как эстетический инструмент. В каких сферах это наиболее востребовано? Или везде рутина с кнопочками, менюшками, слайдерами?
>>663419 Браузер нормальный ставь Chromium, если старое железо то могут быть проблемы, но старое железо сейчас мало у кого, а технологию будут оптимизировать.
>>663466 Что сказать-то хотел? У них обоих "no" и "partial" по половине пунктов. Но хромой при этом с гуглозондом, и интерфейсом для слабоумных. Да, у фф нынче тоже. Но хромой начал это первым!
>>663510 Охуительные у тебя половины. Причем, у хрома куда более важные плюсы, чем у фф. Всё, что у фф зеленое можно выкинуть, и ничего особо не изменится. А в хроме есть Shadow DOM, Custom Elements, Touch events и прочие, без которых уже будет грустно
> Но хромой при этом с гуглозондом Хромиум > интерфейсом для слабоумных По-моему интуитивно понятный интерфейс - это только плюс
>>663525 >Хромиум Дак и там зонды через билд находят. Сам нагуглишь? >По-моему интуитивно понятный интерфейс - это только плюс Я и говорю - для слабоумных. Как еще называть тех для кого браузер с более чем тремя кнопочками непонятен?
>фф >хром сорта говна. >Всё, что у фф зеленое можно выкинуть, и ничего особо не изменится у хрома тоже. лучше бы сделали чтобы вкладка от простейшего видео не падала прежде чем какой-то хуйней меряться.
>>663550 Можно. JS или C# - самые подходящие языки для начала. Главное не трогай питон или раби, а то привыкнешь и не сможешь писать на нормальных языках.
>>663557 > нормальных языках. поссал на маньку, первым научился в питон, со скрежетом осилил убогие кавычки и курли бракетс в жс, получаю как боженька за стек django/flask+react/angular js ваще не юзаю python транспайлеры вся хурма...
Первая часть кода (до строчки var dat = new FormData(); ) выполняется исправно - в mySel1 с сайта загружаются данные.
При отправке же запроса POST выдает ошибку на последней строке - "невозможно присвоить innerHTML от неопределенного объекта или равного null". Вероятно ошибка в выделенном значении (по всей видимости оно неопределенно), ибо когда я его явно указываю, то запрос выполняется.
Как в dat.append передать выбранное значение селекта?
Объясните почему пикрелейтед регулярка так криво ищет фразы?
Почему "проиграл с подливой" она ищет не цельно, а отдельно, а во втором примере вообще "проиграл" не находит? ig же стоит. Чего я не понимаю? Как написать правильно?
Помогите нюфагу. К примеру у меня в хтмл есть <div> - просто прямоугольник красного цвета. Моя задача сделать так, чтобы по клику их становилось 2. Как это делается? Пиздец блять, две ночи плохо сплю, тупо нихуя не могу придумать.
>>663910 Да, и еще я сам ньюфаня считай что, сделал бы как-то так (тут на вновь созданные тоже можно кликнуть и они плодятся) Сделал только из того что было рассказано в этих двух видосах
>>663546 >у хрома тоже. лучше бы сделали чтобы вкладка от простейшего видео не падала Вот это двачую. Хромой самый ебланский в плане стабильности браузер из 3-х столпов(опера, лиса, хромой), постоянно падает сука, туда не пускает, сюда не пускает, а самое главное, что даже пидор не говорит, что за беда и почему я не могу зайти на какой-либо сайт(когда сертификаты не те, молча сука рубит и говорит - нет такой страницы, а ты блядь гадай, что за беда такая). Про сеттинги хрома я вообще молчу, я дико прозрел, когда нашел енкодинги во вкладке фонтов, это просто пздц. В общем, для малохольных браузер, единственный плюс по отношению к фф - лучше оптимизирован и на некропеках работает получше чем фф, тот чуть оперативы не хватает - сразу крашится.
>>664055 > некропеках работает получше чем фф, тот чуть оперативы не хватает - сразу крашится. Пиздеж. Довольно долго просидел на пекарне с 500мб оперативы, ни единого краша, даже при уходе в глубокий своп. Хотя в хром и правда работал пошустрей.
Ребята, у меня тут проблема: https://jsfiddle.net/pehqrna8/1/ (см. консоль) Мне нужно найти совпадения из массивов значений strJson.match.foo (а также .bar/.baz — каждого) в каждом объекте массива filterJson.with по полю name, например, filterJson.with[0].name. Я решил это при помощи O(n^4)-лупов (с for не получилось, возможно, потому, что я дебил — ошибку на одной из итераций выдавало, какую не помню уже), но это жуть тотальная, на один объект filterJson уходит 140мс, а таких будет много. Извиняюсь за кашу в примере, но, если разберётесь, подскажите, пожалуйста, как это улучшить.
Нужно запилить небольшой юзерскрипт, что бы нажал кнопочку "g", и любая страница проскроллилась полностью вниз. Нажал кнопочку "f", и любая страница проскроллилась полностью вверх. Возможно это несколько нахально с моей стороны, вот так вот вкатываться в тред и просить помочь запилить, но я вряд ли осилю, нужна помощь анона. Анон, помоги! Этож вроде не сложно, а конкретную информацию я нагуглить не могу.
Я подумал, что можно просто выдрать один раз из обоих объектов необходимые элементы, выделив их в два массива, и по ним пройтись. Я уже неправильно сделал, что итерирую по strJson каждый раз, хотя он меняться не будет, завтра попробую.
>>664286 Там регистрироваться же нужно! Да и на пару баксов я буду кушать три дня, а тут задача вроде довольно простая, я представляю как это сделать, но в саму реализацию не могу, так как не пишу на js. Вот может кому-то не лень будет, поможет.
>>664307 Это же тоже самое, что и для сайта, просто итоговый скрипт нужно вставить в какой-нибудь greasemonkey и сделать глобальным. Потому я думаю, что это не очень сложно, не хотелось бы идти на фрилансы всякие по такой причине.
>>664344 Тащемта работает, но есть две проблемы: 1. В инпутах действительно всё ебётся, и это пиздец. Можно хотя бы намёк на то как это исправить? 2. Юзерскрипт вроде включён, но не работает, нужно руками в сонсоле прописать, тогда норм. Случайно не знаешь чего так?
А в целом годно, я не понимаю почему авторы всяких Vimperator'ов не могут запилить всё так качественно, без хуйня и задержек. Спасибо.
>>664399 Ты точно правильно скрипт сделал? У меня как пидорасило, так и пидорасит. UPD:Это на луне не работает, на лисе таки работает, спасибо, пойду думать как это на луну "портировать". >>664403 Рефрешил, но не подхватывалось. А уже подхватывается. Что изменилось? Не знаю, но работает и ладно.
>>664413 Я им и пользуюсь, но там по дефолту НОВЫЙ УЛЬТРАПЛАВНОМОДНЫЙ СКРОЛЛ 2016, который тоже тупит, а если FimFX накатить на PaleMoon, на которой я сейчас сижу, то тут вообще задержка жёсткая.
В общем, 3 недели назад начал изучать программирование. Выбор мой пал на этот язык. Нашел в интернете разных заданий для новичков. Вот одно из них:
Напишите программу, создающую строку, содержащую решётку 8х8, в которой линии разделяются символами новой строки. На каждой позиции либо пробел, либо #. В результате должна получиться шахматная доска.
Сделал вот так как видно ниже, но вот возник вопрос: На сколько это говнокод? Догадываюсь, что есть куча других способов, которые на много короче и лучше и правильнее...
var cell = 8; var s = cell * cell; var result = "";
for (var i = 1; i <= s; i++) {
//создаем строку с нужным колличеством символов для всей доски. if ((result.length) % 2 !== 0) result = result + " "; else result = result + "#";
//разбиваем большую строку на необходимое колличество рядов. for (var m = cell; m <= s; m = m + cell + 1) { if (result.length == m) result = result + "\n"; } }
>>664523 > На сколько это говнокод? Догадываюсь, что есть куча других способов, которые на много короче и лучше и правильнее... Не такой уж говнокод, просто нужно оформить всё это в виде функций, а не простыни кода, чтобы можно было удобно переиспользовать это в случае необходимости
>>664708 Чем сложнее написан код, тем сложнее его поддерживать. На олимпиадах может с тебя и охуеют, а вот в продакшенах тебя подкараулят после работы.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.
Краткий FAQ:
1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
4. Существуют ли стайл-гайды для JavaScript? - Да. Стайл-гайд для Node.js: https://github.com/felixge/node-style-guide , стайл-гайд для Front-end: http://www.w3schools.com/js/js_conventions.asp
5. Какие новые возможности добавил ES6? - Вот здесь можно почитать на русском: https://learn.javascript.ru/es-modern
6. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок, то учи оригинал и не забивай себе голову этим.
7. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Дуглас Крокфорд "JavaScript: сильные стороны"
Стефанов С. - "JavaScript. Шаблоны"
Джон Резиг - "Секреты JavaScript ниндзя"
Николас Закас - "JavaScript. Оптимизация производительности"
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"
Читать онлайн
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Marijn Haverbeke - "Eloquent Javascript" - Вводная книга по JavaScript и программирование в целом. Перевод на хабре: http://habrahabr.ru/post/240219/ На английском :http://eloquentjavascript.net/
http://ru.discovermeteor.com/ - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков. Полностью на русском.
И не забываем читать официальную документацию для каждого фреймворка.
Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.
http://www.jstherightway.org/ - Огромный гайд составленный буржуями. Есть книги, статьи и всё-всё-всё.
http://nodeguide.ru - Огромное количество переведённых статей по Node.js
http://node-center.ru - собрание информации по Node.js. Особенно интересен раздел со ссылками и книгами.
Бложики и новостные ленты:
http://dailyjs.com/ - DailyJS
http://weblog.bocoup.com/ - Bocoup Weblog
http://perfectionkills.com/ - Perfection Kills
http://www.reddit.com/r/javascript - subreddit на reddit.com
http://toddmotto.com/ - Todd Motto, Lead front-end @appsbroker. Developer Expert @google.
Онлайн курсы:
Как же можно учить язык, только читая книжки? Нужна практика, и только так изучаемое усваивается, не иначе.
CodeSchool - http://codeschool.com/ Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/ Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.
Udacity - https://www.udacity.com/course/ud015 Дает хорошее представление о замыканиях.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/
СПИСОК ИНСТРУМЕНТОВ ДЛЯ РАЗЛИЧНЫХ ЦЕЛЕЙ
Front-end: jQuery, Angular, React, Backbone, Meteor.
Back-end: Node.js, Express, Sails, Socket.io.
Десктопные приложения: NW.js, WinJS.
Мобильные приложения: Cordova, NativeScript, Phonegap, Ionic.
GameDev: Phaser, Cocos, Pixi, Unity.
Тестирование: Mocha, Chai, Jasmin, Sinon.
Continuous Integration: Semaphore, Shippable.