Этого треда уже нет.
Это копия, сохраненная 17 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
45 Кб, 500x500
345 Кб, 750x375
12 Кб, 250x367
JavaScript #28 #631129 В конец треда | Веб
Ссылка на прошлый тред: >>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, позволяющие создавать десктопные приложения.
#2 #631130
#3 #631138
JS - язык господ!
прошу помощи #4 #631149
Ковыряюсь с получением списка аудио вконтакте.
Есть вот такая функция:
function createPlay() {
\tvar text = '#EXTM3U';
var durationInSeconds;
\tvar mp3s = document.querySelectorAll('input[value*=".mp3"]');
\tfor (var i = 0; i < mp3s.length; i++) {
\t\tvar mp3 = mp3s;
\t\tvar title = mp3.parentNode.parentNode.getElementsByClassName('title_wrap')[0].textContent;
\t\ttext += '\n' + '#EXTINF:durationInSeconds,' + vkCleanFileName(title) + '\n' + mp3.value;
\t}
\tofferFile('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 значения соответствующего регулярке но без запятой?
#5 #631150
>>631149
Прошу прощения, вот код
http://pastebin.com/PSP0MT5c
#6 #631155
>>631138

>господ


пссс.. ТайпСкрипт или Котлин, чистый js не совсем то.
#7 #631162
>>631150
Попробал переделать, не работает. Тупо печатает текст регулярки.
http://pastebin.com/GyR5j139

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

задача на ООП
13 по счету, про гамбургеры
https://gist.github.com/codedokode/ce30e7a036f18f416ae0
#9 #631267
34 Кб, 308x363
#10 #631291
>>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
Я смотрел его код. Но там все минифицировано и с трудом понятно по ключевым методам что там происходит и как они добились такого результата.
29 Кб, 914x221
#11 #631367
Как у функции объявляется метод? Я ещё могу допустить мысль, что у функции могут быть методы, но как их объявлять?
#12 #631371
>>631367
так же как и у любого объекта. написано же епт
#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();
#14 #631375
>>631372
Вашет у тя конструктор. Методы для функций пишутся в прототим функции.

Function.prototype.getHui = function() {
return 'hui';
}
#15 #631376
>>631367
function f(){}
f.suka = function(){
alert("https://learn.javascript.ru/");
}
#16 #631378
>>631372
Это вообще другое совсем
#17 #631394
>>631376
Омск какой-то. Почему нельзя просто сделать объект в традиционном понимании?
#18 #631401
>>631162
>>631150
Бамп вопроса. Надо просто из mp3.value вида

>https://psv4.vk.me/c611219/u1881108/audios/f1231a12d1.mp3?extra=SOMEHASHHERE132sdfsx,2985 выдрать это 2985 и записать в переменную

#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());
#20 #631484
>>631401
Регулярка есть уже... ,\d{1,4}
Надо только как-то присваивание сделать того, что она находит в mp3.value
#21 #631533
Бля, какой уровень скила нужен, чтоб это хуячить? Нихуя не понимаю, если честно http://codepen.io/at80/pen/tqdmv#0
#22 #631543
>>631533
охуенно
#23 #631549
>>631533
не пойму, че за хуйня
это вебгл шейдеры?
#24 #631671
Ананасы, всегда сидел на бэкэнде, тут приспичило слепить пару юзерскриптов. Нужно хранить порядка 50к хэшей и вести поиск по ним. Что там у вас в JS для этого есть? SQL пердолить? Или обычный массив в памяти пойдёт? Не будет сильно медленно?
#25 #631705
>>631375
Эквивалентно
let motherProto = function() {
this.getHui = function() {
return 'hui';
}
}
#26 #631706
>>631376

>f.suka


Противоречит стрикту.
Так делать нельзя.
#27 #631709
>>631533

>какой уровень скила нужен


Авераж мид.
На ванильке это не писали, инфа соточка.
Это продукт кодогенерации.
#28 #631753
html страница: <div onclick="...>
почему еще используют эту хуиту? так-же труднее читать, нет?
вместо: <div id/class="x"
document.ready(...find element add onclick handler.
#29 #631765
>>631266
бамп
ну же анон
#31 #631783
Ебанутый вопрос, но просто ответьте.
server.listen(3000) - запускает сервер на 'localhost:3000', а как запускать, например, на 'example:3000'?
#32 #631784
>>631783
Фор екзампл:
server.listen(8000,'127.0.0.1',function(){
server.close(function(){
server.listen(8001,'192.168.0.202')
})
})
#33 #631786
>>631783
Ты спеки-то читаешь вообще?
#34 #631790
>>631706
>>631706
почему нет? это же вроде статический метод? https://learn.javascript.ru/static-properties-and-methods#статические-методы
#35 #631799
>>631790
Да, можно.

Блджад, лоханулся.
И strict violation не выкидывает отладчик.
#36 #631810
Сап зк.
Есть комментарии на сайте, требуется с помощью AngularJS выводить часть комментария, а при нажатии на кнопку/ссылку, разворачивать до полного. Написал директиву, сам текст комментария получить могу, но как можно реализовать нажатие?
#37 #631819
>>631810
ng-click?
#38 #631821
>>631819

>ng-click


Думал о нем, только никак не могу понять, где писать обработчик? Мне нужно его написать в том же файле, где я описал директиву.
#39 #631903
>>631671
Локальное хранилище
Но в нём, кажется, какое-то ограничение есть
#40 #631905
>>631753
Быстрее так, не?
#41 #631932
>>631671
IndexedDB
#42 #631953
Я уверен, что вопрос был задан сотни раз, но спрошу еще раз
С чего начать изучение? Если из опыта только паскаль в школе.
Скачал видеоуроки Гавриленко, говорят годно, стоит начинать? Что еще можно прочесть/посмотреть для полного нуба?
#43 #631968
>>631953
Это мое личное мнение, но, если есть представления об ООП, то, как мне кажется, лучше сразу начать с решения проблем (которых предостаточно на CodeWars, например) и попутно пилить что-нибудь более практически ценное для себя (например на знание DOM - тудушку или, как анон-РАБотодатель из прошлого треда, игрульку на канвасе, если больше функциональная часть и бэкенд интересует, то что-нибудь на ноде. Возьми и напиши, к примеру, качалку для SoundCloud).
А читать лучше спеки на Dev Mozilla и драфты ECMA.
DOM хуйня, это осваивается быстро.
Энджой ёр скриптинг.
82 Кб, 540x720
#44 #631983
>>631784
Я нихуя не понимат. Например, я запускаю сервер на ноде и ввожу localhost:port в браузере. Для этого я в написал в servers.js server.listen(port, '127.0.0.1').
Теперь я хочу все тоже самое, но в браузере писать не localhost:port, а 192.168.0.1:port или вообще myawesomesite:port. Такое вообще возможно? Если я хуйню написал, не обсыкайте.
#45 #631993
>>631983
Фронтендопитухи повалили на сервера и соснули. Как это мило.
#46 #631994
>>631983
Нужно или запускать на 80 порту и перенаправлять через host, или поднять nginx
#47 #631996
>>631705
Нихуя не эквивалентво.
#48 #632000
>>631983

>Нихуя не эквивалентво.


Ясен хуй, в первом варианте расширяется Built-in прототип 'Function'.
#49 #632002
Пацаны, где удобно можно накидать архитектуру приложения? Заебался тетради покупать
#50 #632006
>>632002
В голове, например
52 Кб, 704x400
sage #51 #632009
>>632002

>Заебался тетради покупать


Используй карандаш.
#52 #632015
>>632006
40 таблиц и логику? А я обычно несколько приложений одновременно пишу
#53 #632020
>>632015
Ты 1C-мартышка?
#54 #632022
>>632020
Откуда такие выводы? На ноде пишу
#55 #632083

>let someShit => param => kek(param);



зачем питушня так делает? для неанонимных функций, не биндящихся к this? они што, ебанутые?
#56 #632086
>>632022
во 1С франч-конторах обычно МНОГОЗАДАЧНОСТЬ
#57 #632125
>>632083

>писать на жс


>быть не ебанутым

#58 #632132
>>632125

>>писать на жс


>>быть не ебанутым


я же не ебанутый, значит можно
#59 #632217
>>632132

> спрашивает зачем писать меньше


> говорит, что не ебанутый

#60 #632246
Бьюсь об заклад не могу понять зачем нужен return помогите
#61 #632249
>>632246
Как вернуть значение из функции?
#62 #632252
>>632249
я только начал изучать js не понимаю)
sage #63 #632253
>>632217

>ачем писать меньше


странно, что ты на кофе не пишешь, с таким подходом
#64 #632268
Бьюсь об заклад не могу понять зачем нужен return помогите
#65 #632272
#66 #632273
>>632253
Пишу
#67 #632276
>>632268
Он нинужен
#68 #632283
>>632276
обьясни заебал, пиздец
#69 #632286
>>632283
Так выучи функции сначала
#70 #632291
>>632273
но ведь кофе - говно
#71 #632294
>>632291
Как и джяваскрепт
#72 #632296
>>632283
>>632286
я выучил
Аноним #73 #632298
>>632294

>джаваскрипт


живенькое такое говнецо, с почти неограниченной областью применения, развивающееся, и имеющее приятную надстройку в виде тайпскрипта.

>кофе


беспомощное унылое говно без задач. бесполезный высер as is.
#74 #632318
>>632296
Не обманывай.
#75 #632322
>>632318
функции именно
#76 #632323
>>632296
Выучил твоей мамаше в рот
#77 #632333
>>632323
в рот те ссал, пидор
#78 #632346
>>632298

> имеющее приятную надстройку в виде тайпскрипта.


> кофе беспомощное унылое говно без задач. бесполезный высер as is.


Ты вкурсе, что кофе в жс компилируется, дегегерат? Это такая же надстройка
Как же бесят дауны, который хейтят что-то, а сами даже офф сайт этой хуйни не посетили
Аноним #79 #632369
>>632346

>кофе в жс компилируется


а как бы в курсе, даже кой че дорабатывал на этой параше. просто в жс появились классы, декораторы, деструктурирующее присваивание, модули, async/await, и опциональная аннотация типов в виде typescript (который не подменяет собой js), а любители твоего дегенеративного сахарка сосут хуйцы с этими нововведениями.
#80 #632388
>>632369
Разработка кофескрипта прекращена
#81 #632390
>>632322
Ну, тогда продолжай сидеть на дваче. Хули еще делать, если выучил функции именно. Ты не виноват, ты сделал все что мог - функции выучил. Пошло оно все нахуй, это теперь не твои проблемы. Ты не договаривался, что там return будет. Ты свое дело сделал - выучил функции. Теперь либо пусть разжевывают в программаче, либо сосут хуй. Что еще за return, вообще ахуели.
61 Кб, 730x551
#82 #632395
>>632369

>ecmascript 6


>typescript


Соснули у Scala.js
#83 #632404
>>632390
Вот это тебе бомбануло.
мимо
Аноним #84 #632407
>>632395

>Scala.js


Код в студию, может и правда соснули, я хз
20 Кб, 736x736
#85 #632415
#86 #632426
>>632404
Зк всё больше походит на б. Написал больше трех слов, значит бомбануло.
#87 #632448
>>632407
http://scala-lang.org/
http://www.scala-js.org/
https://lihaoyi.github.io/scalatags/
100% строгая статическая типизация + тонна скала-библиотек + скаловская система сборки (sbt) + трейты, макросы, имплициты, паттерн-матчинг и прочие фишки скалы
#88 #632449
>>632448
Говно без задач, ещё и славу петушиную имеет
Аноним #89 #632450
>>632449

>Говно


Not U
#90 #632451
>>632449

>пок кукареку


Лол, эта боль жквери-мартышки.
Аноним #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]

Ебать мой хуй!
#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]

Зачем тебе реакт?
Аноним #94 #632469
>>632466
Прост. Пишу на нем всякое хитрозаверченное, типа редактора диаграмм. react + redux решает. Надо попробовать твою дурь со скалкой. В ней же должны быть (встроенные) иммутабельные мапы, массивы?
#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/
#96 #632481
Как сделать, чтобы Array.prototype.indexOf начинал искать не с начала массива, а с конца?
#97 #632482
>>632481
Все, я понял: Array.prototype.lastIndexOf
32 Кб, 460x460
#98 #632484
>>632475

>https://lihaoyi.github.io/scalatags/ + https://github.com/lihaoyi/scala.rx



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

нашел вот это вот - http://ochrons.github.io/diode/
выглядит оче неплохо для организации хранения стейта приложения
Работа с цветами #99 #632487
Посоветуйте реализацию столкновения элементов по цветам. Можно ли выбрать их диапазон? К примеру: #ffffff - #757575
#100 #632488
>>632484
вот так, анон, js привел меня через react redux es6 typescript от динамического слаботипизированного императивного петушения к божественному функциональному подходу со строгой статической типизацией.
#101 #632496
Ректоопущенцы, расскажите мне про стейт приложения и зачем он вам нужен
#102 #632505
>>632496

>стейт приложения


Тупо состояние. Даннае, и вообще, все то, что определяет, как выглядит UI. На него может воздействовать пользователь (через ввод), backend, если мы подписаны на серверные события, какие-то недетерминированные вещи (таймер с рандомом).

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

Зачем так сложно? Это подход избавляет от необходимости вручную описывать, как привести dom в соответствие с новым состоянием. Один раз написали функцию рендеринга, которая возвращает VirtualDOM всего интерфейса, и все, этого достаточно, дальше магия все делает за нас.
#103 #632509
>>632505

>реакт-жс по из VirtualDOM создает обычный dom


реакт-жс из VirtualDOM создает обычный dom

фикс
#104 #632518
>>632505
То есть это ангуляровский скоуп, только с модным названием?
#105 #632528
>>632518
А ангуляре немного сложнее, там scope это observable, части UI подписаны на изменение его свойств, по этим событиям они и обновляются. Тут - просто объект, например, {name: "Вася"}, dataflow прост как веник. State поменялся (обычно внутри state'а ничего не меняем, а тупо возвращаем новый стейт), отрендерили заново VirtualDOM. Таким образом, действие пользователя - чистая функция: старый state -> новый state. Рендеринг - чистая функция: state -> VirtualDOM.
136 Кб, 759x1024
#106 #632604
По заданию из учебника надо реализовать, чтобы после нажатия на изображение оно менялось на другое, а потом через несколько секунд снова менялось на прежнее. В моем варианте решения почему-то обратно меняется только то изображение на которое я кликнул последним. Я понимаю что дело в глобальной переменной которую делать не стоит, но как можно поступить по другому?
Код http://pastebin.com/EaPkAPS4
#107 #632613
>>632604

>меняется только то изображение на которое я кликнул последним


Что логично, ведь

>дело в глобальной переменной,


которая за время таймаута может быть перезаписана.

Передавай в hideAnswer() в качестве параметра ID элемента, будет все гут.
#108 #632614
>>632613
Вот до меня не доходит как предать, если так делать http://pastebin.com/Skv665sZ то все ломается
Какой правильный синтаксис должен быть?
80 Кб, 611x640
#110 #632619
>>632615
спасибо, ты умница
#111 #632622
>>632615
интересно, а почему он без обертывания в анонимную функцию не передавал параметр
13 Кб, 321x207
#112 #632624
Че за хуйня, епта? Почему я не могу просто склонировать объект в другую переменную? Почему мне дают ебучую ссылку?
#113 #632626
Я полагаю, прежде чем начать изучать язык ( джаваскрипт) мне стоит сначала вспомнить школьную информатику и узнать - выучить html?
#114 #632627
>>632624
Делай рекурсивное копирование а-ля
http://barbitoff.blogspot.ru/2012/01/javascript.html

А так у тебя копируются ссылки, хули ты хочешь то блядь?
#115 #632628
>>632624

>Потому, что азаза


В ES6 метод Object.assign() завезли:
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
#116 #632632
>>632627
Хочу в базу отправлять одно, а в джсон ответе слать другое

>>632628
Спасибо

Но пиздец же, это вообще никак не очевидно. С приведением типов даже не сравнится, там хоть какая-то логика есть
#117 #632634
>>632632

>никак не очевидно


>в языке сразу сказано что объекты - ссылки


Почитай стандарт еще раз. Там прямо об этом и сказано.
101 Кб, 1918x757
#118 #632804
Посоны, поясните, чому jquery не берёт элементы, содержащие текст с пробелом? Нихуя не пойму
118 Кб, 255x288
#119 #632810
>>632615
Оказывается еще можно было так передать аргумент, а в русском справочнике ни слова
setTimeout(reblur, 2000, image);
где image - аргумент
#120 #632852
>>632804
А покажи код.
#121 #632855
>>632852
Я прост тренируюсь с jquery-запросами. Код весь на пикче, в консоли.
#122 #632861
>>632804
На других сайтах кстати, всё работает. Тута какая-то своя версия скрипта что ли?
#123 #632903
>>632861
Скорее всего там не пробел, а что-то похожее.
#124 #632908
>>632903
Даже копировать напрямую из кода страницы. Просто не ищет нихуя
#125 #632947
>>632804
Просто жквери - говно для даунов и сосёт у XPath
#126 #632948
>>632947

> XPath


Значение знаешь?
#127 #632991
>>631709
я вродб евереж мид, гейдев, на пикси социалочки хуярю, но в вебгл дупля не режу
#128 #633051
>>632991

> пикси


пхпикси?
#129 #633061
>>633051
2d рисовалка с блекджеком и шлюхами
http://www.pixijs.com/
#130 #633064
>>633061
Социалку на канвасе? Нахуя? Совсем с ума сошел?
#131 #633065
>>632810
ойбожечки, а bind для кого придумали?
#132 #633079
>>631266
this.size = Hamburger.prototype.designationSize(size);

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

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

остальное писать влом, скажу что неплохо для начала
#133 #633080
>>633064
Сори за слэнг геймдева.
Игори для социальных сетей, фермы там, брильянтики для бабушек и прочья хунта.
857 Кб, 240x228
#134 #633083
>>631266

>На 2016 год писать на ES5, а тем более на ES6 рановато

23 Кб, 435x457
#135 #633107
Сап, экманы. В общем, суть токова - работаю над проектом на ангуляре и мне нужно получить элемент страницы(кнопку) как объект два раза. Но так как во второй раз это происходит по нг-клику,то я без проблем передаю ивент в функцию и через ивент.таргет получаю свою кнопочку как объект(настоящий блять, а не дом-хуету), а теперь вот мне ее нужно получить еще на загрузке страницы, то есть когда страница отрисовывается - решить отрисовать ли эту кнопку на основании даты из апи или нет и я уже битый час не могу нагуглить ответа(ни просто в гуголе, ни в документации ангуляра). В общем, кто шарит, подскажите, пожалуйста.
#136 #633111
>>633107

>получаю свою кнопочку как объект


>настоящий блять, а не дом-хуету


Что ты несёшь твою мать? Давай ты опишешь проблему более детально, окей?
#137 #633113
>>633107

>решить отрисовать ли эту кнопку на основании даты из апи или нет



<div ng-if="yoba.dataIzApi">
// отрисовали кнопку здесь
</div>
494 Кб, 475x547
#138 #633116
>>633113
Блять, о простейшем решении я как-то не подумал. Спасибо.
#139 #633118
>>633107

> решить отрисовать ли эту кнопку на основании даты из апи или нет


ng-show
#140 #633119
>>633111

>Что ты несёшь твою мать?


Ты Объект от хтмл-разметки не отличаешь? Стандартные джсы-хуесы и прочие жиквери возвращают сраную разметку, а жи есть красавчик ангуляр может вернуть ссылку на объект элемента страницы, тчобы ты применил к нему методы всякие разные.
259 Кб, 478x264
#141 #633121
Есть место для ангулярщика на $4 в час. Кто вкатиться хочет - добро пожаловать. p/-shenyl.researchANUSg1L;mailPUNCTUMcj.oom
#142 #633122
>>633119

>Стандартные джсы-хуесы и прочие жиквери возвращают сраную разметку


Джсы-хуесы возвращают HtmlDomElement, jQuery возвращает массив-обёртку над таким же объектом.

>может вернуть ссылку на объект элемента страницы


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

Ты просто открыл мне глаза. Я никогда раньше ничего подобного не слышал. Расскажи подробнее пожалуйста.
#143 #633125
>>633121

>место для ангулярщика


>$4 в час


Охуительный, наверное, проект. Четыре доллара в час-то! Удачи вам, ребята.
#144 #633127
>>633121
У тебя ноль отвалился
#146 #633134
>>633122

>Джсы-хуесы возвращают HtmlDomElement, jQuery возвращает массив-обёртку над таким же объектом.


Ну, теперь ты мне открыл глаза! Не знаю как теперь жить.

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


Я хотел и получил объект страницы на котором происходит ивент, как джс-объект, может не так выразился.
#147 #633139
>>633134

>Я хотел и получил объект страницы на котором происходит ивент


Существует такое понятие как "объект страницы" в джсе?

А хотя:

>объект страницы на котором происходит ивент


>страницы


>на котором


Всё понятно ;D
233 Кб, 1024x923
#148 #633143
>>633139
Все понятно с тобой, еблан.
Ты же кукарекал, что тебе не нравится моя форулировка, я тебе и написал объект страницы(дома блять, быдло ты тупое). Если ты кликаешь на элементе, то событие КЛИК происходит и объектом этого события становится эелемент(прув ми ронг, хуйло), и можно получить ссылку на этот объект. А теперь иди нахуй, агрессивное быдло(не забудь это цитировать в следующем своем посте, чтобы выставить таковым меня, в твоем манямирке, естественно), видно жизнь у тебя хуевая, если ты срешься на ровном месте, вместо конструктивной критики или пояснений.
#149 #633146
>>633143

>объект страницы(дома блять, быдло ты тупое)


Ну вот, написал бы, что имеешь в виду DOM-объект. А то объект страницы какой-то лол.

>событие КЛИК происходит и объектом этого события становится эелемент


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

>видно жизнь у тебя хуевая, если ты срешься на ровном месте, вместо конструктивной критики или пояснений.


Ну, да. Ты прав. Извини. ;(
#150 #633147
>>633121

> $4 в час


В голос
#151 #633148
>>633147
>>633131
>>633127
>>633125
Интересно, тут все миллионы зарабатывают? Я вот вообще в свободное от работы время участвую в проекте за возможную будущую выгоду. А то в соседнем треде рыдают, что не берут никуда, а тут плюются от работы для подскока, так сказать.
#152 #633152
>>633148
Кек. 4 бакса в час это баксов 600-700 в месяц. За такую з/п не каждый джун захочет корячиться.
#153 #633153
>>633148
Лучше работать за бесплатно, но на тем, что тебе интересно, чем за гроши формошлепать
#154 #633154
>>633153

> на тем


над тем
#155 #633155
>>633148

>рыдают, что не берут никуда


>плюются от работы для подскока, так сказать.


А ты думаешь это разные люди?
#156 #633206
>>633155
Нет, я думаю это одни и те же неудачники с завышенным уровнем притязаний - способностей нет, а требования есть, а потом весь мир у них плохой. Обожаю таких петушков, смешные.
>>633152

>баксов 600-700 в месяц. За такую з/п не каждый джун захочет корячиться


Я надеюсь это был просто толстый тролинг.
>>633153
Да, желательно при этом еду и жилье самому оплачивать, а не стрелять деньги у мамки. Иначе потом только на програмаче рыдать в соответствующих тредах, лол.
198 Кб, 850x531
#157 #633312
>>633079
спасибо
298 Кб, 951x634
#158 #633453
Дошел до изучения первоклассных функций, чувствую себя как герой Начала
#159 #633469
>>633453
Тем китайцем штоле, который весь фильм в коме лежал?
#160 #633495
function EventEmitter() {
EventEmitter.init.call(this);
}

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

Для чего так делают? Почему сразу не пишут в EventEmitter, а создают отдельно EventEmitter.init и вызывают внутри EventEmitter?
#161 #633497
Где найти список всех методов ActiveX с описанием ? Гугл не знает.
#162 #633498
>>633495
упоротые. не делай так
#163 #633499
>>633498
Разрабы ноды упоротые? Так не бывает.
#164 #633500
>>633499

>Разрабы ноды


Возможно оно так нужно для реализации наследования, и еще какой фигни. Короче, конвенция такая у них.
#165 #633501
Да там в сорце еще дохуя таких примеров, где можно усомниться в адекватности тех, кто его писал
#166 #633622
Кто-то в прошлом треде спрашивал, чем занимается фронтенд разраб, если в команде есть выделенный верстала, а кто-то (какие-то полные долбоёбы уже) смеялись над тем, что как можно фронту не уметь в верстку.
Вот небольшая выдержка из одного блога, которая описывает проблему, и заодно достаточно точно описывает то, чем я сейчас занимаюсь (15 кодеров и 3 версталы у нас, у всех всегда есть работа, версталам платят как минимум в два раза меньше самого плохооплачиваемого кодера (это к вопросу про окупаемость, естественно выгодней иметь отдельного версталу)

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



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



>Получается, что каждый компонент это не просто поле ввода и ячейка в модели. Его внешний вид определяется предысторией (как, где и сколько в него тыкали) и окружением (как вообще выглядит приложение, какой контекст вокруг)."

#166 #633622
Кто-то в прошлом треде спрашивал, чем занимается фронтенд разраб, если в команде есть выделенный верстала, а кто-то (какие-то полные долбоёбы уже) смеялись над тем, что как можно фронту не уметь в верстку.
Вот небольшая выдержка из одного блога, которая описывает проблему, и заодно достаточно точно описывает то, чем я сейчас занимаюсь (15 кодеров и 3 версталы у нас, у всех всегда есть работа, версталам платят как минимум в два раза меньше самого плохооплачиваемого кодера (это к вопросу про окупаемость, естественно выгодней иметь отдельного версталу)

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



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



>Получается, что каждый компонент это не просто поле ввода и ячейка в модели. Его внешний вид определяется предысторией (как, где и сколько в него тыкали) и окружением (как вообще выглядит приложение, какой контекст вокруг)."

#167 #633623
>>633622
Алсо, почти никто из фронта не умеет в современную верстку, т.е. флексы, хуексы, методологии и т.д., естественно все знаю какие-то базовые штуки, блочную модель и т.д., но верстка в хуй не сдалась, когда есть верстала. Если какие-то проблемы, просто отсылаешь задачу ему, всё.
#168 #633624
>>633623
Так это же хорошо когда ты не верстала
#169 #633625
>>633624
Да, я про это и говорю.
Просто было парочка долбоёбов, которые считали, что такого не существует (отдельных верстал и фронтендеров не знающих верстку). Такое повсеместно и везде, в любой более менее солидной компании, где не разбазаривают бабло, будет такое разделение (возможное исключение - стартапы)
25 Кб, 604x458
#170 #633638
>>633625
Ага, я вот недавно в фирму одну устраивался фронтендом(могу в джс, ангуляр), а они меня "а верстать кроссбразерно умеешь, а в хтмл5 как бог можешь" - ну, говорю верстать умею, чутка за кроссбразерность слышал, в хтмл 5 разбираюсь - читал документацию, ненмого ковырялся, но ближе мне как бы не этим заниматься, это для верстальщиков - те в ответ скисли и "мы вам перезвоним", я пожал плечами и попрощался. Хотя они мне таки перезвонили - сказали, что выбрали более достойного кандидата, а мне похуй, я уже в хорошем проекте участвовал к тому времени, где все задачи по верстке я сваливаю на верстальщика. И у меня голова от этого говна не болит. Ненавижу верстку, блять.
#171 #633654
Господа, а можете подкинуть ссылок на годные проекты со сложным фронтендом, но чтобы без mv-фреймворков, или вообще на ванилле. Интересно почекать как умные люди пишут, как структурируют проекты, как паттерны применяют и все такое.
#172 #633667
>>633654
Велика вероятность, что там написан свой mvс/whatever, а дальше так же, как и везде
#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 за все это отвечает же?), где приходится полностью описывать логику загрузки страницы, а не просто классы проставить, например, при условии, что контент на разных страницах будет разный, это гемор дикий, и отдельный скрипт для каждой страницы.
#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 за все это отвечает же?), где приходится полностью описывать логику загрузки страницы, а не просто классы проставить, например, при условии, что контент на разных страницах будет разный, это гемор дикий, и отдельный скрипт для каждой страницы.
#174 #633695
>>633689
У них как бы так и сделано, просто проходятся по всем картинкам и потом через таймаут берут из дата ссылку и вставляют в src.
Выглядит супер уёбищно, браузер бы эту всю хуиту в 8 потоков за доли секунды загрузил, а тут приходится ждать пока он по одной картинке в пол секунды почти грузит. Говно.
#175 #633709
>>633695
Именно приведенный код ведь грузит во все потоки (после загрузки main.png) или последовательно по порядку, как описаны?
#176 #633712
>>633709
Последовательно, но т.к. исполняется очень быстро, то как будто во все потоки, тебе надо добавить паузу, чтобы это было на глаз заметно, как у того сайта, что ты привел. Но опять же, это очень костыльно. Правильнее и проще всё грузить сразу, а потом просто анимацию появления сделать, если уж хочется, чтобы не сразу показывалось.
#177 #633745
>>633712

> Правильнее и проще всё грузить сразу


Почему?
#178 #633748
>>633625
А чего там знать, на бутстрапе за пять минут слепил и норм
#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/
Накодишь годно - будет свой собственный ЭМЁРЖ без Джейквери и прочего поноса в зависимостях.
#180 #633877
>>633121
Понедельничный бамп.
#181 #633888
>>633877
Пиши ставку в рублях лучше, в баксах слишком грустно звучит
#182 #633975
>>633888
Хочешь чтоб еще грустнее стало?
#183 #633977
>>633975
Я давеча сериал смотрел один, про заключенных-лесбиянок, так вот, там одна девушка занималась низкоквалифицированным трудом (слесарь-электрик).
Она жаловалась на то, что час ее работы стоит $10.
В сериале персонажи, конечно же, грустно вздохнули и отнеслись к этому с сочувствием.
#184 #633979
>>633977
У нее fluent english, а у тебя - нет.
#185 #634063
>>633977

> низкоквалифицированным трудом (слесарь-электрик)


Тут квалификация повыше, чем у жс-макаки требуется. Не говоря уже об опасности и ответственности.
#186 #634251
>>634063

>Тут квалификация повыше, чем у жс-макаки требуется. Не говоря уже об опасности и ответственности.


Что несешь, блядь? Я пару лет отпахал на сто и дружил с нашим электриком - сидит копается в стартерах, иногда залазит под капот с тестером. Я когда смотрел на его работу и зп думал какого хуя я в механики-мотористы попиздил, вместо электрики. Алсо, знания необходимы за 7-й класс физики. Для жс-макаки требования повыше будут.
#187 #634352
Поцоны, есть хорошие примеры react + redux сложнее тудушек?
#188 #634355
вот ест
#189 #634416
>>634352
Дык там элементарно все, что еще нужно то. Redux-thunk еще стоит посмотреть.
44 Кб, 550x414
#190 #634542
Анончик помоги спиздить код 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 минуты, выручи анона.
89 Кб, 602x600
#191 #634552
>>634542
Зачем тебе это говно?
Как же я проиграл с пидорашьей ЗАЩИТЫ
#192 #634563
>>633773
Спасибо, хоть ясно стало, что гуглить, вот ниче так, вроде, https://github.com/caolan/async
Но я хотел бы готовое решение для использования на гс, чтоб в жс не лазить вообще (я к вам из /de зашел). В промисах написано, что ие (да и не только) не может в них.
#193 #634566
>>634542

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

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

https://jsbin.com/qiloyi/edit?js,console,output
#195 #634570
>>634416

>там элементарно все


а если нужно прилепить авторизацию на основе айпи, ролей и погоды за окном?
#196 #634618
>>634570
Оно же вроде для клиентсайда. Причем тут все это.
#197 #634622
>>634618
ээ, а нода там зачем?
#198 #634635
>>634622
Там изоморфное приложение. Сервер на ноде, клиент на реакте. На сервере вместо шаблонизатора тоже реакт. То, то ты написал про авторизацию - ортогонально либе для UI, тут надо смотреть решения для ноды.
#199 #634646
>>634635
Хотя пизжу. Нет там никакой изоморфности. Нода только для сборки проекта и запуска dev-сервера с ливапдейтами, так то.
#200 #634655
Работаю HTML/CSS-макакой, делаю статичные странички, максимум что могу — подключить плагин. Решил двигаться дальше и взялся за JS. Читаю уже вторую книгу прочел Крокфорда, сейчас читаю Кантора. Изучаю синтаксис языка и приемы программирования, это все интересно, но хотелось бы получить общее представление о процессе веб-разработки, чтобы понять какой набор технологий мне нужно освоить, чтобы стать front-end разработчиком смутно представляю, что такое Front-end, на самом деле. Кроме того, в планах «проапгрейдить» подходы к разработке, используемые в конторе, где я работаю. Например, узнал, что используемая сейчас пересылка файлов на сервер через FTP — прошлый век, и нужно переходить на систему контроля версий.

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

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

JavaScript
...

Чем дополнить список? Какие книги или статьи почитать/доклады посмотреть?
#201 #634662
Анон, посоветуй сайтов, где можно подготовиться к тестированию по джаваскрипту. Именно тупо задрочить тесты. Знаю про quizful, есть еще что-то подобное?
#202 #634663
>>634655

>файлов на сервер через FTP — прошлый век


Docker, Jenkins, CI
#204 #634667
>>634666
Спасибо, это полезно. Хотя там будут, скорее всего, именно чистые тесты - это не собеседование, а тестирование на курсы.
#205 #634685
>>634655
А как так получилось что ты никогда с фронт-ендом не стыкался? Это же ведь все части одного целого.
На удаленке работаешь/фрилансишь?

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

>bower


фикс
#207 #634700
>>634685

>На удаленке работаешь


This.

>А как так получилось что ты никогда с фронт-ендом не стыкался?


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

Пытаюсь сейчас искать что-нибудь по теме, но проблема в том, что для усвоения найденной инфы нужен определенный багаж знаний или непонятен контекст, невидно общей картины.
#209 #634709
Ребят, подскажите как найти удаленку начинающему джаваскриптеру низкой квалификации.
#210 #634711
>>634700
Начинай с воркзиллы. Низы из низов, так сказать.
#211 #634712
Бля, >>634711 --> >>634709
#212 #634714
>>634711
Что то не вижу там заданий на джаваскрипт
#213 #634785
>>634655
Топ кек, нахуя вы читаете, учите что-то? Охуеть, всё ж интуитивно понятно
Мимо-нихуя-не-учил-каждый-месяц-свой-новый-проект
#214 #634821
>>634785

>всё ж интуитивно понятно


Выкидыш материнской платы?
#215 #634824
>>634709
БАМП
#216 #634826
Как получить результат функции внутри объекта для применения в другой функции этого же объекта?
Сейчас код внутри объекта вида:
function makeShit(){
return data
};
this.doThings = function(){
var dataq= makeShit();
}
Однако при вызове doThings у меня получается undefined вместо data. ЧЯДНТ?
#217 #634840
>>634826
function makeShit(){
if (typeof makeShit.val == 'undefined'){
\t\tmakeShit.val = 0;
}
makeShit.val++;
return makeShit.val;
};
#218 #634852
посоны, накидайте гайдов по оптимизации в ангуляре
выборка где-то на 10к позиций
44 Кб, 905x542
#219 #634868
Сап зк.
Помогите набросать регулярку, я в них пытался разбираться, но каждый раз безуспешно.
Требуется вводить номера домов, причем могут быть значения: "50-" — все дома с номером меньше 50, "50+" — соответственно все больше 50, "30-50" — дома с 30 по 50 номер, ну и просто отдельные номера. Причем у номера дома может быть буква.
Например может быть такая строка: "20-,34а-36,56а,60+", или такая: "23а,50-65".
Выручайте.
#220 #634876
>>634868
А что в итоге тебе надо получить? Почему просто не split(',')?
#221 #634883
>>634876
Надо выбрать из списка домов, только те, которые укажут в строке.
Проблема в том, что неизвестно сколько запятых будет.
#222 #634886
>>634883
Ну, а номер дома это только 50 или 56а тоже дом? А что делать с 65+? Ты же нихуя не написал.
#224 #634905
>>634709
БАМП
#225 #634930
>>634886
Любая буква рядом с цифрой — это тоже номер дома, буква просто откидывается потом.
Ну вот смотри, есть список домов: 1,2,3,4,5,6,7,8,9.
У каждого дома есть например количество жильцов.
Пользователь хочет узнать, сколько человек живет в 1,3,4,5 и 8 домах.
Он пишет строку: "1,3-5,8а", и ему выводятся нужные ему дома.
Следовательно мне нужно проверять эту строку, может он криво введет, проверка на дурака.
#226 #634932
>>633712

>Последовательно


Нет, все class="notmain" будут параллельно грузится после загрузки id="mainImg".

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

Жабаскриптаны, такой вопрос возник, не могу разобраться:
Делаю тестовое задание - загрузка фотки, выбор пропорций для обрезки, сепия.
Вроде всё сделал, но на последнем шаге проблема - когда надо по рамке обрезать картинку и сохранить на сервере обработанный вариант, у меня не получается правильно собрать канвас из картинки и дива, который я использую как кроппер.
В ебаной функции context.drawImage (http://www.html5canvastutorials.com/tutorials/html5-canvas-image-crop/) 8 координат, к тому же дело осложняется тем, что я работаю с изображением не в оригинальных размерах - т.е. еще 1 коэффициент добавляется.
Ебался-ебался - так и не разобрался. Подскажите что-нибудь полезного.
Ну и кому не лень - ткните носом в говно, пояснив где надо было сделать по-другому.
107 Кб, 474x563
#228 #634979
>>634953

>Делаю тестовое задание


>где надо было сделать по-другому

#229 #634983
>>634979
А мне чот понравилось задание, интересно даже стало - сделаю, или нет.
Сроки всё равно уже просрал - так что теперь просто из интереса пытаюсь доделать.
#230 #634984
>>634930
Бамп
#231 #635010
>>634852
Выбирай промежутками
#232 #635011
>>634930
Сделай нормальный интерфейс. Какая строка, блять? 2016 год
99 Кб, 800x517
#233 #635021
Анон, на чем писать backend сайта?
#234 #635026
>>635021
pure html
#235 #635032
>>635011

>нормальный интерфейс


Посоветуй, с помощью чего его можно реализовать?
275 Кб, 795x837
#236 #635062
Я наконец понял что такое замыкание. Поздравляю себя.
#237 #635073
>>634709
БАМП
#238 #635091
>>634709
Просто берешь и без задней мысли устраиваешься на подходящую вакансию с хедхантера/авито.
#239 #635126
>>635091
Я про удаленку. Не все из нерезиновой
#240 #635128
>>635126
Просто берешь и без задней мысли устраиваешься на подходящую вакансию с удаленкой с хедхантера/авито.
#242 #635152
>>635021
cakephp
#243 #635160
>>631484
>>631484

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

вот этот вот matchResult это масив результатов где если я не ошибаюсь под индексом 1
#244 #635162
>>631155

Как раз его реинкарнация в ES2015 (тот же ES6) как раз таки торт. всякие тайпскрипты и котлины проприетарная хуита. Ну ок, мб котлин норм, но он пока что не юзабелен так как жабоскрипт
#245 #635164
>>635160
>>635160

бля аккела промахнулся с регуляркой
вот коректный: /\,(\d+)$/ig
#246 #635170
>>634852

ангуляр без гаманства не выгребает столько за раз. От слова совсем. если ты хочешь только эти 10к только отобразить чере one-time binding то ещё ок. Но в остально запомни в какангуляре потолок вотчеров в 3к (в твоём случае ng-repeat как раз таки пытается создать 10к вотчеров на каждый айтем, от того и рыгает как на вписке)
#248 #635173
О, оказывается яваскрипт имеет больше возможностей чем я думал. Поясните, за такой момент, я знаю ПХП и вёрстку, хуже знаю яваскрипт (который забывается, так как им почти не пользуюсь) и знаю jQuery (который очень простой и удобный), стоит ли мне учить ещё какие-нибудь JS фреймворки, если я планирую заниматься вебом? И есть ли лёгкие фреймворки на JS, разобраться в которых, имея знания яваскрипт на уровне джуна, можно за месяц? И которые при этом будут полезны. Хочу расшириться в этом направлении, но боюсь потратить время впустую, точнее на то, что мне не понадобиться.
83 Кб, 612x612
#249 #635174
>>635171

сударь вы зашли не в тот район тут у нас все культурные люди. Node.js наше всё
#250 #635178
>>635173
1) забудь что есть пыхпых.С опытом поймешь
2) Выучить норм язык и алгоритмы и рубить бабло.
3) Если всё же хочется веба ну прям оч-оч то учит глубже JS а лучше его новую версию ES2015
4) Бери node.js и ебаш фулстек на одном зоопарке и имей профит и счастье с этого
5) нынче класные фреймворки это reactjs, angular2, ExtJS
#251 #635181
>>635173

> jQuery


> стоит ли мне учить ещё какие-нибудь JS фреймворки

#252 #635225
>>635181
Двачую. Зашквар такое спрашивать в 2016, все знают что jQuery достаточно для всего, на jQuery пишут даже операционные системы и кластерные вычисления с петабайтами данных.
36 Кб, 435x417
#253 #635275
>>635173

>jQuery


>фреймворк

#254 #635314
>>635225

ну если для тя ОС на JS это кнопку прихуярить и видок рабочего стола сделать аля винь хр тогда бро не лезь в програмирование не разобравшись снчала в терминологии. Хотя бы.
#255 #635339
>>635314
Пиздец, такой толстый троллинг не различить.
#256 #635374
>>635339
К тебе это тоже относится, кстати)
#257 #635387
>>635374
К тебе это тоже относится, кстати)
#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
#259 #635396
>>635395
1) классы - зло, забудь про них и никогда больше не используй.
2) не пиши на ес5
3) внутри функции this смотрит на функцию, а не на объект
#260 #635404
Антошки, хочу выучить js как второй язык и пилить фронт енд на всяких ангулярах. Дайте какой-нибудь пошаговый гайд где на примере подробно рассказывают как это делать.
Книжку learn-js прочел, начал проходить интерактивные курсы но тупо лень по 150 раз пилить всякие детские циклы и присваивать переменные.
Сам синтаксис языка и принципы понял, теперь надо научиться пользоваться фреймворками.
Спасибо.
#261 #635405
>>635396

