Сохранен 518
https://2ch.hk/pr/res/631129.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JavaScript #28

 Аноним 21/01/16 Чтв 17:13:22 #1 №631129 
14533856026820.png
14533856026831.png
14533856026912.jpg
Ссылка на прошлый тред: >>622250 (OP)

Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.

Краткий FAQ:
1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.

2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).

3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.

4. Существуют ли стайл-гайды для JavaScript? - Да, вот: https://github.com/felixge/node-style-guide

5. Какие новые возможности добавил ES6? - Вот здесь можно почитать на русском: https://learn.javascript.ru/es-modern

6. Есть ли русскоязычные конфы? - Да. Для приера, здесь можно добавится в крупнейшую конфу программача по многим языкам, включая JavaScript. https://invite-me-to-2chpr.herokuapp.com

7. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.

Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"

Дуглас Крокфорд "JavaScript: сильные стороны"

Стефанов С. - "JavaScript. Шаблоны"

Джон Резиг - "Секреты JavaScript ниндзя"

Николас Закас - "JavaScript. Оптимизация производительности"

Node.js
М. Кантелон , М. Хартер - "Node.js в действии"

Кирилл Сухов - "Node.js. Путеводитель по технологии"

Дэвид Хэррон - Node.js. Разработка серверных веб-приложений

Front-end
Эдди Османи - "Разработка Backbone.js приложений"

Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"

Читать онлайн

Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/

Marijn Haverbeke - "Eloquent Javascript" - Вводная книга по JavaScript и программирование в целом. Перевод на хабре: http://habrahabr.ru/post/240219/ На английском :http://eloquentjavascript.net/

http://ru.discovermeteor.com/ - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков. Полностью на русском.

Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.

http://www.jstherightway.org/ - Огромный гайд составленный буржуями. Есть книги, статьи и всё-всё-всё.

http://nodeguide.ru - Огромное количество переведённых статей по Node.js

http://node-center.ru - собрание информации по Node.js. Особенно интересен раздел со ссылками и книгами.

Бложики и новостные ленты:
http://dailyjs.com/ - DailyJS

http://weblog.bocoup.com/ - Bocoup Weblog

http://perfectionkills.com/ - Perfection Kills

http://www.reddit.com/r/javascript - subreddit на reddit.com

http://toddmotto.com/ - Todd Motto, Lead front-end @appsbroker. Developer Expert @google.

Онлайн курсы:
Как же можно учить язык, только читая книжки? Нужна практика, и только так изучаемое усваивается, не иначе.

CodeSchool - http://codeschool.com/ Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.

CodeAcademy - http://www.codecademy.com/ Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.

Udacity - https://www.udacity.com/course/ud015 Дает хорошее представление о замыканиях.

Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?

Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/

А потом? Я и так уже гений!!!

Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор не маленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, React, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
Аноним 21/01/16 Чтв 17:13:38 #2 №631130 
Шапка http://pastebin.com/5S5UrPAi
Аноним 21/01/16 Чтв 17:24:11 #3 №631138 
JS - язык господ!
прошу помощи Аноним 21/01/16 Чтв 17:47:44 #4 №631149 
Ковыряюсь с получением списка аудио вконтакте.
Есть вот такая функция:
function createPlay() {
var text = '#EXTM3U';
var durationInSeconds;
var mp3s = document.querySelectorAll('input[value*=".mp3"]');
for (var i = 0; i < mp3s.length; i++) {
var mp3 = mp3s;
var title = mp3.parentNode.parentNode.getElementsByClassName('title_wrap')[0].textContent;
text += '\n' + '#EXTINF:durationInSeconds,' + vkCleanFileName(title) + '\n' + mp3.value;
}
offerFile('vkPlaylistCurrent.txt', text);
}

Выдаёт она вот такой результат:
#EXTINF:durationInSeconds,Displaced Paranormals - Inception_Λudio Podcast 012
https://psv4.vk.me/c611219/u1881108/audios/f2f26b2f3824.mp3?extra=SOMEHASHHERE132sdfsx,2985

Мне нужно проставлять длительность в секундах вместо durationInSeconds(это пока что просто placeholder такой).
Инфа о длительности в секундах содержится в конце mp3.value, после запятой идёт. Надо только выдрать как-то.
Cобственно, есть и регулярка — ,\d{1,4}
Она выдирает ,2985

У меня вопрос — как мне сделать присвоение переменной durationInSeconds значения соответствующего регулярке но без запятой?
Аноним 21/01/16 Чтв 17:50:33 #5 №631150 
>>631149
Прошу прощения, вот код
http://pastebin.com/PSP0MT5c
Аноним 21/01/16 Чтв 17:57:12 #6 №631155 
>>631138
>господ
пссс.. ТайпСкрипт или Котлин, чистый js не совсем то.
Аноним 21/01/16 Чтв 18:10:54 #7 №631162 
>>631150
Попробал переделать, не работает. Тупо печатает текст регулярки.
http://pastebin.com/GyR5j139

Я просто нуб в JS.
Аноним 21/01/16 Чтв 20:32:21 #8 №631266 
может кто проверить, доебаться/похвалить и обосновать
https://jsbin.com/pakonaseho/1/edit?js,console

задача на ООП
13 по счету, про гамбургеры
https://gist.github.com/codedokode/ce30e7a036f18f416ae0

Аноним 21/01/16 Чтв 20:33:19 #9 №631267 
>>631266
12
Аноним 21/01/16 Чтв 20:54:09 #10 №631291 
14533988491130.jpg
>>631129 (OP)

Анончик, хелпани, плиз...что-то ничего не выходит
Есть один экстеншн для хрома. Он методом https://developer.chrome.com/extensions/tabCapture получает объект MediaStream с аудио и видео. Так вот...нужно этот стрим записать и сохранить в формате webm. Я копал в интернете и нашел поделки некого пакистанца: https://www.webrtc-experiment.com/RecordRTC/
но проблема в том, что когда ставишь настройки для видео (ширину, высоту, фпс) в его поделке RecordRTC, например. Получаешь два блоба - аудио и видео и мерджишь их с помощью https://www.webrtc-experiment.com/ffmpeg/merging-wav-and-webm-into-mp4.html, то оно тормозит. И видео глючное и аудио. Оно то смерджило два блоба в один...но глючит. Если задать ширину и высоту 320*240, то оно не глючит, но видос маленький получается. Может, кто делал такое. Хелпаните, плиз...или хоть посоветуйте, в какую сторону копать можно.
Есть рабочий пример https://chrome.google.com/webstore/detail/screencastify-screen-vide/mmeijimgabbpbgpdklnllpncmdofkcpn?hl=en
Я смотрел его код. Но там все минифицировано и с трудом понятно по ключевым методам что там происходит и как они добились такого результата.
Аноним 21/01/16 Чтв 21:45:34 #11 №631367 
14534019349210.png
Как у функции объявляется метод? Я ещё могу допустить мысль, что у функции могут быть методы, но как их объявлять?
Аноним 21/01/16 Чтв 21:50:46 #12 №631371 
>>631367
так же как и у любого объекта. написано же епт
Аноним 21/01/16 Чтв 21:51:33 #13 №631372 
>>631367
function Animal (name) {
__this.name = name; // property

__this.sayHello = function () { // method
____console.log(this.name + ' says: hello');
__}
}

var rabbit = new Animal ('Rabbit');
rabbit.sayHello();
Аноним 21/01/16 Чтв 21:53:43 #14 №631375 
>>631372
Вашет у тя конструктор. Методы для функций пишутся в прототим функции.

Function.prototype.getHui = function() {
return 'hui';
}
Аноним 21/01/16 Чтв 21:56:13 #15 №631376 
>>631367
function f(){}
f.suka = function(){
alert("https://learn.javascript.ru/");
}
Аноним 21/01/16 Чтв 21:59:04 #16 №631378 
>>631372
Это вообще другое совсем
Аноним 21/01/16 Чтв 22:12:05 #17 №631394 
>>631376
Омск какой-то. Почему нельзя просто сделать объект в традиционном понимании?
Аноним 21/01/16 Чтв 22:17:51 #18 №631401 
>>631162
>>631150
Бамп вопроса. Надо просто из mp3.value вида
>https://psv4.vk.me/c611219/u1881108/audios/f1231a12d1.mp3?extra=SOMEHASHHERE132sdfsx,2985 выдрать это 2985 и записать в переменную
Аноним 21/01/16 Чтв 22:21:17 #19 №631414 
>>631394
фишка метода у функции реализуется при создание класса, через прототип

function f(name){
this.name = name;
}

f.prototype.suk = function(){
return this.name;
}

var a = new f("vasia");
console.log(a.suk());
Аноним 21/01/16 Чтв 23:21:21 #20 №631484 
>>631401
Регулярка есть уже... ,\d{1,4}
Надо только как-то присваивание сделать того, что она находит в mp3.value
Аноним 22/01/16 Птн 00:41:08 #21 №631533 
Бля, какой уровень скила нужен, чтоб это хуячить? Нихуя не понимаю, если честно http://codepen.io/at80/pen/tqdmv#0
Аноним 22/01/16 Птн 01:04:22 #22 №631543 
>>631533
охуенно
Аноним 22/01/16 Птн 01:21:28 #23 №631549 
>>631533
не пойму, че за хуйня
это вебгл шейдеры?
Аноним 22/01/16 Птн 09:27:34 #24 №631671 
Ананасы, всегда сидел на бэкэнде, тут приспичило слепить пару юзерскриптов. Нужно хранить порядка 50к хэшей и вести поиск по ним. Что там у вас в JS для этого есть? SQL пердолить? Или обычный массив в памяти пойдёт? Не будет сильно медленно?
Аноним 22/01/16 Птн 10:24:55 #25 №631705 
>>631375
Эквивалентно
let motherProto = function() {
this.getHui = function() {
return 'hui';
}
}
Аноним 22/01/16 Птн 10:25:40 #26 №631706 
>>631376
>f.suka
Противоречит стрикту.
Так делать нельзя.
Аноним 22/01/16 Птн 10:31:00 #27 №631709 
>>631533
>какой уровень скила нужен
Авераж мид.
На ванильке это не писали, инфа соточка.
Это продукт кодогенерации.
Аноним 22/01/16 Птн 11:21:59 #28 №631753 
html страница: <div onclick="...>
почему еще используют эту хуиту? так-же труднее читать, нет?
вместо: <div id/class="x"
document.ready(...find element add onclick handler.
Аноним 22/01/16 Птн 11:40:29 #29 №631765 
>>631266
бамп
ну же анон
Аноним 22/01/16 Птн 11:59:36 #30 №631780 
>>631533
https://ru.wikipedia.org/wiki/WebGL
Аноним 22/01/16 Птн 12:02:40 #31 №631783 
Ебанутый вопрос, но просто ответьте.
server.listen(3000) - запускает сервер на 'localhost:3000', а как запускать, например, на 'example:3000'?
Аноним 22/01/16 Птн 12:05:05 #32 №631784 
>>631783
Фор екзампл:
server.listen(8000,'127.0.0.1',function(){
server.close(function(){
server.listen(8001,'192.168.0.202')
})
})
Аноним 22/01/16 Птн 12:06:21 #33 №631786 
>>631783
Ты спеки-то читаешь вообще?
Аноним 22/01/16 Птн 12:17:05 #34 №631790 
>>631706
>>631706
почему нет? это же вроде статический метод? https://learn.javascript.ru/static-properties-and-methods#статические-методы
Аноним 22/01/16 Птн 12:24:13 #35 №631799 
>>631790
Да, можно.

Блджад, лоханулся.
И strict violation не выкидывает отладчик.
Аноним 22/01/16 Птн 12:35:18 #36 №631810 
Сап зк.
Есть комментарии на сайте, требуется с помощью AngularJS выводить часть комментария, а при нажатии на кнопку/ссылку, разворачивать до полного. Написал директиву, сам текст комментария получить могу, но как можно реализовать нажатие?
Аноним 22/01/16 Птн 12:45:11 #37 №631819 
>>631810
ng-click?
Аноним 22/01/16 Птн 12:47:12 #38 №631821 
>>631819
>ng-click
Думал о нем, только никак не могу понять, где писать обработчик? Мне нужно его написать в том же файле, где я описал директиву.
Аноним 22/01/16 Птн 14:31:44 #39 №631903 
>>631671
Локальное хранилище
Но в нём, кажется, какое-то ограничение есть
Аноним 22/01/16 Птн 14:32:25 #40 №631905 
>>631753
Быстрее так, не?
Аноним 22/01/16 Птн 14:56:51 #41 №631932 
>>631671
IndexedDB
Аноним 22/01/16 Птн 15:15:23 #42 №631953 
Я уверен, что вопрос был задан сотни раз, но спрошу еще раз
С чего начать изучение? Если из опыта только паскаль в школе.
Скачал видеоуроки Гавриленко, говорят годно, стоит начинать? Что еще можно прочесть/посмотреть для полного нуба?
Аноним 22/01/16 Птн 15:27:03 #43 №631968 
>>631953
Это мое личное мнение, но, если есть представления об ООП, то, как мне кажется, лучше сразу начать с решения проблем (которых предостаточно на CodeWars, например) и попутно пилить что-нибудь более практически ценное для себя (например на знание DOM - тудушку или, как анон-РАБотодатель из прошлого треда, игрульку на канвасе, если больше функциональная часть и бэкенд интересует, то что-нибудь на ноде. Возьми и напиши, к примеру, качалку для SoundCloud).
А читать лучше спеки на Dev Mozilla и драфты ECMA.
DOM хуйня, это осваивается быстро.
Энджой ёр скриптинг.
Аноним 22/01/16 Птн 15:46:09 #44 №631983 
14534667699260.jpg
>>631784
Я нихуя не понимат. Например, я запускаю сервер на ноде и ввожу localhost:port в браузере. Для этого я в написал в servers.js server.listen(port, '127.0.0.1').
Теперь я хочу все тоже самое, но в браузере писать не localhost:port, а 192.168.0.1:port или вообще myawesomesite:port. Такое вообще возможно? Если я хуйню написал, не обсыкайте.
Аноним 22/01/16 Птн 15:54:39 #45 №631993 
>>631983
Фронтендопитухи повалили на сервера и соснули. Как это мило.
Аноним 22/01/16 Птн 15:55:02 #46 №631994 
>>631983
Нужно или запускать на 80 порту и перенаправлять через host, или поднять nginx
Аноним 22/01/16 Птн 15:55:40 #47 №631996 
>>631705
Нихуя не эквивалентво.
Аноним 22/01/16 Птн 15:58:27 #48 №632000 
>>631983
>Нихуя не эквивалентво.
Ясен хуй, в первом варианте расширяется Built-in прототип 'Function'.
Аноним 22/01/16 Птн 15:58:38 #49 №632002 
Пацаны, где удобно можно накидать архитектуру приложения? Заебался тетради покупать
Аноним 22/01/16 Птн 16:05:24 #50 №632006 
>>632002
В голове, например
sageАноним 22/01/16 Птн 16:08:46 #51 №632009 
14534681264980.jpg
>>632002
>Заебался тетради покупать
Используй карандаш.
Аноним 22/01/16 Птн 16:13:42 #52 №632015 
>>632006
40 таблиц и логику? А я обычно несколько приложений одновременно пишу
Аноним 22/01/16 Птн 16:16:45 #53 №632020 
>>632015
Ты 1C-мартышка?
Аноним 22/01/16 Птн 16:17:33 #54 №632022 
>>632020
Откуда такие выводы? На ноде пишу
Аноним 22/01/16 Птн 17:27:09 #55 №632083 
>let someShit => param => kek(param);

зачем питушня так делает? для неанонимных функций, не биндящихся к this? они што, ебанутые?
Аноним 22/01/16 Птн 17:29:00 #56 №632086 
>>632022
во 1С франч-конторах обычно МНОГОЗАДАЧНОСТЬ
Аноним 22/01/16 Птн 17:57:56 #57 №632125 
>>632083
>писать на жс
>быть не ебанутым
Аноним 22/01/16 Птн 18:03:57 #58 №632132 
>>632125
>>писать на жс
>>быть не ебанутым
я же не ебанутый, значит можно
Аноним 22/01/16 Птн 19:50:39 #59 №632217 
>>632132
> спрашивает зачем писать меньше
> говорит, что не ебанутый
Аноним 22/01/16 Птн 20:11:16 #60 №632246 
Бьюсь об заклад не могу понять зачем нужен return помогите
Аноним 22/01/16 Птн 20:15:05 #61 №632249 
>>632246
Как вернуть значение из функции?
Аноним 22/01/16 Птн 20:19:07 #62 №632252 
>>632249
я только начал изучать js не понимаю)
sageАноним 22/01/16 Птн 20:20:02 #63 №632253 
>>632217
>ачем писать меньше
странно, что ты на кофе не пишешь, с таким подходом
Аноним 22/01/16 Птн 20:33:10 #64 №632268 
Бьюсь об заклад не могу понять зачем нужен return помогите
Аноним 22/01/16 Птн 20:41:40 #65 №632272 
>>632252
)
Аноним 22/01/16 Птн 20:41:57 #66 №632273 
>>632253
Пишу
Аноним 22/01/16 Птн 20:45:00 #67 №632276 
>>632268
Он нинужен
Аноним 22/01/16 Птн 20:49:12 #68 №632283 
>>632276
обьясни заебал, пиздец
Аноним 22/01/16 Птн 20:51:09 #69 №632286 
>>632283
Так выучи функции сначала
Аноним 22/01/16 Птн 20:55:08 #70 №632291 
>>632273
но ведь кофе - говно
Аноним 22/01/16 Птн 20:56:06 #71 №632294 
>>632291
Как и джяваскрепт
Аноним 22/01/16 Птн 20:59:37 #72 №632296 
>>632283
>>632286
я выучил
[сорта говна] Аноним 22/01/16 Птн 21:03:06 #73 №632298 
>>632294
>джаваскрипт
живенькое такое говнецо, с почти неограниченной областью применения, развивающееся, и имеющее приятную надстройку в виде тайпскрипта.

