Это копия, сохраненная 5 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Вечер в хату. Тред не читал. Сам пишу бэк на пиздоне и решил выучить жабаскрипт что бы для разнообразия хуярить на ноде. Все вроде для начала понятно, но мучает вопрос библиотек. Можете дать список самых модных и стильных либ для написания бэка под ноду. Интересует также либы для работы с БД(mongo,postgre,redis). Заранее спасибо
> либ для написания бэка под ноду
Express и Koa сейчас мейнстрим
> либы для работы с БД
> mongo
mongoose
> postgre
sequelize
> redis
http://redis.io/clients#nodejs
Бери express и гугли то, что тебе нужно, например "expressjs authentication" — найдешь все необходимые либы.
Для БД возьми Sequelize.
Один раз засветился на HN и с тех пор о нем ни одной новости — для мейнстрима слабовато. Прото-хипстерская поделка.
Хотя нет, 5+к звезд на жидхабе о чем-то говорят. Надо бы взглянуть.
Но при таком подходе остается возможность, путем анализа кода, понять структуру защищаемых данных (например что в админке виден список ФИО + телефон), структуру закрытых api и т.д - это тоже уязвимость же!
Какие есть варианты ограничивать доступ к исходному коду компонентов, пользоваться которыми у текущего пользователя нет прав?
Ок, а если у нас "админка" (просто некое приложение), а там пользователи с разными привилегиями?
На бэке в зависимости от уровня юзера отдавать тольке те данные которые ему нужны
Если прям так уж критично скрыть представление, то порежь нужные части панели на куски и проверяй роль перед отдачей жс кода требуемой части на стороне сервера
А вообще в таком случае спа теряет всякий смысл
Для жс его не используют?
2. Вообще есть где-нибудь гайд для sublime text 3, чтобы его настроить под js? Проверку синтаксиса, дебаг, консоль какую-нибудь и всё в этом роде.
3. В чём вы пишите на js?
Как организована ваша рабочая среда?
Возьми VS Code, там много что из коробки — статический анализатор, умное автодополнение, emmet, git, дебаг под ноду. Уже год использую его с плагином eslint (встроенный анализ отключит) и горя не знаю. А в саблайм еще миллион плагинов поставить надо прежде чем он нормально забегает.
умеет его eslint сразу линтить и фиксить при сохранении как скажем в том же atom?
Уже думал об этом, потому что перекатываюсь из C# и привык к студии.
но что-то крякнутой не нашёл.
По-моему да, но я не пользуюсь, он в реалтайме же все подсвечивает и я сразу правлю.
>>850064
Он бесплатный и кроссплатформенный. VS Code это не VS.
Думал, Access-Control-Allow-Origin тут поможет, но Mixed content всё-равно во все поля.
Запросы посылаются через XHR, да и этот тред первый открыт был.
>запросы с HTTPS на твоё HTTP
Спрашиваю потому, что, как я понял, браузер в случае AJAX-запроса с HTTPS на HTTP даже этот запрос не делает - просто валит XHR с ошибкой в консоль.
Алсо, нашёл что-то похожее, Content-Security-Policy, но, как я, опять таки, понял, это вообще не из той оперы.
HTTP - мой, HTTPS - сторонний.
С CORS как раз таки всё в порядке, ибо куки не нужны, как и сложные запросы - помогает
> Access-Control-Allow-Origin: *
. Но этот заголовок не помогает с протоколом.
да пашол ты нахой, експресс устаревает и новых проектов на нем все меньше
Коа пиарит один жидоторгаш своими курсами за $, но это тоже такое.
>>849911
Вот этого двачагу, а вообще го набирает обороты если хочется модненький фреймворк
> експресс устаревает
Лол блять
http://expressjs.com/en/guide/migrating-5.html
> новых проектов на нем все меньше
Именно поэтому он второй в топе npm. С чего ты вообще взял эту хуйню, пруфануть чем-то можешь?
> Коа пиарит один жидоторгаш своими курсами за $, но это тоже такое.
Чего блять? Какие ещё курсы? У коа и экспресса один автор - tj
> Вот этого двачагу
Ты sails не видел, что ли? Хоризон абсолютно тоже самое, только ещё облако своё впихнуть хотят
руби и пхп тоже постоянно обновляются, но это ни о чем не говорит
я сужу по it рынку, который постоянно мониторю в силу профессии
Ты не поверишь, он еще и попенсорсный.
Как по мне, VS Code лучше чем Atom.
Не забудь добавить в настройки:
```
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false
```
2.Ставишь вот это по инструкции, https://packagecontrol.io/, потом сам выберешь пакеты которые тебе нужны.
3. Сумблайм, иногда Атом.
Ссори анонче, я это дерьмо уже снёс, он иногда даже пустой без проекты запускается по 10 секунд.
В итоге накатил саблайм, темы под него просто охуенные, накатил несколько визуальных плагинов к нему, автокомплит, проверку синтаксиса, фтп, думаю на первых порах хватит, потом перекачусь на пхпшторм.
Вообще, судя по разным гайдам, урокам, отзывам так и работает большинство сб3 + пхпшторм. Даже с плагинами сб3 номрально открывается и не тормозит, выделение памяти вообще маленькое.
https://www.decosoftware.com/
оттуда надо спиздить весь каталог и поиск по нему, дабы вставить в свой сайт. Как это сделать? В /web/ не отвечает никто, лол
А как ты развлекаешься, /pr/? Потом ещё Switch напишу, ибо намного сложнее.
пропитонить надо
Спасиб.
Пикчу скинь пидор.
Спасибо няш :3
Грубо говоря, у меня в одной папке лежат файлы index.html, script.js, text.txt. Нужно чтоб при открытии index.html скрипт автоматом подтягивал текст на страницу. И чтоб можно было его изменить и сохранить в text1.txt.
Не совсем понял. Я имею ввиду, если файлы локально все находятся. То есть работать без интернета, а чисто на компе.
Через браузер нельзя, такая политика безопасности. Смотри в сторону всяких штук, вроде Electron
Request + Cheerio
Т.е. запускается приложение, сканирует все файлы в папке /plugins, и, если есть в них точка входа, загружает в память, при этом методы из плагина становятся доступными для приложения. Чтобы достаточно было закинуть новый скрипт в папку, реализующий, например, поддержку нового формата для экспорта данных, и не править нигде более исходники и секции импорта.
>запускается приложение, сканирует все файлы в папке /plugins, и, если есть в них точка входа, загружает в память, при этом методы из плагина становятся доступными для приложения
Ты только-что сам всё написал.
А в рантайме такое провернуть можно?
Чтобы был "хотлоад" модулей?
У меня сорт оф архитектурная проблема, лол.
Я не пойму, куда загружать импортированный плагин/модуль.
В глобальный массив, например? А оттуда дергать методы, обходя forEach'ем?
Или в объект засовывать, создавая ключи по имени загруженного файла.
Есть ли какие проекты с примерами подобного, где импорт модулей не зашит в исходник жестко.?
>А в рантайме такое провернуть можно?
Ты какой-то странный. Нода и так загружают все в рантайме.
>>850530
Какой-то ты пиздец поехавший. Есть npm, он грузит всё в папку node_modules. Для динамического подключения модулей-плагинов к твоему модулю ты можешь обходить папку и искать названия модулей с определенной приставкойmodulename-plugin-*, и подключать эти плагины.
Но это пидорство, и так делают только конченные уёбки, потому что это нихуя не очевидно, и установка плагина обязует тебя его использовать.
>где импорт модулей не зашит в исходник жестко.?
Ты больной ублюдок. ты знаешь об этом?
Ты понимаешь, что зашитый импорт модулей о котором ты говоришь, это блять просто функция. Ты можешь сам ее написать, как тебе угодно.
Ты вообще головой сука умеешь думать? Неужели не способен предстваить в своей голове порядок загрузки и выполнения кода из файла? Нахуй ты вообще пришел писать на этом языке, мудак?
Читаем файл. Тебе сука рассказать как читают файлы с диска?
Евалим считанную строку. Ты мудак понимаешь, что такое евал?
Но если ты настолько дибил, что не умеешь додуматься до таких блядь очевидностейЮ то рассказывать тебе о то что эвал в лоб это хуево, и надо сначала скомпилировать прочитанную строку с помощью созданной vm, и потом выполнить когда нужно и в каком нужно констексте.
Иди нахуй, блядь. Просто иди нахуй
Точка входа у него, сука. Методы по форич.
Поприходят со своим недоразвитым сознанием из хуй пойми каких языков, а потом бегают кричат, что тут все неправильно и непонятно.
Магл ебаный.
Речь не о модулях, подтягиваемых из npm реестра шла, хоть это и не особо принципиально.
Суть в том, что есть главскрипт app.js, висящий в памяти (демонизированный, лол) и выполняющий обработку данных, и есть папка plugins, в которую я кидаю скрипт, дополняющий функционал главскрипта, например, export-pds.js. Я понял, что можно подписаться к ивентам из fs.watch(), поэтому, как только я заброшу в папку plugins новый скрипт, app.js будет в курсе и зареквайрит его.
>>850575
Что ты так разбушевался, няша? :3
>Ты понимаешь, что зашитый импорт модулей о котором ты говоришь, это блять просто функция. Ты можешь сам ее написать, как тебе угодно.
Да.
>Читаем файл. Тебе сука рассказать как читают файлы с диска?
>Евалим считанную строку. Ты мудак понимаешь, что такое евал?
Зачем все это, если за меня это сделает require?
"Точка входа" - не более, чем аналогия с dll'ками.
В моем случае это может быть некое экспортируемое значение из js-плагина, просто для того, чтобы левый js файл в папке plugins не импортировался.
В принципе, все что я искал, уместилось в один сниппет:
https://coderwall.com/p/cmz24w/node-js-code-snippet-dynamically-load-all-javascript-in-a-folder
Просто хотелось посмотреть более развернутый вариант такого подхода. "Бест практиклз", если изволите.
> Я понял, что можно подписаться к ивентам из fs.watch(), поэтому, как только я заброшу в папку plugins новый скрипт, app.js будет в курсе и зареквайрит его.
Но зачем так делать? Чем тебе так принципиально подтягивание плагинов без рестарта?
Ладно, без абстракщины.
Я написал плугинизированный парсер нескольких сайтов. Причем, плагины - и есть экстракторы данных, которые триггерят ивенты опосля завершения своей работы и экспортируют данные в унифицированном виде, а главный скрипт подписывается на эти ивенты и уже выполняет окончательные мероприятия с извлеченными данными.
Все работает, но мне не нравится ситуация, при которой приходится все время править app.js чтобы зареквайрить новый плагин-парсер.
>Чем тебе так принципиально подтягивание плагинов без рестарта?
Да ничем, в общем-то. Это уже просто изъебство, но знания о том, как это сделать лучше, не помешают.
Они ведь писались с try-catch, так почему нет метода .finally, блять?!
Анон, ты понимаешь, насколько нужно быть долбоёбом, чтобы проебать такую годную фичу?
Из-за этого только и не перевожу все AJAX'ы на fetch - некуда пилить функцию .onDone, сука!
>чем он лучше .then?
Ну хуй знает.. например тем, что он будет срабатывать в любом, блять, случае?! Вне зависимости от состояния.
И кстати, .finally мог-бы полностью останавливать Promise - если вызван метод, значит, дальше ничего вешаться не должно.
В ready(); происходят чики-брики с использованием jQuery.
Только вот ready(); вызывается раньше, чем успеет загрузиться сам jQuery. В хроме и опере такого нет.
Тем не менее, $(window).on('load',) я использовать не могу, потому что на странице тонна говна, которая никогда не прогрузится. Есть какие-нибудь опции?
Есть пример:
http://dnzl.ru/view_post.php?id=271
Он выводит элементарные два значения из БД.
Как эти значения можно вывести в виде таблицы?
Например две колонки, шапка и снизу два этих значения.
Когда вставляю HTML код, он не выводит вообще никаких значений.
Заметил, что если написать
$(window).on('load', alert('loaded'));, то все работает.
Но если написать
$(window).on('load',function () {
alert('loaded');
});
То сразу перестает.
Чоза хуйня?
Спасибо добрый человек
Сможешь обьяснить что такое Аксессоры и атрибуты свойств и побыть моим сенсеем на некоторое время ???
1. Ты вешаешь обработчик на событие onLoad. Оно выстреливает, когда страница совсем-совсем загрузилась, загрузились все скрипты, все стили, все картинки по 10Мб. Если тебе нужно событие готовности DOM, то в jQuery это $(document).ready
2. На самом деле твой
$(window).on('load', alert('loaded'));
нихуа не работает. Следи за руками:
alert - функция.
alert('loaded') - результат вызова функции с аргументом 'loaded' (вызов происходит в момент "первичного" исполнения скрипта, непосредственно после его загрузки).
Читани, что такое callback
Например есть страница, там 5-10-20 статей с содержанием (изначально скрытым), тайтлом и кнопочкой, по нажатию на которую раскрывается содержание.
Подробно разжевывать не прошу, просто намекните, я тупой.
3 строки на jQuery и в продакшн (обработчик вешается на контейнер офкорз)
Нахуй redux не нужен тут.
я знаю что такое get
Да я понимаю. Я засунул весь свой код в on('load',), он работает, но опять же, не в фаерфоксе.
Затем я засунул функцию в рекурсивный setTimeout, который проверяет, загрузился ли jQuery.
Все заработало, но затем я убрал alert('Не работает') из случая, где jQuery не загрузился, перед запуском нового таймера и alert('Заработало') из случая, где он загрузился и попер мой код и код снова перестал работать., функция просто рекурсивно ждет и потом выполняется, jQuery не подключается при этом.
Затем я вставил алерт в удачный случай, ничего не происходит.
Но стоило поставить алерт в неудачный случай, как после вывода алерта из неудачного слуая все заработало как магия! Убрал - перестало работать. Вставил обратно - работает.
Чо
за
хуиня
Сидел я долго, сычевал, не знал, чем же мне заниматься в будущем. Вот, решил научится быдлокодить. Пробовал учить руби, но не пошло. Да и чувствовал, что не то учу.
Вот, подумал, что жаваскрипт — то, что надо.
Итак, я полный нуб, ньюфаг и лох.
Вот, взял я пару книг из фака. Начинаю читать и сразу же не понимаю, где мне пробовать писать код и смотреть на его результаты.
В руби когда пытался въехать, писал в текстовом редакторе с подсветкой кода, выполнялись "проги" в командной строке.
Реквестирую мини-гайд для совсем лохов и слоупоков: как начинать учить яваскрипт, что для этого требуется (в смысле книги, инструменты). Спасибо.
скинь код свой, в котором не работает
Например есть объект, мы хотим вывести в консоли все его содержимое.
var betman = {
firstname: 'Brus',
lastname: 'Wayne',
getAll: function(){ return this.firstname + ' ' this.lastname
}
Делаем for:
for (var prop in betman) {
console.log(prop + ":" + betman[prop]})
}
Вот так выводит что надо. Вопрос почему пишет undefined: undefined если поставить betman.prop? Ведь по сути это объект и мы можем достать его через точку? А с квадратными скобками кажется только массивы перечисляются. Или я запутался где то?
Во-первых, забудь блядь про for in
Во-вторых, у тебя в переменной prop название свойтсва в виде строки. Т.е. мы обращаемся не к самоу batman.prop а например к batman.firstname . prop == 'firstname'. И вот чтобы можно было обратиться мы и должны использовать типа вычисляемое свойство
при for in нужно делать проверку hasOwnProperty, пушо оператор in тянет поля и из прототипа тоже.
юзай for of. вот этот итерирует нормально, базарю
$("#comment_list").on("click", ".reply", function(event){
event.preventDefault();
var form = $("#comment_form").clone(true);
if ($(this).children().find(form).size()) return $(form).slideToggle('slow');
form.find('.parent').val($(this).parent().parent().attr('id'));
$(this).parent().append(form);
});
});
Как клонировать объект только 1 раз? а то куча форм вылезает на каждый клик
>о пользе Jquery
Если ты из 2003 - годный способ найти что-то на странице.
Если ты из 2014 - годный способ сделать всё кроссбраузерно.
Если ты хуй клал на старые браузеры, то jQuery тебе нужна только чтобы брать некоторые функции из исходников.
Может быть тебе для начинала стоит начать с изучения html и css? А так, почитай learn javascript ru - тут хорошо разобраны основные моменты.
>как начинать учить яваскрипт
Как говорится в FAQ, начинать нужно строго с learn.javascript.ru - лучше учебника "с нуля" ты не найдёшь от слова совсем.
>что для этого требуется
>книги
Книги нужны будут когда выучишь основы. Тащемта, лично мне немного понравилась "JavaScript: Шаблоны".
>>что для этого требуется
>инструменты
Смотря под что будешь изучать.
Если это будет клиентский JS - тебе хватит годного браузера типа Огнелиса или на крайний случай Хрома. Хотя браузер сойдёт и на время изучения основ самого языка, до распределения на серверный и клиентский.
Если это серверный или прикладной JS - установи себе NodeJS и пользуйся консолью.
Огнелис же лучше хрома в плане новых стандартов. По крайней мере, ES-стандартов.
Хммм, и правда.
Когда я впервые услышал про const, фича уже была в FF, но отсутствовала в Хроме.
Когда тестировал деструктуризацию - тоже самое.
И стрелочные функции.
Ну и ладно, это хорошо.
клитор сцука, ты заипал уже пиарицца.
Учебников годных много, если человек не может в англ, то тут уже ни какие твои учебники не помогут.
А нахуя ему читать учебники на английском, если есть нормальные альтернативы?
Это как вместо MDN и е.п. полностью читать документацию к фиче ради порядка параметров.
Во первых не пустой. У объекта созданного литералом {} аж целых два протопипа по умолчанию, как минимум! это null и Object.prototype
Во втоорых, уверен ли ты, что в рантайме в котором ты будешь запускать скрипт, цепочка прототипов не изменена и объекту Object.prototype не подсунуты ПЕРЕЧИСЛЯЕМЫЕ свойства? или что между Object.prototype и null в цепочку не вставленна еще сотня другая объектов?
Во-вторых, тот анон забыл сказать, что из цепочки прототипов вернуться только перечисляемые свойства. Свойства с аттрибутом enumerable:false не вернуться. Собственно, они и из твоего объекта
не вернуться, если они не перечисляемы.
Еще, для получения имен свойств объекта (как всех, так только перечисляемых), есть специальные методы Object.keys и Object.getOwnPropertyNames.
>оператор in тянет поля и из прототипа тоже
Будто что-то плохое. Не нравится - делай numerable: false в дескрипторе, блять!
Она же тогда исчезнет снизу, не? Мне нужно, чтобы она и с низу оставалась, и под комментом.
Тогда клонируй сразу в .ready(), если она точно понадобиться.
Создай ее клон заранее, и помести в нужное место с display:none, а в обработчике просто показывай ее, когда надо.
Обертки для всего и вся. Удобный ajax, теперь и в промисах. Короткий в записи и быстрый поиск через разные селекторы.
// инстанцируем класс
const pluginLoader = new PluginLoader('plugins');
// загружаем плагины
pluginLoader.preLoad(console.dir);
// включаем хотлоад
pluginLoader.hotLoad(console.dir);
ХЗ, правда, зачем я это сделал, но работает как надо.
А ты неплох. Запили на GitHub потом.
Ищу так $('tbody tr') строку на каждой итерации, как дальше, средставами jQuery (без getElementsByTagName) найти вторую ячейку в этой строке?
Давай, по делу говори. Each не подходит, если что.
Одно дело, когда приходят за помощью в неочивидных вещах, или для понимания каких-то принципов. Другое, когда, блядь, спрашивают о том, что гуглится быстрее, чем ожидание ответа итт.
> 2016
> Гуглить на русском
Проиграл.
> Найти третий элемент таблицы
Да ты и на русском гуглить не умеешь.
>Object.values
Я только после твоих слов вспомнил, что пора обновить ноду.
Но даже последняя стабильная поддерживает O.values() только с флагом harmony.
Посоветую убиться головой о стену, если ты до сих пор не умеешь составить css селектор, который сразу тебе выберет все вторые ячейки каждой строки таблицы.
ОЧКО РАЗРАБОТАНО
Дратути!
Абсолютно не шарю в вебе, но очень нужно маленькую задачку решить, какзалось бы, такую простую, но такую сложную для незнакомого с вебом.
Допустим, имею ссылку в 1С на судебное дело на сайте arbitr.ru, например, http://kad.arbitr.ru/Card/f751e0b7-5cf8-4c10-9843-4f02c640120c . Нужно нажать на странице этой ссылки на кнопку "Электронное дело" , и скачать (по сути получить ссылки на) все pdf'ы из появившегося списка. То есть, имея ссылку на судебное дело, нужно получить ссылки на все pdf'ы из него
Адрес страницы, зараза, при этом не меняется, иначе проблемы бы не было, я бы просто в html-коде нашёл алгоритмом ссылки на pdf'ы.
Помогите пожалуйста, чем могёте.
Мне уже дали совет типа автоматизировать действие - кликнуть на кнопку. Но это, выяснилось, означает, что прямо перед глазами пользователя запустится бровзер, там что-то будет происходить, а мне бы очень хотелось без запускания бровзера, как бы запросом к базе на сервере чтоли, где эти pdfы хранятся, или к сайту, что-то типа как тут:
https://toster.ru/q/284736
http://infostart.ru/public/527228/
Возможно ли прямо из 1С post-запросом или типа чем-нибудь таким? CasperJS ведь запустит бровзер перед глазами юзера?
И как я добавлю туда РАЗНОЕ? Нельзя же запихнуть в аппенд массив, прокручивающийся однорвеменно с селектором.
Анон, помогите тестануть функцию для определения JSON:
. По мере допиливания буду кидать сюда новые ссылки.
Сейчас интересует вызов типа
> '123'.isJSON();
, ибо только-что попробовал написать регулярку для определения цифр в JSON-формате. Кажется, получилось, ибо мои тесты она прошла.
Анон, протестируй функцию, желательно пока-что с ударением на цифры. Если что не так - пиши :з
КУРСЫ сука. Он проходил КУРСЫ.
КУУУУРСЫ.
Наглядный пример квалицифкации специалистов от КУРСОВ
Каких специалистов? Я вообще первый раз в jquery столкнулся, потому что в ебучем tampermonkey то, что мне надо сделать, средствами жаваскрипта не будет работать.
Двачую этого.
Случайно ответил.
Нет, единственнное что мне вебщик с зп 145К сказал - на питоне автоматизируй
Точная фраза: "питон, селениум, пип - и вот тебе счастье для написания парсера"
API я не знаю, и Питон не знаю:(
Анон, помогите тестануть функцию для определения JSON:
. По мере допиливания буду кидать сюда новые ссылки.
Сейчас интересует вызов типа
> '123'.isJSON();
, ибо только-что попробовал написать регулярку для определения цифр в JSON-формате. Кажется, получилось, ибо мои тесты она прошла.
Анон, протестируй функцию, желательно пока-что с ударением на цифры. Если что не так - пиши :з
Ты ведь настолько тупой, что даже не можешь понять, что ты тупой.
То есть вот в твоем стартовом сообщении, ты СУМЕЛ как-то пройтись по коллекции выбранных тобою строк, и спрашивал,к ак в кажой выбрать вторую ячейку.
За тебя, блядь, написали тебе селектор, которыцй сразу тебе дает все вторые ячейки. Но ты настолько ТВЕРДОЛОБЫЙ ИДИОТ, что не можешь пройтись по ним так же, как проходился по строкам, которые выбирал сам в начале. Ты даже название метода блядь знаешь и сам его писал выше.
Скажи, как ты живешь таким?
Ну вот, например, создают две одинаковые кнопки:
$('#form').append('<button type="button" class="select" id="myButton">Выделить</button>');
document.getElementById('form').innerHTML+='<button type="button" class="select" id="myButton">Выделить</button>';
$("#myButton").click(checkAll);
Одна будет работать, вторая - нет.
>tampermonkey
>не уметь в @require
Ты такой дебил, что просто пиздец. Иди нахуй отсюда, блять, средний IQ по треду падает.
Селектор выбирает все ячейки, таким образом, решение, предложенное аноном с моим циклом будет на каждом шаге к каждой втрой ячейке прибавлять что-либо.
>>851180
По ксс-селекторам? html academy.
>>851184
$("#myButton") будет только на один элемент действовать?
Ты такое ничтожество, что мне тебя даже жаль.
потому что этому телу надо было именно на jq блядь. Написал бы я ему нормально - он бы сказал: "Но я же просил на jq, сука"
замыкание - функция, которая видит только аргументы той функции, в которой она живет.
Зачем тебе вообще программирование, если ты даун? На learn.javascript.ru всё разжевали, уёбывай.
http://boot2webkit.org/
http://meta.nuanti.com/
В гугле что ль забанили?
> Nuanti announces Boot2WebKit Operating System initiative
Ты тут конкретно всех уже доебал, что он тебе сделал. на деньги кинул?
>>851246
Спасибо.
В общих чертах конечно понятно, что замыкания — функция, которая получает ссылку на функцию, в контексте которой была создана, вместе со всеми её аргументами, но когда доходит до конкретных примеров реализации — понимаешь, что нихуя не понимаешь.
Ну да ладно, и на том спасибо
Любая функция будет видеть аргументы функции, в которой она объявлена. Тут дело не в специфичности в области видимости переменных в жс, а в сохранении контекста функции после ее вызова и возможности доступа к нему.
>>851225
Если ты и вправду даун, то изучение у тебя займет довольно много времени. Замыкания это средство для инкапсуляции, причем не сильно удобное и понятное. В ES6 есть средства которые делают это лучше. Пока ты будешь разбираться со всякой хуетой она уже морально устареет.
> которая получает ссылку на функцию
Не совсем. Поиск переменной идет вверх по уровням областей видимости. Если ты обращаешься к переменной, которая обявлена во внешней функции, то эта переменая остается доступна даже тогда, когда ее функция уже отработала.
А еще есть скомпилированные блоки кода с возможностью выполнить их в кастомном контексте.
> Пока ты будешь разбираться со всякой хуетой она уже морально устареет.
Ты предлагаешь ему писать на JS, не понимая замыканий и контекста вызовов? Может ты ещё скажешь, что прототипы изучать не нужно, ведь есть ES6? По-моему, если у человека туго с мозгами, то пусть не лезет в программирование. Другим программистам меньше говна разгребать.
Ебать дибил, просто пиздец.
Скажи мне, что ты троллишь, прошу..
строки - примитив, .replace возвращает новую строку
У него жеж буфер - это просто именование функции, а не истинно арийский Buffer.
Misleading название, согласен, что-нибудь типа clipboard лучше бы подошло.
Нифига, полностью как работают если новичек - хер проссышь, пока с прототипами не уяснишь
Да, это зашквар. В продакшене нужно юзать нормальный хендлер ошибок
Насколько прост в освоении?
Какая инфа по нему более толковая?
Но он же уже устарел.
https://ideone.com/0XIC91
иди читай заново Кантора или Клитора как говорил заебавший всех анон
Но поскольку тебе будет скорее всего лень лови ссылку. Только читай внимательно
http://learn.javascript.ru/basic-dom-node-properties#innerhtml-содержимое-элемента
мимо
Ну ясен пень от javascript не избавиться,но если использовать языки компилирующиеся в него?
Хороший фреймворк особенно для тех кто еще не работал с фреймворками. Не слушай мамкиных диванов в этом треде, на нем все то пишут проекты, он все то обновляется (20 дней назад судя по гитхабу).
Самое забавное, что все вкатывальщики бросились сейчас за реакт, хотя толком ни жс, ни другие фреймворки не знают и даже понятия не имеют как там все работает и почему.
Смотря какой Ionic, Ionic Native очевидно лучше, из-за производительности. Правда не знаю, на какой стадии он сейчас находится. Еще React Native, самый мейнстрим.
Так открой список языков, компилирующихся в жс, отфильтруй те, которые тебе не нравятся, а для оставшихся поищи $langName + react-native.
Вангую, через пару лет всех заебут горы фреймворков и библиотек и все перейдут на Elm, Purescript и подобное.
Не надо говорить за всех, окей? Самого раздражает когда люди толком не научились писать на ванилле, но лезут во фреймворки. Но вот чтобы садиться за реакт вообще не обязательно разбираться в том же бэкбоне.
Языки и библиотеки/фрейморки — понятия ортогональные. В любом языке найдется хотя бы два стула. В PureScript есть Pux, React и Halogen — на какой сам сядешь, на какой вкатывальщика посадишь?
Пиздец ты хипстор.
Сам-то на Эльме пишешь или просто выебнуться решил, мол, "смотрите какой я нихуево прогрессивный, на блидинг эдже технологий нахожусь, а вы все быдло"?
"за" -- во многих зарубежных вузах computer scienceты изучают little shemer и sicp, а также трогают хацкель.
Но функциональнщина это дело такое, не всем по душе. Скорее уж webassembly придет и порядок наведет.
Только как он наведет порядок? Браузерное API принципиально не поменяется, ассемблер даст лишь некоторый прирост в скорости, который не повлияет на то, как ведется разработка.
Для использования иных языков в вебе уже все есть.
Или же почему первый вариант тогда срабатывает?
http://plnkr.co/edit/Ja7DvpRqcZACSE7Nsisw?p=info
Ой всё, лол. Надо было дорешать все задачи до конца. Короче, если внутри скобок находится вызов метода объекта, то скобки как бы ничего не решают, если под скобками иное выражение, вроде тернарного оператор, то контекст вызова не сохраняется. Часть спецификации, нужно просто принять.
Хуево зделоли на мой взгляд, не знаю где это может пригодиться, больше похоже на ляп проектирования.
Интересный вопрос, пришлось лезть в стандарт.
Краткая суть: синтаксисически "выражение" и "(выражение)" являются равноценными.
Если интересно, можешь найти описание PrimaryExpression в ECMA-262.
В пятой версии есть пояснение:
>The principal motivation for this is so that operators such as delete and typeof may be applied to parenthesised expressions.
Почему это нужно для delete понятно. Почему без этого не должен работать typeof мне не ясно.
И в чем тут ляп? Есть референс, пока он не ресолвится - контекст не теряется. Вроде все норм.
Поясните, флексбоксы все еще зашквар юзать или уже можно?
IE8 без поддержки, 11 с багами.
У верстальщиков свой загон в воркаче.
Пробовал делать через XMLHttpRequest:
var check = new XMLHttpRequest();
check.open('GET', url, true);
check.onreadystatechange = function() {
if (check.readyState == 4) {
if((check.status == 200) || (check.status == 0)) {
document.location.href=url;
check.send(null)
}
}
};
check.send(null);
Но вот только эта асинхронность ёбаная не работает нихуя. А синхронный вариант работает, но он deprecated. Как можно запилить периодические проверки до момента когда документ по url станет доступен?
Иди на codewars и решай задачи. Если придумал решение, оно проходит тесты, значит решил задачу.
Ну тут ты загнул. Хаскель и лисп никуда не денутся и проекты на них будут, но жс скорей всего пойдет в сторону ооп, т.е type script.
Ты епанутый сцуко((
Для того чтобы писать хуйню на реакте/первом ангуляре вообще можно жс не знать. Просмотреть мельком клитора как местные долбоебы делают и идти устраиваться разработчиком реакта, лол. Хули, есть стаковерфлоу и оттуда копипасть ума не надо.
Какой смысл первого ангуляра сейчас?
Хочу сделать себе админку для джангопроекта через rest на реакте.
И что же такое функции?
пшшш ясно блять..
Бери учебник и занимайся по нему нормально. того же Клитора, тьфу, Кантора или еще какой-нибудь с упражнениями. Можешь задачки порешать как тебе уже советовали. Ты судя по всему еще ниче и не знаешь толком.
ну расскажи что я должен знать чтобы уже норм писать код ????
так то я у него и учусь вот там я и основы прошел js. Недавно открыл data чтобы посмотреть что да как, после этого как ты знаешь есть задания которые я низуя не решил ну только легкие....
Я новичок, и ещё не дошёл до всяких промисов(хз подходит он тебе или нет), но из того, что уже прочитал может попробуешь через setInterval проверять? Ну или рекурсивный setTimeout?
Я мартышка, я только на jQuery умею. Попахивает ебаными костылями, но по идее таким образом можно пингануть че угодно.
https://jsfiddle.net/7zex9b3f/
А что пишет по поводу асинхронного XMLHttpRequest ? Оно же не просто так не работает?
простой способ - это заюзать таймер. Если у тебя есть доступ к серверу, то наверное можно лонг пулинг на клиенте сделать.
>>851728
>>851774
Всем спасибо. Иногда бывает полезно почитать доки. Асинхронно у XMLHttpRequest на один запрос приходит только один ответ, т.е. onreadystatechange срабатывает только при смене readyState на 4, что происходит один раз за запрос. Когда разобрался сделал функцию, которая через setInterval() раз в 30 сек делает .open() и .send().
Если кому интересно - вот код http://pastebin.com/H9s9dF1P
onreadystatechange срабатывает не только на 4, а на стейты 0-4 (т.е. эвент сработает 4 раза, просто ты в скрипте ловишь только стейт 4, которая сигналит за конец запроса)
Я его только учить начал, прикольная штука, рекомендую, очень простой и понятный язык.
Еще собираюсь освоить Progressive Web App, буду на блиндинг эдж технологиях, а вы все быдло.
Ну я просто сначала думал что оно срабатывает не на .readyState, а на .status и при этом мониторит его непрерывно, а не один раз после подключения.
Как из числа получить массив чисел? Например, есть 123, а получаем [1,2,3]. Пробовал split но почему то не работает на числах. Array.from выдает [] пустой массив.
Я хочу сложить сумму чисел числа, для этого и хотел массив. Если с toString складывать то вместо 6 (1 + 2 + 3) получится "123"
Не-не-не. Докастовывать не надо.
Прочитай про приведение типов и делай сумму цифр чисел тем методом, которым собирался изначально.
Выебываться и решать в одну строчку потом будешь.
UI ->
mapDispathToProps(dispatch) ->
Action ->
{ middleware enhancers } ->
{ type: CONST, payload: {} } ->
Reducer ->
{ rootReducer } ->
Store ->
{ state } ->
mapStateToProps(state) ->
this.props ->
const { reducer } = this.props ->
UI
Обычно литература по ES6 базируется на прошлых версиях ES и поясняет за изменения. Если найдешь литературу с нуля поясняющую за ES на основе ES6, то да, в принципе можно игнорить, но стандарты я советую всё же прочесть, чтобы понимать что/как и почему именно так
Так ведь reduce вместо map b ltkj c rjywjv/
Только вот обострется оп, когда заебашит таким образом число с переполнением.
Да, reduce, нужен.
Но не было вопроса как посчитать сумму с помощью метода массива, был вопрос как получить массив цифр числа trollface
И вряд ли работа с экстра большими числами в JS такая частая ситуация. Ну... по крайней мере на фронте.
ребзя, такой вопрос.
они тут всё усложняют и в любом языке можно найти столько, эээ, тонкостей, или на самом деле всё так?
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.qs3x3of86
Не читай подобных хуесосов.
Они зачем-то перечисляют кучу технологий, чтобы создать видимость беспорядочности и сложности. Им, видите ли, не нравится, что есть выбор среди нескольких инструментов для одной задачи.
В любом языке есть простое ядро, которое можно выучить за час. Этого ядра достаточно, чтобы писать рабочий код.
В то же время, в любом языке есть куча инструментов, которые позволяют не просто писать код, а делать это продуктивно.
И никто не говорит, что для всякого проекта требуется обмазываться всеми технологиями сразу. Для пары кнопок хватит jQuery. Проект становится сложнее — усложняется и стек. Это происходит в любом языке.
И зачем я злоупотребляю квантором всеобщности?
Я же не про экстра большие числа как таковые, а про его ебанутое жедание, получать массив чисел именно из числа, а не из строки например.
С определенного момента число с большим количеством знаков у него не приведтся к строке, как он этого будет ожидать, там будет экспонента
Ну кстати если стоит задача посчитать цифры числа, то форма записи не сильно принципиальна, так как E23 - это всего лишь 1 с 23 нулями. То есть нужны цифры до "е" единичка после.
Но таки да - одним приведением к строке уже не обойдешься.
*посчитать сумму цифр.
>Блять, пытаюсь осилить дом на лернджаваскрипт
Но зачем, лол.
Пусть манипуляциями с домом займется Реакт лучше сразу приучать себя мыслить в компонентном ключе, а ты сконцетрируйся на логике работы своего приложения.
Вот этот >>852027 дело говорит. Я тебе вообще советую записываться на курсы по жс (наверху нажми на курсы). Начни с базового, потом возьми по реакту или ангуляру. Сейчас запустили курс по второму ангуляру. Если пройдешь первую часть и курс по тайпскрипту, то получишь скидку 3 тысячи.
>Пусть манипуляциями с домом займется Реакт
А рефакторингом всего кода после тебя для серверного рендеринга - Вася. Или СЕО нинужна.
>Или СЕО нинужна
Exactly. Етаму миру не хватает человеко-ориентированного контента. SE-optimised говна уже наелись, спасибо.
Для серверного рендеринга манипуляции с домом тем более не нужны.
Для нормального компонента просто делаешь renderToString, добавляет дегидрацию/регидрацию — и никакой рефакторинг не требуется.
Поясните что за серверный рендеринг? Это типа бекенд не нужОн?
подскажите годные библиотеки наподоби typescript, чтобы и на жс писать и опп использовать нормальный
Кроме Mootools нет ничего, что ООП реализует. А, ну redux еще в плане отправки сообщений.
Вы - моя последняя надежда.
Такая проблема, есть выпадающее меню, реализованное с помощью hover display:block. Проблема в том, что на мобильных девайсах меню появляется если тапнуть по нему (указателя мыши то нет). И не исчезает если не тапнуть по любой другой области страницы. Хотелось бы, чтобы по тапу на любом из пунктов меню - оно таки исчезало (ссылки на якоря, страница не перезагружается). Но для настольных платформ с мышью, оно продолжало реагировать на наведение курсора.
Как это это можно реализовать?
Посмотрел бы я на тебя, как ты ядро плюсов за час выучил.
Да что там ядро, хотя бы синтаксис и семантику.
Ты имеешь ввиду обработчик onclick? Но тогда оно не будет появляться при наведении на нее курсора, после первого клика.
css:
.nav:hover {display: block}
js:
document.getElementById('nav').onclick = function() {
var elems = document.querySelectorAll('.nav li');
for (var i = 0; i < elems.length; i++) {
elem =elems;
elem.style.display='none';
};
}
Как решить данную проблему?
быстрофикс .nav li:hover {display: block}
Ну-ка запили вместе с куском разметки своего меню на какой-нибудь нормальный сервис
Господа, как сделать так чтобы после нажатия кнопки страница обновлялась?
Ну например я ввожу что-нибудь в строку, жму далее, на том же экране следующее поле и тоже кнопка далее, одностраничное приложение типа. Подскажите, если не сложно. Гугление пока ни к чему не привело.
Господа, как сделать так чтобы моя копейка могла ездить от электричества?
Ну например я еду такой по трассе, у меня заканчивается бензин, а по близости только электрозаправки и я могу запитаться от них и ехать дальше, электромобиль типа. Подскажите, если не сложно. Гугление пока ни к чему не привело.
лол
Ядро плюсов — это функции, указатели и классы. Если ты совсем нюфаг, ни за час, ни за 21 день ты их конечно не изучишь, но если ты уже умеешь создавать работающие программы — написать первый факториал сможешь за 20 минут.
STL — это уже jQuery. Boost — это уже lodash, Qt — это уже Angular; темплейты и прочие плюшки языка — это уже магия. Ядро цэпэпэ не включает в себя весь стандарт.
location.reload()
Не понял только зачем тебе обновлять страницу если нужно только обновить отображаемые данные после нажатия кнопки?
Почти, нужно чтобы меню продолжало реагировать на наведение курсора. Как совместить onclick и mouseover/mouseout(:hover)? Может быть определять девайс юзера, и для мобильных использовать обработчик onclick, а для настольных (с мышью) mouseover/mouseout(:hover)?
Лучше бы ты в самомнении был такой ограниченный.
>>852324
Тебе вот такое нужно?
https://codepen.io/anon/pen/vXdAra/
Вот статья про эту идею:
https://www.smashingmagazine.com/2015/12/reimagining-single-page-applications-progressive-enhancement/
Загугли события js и как менять стили с помощью js. Как это применить, чтобы решить твой вопрос я надеюсь у тебя хватит воображения.
Не вздумай делать кучу маленьких страничек с одним полем и кнопкой, иначе один южноафриканский котик умрет.
Спасибо, но я написал только оригинальный вопрос и вот этот >>852334 пост, остальное - шуточки мимокрокодилов.
Если что - делаю тестовое задание на червя-пидора-стажера-php, в числе прочих задач просят и одностраничное приложение сделать хоть просто на js хоть с фреймворком. А я js даже не касался в своем самообучанстве, поэтому гуглю.
Что можно рандомное js говно впарить в качестве тестового.
Меня просили шаблонизатор пилить хотя тут эскобар.жпг
Ангуляр почитай. Я думаю они оценят, если сделаешь что-нибудь на ангуляре. Прочитать доки по англяру тебе будет проще, чем пробираться через дебри багов и костылей твоего велосипедного одностраничника (тем более если ты раньше такого не делал)
Я еще не знаю что можно и что нельзя впарить, мб я отправлю им задание, а они еще и собеседование проведут чтоб прям при них фейсбук написал.
Вообще, если честно, я слегка прихуел от того сколько всего нужно знать и уметь чтоб вкатиться. Опасаюсь что даже если и возьмут на стажировку, то с позором выгонят через неделю, и потом детям и внукам еще через 50 лет будут байки травить как к ним пришел нулевый вася.
Не парься, не будут над тобой угорать. Ты же на червя-пидора-стажера идешь устраиваться, а не на мидла или сеньора-помидора.
Будет сложно, но ты главное не аутируй где-то в уголке, а заебывай вопросами более опытных коллег, делай что говорят и всё будет заебись.
Тебя специально берут нулевого чтобы обучить и ты мог работать как джун-мидл за копеечную цену (или почти не копеечную, если ты у мамы биллгейц, но я что-то сомневаюсь).
Короче, без навыков на реальный проект тебя не пошлют, так что всё норм. Научат, станешь суровым погромиздом.
Спасибо за поддержку. :)
Скажите мне, зачем используют реакт?
Пару дней назад с ним столкнулся, пока только рвотные позывы. Может, надо упороться чем-то?
Умею в ангуляр, бэкбон и нокаут.
Я не троллю, но вообще, совсем, абсолютно не понимаю, как можно сравнивать реакт хотя бы с нокаутом, не говоря уж про реакт vs божественный ангуляр...
Ну что ж ты за пидор неумеющий в гугл.
1.Ставишь webstorm (блокнотопетухи включают sublime text)
2.Открываешь доки по ионику и ангуляру
3.Пишешь свой отстой пидорский
3.1.Ставишь плагины если нужен доступ к каким-нибудь штукам типа камеры
4.Билдишь всю эту хуйню
5.Смотришь какого хуя все тормозит
...
7.Уебываешь в пхп
Реакт и правда парашный. Концепция у него хорошая, а вот реализация полнейшее говнище. Дропнул его после месяца мучений в сторону angular2
> Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://stackoverflow.com" from accessing a frame with origin "http://localhost:3000". Protocols, domains, and ports must match.
Раньше я думал, что политика безопасности для внешнего скрипта определяется его доменом, но походу все выполняется в рамках первоначального домена. Так ли это?
И как в моей ситуации лучше поступить?
Да реакт просто пиариться сейчас активно, вот и весь кипиш на него среди диванных вкатывальщиков. А по сути технология сырая еще, многое зависит от "моды" лол и возлагать серьезные долгосрочные планы на него я бы не стал.
Помимо него еще 2 вполне себе ок стула - первый и второй ангуляр.
Анон, как проверить num_2 на наличие в нем латинских символов? Так как я написал, не работает
Раз ты задаешь такой тупой вопрос, то тебе будет сложно
Юзерскрипт похоже не влияет. У меня есть Домен1, там скрипт и всякий контент для фреймов. Нужно встроить скрипт на страницу в Домен2.
Как я говорил, скрипт добавляет фрейм, вешает обработчики на элементы фрейма и т.п.
Хотелось бы весь жс код для удобства, замыкания, пере использование, все дела. Хотя это, наверное, нереально. Если разбить код и распихать по фреймам, то должно быть норм, сделаю так.
Пока еще не было такого, чтобы чет не работало.
P.S. Консолька стоит cmder+git bash если это принципиально.
желательно
> Ну и зачем нужен ангулар если тот же самый эффект есть и без него.
Чтобы переход на другую страницу (в той же вкладке) не обновлял страницу.
Коммуникацию между табами в браузере тоже можно замутить, но это не встроено в ангулар.
Это если он хочет писать изменения на сервер, для передачи данных между окнами / табами не нужны никакие вебсокеты.
т.е. чтобы на одной открытой странице открывать разные страницы?
А чем плохо через гет запросы страницы открывать, а не подгружать их на одной странице?
Как? Постоянно делать перепроверку, что данные не изменились?
btw, как вкшчка подтягивает новые сообщения в чат?
Во-первых, снижается нагрузка не сервер, клиент-сайд генерирует страницу из данных.
Во-вторых, не нужно дублировать данные в каждом запросе, можно выдавать только то, что клиенту необходимо для вывода новой информации.
В-третьих, отрендерить на клиент-сайде только нужный кусок, допустим записи в таблице, быстрее, чем перезагружать всю страницу и рендерить ее с нуля. Да, это можно зафигачить в ручную или с помощью всяких jquery, но всякие ангулар и реакты могут упростить процесс.
> как вкшчка подтягивает новые сообщения в чат?
Постоянно общается с сервером, где-то раз в 2-3 секунды, если запрос не уходит в таймаут.
>Замыкания это средство для инкапсуляции, причем не сильно удобное и понятное
Спасибо. Как раз сейчас с ними, вроде и понял, и канторо-задачки решаю, но долго получается. Там просто на главе с замыканиями так написано, что кажется, будто из замыканий состоит вообще всё, и я боялся, что недостаточно хорошо освоил такую повсеместную штуку.
мимо-еще-один-вкатывальщик судя по фленегану, прошел пятую часть пути
Проиграл с этой хуйни. Именно поэтому у нас используется ангулар 4 года для внутренних админок и прочей хуерги без оглядки на всякие бабелы-хуябелы. Сейчас понемногу перекатываем на второй и тайпскрипт.
Он использует лонгполинг сервер.
Коннект к серверу висит до получения сообщения (или уведомления), после получения коннект пересоздается. Таймаут для таких запросов задает не сервер а клиент (клиентский код). Посему таймаута может не быть вообще.
ты не из омска случаем?
а сам как думаешь лол
a (ASCII 97)
Z (ASCII 90)
оно по дефолту так работать не может, а если делать A-z, то там всякой хуйни будет типа \[]^ и т.д.
Поэтому я и начал учить Elm, даже если не взлетит, все равно приятно писать в нормальном языке, плюс еще и функциональщине научусь, хоть и в чутка обрезанном виде.
Библиотеки > Фреймворки
Нет, это набор библиотек. Если надоест Redux — можешь обмазаться MobX или еще чем.
Ну сменишь ты Редукс на Мобх, суть от этого не изменится. Куча библиотек ~= фреймворк
Я тоже туда же. Это шизофрения просто, на современных сайтах js по 30 штук. он ивесят больше, чем все картинки хайрезные, это же ебать сколько кода. и что он делает, нахуй он блять нужен вообще.
Мне тут всучили проект с реактом. Я как-то пробовал его, без сборщика.
Но тут же впродакшн! Надо все красиво.
Беру gulp, начинаю писать скрипт сборки...
Таак...require? Ну ясно же что делать, надо установить... Browserify. Не работает. Читаем Гугл.
Ага, ясно - эта хуйня deprecated, в другой хуйне через жопу, надо оборачивать в vinil-source-stream... хуемое... duplex stream... Source-map? БЛЯ!
Идет второй день, проект не собирается, babel сыплет ошибки... Ухожу в гугл.
"Намного проще в webpack!" Оу, ну ладно, все равно хотел познакомиться с ним.
Таак, а как тут css-то в отдельный файл? require('extract-text-webpack-plugin')... 'css?sourceMap!sass?sourceMap'
package.json распухает от модулей, каждый из которых тянет еще модули, сборка идет по 10 минут, зауглифаеный результат весит под 600Kb
На страничке список, форма и три кнопки.
Немного утрирую, но я хочу программировать, а не бороться с инструментами.
ну а что ты хотел? JopaScreep же
По хорошему нужно полностью отказаться от ЖС, всем бывшим ЖС-разработчикам запретить прикасаться к клавиатуре и сделать все заново с нуля.
Такого анального цирка еще не было за всю историю IT.
Это целый пузырь, поддерживаемый за счет постоянного reinventing the wheel, который однажды да лопнет.
>Это целый пузырь, поддерживаемый за счет постоянного reinventing the wheel, который однажды да лопнет.
NYET. Не лопнет, ибо законодателями этой хуйни являются мастодонты IT - Google, Facebook etc.
Допустим, есть у нас 1000 элементов <li>. (путь в тысячу ли, лол).
1) document.querySelectorAll('li');
Создается коллекция [ li[0], li[1], .. li[999] ];
2) document.GetElementByTagName('li');
Создается пустая живая коллекция (так было написанно в учебнике, но вот если посмотреть в консоли, то там как будто создается коллекция из всех элементов сразу).
Слава Марку теперь есть create-react-app, поэтому можно меньше трахаться и больше создавать.
Но да, когда-нибудь нужно избавиться от всей этой хуйни и сделать единый стек, в котором все будет собираться одной командой, а стили/разметка/код будут на унифицированном языке. И все к этому идет.
Использую следующий стек:
бэкенд - Node+Express+SocketIO+NeDB
фронт - React+MobX
Вопросов по перечисленным технологиям, в принципе, нет, работаю и получаю удовольствие.
Но вот с чем реально вышла запара, так это с выбором либы для построения графиков.
Выбор пал на Plotly, как на либу, позиционирующую себя невъебенно крутой и серьезной.
И вроде все работает как надо, но столкнулся с откровенно детскими болезнями либы:
- нет HTML5 Fullscreen API. Сделал, но по нажатию любой из кнопок на modebar, фуллскрин сбрасывается. Похуй, сделал ресайз на весь экран. Сломался RangeSlider (ибо он не ресайзится!). Пиздец.
- сделал плавную, приятную глазу анимацию разворачивания графика на полный экран при помощи Animate.css. Отлично! С анимацией при сворачивании обратно, с возвратом к исходному разрешению графика, выпадают (буквально, блядь!) кнопки с modebar графика. Ну что за хуйня?
Посему реквестирую годных либ для построения графиков, которые поддерживали бы ресайз, динамическое обновление данных (стриминг), имел бы rangeslider, ну и экспорт в графический файл (хотя если это canvas, то экспорт закостылить не трудно). Смотрел в сторону dygraphs - насколько он хорош?
>По хорошему нужно полностью отказаться от ЖС
Не нужно отказываться, просто не нужно писать непонятный говнокод. Вот реально, требования от жс на 99% сайтов одни и те же, что делал жс в 2010 году, то он делает и в 2016, однако скрипты теперь весят за мегабайт. Куда нахуй, что в них напихано, ЧТО БЛЯТЬ. На сайте 1 слайдер и проверка формы, что можно было накодить на 1 мегабайт.
Во втором случае JS вычисляет значение переменной name. У Квантора в первых же главах всё это разобрано.
Как это называется obj[prop] или как искать в гугле чтобы прочитать поподробнее? Просто "в первых главах" звучит очень расплывчато для того кто не читал его учебника и учился по другим источникам.
object.attribute монопенисуально object['attribute']
Но. Допускается object['ma-kaka'], но object.ma-kaka выплюнет ошибку (object.ma - kaka)
Эта параша всяко лучше твоих "других источников", из которых ты даже не знал как обращаться к свойствам объекта через квадратные скобки. Да и неумение забить в гугл "js object brackets" выдаёт в тебе дебила.
nw.js, electron либо локальный сервак node.js
Че несешь? В первом случае тебе массив ссылок дают по css селектору, во втором по тэгу элемента.
Какие коллекции? Совсем там со своими абстракциями ебанулись блядь в хлам.
> слишком низкоуровневый
Проиграл.
Но если продавать свою хуиту не будешь - highcharts. Это лучшее что мне встречалось.
> заебал пиарить свою порашу в этом треде.
Сомневаюсь что Кантор здесь тусовал. Он наверняка поёбывает няшных хипстеров на очередном стартапе.
при чем тут жс, если это еба вкатывальщики не уеющие программировать наплодили кучу овно тулз и теперь купаются в этой параше
Чего?
В первом случае тебе вернется просто коллекция по селектору, во втором живая коллекция по селектору. Схуяли она по твоему должна быть пустой, если у тебя на странице в момент ее создания есть элементы соотвествующие селектору?
Сделал небольшой сайт на React + Redux (и через create-react-app), который берет json с вордпрессовской WP REST-API (т.к. в бекэнд я пока не умею). На локалхосте все заебись работает, а вот как это все к вордпрессу присобачить - хуй пойми.
Сделал npm run build и залил это говно вместо темы, захожу на свойсайт.ком, в консоль пишет что не может найти
/static/js/main.e0dbbf8e.js ну и прочие собраные файлы.
Как мне задеплоить эту парашу вместе с вордпрессом ?
Гуглил, вообще нихуя нет на эту тему, все туториалы дальше хеллоуворлдов на локалхосте не заходят.
>highcharts
По демкам нихуево выглядит.
Но как у HC с быстродействием?
Мне требуется отрисовывать примерно 5-7 графиков, сделал обновление данных раз в секунду (не принципиально, можно период изменить) но координаты приходят пачкой, т.е. за секунду набирается, например, до 10 координатных точек на 1 график.
Plotly даже с .extendTrace() подлагивает временами, хотя его форсят как более производительную, в плане рендеринга, альтернативу HC.
Попробуй через handlebars, я в своё время так попал к жене на свадьбу за O(n!).
Ещё можно transducers: https://hackage.haskell.org/package/machines
Не то наверно. Короче, загрузка начального состояния всего приложения происходит при запросе /index, далее мы можем перейти в /users. Как сделать чтобы мы могли вбить в строке адреса сразу /users и отобразилась бы страница с пользователями?
React Router.
Проблема в том, что я незнаю с чего начать, составьте для меня небольшой todo-лист, кто понимает.
Вот даже уже готовый пример есть https://github.com/dariuszdziuk/wordnet, но я хочу разобраться как это делается впринципе.
Шапку чем читал?
> Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Спасибо.
Ну пользуйся чем тебе удобнее, какой толк от твоего вскукарека без объяснений?
>В первом случае тебе вернется просто коллекция по селектору, во втором живая коллекция по селектору.
>Схуяли она по твоему должна быть пустой, если у тебя на странице в момент ее создания есть элементы соотвествующие селектору?
Но тест говорит совсем другое: http://plnkr.co/edit/QGiNtL4VFSDXMAMyBUAN?p=preview
Как видно, первый alert и второй alert дают одинаковые результаты.
Первый alert - пустой массив.
Второй alert - document.getElementsByTagName('p') //якобы коллекция элементов
Третий alert - document.querySelectorAll('p'); //тут всё очевидно, коллекция всех элементов <p>
Я бы поверил учебнику >>853684
и не задавал таких вопросов, если бы в консоли getElementsByTagName('li') не возвращал мне коллекцию элементов <li> >>853442
Вот такое противоречие.
Вопрос не правильно поставил.
Сейчас более менее вник. Суть API этого - обращение к дб. Т.е если я хочу использовать JavaScript, мне нужно просто переписать все функции на нем.
Другой вопрос, не лучше ли будет написать скрип в JS, который будет запускать С программу (child process) и output из этого С скрипа передавать обратно (через pipe)?
Т.е использовать С библиотеку все-таки.
Это будет экономнее по времени, чем переписывать функции в JavaScript?
По производительности?
То что нужно, спасибо.
Анончики, а вам нравится react?
Есть у меня два дива на которые влияет плагин. Плагин я завожу вот так var xyi = new Hyi(this, params); проверку на метод или параметр и $.fn.Hyi опустим.
В одной из функций этого плагина создается функция Hyi.prototype.eventListener = function (ev) {}; и потом вешается window.addEventListener('mousemove', Hyi.prototype.eventListener);
Суть в том, что при выполнении window.removeEventListener('mousemove', Hyi.prototype.eventListener, false); снимается только последний EventListener.
Вообщем как мне привязать EventListener к диву, чтобы потом снять один, не ломая другой?
1. Если ты пишешь JQ плагин, то почему не .on() .off()?
2. Нахуя ты делаешь Hyi.prototype.eventListener = function (ev) {}? Почему ты в конструкторе не можешь объявить this.eventListener = function(ev){} например?
Короче, рефакторь накуй.
Там есть и вьюхи тащемто. Движок для рендеринга ты волен сам выбрать.
>>853969
Нет, оверхайпнутая параша для любителей оверинжиниринга.
Лицокниге оно один хуй не помогло. Интерфейс как был тяжелым говном с кучей лишнего говна, так и остался.
>>853987
> 2016 год
> Писать плагины для jQuery
Ну бля.
Но ладно, я 2 раза прочел тобою написанное и нихуя не понял. Пример кода запили и покажи где косяк.
>> Писать плагины для jQuery
>Ну бля.
Ну может не нужен ему (one|two)-way binding и дёртичекинг? Может он не педохипстер и просто хочет с ДОМом поработать?
Да не в этом дело. Либо у него недостаток опыта либо что-то простое.
Тут скорее первое.
Поэтому
> рефакторь накуй
единственно верный совет, а он написал хуйню.
да <3
Избавился ли Angular с выходом второй версии от своих прежних болячек?
Есть ли тут ребята, которые и Angular 2 юзали, и React + Redux?
Что из них лучше себя показывает в связке с Node.js + Express? Или без разницы?
Правда ли, что Angular 2 по мере роста проекта начинает глюкаво тормозить, в отличие от React + Redux? Или пиздёж?
>ang2
Производительность стала больше, поверх покрыли все типизацией.
Теперь это дело легко тестировать, допилили модули напильником. Годная штука. Порог вхождения увеличился да и хуй с ним.
Когда мне понадобится, я выберу его.
Да, ад в виде html внутри js внутри html внутри js можно делать, но у нас например за такое при коммите по рукам бъют.
реакт для дебиков))0
мимо из серьезной конторы с ангуляром, постепенно готовящим переход на анг2
Кто-нибудь сталкивался с подобным? Есть ли способ такое поведение исправить
Также я не понял, что значит фраза о том, что Angular 2 требует больше boilerplates, что такое additional boilerplate overhead, и что это вообще такое: boilerplate. Пояснишь?
Если коротко - шаблонный код.
Возможно, но я 3 проект подряд сталкиваюсь с этим из-за своей криворукости.
Еще, возможно, модуль brackets`а это вытворяет.
http://jsbin.com/nerayonibi/1/edit?js,console
А из этих двух?
хорошо что в ng2 порог вхождения выше, будет куда меньше долбаёбов, коих наплодилось уже благодаря реакту, бгг
>хорошо что в ng2 порог вхождения выше, будет куда меньше долбаёбов, коих наплодилось уже благодаря ng1, бгг
фикс)
От Inferno с MobX.
Все работает (почти) как надо.
Либа респонсивна искаропки, поддерживает несколько форматов экспорта, присутствует менее глючный рейнжслайдер. Скорость рендеринга вполне на уровне.
Ты ответ то нормальный отправляй своему аякс скрипту, а то он бедолага ждет код 200 от ноды, а получает хрен пойми что, и по таймауту дублирует свой реквест.
Есть код (рис. 1)
Есть обработчик (рис. 2)
Он осуществляет поиск по БД и выводит в результат переменные rno = 1 и result = dom 31
Результат поиска в рис. 3
Как мне вывести эти переменные в таблице, чтобы туда можно было добавить другие строки из базы данных, либо ссылки на другой обработчик?
Или просто поясните логику, как в jquery выводить переменные в таблицу.
А почему порог вхождения выше? Что нужно понимать, чтобы лезть в Angular 2?
Берёшь и без задней мысли вставляешь новую строку со столбцами в конец таблицы, не?
Спасибо, даже не подумал об этом.
Спасибо за ответ.
> 1. Если ты пишешь JQ плагин, то почему не .on() .off()?
Теперь сделал вот так:
вешаю $(window).on("mousemove." + this.name, this._handleMousemoveEvent);
снимаю $(window).off("mousemove." + this.name, this._handleMousemoveEvent);
> 2. Нахуя ты делаешь Hyi.prototype.eventListener = function (ev) {}? Почему ты в конструкторе не можешь объявить this.eventListener = function(ev){} например?
Это тоже переписал.
> Короче, рефакторь накуй.
Сделал, посмотри пожалуйста, может что-то не так еще.
Код плагина: https://gist.github.com/anonymous/3cefd0ff484b3a6c950345af188dd6f3
Код html страницы: https://gist.github.com/anonymous/93b90e8c82746fc462e12dbbce6a8822
Так то понятно что функция внутри функции создает некий объект с перменными, и ссылкой на вышестоящий по иерархии такой же объект в котором записаны переменные из его области видимости и ссылкой на вышестоящий если он есть. Но из примера на learnjs я нихуя не понял куда записывается итерированное значение переменной?
По моей логике каждый раз вызывается функция внутри функции которая просто увеличивает переменную из вышестоящей функции.
1++ 1++ 1++
Ты же первой частью своего поста ответил на свой вопрос
При присваивании counter = makeCounter() создается скоуп с переменной currentCount, которая хранит своё значение
Глядите-ка, еще один ёбан, ожидавший от Реакта магии в стиле "enter here xyipizda to make this shit work" сломался и не преминул об этом доложиться в программаче.
>это по сути View библиотека.
Охуеть открытие! А мужики-то и не знают!
>Many people choose to think of React as the V in MVC.
https://facebook.github.io/react/docs/why-react.html
>А надстройки Redux Flux и т.п. слишком размыты.
Это вообще пушка. Если ниасилил иммутабельное хранилище или тошнит от функционального подхода в целом, есть MobX, который в non-strict режиме позволяет напрямую присваивать новое значение отслеживаемым переменным. Конечно, так делать не комильфо, но тебе ли не похуй? Энивей, если тебе не нужно поддерживать концепцию "single source of truth", можно обойтись старым добрым setState.
>Возникает вопрос а где гарантия что через месяц не придёт очередной патлач и не придумает новую охуительную архитектуру папок?
Кто ж тебя, дубина, форсирует использовать какую-то определенную структуру для проекта? Если ты из тех мудаков, что не могут себя дисциплинировать в отношении структуры проекта, то и для таких существуют готовые решения - генераторы и бойлерплейты. От проекта к проекту структура будет постоянной.
>Какието невьебенные конструкции где переменные повторяются по 20 раз для одного действия.
Ты про что, упорыш?
>Мифическая расширяемость и производительность кажется слабым аргументом, ведь в энтерпрайзе всегда побеждала хуяк-хуяк простота
Так все это была тонкая ирония, ведь правда?
>Короче не советую это говно, буду пробовать анг2.
Через неделю ждем свежую порцию откровений о том, что ангуляр 2 пиздец параша и что неплохо было бы откатиться во времена jQuery UI.
Во тогда делали заебись!
Потому что я долбоеб и смутился над словами сказанными выше. Но не прочитал что написано после точки
Ебать ты хуесосина.
За 1к можно вообще не кодить, а клацать час в день сайты и говорить менеджеру работает или нет.
Раздирать свою жопу реактом имеет смысл не меньше чем за 4к.
Получишь абстрактной фабрикой по губам.
На вакансии фронтендщиков уже 22 предложения в среднем на вакансию и значение растет.
Все, лавочка закрывается, скоро WEB-пузырь лопнет как в 2001 и нас ждут толпы безработных 'веб-программистов.'
Все в машинлёрнинг.
Нынче каждый второй вкатывается в программирование, даже знакомая бухгалтерша, которой под полтинник. Хорошо, что у 90% дальше хтмла дело не идет.
Боишься, что какая-нибудь бухгалтерша займёт твоё тёплое место жс макаки?)
допустим у нас есть модель данных и вьюха для неё. когда меняются данные в модели, я так понял, в виртуальный DOM рендерится всё, а он ищет разницу по которой уже меняют настоящий DOM.
но нахуя это всё если мы за время компиляции JSX можем уже знать какие элементы будут меняться в зависимости от полей модели.
например псевдокод:
<div class="{ classList.join(' ') }"></div>
можно ведь без виртуальных домов прописать что
model.on('classList:change', (ev, data) => view.setAttr({ class: this.classList.join(' ')}))
Не знаю, я только радуюсь за тех вкатывальщиков, которых прёт от Реактов, Ангуляров, Нод и Питонов с Джангами, а вы тут бедняги трясётесь за то, что кто-то ваш хлеб отбирует. Ссыкуны.
>которых прёт от Реактов, Ангуляров, Нод и Питонов с Джангами
Язык бы вначале нормально выучили, а потом бы уже вкатывались во фреймворки
двачую
будет точно также как это было с пыхой и повторилось с первым ангуляром. орды макак которые не понимают что делают, но тем не менее делают и за низкий прайс. они могут конкурировать только с нынешними "динамический сайдбар до завтра"
Здесь неплохо разжевали.
http://reactkungfu.com/2015/10/the-difference-between-virtual-dom-and-dom/
> толпы безработных 'веб-программистов
Это которые вах заебашу красивый визитка неделя 1000 рублей?
>>854465
В двух словах: патчить дом по синтетическим расчетам быстрее, чем ре-рендерить его полностью.
Для того, чтобы вычислить "патч", требуется хранить несколько "слепков" дома.
От статических страниц.
>Для того, чтобы вычислить "патч", требуется хранить несколько "слепков" дома.
реквестирую пример в котором виртуальный ДОМ делает то что нельзя предсказать за время компиляции JSX
>>854483
везде где юзают виртуальный ДОМ говорят одно и то же, мол стильно модно молодёжно патчить ДОМ, а не делать полный ререндер, так как узкое место - это скорость рендера ДОМ. с этим то я согласен, мне непонятно зачем городить такой оверхед в рантайме, если все патчи ДОМ можно предсказать на этапе кмпиляции темплейта
неужели ответ это "просто так, всё равно узкое место DOM и то что делается дурная работа всем пох"
Бамп
О, так ты не просто вкатываешься в реакт, а вкатываешься в кодинг начиная с реакта. Удачи, братан.
Вангую, сольёшься даже не на каком-нибудь там редуксе, а ещё на этапе настройки вебпака.
Блядь, нет конечно, VirtualDOM - это не панацея, это - компромисс. Как, врпрочем, и твой вариант:
>model.on('classList:change', (ev, data) => view.setAttr({ class: this.classList.join(' ')}))
В самом последнем ответе еще до кучи перечислены варианты, которые имеют свои как сильные, так и слабые стороны.
http://stackoverflow.com/questions/21109361/why-is-reacts-concept-of-virtual-dom-said-to-be-more-performant-than-dirty-mode
Не обращай внимания на людей, пытающихся дистанционно выявить уровень твоего интеллекта.
Есть сервис, который берет данные через $http.
Есть директива, которая эти данные должна отображать.
Как правильно эти данные передать?
https://jsfiddle.net/0moh53w7/
Я не понимаю, почему оно не находит месторасположение
Помогите пожалуйста, иначе я никогда не пойму эту тему.
> Пишет на ангуларе
> Нихуя не знает про модули
Блядь, ты пример копипастил из документации просто?
Окай, наведу на мысль.
1. Создаёшь модуль, делающий запросы к серверу.
2. Никогда не используешь его в самопальных директивах
2. Используешь этот рукожопно написанный модуль во всех контроллерах и других модулях
2. Проффит
Короче ты наговнокодил, переделывай.
Спасибо.
Попытался сделать run eject, снес всю эту парашу, потом сделал свой webpack.production.config.js с бабелями хуябелями и тд. В итоге запускаю вебпак, работает 18ms и говорит что все заебись, а сам даже папку build не создает. Причем для теста с этим же конфигом простой хеллоуворлд создавал и его нормально сбилдил.
Помогите плз, уже который день ебусь над этим.
https://jsbin.com/qiwojubiye/edit?js,output
webpack ./webpack.production.config.js
выводит:
Hash: 76753ae5377e4285b2ec
Version: webpack 1.13.2
Time: 18ms
и нихуя
Конкретнее ?
Понял свою ошибку, оказывается нужно было --config добавить. Но теперь дохуя других ошибок вылазит (в конфиге что-ли проблема ?) но хоть бандлить начал.
Еще теперь на {..state} почему-то выебывается, а конкретнее на многоточие. Это же из es2015 фича вроде-как ? Импорты то нормальное делает.
Пишет вам 24 лвл программист.
Пишу всю свою рабочую жизнь на шарпе. Сейчас встает вопрос о переезде в дс. И я считаю, что нужно перекатываться на другой ЯП.
Пилить 3 года формочки на винформс и впф меня уже, мягко говоря, заебало.
Поэтому нужно вкатываться в вэб.
Что сейчас стильно, модно, молодежно?
Выбор упал методом рандома спросил у друга на ноду.жс.
В вэбе я знаю почти нихуя. Подскажите, пожалуйста, что последовательно стоит учить, учитывая мои "знания".
Паттерны проектирования знаю, но не думаю, что это особо тут полезно. То как ехал граф через граф тоже.
Еще в юнити умею 2д игрушки делать.
Если здесь найдется наставник, буду очень благодарен.
>Это же из es2015 фича вроде-как
нет, spread на объекты в 2015 не ввели, только iterable
>>854921
Запоздал ты, оно уже протухло, лол (на самом деле нет). На самом деле если будет как обещают, то будет круто, пока же куча ишью.
Но тем не мнее скорость + оффлайн режим + лок файлов подкупают
а ещё обратная совместимость с npm, вин же!
Код:
FB.api(
"/[вставляю id пользователя]/photos",
function (response) {
if (response && !response.error) {
console.dir(response) // пустой массив
}
}
);
Что не так то?
Это копия, сохраненная 5 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.