> 2) не пиши на ес5


почему?
#262 #635407
>>635387
К тебе это тоже относится, кстати)
#263 #635409
>>635396
Если функция
Object.prototype.func = function() {
}
является методом объекта, как внутри функции получить доступ к свойствам объекта?
#264 #635410
>>635404
Если можешь в ангельский, вот охуительный курс
https://www.codeschool.com/courses/shaping-up-with-angular-js
#265 #635420
>>635409
через this?
#266 #635422
>>635409
Не, хуйню я спорол, должен видеть this. в том виде, как ты написал, но мне кажется, что всё равно в этом ошибка, только просто в другом каком-то месте ты теряешь контекст. По коду который ты скинул всё должно быть окей.
34 Кб, 720x480
#267 #635425
>>635410
Два чая, я с него начал знакомство с ангуляром. Хороший курс.
#268 #635426
>>635409
В любой непонятной ситуации с контекстом используй apply(и еще ее функция-сестра, у них разница лишь в передаче параметров), там ты сможешь указать явно, что должно быть контекстом.
#269 #635436
>>635396

>классы - зло


>не пиши на ес5


>this смотрит на функцию



Ахуительные истории!
#270 #635444
>>635395
Нашёл свою ошибку.

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

>this.prototype = Object.prototype;


Для чего ты так делаешь?
#272 #635448
>>635444
Решение: объявить var chart в глобальном контексте, а потом уже внутри функционального контекста присваивать chart = new Chart(chartData);
#273 #635450
>>635446
Потому что впоследствии если я пытаюсь в конструкторе объявить методы конструируемому объекту через this.prototype.repaint = function() {...} мне пишет что prototype is undefined. То есть насколько я понимаю, я должен унаследовать от Object "место, куда я могу записывать объявленные методы", и только после этого могу объявлять методы класса. Хотя, в таком случае не записываю ли я их по ссылке в сам Object вместо этого?.. я еще не разобрался.
#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);
Заебись?
#275 #635462
>>635457
Понятно. Спасибо.
#276 #635492
>>635151
Заранее не известно количество домов.
#277 #635495
>>635492
И что? Ты же понимаешь, что DOM можно перерисовывать на лету, так?
#278 #635500
Поясните за js, как сложно мне будет вкатиться в джуна? В скилсах задания типа лаба 1, лаба 2 и даже лаба3(си и кресты). Также знаю основы html и css. До этого пытался в кресты но чет дропнул. В базовые понятия программирования могу, даж в ооп. Вопрос ещё, js очень тесно связан с версткой? Поясните за бэкенд че там вообще делать то нужно inb4: логика сайта
#279 #635501
>>635495
Можно, но не в моем случае.
Суть в том, что пользователь вводит номера домов, которые он хочет купить.
Но в базе хранятся только те дома, которые уже выставлены на продажу.
Он может ввести 40+, и ждать когда дома с такими номерами выставят на продажу.
#280 #635502
>>635501
Так и будет годами сидеть не закрывая сайт?
Когда выставят, тогда и отрисуешь их
#281 #635503
>>635502
Ему уведомление придет, когда такой дом выставят.
Если они не будут отрисованы сразу, то как он выберет дома, которых ещё нет в продаже? Вот таком случае ему точно придется сидеть и мониторить, когда его наконец выставят.
#282 #635505
>>635503
Cделай тогда выбор номера с radio-кнопками
Сначала дом выбираешь, потом букву, потом результаты
Текстовое поле - это пиздец
#283 #635506
>>635505
Что-то ты начал за здравие

