Это копия, сохраненная 31 января 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: - https://2ch.hk/pr/res/410856.html
Шапка тренда переезжает в репозиторий - https://github.com/ID25/js-thread (Делать пулл реквесты с корректировками и ссылками на материалы приветствуется), todo: сделать нормальный, структурированный гайд, посему реквестирую умельцев писарей, а то мне лень.
И так, главные новости последних дней. Ленивые пидарасы из JoyNet движутся со скоростью черепахи, в разработке node.js. От этого не слабо подгорело у стремящихся ребят из этой же компании, и поэтому они ушли. Очень сильная часть разрабов просто выкатилась из джойнета, оставив ноду на произвол судьбы, но свалили они не просто так, а сделали форк, ибо продвигать такое дело необходимо. На замену node.js пришел io.js, который будет активно разрабатываться частью людей, которым это реально нужно. После этого конечно и джойнет начали суетиться, и что то там обещают выпустить новую версию к новому году, но кому оно надо будет?
Вот новость по этой теме: http://www.infoworld.com/article/2855057/application-development/why-iojs-decided-to-fork-nodejs.html
К слову сказать, технология слишком свежа, чтобы в ней была какая то стабильность и ясность, поэтому сто раз подумайте, прежде чем вкатываться в это хипстерство. Лично я для себя решил вернуться к ноде через годик другой, когда тут уже все будет более менее ясно.
Эта зима принесла не мало бугуртов нам, сначала свежачок от Ангуляр, без привычных нам вещей, теперь раскол ноды (новость кстати тут еще есть : http://habrahabr.ru/post/245013/)
Короче, шикарный стек не слабо так пошатнулся, хорошо уселись разве что бекбонопидоры, которых давным давно уже ничего не ебет.
Ну ладно, хватит о бугурте. Пока ты листаешь нулевую, Барак Обама играется с canvasom - http://geektimes.ru/post/242701/
Даже ниггер пишет на JS!
Ну и небольшая заметочка для наших хипстерков. Вот задумал ты сделать себе бложик, или портфолио, или еще что, и стал ты думать над выбором домена. А я тебе скажу - тут и думать нечего. Есть только один домен, и это - io.
Это выбор передовой элиты, стартапов, и просто белых людей. Ну сам по суди, salem.ru или salem.com просто убоги на фоне salem.io
Так что одной проблемой меньше, и запомни, все что не io = NOT SO HIPSTER!
Ну а мы тем временем начинаем очередной JS ТРЕНДЖ, пилим скриптопарашу, бугуртим от КАЛбеков, выводим в консоль хелло ворлды, как обычно.
Официальный JavaScript тред #6 объявляю открытым!
>Очередной высер про ненужность jquery
Но ведь jquery и вправду нинужен...
Мимо_осиливший_webapi
Для webapi он и не нужен, но для него написаны миллионы готовых библиотек, которые писать самому слишком долго, проще подключить jquery.
Работает, конечно. Это тут ни при чём.
>>417609
>но для него написаны миллионы готовых библиотек
Например?
Jquery - тяжелая параша для быдлокодеров. На мой взгляд, она существует только потому, что существует такие куски говна как IE5-11. Решение тут простое: либо публично отказаться от этих парашных браузеров и писать приложки под богоподобные ff/chrme/opr, либо заставить IE-дев-ов написать стандартизированный апи, как у нормальных людей. Вот тогда и заживем.
>>417610
>Как можно js-игоры делать в таких условиях?
>html/canvas/js/xml
>игры
Ну ты понил.
Вот пример сайта: https://www.pinterest.com/search/pins/?q=cars
Обычная динамическая подгрузка. Ничего сложного.
Как то имел дело с torbolinks на rails проекте - проклинал как мог эту хуйню
>Я занимался автоматизацией фронтенда, в котором больше десяти тысяч файлов
Браток, грант для этого не подходит. Я про это писал.
> Jquery - тяжелая параша для быдлокодеров. На мой взгляд, она существует только потому, что существует такие куски говна как IE5-11.
Зачем же тогда по-твоему существует JQ2.x?
http://jquery.com/browser-support/
> >Как можно js-игоры делать в таких условиях?
> >html/canvas/js/xml
> >игры
> Ну ты понил.
Вот стандартизуют SIMD data types и ParallelJS, тогда и заживём.
>>417632
> Например, почему его выполнение не линейное и какое вообще оно, и как с этим совладать.
евент луп
ну и да, тебе на http://learn.javascript.ru
А Webix (http://webix.com/)? Есть у него какая-та альтернатива с таким же подходом к разметке, но более свободной лицензией?
Да, напиши мне форму с созданием нового типа валидации. А не просто a == b
Нет, устроился на новую работу.
Захотел например подключить депенденси какой-нибудь, уау, круто bower install yoba. Но он его складывает в какую-то хуевую директорию, руками подключать тоже не комильфо, нужна хуйня для склейка
Та-дам, grunt. А для грант нужен еще npm, и в итоге вдрачиваешь еще в корень package.json и Gruntfile.js
Конечно прикольно, но не кажется ли вам, что как-то дохуя много всего?
> Захотел например подключить депенденси какой-нибудь, уау, круто bower install yoba. Но он его складывает в какую-то хуевую директорию, руками подключать тоже не комильфо, нужна хуйня для склейка
Попробуй browserify. Ему ты просто указываешь путь к файлу, а он уже подцепляет зависимости и всё сам склеивает, оч удобно.
Ну это как вариант. Так-то и для bower есть всякие плагины типа main-bower-files.
> Та-дам, grunt. А для грант нужен еще npm, и в итоге вдрачиваешь еще в корень package.json
Node тебе и так скорее всего нужна, потому как тестирование, тулзы для сборки, свои скрипты и прочее. Сервер там по-быстрому поднять.
npm идёт вместе с Node. package.json для зависимостей. Можно использовать и bower, но (1) в bower зависимости не рекурсивные, что чревато dependency hell, (2) там нет того, что нужно для сервер-сайда (тестирование, сборка, все дела) и (3) нам действительно не нужно два отдельных репозитория. NPM уже де-факто стандартный репозиторий пакетов для JS, самый большой, что позволяет устроить самый тотальный code reuse.
Короче говоря, node + npm нужны, потому что альтернатив им в общем-то и нет, а Grunt полностью опционален и часто не нужен, как коллеги ИТТ справедливо заявляют.
Ноуп.
>Но он его складывает в какую-то хуевую директорию
Можно исправить, не помню как, создать файлик и прописать директорию.
Откуда я знаю? У нас, например, так. Есть структура разных стейтов, которым можно указать, что их нужно отображать в меню. Но для простых сайтов это оверкилл.
>>417781
Не очень понял, как VS будет билдить код, если это просто IDE. Код билдить будет скрипт на nodejs.
>>417729
Нет. Депенденси обычно склеиваются в один файл. Хотя обернуть их все в browserify было бы тоже не плохо. Фронтенд уже как сишный код билдится, только вместо make - gulp, поэтому расслабься.
> создать файлик и прописать директорию.
Ну да, будет не bower_components, а yoba
Смысл же не в этом, а в том что все равно руками его в страницу вставлять, и потом эти портянки тянутся
Но тащемто пох, я уже себе сделал grunt concat, клею все, зависимость есть
Решил научиться ангуляру, подопытный кроль - brainstorage (он же фрилансим по сути). Выкладывать прогресс на всеобщее обозрение или тут одни бяки и ничего советовать не будут?
[code]
.controller('ProjectsListCtrl', ['$scope', '$http', function($scope, $http){
$http.get('jobs.json').success(function(data){
$scope.projects = data;
});
}]);
[/code]
Но $http.get вроде бы возвращает promise. И была такая шляпа, что promise можно байндить во вьюхе и теоретически того же самого можно было добиться сделав
[code]
.controller('ProjectsListCtrl', ['$scope', '$http', function($scope, $http){
$scope.projects = $http.get('jobs.json');
}]);
[/code]
Но почему-то в таком виде оно не работает. Меня обманули?
Есть справа у них такая штука типа Фулл-тайм, Парт-тайм, Контракт, Удаленно. Весь этот блок лучше дериктивой делать, или одну строку и ng-repeat-ом пробежаться?
Туда же про список - сам список должен быть директивой, или только строчка?
(ставлю на строчки, но мало ли)
>Не очень понял, как VS будет билдить код, если это просто IDE. Код билдить будет скрипт на nodejs.
>
Я не разбираюсь как там все устроено, сорри.
Может не так что-то объяснил. Есть статьи, где с точки зрения фронт енда поясняют?
function(){ $(this).addClass('hover') },
function(){ $(this).removeClass('hover') }
)[/code]
Но на деле нихуя не понимаю. Пикрелейтед - то, что нужно осуществить. JS пока касался только поверхностно, по обучалке на generalassembly. А сверстать нужно "уже вчера".
>Не нужно пихать их всюду, это не тот случай.
А где нужно и какой тогда правильный случай?
Я возможно соглашусь с тем, что если есть дериктива для элемента списка проектов/вакансий, то вот эта с типом занятости не нужна
Добавляй черту с кнопкой на все дивы и добавляй им невидимость по-умолчанию и видимость по псевдосвойству :hover родительского клаcса.
.плиточка-с-домиком .кнопочка, .плиточка-с-домиком .черточка{
visibility: hidden
}
.плиточка-с-домиком:hover .кнопочка, .плиточка-с-домиком:hover .черточка{
visibility: visible
}
JS тебе не нужен кроме как для IE6-7.
Вообще тебе должно быть стыдно. Я в своей жизни верстал только на bootstrap и на htmlacademy.ru
>А где нужно
Удваиваю этого нуба. В доках какая-то муть про манипуляцию ДОМом, у меня пока в директивах только один маленький кусок жса который в жквери бы биндился к элементам на которые повешена директива, и один жквери плагин который графики рисует.
Я понял идею директив, как способ сделать еще более семантичный лейаут. Где каждый атомарный объект в рамках страницы можно выделить в отдельую сущность. Т.е. вместо
<div class="job-item">
....
портянка, формирующая описание
....
портянка формирующая инфу о клиенте
....
портянка о типах найма например
</div>
Можно сделать например
<job-item>
<job-description/>
<client-information/>
<job-type/>
</job-item>
А на детальной странице например <job-type/> и <client-info/> тоже есть, но например в хедере, можно их там зареюзать
Может это и есть директива головного мозга, как сказал тот анон, но я хотел бы в таком случае какого-то другого объяснения, с обоснованием желательно
>>417832-кум
>>417858
>>417862
Директива - это какой-то отдельный компонент, рассчитаный на повторное использование. Максимально отвязан от контекста проекта. Например - календарь, дропдаун, хайчарт, карта и т.д.
А для инклуда html есть, внезапно, ng-include. А если используете JADE templates на сервере, то еще и jade include/mixin.
>>417829
Абсолютное позиционирование и обработка событий перетаскивания.
Ладно, я не диванный, можешь меня слушать :3
>Будто ты прям всегда недиванным был.
Конечно не был
Но я сейчас не слушал бы себя тогдашнего
Лень разбираться полностью, но подскажу, что заметил:
во-первых, у тебя селектор на option. Зачем он тебе ? Тем более на один. Если ты хочешь повесить на каждый, то тебе нужен querySelectorAll.
во-вторых, подозреваю, что option тебе вообще не нужен, нужно вешать на сам select (что-то типа change) и смотреть текущий элемент.
Разобрался. Надо вместо id и option, селект поставить в выборе селектора. Спасибо.
На нём пишутся приложения, графические оболочки, сервера, игры. Не думаю, что на JS будут писать низкоуровневые вещи типа драйверов, хотя кто его знает. На C++ пишутся ОС. JS ничем не хуже.
visibility: hidden - не показывать элемент, элемент продолжает занимать место
display:none - не показывать элемент, элемент освобождает место
Ты или толстый, или не имеешь понятия что есть JS. Хотя некоторая доля правды в этом есть, взять тот же Asm.js. Но о масштабной экспансии JS на десктопы говорить не приходится.
сага приклеилась
Просто ради полноты картины замечу, что невзлетевшие виджеты в Висте и Семёрке писались на JS. И ещё раньше была такая хуйня, как HTA.
MS сама ставит на JS, включая Node.js в VS. Впрочем, возможно это желание пересадить яваскриптеров на c#. Неизвестно.
Emacs.
Atom. Я знаю, что ты просил ide, но никакого профита при использование динамического слаботипизированного языка от нее нет.
Спасибо. Как раз к нему склонялся сейчас использую Brackets, но хотелось бы что-то более быстрое.
Brackets и Atom -- это браузеры, так что хуй тебе, а не скорость.
SublimeText3 очень быстрый, и плагинов дохуя, можно из него такою-то иде сделать, сам охуеешь.
>Заменит ли JavaScript C++ как в своё время кресты заменили C. Не секрет, что сейчас JS становится системным языком. Он уже вырос из веба.
Гари хорошо спекулирует на эту тему в https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript.
А еще Vim. Он побыстрее даже будет саблайма. Тем более скоро NeoVim допилят (надо бы им помочь, что ли).
Ты серьезно? Его кто использует? Он же ебанутый на всю голову. И эти все C-x C-s
>Ты серьезно? Его кто использует? Он же ебанутый на всю голову. И эти все C-x C-s
https://github.com/syl20bnr/spacemacs
http://truongtx.me/2014/04/20/emacs-javascript-completion-and-refactoring/
Задрочи сначала JS. Там не так много, есть несколько основных моментов, которые нужно знать, они разжеваны кучу раз в туториалах и статьях всяких. Выучишь - берись за фреймворки, почитай их исходники для укрепления JS и понимания самого фреймворка.
C-x C-s оказываются очень удобными после:
- смены местами CAPS LOCK и левого CTRL (глобально по всей системе)
- назначения частых комбинаций как keychords (http://www.emacswiki.org/emacs/KeyChord), чтобы вместо C-x C-s набирать просто x+s
После этого смотрю на видоблядков как на говно, emacs pinky ушёл прочь.
Спасибо, так и сделаю.
Зашел в /web и чуть не сблеванул. Как можно вариться в той параше? Не понимат.
Ты не прав.
У меня следующий вопрос - один мой товарищ, нихуёво разбирающийся в веб-программировании и зарабатывающий неплохие бабки этим, утверждает, что энгуляровские роутеры, будь то angular-route или angular-ui-route, очень недоработанные или даже вовсе плохие, поэтому использовать их не стоит. Он даже потиху делает свой роутер. Можете прокомментировать это как-то?
Ты уже спрашивал.
Один кривой, второй унылый. Можешь сделать велосипед, который будет хуже их вместе взятых, а можешь смириться и разработать паттерны и свою обёртку.
Ну ебать, 21 век на дворе, пусть разведет срач на эту тему в твиттере/гитхабе. Если прав и сможет обосновать, уверен его послушают, если нет, пусть идет нахуй. Зачем писать свои велосипеды, когда есть чужие?
Блядь, ну что это за слоутред такой? ОП, где весь экшон? Где разрывающие пердаки новости? Хотя бы новости постил. Так можно и пхп-макакой стать..
https://github.com/tblobaum
Говорят, он ищет продажника для продвижения его приложения для предприятий. Не мутновато?
Не понял, что ты хочешь. Можешь codeacademy или codewars попроходить. Или винрарную игру Untrusted.
IDE тебе не понадобится: Sublime Text, Brackets, Atom, Vim, Notepad++, Geany, TextMate, GEdit, etc.
Нет, как я понял в разных версиях языка разный синтаксис. И поэтому в некоторых браузерах он некорректно отображается, а то и вовсе не работает.
В уроках препод запускает скрипты через какой-то эмулятор командной строки.
40 так-то
Для портфолио делаю. Что-нибудь, для чего есть нормальные psd-шаблоны - хочется кастомизированного лука, не дефоолтный бутстрэп.
Тогда можешь объяснить по-братски как этот код запустить?
http://ideone.com/yNNebK
В туториале он работает. В браузере нет.
Ты совсем нюфак или учишь js в дополнение к чему-то? Дай ссыль на видео, где ты это нашел.
Насколько мне известно эти курсы либо продаются для личного посещения либо в формате вебинара, и так и так можно задать вопрос преподавателю.
Очеивдно проблема в том что ты что-то делаешь не так, и я не прочь разобраться в чем дело. Так ты ответишь на мой вопрос?
Спасибо за беспокойство. Я уже пофиксил проблему. Скрипт запускается через ConEmu
Пизди любую идею и вперед. Фотошеринг с геотегами, например
>Котаны, подкиньте годных идей single-page-application?
Локальный Двач, где тебе отвечает копипаста.
Что в этом, вообще, может быть мутного? Разве что он спиздил чужую идею закопирайченную.
> спиздил чужую идею закопирайченную
Да ну нах? Дак у меня есть его данные (сам спалил лол, хотел меня завербовать впаривать его говно). Судя по аккам, чел известный. Это такой-то вин вышел бы. Он говорит, что он гений, учился в Стенфорде и ищет лоха для впаривания его гениального приложения. Я, к великому сожалению, не секу в жаваскрипте нихуя.
Что он там спиздил, не подскажете?
Имеется:
API некоего вебсайта, в котором есть эвент-листенер (сообщения в чате, скажем).
Код, который на каждое сообщение-команду должен что-то делать.
Это что-то может состоять из нескольких команд, которые необходимо выполнить с задержкой относительно друг друга (к примеру, если нужно запостить в чат 3 сообщения, а там антиспам фильтр — мгновенно 3 не пропустит)
Хочется:
Пауза между идущими рядом командами. Абсолютная, то есть стандартное do; wait; do;, а не setTimeout.
Очередь из полученных команд, чтобы обращения разными пользователями записывались и выполнялись последовательно.
В общем, я хочу сделать свой эвент-луп с очередью, но отсутствие delay() или sleep() этого сделать не даёт. Костылики в виде for лупа пока разница во времени не достигней нужной величины — не оче. Говорят, процессор нагружает.
Нужно что-то типа такого:
http://ideone.com/uzkWZq (Код нерабочий, естественно)
На блокировку плевать, браузер более ни для чего не используется (точнее, блокировка даже предпочтительнее, наверное, ведь она упрощает достижение нужного мне функционала).
Ебаться с setTimeout более нет сил, а с эвент-лупом так это вообще будет костыль на костыле с непрекращающимся просчётом нужных зажержек вызова вызова функций внутри функций.
Почитай про промисы и вообще про JS что бы не создавать массив через new Array().
С промисами ты можешь сделать цепочку из действий в зависимости от успешности предыдущего действия. Типа
action1()
.done(function () {
действие выполнено, делаешь таймаут, запускаешь действие 2
})
.fail(function () {
действие не выполнено, сам решай что с ним делать в таком случае
}
> Пауза между идущими рядом командами. Абсолютная, то есть стандартное do; wait; do;, а не setTimeout.
Особенности event loop не позволяют добиться задания большей точности времени ожидания, чем с setTimeout: ты не знаешь, каким обработчиком через секунду будет занят поток вычислений и как скоро он кончится. Так что или setTimeout, или активное ожидание.
Не совсем понял, что с циклом. Если тебе нужно выполнять несколько команд друг за другом и ты не знаешь, сколько их будет, то есть такая вещь как https://github.com/caolan/async .
Метод series, помоему, то что нужно (может что-то другое из этой библиотеки, не помню точно).
>Это плохо?
Нет, но детектирует человека, который перекатился из другого языка и пытается применять его правила и конструкции к JS, а это уже приводит к уродливым и неработающим вещам.
Вот хороший гайд:
https://github.com/airbnb/javascript#arrays
> Ленивые пидарасы из JoyNet
Joyent
> На замену node.js пришел io.js
Нет.
> Does Node Forward compete with Joyent or Node.js?
> No.
> We hope to merge with the original Node.js project at some point in the future.
http://blog.izs.me/post/104685388058/io-js
Лишь бы попиздеть.
>Вот хороший гайд:
Такие гайды напоминают мне тех старых пидорасов из института русского языка, которые говорят мне, как правильно ставить ударение в слове "обеспечение". Но те хоть пытаются как-то обосновать свои решения, придумывают всякий околонаучный пиздёж. А тут мы видим просто свод ничем не подкреплённых правил, которые точно так же могли бы быть диаметрально противоположными и остались бы столь же верными.
Почему надо использовать одинарную кавычку для строки? Это будет нехорошой привычкой, если ты параллельно пописываешь на C++. Почему именно два пробела вместо таба? Почему надо использовать двойную скобку вместо создания объекта?
Этот гайд локальный для конкретной компании и контрибьюторов их репозиториев. Нет никаких причин брать его за высшую истину и тыкать в него ньюфагов.
Дополню ещё, что почти все эти дебильные правила может соблюдать бездушная машина, не ебя мозги контрибьюторам лишней документацией.
Да, гайд для конкретной компании, но другие гайды отличаются от него в мелочах. Никто не говорит, что это высшая истина и его нужно неукоснительно соблюдать и ни в коем случае не ставить открывающую скобку на новую строчку. Но он облегчает жизнь новичкам в языке. Когда ты приходишь в новый язык и нихуя не знаешь, я считаю, что style guide - неплохой и полезный старт и то, что ты его прочитаешь даёт хоть какую-то гарантию, что ты хотя бы попытался воспринять данный язык как самостоятельный и не тащишь свои привычки с другого языка.
Я основываюсь на том, что меня много раз дергали C#-кодеры, которые писали C# код в JS и удивлялись, почему он не работает. В том числе были и примеры с созданием массива:
Array() даёт пустой массив
Array('a') даёт массив с элементом 'a'
Array(2) даёт массив с двумя undefined элементами
Что бы не охуевать от такого поведения и не путаться, можно просто создавать массив с помощью скобок и всегда знать, что у тебя будет в итоге.
В общем, я стайл гайд предлагал из хороших побуждений, а не с целью "тыкать ньюфагов"
>Нет, но детектирует человека, который перекатился из другого языка
Перекатиться-то я перекатился, но из питона. А "учил" я js только по примерам, так как нужен был (пока что) лишь для одной конкретной задачи, и new Array() видел на том же stackoverflow. То есть, лучше просто arr = [] писать? Чем конкретно-то new Array() плох? "неджаваскриптовый" код получается? Впрочем, хотя бы для consistency полезно, ведь ассоциативный я просто {} делаю.
>>419155
>>419154
Спасибо. Промизы сейчас попробую, так-то я о них что-то читал перед этим, но, боюсь, могут не подойти — команда-то "выполняется" в любом случае, ей абсолютно плевать, будет ли какой-то результат или нет, фидбека никакого в сам рантайм не идёт. Ну, не буду гадать.
> Чем конкретно-то new Array() плох?
Тем, что new — это костыль, добавленный в JavaScript для того, чтобы люди, знакомые только с классическим ООП с классами (читай: джависты) не путались. Array — функция, а не класс, её можно вызывать напрямую, без new.
Более конкретно — скобочки позволяют дальше расширять массив: [], [1], [1,2], [1,2,3]. Конструктор Array — нет, из-за ебанутого поведения (см. >>419228).
> Впрочем, хотя бы для consistency полезно, ведь ассоциативный я просто {} делаю.
Вот тут как раз для словарей лучше вместо {} использовать Object.create(null).
http://jsbin.com/jojiyosika/1/edit?js,console
> Никто не говорит, что […] ни в коем случае не ставить открывающую скобку на новую строчку.
Но это же так!
http://jsbin.com/kiqejakudo/1/edit?js,console
http://es5.github.io
> 7.9 Automatic Semicolon Insertion
Ты сам определяешь внутри команды, выполнилась она или нет. Либо делаешь
action1().always(function () {
setTimeout(function () { action2() }, N)
})
вместо .done(), .fail()
Да, был не прав. Вот как раз поэтому лучше следовать рекомендациям - что бы не проебывать такие моменты.
>Ты сам определяешь внутри команды, выполнилась она или нет.
Так это, я с клиентской стороны всё делаю, команды не я придумывал. Те команды, что я пытаюсь делать, не возвращают ничего, там undefined, и .done, .always ругаются на
>action1().always(function(){action2()})
>TypeError: action1(...) is undefined
и action2() не выполняется (даже с timeout'ом)
Нет, я могу, конечно, вручную проверить результат, но, как я уже говорил, результат виден лишь через некоторое время, так как сервер обрабатывает это всё, и там придётся те же самые setTimeout'ы использовать.
На примере того же чата. Предположим, есть 2 команды:
sendmessage() — отправляет сообщение
getchats() — позволяет вручную получить в консоль массив со всеми сообщениями чата.
Если я сделаю
>sendmessage('test'); getchats()
То в консольке появится
[ ]
Если же
>sendmessage('test'); setTimeout(getchats,500)
То в консольке будет
['test']
Соответственно, если после getchats() захочется deletechats(), то в первом случае сначала выполнится команда удаления, которая очистит и так пустой чат, а потом уже дойдёт сообщение. Не понимаю, почему так, ведь на сервер они последовательно должны приходить. Пакетики-то, конечно, разными путями могут доходить, но оно никогда не работает (getchats() всегда пустой, если без делея вызывать).
sendmessage(), насколько я понимаю, "готова" тут же, браузер ничего в ответ не получает и не делает, из стека команда сразу убирается и обработка кода продолжается.
В общем, есть возможность в подобном коде http://ideone.com/B3412g получить в консоль цифры по порядку, а не 1-4-2-5-3-6?
Единственный способ, который мне приходит в голову с моим понимаем js и наложенными на меня ограничениями — http://ideone.com/Ma1lmC В принципе, пойдёт и так, вероятно, времена выполнения функций известны, их не так уж и много.
Ну и ещё вопрос. Если функции func1 и func2 имеют аргументы, то .push(func1(args)) я написать, естественно, не могу (сразу выполнится, как и в setTimeout, где нужно отдельно аргументы писать). Есть какой-либо иной способ, или только с как бы "функцией-обёрткой":
>func1wrap = function(){func1(args)}
>queue.push(func1wrap)
>queue.shift()()
?
Я понимаю, что, очень вероятно, хочу с джавой сделать совсем не то, для чего она предназначена, но всё же. Спасибо за помощь, в любом случае. Попробую ещё этот caolan async, хрен его знает, может заработает.
>>419253>>419272
А в чём разница?
>Ты сам определяешь внутри команды, выполнилась она или нет.
Так это, я с клиентской стороны всё делаю, команды не я придумывал. Те команды, что я пытаюсь делать, не возвращают ничего, там undefined, и .done, .always ругаются на
>action1().always(function(){action2()})
>TypeError: action1(...) is undefined
и action2() не выполняется (даже с timeout'ом)
Нет, я могу, конечно, вручную проверить результат, но, как я уже говорил, результат виден лишь через некоторое время, так как сервер обрабатывает это всё, и там придётся те же самые setTimeout'ы использовать.
На примере того же чата. Предположим, есть 2 команды:
sendmessage() — отправляет сообщение
getchats() — позволяет вручную получить в консоль массив со всеми сообщениями чата.
Если я сделаю
>sendmessage('test'); getchats()
То в консольке появится
[ ]
Если же
>sendmessage('test'); setTimeout(getchats,500)
То в консольке будет
['test']
Соответственно, если после getchats() захочется deletechats(), то в первом случае сначала выполнится команда удаления, которая очистит и так пустой чат, а потом уже дойдёт сообщение. Не понимаю, почему так, ведь на сервер они последовательно должны приходить. Пакетики-то, конечно, разными путями могут доходить, но оно никогда не работает (getchats() всегда пустой, если без делея вызывать).
sendmessage(), насколько я понимаю, "готова" тут же, браузер ничего в ответ не получает и не делает, из стека команда сразу убирается и обработка кода продолжается.
В общем, есть возможность в подобном коде http://ideone.com/B3412g получить в консоль цифры по порядку, а не 1-4-2-5-3-6?
Единственный способ, который мне приходит в голову с моим понимаем js и наложенными на меня ограничениями — http://ideone.com/Ma1lmC В принципе, пойдёт и так, вероятно, времена выполнения функций известны, их не так уж и много.
Ну и ещё вопрос. Если функции func1 и func2 имеют аргументы, то .push(func1(args)) я написать, естественно, не могу (сразу выполнится, как и в setTimeout, где нужно отдельно аргументы писать). Есть какой-либо иной способ, или только с как бы "функцией-обёрткой":
>func1wrap = function(){func1(args)}
>queue.push(func1wrap)
>queue.shift()()
?
Я понимаю, что, очень вероятно, хочу с джавой сделать совсем не то, для чего она предназначена, но всё же. Спасибо за помощь, в любом случае. Попробую ещё этот caolan async, хрен его знает, может заработает.
>>419253>>419272
А в чём разница?
>Не понимаю, почему так
Впрочем, понял. getchats() обращается не к серверу, а к тому, что в браузере уже записано. А так как пауза между двумя командами почти 0, сообщение от меня к серверу и обратно к мне (в чат) пройти за это время не успевает, я и получаю пустой массив.
> А в чём разница?
{} наследуется от Object.prototype, поэтому в нём будут доступны все свойства последнего. Об этом нужно не забывать и в нужных местах делать проверки hasOwnProperty.
Object.create(null) — это просто объект, без какого-либо прототипа (ну т.е. null), в нём будет только и ровно то, что ты сам туда положил.
> Если функции func1 и func2 имеют аргументы, то .push(func1(args)) я написать, естественно, не могу (сразу выполнится, как и в setTimeout, где нужно отдельно аргументы писать). Есть какой-либо иной способ, или только с как бы "функцией-обёрткой"
func1(1,2,3) эквивалентно func1.bind(null, 1, 2, 3)(), поэтому тут надо так:
queue.push(func1.bind(null, arg1, arg2, ...))
Если хочется массивом аргументы передавать, то, соответственно:
queue.push(Function.bind.apply(func1, [null].concat(args)))
Не особо читаемо, впрочем.
> В общем, есть возможность в подобном коде http://ideone.com/B3412g получить в консоль цифры по порядку, а не 1-4-2-5-3-6?
Ты всё неправильно делаешь, коллбеки тебе в помощь.
http://ideone.com/4oGbNt
>напихали в array functions
>ебутся с упорядоченным вызовом оных в цикле
Что вы блядь тут делаете?
https://github.com/joyent/node/blob/master/lib/events.js#L126-129
Посмотрю я, сможешь реализовать систему событий как-то по-другому. (Действительно интересно.)
Массив функций — отличный инструмент.
Другое дело, что автор неправильно его применяет (а ещё setTimeout с какими-то магическими значениями).
> Какое-то применение у этого удивительного факта есть?
Эм… ну да.
Если объект использовать как словарь, то даже проверка "'toString' in {}" даёт true, единственный способ узнать, принадлежит ли ключ самому объекту или унаследован — это использовать hasOwnProperty, причём нельзя просто так взять и применить как метод {}.hasOwnProperty (потому что такой ключ тоже может быть) — нужно вызывать его как Object.prototype.hasOwnProperty.call. О чём очень хочется забыть, так как это приходится делать при каждом обращении. И многие забывают, поверьте мне.
В то время как с Object.create(null) всё просто: ключ либо есть, либо его нет. Можно использовать как оператор in, так и просто сравнивать с null/undefined.
В общем, такие «голые» объекты специально и предназначены для использования в качестве словарей. С обычными объектами, в которых набор ключей более или менее фиксирован, такие проблемы почти не встречаются.
Ебать дибилы. Нахуя тут калбеки ваапщи?
Нормальные люди раскидывают в array по type нужные listener и при emit вызывают их по type.
Ты блядь вообще не в теме треда. Пример с событиями с коллбеками не связан никак. Читай ветку.
> два пробела вместо таба
Потому что таб отображается по-разному в зависимости от настроек IDE. Алсо, в проекте обязательно находится пидорас, который ставит себе политику отступов «mixed».
>Почему надо использовать одинарную кавычку для строки
Потому, что в html-css - используются двойные. А двойные кавычки экранируются одинарными.
>параллельно пописываешь на C++
А если на паскале?
>Почему именно два пробела вместо таба?
Пробелы потому, что табы пидорасит. Два для того, чтобы удобнее открывать на экране два буфера и дерево. Да и просто аккуратнее.
>Почему надо использовать двойную скобку вместо создания объекта?
Это короче и понятней. Для массивов, например, поведение конструктора зависит от типа аргумента, что не улучшает читаемость.
Как-то так.
>Потому, что в html-css - используются двойные. А двойные кавычки экранируются одинарными.
Это ты намекаешь на говнокодеров, которые делают .innerHTML = ?
>Пробелы потому, что табы пидорасит.
Табы пидорасит, если их мешать с пробелами.
>.innerHTML
Иногда приходится. Например в каком-нибудь гриде заюзать простенький темплейт, а переделывать на файлы из-за одной строки западло. Или еще какой-нибудь случай (но это не общая практика).
А еще одна клавиша вместо двух. (' or shift - ')
>Табы пидорасит, если их мешать с пробелами.
Иногда они мешаются, если ты любитель художественного форматирования и комментариев. Плюс можно два раза шлёпнуть по пробелу, если тянуться до таба влом (мозоль на мизинце, например).
> jQuery, DOM
Нихуя не понял.
Ко всяким импутам можно через value подлезать. Еще .text где-то ползает.
А как еще можно засадить в, например, див какую-нибудь ерунду?
Чем вообще плох .innerHTML?
>А как еще можно засадить в, например, див какую-нибудь ерунду?
Какую? Если текст, то textContent, если элемент, то appendChild. Хотя текст тоже можно через appendChild добавлять, если создавать его, как createTextNode.
>Чем вообще плох .innerHTML?
Тем, что добавить через него элемент - это значит удалить все имеющиеся и создать их заново, что чревато.
> Чем вообще плох .innerHTML?
Тем, что он смешивает синтаксис JS с синтаксисом HTML (а если там style= есть, то и CSS).
Вынесите вы эти шаблоны в html разметку, сложно, что ли?
Это просто небо и земля ! Спасибо, анон. На стационарном ПК разница не так ощущалась, а вот на ноуте медленность Brackets просто убивала.
какой же скучный бородатый парень на картинке, никакой индивидуальности и намека на креативность. Снова эта борода, снова эта прическа, снова эта "сирьёзность" на лице, снова эти татуировки. Какая скука..
Что не так-то? Текст не может быть одновременно и 1, и 2.
http://www.w3schools.com/js/js_if_else.asp Вот даже с комментами.
Студентов, ранее изучавших jQuery, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации. (C)
Jquery это просто библиотека функций упрощающих программирование.
А выше jquery находятся mvc типа angularjs.
Меньше букафф != упрощение.
Императивно мутировать дом это ж пиздец.
Да тормознутопрожерливый Sizzle тоже не подарок.
>angularjs
Уебанское говно с дёрти-чекингом
Но ведь писать на голом жаваскрипте это тоже самое что писать на ассемблере или си. Долго и опасно и будет тормозить.
>Студентов, ранее изучавших javascript, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации. (C)
пофиксил долбоеба
>Студентов, ранее сидевших на дваче, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации. (C)
Вот теперь правильно.
>Студентов, начавших изучение программирования с javascript, практически невозможно обучить байтодрисне. Как потенциальные системные программисты они подверглись необратимой умственной деградации. ©
fixed
Опаньки. Да тут веб-петушатник собрался.
while сначала спросит разрешение потом въебет, do while сначала въебет разок и только потом спросит разрешения продолжить.
Спасибо, я и думал, что что то подобное, но не верил.
Но теперь у меня появилась необходимость для каждого такого элемента списка добавлять не одно значение, а 3, они у меня закреплены у элемента списка аттрибутом data-value. То есть, нужно уже не одно скрытое поле добавлять, а три, и так, чтобы они были связаны друг с другом, как это сделать?
Судя по твоему описанию, у тебя в теле цикла добавление инпута, что мешает хуйнуть туда же три инпута?
Но ведь тогда массив пополнится 3-мя разными атрибутами data-value, которые никак не будут связаны между собой, а нужно, чтобы они были связаны. Ну например, вот добавляешь ты на каждой итерации цикла инпут с названием кино, а теперь ты хочешь название, режиссёра и год выпуска, они ведь связаны должны быть все, а не в общей куче?
Если хочешь, чтобы они были "связаны", придумай атрибут, по которому будут связываться, например, cinemaName.setAttribute("cinema", "ARMAGEDON"),
directorName.setAttribute("cinema", "ARMAGEDON"),
productionDate.setAttribute("cinema", "ARMAGEDON").
Ну и сделай объектную модель, и напиши функцию, чтобы это вручную кадый раз не писать, а циклом по элементам проходить.
Ну user-скрипты или расширения для хрома по-другому писать - это обосарться, или они много весить будут.
Ангуляр разве не точно такая же библиотека функций?
Двачую.
Есть только одна засада. Если в одном из выражений && у тебя undefined, то будет ошибка, поэтому нужно ккаждый раз еще и на undefined проверять в таких выраениях.
С хуя ли?
В npm очень много нормальных модульных пакетов, выполняющих ровно одну чёткую задачу. Часто в каждом всего несколько функций.
Такие пакеты можно не бояться подключать в любых количествах и собирать в один бандл с помощью browserify, оверхеда не будет практически никакого.
http://jsbin.com/jopemamitu/1/edit?html,js,console
Почему при передачи в качестве параметра 12 выводит isnt 12 и наоборот ?
Пример подобного использования switch взят со страницы CofeeScript.org
Ты зачем этим занимаешься вообще? Не надо такой код писать никогда, если есть хоть малейший шанс, что его кто-нибудь прочтёт.
В любом случае, все метки сверяются с фолсом. Поэтому return "is 12"; сработает только тогда, когда "value !== 12" неправда.
Я пишу код на CS не по своей воле, сталкиваюсь с проблемой и смотрю, во что он компилируется. А компилируется он в такую вот конструкцию, как на пике.
Про метки понял, спасибо. Только не понял, нахуя CS в switch ставит false и инвертирует условие, когда можно было бы сравнивать с true и не ебать мозги человеку, читающему код ?
сегодня и вчера, завтра и всегда)
Какое у вас окружение?
Что используете?
инбифо: мак в старбаксе
elementary os макось для бедных и sublime 3 по совету анона. Очень не хватает Git Extensions с винды, а на с помощью mono завести её не удалось.
А можно подробнее? Чем true-то не булевоц и зачем там вообще true/false, если функция возвращает букву?
mac+total_terminal+sublime+gulp+little_black_book
У меня были подозрения, это не зря!
Win+cmd(shell)+Idea(god mode+many plugins)+gulp(местами grunt)+VM(lowest lvl)+standart_web_stack(middle lvl)
>>420326
>плохая документация
Поддвачну. Когда-то искал референс, на сайте наткнулся на мануал, после прочтения пары артиклов понял, что мне вообще нужен был их "тутор", который больше походил на какой-то обоссано-смешанный апи с рефернсом. Чуть не сблеванул с "удобочитаемости" тутора. С тех пор подумываю переКОТываться на реакт. Кто что хорошего скажет, стоит ли?
очередные вскукареки неосилятора
>elementary os макось для бедных
Быстро хочу у тебя спросить, учитывая, что она построена на основе Убунту, это означает, что всё для Убунту идёт, как и должно, на Элементари?
Разве есть что, что идёт на убунту, но не идёт на других линуксах (с нужными библиотеками, если это qt/gtk)¿
Я вообще, не разбираюсь, на всякий случай спросил, потому что только что заходил посмотреть, если ли Тимвьюер на Линукс, а там для крупных дистрибутивов свои версии, поэтому решил спросить, на всякий случай.
> elementary OS is a Linux distribution based on Ubuntu.
> Being Ubuntu-based, it is compatible with its repositories and packages.
>Тем, что на месте "value !== 12" может стоять любое выражение любого типа.
То есть? Что со скриншотом не так и где и почему оно сломается? Не вижу разницы, с true кейс сравнивать или с false обратный кейс.
Я мимоанон.
На скриншоте всё нормально, но вместо сравнения там может быть число, например. Вот такой код сломается:
var huy = 10; // 10 это тру, но не равно true
switch (true) {
case huy: return "A";
default: return "B";
}
А такой нет:
var huy = 10;
switch (false) {
case !huy: return "A";
default: return "B";
}
А в чём смысл такого кода? Сбивающая с толку имплементация typeof(foo)!="undefined"?
Алсо,
var foo
!foo
>> true
Так и задумано?
Конечно стоит
Я тоже серьезно. В манямирке можно придумывать "идеи" для такой простой задачи.
В реальном мире пацаны натягивают красивый шаблон на вордпресс и начинают зарабатывать бабло с минимальными вложениями.
Да, всё идёт, даже убунтовские баги. Сейчас вот собирают деньги на то, что бы разработчики смену раскладки починили, лол.
лол)))
А на хабре что, за спиженные статьи не гонят ссаными тряпками ? Читал статью на английском (не могу её найти сейчас) пару недель назад, там аргументы те же и в том же порядке и даже примеры совпадают.
Ну, !huy будет false всегда (кроме 0 или false). Получается, case !huy, фактически, просто проверяет, имеет ли huy вообще хоть какое-то значение.
Конечно, так как !0 даёт true, эту хрень можно использовать в местах, где huy инкрементируется и узнать, когда он больше нуля, но почему бы не написать huy>0 и не сравнить, опять же, с true?
Просто выглядит это всё каким-то целенаправленным усложнением ради хрен пойми чего.
т.е. !foo = false почти в тех же случаях (кроме упомянутых 0 и false), когда "typeof(foo)!='undefined'" = true
>почему бы
Потому что этот код генерирует машина - конпелятор Кофескрипта. А что уж там программисту заблагорассудится - надо учесть все варианты.
Суп, скриптоны. Есть специфическая задача распарсить array со strings в JSON объект. Как её решить? Может уже придумали убер-парсеры, жующие любые strings в JSON?
Выручайте, с меня нихуя.
Я бы методом http://devdocs.io/javascript/global_objects/string/split попробовал, хуяришь точку в качестве разделителя и по очереди забираешь стринги, формируя новый объект.
Bacon.js is inspired by RxJs and has similar concepts. The main difference in the design is the existence of two flavors of Observables: EventStream and Property, each of which have clearly defined semantics. The RxJs Observable does not tie the semantics as tightly. For instance, in RxJs there are "hot" and "cold" observables that behave differently even though the expose the same Observable interface.
Also, Bacon.js is fully open-source and has (arguably) better documentation.
https://github.com/baconjs/bacon.js/wiki/FAQ
Вообще - годнота. В случае с js - бесполезная хуйня. Для js вообще подойдет любой редактор текста с подсветкой кода.
>devdocs.io
Где же ты раньше был, няша? А я ебусь, читаю апишки на всяких msdn mozzilla и прочих парашах.
>string.split
>и по очереди забираешь стринги
Попробую не проебаться.
Ты наркоман, не могущий в нормальное описание задачи. Выдели смысловую часть задачи в виде жс-кода и оставь здесь jsfiddle или codepen ссылку.
Во-первых, friends - это же объект. А bill и steve, получается - свойства объекта? Но что же тогда firstName и lastName? Свойства свойств? И что делает функция list? Я не понимат. Я вообще не понимат, что делает in в for. Может кто доступно объяснить?
friends - это объект конечно, но почти все есть объект, так что, то что заключено в такие скобки {} считать dictionary или hash. Это такой именованный массив(нагуглишь сам.)
>А bill и steve, получается - свойства объекта?
Можно сказать и так, а вообще лучше прочитай про ООП, хоть жс это и функциональщина, но в твоем примере надо знать ООП.
> И что делает функция list? Я не понимат. Я вообще не понимат, что делает in в for. Может кто доступно объяснить?
Ты совсем нюфак чтоли? Алсоу у тебя цикл неправильно написан. Вот как надо, чтобы вывести имя каждого друга.
var list = function(){
for (friend in friends){
console.log(friend.firstName);
}
};
Для этого есть готовые модули.
Пример: https://www.npmjs.com/package/dot-object
Можно что-то другое найти, мне лень.
> Во-первых, friends - это же объект. А bill и steve, получается - свойства объекта? Но что же тогда firstName и lastName? Свойства свойств?
Объект в JS — это набор пар ключ—значение. Ключ — строка, значение — что угодно.
В твоём примере "bill" и "steve" — ключи в объекте friends. Значения по этим ключам — тоже объекты, с ключами firstName, lastName и т.д.
> И что делает функция list? Я не понимат. Я вообще не понимат, что делает in в for.
for (key in object) в JS — это цикл по ключам объекта.
Если ты понял первую часть поста, этого должно быть достаточно.
Это снова я. Оказывается, двухмерный массив можно отправлять формой с клиентской стороны таким образом:
<input type="hidden" name="list_name[' + i + '][]" value="' + currentListElementsValue + '">
Где i — автоувеличивающийся индекс цикла. То есть, вместо list_name[], как обычно принято делать при комбинировании информации одного типа, в начале вставляется индекс, а потом вот эта фича PHP с добавлением квадратных скобок в конце. Я понятия не имел, что так можно делать.
> только один домен, и это - io
А если занято, то какие пробовать? xyz? pro? guru? wtf? Хочу одну тулзу вывесить.
.guru
На ключи элементов этого объекта. Они тоже хранятся в нём. Если у тебя есть объект:
var ob = {"a": 10, "b": 20, "c": 30};
То цикл:
for (var key in ob) console.log(key);
Выведет:
"a"
"b"
"c"
Можно вывести значения:
for (var key in ob) console.log(ob[key]);
Вот они:
10
20
30
Учти, что ключи хранятся в случайном порядке.
На ключи элементов этого объекта. Они тоже хранятся в нём. Если у тебя есть объект:
var ob = {"a": 10, "b": 20, "c": 30};
То цикл:
for (var key in ob) console.log(key);
Выведет:
"a"
"b"
"c"
Можно вывести значения:
for (var key in ob) console.log(ob[key]);
Вот они:
10
20
30
Учти, что ключи хранятся в случайном порядке.
Ты серьёзно? Это принципиальный вопрос? "o" как-то непривычно бы в коде выглядела, она же ноль похожа. А "obj" возникает желание развернуть до "object", но сократить-то хочется. Поэтому "ob".
> Это принципиальный вопрос?
Да. Я чувствую некоторую неловкость от ob. Выглядит как полумера. object писать не надо, это в некоторых языках - зарезервированное слово, будет смущать любого программиста на другом языке (ну в джаве точно резерв).
Может причина в том, что ob выглядит как аббревиатура, незнаю.
Если бы у меня в команде был чувак, написавший ob, я бы ему вломил пиздюлей, например.
>почему в циклах i все время ставят.
А что вы используете, когда i ЗАКАНЧИВАЕТСЯ? Я k и j по какой–то неведомой причине, дальше этих не доходило вроде.
Мне тоже показалось это название каким-то неполноценным, в реальном коде я бы такого не допустил. Да и называние переменной "object" - несёт столько же смысла, что и "ofm3434de". Но раз уж код демонстрационный, мне показалось допустимым внести некоторую вольность - те же циклы в одну строку.
>object писать не надо, это в некоторых языках - зарезервированное слово
По этой причине мне и хотелось его сократить. Хотя в Джаваскрипте оно свободно.
>по какой–то неведомой причине
Потому, что они в алфавите дальше идут?
>дальше этих не доходило вроде
Дохуя вложенные циклы - не очень круто, но если припекает, то я бы просто продолжил l, m, n...
>Потому, что они в алфавите дальше идут?
А, ну и в математике они приняты тоже для индексов у матрицы, переменных при суммировании и всего такого. Оттуда это i и пошло, а за ним и j, и k.
>>420708
Метеор как розовая дилда, все красивенько но имеет тенденцию хранить кучу хуйни в глобале, не сделаешь нормальную модульность (по типу DI в ангуляре или require()). Если тебе нужно только немного пуш-уведомлений, используй socket.io с нодой
А фреймворк-то, фреймворк-то какой использовать ? Из того, что на слуху, помню только locomotiveJS. Есть что про него сказать ?
Назвать два-три фреймворка на ноде, которые достаточно активно развиваются и применимы в реальной жизни, а также поделиться впечатлениями от них.
Проект не важно какой, пускай будет соц. сеть с фотошерингом и геотегами или имиджборда я сам еще не до конца придумал
tl;dr: просто хочу почитать, чем сейчас в основном пользуются. Вот еще наткнулся на SailsJS и TotalJS. Что выбрать то ?
Очевидный саилс. Тотал 1) назван как говно, это блядь важно в серьезном софте 2) куцый гитхаб, в 4 раза меньше коммитов, в 8 раз меньше лойсов.
хотя зойчем тебе это всё, рельсы въеби и делов
Это в бакенде, на фронтенд что угодно воткни - хочешь КАРЬЕРЫ, ангуляр, хочешь ПЕРСПЕКТИВ - react
Если фуллстак - я бы еще derby попробовал, кстате. Он свободен от названных мной выше проблем метеора.
На счет фронтенда я более менее ориентируюсь, вопрос в бекенде. Спасибо за советы, буду читать про sails.
в рельсы не умею и не уверен, что хочу
ЭТИ ЕБАННЫЕ АСИНХРОННЫЕ КАЛЛБЕКИ ДОЕБАЛИ УЖЕ СУКА, НУ БЛЯДЬ КАК, НУ КАК БЛЯДЬ ИЗВЛЕЧЬ DATA ИЗ STREAM, КОГДА СУКА ЕБАННЫЕ КАЛЛБЕК РЕАЛИЗОВАН НАТИВНО И КЛАЛ ХУЙ НА ПЕРЕМЕННЫЕ JS БЛЯДЬ НУ ЧТО ЗА ПИЗДОС ХОЧЕТСЯ ВЗЯТЬ И УЕБАТЬ РАЗРАБАМ НОДЫ ЗА РЕАЛИЗАЦИЮ СЕРВЕРА ЧЕРЕЗ АНУС ИХ МАМАШ
<form class="contactform" method="post" action="/?spasibo" id="contactform2">
Чё эт такое? Хочу прикрутить к страничке ajax-отправку данных на сервер без пиризагрузке, что за action такой интересный?
Я имел ввиду что происходит дальше? Например если бы было так action="send_mail.php" было бы понятно что и куда отправляется, а тут что происходит?
Вообще-то по-умолчанию index.phtml, так что /index.phtml?spasibo
Ну вот, чтобы при наведении на твой ответ, он раскрывался как сейчас. С год назад заменял нарытым mobile.css, сейчас он не работает.
Что ты блядь несешь? У меня через ctrl+s все сохранилось и открывается. Трал что ли?
>420918
Хуй пойми, в хроме все норм, в лисе нет. Сойдет, спасибо.
>Алсоу у тебя цикл неправильно написан. Вот как надо, чтобы вывести имя каждого друга.
>var list = function(){
>for (friend in friends){
>console.log(friend.firstName);
>}
>};
Теперь пишет
undefined
undefined
Пост уровня школоты, понимаю, но всё же.
Сапёр.
Ебани сапера, базарю, еще захочешь.
Как вы относитесь к попыткам превратить функциональный язык в объектно ориентированный.
Точнее из комбинированного в объектный. Как известно почти всё в JS является объектом, включая функции. Точнее так, почти все объекты в JS могут быть представлены функцией.
Так если функции это всего лишь обёртка над объектом, зачем возводить ненужные сущности?
Даёшь классы, наследования без прототипирования!
Установил Sublime Text, изучил HTML5/CSS3, ознакомился с БЭМ, LESS. Учу английский и разбираюсь с Git.
Но я не улавливаю саму суть. Что вообще такое front-end? Где можно посмотреть какой-нибудь доклад-введение в эту тему? Хочу чтобы мне, гуманитарию, научно-популярным языком всё объяснили.
И как подступиться к JS? Сразу читать книги по нему из ньюфаг-треда или усвоить основы программирования в целом?
>Даёшь классы, наследования без прототипирования!
Заткните вот эту пхп-макаку на её парашу, плиз.
>Установил Sublime Text
Снеси эту хуйню без задач и поставь Brackets. Все настоящие фронт-энд специалисты пишут на Brackets. Саблайм - это для школьников, которые только вчера прочли на хабре статью о вёрстке и решили стать успешными. Ограниченность саблайма будет постоянно мешать тебе при создании страниц сложнее заголовок-текст-футер.
Да где же вас поехавших берут в таких количествах. 'Или пишешь в таком же редакторе, что и я, или фу, школьник"
Блэк джек напиши
Или еще пример - иногда требуют увеличить с производительностью фронт енда. Найди всякое говно, которое написано на фреймворках или петушинном жквери и перепиши на чистом жс.
Сразу тебе будет и понимание жс, жквери и цсс. Если даже простой петушинный слайдер с плавной прокруткой сделать.
for (friend in friends){
console.log(friends[friend].firstName);
}
for in возвращает на каждом шаге ключ, а не его значение.
Обосрался с этого специалиста по футерам.
Ответы: >>8934829 >>989324 (цифры любые)
как это сделать?
var a = document.querySelectorAll(".post-wrapper");
for (var i = 0; i < a.length; i++) {
if (a.querySelector(".ABU-refmap").style.display == "none") {
a.parentNode.removeChild(a);
}
}
Дико угорел с Brackets, пока не пересел на ноут, на котором едва различимые (но всё же) тормоза на настольном ПК превратились в ощутимую задержку. Перешел на Sublime, всё летает. Теперь обмазываюсь плагинами потихоньку. Посоветуйте какой-нибудь маст хэв (но не самое очевидное)
Ну правильно, Brackets же в отличии от Саблайма полноценная IDE. А Саблайму то чего лагать, это же блокнот с подсветкой слов.
Макака блядь. В любом случае отправляется запрос на сервер. Как ты на сервере обработаешь, так и будет. Мне блядь стыдно с такими индустрию делить.
Спасибо, добра тебе.
Но обычно же внизу есть ссылка на оригинал, иконка Z->Я и т.д.
>>421063
Почитай про http://htmlbook.ru/html/form . На адрес, который ты указываешь в форме будут отправлены данные из формы. А дальше ты их обрабатываешь в своем пхп как хочешь. Ни JS, ни JQuery тебе в этой задаче не нужны.
Должно добавлять в массив res числа от 2 до 10 при условии, что это число не делится ни на какие другие числа младше себя, кроме единицы.
Пасиба.
простое тип)))0
Бампую свой старый вопрос. Почему Eloquent Javascript говно? По мне так одна из лучших книг по программированию евар, щитаю, что на каждый язык нужно написать ее копию или аналог.
Как по мне, так она чересчур проста. Читается тяжело. Материалы learn.javascript.ru для меня оказались более пригодными к изучению, ну так там не только JavaScript.
Вот ссыль на пастбище http://pastebin.com/FrQRuRVi
Не бросайте анона в биде.
Паринь, ты на часы смотрел? Иди оливье запивай советским шампусиком под бой курантов! С новым кодом!
Поменяй 6 и 7 строчку местами. Алсо, не забудь передать в submit event и вызвать event.preventDefault() в самом начале submit-коллбэка.
На пиццу.
На студенческий акк закачал весь жетбрейнз, но в основном пользуюсь идеа с кучей плагинов. Если не хочется воровать, то можно на EAP'ах посидеть.
Еще куплен pixelmator, не совсем по теме, но всё же используется как рабочий инструмент.
Нужно хранить объекты со свойствами (типа таблицы) и обращаться к значениям, изменять в том числе.
Может в html как-то ..
не понял, при чём тут..
>var data = 'name='+name
У меня во дворе за такое убивают нахуй. Читай, сучий сын, доку jquery. $(this).serialize() тебе нужен, блджад.
Спасибо, но EAP'ы по WebStorm уже закрыты. Я вот думаю, что покупать - WebStorm или Sublime.
Саблайм это простенький и быстрый редактор для новичков, а вебшторм - полноценная IDE. Смотри по своему уровню развития.
А, саблайм у меня тоже куплен, забыл про него. Но если бы вопрос о покупке был сейчас, то не купил бы, его у меня заменил macvim.
Покупай то, чем чаще пользоваться будешь.
>Саблайм это простенький и быстрый редактор для новичков, а вебшторм - полноценная IDE. Смотри по своему уровню развития.
Не нужно подразумевать, что только новички пользуются Саблаймом, а хорошие специалисты — Вёбстормом.
>довести до уровня IDE или даже выше, а по скорости он останется такой же.
>по скорости он останется такой же.
Сам то веришь?
Да.
вот в том и дело что в гугле только про локальные, а я про хранение в папке страницы сайта, т.е. про серверное хранение.
Ты это никак кроме как через API на сервере не сделаешь. Как ты себе это представляешь ? Заходит рандомный хуй на твой сайт и правит файл лежащий на сервере ? Только API, которое ты сам опишешь и сам определишь границы дозволенного.
да можно же вроде править html? значит можно хранить в html данные, логически.
ну что что – в html-файле сохранять данные. вопрос в том – как. я нубище, как там можно сохранять чтоб не отображать?
Так ты ничего менять не собираешься, только читать? Ну тогда просто сделай большой словарь отдельным скриптом и подсоединяй его.
Ты можешь хранить данные в HTML, можешь в отдельном файлике json (и запрашивать его, например, через JQuery). Изменять его ты через браузер не сможешь.
открываю страницу html, ввожу в спец. поля данные "1 вася 2 петя ", жму кнопку – они обрабатываются и сохраняются в невидимом виде – либо как таблица, либо как объекты 1 и 2 со свойствами name.
далее в других полях ввожу только цифры, жму энтер чтоб они обработались и вставились имена.
теперь поля имеют id с соответствующими цифрами, жму кнопки – поля располагаются в нужном порядке.
Для того, чтобы можно было страницу через Ctrl+S сохранить? Ну так храни значения в скрытом элементе.
Точно, забыл про эту возможность. Правда я пока не знаю как, но всё равно спасибо.
спасибо, но я такое нубище что просто дно..
что мне объявить/создать и можно ли в html сохранить данные как свойства элемента?
спасибо, но я дно а прокомментить ты забыл, я не понимать.. схороню до лучших времён.
Миллион разных способов, гуглятся очень легко. Я бы тебе помог, но тебе в любом случае придется очень много гуглить и искать ответы самому, так что самое время начать.
>>421333
Тебе тот же совет. Ссылка, что тебе дали выше, неправильная. Тебе нужен либо
<input type="hidden" value="твое значение"/>
либо писать данные в любой элемент с помощью аттрибута data-. Например,
<span data-id="12" data-name="Anon"></span>
В любом случае, пока не понятно, что и нахуя ты хочешь сделать. Если ты опишешь задачу (а не твое представление о решении), то всем станет только легче.
>>421341
дай мне, дну, плиз ссылку на учебник где рассказывается что такое атрибут.
задача в том чтоб по определённым алгоритмам перемещать васю, петю и др. по разным полям, захочу в круг – запущу round.js который знает как расположить всех круг. ну а предварительно надо все имена внести в страницу.
Гитхаб в студию, полноценник.
>плиз ссылку на учебник где рассказывается что такое атрибут.
http://ru.html.net/tutorials/html/lesson7.php
var strings = ["кришна", "кришна", "харе", "харе", "харе", "харе", "кришна", "кришна", "8-()"];
var res = [];
var unic = function (arr){
next:
for(i = 0; i < arr.length; i++){
var str = arr;
for(j = 0; j < arr.length; i++){
if(str == arr[j]){
break;
}
}
res.push(str);
}
}
Бля, точно, благодарю. А вот тут не знаешь, почему ничего не выводит?
http://jsfiddle.net/k83xcwap/
Даже просто alert(obj['className']) ничего не даёт.
А, понял, я знак равенства забыл.
почаще смотри консоль, там часто можно найти ответ
отвечай давай, пидар
мне тут выше посоветовали атрибут data дав ссылку http://habrahabr.ru/post/139210/ – тут в примере тег div, а тут пишут про какие-то селекторы http://htmlbook.ru/html/div
Обратись лучше в вёрстка тред в /wrk/ или в php тред здесь, а то тут не совсем это обсуждают. А селектор - это указание элемента применения в CSS, типа
div{
}
.class{
}
input[type="radio"]{
}
.menu ~ section:last-child{
}
Так понятнее?
Функция должна принимать массив с числами, и удалять те, что не вписываются в значение min и max. Функция прекрасно обрубает числа выше и ниже, но почему то не удаляет отрицательные. Никто не знает, с чем это связано?
Вот чёрт. Я знал, что этим всё закончится.
Может, тебе следует сначала книжку какую-нибудь почитать из ссылки в оп-посте? А то заебёшь ведь здесь всех.
$ - это, скорее всего, Джейквери.
ну хоть не JohnLennon.
>>421569
это с http://habrahabr.ru/post/139210/ : Находим: $(‘[data-email-id]’) или $(‘[data-action=close]’)
читал уже когда-то, а толку.. без практики всё забыл.
нагуглил себе ответ?
скачай на торрентах интенсив хтмлакадемии, там расказано для долбаебов долбаебским языком.
Спасибо! Заработало.
посоветуйте тему (и где их найти вообще) для Webstorm. Стандартные - какое-то говно (зачем этот италик ?), не говоря уж о кастомных. Выделение цвета фона - это, блять, вообще пушка. Чому всё так плохо ? Во всех остальных редакторах от тем оформления кончить можно, а тут что-то пока все печально.
Есть! Почитай тут http://habrahabr.ru/post/116827/. Разница очень большая. Команды перечисляй через ;
Да, во-первых он не к месту (это же не комментарий какой-нибудь), во-вторых он еще перерисовывается после открытия файла (т.е. сначала текст набран не италиком, потом перерисовывается на италик). В третьих, там еще автовыделение одинаковых слов какое-то странное. Ну и в-четвертых, люблю периодически менять темы. Пересел обратно на саблайм.
Заодно, порекомендуйте туториал по sails, а то на официальном сайте установка ноды подробнее расписана, чем starting with sails
Ошибка. Переменная a не обьявлена. Если было бы a = 1; тогда ошибки не было бы.
Нет. Открой консоль и попробуй так сделать.
только с присвоением. Иноче он ищет переменную и не находит ее.
Я тоже под убунтой, не знаю, откуда он взялся, но это сразу после установки было
>Анончики, а кто вообще какой редактор использует для написания кода.
Sublime Text. И дома, и на работе, и для JS, и для C.
>Какие фичи вашего редактора вы используете при разработке?
Возможность редактировать код.
http://jsfiddle.net/s8gy41ba/
Он должен принимать массив, с помощью функции проверять его элементы и при соответствии числовому диапазону добавлять их в новый архив. Почему этого не происходит?
??
Откуда там появилось piece? Вернее понятно откуда появилось, но почему оно там выводится? На него же ничего не ссылается.
Ну я не совсем то имел ввиду. Откуда Piece берётся? Судя по действию, оно попадает через buffer(). Но как? buffer равен makeBuffer. Внутри var text = ''. Пока всё понятно. А потом следующая функция и в ней Piece. И похоже, что данные, введённые в buffer() попадают в Piece. Но как?
>buffer равен makeBuffer
Азаза, буфер равен тому, что вернула функция мейкБуфер, ты же её вызвал.
Пиздец. Я не понимаю эти сраные замыкания. Это сильно важно в кодерстве?
почему алерта нет? унарный минус должен преобразовывать строку в число.
Алерт срабатывает только при условии, что "а" не равно двум. У тебя "а" равен двум. Измени "а" на любое другое значение и алерт сработает. != обозначает неравенство.
Emacs 24. Использую для всего.
Полезные фичи: богатый набор клавиатурных комбинаций, множественные курсоры, несколько окон рядом, макросы и программируемые действия, буфер обмена с историей, возможность править по SSH, синтаксический анализ.
Минусы: для меня он удобен только как редактор, но есть режимы для шелла, емейл и т.д. Это всё у меня отдельно.
>просто интересно можно ли писать перенос строки в скобках.
Да, можно. Но вообще нужно быть аккуратным: может автоматически вставиться «;». Это касается прежде всего таких ключевых слов, как return, break, throw, continue.
Для более полной информации смотри стандарт, главу “Automatic Semicolon Insertion”, написано там довольно понятным языком, разобраться можно при желании.
>>421874
Тем, что команды через запятую составляют одно выражение. Ты не можешь перечислить через запятую ни var, ни return. Это навскидку, проблем должно быть больше.
>>421906
NaN не равен себе.
>>421912
Лучше Number.isNaN.
Ты рано взялся за замыкания. До них нужно постепенно дойти. Пока просто разберись с функциями и областью видимости переменных.
Сосони, где я проёбся? Чому эта хуета не закрывает модальное окошко?
http://pastebin.com/gmrz18tU
Трудно сказать. Нужно отлаживать этот код. Может у тебя половина селекторов мертвые и ничего не выбирается. Ты в devtool вообще смотрел?
Ты отладчиком умеешь пользоваться? В обрабочик клика заходит?
Лол, зачем?
>>422032
Mocha.
Кроме http://mochajs.org/ ничего читать не нужно.
Начни с простых тестов в Node.
В качестве ассертов могу порекомендовать should.
Монитор позеленел
А, всё, понял, вопрос снимается. Массив не строка.
[].slice.call(arguments)
listener.call(eventEmitter, arg1, arg2)
proxiedFn.apply(this, [124].concat(arts))
Бутстрап работает.
не помню чтобы в школе аперировал таким понятием.
в общем я назвал для себя "именованным значением". только это про переменные, а не про буквы типа Х как в матике.
придумал ещё лучше – имена для значений.
Которые вместо JS сразу учат CS. В одном из прошлых тредов рассказывал, что работал с парнями, которые по их словам "плохо знают js", пишут исключительно на CS и Ruby, и хвалят меня за то, что умею писать на ваниле. Анон мне сказал, что такого не бывает
>Number.MIN_SAFE_INTEGER
это 32 единицы (пригодится тоже), я хотел положительное узнать (31 единица).
window.name = 'окошко';
var test = function () {alert(this.name);}
test(); //->окошко, т.к. функция объявлена в контексте window
var obj = {
name: 'объектик',
fx: function() {
test();//->окошко, т.к. функция объявлена в контексте window
test.apply(this);//->объектик, т.к. мы вызвали функцию в нужном нам контексте
}
}
отступы потерял
Я не понимаю вопроса. Тебе 0x7fffffff в десятиричную систему перевести? И, скорее всего, тебе 0xffffffff нужно - 32 единицы.
>а я твоих 0х7... не понимаю.
Ну так введи их в консоль. В любом случае, если тебе понадобились побитовые операторы, шестнадцатиричную систему ты по-любому знаешь.
>31 двоичная однёрка это сколько в десятичной?
Зачем тебе? 2147483647 это.
посмеялся но не понял.
я лишь прочёл "использование побитовых операторов" в учебнике js.
В одном докладе где-то годичной давности увидел плагин: https://github.com/alanshaw/grunt-include-replace
Но тут написано devDependencies: Out of Date. Что это значит и что делать?
Предположу, что они в целом хуевые писатели, независимо от инструментов.
Максимальный елемент в массиве:
[CODE]Math.max.apply(Math, array)[/CODE]
Сделать массив из аргументов функции:
[CODE][].slice.call(arguments)[/CODE]
Что за хуйню макака сделала? Как теперь код вставлять?
Прочитал первое предложение, подумал про Computer Science и какие сознательные люди сидят в жабаскрипт-треде.
var obj = {
"0": 1,
0: 2
};
>alert( obj["0"] + obj[0] );
>Дело в том, что у объектов в JavaScript ключи всегда строковые. Если в качестве ключа передано что-то ещё, то оно приводится к строке. Значения обрабатываются в порядке поступления, поэтому 0: 2 перекроет "0": 1.
>В итоге получится объект с единственным ключом: {"0" : 2}.
>При доступе к ключу — obj["0"] и obj[0] эквивалентны, опять же, поскольку ключ приводится к строке.
Если все значения строковые, то почему 0: 2 перекроет "0": 1? Или ключи поступают с конца?
Какое значение последним сохранил в один и тот же ключ, то и сохранится.
Потому что КОМАНДА - тоже иностранное слово. Да и "оператор" звучит официальней.
>КОМАНДА - тоже иностранное слово.
пруф есть?
зачем нам официальность (что такое официальность знаешь?), не для понятности ли придуманы языки верх.уровня?
>Кома́нда (слово заимствовано в конце XVII века из исп. и португ. comando «командование, управление», исп. commando «командование» и «диверсионный отряд», через голландский, шведский и немецкий; в словарях упоминается с 1847 года)
Википедия.
>в конце XVII
этим всё сказано. в том числе то, что недоказуемо в принципе, "учёные" любые теории о прошлом могут строить – их никто не подтвердит.
Ты утонешь вместе с ним! Беги пока не поздно!
\t\t"name": "Bobby",
\t\t"age": 10,
\t\t"weight": 50
\t};
var zalupa = JSON.parse(params)
--
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
--
В каком месте я дебил?
Уже сам понял? Ты парсишь объект, а не строку. Если наоборот хочешь закодировать, используй JSON.stringify().
да, понял, спасибо.
var a = 5
b = function(){alert(a)}
a++
b()//нужно чтобы вывело 5
как обычно, не вижу бамплимита в упор,лол
$(document).ready(function(){
var count = $(".post-image > a").length;
if (count > 2) {
$('.post-image').css('border', '1px solid red');
}
});
Скрипт считает кол-во картинок а блоке класса [/i]post-image, и если их больше 2-х, то на див лепится бордер. Но этот скрипт не работает, и бордер добавляется ко всем элементам, независимо от количества картинок. Что я делаю не так?
Кто-то работал с heroku? Интересует node.js и конкретно node-steam, хочу захостить там скрипт, чтобы не держать ПК включенным 24/7.
Суть в том, что там ограничение - если за час никто не заходит, приложение отключается, нашел вот такой скрипт-автопингер https://github.com/Efreak/node-steam-chat-bot/blob/master/example-heroku.js, но я не программист и не понимаю, как оно работает. Пытался скинуть прямо так - посыпались какие-то ошибки, что мне нужно сделать?
Ах да, я правильно понял, что сначала там идёт бот, а пингер начинается со строки
> var pingcount = 0?
https://github.com/Efreak/node-steam-chat-bot/blob/master/example-heroku.js#L283
Просто мне тот не нужен, только self-pinger, который я к своему хочу прикрутить.
По angular больше инфы и он как бы в тренде, но он проигрывает по производительности, когда дело доходит до реальных приложений, поэтому
Ember
Это копия, сохраненная 31 января 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.