>кофе
беспомощное унылое говно без задач. бесполезный высер as is.
Аноним 22/01/16 Птн 21:35:33 #74 №632318 
>>632296
Не обманывай.
Аноним 22/01/16 Птн 21:38:48 #75 №632322 
>>632318
функции именно
Аноним 22/01/16 Птн 21:39:11 #76 №632323 
>>632296
Выучил твоей мамаше в рот
Аноним 22/01/16 Птн 21:48:34 #77 №632333 
>>632323
в рот те ссал, пидор
Аноним 22/01/16 Птн 21:54:46 #78 №632346 
>>632298
> имеющее приятную надстройку в виде тайпскрипта.
> кофе беспомощное унылое говно без задач. бесполезный высер as is.
Ты вкурсе, что кофе в жс компилируется, дегегерат? Это такая же надстройка
Как же бесят дауны, который хейтят что-то, а сами даже офф сайт этой хуйни не посетили
[сорта говна] Аноним 22/01/16 Птн 22:10:27 #79 №632369 
>>632346
>кофе в жс компилируется
а как бы в курсе, даже кой че дорабатывал на этой параше. просто в жс появились классы, декораторы, деструктурирующее присваивание, модули, async/await, и опциональная аннотация типов в виде typescript (который не подменяет собой js), а любители твоего дегенеративного сахарка сосут хуйцы с этими нововведениями.
Аноним 22/01/16 Птн 22:22:13 #80 №632388 
>>632369
Разработка кофескрипта прекращена
Аноним 22/01/16 Птн 22:22:52 #81 №632390 
>>632322
Ну, тогда продолжай сидеть на дваче. Хули еще делать, если выучил функции именно. Ты не виноват, ты сделал все что мог - функции выучил. Пошло оно все нахуй, это теперь не твои проблемы. Ты не договаривался, что там return будет. Ты свое дело сделал - выучил функции. Теперь либо пусть разжевывают в программаче, либо сосут хуй. Что еще за return, вообще ахуели.
Аноним 22/01/16 Птн 22:23:58 #82 №632395 
14534906386530.jpg
>>632369
>ecmascript 6
>typescript
Соснули у Scala.js
Аноним 22/01/16 Птн 22:29:48 #83 №632404 
>>632390
Вот это тебе бомбануло.
мимо
[сорта говна] Аноним 22/01/16 Птн 22:30:56 #84 №632407 
>>632395
>Scala.js
Код в студию, может и правда соснули, я хз
Аноним 22/01/16 Птн 22:35:34 #85 №632415 
14534913341300.png
>>632404
Аноним 22/01/16 Птн 22:41:36 #86 №632426 
>>632404
Зк всё больше походит на б. Написал больше трех слов, значит бомбануло.
Аноним 22/01/16 Птн 22:55:52 #87 №632448 
>>632407
http://scala-lang.org/
http://www.scala-js.org/
https://lihaoyi.github.io/scalatags/
100% строгая статическая типизация + тонна скала-библиотек + скаловская система сборки (sbt) + трейты, макросы, имплициты, паттерн-матчинг и прочие фишки скалы
Аноним 22/01/16 Птн 23:01:16 #88 №632449 
>>632448
Говно без задач, ещё и славу петушиную имеет
[сорта говна] Аноним 22/01/16 Птн 23:02:14 #89 №632450 
>>632449
>Говно
Not U
Аноним 22/01/16 Птн 23:02:52 #90 №632451 
>>632449
>пок кукареку
Лол, эта боль жквери-мартышки.
[сорта говна] Аноним 22/01/16 Птн 23:04:25 #91 №632453 
>>632448
import japgolly.scalajs.react.vdom.prefix_<^._
[code]
<.ol(
^.id := "my-list",
^.lang := "en",
^.margin := "8px",
<.li("Item 1"),
<.li("Item 2"))
[/code]

Ебать мой хуй!
Аноним 22/01/16 Птн 23:07:14 #92 №632457 
14534932343550.jpg
>>632390
Аноним 22/01/16 Птн 23:15:23 #93 №632466 
>>632453
[code lang="javascript"]"use strict";

var HelloMessage = React.createClass({
displayName: "HelloMessage",

render: function render() {
return React.createElement(
"div",
null,
"Hello ",
this.props.name
);
}
});

ReactDOM.render(React.createElement(HelloMessage, { name: "John" }), mountNode);[/code]

Зачем тебе реакт?
[сорта говна] Аноним 22/01/16 Птн 23:20:51 #94 №632469 
>>632466
Прост. Пишу на нем всякое хитрозаверченное, типа редактора диаграмм. react + redux решает. Надо попробовать твою дурь со скалкой. В ней же должны быть (встроенные) иммутабельные мапы, массивы?
Аноним 22/01/16 Птн 23:31:32 #95 №632475 
>>632469
> react + redux решает
Попробуй https://lihaoyi.github.io/scalatags/ + https://github.com/lihaoyi/scala.rx

>В ней же должны быть (встроенные) иммутабельные мапы, массивы?
Даже такое есть, азаза https://github.com/milessabin/shapeless https://github.com/japgolly/scalaz

Вот ещё фиддл, даже с автодополнением: http://www.scala-js-fiddle.com/
Аноним 22/01/16 Птн 23:39:40 #96 №632481 
Как сделать, чтобы Array.prototype.indexOf начинал искать не с начала массива, а с конца?
Аноним 22/01/16 Птн 23:43:43 #97 №632482 
>>632481
Все, я понял: Array.prototype.lastIndexOf
Аноним 22/01/16 Птн 23:47:19 #98 №632484 
14534956398740.jpg
>>632475
>https://lihaoyi.github.io/scalatags/ + https://github.com/lihaoyi/scala.rx

всеж пока на риэктовском виртуалдоме останусь.

нашел вот это вот - http://ochrons.github.io/diode/
выглядит оче неплохо для организации хранения стейта приложения
Работа с цветами Аноним 22/01/16 Птн 23:51:42 #99 №632487 
Посоветуйте реализацию столкновения элементов по цветам. Можно ли выбрать их диапазон? К примеру: #ffffff - #757575
Аноним 22/01/16 Птн 23:52:17 #100 №632488 
>>632484
вот так, анон, js привел меня через react redux es6 typescript от динамического слаботипизированного императивного петушения к божественному функциональному подходу со строгой статической типизацией.
Аноним 23/01/16 Суб 00:10:28 #101 №632496 
Ректоопущенцы, расскажите мне про стейт приложения и зачем он вам нужен
Аноним 23/01/16 Суб 00:30:04 #102 №632505 
>>632496
>стейт приложения
Тупо состояние. Даннае, и вообще, все то, что определяет, как выглядит UI. На него может воздействовать пользователь (через ввод), backend, если мы подписаны на серверные события, какие-то недетерминированные вещи (таймер с рандомом).

Зачем нужен? Для генерации UI. Мы отображаем стейт в VirtualDOM, а реакт-жс по из VirtualDOM создает обычный dom, который видит пользователь. Либо приводит dom в соответствие с VirtualDOM. Стейт, измененный действиями пользователя мы можем загнать сново на backend.

Зачем так сложно? Это подход избавляет от необходимости вручную описывать, как привести dom в соответствие с новым состоянием. Один раз написали функцию рендеринга, которая возвращает VirtualDOM всего интерфейса, и все, этого достаточно, дальше магия все делает за нас.
Аноним 23/01/16 Суб 00:33:14 #103 №632509 
>>632505
>реакт-жс по из VirtualDOM создает обычный dom
реакт-жс из VirtualDOM создает обычный dom

фикс
Аноним 23/01/16 Суб 01:00:47 #104 №632518 
>>632505
То есть это ангуляровский скоуп, только с модным названием?
Аноним 23/01/16 Суб 01:32:36 #105 №632528 
>>632518
А ангуляре немного сложнее, там scope это observable, части UI подписаны на изменение его свойств, по этим событиям они и обновляются. Тут - просто объект, например, {name: "Вася"}, dataflow прост как веник. State поменялся (обычно внутри state'а ничего не меняем, а тупо возвращаем новый стейт), отрендерили заново VirtualDOM. Таким образом, действие пользователя - чистая функция: старый state -> новый state. Рендеринг - чистая функция: state -> VirtualDOM.
Аноним 23/01/16 Суб 10:07:39 #106 №632604 
14535328597580.jpg
По заданию из учебника надо реализовать, чтобы после нажатия на изображение оно менялось на другое, а потом через несколько секунд снова менялось на прежнее. В моем варианте решения почему-то обратно меняется только то изображение на которое я кликнул последним. Я понимаю что дело в глобальной переменной которую делать не стоит, но как можно поступить по другому?
Код http://pastebin.com/EaPkAPS4
Аноним 23/01/16 Суб 10:27:30 #107 №632613 
>>632604
>меняется только то изображение на которое я кликнул последним
Что логично, ведь
>дело в глобальной переменной,
которая за время таймаута может быть перезаписана.

Передавай в hideAnswer() в качестве параметра ID элемента, будет все гут.
Аноним 23/01/16 Суб 10:35:07 #108 №632614 
>>632613
Вот до меня не доходит как предать, если так делать http://pastebin.com/Skv665sZ то все ломается
Какой правильный синтаксис должен быть?
Аноним 23/01/16 Суб 10:36:22 #109 №632615 
>>632614
https://jsbin.com/gemali/edit?html,console,output
Аноним 23/01/16 Суб 10:42:34 #110 №632619 
14535349545910.jpg
>>632615
спасибо, ты умница
Аноним 23/01/16 Суб 10:49:32 #111 №632622 
>>632615
интересно, а почему он без обертывания в анонимную функцию не передавал параметр
Аноним 23/01/16 Суб 10:52:10 #112 №632624 
14535355302290.png
Че за хуйня, епта? Почему я не могу просто склонировать объект в другую переменную? Почему мне дают ебучую ссылку?
Аноним 23/01/16 Суб 10:53:24 #113 №632626 
Я полагаю, прежде чем начать изучать язык ( джаваскрипт) мне стоит сначала вспомнить школьную информатику и узнать - выучить html?
Аноним 23/01/16 Суб 10:57:33 #114 №632627 
>>632624
Делай рекурсивное копирование а-ля
http://barbitoff.blogspot.ru/2012/01/javascript.html

А так у тебя копируются ссылки, хули ты хочешь то блядь?
Аноним 23/01/16 Суб 10:59:15 #115 №632628 
>>632624
>Потому, что азаза
В ES6 метод Object.assign() завезли:
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
Аноним 23/01/16 Суб 11:08:19 #116 №632632 
>>632627
Хочу в базу отправлять одно, а в джсон ответе слать другое

>>632628
Спасибо

Но пиздец же, это вообще никак не очевидно. С приведением типов даже не сравнится, там хоть какая-то логика есть
Аноним 23/01/16 Суб 11:09:18 #117 №632634 
>>632632
>никак не очевидно
>в языке сразу сказано что объекты - ссылки
Почитай стандарт еще раз. Там прямо об этом и сказано.
Аноним 23/01/16 Суб 16:53:41 #118 №632804 
14535572216120.png
Посоны, поясните, чому jquery не берёт элементы, содержащие текст с пробелом? Нихуя не пойму
Аноним 23/01/16 Суб 17:01:38 #119 №632810 
14535576987200.jpg
>>632615
Оказывается еще можно было так передать аргумент, а в русском справочнике ни слова
setTimeout(reblur, 2000, image);
где image - аргумент
Аноним 23/01/16 Суб 17:43:52 #120 №632852 
>>632804
А покажи код.
Аноним 23/01/16 Суб 17:45:57 #121 №632855 
>>632852
Я прост тренируюсь с jquery-запросами. Код весь на пикче, в консоли.
Аноним 23/01/16 Суб 17:49:13 #122 №632861 
>>632804
На других сайтах кстати, всё работает. Тута какая-то своя версия скрипта что ли?
Аноним 23/01/16 Суб 18:34:17 #123 №632903 
>>632861
Скорее всего там не пробел, а что-то похожее.
Аноним 23/01/16 Суб 18:37:00 #124 №632908 
>>632903
Даже копировать напрямую из кода страницы. Просто не ищет нихуя
Аноним 23/01/16 Суб 19:22:01 #125 №632947 
>>632804
Просто жквери - говно для даунов и сосёт у XPath
Аноним 23/01/16 Суб 19:22:59 #126 №632948 
>>632947
> XPath
Значение знаешь?
Аноним 23/01/16 Суб 20:17:46 #127 №632991 
>>631709
я вродб евереж мид, гейдев, на пикси социалочки хуярю, но в вебгл дупля не режу
Аноним 23/01/16 Суб 22:37:15 #128 №633051 
>>632991
> пикси
пхпикси?
Аноним 23/01/16 Суб 22:54:45 #129 №633061 
>>633051
2d рисовалка с блекджеком и шлюхами
http://www.pixijs.com/
Аноним 23/01/16 Суб 22:56:53 #130 №633064 
>>633061
Социалку на канвасе? Нахуя? Совсем с ума сошел?
Аноним 23/01/16 Суб 22:57:21 #131 №633065 
>>632810
ойбожечки, а bind для кого придумали?
Аноним 23/01/16 Суб 23:05:28 #132 №633079 
>>631266
this.size = Hamburger.prototype.designationSize(size);

можно сразу юзать
this.size = this.designationSize(size);

ну кароч тут можно было просто через точку
this.settingsHamburger["size"]

остальное писать влом, скажу что неплохо для начала
Аноним 23/01/16 Суб 23:07:59 #133 №633080 
>>633064
Сори за слэнг геймдева.
Игори для социальных сетей, фермы там, брильянтики для бабушек и прочья хунта.
Аноним 23/01/16 Суб 23:09:18 #134 №633083 
14535797585420.gif
>>631266
>На 2016 год писать на ES5, а тем более на ES6 рановато
Аноним 23/01/16 Суб 23:52:16 #135 №633107 
14535823370730.jpg
Сап, экманы. В общем, суть токова - работаю над проектом на ангуляре и мне нужно получить элемент страницы(кнопку) как объект два раза. Но так как во второй раз это происходит по нг-клику,то я без проблем передаю ивент в функцию и через ивент.таргет получаю свою кнопочку как объект(настоящий блять, а не дом-хуету), а теперь вот мне ее нужно получить еще на загрузке страницы, то есть когда страница отрисовывается - решить отрисовать ли эту кнопку на основании даты из апи или нет и я уже битый час не могу нагуглить ответа(ни просто в гуголе, ни в документации ангуляра). В общем, кто шарит, подскажите, пожалуйста.
Аноним 23/01/16 Суб 23:59:39 #136 №633111 
>>633107
>получаю свою кнопочку как объект
>настоящий блять, а не дом-хуету
Что ты несёшь твою мать? Давай ты опишешь проблему более детально, окей?
Аноним 24/01/16 Вск 00:01:08 #137 №633113 
>>633107
>решить отрисовать ли эту кнопку на основании даты из апи или нет

<div ng-if="yoba.dataIzApi">
// отрисовали кнопку здесь
</div>
Аноним 24/01/16 Вск 00:03:10 #138 №633116 
14535829906050.png
>>633113
Блять, о простейшем решении я как-то не подумал. Спасибо.
Аноним 24/01/16 Вск 00:05:24 #139 №633118 
>>633107
> решить отрисовать ли эту кнопку на основании даты из апи или нет
ng-show
Аноним 24/01/16 Вск 00:06:16 #140 №633119 
>>633111
>Что ты несёшь твою мать?
Ты Объект от хтмл-разметки не отличаешь? Стандартные джсы-хуесы и прочие жиквери возвращают сраную разметку, а жи есть красавчик ангуляр может вернуть ссылку на объект элемента страницы, тчобы ты применил к нему методы всякие разные.
Аноним 24/01/16 Вск 00:12:26 #141 №633121 
14535835466150.png
Есть место для ангулярщика на $4 в час. Кто вкатиться хочет - добро пожаловать. [email protected]
Аноним 24/01/16 Вск 00:12:50 #142 №633122 
>>633119
>Стандартные джсы-хуесы и прочие жиквери возвращают сраную разметку
Джсы-хуесы возвращают HtmlDomElement, jQuery возвращает массив-обёртку над таким же объектом.

>может вернуть ссылку на объект элемента страницы
Какой ещё объект элемента страницы, поехавший? Ты хочешь получить JS-объект, который лежит в скоупе какого-то хтмл-элемента или что?

Ты просто открыл мне глаза. Я никогда раньше ничего подобного не слышал. Расскажи подробнее пожалуйста.
Аноним 24/01/16 Вск 00:14:45 #143 №633125 
>>633121
>место для ангулярщика
>$4 в час
Охуительный, наверное, проект. Четыре доллара в час-то! Удачи вам, ребята.
Аноним 24/01/16 Вск 00:17:02 #144 №633127 
>>633121
У тебя ноль отвалился
Аноним 24/01/16 Вск 00:20:23 #145 №633131 
14535840237800.gif
>>633121
> 4
Аноним 24/01/16 Вск 00:34:13 #146 №633134 
>>633122
>Джсы-хуесы возвращают HtmlDomElement, jQuery возвращает массив-обёртку над таким же объектом.
Ну, теперь ты мне открыл глаза! Не знаю как теперь жить.
>Ты хочешь получить JS-объект, который лежит в скоупе какого-то хтмл-элемента
Я хотел и получил объект страницы на котором происходит ивент, как джс-объект, может не так выразился.
Аноним 24/01/16 Вск 00:46:32 #147 №633139 
>>633134
>Я хотел и получил объект страницы на котором происходит ивент
Существует такое понятие как "объект страницы" в джсе?

А хотя:
>объект страницы на котором происходит ивент
>страницы
>на котором
Всё понятно ;D
Аноним 24/01/16 Вск 00:51:59 #148 №633143 
14535859191780.jpg
>>633139
Все понятно с тобой, еблан.
Ты же кукарекал, что тебе не нравится моя форулировка, я тебе и написал объект страницы(дома блять, быдло ты тупое). Если ты кликаешь на элементе, то событие КЛИК происходит и объектом этого события становится эелемент(прув ми ронг, хуйло), и можно получить ссылку на этот объект. А теперь иди нахуй, агрессивное быдло(не забудь это цитировать в следующем своем посте, чтобы выставить таковым меня, в твоем манямирке, естественно), видно жизнь у тебя хуевая, если ты срешься на ровном месте, вместо конструктивной критики или пояснений.
Аноним 24/01/16 Вск 01:00:32 #149 №633146 
>>633143
>объект страницы(дома блять, быдло ты тупое)
Ну вот, написал бы, что имеешь в виду DOM-объект. А то объект страницы какой-то лол.

>событие КЛИК происходит и объектом этого события становится эелемент
Нет, в обработчик события передаётся объект, который содержит ссылку на target DOM-элемент. Там ещё много всяких объектов есть, например srcElement, toElement и т.д.

>видно жизнь у тебя хуевая, если ты срешься на ровном месте, вместо конструктивной критики или пояснений.
Ну, да. Ты прав. Извини. ;(
Аноним 24/01/16 Вск 01:01:27 #150 №633147 
>>633121
> $4 в час
В голос
Аноним 24/01/16 Вск 01:03:47 #151 №633148 
>>633147
>>633131
>>633127
>>633125
Интересно, тут все миллионы зарабатывают? Я вот вообще в свободное от работы время участвую в проекте за возможную будущую выгоду. А то в соседнем треде рыдают, что не берут никуда, а тут плюются от работы для подскока, так сказать.
Аноним 24/01/16 Вск 01:14:46 #152 №633152 
>>633148
Кек. 4 бакса в час это баксов 600-700 в месяц. За такую з/п не каждый джун захочет корячиться.
Аноним 24/01/16 Вск 01:15:03 #153 №633153 
>>633148
Лучше работать за бесплатно, но на тем, что тебе интересно, чем за гроши формошлепать
Аноним 24/01/16 Вск 01:15:39 #154 №633154 
>>633153
> на тем
над тем
Аноним 24/01/16 Вск 01:27:35 #155 №633155 
>>633148
>рыдают, что не берут никуда
>плюются от работы для подскока, так сказать.
А ты думаешь это разные люди?
Аноним 24/01/16 Вск 04:03:34 #156 №633206 
>>633155
Нет, я думаю это одни и те же неудачники с завышенным уровнем притязаний - способностей нет, а требования есть, а потом весь мир у них плохой. Обожаю таких петушков, смешные.
>>633152
>баксов 600-700 в месяц. За такую з/п не каждый джун захочет корячиться
Я надеюсь это был просто толстый тролинг.
>>633153
Да, желательно при этом еду и жилье самому оплачивать, а не стрелять деньги у мамки. Иначе потом только на програмаче рыдать в соответствующих тредах, лол.
Аноним 24/01/16 Вск 13:17:24 #157 №633312 
14536306447900.jpg
>>633079
спасибо
Аноним 24/01/16 Вск 17:04:42 #158 №633453 
14536442821370.jpg
Дошел до изучения первоклассных функций, чувствую себя как герой Начала
Аноним 24/01/16 Вск 17:28:56 #159 №633469 
>>633453
Тем китайцем штоле, который весь фильм в коме лежал?
Аноним 24/01/16 Вск 17:44:21 #160 №633495 
function EventEmitter() {
EventEmitter.init.call(this);
}

EventEmitter.init = function() {/ код /}

Для чего так делают? Почему сразу не пишут в EventEmitter, а создают отдельно EventEmitter.init и вызывают внутри EventEmitter?
Аноним 24/01/16 Вск 17:50:45 #161 №633497 
Где найти список всех методов ActiveX с описанием ? Гугл не знает.
Аноним 24/01/16 Вск 17:51:19 #162 №633498 
>>633495
упоротые. не делай так
Аноним 24/01/16 Вск 17:52:58 #163 №633499 
>>633498
Разрабы ноды упоротые? Так не бывает.
Аноним 24/01/16 Вск 18:03:17 #164 №633500 
>>633499
>Разрабы ноды
Возможно оно так нужно для реализации наследования, и еще какой фигни. Короче, конвенция такая у них.
Аноним 24/01/16 Вск 18:04:24 #165 №633501 
Да там в сорце еще дохуя таких примеров, где можно усомниться в адекватности тех, кто его писал
Аноним 24/01/16 Вск 21:50:52 #166 №633622 
Кто-то в прошлом треде спрашивал, чем занимается фронтенд разраб, если в команде есть выделенный верстала, а кто-то (какие-то полные долбоёбы уже) смеялись над тем, что как можно фронту не уметь в верстку.
Вот небольшая выдержка из одного блога, которая описывает проблему, и заодно достаточно точно описывает то, чем я сейчас занимаюсь (15 кодеров и 3 версталы у нас, у всех всегда есть работа, версталам платят как минимум в два раза меньше самого плохооплачиваемого кодера (это к вопросу про окупаемость, естественно выгодней иметь отдельного версталу)

>"Объясню на пальцах: мы делаем магазин и сделали рубрику товаров (первый компонент). Если мы теперь добавим форму фильтрации, очевидно, что содержимое рубрики должно меняться в зависимости от того, что там введено. Но верно и обратное: содержимое рубрики влияет на поведение формы. Если у нас в рубрике всего 10 товаров, нужно фильтр скрывать. Если все товары синие, можно убрать параметр «цвет» из фильтра. Потом мы добавляем возможность залогиниться (третий компонент) и выясняется, что залогиненному пользователю надо рисовать в каталоге звездочки для отмеченной одежды, а также применить скидки и пересортировать по цене. Пагинатору надо учиться помнить свое положение при манипуляциях с формой поиска. И так далее.

>Каждый новый компонент влияет на предыдущие, и предыдущие нетривиально связываются с новым. Для неинтерактивного приложения это еще как-то можно учесть — как минимум, условия игры фиксированы на момент рендеринга страницы. Но у нас же приложение! Новые товары могут прилететь на страницу по аяксу. Пользователь может накликать «никогда не показывать мне это, это и это». Через 5 минут страница ничего общего не будет иметь с тем, как она выглядела на момент загрузки. И все это надо адекватно отрисовывать.

>Получается, что каждый компонент это не просто поле ввода и ячейка в модели. Его внешний вид определяется предысторией (как, где и сколько в него тыкали) и окружением (как вообще выглядит приложение, какой контекст вокруг)."
Аноним 24/01/16 Вск 21:52:18 #167 №633623 
>>633622
Алсо, почти никто из фронта не умеет в современную верстку, т.е. флексы, хуексы, методологии и т.д., естественно все знаю какие-то базовые штуки, блочную модель и т.д., но верстка в хуй не сдалась, когда есть верстала. Если какие-то проблемы, просто отсылаешь задачу ему, всё.
Аноним 24/01/16 Вск 21:55:44 #168 №633624 
>>633623
Так это же хорошо когда ты не верстала
Аноним 24/01/16 Вск 22:00:03 #169 №633625 
>>633624
Да, я про это и говорю.
Просто было парочка долбоёбов, которые считали, что такого не существует (отдельных верстал и фронтендеров не знающих верстку). Такое повсеместно и везде, в любой более менее солидной компании, где не разбазаривают бабло, будет такое разделение (возможное исключение - стартапы)
Аноним 24/01/16 Вск 22:58:54 #170 №633638 
14536655344090.jpg
>>633625
Ага, я вот недавно в фирму одну устраивался фронтендом(могу в джс, ангуляр), а они меня "а верстать кроссбразерно умеешь, а в хтмл5 как бог можешь" - ну, говорю верстать умею, чутка за кроссбразерность слышал, в хтмл 5 разбираюсь - читал документацию, ненмого ковырялся, но ближе мне как бы не этим заниматься, это для верстальщиков - те в ответ скисли и "мы вам перезвоним", я пожал плечами и попрощался. Хотя они мне таки перезвонили - сказали, что выбрали более достойного кандидата, а мне похуй, я уже в хорошем проекте участвовал к тому времени, где все задачи по верстке я сваливаю на верстальщика. И у меня голова от этого говна не болит. Ненавижу верстку, блять.
Аноним 24/01/16 Вск 23:36:20 #171 №633654 
Господа, а можете подкинуть ссылок на годные проекты со сложным фронтендом, но чтобы без mv-фреймворков, или вообще на ванилле. Интересно почекать как умные люди пишут, как структурируют проекты, как паттерны применяют и все такое.
Аноним 25/01/16 Пнд 00:04:22 #172 №633667 
>>633654
Велика вероятность, что там написан свой mvс/whatever, а дальше так же, как и везде
Аноним 25/01/16 Пнд 01:16:31 #173 №633689 
Кто-нибудь может пояснить за управление загрузкой страницы и контента на ней в частности?

Есть вот это http://ilyabirman.ru/projects/emerge/, но оно платное и слишком много на себя берет. Всякие прелоадеры это гониво, ибо просто ждут загрузки всех элементов, а не управляют ей.

Хотелось бы следующий функционал. Добавляем к элементам доп.класс "load_1", "load_2" и т.д. и очередь загрузки идет по порядковым номерам, ну и плюс возможность анимацию прикрутить и кастомно дописать т.е. загрузился "load_1", вылетел слева, загрузился "load_2" вылетел справа, а не все загрузилось, а потом начало вылетать.

Вот ссылка на подборку статей http://usabili.ru/news/2014/06/03/javascript-load-and-execution-order.html (судя по поняше, кто-то местный автор). Я там немного почитал, но ничего не прояснилось. В основном речь идет о загрузки скриптов, использовании всяких упаковщиков и т.п. Меня же интересует загрузка контента. Вот еще http://web-standards.ru/articles/front-end-performance/.

Допустим, страница у нас простая, загрузили jq.js и css-ы просто в head. Затем грузится dom и картинки.
Вот задача грузить так:
1. <div class="load_2"><img src="anon.jpg" class="load_1"/></div>
2. <div class="load_4"><img src="anon.jpg" class="load_3"/></div>
А не:
1. <div class="load_1"><img src="anon.jpg" class="load_4"/></div>
2. <div class="load_2"><img src="anon.jpg" class="load_3"/></div>
Ну или хотя бы сначала див, потом картинку в нем, и только потом следующий див и его картинку. А не сначала весь dom, а потом картинки к нему. Ну или как вариант хотя бы картинки последовательно вот здесь так грузятся http://portfolio.cpeople.ru/portfolio/all.

Вот есть легкий код:
<!-- html -->
<img src="main.png" id="mainImg">
<img src="" data-src="notmain1.png" class="notmain">
<img src="" data-src="notmain2.png" class="notmain">
<img src="" data-src="notmain3.png" class="notmain">
/ javascript /
$("#mainImg").load(function() {
$(".notmain").attr('src', function() {
return $(this).attr("data-src");
});
});

Но это гон какой-то, если таким образом описывать пример выше с cpeople. Вообще, все, что удалось найти - это, либо просто последовательное появление (при условии, что все уже загрузилось), либо какие-то тонны js (вот на том же cpeople script.js за все это отвечает же?), где приходится полностью описывать логику загрузки страницы, а не просто классы проставить, например, при условии, что контент на разных страницах будет разный, это гемор дикий, и отдельный скрипт для каждой страницы.
Аноним 25/01/16 Пнд 01:49:51 #174 №633695 
>>633689
У них как бы так и сделано, просто проходятся по всем картинкам и потом через таймаут берут из дата ссылку и вставляют в src.
Выглядит супер уёбищно, браузер бы эту всю хуиту в 8 потоков за доли секунды загрузил, а тут приходится ждать пока он по одной картинке в пол секунды почти грузит. Говно.
Аноним 25/01/16 Пнд 02:03:19 #175 №633709 
>>633695
Именно приведенный код ведь грузит во все потоки (после загрузки main.png) или последовательно по порядку, как описаны?
Аноним 25/01/16 Пнд 02:13:51 #176 №633712 
>>633709
Последовательно, но т.к. исполняется очень быстро, то как будто во все потоки, тебе надо добавить паузу, чтобы это было на глаз заметно, как у того сайта, что ты привел. Но опять же, это очень костыльно. Правильнее и проще всё грузить сразу, а потом просто анимацию появления сделать, если уж хочется, чтобы не сразу показывалось.
Аноним 25/01/16 Пнд 04:16:36 #177 №633745 
>>633712
> Правильнее и проще всё грузить сразу
Почему?
Аноним 25/01/16 Пнд 04:32:24 #178 №633748 
>>633625
А чего там знать, на бутстрапе за пять минут слепил и норм
Аноним 25/01/16 Пнд 06:25:48 #179 №633773 
>>633689
>Хотелось бы следующий функционал
>очередь загрузки идет по порядковым номерам
Тащемта, странно, почему ты упомянул именно какой-то подзалупный Emerge. Годных control-flow либ дохуя.

Но я бы рекомендовал использовать промисы, как истинный JS-async way.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise
Например: https://mdn.github.io/promises-test/
Накодишь годно - будет свой собственный ЭМЁРЖ без Джейквери и прочего поноса в зависимостях.
Аноним 25/01/16 Пнд 10:21:10 #180 №633877 
>>633121
Понедельничный бамп.
Аноним 25/01/16 Пнд 10:46:10 #181 №633888 
>>633877
Пиши ставку в рублях лучше, в баксах слишком грустно звучит
Аноним 25/01/16 Пнд 12:59:31 #182 №633975 
>>633888
Хочешь чтоб еще грустнее стало?
Аноним 25/01/16 Пнд 13:03:33 #183 №633977 
>>633975
Я давеча сериал смотрел один, про заключенных-лесбиянок, так вот, там одна девушка занималась низкоквалифицированным трудом (слесарь-электрик).
Она жаловалась на то, что час ее работы стоит $10.
В сериале персонажи, конечно же, грустно вздохнули и отнеслись к этому с сочувствием.
Аноним 25/01/16 Пнд 13:05:11 #184 №633979 
>>633977
У нее fluent english, а у тебя - нет.
Аноним 25/01/16 Пнд 16:07:00 #185 №634063 
>>633977
> низкоквалифицированным трудом (слесарь-электрик)
Тут квалификация повыше, чем у жс-макаки требуется. Не говоря уже об опасности и ответственности.
Аноним 25/01/16 Пнд 19:53:47 #186 №634251 
>>634063
>Тут квалификация повыше, чем у жс-макаки требуется. Не говоря уже об опасности и ответственности.
Что несешь, блядь? Я пару лет отпахал на сто и дружил с нашим электриком - сидит копается в стартерах, иногда залазит под капот с тестером. Я когда смотрел на его работу и зп думал какого хуя я в механики-мотористы попиздил, вместо электрики. Алсо, знания необходимы за 7-й класс физики. Для жс-макаки требования повыше будут.
Аноним 25/01/16 Пнд 21:39:28 #187 №634352 
Поцоны, есть хорошие примеры react + redux сложнее тудушек?

Аноним 25/01/16 Пнд 21:42:06 #188 №634355 
вот ест
Аноним 25/01/16 Пнд 23:00:49 #189 №634416 
>>634352
Дык там элементарно все, что еще нужно то. Redux-thunk еще стоит посмотреть.
Аноним 26/01/16 Втр 03:32:05 #190 №634542 
14537683253580.jpg
Анончик помоги спиздить код http://www.dreamystar1314.com/ebay/responsive-listing/preview/responsive-eBay-listing-template1-blue.html друг очень просит. Сам я bash/python/админоблядь, в js и вебразработку не могу.
Бочку делал, firefox лизал (https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/), но нихуя не понимаю, там море левых переменных и параши вида
() {
hp_nls();
setTimeout("hp_nlsl()", 10)
}

JS-анон тебе там дел на 2 минуты, выручи анона.
Аноним 26/01/16 Втр 04:02:16 #191 №634552 
14537701367990.jpg
>>634542
Зачем тебе это говно?
Как же я проиграл с пидорашьей ЗАЩИТЫ
Аноним 26/01/16 Втр 05:32:06 #192 №634563 
>>633773
Спасибо, хоть ясно стало, что гуглить, вот ниче так, вроде, https://github.com/caolan/async
Но я хотел бы готовое решение для использования на гс, чтоб в жс не лазить вообще (я к вам из /de зашел). В промисах написано, что ие (да и не только) не может в них.
Аноним 26/01/16 Втр 06:11:05 #193 №634566 
>>634542

Деобфускатором/бьютифайером пройдись.
Дамп переменных можно выполнить через console.debug(var);
Аноним 26/01/16 Втр 06:30:02 #194 №634567 
>>634542
>>634566

Первая функция - пакер.
Дальше сам все поймешь.

https://jsbin.com/qiloyi/edit?js,console,output
Аноним 26/01/16 Втр 07:22:44 #195 №634570 
>>634416
>там элементарно все
а если нужно прилепить авторизацию на основе айпи, ролей и погоды за окном?
Аноним 26/01/16 Втр 10:36:56 #196 №634618 
>>634570
Оно же вроде для клиентсайда. Причем тут все это.
Аноним 26/01/16 Втр 10:49:52 #197 №634622 
>>634618
ээ, а нода там зачем?
Аноним 26/01/16 Втр 11:26:31 #198 №634635 
>>634622
Там изоморфное приложение. Сервер на ноде, клиент на реакте. На сервере вместо шаблонизатора тоже реакт. То, то ты написал про авторизацию - ортогонально либе для UI, тут надо смотреть решения для ноды.
Аноним 26/01/16 Втр 11:50:29 #199 №634646 
>>634635
Хотя пизжу. Нет там никакой изоморфности. Нода только для сборки проекта и запуска dev-сервера с ливапдейтами, так то.
Аноним 26/01/16 Втр 12:02:39 #200 №634655 
Работаю HTML/CSS-макакой, делаю статичные странички, максимум что могу — подключить плагин. Решил двигаться дальше и взялся за JS. Читаю уже вторую книгу прочел Крокфорда, сейчас читаю Кантора. Изучаю синтаксис языка и приемы программирования, это все интересно, но хотелось бы получить общее представление о процессе веб-разработки, чтобы понять какой набор технологий мне нужно освоить, чтобы стать front-end разработчиком смутно представляю, что такое Front-end, на самом деле. Кроме того, в планах «проапгрейдить» подходы к разработке, используемые в конторе, где я работаю. Например, узнал, что используемая сейчас пересылка файлов на сервер через FTP — прошлый век, и нужно переходить на систему контроля версий.

Исходя из вышеописанной задачи составил себе такой гайд:
Инструменты разработчика
git
grunt ✓
gulp ✓

HTML/CSS
Адаптивная верстка ✓
БЭМ ✓
Препроцессоры ✓

JavaScript
...

Чем дополнить список? Какие книги или статьи почитать/доклады посмотреть?
Аноним 26/01/16 Втр 12:12:50 #201 №634662 
Анон, посоветуй сайтов, где можно подготовиться к тестированию по джаваскрипту. Именно тупо задрочить тесты. Знаю про quizful, есть еще что-то подобное?
Аноним 26/01/16 Втр 12:13:02 #202 №634663 
>>634655
>файлов на сервер через FTP — прошлый век
Docker, Jenkins, CI
Аноним 26/01/16 Втр 12:17:04 #203 №634666 
>>634662
https://www.reddit.com/r/javascript/comments/3rb88w/ten_questions_ive_been_asked_most_more_than_once/
Аноним 26/01/16 Втр 12:18:31 #204 №634667 
>>634666
Спасибо, это полезно. Хотя там будут, скорее всего, именно чистые тесты - это не собеседование, а тестирование на курсы.
Аноним 26/01/16 Втр 12:44:07 #205 №634685 
>>634655
А как так получилось что ты никогда с фронт-ендом не стыкался? Это же ведь все части одного целого.
На удаленке работаешь/фрилансишь?

В дополнение для удобства можешь пакетные менеджеры глянуть npm/bover.

Аноним 26/01/16 Втр 12:44:55 #206 №634686 
>>634685
>bower
фикс
Аноним 26/01/16 Втр 12:59:24 #207 №634700 
>>634685
>На удаленке работаешь
This.

>А как так получилось что ты никогда с фронт-ендом не стыкался?
Хз. Пилю HTML/CSS по макету, могу подключить плагин типа Flexslider, затем в архиве пересылаю верстку. Недавно начал использовать gulp (для препроцессоров, сборки спрайтов и конкатенации файлов) и git (локально). Иногда могу зайти по FTP и что-то править в .ctp-файлах (CakePHP, я так понял). Больше нихуя не знаю.

Пытаюсь сейчас искать что-нибудь по теме, но проблема в том, что для усвоения найденной инфы нужен определенный багаж знаний или непонятен контекст, невидно общей картины.
Аноним 26/01/16 Втр 13:01:39 #208 №634702 
Кажется, нашел кое-что
https://coggle.it/diagram/52e97f8c5a143de239005d1b/56212c4e4c505e0045c0d3bda59b77e5977c2c9bd40f3fd0b451bdcf8da4aa52
Аноним 26/01/16 Втр 13:20:21 #209 №634709 
Ребят, подскажите как найти удаленку начинающему джаваскриптеру низкой квалификации.
Аноним 26/01/16 Втр 13:24:40 #210 №634711 
>>634700
Начинай с воркзиллы. Низы из низов, так сказать.
Аноним 26/01/16 Втр 13:25:22 #211 №634712 
Бля, >>634711 --> >>634709

Аноним 26/01/16 Втр 13:28:15 #212 №634714 
>>634711
Что то не вижу там заданий на джаваскрипт
Аноним 26/01/16 Втр 15:02:57 #213 №634785 
>>634655
Топ кек, нахуя вы читаете, учите что-то? Охуеть, всё ж интуитивно понятно
Мимо-нихуя-не-учил-каждый-месяц-свой-новый-проект
Аноним 26/01/16 Втр 15:44:44 #214 №634821 
>>634785
>всё ж интуитивно понятно
Выкидыш материнской платы?
Аноним 26/01/16 Втр 15:45:33 #215 №634824 
>>634709
БАМП
Аноним 26/01/16 Втр 15:48:18 #216 №634826 
Как получить результат функции внутри объекта для применения в другой функции этого же объекта?
Сейчас код внутри объекта вида:
function makeShit(){
return data
};
this.doThings = function(){
var dataq= makeShit();
}
Однако при вызове doThings у меня получается undefined вместо data. ЧЯДНТ?
Аноним 26/01/16 Втр 16:02:40 #217 №634840 
>>634826
function makeShit(){
if (typeof makeShit.val == 'undefined'){
makeShit.val = 0;
}
makeShit.val++;
return makeShit.val;
};
Аноним 26/01/16 Втр 16:08:50 #218 №634852 
посоны, накидайте гайдов по оптимизации в ангуляре
выборка где-то на 10к позиций
Аноним 26/01/16 Втр 16:24:40 #219 №634868 
14538146806430.jpg
Сап зк.
Помогите набросать регулярку, я в них пытался разбираться, но каждый раз безуспешно.
Требуется вводить номера домов, причем могут быть значения: "50-" — все дома с номером меньше 50, "50+" — соответственно все больше 50, "30-50" — дома с 30 по 50 номер, ну и просто отдельные номера. Причем у номера дома может быть буква.
Например может быть такая строка: "20-,34а-36,56а,60+", или такая: "23а,50-65".
Выручайте.
Аноним 26/01/16 Втр 16:27:51 #220 №634876 
>>634868
А что в итоге тебе надо получить? Почему просто не split(',')?
Аноним 26/01/16 Втр 16:32:20 #221 №634883 
>>634876
Надо выбрать из списка домов, только те, которые укажут в строке.
Проблема в том, что неизвестно сколько запятых будет.
Аноним 26/01/16 Втр 16:34:16 #222 №634886 
>>634883
Ну, а номер дома это только 50 или 56а тоже дом? А что делать с 65+? Ты же нихуя не написал.
Аноним 26/01/16 Втр 16:38:39 #223 №634897 
>>634826
https://ideone.com/OX39Os
Аноним 26/01/16 Втр 16:42:43 #224 №634905 
>>634709
БАМП
Аноним 26/01/16 Втр 17:15:52 #225 №634930 
>>634886
Любая буква рядом с цифрой — это тоже номер дома, буква просто откидывается потом.
Ну вот смотри, есть список домов: 1,2,3,4,5,6,7,8,9.
У каждого дома есть например количество жильцов.
Пользователь хочет узнать, сколько человек живет в 1,3,4,5 и 8 домах.
Он пишет строку: "1,3-5,8а", и ему выводятся нужные ему дома.
Следовательно мне нужно проверять эту строку, может он криво введет, проверка на дурака.
Аноним 26/01/16 Втр 17:16:29 #226 №634932 
>>633712
>Последовательно
Нет, все class="notmain" будут параллельно грузится после загрузки id="mainImg".

Все еще не нашел библиотеку в коробке, с реализацией руками под конкретную страницу разобрался, вот четкий пример http://ida-freewares.ru/poetapnaya-asinkhronnaya-zagruzka-dannykh-v-jquery-ajax.html
Аноним 26/01/16 Втр 17:37:54 #227 №634953 
14538190743540.png
https://jsbin.com/sevuqupili/edit?js,output
(по ссылке небольшой баг - после загрузки по кропперу кликнуть надо, чтобы он на место встал)

Жабаскриптаны, такой вопрос возник, не могу разобраться:
Делаю тестовое задание - загрузка фотки, выбор пропорций для обрезки, сепия.
Вроде всё сделал, но на последнем шаге проблема - когда надо по рамке обрезать картинку и сохранить на сервере обработанный вариант, у меня не получается правильно собрать канвас из картинки и дива, который я использую как кроппер.
В ебаной функции context.drawImage (http://www.html5canvastutorials.com/tutorials/html5-canvas-image-crop/) 8 координат, к тому же дело осложняется тем, что я работаю с изображением не в оригинальных размерах - т.е. еще 1 коэффициент добавляется.
Ебался-ебался - так и не разобрался. Подскажите что-нибудь полезного.
Ну и кому не лень - ткните носом в говно, пояснив где надо было сделать по-другому.
Аноним 26/01/16 Втр 17:56:41 #228 №634979 
14538202015490.jpg
>>634953
>Делаю тестовое задание
>где надо было сделать по-другому
Аноним 26/01/16 Втр 18:01:46 #229 №634983 
>>634979
А мне чот понравилось задание, интересно даже стало - сделаю, или нет.
Сроки всё равно уже просрал - так что теперь просто из интереса пытаюсь доделать.
Аноним 26/01/16 Втр 18:05:16 #230 №634984 
>>634930
Бамп
Аноним 26/01/16 Втр 18:32:23 #231 №635010 
>>634852
Выбирай промежутками
Аноним 26/01/16 Втр 18:34:25 #232 №635011 
>>634930
Сделай нормальный интерфейс. Какая строка, блять? 2016 год
Аноним 26/01/16 Втр 18:39:28 #233 №635021 
14538227685320.jpg
Анон, на чем писать backend сайта?
Аноним 26/01/16 Втр 18:41:42 #234 №635026 
>>635021
pure html
Аноним 26/01/16 Втр 18:45:15 #235 №635032 
>>635011
>нормальный интерфейс
Посоветуй, с помощью чего его можно реализовать?
Аноним 26/01/16 Втр 19:18:30 #236 №635062 
14538251102960.gif
Я наконец понял что такое замыкание. Поздравляю себя.
Аноним 26/01/16 Втр 19:24:13 #237 №635073 
>>634709
БАМП
Аноним 26/01/16 Втр 19:35:07 #238 №635091 
>>634709
Просто берешь и без задней мысли устраиваешься на подходящую вакансию с хедхантера/авито.
Аноним 26/01/16 Втр 20:06:45 #239 №635126 
>>635091
Я про удаленку. Не все из нерезиновой
Аноним 26/01/16 Втр 20:10:35 #240 №635128 
>>635126
Просто берешь и без задней мысли устраиваешься на подходящую вакансию с удаленкой с хедхантера/авито.
Аноним 26/01/16 Втр 20:39:59 #241 №635151 
>>635032
С помощью select'a

http://krazedkrish.com/select-multiple/#demos
http://www.jqueryscript.net/demo/Two-side-Multi-Select-Plugin-with-jQuery-multiselect-js/
Аноним 26/01/16 Втр 20:40:28 #242 №635152 
>>635021
cakephp
Аноним 26/01/16 Втр 20:52:29 #243 №635160 
>>631484
>>631484

ну для начала эту регулярку надо написать четёнько и ровненько, типо вот так /,(\d.+?)$/ig а потом заматчить её на строке типо так:
var matchResult = tvojaEbanjaRegularka.exec(tvojaSranajaStroka);

вот этот вот matchResult это масив результатов где если я не ошибаюсь под индексом 1
Аноним 26/01/16 Втр 20:54:00 #244 №635162 
>>631155

Как раз его реинкарнация в ES2015 (тот же ES6) как раз таки торт. всякие тайпскрипты и котлины проприетарная хуита. Ну ок, мб котлин норм, но он пока что не юзабелен так как жабоскрипт
Аноним 26/01/16 Втр 20:56:28 #245 №635164 
>>635160
>>635160

бля аккела промахнулся с регуляркой
вот коректный: /\,(\d+)$/ig
Аноним 26/01/16 Втр 21:00:35 #246 №635170 
>>634852

ангуляр без гаманства не выгребает столько за раз. От слова совсем. если ты хочешь только эти 10к только отобразить чере one-time binding то ещё ок. Но в остально запомни в какангуляре потолок вотчеров в 3к (в твоём случае ng-repeat как раз таки пытается создать 10к вотчеров на каждый айтем, от того и рыгает как на вписке)
Аноним 26/01/16 Втр 21:01:49 #247 №635171 
14538313091430.png
>>635021
Аноним 26/01/16 Втр 21:04:04 #248 №635173 
О, оказывается яваскрипт имеет больше возможностей чем я думал. Поясните, за такой момент, я знаю ПХП и вёрстку, хуже знаю яваскрипт (который забывается, так как им почти не пользуюсь) и знаю jQuery (который очень простой и удобный), стоит ли мне учить ещё какие-нибудь JS фреймворки, если я планирую заниматься вебом? И есть ли лёгкие фреймворки на JS, разобраться в которых, имея знания яваскрипт на уровне джуна, можно за месяц? И которые при этом будут полезны. Хочу расшириться в этом направлении, но боюсь потратить время впустую, точнее на то, что мне не понадобиться.
Аноним 26/01/16 Втр 21:04:35 #249 №635174 
14538314758320.jpg
>>635171

сударь вы зашли не в тот район тут у нас все культурные люди. Node.js наше всё
Аноним 26/01/16 Втр 21:09:12 #250 №635178 
>>635173
1) забудь что есть пыхпых.С опытом поймешь
2) Выучить норм язык и алгоритмы и рубить бабло.
3) Если всё же хочется веба ну прям оч-оч то учит глубже JS а лучше его новую версию ES2015
4) Бери node.js и ебаш фулстек на одном зоопарке и имей профит и счастье с этого
5) нынче класные фреймворки это reactjs, angular2, ExtJS
Аноним 26/01/16 Втр 21:10:05 #251 №635181 
>>635173
> jQuery
> стоит ли мне учить ещё какие-нибудь JS фреймворки
Аноним 26/01/16 Втр 22:00:50 #252 №635225 
>>635181
Двачую. Зашквар такое спрашивать в 2016, все знают что jQuery достаточно для всего, на jQuery пишут даже операционные системы и кластерные вычисления с петабайтами данных.
Аноним 26/01/16 Втр 22:40:03 #253 №635275 
14538372039390.png
>>635173
>jQuery
>фреймворк
Аноним 26/01/16 Втр 23:01:09 #254 №635314 
>>635225

ну если для тя ОС на JS это кнопку прихуярить и видок рабочего стола сделать аля винь хр тогда бро не лезь в програмирование не разобравшись снчала в терминологии. Хотя бы.
Аноним 26/01/16 Втр 23:15:41 #255 №635339 
>>635314
Пиздец, такой толстый троллинг не различить.
Аноним 26/01/16 Втр 23:42:59 #256 №635374 
>>635339
К тебе это тоже относится, кстати)
Аноним 26/01/16 Втр 23:55:58 #257 №635387 
>>635374
К тебе это тоже относится, кстати)
Аноним 27/01/16 Срд 00:02:54 #258 №635395 
Вкратце: пишу класс графика на чистом JS чтобы научиться основам. Не могу из метода получить доступ к свойствам класса.
[code]
//Конструктор
var Chart = function(data) {
this.prototype = Object.prototype;
this.data = data;
this.X = Y;
//...
//Метод прорисовки - прорисовывает нормально
this.prototype.repaint = function(args) {
//Видит this.data;
}
//Реакция на движения (события получаются от canvas)
this.prototype.onMouseMove = function(event) {
//Type error(line 128 col 16) this.data is undefined;
}
};
[/code]
Полный код:
https://ideone.com/io4hp9
Аноним 27/01/16 Срд 00:07:58 #259 №635396 
>>635395
1) классы - зло, забудь про них и никогда больше не используй.
2) не пиши на ес5
3) внутри функции this смотрит на функцию, а не на объект
Аноним 27/01/16 Срд 00:13:36 #260 №635404 
Антошки, хочу выучить js как второй язык и пилить фронт енд на всяких ангулярах. Дайте какой-нибудь пошаговый гайд где на примере подробно рассказывают как это делать.
Книжку learn-js прочел, начал проходить интерактивные курсы но тупо лень по 150 раз пилить всякие детские циклы и присваивать переменные.
Сам синтаксис языка и принципы понял, теперь надо научиться пользоваться фреймворками.
Спасибо.
Аноним 27/01/16 Срд 00:13:49 #261 №635405 
>>635396
> 2) не пиши на ес5
почему?
Аноним 27/01/16 Срд 00:14:13 #262 №635407 
>>635387
К тебе это тоже относится, кстати)
Аноним 27/01/16 Срд 00:15:38 #263 №635409 
>>635396
Если функция
Object.prototype.func = function() {
}
является методом объекта, как внутри функции получить доступ к свойствам объекта?
Аноним 27/01/16 Срд 00:16:28 #264 №635410 
>>635404
Если можешь в ангельский, вот охуительный курс
https://www.codeschool.com/courses/shaping-up-with-angular-js
Аноним 27/01/16 Срд 00:30:14 #265 №635420 
>>635409
через this?
Аноним 27/01/16 Срд 00:33:24 #266 №635422 
>>635409
Не, хуйню я спорол, должен видеть this. в том виде, как ты написал, но мне кажется, что всё равно в этом ошибка, только просто в другом каком-то месте ты теряешь контекст. По коду который ты скинул всё должно быть окей.
Аноним 27/01/16 Срд 00:34:59 #267 №635425 
14538440998350.jpg
>>635410
Два чая, я с него начал знакомство с ангуляром. Хороший курс.
Аноним 27/01/16 Срд 00:36:39 #268 №635426 
>>635409
В любой непонятной ситуации с контекстом используй apply(и еще ее функция-сестра, у них разница лишь в передаче параметров), там ты сможешь указать явно, что должно быть контекстом.
Аноним 27/01/16 Срд 01:02:29 #269 №635436 
>>635396
>классы - зло
>не пиши на ес5
>this смотрит на функцию

Ахуительные истории!
Аноним 27/01/16 Срд 01:19:43 #270 №635444 
>>635395
Нашёл свою ошибку.

Объект var chart = new Chart(chartData);
создается внутри функции которая запускается по завершению ajax-запроса. И <canvas onmousemove="chart.onMouseMove(event)"> не может получить доступ к тому, что находится внутри функции request.onreadystatechange = function() {...new Chart...}.
Аноним 27/01/16 Срд 01:21:52 #271 №635446 
>>635395
Возможно, все из-за того, что когда вызывается инлайновый обработчик события onmousemove="chart.onMouseMove(event)", this равен DOM элементу, т.е. canvas. Попробуй вывести в консоль this внутри обработчика и посмотри, что происходит.

>this.prototype = Object.prototype;
Для чего ты так делаешь?
Аноним 27/01/16 Срд 01:22:53 #272 №635448 
>>635444
Решение: объявить var chart в глобальном контексте, а потом уже внутри функционального контекста присваивать chart = new Chart(chartData);
Аноним 27/01/16 Срд 01:26:19 #273 №635450 
>>635446
Потому что впоследствии если я пытаюсь в конструкторе объявить методы конструируемому объекту через this.prototype.repaint = function() {...} мне пишет что prototype is undefined. То есть насколько я понимаю, я должен унаследовать от Object "место, куда я могу записывать объявленные методы", и только после этого могу объявлять методы класса. Хотя, в таком случае не записываю ли я их по ссылке в сам Object вместо этого?.. я еще не разобрался.
Аноним 27/01/16 Срд 01:43:18 #274 №635457 
>>635450
>через this.prototype.repaint = function() {...} мне пишет что prototype is undefined
Ну, естественно.

Методы своему классу создавай так:
Chart.prototype.methodName = function(){};

this - ссылка на объект, который создаст функция конструктор с вызовом через new. И у этого объекта нет свойства prototype, потому и undefined. Объявление функций ClassName.prototype.methodName будут доступны у создаваемого этим конструктором объекта через __proto__.

А сейчас у каждого созданного тобой объекта, будет доступен метод repaint.
var o = {};
console.log(o.repaint);
Заебись?

Аноним 27/01/16 Срд 02:03:00 #275 №635462 
>>635457
Понятно. Спасибо.
Аноним 27/01/16 Срд 04:15:53 #276 №635492 
>>635151
Заранее не известно количество домов.
Аноним 27/01/16 Срд 04:22:46 #277 №635495 
>>635492
И что? Ты же понимаешь, что DOM можно перерисовывать на лету, так?
Аноним 27/01/16 Срд 04:28:04 #278 №635500 
Поясните за js, как сложно мне будет вкатиться в джуна? В скилсах задания типа лаба 1, лаба 2 и даже лаба3(си и кресты). Также знаю основы html и css. До этого пытался в кресты но чет дропнул. В базовые понятия программирования могу, даж в ооп. Вопрос ещё, js очень тесно связан с версткой? Поясните за бэкенд че там вообще делать то нужно inb4: логика сайта
Аноним 27/01/16 Срд 04:29:21 #279 №635501 
>>635495
Можно, но не в моем случае.
Суть в том, что пользователь вводит номера домов, которые он хочет купить.
Но в базе хранятся только те дома, которые уже выставлены на продажу.
Он может ввести 40+, и ждать когда дома с такими номерами выставят на продажу.
Аноним 27/01/16 Срд 04:30:39 #280 №635502 
>>635501
Так и будет годами сидеть не закрывая сайт?
Когда выставят, тогда и отрисуешь их
Аноним 27/01/16 Срд 04:32:54 #281 №635503 
>>635502
Ему уведомление придет, когда такой дом выставят.
Если они не будут отрисованы сразу, то как он выберет дома, которых ещё нет в продаже? Вот таком случае ему точно придется сидеть и мониторить, когда его наконец выставят.
Аноним 27/01/16 Срд 05:00:17 #282 №635505 
>>635503
Cделай тогда выбор номера с radio-кнопками
Сначала дом выбираешь, потом букву, потом результаты
Текстовое поле - это пиздец
Аноним 27/01/16 Срд 05:07:23 #283 №635506 
>>635505
Что-то ты начал за здравие
>Сделай нормальный интерфейс. Какая строка, блять? 2016 год
закончил за упокой
>Cделай тогда выбор номера с radio-кнопками
>Сначала дом выбираешь, потом букву, потом результаты
Аноним 27/01/16 Срд 05:08:48 #284 №635507 
14538605287650.jpg
>>634953
Совсем никто совсем ничего не подскажет по корректным значениям параметров для drawImage??
Аноним 27/01/16 Срд 06:00:00 #285 №635512 
>>635506
Кто ж знал, что ты так по-ебанутому всё делаешь? Обычно за проверку дома на существование бэкенд отвечает, а у тебя пользователь
Аноним 27/01/16 Срд 08:18:23 #286 №635539 
>>634953
>(по ссылке небольшой баг - после загрузки по кропперу кликнуть надо, чтобы он на место встал)
Это не баг, это фича последствия отсутствия строгой типизации, лол:
//top: "-" + h
top: parseInt(h)*-1
Аноним 27/01/16 Срд 12:27:05 #287 №635646 
>>634852
подкинь шаманств плиз
Аноним 27/01/16 Срд 12:33:28 #288 №635650 
>>635492
RegExp тебе в помощь

а тут можешь тустировать регексы http://www.regexpal.com

регулярка в твоём случае будеч то то типа такого /\,?(.+)/ig
Аноним 27/01/16 Срд 12:42:27 #289 №635655 
>>635507
Не, чувак такое говно даже стыдно подсказывать.
А врочем ладно подскажу, пуская гонят меня и издеваются надо мною

.image-canvas {
border: 2px solid #163cbc;

position:absolute;
left:0;
top:0;

}

Как бы стили правильные не забывай указывать
Аноним 27/01/16 Срд 15:54:03 #290 №635806 
14538992440200.png
>>635655
Но я спрашиваю, какие значения использовать при вызове context.drawImage() из тех, что у меня хранятся в options, няш. Стили кроппера-то тут причем?
Аноним 27/01/16 Срд 17:16:23 #291 №635884 
Предлагаю разработать очень легковесный модульный js-фреймворк. Все существующие легковесные похоже, что заброшены. Я считаю, что нам нужно уменьшить размер мирового веба и увеличить его быстродействие.
Аноним 27/01/16 Срд 17:29:23 #292 №635912 
>>635884
было 16 фреймворков, стало 17.jpg
Аноним 27/01/16 Срд 18:12:44 #293 №635974 
>>635884
Ангуляр 2, как мне кажется, идеален для всего, что нам нужно в 2016 году. Гугловцы знают что делают.
html-academy-ebanaya Аноним 27/01/16 Срд 18:26:23 #294 №635990 
Аноны кароч вот код:

form.addEventListener("submit", function(event){
if(!(login.value&&password.value)){
event.preventDefault();
console.log("Не введены данные");
popup.classList.remove("modal_error");
popup.classList.add("modal_error");
}
else {localStorage.setItem("login", login.value);}
});

это тупо проверка на вводе данных в форму, смысл в том, чтоб трясти форму когда что-то не введено. modal_error тупо добавляет классу анимацию. Первый раз все норм работает, на второе нажатие не реагирует анимация, а после закрытия формы и открытия анимация проигрывается сама по себе. ЧЗНХ?
Аноним 27/01/16 Срд 18:29:14 #295 №635992 
>>635990
>НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.
Аноним 27/01/16 Срд 18:32:10 #296 №635995 
>>635992
да знаю я хули тут три строчки https://jsbin.com/qexufiqabi/edit?js
Аноним 27/01/16 Срд 18:35:04 #297 №635999 
>>635995
Ты можешь вместе с HTML и CSS скопировать, ебанутый?
Аноним 27/01/16 Срд 18:57:54 #298 №636024 
>>635999
бля, кароч как-то так https://jsbin.com/hobefativo/edit?html,css,js,output

Не могу понять почему повторное нажатие, которое по идее должно запускать заново submit не проигрывает анимацию
Аноним 27/01/16 Срд 18:58:59 #299 №636025 
там окно просмотра ток пошире сделайте, чтоб закрытие окна потестить, там квадратик красный
Аноним 27/01/16 Срд 19:01:46 #300 №636029 
>>631129 (OP)
Вечер в хату, https://jsfiddle.net/e5cbuoxf/6/
вот тут я наговнокодил, че то стыдно такой код показывать, подкиньте идей как сократить ?
Аноним 27/01/16 Срд 19:07:01 #301 №636033 
>>636029
if(document.body.querySelector(".start")&&(!document.body.querySelector(".stop")) {
Аноним 27/01/16 Срд 19:12:15 #302 №636036 
>>636033
принято, а colorizeBetween насколько неочевидна ? Именования там прозрачны ?
Аноним 27/01/16 Срд 19:38:52 #303 №636061 
TypeScript или ES6 на какой стул сесть и почему?
Аноним 27/01/16 Срд 19:40:55 #304 №636066 
>>636061
почему говорить не буду, на es6 если в реакт, typescript если angular2

Аноним 27/01/16 Срд 19:44:45 #305 №636074 
почаны, готовлюсь к собесу, есть вопрос насчет полифила обжект.креате. На мдн написано что-то такое:
```var create = (function(){
var Temp = function(){};
return function(parentPrototype){
Temp.prototype = parentPrototype;
var result = new Temp();
Temp.prototype = null;
return result;
}
})();
```
почему нельзя просто написать
```var create = function(parent) {
var Temp = function() {};
Temp.prototype = parent;
var result = new Temp();
return result;
}
```

зачем Temp находится в кложурсе? Он же память будет просто так занимать всегда
Аноним 27/01/16 Срд 20:00:11 #306 №636088 
>>636074
Ну в первом случае темп будет создаваться только один раз, при выполнении когда кода с полифилом, а во втором каждый раз когда вызываешь create. Возможно это какая-то оптимизация. Все жалуются что обжект.креайт медленный.
Аноним 27/01/16 Срд 20:16:28 #307 №636107 
>>636066
Кекнул, в реакте тс гораздо пизже ангуляра и можно юзать уже сейчас
Аноним 27/01/16 Срд 20:19:18 #308 №636110 
>>636107
ну хуй знает, выбирая между es6 и ts я выбрал бы es6 т.к. незнаю почему, но я на coffee уже обжегся, выучил его, а через две недели вышел es6 и он сдох
Аноним 27/01/16 Срд 20:27:20 #309 №636118 
>>636024
Очевидно, что проблема в удалении класса/присвоении класса.
Такой 'ugly hack' для демонстрации решает проблему:
setTimeout(function() {popup.classList.remove("modal_error");}, 50)
setTimeout(function() {popup.classList.add("modal_error");}, 100)
Аноним 27/01/16 Срд 20:27:27 #310 №636119 
>>636088
спасибо
Аноним 27/01/16 Срд 20:29:29 #311 №636121 
>>636029
Ну ебаный в рот, не вешай обработчик на каждый элемент в цикле. Используй делегирование!
Комментируешь в коде всем очевидные вещи - как работает инструкция if: // если есть элемент с классом start, но не комментируешь, для чего нужны твои функции, какие аргументы принимают и вообще для чего нужен твой код. Сделай чтобы функция colorizeBetween принимала только 2 аргумента colorizeBetween(startIndex, stopIndex) и уже внутри нее определяй в какую сторону закрашивать, передавать 3 параметром строку "left" или "right" - хуевая идея - легко допустить очепятку и твоя IDE ничем подсказать тебе не сможет.
Аноним 27/01/16 Срд 20:34:06 #312 №636126 
14539160463050.png
>>636121
>var sta = startIndex;
>var sto = stopIndex;
>var startIndex = sto;
>var stopIndex = sta;

Что вообще здесь творится?
Аноним 27/01/16 Срд 20:43:08 #313 №636129 
14539165888390.jpg
>>636118
ок, но если закрыть и открыть форму то анимация один хуй проигрывается, да и это решение с графическим лагом, че-то тут не так. если поставить задержки 500 и 1, то получится проигрывание обеих анимаций...лол, но выглядит уже лучше. Так с какого хуя обе проигрываются?!
Аноним 27/01/16 Срд 21:20:47 #314 №636159 
>>636129
>но если закрыть и открыть форму то анимация один хуй проигрывается
Ебааать... Ясен хуй.
//JS
close_popup.addEventListener("click", function(event){popup.classList.remove("modal_show");});
//CSS
.modal_show{
display: block;
animation: bounce 0.8s;
}

Чувствуешь, тут что-то не так?
Аноним 27/01/16 Срд 21:24:14 #315 №636161 
>>636129
>>636159
>//JS
>close_popup.addEventListener("click", function(event){popup.classList.remove("modal_show");});
Бля, то есть:
enter.addEventListener("click", function(event){event.preventDefault();popup.classList.add("modal_show");
Сплю уже.
Кароч, при входе вешается класс с анимацией.
Следовательно, все у тебя по коду логично.
Аноним 27/01/16 Срд 21:28:14 #316 №636163 
>>636126
ну типа если мышка в левую сторону пошла, нужно поменять индекс начала и конца местами а то получится array.split(8,2) например а js так не умеет
Аноним 27/01/16 Срд 21:36:27 #317 №636166 
>>636161
логично-то логично, только обе анимации по отдельности прекрасно работают, а вместе нихуя. Подвоха не понял. Ну то есть как не понял, понял, что у класса modal_show всегда висит анимация, и при вызове еще одной анимации с этим блоком первая тож проигрывается. Это не то поведение, которого я ждал от keyframes
Аноним 28/01/16 Чтв 04:58:06 #318 №636536 
14539462861140.jpg
>>634552
Друг попросил.
>>634566
>>634567
Ты хорoший человек, твоя мать — достойная женщина, отец — настоящий мужчина
Аноним 28/01/16 Чтв 05:02:25 #319 №636537 
>>635500
Бамп
Аноним 28/01/16 Чтв 10:01:23 #320 №636576 
>>635500
Ээ блет, так чем ты вообще заниматься собираешься? Я могу тебе с десяток технологий написать, но нахуя тебе это?
Аноним 28/01/16 Чтв 10:56:36 #321 №636598 
>>631129 (OP)
>>636255
Аноним 28/01/16 Чтв 11:56:58 #322 №636633 
>>636598
JSDOM
https://github.com/tmpvar/jsdom
Аноним 28/01/16 Чтв 12:19:34 #323 №636659 
14539727744750.png
Пацаны, что не так?
Аноним 28/01/16 Чтв 12:31:12 #324 №636672 
>>636659
console.log(event) выдает одинаковые результаты в обоих случаях.
Аноним 28/01/16 Чтв 14:14:11 #325 №636765 
Джсаны, поясните, как можно отловить изменение содержимого элемента? Допустим есть окно чата и нужно обрабатывать каждое новое сообщение. Я прочитал все про события, но все равно не представляю как это реализовать.
Аноним 28/01/16 Чтв 14:41:32 #326 №636784 
>>636765
>Допустим есть окно чата и нужно обрабатывать каждое новое сообщение
Вешаешь ивент лиснер @ прикручиваешь обработчик.
Обзор ивентов:
https://developer.mozilla.org/en-US/docs/Web/Events
Можешь запилить кастомный ивент:
https://developer.mozilla.org/ru/docs/Web/Guide/Events/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9
Аноним 28/01/16 Чтв 14:47:17 #327 №636789 
>>636784
Спасибо, я так понял вот эта штука https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver как раз то, что мне нужно.
Аноним 28/01/16 Чтв 15:38:53 #328 №636843 
посоны есть задача
нужно организовать поиск по большим json файлам с помощью js , в файлах выгрузка даных порядка 100к позиций, необходимо выводить данные на сайт
с помощью чего это можно реализовать
Аноним 28/01/16 Чтв 15:52:25 #329 №636856 
>>636843
angular
/thread
Аноним 28/01/16 Чтв 15:56:27 #330 №636861 
>>636633
Спасибо, во всей видимости это то что мне нужно.
Аноним 28/01/16 Чтв 15:57:28 #331 №636862 
>>636856
angular после 3к позиций загибается к едреной фене
Аноним 28/01/16 Чтв 16:06:57 #332 №636872 
>>636862
Где загибается? Ты хочешь сказать, что он не способен подгрузить объекты из джейсона?($scope.huetaName = angular.fromJSON(response.data);) и гуляй-рука-писюн, то есть клепай себе через нг-репит.
Аноним 28/01/16 Чтв 16:09:02 #333 №636875 
>>635806
просто оно фиксит твою проблему. Стили играют роль в позиционировании вот этих твоих жвух поебней
Аноним 28/01/16 Чтв 16:09:42 #334 №636876 
>>636862
>>636856
$ npm search json stream parse
Просто ДОХУИЩА либ для парсинга реально больших JSON.
С другой стороны, это конечно 'workaround', т.к. V8 не предоставляет нативно асинхронных средств для работы с большими джейсонами.
Аноним 28/01/16 Чтв 16:18:30 #335 №636888 
>>636872
ты про это
var хуевыймодуль = angular.module('хуевыймодуль', []);
хуевыймодуль.controller('хуевыйCtrl', function ($scope, $http) {
$http.get('test1.json')
.success(function (data) {
$scope.preparats = data;

});
то это работает
валится ng-repeat
>>636876
ты пробовал юзать эти модули?
Аноним 28/01/16 Чтв 16:22:32 #336 №636894 
>>636888
а ты по кусочкам попробуй, первую тыщенку отрисуй, setInterval(500, отрисоватьТыщенку);
Аноним 28/01/16 Чтв 16:25:28 #337 №636897 
>>636843
Чем не варик?
var parser = new JSON.Parser();
parser.update(data); // updates the state of the parser with more data
var result = parser.result();
Аноним 28/01/16 Чтв 16:41:40 #338 №636911 
>>636894
если прилепить фильтры то оно и на 200 валится
Аноним 28/01/16 Чтв 16:47:38 #339 №636918 
>>636894
>>636911
а фильтры там по любому нужны, возня с порциями по 100 шт на 10000 к позиций нахуй нада
просто я второй день дрочусь как это запилить в ангуляре
как вариант думал парсить напрямую в контроллере с помощью андерскоре
или пилить через эластик серч
Аноним 28/01/16 Чтв 17:20:38 #340 №636939 
>>636888
>>636888
http://stackoverflow.com/questions/17348058/how-to-improve-performance-of-ngrepeat-over-a-huge-dataset-angular-js

не вариант по скролу еще подгружать ?
Аноним 28/01/16 Чтв 18:27:40 #341 №637002 
>>636789
Но так плохо делать, на самом деле. Если ты не юзерскрипт пишешь и чат твой - можно сделать куда правильнее.
Аноним 28/01/16 Чтв 18:36:32 #342 №637014 
>>636888
Потому что не пытайся делать хуйню(загружать несколько тысяч сразу), тут тебе люди говорят делай через интервал(где там ебаться-то? одну строку кода добавить?), по событию(скролл, аддБаттон, ватевар). Что угодно наебнется, если его заставить 100к сразу подгрузить.
Аноним 28/01/16 Чтв 18:37:59 #343 №637016 
>>636918
Пиздец ты мудак. Такие вещи на бэкенде делаются
Аноним 28/01/16 Чтв 18:38:59 #344 №637017 
>>636911
Через интревал\событие фильтруй\делай что угодно и кешируй в объекте контроллера - отдавай из объекта. Все просто.
Аноним 28/01/16 Чтв 18:39:39 #345 №637019 
14539955792870.png
Коданы, мне в общем надо сделать анимацию маятника, пользователь выбирает нажатием точку на жёлтой дуге откуда будет маятник совершать движение.
Где прочитать за эту хуйню?
Аноним 28/01/16 Чтв 18:42:04 #346 №637027 
>>637019
gugoldotcom > how to create pendulum javascript
............
PROFIT
Аноним 28/01/16 Чтв 18:48:13 #347 №637036 
>>637027
Спасибо, ананс прям по первой ссылке такой охуенный маятник!
Аноним 28/01/16 Чтв 19:53:30 #348 №637119 
>>637014
100k позиций асинхронно подгружать по 100 штучек нюню
поиск тоже асинхронно делать?
>>637016
>анхулар тхреад
>Пиздец ты мудак. Такие вещи на бэкенде делаются
Аноним 28/01/16 Чтв 20:06:12 #349 №637137 
>>637119
> >анхулар тхреад
> >Пиздец ты мудак. Такие вещи на бэкенде делаются
Это жс-тред, мудила, и на жс можно запилить бэкенд
Как вообще мысль может прийти о сортировке данных на клиенте, это же пиздец
Аноним 28/01/16 Чтв 20:09:27 #350 №637142 
>>637137
ну так запили какую библиотеку лучше использовать, че ты истериш как баба?
Аноним 28/01/16 Чтв 20:14:08 #351 №637143 
>>637142
Какую библиотеку, поехавший? Знаешь что такое бекенд?
У тебя должна быть база данных, в которой эти данные, вся сортировка, поиск, агрегация выполняется на бекенде, через базу данных
А клиент должен их таскать запросами
/get-data?PAGE=1&SEARCH=vagina
Аноним 28/01/16 Чтв 20:14:23 #352 №637145 
14540012635460.gif
анон, подскажи библиотеку/скрипт для создания дерева как на пике.
Аноним 28/01/16 Чтв 20:28:35 #353 №637166 
>>637143
хостинг с монгой не подкинеш?
Аноним 28/01/16 Чтв 20:29:29 #354 №637168 
>>637166
http://digitalocean.com
Аноним 28/01/16 Чтв 21:20:09 #355 №637214 
>>637145
бампану пожалуй
Аноним 29/01/16 Птн 05:03:15 #356 №637441 
14540329951910.png
Хелп


>>637145
https://github.com/mindmup/mapjs
Аноним 29/01/16 Птн 05:55:23 #357 №637448 
>>637441
Передай контекст.
Плохой способ:
var self = this;
return self.userData;
Хороший способ привязать к вызываемой функции контекст через .bind(this)
Аноним 29/01/16 Птн 07:25:37 #358 №637461 
>>637441
>>637448
А, блядь, не всматривался в твой высер, у тебя промисы в Sails.
Тогда что не работает?
Здесь такой же код и так же используется возврат внутри .then

http://maangalabs.com/blog/2014/08/23/promises-in-sails-js-remove-callback-hell/
Аноним 29/01/16 Птн 12:15:50 #359 №637548 
>>637441
Возвращай из сервиса Promise. В контроллере через then прописывай результат в response.
Аноним 29/01/16 Птн 12:59:26 #360 №637571 
Накидайте еще своего проблемного кода.
Охота поразбираться.
Аноним 29/01/16 Птн 13:33:52 #361 №637588 
>>637548
>>637461
Спасибо.
Да, так и сделал. Заебись.

А переменную из промиса никак не вернуть? А то вместо колбек-хелла промис-хелл получается
Аноним 29/01/16 Птн 13:48:45 #362 №637596 
>>637588
>А то вместо колбек-хелла промис-хелл получается
Суть в том, что в промисах значения можно (и нужно) резолвить.
Адаптированный вариант Мозилловского примера:
https://jsbin.com/miwelu/edit?js,console
Аноним 29/01/16 Птн 14:11:56 #363 №637605 
>>637596
Так резолв это же просто обработка значений, которые вернулись. А как из промиса вернуть значение во внешнюю переменную, например?

Аноним 29/01/16 Птн 14:28:10 #364 №637616 
>>637605
Думай о резолве как об успешном адресате параметра (это может быть как промис, так и любое произвольное значение) в следующую (thennable) функцию:
.then(
// Промис передал нам значение
function(val) {
console.log('Значение знаешь? ' + val);
})
Еще раз посмотри пример выше на жсбин, он довольно нагляден для понимания промисов.
Аноним 29/01/16 Птн 14:55:32 #365 №637635 
>>637616
Не, я вот что имею ввиду:
https://jsbin.com/gosivohepe/1/edit?js,console
Аноним 29/01/16 Птн 15:05:48 #366 №637639 
>>637635
Все правильно работает.
У тебя вызов console.log(kok) происходит ДО того, как значение переменной kok будет перезаписано (в промисе для примера используется таймаут), посему результат не такой, как ты ожидал.
Вот демонстрация твоего примера с верной последовательностью вызова функций (переменная kok принимает значение, переданное резолвом).
https://jsbin.com/raworav/2/edit?js,console
Аноним 29/01/16 Птн 15:07:41 #367 №637643 
>>637639
А как тогда синхронно получить значения из нескольких промисов?
Аноним 29/01/16 Птн 15:17:05 #368 №637655 
>>637643
Очевидно зачейнить очередь из промисов, где последнее звено будет функцией с обработкой ВСЕХ полученных в предыдущих шагах значений. Then гарантирует, что промис выполнился.
Аноним 29/01/16 Птн 16:08:31 #369 №637690 
>>637655
Всё, разобрался. Спасибо
Заебок, теперь на жс писать одно удовольствие
Аноним 29/01/16 Птн 16:12:06 #370 №637691 
>>637690
Попробуй теперь Бабель с async/await, вообщи кайфуищь
Аноним 29/01/16 Птн 18:33:09 #371 №637814 
14540815892440.png
14540815892451.png
В чем может быть проблема? Модуль toaster подключен
Аноним 29/01/16 Птн 18:38:25 #372 №637823 
>>637814
Зачем sails в ангуляре подключаются? Рендеринг на серверной стороне?
Аноним 29/01/16 Птн 18:39:27 #373 №637826 
>>637823
> Зачем sails в ангуляре подключаются?
Для работы с сокетами.

> Рендеринг на серверной стороне?
Полностью на клиенте, на сервере только данные
Аноним 29/01/16 Птн 18:41:41 #374 №637832 
>>637643
Promise.all([promise1, promise2, ... ]).then(results =>....)
(если я правильно тебя понимаю)
Аноним 29/01/16 Птн 18:53:43 #375 №637850 
>>637690
> Заебок, теперь на жс писать одно удовольствие
Не траль так сильно
Аноним 29/01/16 Птн 19:10:05 #376 №637868 
>>637850
Может скажешь что охуеннее?
Аноним 29/01/16 Птн 19:19:48 #377 №637880 
>>637868
Если тебе дали удобную ложку, это не означает что гавно стало вкуснее.
Поработай подольше с базой данных через промисы, потом подумай, а зачем ты это делаешь? А делаешь ты это только потому, что в ноде всего один поток.
Аноним 29/01/16 Птн 19:32:23 #378 №637894 
>>637880
> а зачем ты это делаешь?
Что делаю? Через промисы работаю?

> А делаешь ты это только потому, что в ноде всего один поток
Какое ещё поток? Event-loop?
Есть event-loop, из-за которого нода такая охуенно быстрая. На этом же event-loop'e основан nginx, например, который тоже пиздец быстрый.
И чем тебе event-loop не нравится? Тем, что нужно писать ассинхронно? Так никто не заставляет, можешь синхронно писать, жертвую скоростью работы приложения
Аноним 29/01/16 Птн 19:33:35 #379 №637896 
>>637894
Бля, куча опечаток, ебаное яблоко не может в окончания
Аноним 29/01/16 Птн 20:25:52 #380 №637945 
>>637880
>Поработай подольше с базой данных через промисы, потом подумай, а зачем ты это делаешь? А делаешь ты это только потому, что в ноде всего один поток.
Где связь?
Аноним 29/01/16 Птн 20:39:35 #381 №637957 
Как передать произвольное количество переданных аргументов в функцию в другую функцию?
Аноним 29/01/16 Птн 20:40:18 #382 №637959 
>>637957
Объектом или (предпочтительнее) массивом.
Аноним 29/01/16 Птн 20:41:52 #383 №637960 
14540893127990.png
>>637959
Ну и как это сделать?
Аноним 29/01/16 Птн 20:57:50 #384 №637975 
>>637960
>>637957
>произвольное количество переданных аргументов в функцию
Есть built-in массив доступный внутри функций - "arguments":
function test() {
console.log(arguments);
}
test(1, 2, 3)
--> [1, 2, 3]

Как передать ... в функцию в другую функцию?
На этот вопрос я уже ответил ранее.
Аноним 29/01/16 Птн 21:02:59 #385 №637979 
14540905796480.png
>>637975
Аноним 29/01/16 Птн 21:10:26 #386 №637987 
>>637957
через функцию .apply
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
Аноним 29/01/16 Птн 21:11:41 #387 №637988 
>>637987
двачую var arrArgs = [].slice.call(arguments);
Аноним 29/01/16 Птн 21:43:38 #388 №638016 
>>637945
Если бы в ноде можно было бы запускать потоки, то все бы использовали синхронный АПИ работы с базой.
https://www.youtube.com/watch?v=bzkRVzciAZg
Аноним 29/01/16 Птн 21:47:17 #389 №638022 
>>637988
>>637987
Как это передать в функцию? >>637979
Нипанимат
Аноним 29/01/16 Птн 21:49:25 #390 №638024 
>>638016
Ну так это же плохо
Аноним 29/01/16 Птн 21:53:27 #391 №638027 
>>637894
Event-loop это хорошо, когда ты можешь передавать тяжёлые задачи в другие потоки. Например, так работают все нативные GUI-тулкиты: event-loop в основном потоке для быстрых ответов, а рассчёт и рисование UI в отдельных потоках. В отдельных потоках можно писать синхронный код, а потом результат возвращать в основной поток через event. Latency при этом не страдает, т.к. основной поток занят только обработкой ивентов и ничем больше, throughput тоже выше, т.к. используется больше ядер процессора.

А в ноде, из-за того что есть только один поток, даже цепочки операций с базой данных приходится делать асинхронно. С промисами, конечно, немного проще чем с коллбеками, но гораздо сложнее чем синхронно.
Аноним 29/01/16 Птн 21:58:08 #392 №638033 
>>638027
> В отдельных потоках можно писать синхронный код, а потом результат возвращать в основной поток через event.
Нахуя? Это, по сути, такой же промис, только через анус
Аноним 29/01/16 Птн 22:32:55 #393 №638066 
>>638027
Я тут раскрою маленьких секрет, но async/await решает проблему с асинхронным кодом от слова полностью. У обезьянки остается только одна задача - не блокировать надолго event-loop внутри своего кода.
Аноним 29/01/16 Птн 22:36:29 #394 №638070 
>>638033
Синхронный код короче, быстрее пишется и гораздо легче читается.
Вот адаптированный пример из кода текущего проекта. Считай что Group и Item это условные Sails модели, а Service - это условный сервис.
https://codetidy.com/7828
Аноним 29/01/16 Птн 22:38:33 #395 №638071 
>>638066
Как тебе поможет async/await в ситуации, когда ты работаешь с API на промисах?
И да, ты думал о том, что в жизни бывают вычислительно интенсивные задачи?
Аноним 29/01/16 Птн 22:47:45 #396 №638081 
>>638071
>API на промисах
Из промиса ES6 можно делать await, собственно, async - такой сахар над промисами. Хреново, если либа городит свои костыли, но их постепенно переписывают.
>вычислительно интенсивные задачи
Пул тредов-воркеров, и координация через асинхронный API, иначе никак. Это нормально.
Аноним 29/01/16 Птн 22:51:56 #397 №638085 
>>638070
Однохуйственно. Если так хочется, чтобы было как на нижнем примере можно наплодить куча мельких функций на каждый then промиса и отличаются два примера будут только наличием then-aми. Собственно для этого и есть промисы.
Аноним 29/01/16 Птн 22:52:21 #398 №638087 
>>638085
then-ов*
Аноним 29/01/16 Птн 23:03:29 #399 №638099 
>>638085
Дело не только в then-ах, обрати внимание, какой там выкрутас делается чтобы собрать вместе результаты от нескольких асинхронных запросов Service.getItems.
Аноним 29/01/16 Птн 23:11:02 #400 №638104 
>>638099
Для этого, кстати планируется такая штука:
var vals = await* [promiseObject1, promiseObject2, ..];
Аноним 29/01/16 Птн 23:25:42 #401 №638116 
>>638070
> Синхронный код короче, быстрее пишется и гораздо легче читается.
Но в несколько раз медленнее работает
Аноним 29/01/16 Птн 23:59:34 #402 №638138 
>>638104
А как с обработкой ошибок в этом выражении будет?
Promise.all падает когда хотя-бы один промис внутри падает. Поэтому в примере по ссылке делается .then(res=>res, err=>[]), чтобы в случае ошибки успшеные результаты обработались.
Аноним 30/01/16 Суб 00:01:50 #403 №638140 
>>638116
Он не медленнее работает, он просто заставляет поток простаивать некоторое время. Но операционная система для того и существует, чтобы отдать на это время процессор другому потоку. Обычно в многопоточных приложениях потоков больше чем ядер чтобы процессор не простаивал.
Аноним 30/01/16 Суб 00:15:49 #404 №638149 
>>638138
Из reject промиса ошибка вылетает вверх по стеку, прям как в синхронном коде. Никаких коллбеков, классические try - catch
Аноним 30/01/16 Суб 00:19:29 #405 №638151 
>>638138
В твоем случае, делается map async function , и await по каждому промису, обернутый в try - catch, где catch возвращает нужный тебе пустой результат.
Аноним 30/01/16 Суб 03:16:03 #406 №638211 
>>638024
да вообще пиздец
Аноним 30/01/16 Суб 04:36:02 #407 №638221 
>>638140
Ты, кажется, не понимаешь разницы между ассинхронностью и синхронностью
Аноним 30/01/16 Суб 04:50:12 #408 №638227 
Аноны каким редактором посоветуете пользоваться во время обучения JS? Атом норм?
Аноним 30/01/16 Суб 04:53:56 #409 №638229 
>>638227
да норм норм, какая разница то ? JS бля учи, редактор он выбирает, обсос
Аноним 30/01/16 Суб 04:57:58 #410 №638230 
>>638229
Ну так если я выберу хуевый редактор и там не будет удобных штук типа автодополнения и скрытия блоков кода то я сосну ж.
У меня раньше был ноутпад++, но я решил перейти на юбунту и тут он не идет, приходится вот искать новый.
Аноним 30/01/16 Суб 04:58:07 #411 №638231 
>>638227
тут так просто не скажешь, погугли учебники по редакторам, benchmarkи там всякие, может стоит курс по webstorm прослушать, тогда только за кодинг садись...
Аноним 30/01/16 Суб 05:00:42 #412 №638232 
>>638230
да бля любой известный имеет все что нужно, все что не нужно доустанавливается, sublime-text смотри, условно бесплатный, будет иногда заебывать с просьбой купить его ( в большинстве своем все юзают его ) думаю никто его ни разу не купил, я на webstorm сижу со времен pycharm атом тоже, короче похуй любой популярный бери и все
Аноним 30/01/16 Суб 05:01:02 #413 №638233 
>>638231
А емакс выучить не надо перед тем как хеллоуворлд садиться писать?
Аноним 30/01/16 Суб 05:01:38 #414 №638235 
>>638232
Ясно, спасибо, уже компилирую атом.
Аноним 30/01/16 Суб 05:24:51 #415 №638241 
>>638235
Бог тебе дал пакеты, а ты компилируешь
Аноним 30/01/16 Суб 11:22:24 #416 №638300 
>>638066
На самом деле нода не лишена некоторых детских болезней, которые скорее являются проблемами V8, нежели модели event-loop в целом.
Взять тот же JSON, речь о работе с которым велась выше. Если JSON достаточно громоздок по объему, то сериализация данных может занять значительное время. Все это, конечно, относительно, но тем не менее, произойдет блокирование единственного потока.
С другой стороны, есть замечательная возможность запускать несколько костылей инстансов самой ноды:
https://nodejs.org/docs/latest/api/cluster.html
по сути, делегируя выполнения задач на несколько потоков.
Это становится охуенной киллер-фичей, если мыслить в контексте гибридных задач, где требуется совместить плюсы а- и синхронного подхода. Например, скада.
Обработку сигналов с оборудования реализовываем строго синхронно и в отдельном инстансе, UI и взаимодействие с пользователем - в асинхронном. Что скажете, джейсоны?
Аноним 30/01/16 Суб 11:35:42 #417 №638306 
>>638300
Другого решения и нет, анон, если мы делаем что-то отличное от модели cgi. Как делать риалтайм без event-loop модели? Да никак, наверняка в твоей скаде гуи обновляется через вебсокет. Проблемы c JSON решаемы написанием асинхронного драйвера, как с БД. Форкаемся, выполняем работу, шлем ивент с результатом, завершаемся.
Аноним 30/01/16 Суб 13:19:06 #418 №638366 
Ребята, есть один GreasyMonkey скрипт, использующий css-стили вот так: http://greasemonkey.win-start.de/patterns/add-css.html
Что делать, если я хочу иметь возможность переключаться между стилями? Можно понасоздавать stylish скриптов, между ними переключаться. А можно как-то выпадающий список организовать, чтобы один раз нажал и всё заработало?
Аноним 30/01/16 Суб 13:22:24 #419 №638369 
>>638366
Интересует вопрос изменения стилей на лету средствами именно GreasyMonkey.
Аноним 30/01/16 Суб 13:42:12 #420 №638382 
>>638221
Ну давай, расскажи мне про разницу.
Аноним 30/01/16 Суб 13:46:26 #421 №638385 
>>638300
Лучше подождем, когда в ноду завезут АПИ вебворкеров, и библиотеки начнут им пользоваться. В вебворкерах и тредпулы есть, все как у белых людей.
Аноним 30/01/16 Суб 13:54:12 #422 №638390 
>>638306
Есть большая разница между вычислительными задачами (сериализация/десериализация) и I/O задачами типа общения с базой, где нужно просто дождаться ответа.
Аноним 30/01/16 Суб 15:01:27 #423 №638425 
>>638390
Ну делай сериализацию/десериализацию в отдельном треде/процессе и жди ответа, я ж написал.
Аноним 31/01/16 Вск 03:57:56 #424 №639101 
>>631129 (OP)
шалом неверстальщикиафронтендеры, появилась затея замутить что то типа search any where, ставишь плагин, захлдишь в вк пишешь имя фамилию человека, в результатах получаешь так же ссылки на найденных в ok.ru facebook и еще каких нить социалочек, как думаешь взлетит ?
Аноним 31/01/16 Вск 06:13:30 #425 №639110 
>>639101
Да
Аноним 31/01/16 Вск 07:28:13 #426 №639115 
Суп! Решил я начать кодить на Java. Из опята программирования лишь то, что я во время школьных лет рисовал в Паскале из фигур что-то типа замка. Курсы проводит 1С-контора (которая club.1c.ru) у меня в мухосранске. Они дают сертификат, все дела. За 4 месяца можно пройти их весь курс. На сайте есть описание занятий по каждому модулю. Всего их 4. Дайте свои отзывы о них, если есть, есть ли какая-то альтернатива лучше, если не ВУЗ?
Аноним 31/01/16 Вск 09:24:17 #427 №639130 
>>638366
Присваиваешь созданному ноду какой-нибудь идентификатор, потом по ниму в нужный момент node.disabled=true|false.
Аноним 31/01/16 Вск 09:48:15 #428 №639141 
>>639101
Клон Яндекс.Пипл или что-то особенное?
Аноним 31/01/16 Вск 12:48:22 #429 №639199 
Есть аноны с опытом работы с D3.js? Подскажите, есть ли какое нибудь место - агрегатор плагинов для решения конкретной задачи? Нашел только это - https://github.com/mbostock/d3/wiki/Plugins но там не богатый выбор, и в 95% случаев плагин реализует какую то неведомую ебаную хуйню. На оффсайте Hightcharts, например, в разделе "демо", есть примеры реализации практически любой из типичных задач визуализации данных, а на сайте d3 нихрена такого нет.
Аноним 31/01/16 Вск 14:50:46 #430 №639273 
14542410465700.png
Ананасы, помогите с IndexedDB, что на пике не так? Почему выкидывает при вызове objectStore.get() ошибку - AbortError? В БД точно данные есть, курсором читается. Два дня в вашем жабоскрипте, можете обоссать, но намекните куда копать.
Аноним 31/01/16 Вск 15:35:30 #431 №639308 
>>639199
Дело в том, что d3 это низкоуровневый инструмент для создания не типичных вещей. Если тебе нужно что-то стандартное, то лучше брать либу с готовыми графиками. Ебаться с d3 - та ещё радость, у них там свой датабайндинг ( этакий недореакт), своя либа для анимации. Scails и layouts там действительно полезные, но они заточены именно на использование в их поехавшем "fluent" интерфейсе.
Аноним 31/01/16 Вск 15:53:19 #432 №639322 
>>639115
>javascript thread
>кодить на Java
А я еще постоянно разражаюсь когда в каждой новой книге по джс рассказывают, что это не джава, а названия похожи, потому что маркетологи долбоебы. ЛОЛ
Аноним 31/01/16 Вск 15:53:53 #433 №639323 
14542448332470.jpg
>>639308
> fluent интерфейсе
Шарпоняша не палится, обычная яваскриптовая недомонадка.
> Scails
scales же
>>639199
Посмотри производные графические либы на d3 - dc.js, c3.js, nvd3.js reactd3 и т.п. Тот Шарпоняш все верно сказал, сама d3 для элитки вроде data-artist'ов, обыкновенным людям напрямую ее использовать незачем.
Аноним 31/01/16 Вск 16:26:07 #434 №639358 
Ребят, не могу нагуглить. Помню, что в JS есть возможность вызывать метод определённого объекта, не записывая каждый раз сам объект (в определённой области видимости). То есть вместо obj.foo() писать .foo(), предварительно указав, какой объект используется для последующих вызовов. Как эта штука называется?
Аноним 31/01/16 Вск 16:55:47 #435 №639390 
>>639358
foo = obj.foo
foo()
?
Аноним 31/01/16 Вск 16:56:33 #436 №639391 
>>639308
>>639323
Спасибо.
Аноним 31/01/16 Вск 17:01:29 #437 №639400 
>>639390
Не то, плохо объяснил.
Допустим, есть код:
obj.foo();
obj.bar();

Из него можно сделать вот так:
.foo();
.bar();
Где-то вверху указываем, что эти методы вызываются у obj.
Суть сводиться к тому, что в определённой области видимости все методы, вызванные без объекта (с точкой в начале) будут вызываться у определённого объекта, имя которого пишем только один раз.
Аноним 31/01/16 Вск 17:03:50 #438 №639405 
>>639400
ты уверен что в жс такое есть ?
Аноним 31/01/16 Вск 17:05:56 #439 №639409 
>>639405
Да. Но уверенность теряется понемногу, так как гуглю уже очень долго.
Аноним 31/01/16 Вск 17:07:51 #440 №639415 
>>639409
>>639400
Это называется with и это просто супермегагипер плохая практика. Никто это не юзает вообще тупо никогда.
Аноним 31/01/16 Вск 17:11:07 #441 №639428 
>>639415
Спасибо, оно. Я совсем чуть-чуть, очень читабельность повысит. Хотя и дело не в читабельности, судя по статье: https://habrahabr.ru/post/120364/
Аноним 31/01/16 Вск 17:18:55 #442 №639442 
>>639428
Читабельность повышает, когда у тебя объект спроектирован так, чтобы можно было

obj
.yoba()
.boba()
.allou()
.pshpshshsh()

С with же добра не жди.
Аноним 31/01/16 Вск 19:07:41 #443 №639550 
>>639273
Ну бля, ананасы, помогайте. Добавляю строки в БД (только ключ) и потом пытаюсь их достать (по тому же ключу, он в БД точно есть), но какое-то ебучее AbortError появляется. Что ему надо? 10 раз уже каждую строчку передрочил, всего-то и надо проверить есть в БД такая запись или нет.
Аноним 31/01/16 Вск 19:30:54 #444 №639572 
>>639141
>>639141
ну отличается лишь тем что не надо в яндекс пипл заходить, чисто как обычно людей ищешь вк, но на выхлопе получаешь отовсюду, хз ток как их ранжировать
Аноним 31/01/16 Вск 19:36:43 #445 №639580 
>>639323
> Шарпоняша не палится
Но я же джаваиндус
Аноним 31/01/16 Вск 20:16:04 #446 №639620 
>>639580
Ну не знаю, у меня на "флюент интерфейсы" детектор сработал.
Аноним 01/02/16 Пнд 00:46:52 #447 №639876 
>>637137
>Как вообще мысль может прийти о сортировке данных на клиенте
А если нужна сортировка по клику на название столбца таблицы? :)
Аноним 01/02/16 Пнд 00:47:29 #448 №639877 
>>637166
modulus.io
Аноним 01/02/16 Пнд 01:02:06 #449 №639890 
14542777269530.jpg
>>637987
>>638022
>>637988
>>637987
Благодаря этим анонам.
Аноним 01/02/16 Пнд 01:04:57 #450 №639895 
>>639572
Расширение, которое обращается к яндекс.пипл?
Аноним 01/02/16 Пнд 01:11:43 #451 №639901 
>>639890
Я нихуя не понимаю зачем ты это делаешь. Твой код так и просится на что-нибудь из поста >>639168
Аноним 01/02/16 Пнд 01:17:43 #452 №639909 
>>639901
>зачем
>передать произвольное количество переданных аргументов в функцию в другую функцию
Аноним 01/02/16 Пнд 01:22:55 #453 №639914 
>>639909
Кун-задавший-этот-вопрос-в-треде
Мне .apply помог, только у меня сложность была в том, что я передавал не в обычную функцию, а в метод класса, и там контекст надо было не this передавать, а сам этот класс
loh.ban.apply(loh, arguments)
Аноним 01/02/16 Пнд 01:37:34 #454 №639922 
14542798544180.jpg
14542798544201.jpg
14542798544222.jpg
>>631266
По хорошему еще надо сделать дженерализацию функции calculate и отдавать туда название параметра.
Главное, что тебе стоит вынести из этого кода - обращение к свойству объекта это O(1), т.е. очень быстрый алгоритм. Это одно из главных преимуществ объектов перед массивами, их не обязательно итерировать.
Аноним 01/02/16 Пнд 01:42:01 #455 №639925 
>>631291
Мне вот больше интересно, когда можно будет делать screen share через webRTC средствами chrome.
Аноним 01/02/16 Пнд 01:44:35 #456 №639926 
>>632991
Потому что мало задач.
Аноним 01/02/16 Пнд 01:44:51 #457 №639927 
>>631533
Мат. формулы сложнее работы с webGL.
Аноним 01/02/16 Пнд 01:46:32 #458 №639928 
>>631994
>поднять nginx
Я так и делаю для ноды.
Аноним 01/02/16 Пнд 01:48:22 #459 №639929 
>>632002
draw.io
Аноним 01/02/16 Пнд 01:53:01 #460 №639932 
>>632624
_.clone()
Аноним 01/02/16 Пнд 01:59:14 #461 №639934 
>>633501
Для большей дженерализации, не знаю, зачем еще.
Аноним 01/02/16 Пнд 02:02:50 #462 №639936 
>>633745
Потому что тогда браузер берет на себя заботу о потоках.
Аноним 01/02/16 Пнд 02:12:07 #463 №639941 
>>634868
Вариант split(",") вполне корректный, проверяешь потом отдельно каждое значение функцией, выясняешь, ошибка это, диапазон вниз, диапазон вверх, диапазон от и до или число. В чем загвоздка-то?
Аноним 01/02/16 Пнд 02:13:20 #464 №639942 
>>635021
django
Аноним 01/02/16 Пнд 02:19:40 #465 №639947 
>>637119
>поиск тоже асинхронно делать?
Поиск делай в объекте в памяти, лол.
Аноним 01/02/16 Пнд 05:12:34 #466 №639974 
>>639928
Но это вовсе не обязательно
Аноним 01/02/16 Пнд 05:14:45 #467 №639975 
>>639929
Спасибо, охуеено
Аноним 01/02/16 Пнд 05:16:53 #468 №639976 
>>639876
Такую сортировку на бэкенде делают
Аноним 01/02/16 Пнд 08:25:26 #469 №639992 
Можно имея ссылку на файл как-то получить его данные?
Аноним 01/02/16 Пнд 08:32:33 #470 №639993 
>>639992
https://api.jquery.com/load/
Но только в соответствии с CORS.
Аноним 01/02/16 Пнд 09:24:52 #471 №640006 
>>639993
Nyet. Вот нашел рабочее решение
http://www.html5rocks.com/en/tutorials/file/xhr2/
Аноним 01/02/16 Пнд 11:07:49 #472 №640038 
>>639974
Фаерволл не пропускает ничего, кроме nginx.
Аноним 01/02/16 Пнд 11:08:52 #473 №640040 
>>639976
А если пользователь решает, как ему сортировать? Каждый раз перегружать страницу и гонять те же самые данные? Теперь понимаешь смысл front-end приложения?
Аноним 01/02/16 Пнд 11:34:45 #474 №640055 
>>640040
> А если пользователь решает, как ему сортировать?
Пользователь отправляет ажаксом поле сортировки и направление, сервер берет данные из базы, сортирует данные по полю и делает аск/деск по направлению пользователя, отправляет. В чем проблема?

> Каждый раз перегружать страницу и гонять те же самые данные?
Ты всю базу клиенту выгружать собрался, сумасшедший?

> Теперь понимаешь смысл front-end приложения?
Я понимаю, а ты нет
Аноним 01/02/16 Пнд 12:11:18 #475 №640072 
>>640055
>сервер ... сортирует данные по полю и делает аск/деск по направлению пользователя
Джейчую. Тем более, когда, как анон говорит, у него данных на сотни тысяч позиций. Это ж пиздец.
Аноним 01/02/16 Пнд 13:20:41 #476 №640130 
>>640072
>>640055
СМудари, предоставьте-ка пример UI, в котором отображаются на одной странице (без пагинации) сотни тысяч позиций, это первое.
>В чем проблема?
В том, что это избыточный запрос, лишний траффик, лишнее время ожидания, данные уже есть на клиенте, все, что нужно, это отсортировать и перерисовать DOM.
>Я понимаю, а ты нет
Видимо, понимание через жопу это твой путь.
Аноним 01/02/16 Пнд 14:02:36 #477 №640193 
>>640130
> СМудари, предоставьте-ка пример UI, в котором отображаются на одной странице (без пагинации) сотни тысяч позиций, это первое.
Так никто не делает, поехавший блять. Ну, кроме таких как ты.
Аноним 01/02/16 Пнд 14:14:09 #478 №640208 
>>640193
Если так никто не делает, то с чего это ты вдруг это упомянул-то, а?
Аноним 01/02/16 Пнд 14:17:27 #479 №640214 
>>640208
Где упомянул?
Аноним 01/02/16 Пнд 14:25:22 #480 №640222 
>>640214
Действительно, не упоминал.
Еще раз - пагинацию делают на сервере. Внутреннюю сортировку делают на клиенте.
Последовательность такая:
1. Первый заход на страницу - получение отрендеренного html в нужном порядке, затем сразу загрузка данных в виде json.
2. При клике на название столбца сортировка идет на клиенте.
3. При дальнейших переходах по страницам тоже грузятся только данные.

Суммарный проигрыш по траффику только при первом запросе, что окупается уже через один-два перехода.

В случае последовательности:
1. Загрузил отрендеренный html.
2. Клик на название столбца - ajax-запрос, получение отсортированного json (ты ведь не html предлагал получать?), рендер.
3. То же, что и в первом варианте.

Проигрыш наступает, если клик по названию столбца больше, чем 1 раз.

Итог: сортировать данные в формате json лучше на клиенте.
Аноним 01/02/16 Пнд 14:40:05 #481 №640234 
>>640222
Ты понимаешь, что чтоб сортировать на клиенте тебе нужно выгрузить ему всю базу? На каждого клиента. Всю базу.
А если база изменится, снова выгрузить.
Мало того, что это небезопасно, клиенту базу отдавать, так это ещё и десятки мегабайт трафика, если не сотни и тысячи на каждого клиента, в зависимости от размера базы.
Аноним 01/02/16 Пнд 14:42:52 #482 №640236 
>>640234
>чтоб сортировать на клиенте тебе нужно выгрузить ему всю базу?
Зачем это? Клиент получает только то, что необходимо.
Для перехода по страницам надо делать запрос.
Для сортировки по значению столбца не надо.
Для поиска по значению - надо.
Аноним 01/02/16 Пнд 14:45:44 #483 №640240 
>>640236
> Зачем это? Клиент получает только то, что необходимо.
Ты говоришь про сортировку 20 элементов, которые получил клиент, а я про сортировку по всей базе.
Вот, например, у тебя в таблице 100 учеников из 1000. Если ты будешь сортировать по какому-то полю только на клиенте, у тебя сортировка будет только среди этих 100 учеников, остальные 900 в сортировку не попадут. В этом случае правильнее сортировать в базе, а не выгружать 1000 учеников на клиент.
Аноним 01/02/16 Пнд 14:48:11 #484 №640244 
>>640240
>Ты говоришь про сортировку 20 элементов, которые получил клиент, а я про сортировку по всей базе.
В этом и был мисандерстендинг.
Аноним 01/02/16 Пнд 14:50:12 #485 №640248 
>>640244
Всё началось с сортировки 100к элементов на клиенте - >>636843
Аноним 01/02/16 Пнд 14:51:02 #486 №640250 
>>640248
А не, не с сортировки даже, просто с вывода
Аноним 01/02/16 Пнд 15:24:51 #487 №640276 
>>640222
Идиотина, блеать, ну какая сортировка на клиенте, если у тебя ПАГИНАЦИЯ? Ну отсортируешь ты текущую страницу, и дальше что? Когда пользователь жмакает на сортировку, он желает увидеть первой строкой минимум/максимум среди всех данных, сортировка только среди пагинированного набора записей нахуй не упала.
Аноним 01/02/16 Пнд 15:26:25 #488 №640279 
>>640222
И вообще ваша пагинация говно, давно изобрели инфинит скролл.
Аноним 01/02/16 Пнд 15:36:54 #489 №640289 
>>640279
Инфинити скролл для табличных данных?
sageАноним 01/02/16 Пнд 15:40:11 #490 №640292 
>>640289
Yeap. Удивлен?
Аноним 01/02/16 Пнд 15:42:11 #491 №640295 
>>640292
Мне кажется так только пидоры делают
Аноним 01/02/16 Пнд 15:43:10 #492 №640296 
>>640295
Тебе кажется
Аноним 01/02/16 Пнд 15:45:17 #493 №640299 
>>640296
Мне кажется, что не кажется.
Нельзя делать инфинити скролл там, где важен порядок элементов, и нужна удобная навигация
Это как не нумеровать страницы документации, например.
Аноним 01/02/16 Пнд 15:46:57 #494 №640301 
>>640299
>Нельзя делать инфинити скролл там, где важен порядок элементов
Можно (ре)рендерить таблицу с данными после подгрузки элементов.
Ничего криминального в этом нет.
Аноним 01/02/16 Пнд 15:49:01 #495 №640305 
>>640299
Инфинит скролл порядок сохраняет, в произвольное место можно спозициорироваться скролбаром, но это нахуй не надо, т.к. обычно есть быстрый поиск вводом с клавиатуры. Что тебе еще нужно, болезный?
Аноним 01/02/16 Пнд 15:55:54 #496 №640309 
Вопрос по ноде с монгой.
Не могу понять как добавлять в коллекцию данные, которые определены в модели на более глубоком уровне.

https://jsfiddle.net/L4w7udw7/
Аноним 01/02/16 Пнд 17:50:37 #497 №640410 
>>640309
Апдейт с рабочим вариантом, но который лучше не делать
Аноним 01/02/16 Пнд 17:52:22 #498 №640411 
>>640410
Забыл https://jsfiddle.net/L4w7udw7/1/
Аноним 01/02/16 Пнд 18:30:50 #499 №640434 
>>640309
Так нельзя делать, епта. У тебя для этого поля должна быть отдельная коллекция, вложенных данных быть не должно. Уровень вложенности = коллекция.
Аноним 01/02/16 Пнд 18:34:54 #500 №640435 
>>640434
А почему этот СИНЬОР так делает?

https://github.com/sahat/hackathon-starter/blob/master/models/User.js
Аноним 01/02/16 Пнд 18:38:30 #501 №640440 
>>640435
Потому что пришел в монгу с реляционных баз данных
Аноним 01/02/16 Пнд 18:48:34 #502 №640449 
>>640440
То есть нужно делать не так
loh: {
daun: {
debil1: { type: String, default: 'net'},
debil2: { type: String, default: 'net'},
debil3: { type: String, default: 'net'},
debil4: { type: String, default: 'net'},
debil5: { type: String, default: 'net'}
}
}

а так?

lohdaundebil1: { type: String, default: 'net'},
lohdaundebil2: { type: String, default: 'net'},
lohdaundebil3: { type: String, default: 'net'},
lohdaundebil4: { type: String, default: 'net'},
lohdaundebil5: { type: String, default: 'net'}

Чет совсем фуфлыжно выглядит
Аноним 01/02/16 Пнд 18:54:16 #503 №640450 
>>640449
Не, так:
loh: {type: Mongoose.Schema.Types.ObjectId, ref: 'Loh'}

И под поле loh у тебя отдельная коллекция, в которой будут храниться нужные данные. То есть тебе нужно описать модель для коллекции Loh, модель User может ничего о ней не знать, у неё просто ссылка на другую коллекцию.
Аноним 01/02/16 Пнд 18:54:56 #504 №640451 
здраститя
есть массив с ссылками на картинки
нужно сделать так, чтобы каждая ссылка была завернута в <img src=""/> (которые в свою очередь находятся в каком-то контейнере, разумеется)

делаю так

var container = $('#container')

arr.forEach( function(element, index) {
_container.innerHtml += '<img id="'+index+'"/>;

_var target= $('#'+index);
_target.attr('src','element); // да, я еблан, можно сразу в src засунуть, но в этой строке функция из одной либы нет не jquery , типо упростил дохуя
}

проблем в том, что на выходе отображается только последняя картинка (у всех аттрибут src пустой, кроме последнего)

Я подумал, что тип это причуды ебучего html и решил дать время на отрисовку и засунул последнюю строку в setTimeout, но нихуя
help'ируй, анон
Аноним 01/02/16 Пнд 18:56:34 #505 №640453 
>>640451
Закинь с входными данными на jsfiddle
Аноним 01/02/16 Пнд 18:56:49 #506 №640454 
>>640450
А если по быдлячьи сделать
Аноним 01/02/16 Пнд 18:57:18 #507 №640457 
>>640454
А если по быдлячьи сделать:

lohdaundebil1: { type: String, default: 'net'},
lohdaundebil2: { type: String, default: 'net'},
lohdaundebil3: { type: String, default: 'net'},
lohdaundebil4: { type: String, default: 'net'},
lohdaundebil5: { type: String, default: 'net'}

То какие подводные камни будут?
Аноним 01/02/16 Пнд 18:58:21 #508 №640458 
>>640454
Зачем? Это противоречит принципам монги
Можно и весь код, например, в одном файле писать, но зачем?
Аноним 01/02/16 Пнд 19:06:59 #509 №640470 
>>640458
>Зачем?
Чтобы работало же и не пришлось еще день тратить на попытки реализации с помощью ссылок на коллекцию.

Оно ведь таким макаром не намного сильнее будет тормозить, по сравнению с монгофилософским вариантом?
Аноним 01/02/16 Пнд 19:11:57 #510 №640473 
>>640470
> Чтобы работало же и не пришлось еще день тратить на попытки реализации с помощью ссылок на коллекцию.
День?
http://mongoosejs.com/docs/populate.html

> Оно ведь таким макаром не намного сильнее будет тормозить, по сравнению с монгофилософским вариантом?
Так дело в удобстве, а не в скорости
Аноним 01/02/16 Пнд 19:17:33 #511 №640480 
>>640453
сук, на jsfiddle работает, кажется, проблема не в нем
rage
Аноним 01/02/16 Пнд 19:23:02 #512 №640483 
https://jsfiddle.net/1snmv57f/
в общем, в этом коде перед вставкой ссылки картинка кэшируется и тут же вставляется ссылка на локальную копию
в чем может быть проблема?
Аноним 01/02/16 Пнд 19:24:06 #513 №640484 
>>640473
>День?
С этой логикой все более-менее понятно. Другое дело, что в контроллере есть уже функции, которые работают с базой в нессылочном виде. И их придется модифицировать(а я не знаю как, кек), если делать все правильно.

Спасибо за ответы.
Аноним 01/02/16 Пнд 19:28:41 #514 №640488 
>>640484
> Другое дело, что в контроллере есть уже функции, которые работают с базой в нессылочном виде
Я с монгусом мало работал, но по-моему там прозрачная линковка.
То есть, нет никакой разницы, работаешь ты напрямую с данными в коллекции, или это ссылка на другую коллекцию - всё работает одинаково, пока в модель не посмотришь - не отличишь
Аноним 01/02/16 Пнд 19:30:51 #515 №640489 
14543442515880.png
>>640483
А что, собственно, не так?
Аноним 01/02/16 Пнд 19:35:09 #516 №640491 
>>640451 ------> >>640489
Аноним 01/02/16 Пнд 19:37:08 #517 №640494 
>>640491
И где src пустой?
Аноним 01/02/16 Пнд 21:24:36 #518 №640569 
П Е Р Е К О Т
Е https://2ch.hk/pr/res/640565.html
Р https://2ch.hk/pr/res/640565.html
Е https://2ch.hk/pr/res/640565.html
К https://2ch.hk/pr/res/640565.html
О https://2ch.hk/pr/res/640565.html
Т https://2ch.hk/pr/res/640565.html
comments powered by Disqus

Отзывы и предложения