>Сделай нормальный интерфейс. Какая строка, блять? 2016 год


закончил за упокой

>Cделай тогда выбор номера с radio-кнопками


>Сначала дом выбираешь, потом букву, потом результаты

57 Кб, 500x679
#284 #635507
>>634953
Совсем никто совсем ничего не подскажет по корректным значениям параметров для drawImage??
#285 #635512
>>635506
Кто ж знал, что ты так по-ебанутому всё делаешь? Обычно за проверку дома на существование бэкенд отвечает, а у тебя пользователь
#286 #635539
>>634953

>(по ссылке небольшой баг - после загрузки по кропперу кликнуть надо, чтобы он на место встал)


Это не баг, это фича последствия отсутствия строгой типизации, лол:
//top: "-" + h
top: parseInt(h)*-1
#287 #635646
>>634852
подкинь шаманств плиз
#288 #635650
>>635492
RegExp тебе в помощь

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

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

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

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

}

Как бы стили правильные не забывай указывать
390 Кб, 500x498
#290 #635806
>>635655
Но я спрашиваю, какие значения использовать при вызове context.drawImage() из тех, что у меня хранятся в options, няш. Стили кроппера-то тут причем?
#291 #635884
Предлагаю разработать очень легковесный модульный js-фреймворк. Все существующие легковесные похоже, что заброшены. Я считаю, что нам нужно уменьшить размер мирового веба и увеличить его быстродействие.
#292 #635912
>>635884
было 16 фреймворков, стало 17.jpg
#293 #635974
>>635884
Ангуляр 2, как мне кажется, идеален для всего, что нам нужно в 2016 году. Гугловцы знают что делают.
html-academy-ebanaya #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 тупо добавляет классу анимацию. Первый раз все норм работает, на второе нажатие не реагирует анимация, а после закрытия формы и открытия анимация проигрывается сама по себе. ЧЗНХ?
#295 #635992
>>635990

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

