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), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
5. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS: Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор немаленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, React, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
— Говоришь, он тебя быдлокодером обозвал? Большое дело. Писать на JS не зазорно… Нет, я разве сказал, что ты быдлокодер? Господи ты боже мой! Теперь я понимаю, почему этот парень тебя подъебывает.
>>583080 Да я иронизирую же. Курсы там для аутистов, прошел их за 10 дней вечерами, но в принципе помогли разобраться в объектах-прототипах на начальном уровне. Я еще Кантора читаю, уже вторую часть. Мне вот интересно, насколько сильно нужно верстальщику углубляться в JS, особенно в ES2015? Во всех вакансиях он требуется, а что верстальщики реально на нем делают? Модалки заставляют открываться/закрываться или нечто большее? Насколько сильно будут спрашивать по JS, если я иду устраиваться верстальщиком?
>>583130 Ну академию-то я давно уже прошел, интенсив даже посмотрел базовый. А если идти на JS-погромиста, что я там буду делать? В вакансии на джуна требуется Oracle DB.
>>583134 Смотря какая вакансия же, ты не путай жс программиста и фронтендера, первый может чисто жс код писать без верстки, второй же будет ещё и верстать. Требуют только БД? Обычно с БД требуют знания бэкенда какого-нибудь, нода или похапе там.
Там в прошлом треде поднимали вопрос "гугл vs дрочка знаний", добавлю небольшую отсебятину из опыта общения с успешными коллегами топовых компаний запада.
На интервью обычно могут ничего не спросить про библиотеки и языки, кроме базовых вопросов, зато попросят написать код и будут смотреть как вы это делаете и какие у вас знания про работу с инструментами, скорость разработки и подход. Фактически, вы должны и понимать что-как и уметь использовать документации чтобы быстро находить всё что надо.
Зато потом может быть следующее интервью, где вас как раз заебут "алгоритмами и структурами данных", классической такой CS. Работодатель исходит из того, что вы знаете как выстраивать архитектуру, умете в проектирование и можете быстро освоить новые инструменты и языки. У нас же почему то бешеный дрочь на сам инструмент. Например в снэпчате в вакансиях не указаны языки программирования. Почему? Да потому что если вы умеет писать годный код на любом языке, то освоить другой проблемой для вас не будет. Отсюда и бывает так, что в крупных компаниях человек может писать и на С++ и на жабе и на питоне и на жс. Во всяких гуглах такое часто, перекидывают мартыханов в разные отделы куда нужны люди.
В целом, это правильный подход. Им нужен гибкий специалист который в целом понимает "программирование", а не выдрочил каждую функцию любимого язычка.
>>583141 Тут можно аналогию провести с автозаводом допустим: "там" набирают инженеров, а "нас" роботов на конвеер. Вот от роботов и требуется иеального выполнения работы его единственной клешней/сверлом/чем там сейчас машины делают. А от инженера требуется, ну, все остальное требуется.
>>583152 Изучать кампуктер саенсы, а не только языки да фреймворки. Впрочем, многим это и не надо, изучил ангуляр да похапе, устроился на удаленку и играешь в фоллачи со скуйримами. И я не говорю это как что-то плохое.
>>583185 Ну и наклепали пиндосы этих сайтиков, причем все выглядят одинаково (уровень знаний который там дают тоже в принципе, везде одинаково хуевый).
Пацаны, подскажите, как перестать быть говнокодером.
Я недавно начал основательно учить js, и в прошлом треде спрашивал про задание с рекурсией, где надо было вывести диапазон чисел типа (1, 10) => (2, 9). По итогу написал так:
Смотрю и думаю, ну говно же полное. Две функции там где наверняка должна быть одна. А на большее мозгов не хватает. И самое неприятное - мыслишки, типа работает и хуй с ним. Времени жаль доводить до ума, лучше потратить его на другие темы и задания.
Так вот, как прокачивать эту ебучую соображалку? Чтобы хватало мозгов сразу делать нормально, а не писать хуйню и думать, как бы ее переделать, чтобы не стремно было.
>>583192 Он просто очередной дебил, который прочитал Кантора и считает что это "норм знания". Эх, щас бы миддла из говноконторки почитать и считать что он хороший программист и его сайт не полное говно))
>>583190 > Чтобы хватало мозгов сразу делать нормально, а не писать хуйню и думать, как бы ее переделать Только практика. Можешь попробовать почитать что-то вроде совершенного кода, эта книжка проходится по всем аспектам, которые отличают красивый код от говнокода - но, скорее всего, тебе ещё рано. Пиши плохой код, думай о том, как его можно улучшить, пиши много кода - и в один момент ты наверняка достигнешь просветления.
>>582891 (OP) Аноны! Хочу редактор сайта на JS. Так чтобы элементы по страничкам таскать, а он потом все это в итоговую сливает. Как это сделано на всяких конструкторах лэндингов. Куда копать ? Где взять каркас или готовое решение ?
Ананасы, есть идеи, как сделать такую штуку? Нужно, чтобы одно изображение постепенно перекрывалось другим, если тащишь линию в одну сторону, и наоборот, если в другую.
Ну, если бы ты хоть немного знал о Канторе, то ты бы знал что он сам себя топовым программистом не считает, как и многие другие программисты его таким не считают. У тебя проблема с логикой, типа раз Кантор адаптировал хорошо MDN и подобное для рюсни такой себе htmlbook лол, то значит он априори мега йоба кодер, будто писательские навыки как-то связаны со скиллом программирования.
Постигая весь дзен программирования, я понял одну интересную вещь. Хорошие программисты программируют. Они не пишут учебников по программированию. Учебники пишут те, кто не очень смог стать хорошим программистом. Потому что зазубрить официальную документацию и подать её с деепричастными оборотами у них выходит лучше, чем её использовать. Вообще, учебники по программированию - полная хрень. Хочешь научиться - открой документацию, которую сами создатели языка написали. там есть ВСЯ ИСЧЕРПЫВАЮЩАЯ информация по теме. Там есть все возможные ответы, которые могу прийти тебе в голову в процессе изучения языка.
Другое дело книги о стилях кода, паттернах и прочей ебалде, в которых описываются крутые решения задач. Это дело нужное и полезное. Не знаю кто их пишет, бывшие ли программисты на пенсии, или кто ещё, но это читать надо. Кантор такие книги не пишет. Он просто переводит документацию приправляя её своими примерами, кстати довольно годными. Но, блять, пример рандома у него, сколько лет на сайте висит, не верный. Все им пользуются, а он сука, касячный.. вот и верь потом
>>583397 Хороший пост, правильный. А книги по архитектуре и паттернам пишут как раз опытные программисты обычно, поэтому книги эти и рекомендуют после года-двух работы в сфере, чтобы ПОНИМАТЬ о чем там написано с собственного опыта и практики.
Хожу в ДС2 уже 3 недели по собеседованиям. Сначала думал - пойду на ноду, зря штоли учил. (и опыт работы на ноде год есть). Сейчас уже даже на верстальщика готов пойти за 20к. Сука. никому не нужен нод программист. Висят вакансии только блять, с переездом в Прагу (уже месяца два висит) или тимлид нод жс кококо манлариснкий опыт работы 20 лет зп 2.5к долларов. Всем заявок накидал, откликнулись только одни. И то носами водят. Я с монгой рабтал, а у них постгрес. А нодеров как говна вокруг.
Зато знаешь что я слышал через одно собеседование? "нод программист7 интересно. Но у нас проект на ПХП. у нас нет времени переделывать вс на ноду, извините. Мы лучше дальше на пхп будем".
А один мужик нормальный откровенно сказал - ты, грит, рано ноду профильным язком сделал. Она ещё нигде не используется. Только в очень крупных фирмах, где все уже укомплектовано. Так что разбирайся в ЦМСках и не выёбывайся. лет через 7 можешь со своей нодой вылазить.
Достаточно ли основ на learn.javascript для фронтэнда чтобы начать дрочить jquery? Или же необходимо задрочить полностью хотя бы первую часть? В общем, какого объема должно быть достаточно чтобы перейти к jquery?
>>583411 я тебе так скажу, видел своими глазами jquery программиста. Зп 50к в ДС2. Хуй ему js сдался. он его вообще в душе не ебал. Ни функций, ни массивов. Ничерта. Вот реальная макака. селектор.функция(клик.сделать красным)
Вот всё что он знал и ему ничего больше не надо было. охуенный специалист. Он пишет, а что пишет не знает. Колбек какой то. Замыкание? нахуй оно надо.
Все что непонятно - копирует со стековерфлоу.
Вот сука. учись!
Если ты js собрался учить для jq, то не теряй времени и учи сразу jq. Мир нынче ебанутый - на работу не глядя возьмут.
>>583411 Но если уж ты собрался хорошо учить js. То честь тебе и хвала.
Если уж реально хорошо, то доучи его досконально, не до уровня Кантора - вот переменная, вот массив. А до уровня реального понимания, что "все есть объект" и что такое "[scope]"/ Вот когда ты это реально поймешь и осилишь.
Нахуй тебе этот jq не понадобится. Ты от него шарахаться начнешь и материть.
А вообще jq учится за сутки. За сутки, анон. Оставь эту библиотечку на крайний случай, когда припрёт. Почитаешь перед собеседованием. Там не надо ничего учить. show - показать элемент hide - спрятать элемент.
>>583419 вот и я о том же. Я когда учил - мечтал что щас буду игрушки блять делать, мморпг и супер нагруженные приложения. И таки я проработал в высоконагруженном приложении год. Написал серверную часть. Только один хуй - высконагруженное приложение в хуй никому не уперлось и никого там не было. из заявленных двух миллионов униквальных посетителей в день, приходило 50к. А с них бабла на аренду сервака не хатало. Так проект и развалсял. Реально.. для ноды ещё время не пришло. Парсеры на ней хорошо делать можно
>>583424 Ты, видимо, мало с нодой работал. Логика все равно дублируется, только на одном языке, что на фронте, что на бэке. За исключением всяких метеоров и эмберов.
>>583429 Работал не так много, но в своих проектах у меня были обычно директории server, client и common. И в этом common как раз вся логика и самая сложная часть приложения (делал пару игр). Модули из common подключаются как на сервер, так и на клиент. Или у меня опыт слишком экстремальный?
Не понимаю как создать ивентАноним19/11/15 Чтв 01:16:32#58№583455
Вот такая проблема: на страницу после нажатия кнопки подгружается форма. Надо ее заполнить после того как она загрузилась. Нужно сделать event прогрузки этой формы. У последнего поля есть id, пусть testtest. Пытаюсь написать как понимаю http://pastebin.com/miUksiXD
Получаю alert сразу как только загружается страница. Пытаюсь добавить document.dispatchEvent('showup'); перед алертом - так вообще ошибка вылетает. Очевидно, я не понимаю как вообще создавать event'ы. Научите, аноны-прогеры.
>>583459 Хочу сделать событие "Конец подгрузки формы". Типа как document.onload только для одной формы. Пусть как только срабатывает это событие, выходит алерт с текстом (ну это потом будет замещено на нормальный код). Вот что у меня не получается.
>>583419 Почему для использования ноды нужен какой-то особый повод? Как все в этом треде знают, на ноде писать приложения в разы приятнее и полезнее, чем на большинстве других платформ.
Уже 1.5 недели хожу на собеседования на позицию фронтенд, в ДС. Пришло 5 офферов, 3 отказал, 2 думаю, и жду оффер/отказ еще из двух мест. Предложений очень много, пришлось заводить trello чтобы не запутаться во всем, сам резюме никуда не отправлял, в основном звонят и пишут (примерно по 10 звонков и писем в день), большинство веб-студии, им отказывал сразу, есть интересные места. Названия компаний палить не буду. Задавайте вопросы если интересно, пока тут – могу ответить.
>>583648 Первый раз на хх? Я туда как-то выложил резюме "разработчика" на пыхе без единого коммерческого проекта, так и на него штук пять писем прислали.
>>583665 Ну несколько лет назад когда джуниором искал работу был уже на hh. Заметил что 70% hr отправляют приглашения не глядя в резюме. Остальные сперва отправят твое резюме технарям, и только после их согласия тебя пригласят.
>>583607 бляяя. пиздец. Зачем ты мне это показал? я думал он только в прогарммировании макак плодит. А этот пиздабол, оказывается, везде пролез. Кайден блять. Хуяйден
>>583572 потому что 90% веб-макак научились писать на пхп и по-другому просто не представляют как это модно делать. Потому что работодатель знает, что на рынке его будут ждать 100500 пхп профессионалов, готовых работать за еду. А нормальным нодерам надо платить. Нормальных нодеров надо искать.. Да ещё и.. чоэта за попабова - нода? шайтанами какая то. А вдруг она уязыива, а вдруг она не безопасна. Это ж надо её изучать, это ж надо досканально смотреть чокак..
По этой же причине все и сидят на sql, не желая переходить на nosql. Вроде в 3 раза быстрее, вроде прикольней. Но СТРАШНА БЛЯТЬ
>>583726 Работал с проектом на ноде, у которого база постгре. И там она действительно уместна, и с нереляционной базой были бы проблемы. Для динамических данных со сложной структурой, связями и частыми апдейтами nosql совсем не подходит.
На stackoverflow один чувак выложил код, который переводит время в AM/PM формат, сижу втыкаю:
function formatAMPM(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'pm' : 'am'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes + ' ' + ampm; return strTime; }
var ampm = hours >= 12 ? 'pm' : 'am';
Тут вроде понятно, если больше 12, то PM, меньше - AM.
hours = hours % 12;
Тут вроде тоже, если 15, будет 3, например.
hours = hours ? hours : 12; // the hour '0' should be '12'
А здесь зачем это? То есть, если hours == true, оставить как есть, если hours == 0, т. е. false, заменить 0 на 12. Но чтобы такое произошло, hours должен быть 24, а в таком формате никогда не показывается 24, максимум 23:59. Необходима ли эта строка?
Нюфаня итт. Учил кресты, прочитал по ним пару книжек, все что в них было описано понял, но дальнейший путь там как-то не очевиден и вакансий для джуна мало. Вот решил перекатиться на другой язык и выбор пал на js и питон, но питон детским каким-то кажется. Расскажите про ваш язык, тяжело ли нюфане будет вкатиться после крестов, что и в каком порядке изучать, на каком уровне знаний можно будет начать бегать по собеседованиям и т.д. Буду очень благодарен.
>>583867 Порог вхождения в js достаточно низок. После крестов будет норм. Но некоторые вещи придется переосмысливать. Но быстро привыкнешь. Зоны видимости, Все - объект, не строгая типизация, андефайнед,
но это херня все. освоишь быстро.
Вакансии на Джуна есть, но не много. Впринципе освоить js много времени не много и можно попытаться идти на мидла.
Но это что касается фронтенда. С бекендом придется поковыряться
>>583875 > Впринципе освоить js много времени не много и можно попытаться идти на мидла. В смысле минуя устройство джуном сразу траить на мидла устроиться?
>>583834 Такой вот примерчик говнокода, выглядит красиво, а на деле, приезжим не разобрать, приходится комменты писать xD. Просто в 12 часовом формате даты не может быть 0:15, оно будет 12:15 am. Эквивалент твоей строчки: if( hours == 0 ){ hours = 12; }
>>583909 Мне понравилась JS сильные стороны. А лучше начинать с проекта какого нить, в процессе разберешься что да как, лучше для себя конечно что-то пилить, но можно и на фрилансе заказ урвать какой-нибкдь
>>583963 Они сами мне позвонили. Им не отправлял. Два проекта, но об этом меня не спрашивали. Видимо они всех зовут, а там уже решают. Кому то дают тестовое задание. кому то нет. Мне вот не дали
>>584139 >>584142 Хуле накинулись, псы. У жс-а куча проблем, начиная от простой хуе-поддержки опп, заканчивая анальными играми кроссбраузерной поддержки.
>>583911 Чет читаю я эти сильные стороны JS и понять нифига не могу, там синтаксис представлен в виде каких-то диаграмм, которые я не пойму как читать. А мне бы как раз синтаксис выучить, калькулятор там для теста написать, хотя бы с двумя операндами.
>>584150 > Хуле накинулись, псы. > У жс-а куча проблем, начиная от простой хуе-поддержки опп ES6 видел? > заканчивая анальными играми кроссбраузерной поддержки. Пруфы? > Чот не увидел твоих. Я твоих тоже не увидел.
>>584155 >> Хуле накинулись, псы. >> У жс-а куча проблем, начиная от простой хуе-поддержки >опп >ES6 видел? Сахар. Ты бы ещё кофи сюда принёс, долбоёб.
>>584155 >>584161 >request >на клиенте >просят пруфы не не кроссбраузерность picrelated
>>584150 Анальные игры с кросбрауезрностью в 90% случаев справедливы только для IE<9. И то по любому случаю чуть ли не в офф документации написаны 1-2 строчки, которые позволяют исправить положение. Никакого бугурта. А если у тебя все плохо с ООП, то жс тут не причем. Все методы ООП работают на ура. Или ты думаешь что если в жс нет слова "класс", то все, пизда-приплыли? (теперь, кстати, уже есть, только в хуй никому не уперлось)
>>584168 ну если он про запросы заговорил, то наверное ноду имел ввиду.
Или какой ему запрос нужен на клиенте? аякс? если ему 10 строчек кода для запроса лениво скопировать и у него от этого жопа рвется, то он долбаеб вдвойне.
>>584169 пиздос какой то. чот не с той книжки ты начал. может тут и круто все объяснено, но у меня сразу в глазах зарябило. Даже разбирпаться не стал. Есть докучи всего, где человечески языком все объяснено. Думаю для начала тебе надо что попроще почитать, а потом к этой книге вернуться, когда уже будешь знать получше тему.
>>584179 >Которого ни у кого нет? (как ei11-10-edge не больше 2 минут на исправление кросбраузерности для любой ситуации. ох, забыл. Если ты подключишь ебаный jq, то большинство проблем с кросбраузерностью решится на автомате. И да, не все js программисты любят jq. Не равняй всех под одно гребенку.
Если в твой пхп функция для отправки запроса вшита, то в КЛИЕНТСКОМ js она применяется не так уж часто. отсюда и её более громоздкий вид в целых 10 строк! охуеть. Подключил объект и хоть заотрправляйся запросами до смерти. в чем бугурт? Скопировать,потому что хуй кто знает как она пишется. да и незачем знать.
А вот покажи мне асинхронный пхп сервер, который не ляжет под миллионам одновременных запросов? дата центр выкупишь для сейчас махины? пхп ненужно. надеюсь оно скоро здохнет
Что-то читаю интернеты, и все пишут, что чтобы научиться программировать, нужно самому делать какие-то проекты, попутно пользуясь гуглом. Не могли бы вы объяснить, что это за проекты такие, где их искать?
>>584235 c learn.javascript для начала. потом переходи на "JavaScript: Подробное руководство"
Только не вздумай пропускать главы,под предлогом, что это тебе сейчас не надо, или ты это никогда использовать не будешь. Потом заебешься искать нужный мануал. А так хотя бы будешь знать как выполнить ту или иную задачу
Сам себе задачи хуй придумаешь, а годые хрен в сети найдешь. Самый лучший вариант - сходить на пару тройку собеседований и взять тестовые задания. Так ты сможешь понять что и как делается и что нужно делать на работе.
Буду краток. Нода. Express. express-cluster. Worker падает без какого бы то ни было сообщения. Просто завершается по-тихому и спавнится новый worker (настроено на автоматический респавн). На СО советуют ставить обработчик "unhandledException" на процесс. Пробовал. Ничего не изменилось, так же втихую падает. Гугл не помог. Памяти судя по top хватает с избытком. Че за хуйня то?
>>584295 Я так и делал. В самом начале файла (то есть будет работать и для воркера, и для основного процесса) впиливал это process.on('uncaughtException', но толку нихуя - падает и молчит при этом.
>>584305 Во, уже лучше, спасибо. Так ловится. Впрочем, допустим поймал таким образом, и что мне это даст? Мне надо как-то поймать ошибку внутри процесса и предотвратить его падение, а еще лучше - найти место, где ошибка генерируется.
>>584318 Странно, в /var/log/messages пишет >Nov 19 21:26:25 test kernel: Out of memory: Kill process 7119 (node) score 627 or sacrifice child >Nov 19 21:26:25 test kernel: Killed process 7119 (node) total-vm:1878668kB, anon-rss:655672kB, file-rss:1024kB Хотя при этом top говорит, что используется около 130-140 метров памяти. Бред какой-то.
>>584141 >>584150 >>584168 > куча-говно-либ костылей, самый известный jq дальше сам догадаешься, простейший запрос сделоть - анальные игры > заканчивая анальными играми кроссбраузерной поддержки > request на клиенте Это всё когда-то было так, но ты пропустил мощнейшую революцию начала 2010х. Ключевые слова: npm, browserify, CommonJS.
>>584191 > Скопировать,потому что хуй кто знает как она пишется Зачем копировать, когда есть npm?
>>584150 > начиная от простой хуе-поддержки опп В JS ООП прототипный. Его в частности можно использовать и как классический, но он гораздо мощнее. JS поддерживает композицию и функциональный подход, что long-term поддерживать проще, чем многоуровневые иерархии классов в «обычных» языках. (Которые подвержены проблеме хрупкого базового класса: https://en.wikipedia.org/wiki/Fragile_base_class) Если хочешь разобраться в прототипном ООП, посмотри доклады Reginald Braithwaite и Eric Elliott.
>>584326 Что значит "правильно" и "неправильно"? Как в примере https://www.npmjs.com/package/express-cluster сказано, так и спавню, ну естественно у меня там дополнительные модули подключаются, а так все идентично. В итоге получается два процесса, мастер и воркер (пока ограничил количество воркеров 1 штукой, для простоты).
Смотри анон, сегодня я пытался реализовать такую штуку на работе. (в итоге соснул конечно). В общем есть большой массив объектов. Есть некая функция которая делает действие над всеми этими объектами (скажем сортирует). Эта функция вызывает по клику пользователя на кнопочку. Т.к. их много, то на маломощных девайсах это выполняется довольно долго вплоть до нескольких секунд. Но иногда, пока объектов не так много (они добавляются постепенно, по мере загрузки) эта операция выполняется быстро. Так вот в первом случае мне надо показывать спиннер.
Если бы мне надо было показывать спиннер в обоих случаях, то всё было бы просто: $('#spinner').show(); sort(); $('#spinner).hide();
Я подумал, окей, я буду ставить таймаут на 300 мс, потом вызывать мою функцию, а потом, если спиннер показался, скрывать его если же функция выполнилась быстрее чем 300 мс, то отменять таймаут:
var delayShowSpinner = setTimeout(function() { $('#spinner').show(); }, 300); sort(); if ( $('#spinner').is(':visible') ) { $('#spinner).hide(); } else { cleartTimeout(delayShowSpinner); }
Мне казалось, такая конструкция должна работать. Я знаю что, то, что мы запланировали в setTimeout, вызовется при первой возможности, так везде пишут по крайней мере. Только как-то не очень понятно что имеется в виду. Я почему-то думал что движок js проверяет, не подошло ли время какого-нибудь таймера, постоянно. Фразу "при первой возможности" я понимал так: если мы сказали "ок, выполни этот код через 35 мс", то по истечении 35 мс, если движок выполнял какую-то команду или выражение кода, то он закончит выполнять её, и потом сразу же выполнит код из таймера. Оказалось всё не так. По крайней мере в хроме. Если бы это было так, то код который я привел работал бы. Т.е. во время выполнения очередной итерации внутри sort() , у меня бы выполнился мой $('#spinner').show(); а потом, по завершении sort, мой спиннер благополучно скрывался бы. Но нет, дебаггер показал, что у меня выполняется сорт, затем то, что ниже, и естесственно $('#spinner').show(); никогда не вызывается, т.к. таймер уже отменен. Так вот анон, поясни, пожалуйста, когда же всё-таки наступает этот момент выполнения кода, переданного в setTimeout? Когда вообще больше нечего выполнять? Или когда? Или ткни меня плиз лицом в место в спецификации или в понятное объяснение этого механизма, или своими словами объясни.
Конечно, если бы это был ajax вызов всё было бы просто. Я бы показал спиннер, сделал вызов, получил бы промиз, передал бы в него коллбек, в котором скрыл бы спиннер. Но код в sort не делает http запросы, а стало быть выполняется синхронно а это значит (я прав?) что моему setTimeout просто не даётся шанса выполниться. В общем, вторая часть вопроса, это можно ли как-то сделать синхронный вызов асинхронным? И вообще что, ещё кроме ajax вызовов в JS является асинхронным? и как ajax вызовам удается быть асинхронными? Как они обходят однопоточную природу JS?
И да, как бы ты, анон, посоветовал решить эту задачу?
>>584329 Просто увидел, что у тебя способ отличается от того, что в доках описан, и не увидел что либу используешь. Для чего она нужна, кстати? Можно же просто спавнить
расскажите что может вообще о sails. Как ей пользоваться? надо задание срочно тестовое сделать на ней, а как - хз. я с ней работать не умею, она какая то странная, а мануала на русском нет. и документации на русском не нашёл
>>584336 Ну так проще. А причину я вроде как нашел. Ну, понял в какую сторону копать во всяком случае. Поставил в top интервал обновления поменьше и увидел как при очередном запросе память резко испаряется. Где-то утечка, бесконечный цикл скорее всего или что-то еще.
>>584339 Да там просто всё. Кроме, блять, сокетов. Кто бы про них тут пояснил. Охуенный MVC-фреймворк с генераторами и всякими плюхами, вроде i13n и csrf икаропки. Задавай вопросы, отвечу
>>584336 Да никак, менять алгоритмы сортировки на асинхронные, потому что например цикл for как ты не изъебывайся, он все равно все процессорное время займет пока не выполнится.
Всем привет, пацаны. Моя первая программа. Объясните, пожалуйста, почему массив внутри jquery функции отдается корректно, но если запросить его вне ее то вместо массива отдается какая-то херня?
Господа, только не ссыте на меня плз. Очень нужно смочь в node.js, попытался обмазаться Node.js in action, ну, которая в шапке еще указана, но пиздец нихуя не понял. Посоветуйте какую книгу по ноде, желательно на английском, совсем для ньюфагов. Спасибо.
>>584525 Как ты можешь заетить в консоли, строки 21 и 22 выполняются перед 18 и 19.Или что ты назвал "какой-то хернёй"?
>>584334 >Но код в sort не делает http запросы, а стало быть выполняется синхронно а это значит (я прав?) что моему setTimeout просто не даётся шанса выполниться. >моему setTimeout просто не даётся шанса выполниться. хттп запросы тут вообще не при чём, но да, ты прав. У жс всего один тред, так что ты никак не можешь иметь и сортировку (цикл), и что-то ещё параллельно. Нужно писать каштомную функцию для сортировки, с периодическими выходами из неё. Работает ли спиннер нормально, если его запустить заранее? Как вариант — замерять время на более мелких массивах, и исходя из этого (потестить на разных машинах) запускать таймер при достижении определённого количество элементов сразу, так как ты будешь уже с большой вероятностью предполагать долгое выполнение. (Или просто как только время выполнения функции превысит 300мс, все следующие уже запускаешь со спиннером)
>>584342 Снова выхожу на связь. Погуглил, нашел memwatch и heapdump, решил ими обнаруживать утечку памяти. Сделал так: [code lang="js"] #!/usr/bin/env node
var Heapdump = require("heapdump"); var memwatch = require("memwatch-next");
var heapDump;
memwatch.on("leak", function(info) { console.error(info); if (!heapDump) { heapDump = new memwatch.HeapDiff(); } else { var diff = heapDump.end(); console.error(util.inspect(diff, true, null)); heapDump = null; } var file = `/tmp/myapp-${process.pid}-${new Date()}.heapsnapshot`; heapdump.writeSnapshot(file, function(err) { if (err) console.error(err); else console.error(`Wrote snapshot: ${file}`); }); }); [/code]
И... нихуя. Точно так же молча падает. Ни файлов в /tmp, ни вывода в консоль.
Всем привет. Большая проблема с аяксом - делаю запрос из кода и он длится 3 секунды. Если делать тот же запрос из консоли браузера - 6 миллисекунд. При прямом обращении к скрипту - 6 миллисекунд. Почему так происходит?
Там трабл в том, что событие происходит после команды от вэбсокета. Само собой, я запихнул все действия напрямую в вэбсокет и проблема не стоит так остро, но академический интерес остался
>>584703 Хуй там. Нода 5.0.0 на центосе х64. Собственно пока и не делал больше ничего, занят был. В душе не ебу что тут еще можно сделать, кроме как дебажить с помощью console.log, лел. На локалхосте с 32-битной убунтой 10.04 и той же версией ноды ни разу так не падало. >>584704 Он не тебя спрашивал. Перестань в глаза долбиться.
>>584876 Очень интересная картина, короче. app.js: [code lang="js"] var express = require("express"); var app = express(); app.use(require("./middlewares")); //и далее [/code] middlewares/index.js: [code lang="js"] module.exports = [ require("./ip-fix") //и далее ]; [/code] ip-fix.js: [code lang="js"] module.exports = function(req, res, next) { console.log("request!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); //и далее }; [/code]
Запускаем wget site.com/buggy/path.html и получаем: ОШИБКА 520: Origin Error. И так где-то на каждом 5-6 запросе. И что интересно, даже до console.log("request!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); дело не доходит, то есть все наебывается еще внутри Express-а, до передачи middleware-ям.
>>584925 Потестил на локалхосте. Память иногда внезапно с ~50-90 метров отжирается до 400-600 и тут же возвращается к 50-90. Учитывая, что 64-биная версия жрет больше памяти, и что на впске всего гиг, все становится на свои места. Не понятно только, какого хуя происходит этот скачок. Впрочем, похуй, в продакшене 4 гига, столько не отожрет. Но кейс интересный.
>>585033 Так learn.js.ru это мануал для ньюфагов, а глава про замыкания идёт раньше чем глава про this, если память меня не подводит, поэтому такой пример. Ну и он нагляднее на самом деле
Анон, опиши как архитектурно организовал бы калькулятор с кешированием по типу объекта Math. Я описал конструктор Calculator, в котором 4 метода на основные действия, кеш - добавление в пустой объект имя вызванного метода, в котором в свою очередь свойство - стрингованные аргументы метода, и значение - результат вычисления. Все работает, но мне так не нравится чет, а сообразить что-то другое не могу.
Шалом, братья. Вкатываюсь постепенно в JS после джавы. Написал на ванилле калькулятор и пятнашки для знакомства с нативными методами DOM, начал разбираться с фреймворками. Ментор посоветовал начать с бэкбона, типа хоть он и теряет популярность, но для общего понимания необходим. Он сейчас дохуя занятой постоянно, так что задания мне не дал. Что можно интересного и средней сложности написать на бэкбоне? Кроме тудушки, которая и так везде в качестве туториала. А то чисто втыкая в документацию я явно ничего не добьюсь.
>>582891 (OP) Поясните за Node.js в продакшене, не сильно ли затруднаяет то, что программа-сервер для всех запросов всего один? Бывает ли что сервер падает из за какого то неудачного запроса? Что делают в этом случае?
>>585554 нод-сервер падает в результате любой малейшей ошибки. Это его минус. Приходится мутить обработчики возможных ошибок во всех проблемных местах.
Нод-серер поднимается за 0.00001 сек. Это его плюс, поэтому если ошибка возникает раз в тысячилетие, то и хуй с ней
Анон, поясни как сейчас можно делать вебапп? Поясни за разные архитектуры, рест апи сервер+ангуляр приложение. Поясни за рест апи сервера. Я запутался во всей этой хуите.
>>585590 >нод-сервер падает в результате любой малейшей ошибки. Маня, ты знаешь, что у ноды есть два режима - дев и продакшн? В продакшене он почти никогда не падает, тогда как в деве он при любой ошибке останавливается и выводит стактрейс для разраба.
>>585606 Ты конкретно вопрос задавай, у тебя какой-то очень он мыльный. Что модно? Реакты, флаксы, нода, сейлсы или экспрессы, другая половина МЕАН стак. В оборот ещё входит метеор, сейчас бабла получил и даже в СНГ уже вакансии появляются постоянно.
Новые проекты на ангуляре делать сейчас не хотят, ждут выхода 2.0 версии и осваивают инструменты выше. А про рест апи. Делать без РЕСТ сейчас моветон, тут даже не вопрос.
Карочи, у тебя "пасаны поскжаите карочи архитектуру ну типа ангуляр и рест апи ну))" это не вопрос.
>>585628 Ну, смотри, я задался вопросом когда захотел запилить кое-какой сервис для себя чтобы мог им пользоваться с любой хуиты, в голову мне пришло из моих знаний что-то про апи сервера и разные клиенты к ним использующие это апи, но так как я хуйлан без структурированных знаний, то я не нашёл правильного названия этой хуйни. Так же я задался вопросом реализации этой хуйни, но столкнулся с вопросом насчёт веб клиента и нагуглил что они могут быть ТОЛСТЫМИ и ТОНКИМИ, но нихуя не понял. Если чего-то не понятно написал, могу дописать.
допустим функция есть она возвращает массив, ок? вот я ее вызываю ВозвразательМассива(); и как мне теперь обратится к конкретному элементу этого массива?
>>585635 Если ты собираешься писать реализацию на JS, какой-нибудь SPA, то в целом можешь не забивать себе голову тонкими, толстыми и всякими бохатыми клиентами. Про REST API не совсем понял вопрос. Работа через REST представляет собой правильную реализацию http запросов к серверу, вот и всё. http://habrahabr.ru/post/144011/ например
Надеюсь, стало яснее. Про архитектуру, погугли конкретно по фреймворку и архитектуре на нём, если хочешь чистый JS, то попробуй MEAN или Meteor. Второй очень простой и написать какой-нибудь простой телеграмм или ватсапп на нём занимает пару часов.
Аноны, умоляю, выполните маленький реквест. Нужен пользовательский скрипт для GreasyMonkey который будет автоматом вставлять текст в форму на странице и отправлять его (на странице есть кнопка отправки, и можно отправлять клавишей Enter). Все это должно повторяться через определенный промежуток времени. Если вам лень написать то хотя бы объясните по-подробней что и как делать, ибо я с JavaScript'ом дело не имел и понятия не имею что там да как. Заранее спасибо.
>>585731 Было бы очень хорошо если бы ты прокомментировал что там происходит :D Хорошо, текстареа это я так понимаю само поле ввода, ок, скрипт сам его находит? 'HUI' - это я так понимаю текст , хорошо .click() - что оно делает? Таймаут это таймаут, вроде все ясно. Спасибо что помогаешь такому дауну как я :D
>>585735 .click() кликает по кнопке "Отправить". Всё, что внутри $() - это CSS селекторы. Нужно указать на конкретное поле ввода и на конкретную кнопку отправки, иначе не сработает.
http://www.freeproxy-list.ru/proxy-list/2 Есть сайт с проксями. Но жиды не хотят по API палить сразу все прокси, зато предоставляют их в виде обычной хтмл-таблички. Но вот проблема, они не палят порт. Каким-то хуем его скрывают, подставляя туда какой-то макрос.
Перерыл весь код в поисках JS-скрипта, подменяющего макросы реальным портом. Нихуя не нашел. Помогите. Как вытащить порт оттуда?
>>585766 А, и правда. Ну все равно у них есть функция, которая заменяет этот хеш на порт. Если влом искать, то можешь парсить через какой-нибудь фантомжс, который поддерживает выполнение жс.
>>585769 >var a = "339831203170"; > (function(d, w, c) { Это же вообще счетчик яндекс-метрики. Причем он здесь? Он вообще изменяться не должен, иначе яндекс его не найдет. Или они используют одну из переменных счетчика яндекса в вычислениях?
a - это эта переменная?
А что за хуйня с f9653658 и подобными? Почему "f" впереди, что это значит?
>>585789 >>585783 А, бля, я дебил. Спасиб, ты мне помог, теперь все понятно. Число - переменная счетчика яндекса - минус рандомная переменная с "f". Теперь порты вычисляются
Посоны, сейчас прохожу курс на learn.javascript. Стоит ли прямо таки вызубривать все эти замыкания и рекурсии со стеками, перед тем тем как переходить к событиям и интерфейсам? Просто в следующем разделе все в принципе понятно, что и для чего используется. А вот во введении много инфы, которая ньюфагу в программировании тяжело дается.
>>586108 Придумываешь задачу @ не зная ничерта, по наитию составляешь план действий @ гуглишь то, что тебе нужно @ в твоей программе 3345523 глобальных переменных, и 33 вложенных цикла. При запуске браузер через раз сжирает всю оперативную память. @ "И так сайдет" "Я пишу как могу" "Хуя-хуя и в продакшн" "Так все делают" @ Ты знаешь основы жс @ идешь работать в мак
>>586320 Читаешь 100500 умных книжек @ Придумываешь задачу @ не зная ничерта, по наитию составляешь план действий @ гуглишь то, что тебе нужно @ в твоей программе 3345523 глобальных переменных, и 33 вложенных цикла. При запуске браузер через раз сжирает всю оперативную память. @ "И так сайдет" "Я пишу как могу" "Хуя-хуя и в продакшн" "Так все делают" @ Ты знаешь основы жс @ идешь работать в мак
Ребята, а можно ли и целесообразно ли с использованием связки Node.js + Express.js написать, например, борду, форум и всё такое? Вообще крудошлёпство и релевантные ему дела? И будет ли оно работать лучше, чем будучи написанным на Рельсах или Джанге? Если у кого-то есть практический опыт сравнения, было бы ещё замечательнее.
>>586369 >можно ли и целесообразно ли с использованием связки Node.js + Express.js написать, например, борду, форум и всё такое? Можно и целесообразно. >будет ли оно работать лучше, чем будучи написанным на Рельсах или Джанге? Будет, если будешь юзать все профиты асинхронности. Если запилишь обычную синхронную парашу, то никакой разницы не будет. >Если у кого-то есть практический опыт сравнения, было бы ещё замечательнее. Джанго - устаревшая хрень, которая к тому же не может в нормальную асинхронность. А вместо рейлса можешь юзать сейлс, одно и то же.
function slowScroll(from, to, speed){ if(from < to){ for (var i = from; i < to; i++) { window.setTimeout('window.scrollBy(0,1)', speed++) }; } else if(from > to){ for (var i = to; i < from; i++) { window.setTimeout('window.scrollBy(0,-1)', speed++) }; }
}
Аноны, написал функцию для плавного скроллинга в браузере, но после ее применения пой ноут начинает подозрително жужжать. Я где-то ОШИБСЯ? tl;dr оцените уровень говнокодерства в велосипеде.
>>586380 function slowScroll(from, to, speed){ if(from < to){ for (var i = from; i < to; i++) { window.setTimeout('window.scrollBy(0,1)', speed++) }; } else if(from > to){ for (var i = to; i < from; i++) { window.setTimeout('window.scrollBy(0,-1)', speed++) }; }
>>586394 >Например? Применительно к тем же борде и форуму. Синхронно: Отправил пост с пикчей - проверил пост - обработал пикчу - создал запись в базу данных - вернул ответ. Асинхронно: Отправил пост - проверил картинку - вернул ответ. А длительная обработка изображения и работа с базой идёт сама дальше. Ну и параллельная обработка нескольких изображений. >А в чём фундаментальная разница между каким-нибудь Express и Sails? Экспресс низкоуровневый, сейлс высокоуровневый. С сейлсом работать проще и быстрей, зато с экспрессом можешь делать такие фичи, которые не всякий язык умеет.
>>586403 >Отправил пост - проверил картинку - вернул ответ. А длительная обработка изображения и работа с базой идёт сама дальше. А где хранится изображение до того, как она обработана, и создана соответствующая запись в базе данных? Ты же говоришь, что ответ возвращается до того. Или я как-то неправильно тебя понял.
>>586411 Сразу после отправки изображение падает во временную папку, обычно /temp или /tmp с названием вида upload_время_рандом. А во время обработки ему передается новое имя или возвращается старое, а также из временной папки оно перемещается в другое место или удаляется.
>>586440 Понятно, спасибо. Значит, связка Node.js + Express.js — это по сути RoR или Django, только с JS в качестве скриптового языка и с плюшками в виде асинхронности, которые в тех случаях можно реализовать только подключением сторонних модулей, верно? И, насколько я понял, всяких модулей в NPM не меньше, чем гемов для RoR.
>>586473 Спасибо, по технической части всё каркасно ясно. А вот среди западных заказчиков есть те, кто на удалёнку к себе принимает людей из Восточной Европы?
>>586489 Да. Единственная причина, по которой 95% не может уйти на удалёнку США или Ивропки - ужасный английский. Большинство даже CV/Resume не осилят написать на английском и потом попиздеть за жизнь полчасика с рекрутером, такие дела. В разделе половина присутствующих не умеют в английский совсем
>>586498 И многие из них хотят именно видеособеседование вместо текстового? Ну, и, если речь о видеособеседовании, то нормально же относятся к просьбе говорить помедленнее?
Хотел сделать поочередную анимированную смену цифр как на гифрелейтед, но не знаю не могу в таймауты дилеи. Подскажите пожалуйста, как сделать задержку в js. мимо непрограмист нехуйделать
>>586514 Неправильный фикс, так функция вызовется сразу, а по таймауту браузер попытается вызвать то, что возвратится из функции, что породит TypeError, если только возвращается не другая функция, а это уже другая история.
>>586545 Нет. Вызывается она потом. Вообще, как я понял, суть этого примера показать как работают замыкания. Возвращённая функция замыкает переменную, таким образом при вызовах значение сохраняется.
>>586569 Да, я уже понял. Получается, там функция фактически возвращает функцию с ссылкой на тот объект переменных, где currentCount был равен 1. То есть, обращаясь к переменной, мы можем работать с тем объектом переменных?
>>586582 Это нужно сплошь и рядом. Когда вешаешь обработчик события в браузере или задаешь callback на чтение фс/базы на сервере, например. Важно знать, с каким контекстом вызовется обработчик, callback. Ну или если в чистом виде воспользоваться этой техникой, можно слепить объект, как и положено объекту, хранящему свое внутреннее состояние.
>>586582 При вызове функции, в ней создается объект переменных (лексическое окружение, коллобжект), который уничтожается после завершения работы функции. Но в JS, как ты уже заметил, функции могут возвращать другие фунции, соответственно, внешняя функция заканчивает свою работу, и ее объект переменных уничтожается, но благодаря замыканию внутренняя функция все еще имеет доступ к нему. Замыкание это комбинация функции и того лексического окружения в котором она была порождена.
Двощик, помоги плиз. Вопрос по JSTL и javascript, этот тред наверное ближе всего. Есть код: <c:forEach items="${group.tObjects}" var="childObj"> <form name="${childObj.id}" method="POST" action=""> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <input type="hidden" name="targetid" value="${childObj.id}"> <tr class="tr-content"> <td><input type="checkbox" name="${childObj.id}"></td> <td><a href='javascript:document.forms["<c:out value="${childObj.id}"/>"].submit()' class="object-content">${childObj.name}</a></td> <td style="padding-left:10px;">${childObj.objectType.name}</td> <td style="padding-left:10px;">${childObj.objectType.description}</td> </tr> </form> </c:forEach>
По идее, он должен создавать формочку, а в формочке инпуты и <a href> с сабмитом. Но почему-то при нажатии на ссылку получаю вот такое: Uncaught TypeError: Cannot read property 'submit' of undefined
В исходном коде страницы на первый взгляд всё ок: <form name="11" method="POST" action=""> <input type="hidden" name="_csrf" value="3274dc36-3ff9-4a9e-a75b-ab40339e030c"/> <input type="hidden" name="targetid" value="11"> <tr class="tr-content"> <td><input type="checkbox" name="11"></td> <td><a href='javascript:document.forms["11"].submit()' class="object-content">Service 1</a></td> <td style="padding-left:10px;">Service</td> <td style="padding-left:10px;"></td> </tr> </form>
Анониус, как себя чувствует Node.js под Виндой? Не для продакшна, ясное дело. А для обучения. Просто вот те же RoR и Django под Виндой себя чувствуют не очень, постоянно какие-то проблемы то тут, то там. А что по Node?
>>587067 >>587062 Хуево, если ты будешь серьезно работать на ней и что-то разрабатывать. Без цигвина пиздец. Из-за ноды на линупс перекатился. Чувствую, скоро на макось перейду.
Пытаюсь сделать адаптивный текст, чтобы размер шрифта высчитывался из высоты родительского блока. Сам блок изначально высотой в 124px, font-size текста - 50px. Причем у блока нет прописанной высоты, его высота - высота текста плюс паддинги 10% сверху и снизу. Посчитал, что 50 это 40.32 процента от 124. Значит, шрифту надо задать размер, равный высоте блока, деленной на 100 и умноженной на 40.32.
Оно работает, но только если ресайзить страницу. А при загрузке/перезагрузке вместо нужного значения шрифта приходит какое-то левое. Я так понимаю, при загрузке он не может высчитать правильное значение, потому что чтобы дать блоку высоту, нужен размер шрифта, а чтобы узнать размер шрифта, нужна высота блока. Можно это как-нибудь пофиксить?
>>582891 (OP) Вечер в хату. Есть тут шарущие в использовании APIs. Интересует что-то подобное "Learn how to use the SoundCloud API!" на CodeAcademy. В программировании могу. JS начал топить с начала сентября. студент Дайте напутсвие что ли. Хочу мочь быть прошаренным, а не говнокодером. Я так понимаю книжки из ОП-поста читать на анг. лучше? тупой вопрос Есть ли что-то подобное программерской рулетки пикрилейтед, но только по JS.Высе что очень нравиться система - "вот тебе задача - решай".. Только что-то более тяжелое, возможно с намеками, где искать ответы... Блять реквест хуевый конечно, но не закидывайте говном плез.
>>587181 В программировании не даун, элементарную хуйню дано решаю. SQL подучивал, Java, C++, Щас определился что хочу быть Frontовиком. CSS, HTML уже могу нормально, все ништячки вплоть до последних Filter и т.д. уже могу. Верстаю приемлимо, правила знаю. Но c JS еще пень.
>>587183 Просто хочу осмыслить как их использовать. Мне бы элементарное понять. Как правильно подключать.Просто как .js файл. Я просто не могу самой базовой инфы найти. В структуре думаю как-то разберусь. По нужде осилю легко jQuery, начинал его учить, но посоветовали нормально сам JS знать. Так вот. Как происходит взаимодействие с разного рода API. По своей сути как вообще это использовать правильно, для чего, в чем это юзают, самую базовую философию объясните. Потому что так и догнать не могу. Что это - библиотеки, или что? Желательны примеры использования. Я так понимаю API YouTube исользуют во Вконтакте, чтобы по ссылке видео добавлять или нет?
Смотрим пример: >https://itunes.apple.com/search?term=jack+johnson Открываем его в браузере и видим JSON. Гуглим что такое JSON и как его парсить. Ты наверно уже понял что все что нам нужно, это скачать этот JSON, спарсить его, и получить нужную информацию. Как скачивать отдельные страницы? Гуглим AJAX и jQuery.
>>587073 >>587177 Так это, можно же кодить на Винде, а выполнять приложения на каком-нибудь Хероку или Nodejitsu, не? Можно же как-то сделать, чтобы WebStorm работал напрямую с вышеуказанными сервисами? Или не избежать работы с Нодой на локальной машине вообще никак?
на событии онклик по кнопке которая находится в ячейке таблицы происходит асинхронный пост запрос <button type="submit" class="btn btn-default btn-xs" style="border: 0px;" onclick="return deleteRow();"> <i class="glyphicon glyphicon-remove"></i> </button>
выполняется следующий js код
<script> function deleteRow() { var r = confirm('Вы уверены что хотите удалить информацию этого работника?'); if (r === true) { var trow = $(this).closest("tr"); trow.remove(); return true; } return false; } </script> Но почему-то динамически строка таблицы не удаляется. В бекенде все ок удаляется, и если обновить таблицу то строка пропадает
>>587843 Я осваиваю react. Дали задание: в старом коде пакет react-router использовался старая версия, сейчас он обновился и очень изменился api. В коде функция render писалась как в первом случае, а в новом мануале react-router пишется как во втором. Мануал написан на es6. У меня какая-то ошибка возникает, думал может в этом проблема.
>>587847 Хотя я обосрался, похоже. Если переменной присваивать, то всё норм, в обоих случаях одинаковый, вроде как, объект создаётся. Но это в FF, а в ноде 0.10.25, правда, второй вариант-таки не работает.
>>587856 А каким образом тогда лучше организовать мост между локальной машиной, на которой стоит IDE/редактор, и Херокой/Nodejitsu? IDE/редактор прямо сам может деплоить туда прилоги, или нужно подтянуть на локальную машину какую-то софтину, которая будет это делать?
>>588220 Это мелочи жизни. А если серьезно, то сам вкатился в php, а сейчас подумываю как бы постепенно перекатиться на js. Недавно попробовал browserify, например. Написал код для бэка, храню в объекте данные подтянутые из файловой системы,так нужно было для задачи, кручу-верчу, запихиваю во всякие редисы, передаю в клиентский фронт и там работаю с ними тем же кодом, прогнанным через browserify. Это абсолютно прекрасно. Осталось только тестами покрыть и получится переиспользуемый код работающий единообразно и там и там.
>>588352 Загляни на сайт, они эти летом перешли на новые обозначения версий, скакнув с 0.12.х/0.10.40 на 4.0.0, так что моей ноде меньше двух лет. Хотя устанавливал месяц назад через апт-гет..
Как остановить/удалить скрипт на чужой странице. Остановка в дебаггере не помогает, так как останавливаются все скрипты , а также полоса прокрутки. Удаление тега <script> тоже не помогает (скрипт продолжает выполняться).
>>588475 Поставь линукс вместо убунты. В свежей ноде есть все, что есть в свежем хроме. По сути, твоя нода 0.10 - это вообще другой язык (ES5), когда сейчас все пишут на ES6.
>>588559 Да я уж пересоберу из исходников. Просто не ожидал как-то такой подставы и даже не задумывался о версии, пока не пришлось пост тот писать. На маке-то всё норм через homebrew было.
>>588667 Какой смысл в этом если ты получаешь ту же страницу с именами скриптов в нечитабельном формате, но только обработанную прокси? В настройках самой прокси нельзя удялить какой-то конкретный скрипт, только все скрипты сразу.
Ну взял значит нажал везде "View Compiled", сейванул соответственно в style.css, script.js и в index.html, куда импортировал стили со скриптом и еще подгрузил External JavaScript, который был указан на codepen http://dat-gui.googlecode.com/git/build/dat.gui.min.js
Но чет нихуя не работает. По виду JS кода мне чот кажется, что его нужно еще во что-то обернуть, но я хз
посоны, ананчики и все остальные, дали задания без какой-либо базы, теории и тд. Прошу помощи в течении вечера в кое-каких непонятных мне аспектах. Вот первый вопрос: как ссылку на внешний скриптовый файл из рабочего HTML-документа
Добрый вечер аноны , хочу с собрать трактор как фронтендер. За плечами имею год работы node.js+angular.js макакой , и год работы (php (лол зашквар) +knockout.js) макакой. Какие скиллы в js мире наиболее востребованные для переезда?
>>589000 Но это же хорошо. Скачиваются те компоненты, которые необходимы для работы твоей библиотеки. Поэтому автору не нужно было их велосипедить, он взял готовые решения, которые используются в куче других пакетов, а значит будут более надежными и хорошо поддерживаемыми.
Анон, у меня не работает .click() на элементе который был вставлен в страницу. Элемент с классом привязан к этому клику. Начинает работать после перезагрузки страницы (после документ.ready). Как сделать чтоб работал без перезагрузки?
Какого-то хуя в ие10мобайл не работают инлайновые стайлы с дробными значениями px. А в хроме работают. Где баг, а где фича? То есть регается евент, допустим, на ресайз окна. В нем коллбэк типа node.setAttribute("style", "height: 66.666px); В итоге в хтмл он попадает, но ДОМ не рестайлится. Ссаный гугл выдает нерелевантную хуйню.
Шалом, котаны. В общем, не оставляя надежды вкатиться в ИТ, учу джс + ангулар, пишу свой пет-проект и все такое, но вот беда - разослал резюме и мне прислали тестовое, написать по внушительному ТЗ интернет-магазин(урезаный функционал, но авторизация, работа с БД и прочее присутствует) на НОДЕ. Я его знаю исключительно по коротенькому туториалу на nodebegginer или как-то так. Порылся в интеренете и нашел на learn.javascript.ru скринкаст по НОДЕ, глянул оглавление - норм, поосн рассказывает как написать чатик на ноде, но вот беда - юзает не чистый нод, а ЕКСПРЕСС. Вопрос от нуба - ЭТО НОРМАЛЬНО. Стоит ли писать с использованием этого фреймворка, в ТЗ об этом нет - просто сказано на НОДЕ накатай. В общем, может еще что посоветуете, кто в теме, а то до здачи осталось 5 дней, я только теорию пока раздупляю, послезавтра думаю начать писать сам тест-проект.
>>589402 Тащемта, вот основной мессадж ТЗ, без деталей: Необходимо разработать REST API для сайта “Доска объявлений” На сайте пользователи выкладывают товары, которые хотели бы продать. Основные возможности: авторизация регистрация получение/редактирование данных текущего пользователя смена пароля (при этом необходимо указать текущий пароль) поиск и сортировка товаров загружать/удалять изображение для товара поиск пользователей создание/редактирование/удаление товара авторизованным пользователем
>>589400 Ну про наёбывают мб - они могут хотеть чтобы ты на шару сделал работу. А использовать библиотеки/модули/прочее - можно, если не вагонами их брать. Так что смело можешь использовать express, тем более что он ебать как популярен
>>589412 Да вроде это >>589404 не так круто смотрится, чтобы обманывать кого-то. Хотя для человека, который с нодом не знаком, недели маловато на это ящитаю.
>>589404 Если тестовое задание делать больше одного вечера, и эта не та компания попасть в которую ты мечтал всю жизнь, посылай нахуй. Ты ищешь работу, каждый день собеседования, откуда у тебя время на такое задание.
>>589480 Алсо однажды прислали похожее тестовое задание, мне было лень его делать, я пошел на гитхаб, по названию компании нашел десяток чужих решений этого задания, скопировал его и отправил им. Пригласили на собеседование, про задание даже ничего не спрашивали. Через неделю прислали оффер.
У тебя, фактически, соединены два последних. Каждый раз, когда жс проверяет условие, он после этого уменьшает значение i на 1. Как только оно станет нулю, цикл закончится, так как 0 == false. Элементарно же.
>>589480 Так-то оно так, но из 5 отправленых резюме получил ответ лишь на одно и они дали это тестовое, больше идти некуда, нода штука интересная + так есть мотивация мобилизироваться и пилить каждый день, а то чесно я свой домашний проект периодическими вспышками пилю, а потом могу за неделю ни одной тсрочки не написать. А так - да, подобные тестовые меня раздражают, но что делать, если ньфаня без опыта и никуда не берут.
>>589503 Ты меня не понял, я ньюфаг в кодинге, так-то я скиловой работник в другой отрасли, но меня просто разочаровала моя работа, через силу работал в последнее время. Потому решил перекатиться в айти.
>>589596 >If parseInt encounters a character that is not a numeral in the specified radix, it ignores it and all succeeding characters and returns the integer value parsed up to that point. parseInt truncates numbers to integer values. Leading and trailing spaces are allowed.
>>589972 Да и не по теме не везде могут. >>589944 Если в конторе от тебя требуют не знания предмета, а вышку, то молись, чтобы тебя туда случайно не взяли.
Господа, почему не выполняется 7-я строка? Я рассчитываю получить в консоль: noneExistentFunction is not defined Magic! А получаю: noneExistentFunction is not defined
>>590173 Если совсем не получается, а не потому что ты ленивый уебок, то возьми и разбери основательно готовые решения пары задач, потом напиши код не подглядывая и с пониманием того, что пишешь от А до Я, дальше думаю поймешь в чем соль и начнешь решать сам, но думаю ты просто из тех кто "ходит на бокс", а не занимается им, если ты понимаешь о чем я.
Окей, гайз, подкажите, где я могу раздобыть годный и АКТУАЛЬНЫЙ гайд по Експрессу для ноды? А то Кантора скринкаст просто устарел и не соответствует тому, что сейчас есть в Експрессе, сегодня полдня проебал пытаясь адаптировать его видосы к тому, что вижу в ИДЕ и понял, что так дело не пойдет, гугол не выдал ничего полезного - хуета двухлетней давности. На офсайте скудная документация, можно и по ней, конечно копаться, но сроки поджимают и мне нужен какой-то туториал, чтобы быстро освоиться в азах. С меня как всегда нихуя, ну или шлюхами могу побампать
Привет котаны. Жабаблядь на связи. Я тут пытаюсь выбрать на чем пилить фронтенд к ресту на спринге. Но ангуляр и бакбон у меня вызывают лютый батхерт. ПОдскажите что нить попроще?? Я знаю вы знаете
>>590168 Кто тебе сказал? У него последнее видео на канале - часовой спотлайт с охуительным графеном. Скорее похоже на то, что он готовит что-то грандиозное
За неделю поковырял выделенные на пике функции jquery. Общее понимание работы пришло. Что делать дальше, коданы? Ковырять дальше или переключаться на angular, backbone, extJS? Задача пока стоит в общем ознакомлении с фреймворками.
>>590493 > Уже вышел? Ну так хули ты несешь тогда? Уже ВОТ-ВОТ. Обещали в конце 2015 > Тем более знаешь первй - легче разбираться со вторым будет. Нихуя. Они полностью изменили архитектуру, потому что им стало стыдно за то говно, которое было в первом ангуляре.
>>582891 (OP) Анон, хочется IDE, которая умела бы дополнять JS (пусть даже не очень умно) и показывать краткую документацию по методам, есть ли что-нибудь лучше связки Eclipse + Tern?
Котоны, допустим у меня есть код a.b(c).d(e,f) как он будет выполняться? Что нужно гуглить, чтобы ответить на подобный вопрос в общем виде? Operator precedence Operator associativity
>>590693 Слева направо и будет, ничего сложного. У объекта а найдётся метод b, который выполнится, затем у возвращенной хероты найдётся метод d, который тоже выполнится и всё.
>>590701 Знаю, но меня такие последовательности иногда заебывают. Хочется разобраться почему именно так работает, по какому закну. Это ведь, один хер, все операторы.
>>590717 Ну так а с чего ты сделал этот вывод >Но на то, что он собрался бросить кодинг совершенно не похоже. Если у тебя нет источника? У меня есть, например
>>590721 Что за источник? Я только логическими суждениями пользуюсь. Не думаю, что человек, потративший кучу времени на голом интузиазме, делая видео очень качественно и не на отъебись, вот так вот просто бросит. Хотя б видео залил бы, если уж так.
>>590728 Источник сам зоракс. Он раньше в конфе сидел по жсу, и ливнул некоторое время назад, сказал, что нашёл другое увлечение, без подробностей. Неудивительно, ему же всего 20 лет, или 21, бабу нашёл наверно и забил. Но суть в том, что нахуя подписывать на мертвый канал.
>>590738 Гугли область видимости. В кратце, консоль лог не может видеть, то что внутри функции находится, т.к. это как бы ниже уровнем, а он (и не только он, а вообще всё что угодно), может смотреть только выше уровнем.
>>590738 А нет, стоп, здесь дело в другом, сейчас объясню:
Внутри функции бар функция фуу хойстится (гугли хойстинг), поэтому foo = 10 переопределяет переменную-функцию foo, которая внутри bar, а не глобальную переменную foo с числом, поэтому и выводится 1.
>>590761 Нe сорян, это я за тебя искать не буду, где написано. Хз, где-то читал, уже не помню. Ну тем более это и так понятно, из твоего примера. Просто запомни, что сначала всплывают функции, а потом переменные (и они всплывают выше) >>590763 Тут ничего про порядок не написано, по-крайней мере я не вижу.
Я понимаю, что тред мёртвый, но в гугле нет информации по моему вопросу. Гуглил на 3х языках...
Анон, как получить рандомный юникс таймштамп заданного интервала на джейувери? Где стартовое время задаётся ручками, а текущее берётся автоматически или тоже можно задать ручками.
Что-то вида:
var start_time = 1262304000; var current_time = 1449147340; var = random_time = randomize_interval;
>>594828 Удаляй/добавляй math.random в while-цикле, в котором условие - это проверка, чтоб таймстамп не выходил за границы стартового и конечного значения таймстампа
>>599147 UNREAL Но попробуй, если по 12 часов в день будешь тратить, то может и выгорит - на nnm-club гуглишь "Специалист Javascript" там есть все уроки за 2014 год (1, 2, 3а, 3б, 3в, 3г). Лектор Борисов, я только ноду смотрел это 3в вроде, там годноя и обстоятельно часов на 14 рассказывает, с лабами.
>>599120 это когда мы пользуе весь спектр видов хттп запросов и весь ебучий спектр возможных ответов вместо того чтобы слать хмл/жисон и получать 200 или 500
Откуда берутся петухи с годом опыта и нереальным стеком технологий? Это правда? Реально за год можно где-то получить опыт Backbone, Angular, ES5/6, TypeScript, Gulp, Bower хуевер и куча вариаций? Я не теоретик, мне 26 лет и я 2 года поддерживал говно на вебформс бэке и jQuery. Потом полгода вот сейчас с AngularJS и всякими фронтэнд хуйнями, но большую часть времени я разбираюсь с бизнес-логикой. Возможностей библиотек и фреймворков мне хватает, натыкался на пару багов, но находил в ишью и терпеливо ждал релиза. Блядь, но откуда берутся ребята у которых по десять проектов, в которые они регулярно пулреквестят? Откуда такое шило в жопе? Я все проебал и не могу в ноулаферство? Не дано, если вечером хочу поняшится с тяночкой, а не пердолится в никому не нужный модуль? Так вроде и пацаны тоже не какие-то хикканы. В общем как жить, что бы быть в тонусе по всей этой фронтовой параше?
>>582891 (OP) Ананасы! Почему не работает? Выводит черный рисунок. var image = new SimpleImage ("skyline.jpg"); var image2 = inlarg (image); print (image2); function inlarg (image) { var nimage = new SimpleImage (image.getWidth()2, image.getHeight()2); for (var px of nimage.values()){ px = chooseColor(px.getX(), px.getY(), image); } return nimage; } function chooseColor (x, y, image){ var a = Math.floor(x/2); var b = Math.floor(y/2); var pixel = image.getPixel(a, b); return pixel; }
Этот тред посвящён главному языку будущего - 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), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
5. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Дуглас Крокфорд "JavaScript: сильные стороны"
Стефанов С. - "JavaScript. Шаблоны"
Джон Резиг - "Секреты JavaScript ниндзя"
Николас Закас - "JavaScript. Оптимизация производительности"
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Читать онлайн
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/
А потом? Я и так уже гений!!!
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор немаленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, React, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
Шапка: http://pastebin.com/MDwaMhVg