#296 #635995
>>635992
да знаю я хули тут три строчки https://jsbin.com/qexufiqabi/edit?js
#297 #635999
>>635995
Ты можешь вместе с HTML и CSS скопировать, ебанутый?
#298 #636024
>>635999
бля, кароч как-то так https://jsbin.com/hobefativo/edit?html,css,js,output

Не могу понять почему повторное нажатие, которое по идее должно запускать заново submit не проигрывает анимацию
#299 #636025
там окно просмотра ток пошире сделайте, чтоб закрытие окна потестить, там квадратик красный
#300 #636029
>>631129 (OP)
Вечер в хату, https://jsfiddle.net/e5cbuoxf/6/
вот тут я наговнокодил, че то стыдно такой код показывать, подкиньте идей как сократить ?
#301 #636033
>>636029
if(document.body.querySelector(".start")&&(!document.body.querySelector(".stop")) {
#302 #636036
>>636033
принято, а colorizeBetween насколько неочевидна ? Именования там прозрачны ?
#303 #636061
TypeScript или ES6 на какой стул сесть и почему?
#304 #636066
>>636061
почему говорить не буду, на es6 если в реакт, typescript если angular2
#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 находится в кложурсе? Он же память будет просто так занимать всегда
#306 #636088
>>636074
Ну в первом случае темп будет создаваться только один раз, при выполнении когда кода с полифилом, а во втором каждый раз когда вызываешь create. Возможно это какая-то оптимизация. Все жалуются что обжект.креайт медленный.
#307 #636107
>>636066
Кекнул, в реакте тс гораздо пизже ангуляра и можно юзать уже сейчас
#308 #636110
>>636107
ну хуй знает, выбирая между es6 и ts я выбрал бы es6 т.к. незнаю почему, но я на coffee уже обжегся, выучил его, а через две недели вышел es6 и он сдох
#309 #636118
>>636024
Очевидно, что проблема в удалении класса/присвоении класса.
Такой 'ugly hack' для демонстрации решает проблему:
setTimeout(function() {popup.classList.remove("modal_error");}, 50)
setTimeout(function() {popup.classList.add("modal_error");}, 100)
#310 #636119
>>636088
спасибо
#311 #636121
>>636029
Ну ебаный в рот, не вешай обработчик на каждый элемент в цикле. Используй делегирование!
Комментируешь в коде всем очевидные вещи - как работает инструкция if: // если есть элемент с классом start, но не комментируешь, для чего нужны твои функции, какие аргументы принимают и вообще для чего нужен твой код. Сделай чтобы функция colorizeBetween принимала только 2 аргумента colorizeBetween(startIndex, stopIndex) и уже внутри нее определяй в какую сторону закрашивать, передавать 3 параметром строку "left" или "right" - хуевая идея - легко допустить очепятку и твоя IDE ничем подсказать тебе не сможет.
128 Кб, 600x600
#312 #636126
>>636121

>var sta = startIndex;


>var sto = stopIndex;


>var startIndex = sto;


>var stopIndex = sta;



Что вообще здесь творится?
23 Кб, 229x190
#313 #636129
>>636118
ок, но если закрыть и открыть форму то анимация один хуй проигрывается, да и это решение с графическим лагом, че-то тут не так. если поставить задержки 500 и 1, то получится проигрывание обеих анимаций...лол, но выглядит уже лучше. Так с какого хуя обе проигрываются?!
#314 #636159
>>636129

>но если закрыть и открыть форму то анимация один хуй проигрывается


Ебааать... Ясен хуй.
//JS
close_popup.addEventListener("click", function(event){popup.classList.remove("modal_show");});
//CSS
.modal_show{
display: block;
animation: bounce 0.8s;
}

Чувствуешь, тут что-то не так?
#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");
Сплю уже.
Кароч, при входе вешается класс с анимацией.
Следовательно, все у тебя по коду логично.
#316 #636163
>>636126
ну типа если мышка в левую сторону пошла, нужно поменять индекс начала и конца местами а то получится array.split(8,2) например а js так не умеет
#317 #636166
>>636161
логично-то логично, только обе анимации по отдельности прекрасно работают, а вместе нихуя. Подвоха не понял. Ну то есть как не понял, понял, что у класса modal_show всегда висит анимация, и при вызове еще одной анимации с этим блоком первая тож проигрывается. Это не то поведение, которого я ждал от keyframes
93 Кб, 929x694
#318 #636536
>>634552
Друг попросил.
>>634566
>>634567
Ты хорoший человек, твоя мать — достойная женщина, отец — настоящий мужчина
#319 #636537
>>635500
Бамп
#320 #636576
>>635500
Ээ блет, так чем ты вообще заниматься собираешься? Я могу тебе с десяток технологий написать, но нахуя тебе это?
43 Кб, 1366x768
#323 #636659
Пацаны, что не так?
#324 #636672
>>636659
console.log(event) выдает одинаковые результаты в обоих случаях.
#325 #636765
Джсаны, поясните, как можно отловить изменение содержимого элемента? Допустим есть окно чата и нужно обрабатывать каждое новое сообщение. Я прочитал все про события, но все равно не представляю как это реализовать.
#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
#327 #636789
>>636784
Спасибо, я так понял вот эта штука https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver как раз то, что мне нужно.
#328 #636843
посоны есть задача
нужно организовать поиск по большим json файлам с помощью js , в файлах выгрузка даных порядка 100к позиций, необходимо выводить данные на сайт
с помощью чего это можно реализовать
#329 #636856
>>636843
angular
/thread
#330 #636861
>>636633
Спасибо, во всей видимости это то что мне нужно.
#331 #636862
>>636856
angular после 3к позиций загибается к едреной фене
#332 #636872
>>636862
Где загибается? Ты хочешь сказать, что он не способен подгрузить объекты из джейсона?($scope.huetaName = angular.fromJSON(response.data);) и гуляй-рука-писюн, то есть клепай себе через нг-репит.
#333 #636875
>>635806
просто оно фиксит твою проблему. Стили играют роль в позиционировании вот этих твоих жвух поебней
#334 #636876
>>636862
>>636856
$ npm search json stream parse
Просто ДОХУИЩА либ для парсинга реально больших JSON.
С другой стороны, это конечно 'workaround', т.к. V8 не предоставляет нативно асинхронных средств для работы с большими джейсонами.
#335 #636888
>>636872
ты про это
var хуевыймодуль = angular.module('хуевыймодуль', []);
хуевыймодуль.controller('хуевыйCtrl', function ($scope, $http) {
$http.get('test1.json')
.success(function (data) {
$scope.preparats = data;

});
то это работает
валится ng-repeat
>>636876
ты пробовал юзать эти модули?
#336 #636894
>>636888
а ты по кусочкам попробуй, первую тыщенку отрисуй, setInterval(500, отрисоватьТыщенку);
#337 #636897
>>636843
Чем не варик?
var parser = new JSON.Parser();
parser.update(data); // updates the state of the parser with more data
var result = parser.result();
#338 #636911
>>636894
если прилепить фильтры то оно и на 200 валится
#339 #636918
>>636894
>>636911
а фильтры там по любому нужны, возня с порциями по 100 шт на 10000 к позиций нахуй нада
просто я второй день дрочусь как это запилить в ангуляре
как вариант думал парсить напрямую в контроллере с помощью андерскоре
или пилить через эластик серч
#341 #637002
>>636789
Но так плохо делать, на самом деле. Если ты не юзерскрипт пишешь и чат твой - можно сделать куда правильнее.
#342 #637014
>>636888
Потому что не пытайся делать хуйню(загружать несколько тысяч сразу), тут тебе люди говорят делай через интервал(где там ебаться-то? одну строку кода добавить?), по событию(скролл, аддБаттон, ватевар). Что угодно наебнется, если его заставить 100к сразу подгрузить.
#343 #637016
>>636918
Пиздец ты мудак. Такие вещи на бэкенде делаются
#344 #637017
>>636911
Через интревал\событие фильтруй\делай что угодно и кешируй в объекте контроллера - отдавай из объекта. Все просто.
6 Кб, 635x414
#345 #637019
Коданы, мне в общем надо сделать анимацию маятника, пользователь выбирает нажатием точку на жёлтой дуге откуда будет маятник совершать движение.
Где прочитать за эту хуйню?
#346 #637027
>>637019
gugoldotcom > how to create pendulum javascript
............
PROFIT
#347 #637036
>>637027
Спасибо, ананс прям по первой ссылке такой охуенный маятник!
#348 #637119
>>637014
100k позиций асинхронно подгружать по 100 штучек нюню
поиск тоже асинхронно делать?
>>637016

>анхулар тхреад


>Пиздец ты мудак. Такие вещи на бэкенде делаются

#349 #637137
>>637119

> >анхулар тхреад


> >Пиздец ты мудак. Такие вещи на бэкенде делаются


Это жс-тред, мудила, и на жс можно запилить бэкенд
Как вообще мысль может прийти о сортировке данных на клиенте, это же пиздец
#350 #637142
>>637137
ну так запили какую библиотеку лучше использовать, че ты истериш как баба?
#351 #637143
>>637142
Какую библиотеку, поехавший? Знаешь что такое бекенд?
У тебя должна быть база данных, в которой эти данные, вся сортировка, поиск, агрегация выполняется на бекенде, через базу данных
А клиент должен их таскать запросами
/get-data?PAGE=1&SEARCH=vagina
2 Кб, 200x150
#352 #637145
анон, подскажи библиотеку/скрипт для создания дерева как на пике.
#353 #637166
>>637143
хостинг с монгой не подкинеш?
#355 #637214
>>637145
бампану пожалуй
#357 #637448
>>637441
Передай контекст.
Плохой способ:
var self = this;
return self.userData;
Хороший способ привязать к вызываемой функции контекст через .bind(this)
#358 #637461
>>637441
>>637448
А, блядь, не всматривался в твой высер, у тебя промисы в Sails.
Тогда что не работает?
Здесь такой же код и так же используется возврат внутри .then

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

А переменную из промиса никак не вернуть? А то вместо колбек-хелла промис-хелл получается
#362 #637596
>>637588

>А то вместо колбек-хелла промис-хелл получается


Суть в том, что в промисах значения можно (и нужно) резолвить.
Адаптированный вариант Мозилловского примера:
https://jsbin.com/miwelu/edit?js,console
#363 #637605
>>637596
Так резолв это же просто обработка значений, которые вернулись. А как из промиса вернуть значение во внешнюю переменную, например?
#364 #637616
>>637605
Думай о резолве как об успешном адресате параметра (это может быть как промис, так и любое произвольное значение) в следующую (thennable) функцию:
.then(
// Промис передал нам значение
function(val) {
console.log('Значение знаешь? ' + val);
})
Еще раз посмотри пример выше на жсбин, он довольно нагляден для понимания промисов.
#365 #637635
>>637616
Не, я вот что имею ввиду:
https://jsbin.com/gosivohepe/1/edit?js,console
#366 #637639
>>637635
Все правильно работает.
У тебя вызов console.log(kok) происходит ДО того, как значение переменной kok будет перезаписано (в промисе для примера используется таймаут), посему результат не такой, как ты ожидал.
Вот демонстрация твоего примера с верной последовательностью вызова функций (переменная kok принимает значение, переданное резолвом).
https://jsbin.com/raworav/2/edit?js,console
#367 #637643
>>637639
А как тогда синхронно получить значения из нескольких промисов?
#368 #637655
>>637643
Очевидно зачейнить очередь из промисов, где последнее звено будет функцией с обработкой ВСЕХ полученных в предыдущих шагах значений. Then гарантирует, что промис выполнился.
#369 #637690
>>637655
Всё, разобрался. Спасибо
Заебок, теперь на жс писать одно удовольствие
#370 #637691
>>637690
Попробуй теперь Бабель с async/await, вообщи кайфуищь
27 Кб, 1200x127
14 Кб, 515x81
#371 #637814
В чем может быть проблема? Модуль toaster подключен
#372 #637823
>>637814
Зачем sails в ангуляре подключаются? Рендеринг на серверной стороне?
#373 #637826
>>637823

> Зачем sails в ангуляре подключаются?


Для работы с сокетами.

> Рендеринг на серверной стороне?


Полностью на клиенте, на сервере только данные
#374 #637832
>>637643
Promise.all([promise1, promise2, ... ]).then(results =>....)
(если я правильно тебя понимаю)
#375 #637850
>>637690

> Заебок, теперь на жс писать одно удовольствие


Не траль так сильно
#376 #637868
>>637850
Может скажешь что охуеннее?
#377 #637880
>>637868
Если тебе дали удобную ложку, это не означает что гавно стало вкуснее.
Поработай подольше с базой данных через промисы, потом подумай, а зачем ты это делаешь? А делаешь ты это только потому, что в ноде всего один поток.
#378 #637894
>>637880

> а зачем ты это делаешь?


Что делаю? Через промисы работаю?

> А делаешь ты это только потому, что в ноде всего один поток


Какое ещё поток? Event-loop?
Есть event-loop, из-за которого нода такая охуенно быстрая. На этом же event-loop'e основан nginx, например, который тоже пиздец быстрый.
И чем тебе event-loop не нравится? Тем, что нужно писать ассинхронно? Так никто не заставляет, можешь синхронно писать, жертвую скоростью работы приложения
#379 #637896
>>637894
Бля, куча опечаток, ебаное яблоко не может в окончания
#380 #637945
>>637880

>Поработай подольше с базой данных через промисы, потом подумай, а зачем ты это делаешь? А делаешь ты это только потому, что в ноде всего один поток.


Где связь?
#381 #637957
Как передать произвольное количество переданных аргументов в функцию в другую функцию?
#382 #637959
>>637957
Объектом или (предпочтительнее) массивом.
5 Кб, 564x63
#383 #637960
>>637959
Ну и как это сделать?
#384 #637975
>>637960
>>637957

>произвольное количество переданных аргументов в функцию


Есть built-in массив доступный внутри функций - "arguments":
function test() {
console.log(arguments);
}
test(1, 2, 3)
--> [1, 2, 3]

Как передать ... в функцию в другую функцию?
На этот вопрос я уже ответил ранее.
#387 #637988
>>637987
двачую var arrArgs = [].slice.call(arguments);
#388 #638016
>>637945
Если бы в ноде можно было бы запускать потоки, то все бы использовали синхронный АПИ работы с базой.
https://www.youtube.com/watch?v=bzkRVzciAZg
#389 #638022
>>637988
>>637987
Как это передать в функцию? >>637979
Нипанимат
#390 #638024
>>638016
Ну так это же плохо
#391 #638027
>>637894
Event-loop это хорошо, когда ты можешь передавать тяжёлые задачи в другие потоки. Например, так работают все нативные GUI-тулкиты: event-loop в основном потоке для быстрых ответов, а рассчёт и рисование UI в отдельных потоках. В отдельных потоках можно писать синхронный код, а потом результат возвращать в основной поток через event. Latency при этом не страдает, т.к. основной поток занят только обработкой ивентов и ничем больше, throughput тоже выше, т.к. используется больше ядер процессора.

А в ноде, из-за того что есть только один поток, даже цепочки операций с базой данных приходится делать асинхронно. С промисами, конечно, немного проще чем с коллбеками, но гораздо сложнее чем синхронно.
#392 #638033
>>638027

> В отдельных потоках можно писать синхронный код, а потом результат возвращать в основной поток через event.


Нахуя? Это, по сути, такой же промис, только через анус
#393 #638066
>>638027
Я тут раскрою маленьких секрет, но async/await решает проблему с асинхронным кодом от слова полностью. У обезьянки остается только одна задача - не блокировать надолго event-loop внутри своего кода.
#394 #638070
>>638033
Синхронный код короче, быстрее пишется и гораздо легче читается.
Вот адаптированный пример из кода текущего проекта. Считай что Group и Item это условные Sails модели, а Service - это условный сервис.
https://codetidy.com/7828
#395 #638071
>>638066
Как тебе поможет async/await в ситуации, когда ты работаешь с API на промисах?
И да, ты думал о том, что в жизни бывают вычислительно интенсивные задачи?
#396 #638081
>>638071

>API на промисах


Из промиса ES6 можно делать await, собственно, async - такой сахар над промисами. Хреново, если либа городит свои костыли, но их постепенно переписывают.

>вычислительно интенсивные задачи


Пул тредов-воркеров, и координация через асинхронный API, иначе никак. Это нормально.
#397 #638085
>>638070
Однохуйственно. Если так хочется, чтобы было как на нижнем примере можно наплодить куча мельких функций на каждый then промиса и отличаются два примера будут только наличием then-aми. Собственно для этого и есть промисы.
#398 #638087
>>638085
then-ов*
#399 #638099
>>638085
Дело не только в then-ах, обрати внимание, какой там выкрутас делается чтобы собрать вместе результаты от нескольких асинхронных запросов Service.getItems.
#400 #638104
>>638099
Для этого, кстати планируется такая штука:
var vals = await* [promiseObject1, promiseObject2, ..];
#401 #638116
>>638070

> Синхронный код короче, быстрее пишется и гораздо легче читается.


Но в несколько раз медленнее работает
#402 #638138
>>638104
А как с обработкой ошибок в этом выражении будет?
Promise.all падает когда хотя-бы один промис внутри падает. Поэтому в примере по ссылке делается .then(res=>res, err=>[]), чтобы в случае ошибки успшеные результаты обработались.
#403 #638140
>>638116
Он не медленнее работает, он просто заставляет поток простаивать некоторое время. Но операционная система для того и существует, чтобы отдать на это время процессор другому потоку. Обычно в многопоточных приложениях потоков больше чем ядер чтобы процессор не простаивал.
#404 #638149
>>638138
Из reject промиса ошибка вылетает вверх по стеку, прям как в синхронном коде. Никаких коллбеков, классические try - catch
#405 #638151
>>638138
В твоем случае, делается map async function , и await по каждому промису, обернутый в try - catch, где catch возвращает нужный тебе пустой результат.
#406 #638211
>>638024
да вообще пиздец
#407 #638221
>>638140
Ты, кажется, не понимаешь разницы между ассинхронностью и синхронностью
#408 #638227
Аноны каким редактором посоветуете пользоваться во время обучения JS? Атом норм?
#409 #638229
>>638227
да норм норм, какая разница то ? JS бля учи, редактор он выбирает, обсос
#410 #638230
>>638229
Ну так если я выберу хуевый редактор и там не будет удобных штук типа автодополнения и скрытия блоков кода то я сосну ж.
У меня раньше был ноутпад++, но я решил перейти на юбунту и тут он не идет, приходится вот искать новый.
#411 #638231
>>638227
тут так просто не скажешь, погугли учебники по редакторам, benchmarkи там всякие, может стоит курс по webstorm прослушать, тогда только за кодинг садись...
#412 #638232
>>638230
да бля любой известный имеет все что нужно, все что не нужно доустанавливается, sublime-text смотри, условно бесплатный, будет иногда заебывать с просьбой купить его ( в большинстве своем все юзают его ) думаю никто его ни разу не купил, я на webstorm сижу со времен pycharm атом тоже, короче похуй любой популярный бери и все
#413 #638233
>>638231
А емакс выучить не надо перед тем как хеллоуворлд садиться писать?
#414 #638235
>>638232
Ясно, спасибо, уже компилирую атом.
#415 #638241
>>638235
Бог тебе дал пакеты, а ты компилируешь
#416 #638300
>>638066
На самом деле нода не лишена некоторых детских болезней, которые скорее являются проблемами V8, нежели модели event-loop в целом.
Взять тот же JSON, речь о работе с которым велась выше. Если JSON достаточно громоздок по объему, то сериализация данных может занять значительное время. Все это, конечно, относительно, но тем не менее, произойдет блокирование единственного потока.
С другой стороны, есть замечательная возможность запускать несколько костылей инстансов самой ноды:
https://nodejs.org/docs/latest/api/cluster.html
по сути, делегируя выполнения задач на несколько потоков.
Это становится охуенной киллер-фичей, если мыслить в контексте гибридных задач, где требуется совместить плюсы а- и синхронного подхода. Например, скада.
Обработку сигналов с оборудования реализовываем строго синхронно и в отдельном инстансе, UI и взаимодействие с пользователем - в асинхронном. Что скажете, джейсоны?
#417 #638306
>>638300
Другого решения и нет, анон, если мы делаем что-то отличное от модели cgi. Как делать риалтайм без event-loop модели? Да никак, наверняка в твоей скаде гуи обновляется через вебсокет. Проблемы c JSON решаемы написанием асинхронного драйвера, как с БД. Форкаемся, выполняем работу, шлем ивент с результатом, завершаемся.
#418 #638366
Ребята, есть один GreasyMonkey скрипт, использующий css-стили вот так: http://greasemonkey.win-start.de/patterns/add-css.html
Что делать, если я хочу иметь возможность переключаться между стилями? Можно понасоздавать stylish скриптов, между ними переключаться. А можно как-то выпадающий список организовать, чтобы один раз нажал и всё заработало?
#419 #638369
>>638366
Интересует вопрос изменения стилей на лету средствами именно GreasyMonkey.
#420 #638382
>>638221
Ну давай, расскажи мне про разницу.
#421 #638385
>>638300
Лучше подождем, когда в ноду завезут АПИ вебворкеров, и библиотеки начнут им пользоваться. В вебворкерах и тредпулы есть, все как у белых людей.
#422 #638390
>>638306
Есть большая разница между вычислительными задачами (сериализация/десериализация) и I/O задачами типа общения с базой, где нужно просто дождаться ответа.
#423 #638425
>>638390
Ну делай сериализацию/десериализацию в отдельном треде/процессе и жди ответа, я ж написал.
#424 #639101
>>631129 (OP)
шалом неверстальщикиафронтендеры, появилась затея замутить что то типа search any where, ставишь плагин, захлдишь в вк пишешь имя фамилию человека, в результатах получаешь так же ссылки на найденных в ok.ru facebook и еще каких нить социалочек, как думаешь взлетит ?
#425 #639110
#426 #639115
Суп! Решил я начать кодить на Java. Из опята программирования лишь то, что я во время школьных лет рисовал в Паскале из фигур что-то типа замка. Курсы проводит 1С-контора (которая club.1c.ru) у меня в мухосранске. Они дают сертификат, все дела. За 4 месяца можно пройти их весь курс. На сайте есть описание занятий по каждому модулю. Всего их 4. Дайте свои отзывы о них, если есть, есть ли какая-то альтернатива лучше, если не ВУЗ?
#427 #639130
>>638366
Присваиваешь созданному ноду какой-нибудь идентификатор, потом по ниму в нужный момент node.disabled=true|false.
#428 #639141
>>639101
Клон Яндекс.Пипл или что-то особенное?
#429 #639199
Есть аноны с опытом работы с D3.js? Подскажите, есть ли какое нибудь место - агрегатор плагинов для решения конкретной задачи? Нашел только это - https://github.com/mbostock/d3/wiki/Plugins но там не богатый выбор, и в 95% случаев плагин реализует какую то неведомую ебаную хуйню. На оффсайте Hightcharts, например, в разделе "демо", есть примеры реализации практически любой из типичных задач визуализации данных, а на сайте d3 нихрена такого нет.
19 Кб, 635x363
#430 #639273
Ананасы, помогите с IndexedDB, что на пике не так? Почему выкидывает при вызове objectStore.get() ошибку - AbortError? В БД точно данные есть, курсором читается. Два дня в вашем жабоскрипте, можете обоссать, но намекните куда копать.
#431 #639308
>>639199
Дело в том, что d3 это низкоуровневый инструмент для создания не типичных вещей. Если тебе нужно что-то стандартное, то лучше брать либу с готовыми графиками. Ебаться с d3 - та ещё радость, у них там свой датабайндинг ( этакий недореакт), своя либа для анимации. Scails и layouts там действительно полезные, но они заточены именно на использование в их поехавшем "fluent" интерфейсе.
#432 #639322
>>639115

>javascript thread


>кодить на Java


А я еще постоянно разражаюсь когда в каждой новой книге по джс рассказывают, что это не джава, а названия похожи, потому что маркетологи долбоебы. ЛОЛ
75 Кб, 500x320
#433 #639323
>>639308

> fluent интерфейсе


Шарпоняша не палится, обычная яваскриптовая недомонадка.

> Scails


scales же
>>639199
Посмотри производные графические либы на d3 - dc.js, c3.js, nvd3.js reactd3 и т.п. Тот Шарпоняш все верно сказал, сама d3 для элитки вроде data-artist'ов, обыкновенным людям напрямую ее использовать незачем.
#434 #639358
Ребят, не могу нагуглить. Помню, что в JS есть возможность вызывать метод определённого объекта, не записывая каждый раз сам объект (в определённой области видимости). То есть вместо obj.foo() писать .foo(), предварительно указав, какой объект используется для последующих вызовов. Как эта штука называется?
#435 #639390
>>639358
foo = obj.foo
foo()
?
#436 #639391
>>639308
>>639323
Спасибо.
#437 #639400
>>639390
Не то, плохо объяснил.
Допустим, есть код:
obj.foo();
obj.bar();

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

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

С with же добра не жди.
#443 #639550
>>639273
Ну бля, ананасы, помогайте. Добавляю строки в БД (только ключ) и потом пытаюсь их достать (по тому же ключу, он в БД точно есть), но какое-то ебучее AbortError появляется. Что ему надо? 10 раз уже каждую строчку передрочил, всего-то и надо проверить есть в БД такая запись или нет.
#444 #639572
>>639141
>>639141
ну отличается лишь тем что не надо в яндекс пипл заходить, чисто как обычно людей ищешь вк, но на выхлопе получаешь отовсюду, хз ток как их ранжировать
#445 #639580
>>639323

> Шарпоняша не палится


Но я же джаваиндус
#446 #639620
>>639580
Ну не знаю, у меня на "флюент интерфейсы" детектор сработал.
#447 #639876
>>637137

>Как вообще мысль может прийти о сортировке данных на клиенте


А если нужна сортировка по клику на название столбца таблицы? :)
#448 #639877
>>637166
modulus.io
9 Кб, 272x172
#449 #639890
>>637987
>>638022
>>637988
>>637987
Благодаря этим анонам.
#450 #639895
>>639572
Расширение, которое обращается к яндекс.пипл?
#451 #639901
>>639890
Я нихуя не понимаю зачем ты это делаешь. Твой код так и просится на что-нибудь из поста >>639168
#452 #639909
>>639901

>зачем


>передать произвольное количество переданных аргументов в функцию в другую функцию

#453 #639914
>>639909
Кун-задавший-этот-вопрос-в-треде
Мне .apply помог, только у меня сложность была в том, что я передавал не в обычную функцию, а в метод класса, и там контекст надо было не this передавать, а сам этот класс
loh.ban.apply(loh, arguments)
95 Кб, 904x609
101 Кб, 709x654
6 Кб, 180x134
#454 #639922
>>631266
По хорошему еще надо сделать дженерализацию функции calculate и отдавать туда название параметра.
Главное, что тебе стоит вынести из этого кода - обращение к свойству объекта это O(1), т.е. очень быстрый алгоритм. Это одно из главных преимуществ объектов перед массивами, их не обязательно итерировать.
#455 #639925
>>631291
Мне вот больше интересно, когда можно будет делать screen share через webRTC средствами chrome.
#456 #639926
>>632991
Потому что мало задач.
#457 #639927
>>631533
Мат. формулы сложнее работы с webGL.
#458 #639928
>>631994

>поднять nginx


Я так и делаю для ноды.
#459 #639929
>>632002
draw.io
#460 #639932
>>632624
_.clone()
#461 #639934
>>633501
Для большей дженерализации, не знаю, зачем еще.
#462 #639936
>>633745
Потому что тогда браузер берет на себя заботу о потоках.
#463 #639941
>>634868
Вариант split(",") вполне корректный, проверяешь потом отдельно каждое значение функцией, выясняешь, ошибка это, диапазон вниз, диапазон вверх, диапазон от и до или число. В чем загвоздка-то?
#464 #639942
>>635021
django
#465 #639947
>>637119

>поиск тоже асинхронно делать?


Поиск делай в объекте в памяти, лол.
#466 #639974
>>639928
Но это вовсе не обязательно
#467 #639975
>>639929
Спасибо, охуеено
#468 #639976
>>639876
Такую сортировку на бэкенде делают
#469 #639992
Можно имея ссылку на файл как-то получить его данные?
#470 #639993
>>639992
https://api.jquery.com/load/
Но только в соответствии с CORS.
#471 #640006
>>639993
Nyet. Вот нашел рабочее решение
http://www.html5rocks.com/en/tutorials/file/xhr2/
#472 #640038
>>639974
Фаерволл не пропускает ничего, кроме nginx.
#473 #640040
>>639976
А если пользователь решает, как ему сортировать? Каждый раз перегружать страницу и гонять те же самые данные? Теперь понимаешь смысл front-end приложения?
#474 #640055
>>640040

> А если пользователь решает, как ему сортировать?


Пользователь отправляет ажаксом поле сортировки и направление, сервер берет данные из базы, сортирует данные по полю и делает аск/деск по направлению пользователя, отправляет. В чем проблема?

> Каждый раз перегружать страницу и гонять те же самые данные?


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

> Теперь понимаешь смысл front-end приложения?


Я понимаю, а ты нет
#475 #640072
>>640055

>сервер ... сортирует данные по полю и делает аск/деск по направлению пользователя


Джейчую. Тем более, когда, как анон говорит, у него данных на сотни тысяч позиций. Это ж пиздец.
#476 #640130
>>640072
>>640055
СМудари, предоставьте-ка пример UI, в котором отображаются на одной странице (без пагинации) сотни тысяч позиций, это первое.

>В чем проблема?


В том, что это избыточный запрос, лишний траффик, лишнее время ожидания, данные уже есть на клиенте, все, что нужно, это отсортировать и перерисовать DOM.

>Я понимаю, а ты нет


Видимо, понимание через жопу это твой путь.
#477 #640193
>>640130

> СМудари, предоставьте-ка пример UI, в котором отображаются на одной странице (без пагинации) сотни тысяч позиций, это первое.


Так никто не делает, поехавший блять. Ну, кроме таких как ты.
#478 #640208
>>640193
Если так никто не делает, то с чего это ты вдруг это упомянул-то, а?
#479 #640214
>>640208
Где упомянул?
#480 #640222
>>640214
Действительно, не упоминал.
Еще раз - пагинацию делают на сервере. Внутреннюю сортировку делают на клиенте.
Последовательность такая:
1. Первый заход на страницу - получение отрендеренного html в нужном порядке, затем сразу загрузка данных в виде json.
2. При клике на название столбца сортировка идет на клиенте.
3. При дальнейших переходах по страницам тоже грузятся только данные.

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

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

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

Итог: сортировать данные в формате json лучше на клиенте.
#481 #640234
>>640222
Ты понимаешь, что чтоб сортировать на клиенте тебе нужно выгрузить ему всю базу? На каждого клиента. Всю базу.
А если база изменится, снова выгрузить.
Мало того, что это небезопасно, клиенту базу отдавать, так это ещё и десятки мегабайт трафика, если не сотни и тысячи на каждого клиента, в зависимости от размера базы.
#482 #640236
>>640234

>чтоб сортировать на клиенте тебе нужно выгрузить ему всю базу?


Зачем это? Клиент получает только то, что необходимо.
Для перехода по страницам надо делать запрос.
Для сортировки по значению столбца не надо.
Для поиска по значению - надо.
#483 #640240
>>640236

> Зачем это? Клиент получает только то, что необходимо.


Ты говоришь про сортировку 20 элементов, которые получил клиент, а я про сортировку по всей базе.
Вот, например, у тебя в таблице 100 учеников из 1000. Если ты будешь сортировать по какому-то полю только на клиенте, у тебя сортировка будет только среди этих 100 учеников, остальные 900 в сортировку не попадут. В этом случае правильнее сортировать в базе, а не выгружать 1000 учеников на клиент.
#484 #640244
>>640240

>Ты говоришь про сортировку 20 элементов, которые получил клиент, а я про сортировку по всей базе.


В этом и был мисандерстендинг.
#485 #640248
>>640244
Всё началось с сортировки 100к элементов на клиенте - >>636843
#486 #640250
>>640248
А не, не с сортировки даже, просто с вывода
#487 #640276
>>640222
Идиотина, блеать, ну какая сортировка на клиенте, если у тебя ПАГИНАЦИЯ? Ну отсортируешь ты текущую страницу, и дальше что? Когда пользователь жмакает на сортировку, он желает увидеть первой строкой минимум/максимум среди всех данных, сортировка только среди пагинированного набора записей нахуй не упала.
#488 #640279
>>640222
И вообще ваша пагинация говно, давно изобрели инфинит скролл.
#489 #640289
>>640279
Инфинити скролл для табличных данных?
sage #490 #640292
>>640289
Yeap. Удивлен?
#491 #640295
>>640292
Мне кажется так только пидоры делают
#492 #640296
>>640295
Тебе кажется
#493 #640299
>>640296
Мне кажется, что не кажется.
Нельзя делать инфинити скролл там, где важен порядок элементов, и нужна удобная навигация
Это как не нумеровать страницы документации, например.
#494 #640301
>>640299

>Нельзя делать инфинити скролл там, где важен порядок элементов


Можно (ре)рендерить таблицу с данными после подгрузки элементов.
Ничего криминального в этом нет.
#495 #640305
>>640299
Инфинит скролл порядок сохраняет, в произвольное место можно спозициорироваться скролбаром, но это нахуй не надо, т.к. обычно есть быстрый поиск вводом с клавиатуры. Что тебе еще нужно, болезный?
#496 #640309
Вопрос по ноде с монгой.
Не могу понять как добавлять в коллекцию данные, которые определены в модели на более глубоком уровне.

https://jsfiddle.net/L4w7udw7/
#497 #640410
>>640309
Апдейт с рабочим вариантом, но который лучше не делать
#498 #640411
#499 #640434
>>640309
Так нельзя делать, епта. У тебя для этого поля должна быть отдельная коллекция, вложенных данных быть не должно. Уровень вложенности = коллекция.
#500 #640435
>>640434
А почему этот СИНЬОР так делает?

https://github.com/sahat/hackathon-starter/blob/master/models/User.js
#501 #640440
>>640435
Потому что пришел в монгу с реляционных баз данных
#502 #640449
>>640440
То есть нужно делать не так
loh: {
\tdaun: {
\t 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'}

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

И под поле loh у тебя отдельная коллекция, в которой будут храниться нужные данные. То есть тебе нужно описать модель для коллекции Loh, модель User может ничего о ней не знать, у неё просто ссылка на другую коллекцию.
#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'ируй, анон
#505 #640453
>>640451
Закинь с входными данными на jsfiddle
#506 #640454
>>640450
А если по быдлячьи сделать
#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'}

То какие подводные камни будут?
#508 #640458
>>640454
Зачем? Это противоречит принципам монги
Можно и весь код, например, в одном файле писать, но зачем?
#509 #640470
>>640458

>Зачем?


Чтобы работало же и не пришлось еще день тратить на попытки реализации с помощью ссылок на коллекцию.

Оно ведь таким макаром не намного сильнее будет тормозить, по сравнению с монгофилософским вариантом?
#510 #640473
>>640470

> Чтобы работало же и не пришлось еще день тратить на попытки реализации с помощью ссылок на коллекцию.


День?
http://mongoosejs.com/docs/populate.html

> Оно ведь таким макаром не намного сильнее будет тормозить, по сравнению с монгофилософским вариантом?


Так дело в удобстве, а не в скорости
#511 #640480
>>640453
сук, на jsfiddle работает, кажется, проблема не в нем
rage
#512 #640483
https://jsfiddle.net/1snmv57f/
в общем, в этом коде перед вставкой ссылки картинка кэшируется и тут же вставляется ссылка на локальную копию
в чем может быть проблема?
#513 #640484
>>640473

>День?


С этой логикой все более-менее понятно. Другое дело, что в контроллере есть уже функции, которые работают с базой в нессылочном виде. И их придется модифицировать(а я не знаю как, кек), если делать все правильно.

Спасибо за ответы.
#514 #640488
>>640484

> Другое дело, что в контроллере есть уже функции, которые работают с базой в нессылочном виде


Я с монгусом мало работал, но по-моему там прозрачная линковка.
То есть, нет никакой разницы, работаешь ты напрямую с данными в коллекции, или это ссылка на другую коллекцию - всё работает одинаково, пока в модель не посмотришь - не отличишь
338 Кб, 1428x679
#515 #640489
>>640483
А что, собственно, не так?
#516 #640491
#517 #640494
>>640491
И где src пустой?
Тред утонул или удален.
Это копия, сохраненная 17 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски