Этого треда уже нет.
Это копия, сохраненная 24 декабря 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
JavaScript #92 #1099555 В конец треда | Веб
Ссылка на прошлый тред: >>1091285 (OP)

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

Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md

Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/

Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/

JS-конфа в телеграме:
https://telegram.me/jsthread

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
#2 #1099560
>>1099555 (OP)
Добавь в книги по Node.js эти

Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript https://www.ozon.ru/context/detail/id/137410108/
Изучаем Node.js https://www.ozon.ru/context/detail/id/22256395/
#3 #1099716
>>1099560

>2017


>книги

#4 #1099757
ЧУВАК ИЗ ПРОШЛОГО ТРЕДА, ПОСТ ПОД НОМЕРОМ 1099099,
>>1099099
- ОГРОМНОЕ ТЕБЕ СПАСИБО, ТЫ ЛУЧШЕ ВСЕХ ДЕГЕНЕРАТОВ В /WEB ВМЕСТЕ ВЗЯТЫХ И ПОЛОВИНЫ МЕСТНЫХ, Я ПИШУ КАПСОМ ПОТОМУ ЧТО МОЯ БЛАГОДАРНОСТЬ РАВНА РАЗМЕРУ ЭТОГО ШРИФТА УМНЕЖУННОЙ НА 999999999999999999!!!!!!!!!!!
Все заработало, и да, все дело в размере картинки! И ДЖ работает, я тебе потом покажу что я сделаю с этим! Скоро, если все выйдет!
#5 #1099770
блять как заебали своим А ВИ ТАКИ ЗНАЕТИ РИАКТ РИДАКС???
Блять, куда я тебе сука воткну реакт редакс в вордпресс и че там вообще знать очередной гвно жс фреймворк напоодобие ангуляра по отрисовке DOM.
ненавижу просто ненавижу. что мне теперь гостевуху на реакт дрисне делать!!
#6 #1099771
>>1099757
О, есть еще вопрос: что это и зачем:

div.addEventListener("mousemove", function (event) {
cursor.style.transform = `translate(${event.clientX + 2}px, ${event.clientY + 2}px)`;
});

cursor.addEventListener("mousemove", function (event) {
cursor.style.transform = `translate(${event.clientX + 2}px, ${event.clientY + 2}px)`;
})
#7 #1099785
>>1099771
Очевидно же. На JS он тебе не курсор поменял, а лишь симулировал поведение курсора. В реальности, у тебя там просто катается картинка за позицией курсора. С тем же успехом вместо курсора можно видос встаить, холст, и даже Аллаха. А этот код и отвечает, за то, чтобы картинка перемещалась на координаты курсора.
#8 #1099791
>>1099785
Это я понял, а что конкретный функции делают, зачем он что-то сдвигает на 2 пикселя? Я так понял, он это с Джиквери писал, я эту штуку еще не учил.
#9 #1099869
>>1099791

>сдвигает на 2 пикселя


я думаю это просто мышыный шаг
#10 #1099889
>>1099791
В этом коде нет jquery, это чистый js.
Сдвигает картинку, что не понятного. Сдвигает на позицию где находится курсор. 2px какая-та погрешность выверенная опытным путем, видимо чтобы не перекрывало. убери да проверь.
#11 #1099891
>>1099791

>что-то сдвигает на 2 пикселя


Не на два пикселя, а на x + 2px и y + 2px
#12 #1099904
Когда node-gyp под винду без пляски с бубном ставить можно будет? Пробовал на двух разных машинах - у меня нихуя не получилось.
#13 #1099916
>>1099904
Там для даунов сделали установку облегчённую. Вообще без проблем встаёт.
Аноним #14 #1099936
Парочка антонов их соседнего Python треда собралась писать свою имиджборду, показывать пока что совсем нечего, но хотелось бы найти вкатывальщика в JS (какой нибудь фреймворк, например React) готового писать просто для опыта. Если кто-нибудь захочет присоединиться - напишите в телегу указанную в email c:
#15 #1099939
Пользовал кто-нибудь netlify? Норм не?

>>1099936
Хм, интересно.
CsrFq3bUAAA08967 Кб, 580x300
#16 #1099944
Я нихуя не умею.

Планирую сделать для своего обучения браузерную пошаговую онлайн игру человек на 30. JS+HTML. Она должна быть, понятное дело, одностраничным приложением. Не могу определиться, на чём писать сервер? Посоветуйте, где меньше всего ебли. Нужно ли использовать серверный рендеринг?

Насчет клиента, пакеты слать сокет ио или как?
#17 #1099957
>>1099936

>писать свою имиджборду


>например React


лол сука
Аноним #18 #1099961
>>1099957
Блять, вы заебали. В прошлым треде обоссали ангуляр и топили за реакт, теперь реакт не угодил. Мы не разбираемся во фронте и поэтому нам нужна помощь, и будет неплохо если нам пояснят за выбор фреймворка.
#19 #1099965
>>1099957
ну ти и мразь))))

так этим малолетним чипушилам сука и нада
#20 #1099967
>>1099944

>где меньше всего ебли


у тебя дома азаза
#21 #1099974
>>1099961
Vue же есть. Модно-молодёжно.
#22 #1099978
>>1099961
Реакт норм, не слушай школьников.
#23 #1099980
>>1099961
Ясен хуй реакт. Но вообще нахуй вам фронтер. В вуе несложно разобраться.
Естественно мое мнение нехуя не стоит ведь я не знаю ни одного фреймворка.
#24 #1099986
>>1099770
Джейкверислесарь порвался.
#25 #1100025
>>1099757
Приятно такое с утра прочитать. Надеюсь, у тебя всё получится и таки тут покажешь.
Как я и писал, на ЖС делать кастомное это сомнительная идея. У меня там +2px и body{overflow:hidden;} позволяют визуально спрятать многие косяки для примера по-быстрому. А если на совесть, то "по-быстрому" делать нельзя. Пришлось бы каждый подводный камешек отдельно обрабатывать. Я бы до сих пор тебе ответ писал.
#26 #1100056
Поясните, что это за байда в typescript и как переменной xPosition присвоить правильное название? Она просто может содержать два варианта строковых значений или как?

export declare type MenuPositionX = 'before' | 'after';
-------
xPosition: MenuPositionX;
#27 #1100057
>>1100056

>переменной xPosition присвоить корректное значение


>fix

#28 #1100058
>>1100056

>typescript


купил мопед — ебись с ним сам
#29 #1100069
>>1100056

>может содержать два варианта строковых значений


Одно из двух строковых значений.
#30 #1100077
>>1100025
Тут как раз тот случай, когда не на совесть. а чисто по приколу чтоб быстро заработало - это упражнение для меня в перерывах между главами лернджаваскрипт. Может. еще день-два, потому что пришлось кое-что переделывать.
151134298658401,6 Мб, 1280x960
#31 #1100163
Не догоню как писать стили к реакту. Эт надо сперва написать классический хтмл, написать к нему цсс, а потом разбивать на компоненты?
#32 #1100265
>>1100163

>написать классический хтмл, написать к нему цсс, а потом разбивать на компоненты


Это Angular.
#33 #1100292
#34 #1100298
>>1099770
React/redux никуда втыкать не надо, он работает сам по себе и взаимодействует с твоим бэкендом посредством ajax запросов, поэтому на бэкенде ты пилишь чисто api. Впрочем, если начальство или клиент требует воткнуть реакт именно в вп, то можешь смело в открытую ставить под сомнение их проджект менеджмент либо hr-политику и спросить зачем они пытаются приделать кабину пилота истребителя на москвич.
#35 #1100317
Дублирую сообщение с web-треда

Играюсь тут с браузерами. Написал js скрипт-приветствие в форму, оно работает, лол. Это имеется в виду, когда говорится, что можно так украсть кукисы и прочие данные? Как можно запретить вводить скрипт в эштиэмэль формы?
sage #36 #1100387
>>1100317
Google xss
#37 #1100388
>>1100317

>Как можно запретить вводить скрипт в эштиэмэль формы?


Санитизация / Google Caja project.
#38 #1100394
>>1100163
Чето ты мудришь, братишка. Все проще.
Просто пишешь JSX(сетя своим элементам правильный className) в компоненте и импортишь в нем свой css (советую накатить препроцессор, scss например, с ним еще и изоляцию стилей намного удобнее делать в реакте).
#39 #1100403
>>1100394

>scss


говно и нинужен, все что нужно(переменные, наследие) уже есть в нативе, если ты невротик и любишь собачку можешь пользовать лес
#40 #1100405
>>1100403
С совершенно уебщиным синтаксисом, нет циклов, и пишеться меньше кода. Стандарт цсс нинужен(если у вас более менее объемны проект).
0N5gFLxHuK0nzh6y11 Кб, 200x200
#41 #1100408
>>1100405
Есть стилус от божественного светилы Холовуйчика.
#42 #1100410
>>1100405

>уебщиным синтаксисом


поехавший

>нет циклов


инфа сотка

>пишеться


нахуя я вообще отвечаю

>Стандарт цсс


вобрал в себя все самое лучшее и нужное, оставив сосать хуи недонадстроек хипсторам. та же сасня нагнулась и вернула скобочки с запятыми, ибо нехуй
#43 #1100428
>>1100163
Styled components, css modules, JSS.
Удобнее всего были css modules.
JSS кажется избыточным, но может помочь в случаях, когда нужно как-то реалтаймово комбинить куски стилей
#44 #1100434
>>1099555 (OP)
Доброго времени суток многоуважаемые господа. Прошу прощения за последующую сумбурность письма, но в в деле программирования я ничего не понимаю. Собственно, излагаю:
Занимаюсь наглой рекламой путём добавления в друзья с нескольких аккаунтов к участникам групп конкурентов (продажи в моём городе). Чтобы не добавлять два раза одного человека с разных фейков, я заношу его страницу в закладки браузера.
ВНИМАНИЕ ВОПРОС: возможно ли сделать так, чтобы те, кого я добавил в закладки браузера не появлялись в списках участников групп? Ибо задолбался открывать одни те же страницы.
Браузер хром.
#45 #1100445
>>1100434
проще записывать имена текстом(типа виджета переводчика в лисе, попапится кнопка), и потом делать поиск из базы и бгкалар-ейлов иф мач
#46 #1100447
ну или даже еще лучше проще быстрее — жмешь тупо кнопку на тулбаре, прога берет <h2 class="page_name">%username%</h2> и заносит его в память как не ибу ну и уже потом имидиатли накатывает выделения, вроде нихуя не сложно, отпишись потом как сделал
#47 #1100550
Продолжаю охуевать в этом ITT тренде.

Вопрос касается Date.

Я так понял, это говнецо, берет текущую тайм зону, вычисляет UTC время поней, и сохраняет UTC время. Но не сохраняет временную зону.

И когда я вызываю тип ту стринг, эта сука, берет текущую временную зону, и преобразует сохраненное UTC время в нее. Это вообще законно?

Вопрос - какого хуя?

И что мне делать, чтобы отображать дату не по той зоне, что у меня, а по той в которой эта дата была получена?

Хорошо, нужно сохранять временную зону отдельно руками, а дальше как?
Как мне время то сдвинуть нахуй?
#48 #1100558
>>1100550
JS объект Date был переписан с такового у JAVA.
#49 #1100600
Котаны, я тот анон что обещал показать что-то прикольное, уже почти сделал, один вопрос: если на страничку на событие навесить звук из JS вот таким образом:

example.onclick = function() {
var audio = new Audio();
audio.src = 'click.mp3';
audio.autoplay = true;
}

Файл со звуком как-то кешируется хотя бы на время существования страницы или каждый раз заново загружается?
#50 #1100614
>>1100550
dateobj.toLocaleString('en-RU', {timeZone: 'Asia/Tokyo'})
Но в фф только с марта сего года обещали сделать (не пробовал, не знаю), так что есть http://momentjs.com/timezone

>не по той зоне, что у меня, а по той в которой эта дата была получена?


А как они могут различаться-то? В JSON'е же всё текстом приходит, там пиши чего хочешь.
#51 #1100619
>>1100614

>А как они могут различаться-то?


Люди в разных часовых поясах живут, и передвигаются.
#52 #1100646
>>1100600
Ну в браузере есть кэш, но я не знаю как он работает. Сколько файл весит? Если много, то ждать никто не будет, закроют страницу и всё.
#53 #1100650
>>1100646
Не, там длина меньше секунды, ну или около того. В общем, я думаю, все будет ок. Еще чуть-чуть :)
#54 #1100652
>>1100600
кешируется
конечно.
#55 #1100682
Котаны, готово! Я щас думаю как загрузить это в интернет, у меня был где-то бесплатный хост, щас пароль вспоминаю.
#56 #1100701
>>1100682
Только JS? Github pages заюзай. Или Heroku.
#57 #1100706
Так, проблемы. Оказывается, хост уже не бесплатный. ХЗ куда грузить, я еще не пользовался никакими гитхабами. Как показать вам это чтоб было быстро и просто? HTML+CSS+JS
#58 #1100733
Слушайте, я придумал. Скину вам дропбокс с архивом, а вы распакуете и запустите эйчтиэмельку.

https://www.dropbox.com/s/yawhrtpul21livo/Feeding of The Fat.7z?dl=0
#59 #1100735
>>1100733
Там, конечно, ничего особенного, просто забавная штучка, но я хотел поделиться, потому что анон мне помог с курсором и я там менял курсор, хоть и без джиэса, а еще я полный нуб и для меня это ого-го достижение.
#60 #1100737
>>1100733
Поклацайте, посмотрите на реакцию чудика)
#61 #1100739
Еще раз большое спасибо анончику с курсором!
#62 #1100775
Блять, как в этом ебаном ЖС вызвать функцию из другой функции евент хендлером. Пиздец ебанутый язык.
W04dcIN4U99 Кб, 523x720
#63 #1100777
>>1099555 (OP)
var unboundSlice = Array.prototype.slice;
var slice = Function.prototype.call.bind(unboundSlice);

Аноны, объясните пожалуиста как это работает, я не понимаю как тут два метода одновременно

>Array.prototype.slice.call


Слайс типа как вырезает аргументы, но через кол ему же не сообщается ничего. А под катом с этим кол байнд вообще пиздец...
#64 #1100779
>>1099770
Я кстати пока не начал реакт и редукс поэтому не понимаю зачем они вообще нужны, всё ведь и так хорошо работает. Пояснит кто?
#65 #1100792
>>1099770
проиграл
#66 #1100805
>>1099770
Знаешь, как это со стороны читается?
"блять как заебали со своим А ВИ ТАКИ ПРОБОВАЛИ НОРМАЛЬНУЮ ЕДУ А НЕ ГОВНО?"
Срсли, я бы не кукарекал про говно жс фреймворки, если бы работал с вордпрессом. Это же уже всё нахуй, выноси.
#67 #1100816
>>1100619
Ты скозал?
#68 #1100819
>>1100775

покажи свой говнокод
#69 #1100838
>>1100733
ебать какой же ты умный сука
#70 #1100839
>>1100779
Про Даннинга-Крюгера слышал? Каковы твои критерии слова "хорошо" перед словом "работает"?
Жигуль тоже отличная машина если в жизни ничего лучше не пробовал.
#71 #1100842
>>1100619
Люди-то может и живут, но вопрос в создании js-объекта. Ты не можешь у себя получить чужой объект, созданный кем-то далеко от тебя. Единственный способ — передать JSON'ом данные и реконструировать на своей стороне из этих данных (т.е. UTC timestamp'а в данном случае).
Не думаю, что объект даты где-то хранит данные о текущей таймзоне, и лишь при попытке отобразить или как-то использовать высчитывает нужную исходя из текущих времени и таймзоны хоста. Могу ошибаться, лень искать код имплементаций.
#72 #1100861
>>1100733
Регистрацию требует.
Лучше использовать открытую помойку
https://send.firefox.com/
Но вряд ли кто-то что-то будет загружать, у меня брат умер от этой хуйни.
Лучше использовать онлайн редакторы.
для простого
https://codepen.io/pen
https://repl.it/languages/nodejs
для сложного, можно загружать свои файлы
https://thimble.mozilla.org/ru
#73 #1100874
>>1100861
Чего пиздишь? Не требует, а предлагает. Скачал без регистрации.

проиграл с этого поделия хохла-наркомана
#74 #1100876
>>1100861
Ладно, попробую через последнюю ссылку.
1511984000059034 Кб, 600x582
#75 #1100877
Какой семантический смысл в такой записи в ноде:

const { BlahIdent } = require("mymodule");

нафига в фигурные скобки брать? И пните в направление доков, где такие штуки расписаны.
#76 #1100881
>>1100877
REST/SPREAD/DESTRUCTURING
#77 #1100884
>>1100706
Вот и научишься.
#78 #1100885
>>1100779
Нужен для управления состоянием. А как известно состояние самое большее зло в программировании.
#79 #1100887
>>1100876
Codepen.io попробуй, или repl.it, как советовали выше.
#80 #1100889
>>1100861
Анон, извини, но там ничего не выйдет. Я не могу туда загрузить ресурсы, по крайней мере бесплатно, только подключить ссылки, но мне некуда в онлайне выкладывать их. Так что можешь рискнуть с архивчиком, ну или просто забей, там ничего особенного.
1511954582921071 Кб, 605x639
#81 #1100891
>>1100881

Блядь, охуенно! И как я такую тему проебать умудрился? Спаибо
#82 #1100893
>>1100445
>>1100447
Мне показалось, что Вы просто решили поиздеваться. Я же ничего в этом не понимаю.
Закладок сделано уже слишком много, чтобы переписывать их текстом (40000).
#83 #1100894
>>1100874
Действительно. У меня просто рефлекс на попапы.

>>1100876
Можешь не заморачиваться. Просто на будущее.
Проиграл с "детальнише про хлебало".
Можно не создавать новый объект Аудио по каждому клику, а подключить в ХТМЛ, потом вызывать play().

>>1100889
В левом верхнем углу значок файла, по клику по нему "загрузить файл", вроде работает.

>>1100877
В этом случае require возвращает объект, деструктуризация берёт из него только свойство BlahIdent.
https://learn.javascript.ru/destructuring
#84 #1100900
>>1100889
Ты читать умеешь? Codepen.io, repl.it.
#85 #1100901
>>1100894

>"загрузить файл"


Они имеют в виду, что я сохраню себе на комп файл из их сервера, а не наоборот. Ну да ладно.
543533 Кб, 1000x620
#86 #1100907
>>1100901
Проблема у них тут с переводом, согласен.
Там можно сразу несколько файлов в папке выбирать, если что.
#87 #1100911
>>1100907
Ого! Даже картинку вышло подгрузить, спасибо! Я так вижу, вся эта штука очень полезная, буду в ней разбираться.
#88 #1101019
>>1100893
оке, няш смари я тут уже почитал про память, ща я еще парсинг изучу и заибашу тебе аддончик за полтора рубля кароч по рукам, оке?
#89 #1101031
>>1100777

> var unboundSlice = Array.prototype.slice


оторванный от массива метод slice, который внутри полагается на this.

> var slice = Function.prototype.call.bind(unboundSlice)


Вариант slice, который принимает this первым аргументом (см Function.prototype.call)
#90 #1101107
>>1100819

>function drawCanvas() {


> var canvas = document.getElementById('test');


> canvas.width = window.innerWidth;


> canvas.height = window.innerHeight;


> var dtx = canvas.getContext('2d');


> var img = new Image();


> img.onload = function() {


> dtx.drawImage(img, 0, 0, canvas.width, >canvas.height);


> };


> img.src= 'img/bgimage.jpg';


> save();


>


> function BLIAD(){ (меня надо вызвать)


> тут еба алгоритм;


> }


>}



Функция drawCanvas вызывается onload, функция BLIAD в произвольный момент времени по клику.
#91 #1101135
>>1099555 (OP)
Помогите пожалуйста!
В общем, есть строка. С помощью JSONparse формируются объекты. И в итоге получается что-то типа str.ex1.x
У меня ощущение что такого не может быть (получается, что x это "подсвойство" свойства ex1 объекта str), однако работает, хрен с ним.
Проблема вот в чём. Мне нужно последовательно перебрать свойства объекта str (там еще ex2,ex3,ex4...), и извлечь x из каждого. Это делается через for (key in obj). Таким образом можно получить свойства (т.е. ex1), но как можно получить x?
#92 #1101139
>>1101107
Ну, эм, во-первых, определи свою функцию вне drawCanvas'а (нахуя оно там вообще?), а во-вторых, напиши BLIAD() в теле функции-обработчика клика мыши для, собственно, вызова. В чём твоя проблема-то?
#93 #1101147
>>1101135
function extractXs (obj) {
var arr = [];
for (var key in obj) {
arr.push( obj[key].x );
}
return arr;
}

Получишь массив с иксами, если я правильно понял твою проблему.
#94 #1101153
>>1101147
Да, спасибо большое
#95 #1101164
>>1101147

>obj[key].x


а как это свойство свойства называется? Подсвойство чтоли?
#96 #1101166
>>1101147

>var


Когда вы уже перестанете, блядь.
#97 #1101168
>>1101164
Какое еще подствойство. obj[key] овзвращает объект, у которого запрашивают свойство x. Это совершенно два разных объекта.
#98 #1101171
>>1100893
>>1100434
Если программа все еще нужна, напиши на prakop/.729ANUSmailMT)PUNCTUMr=ETu.
miN3JJ875 Кб, 1043x1149
#99 #1101183
>>1099555 (OP)
Ньюкек, недавно прошёл курс джаваскрипта на кодакадеми(учу языки для себя и для автоматизации своих дел).
Пока гуглил про парсинг, заметил node.js. Это обязательно для парсинга, или можно с костылями в жопе и без доп библиотек(у того же ноде.жс сразу заметил вкусный request, который может очень понадобиться)?
#100 #1101202
>>1101183
Сразу ебошь на Nightmare или обмажься подвязками к Хрому через девтулз протокол.
А вообще, вот: https://github.com/dhamaniasad/HeadlessBrowsers
#101 #1101233
>>1101166
Похоже, что он только начинает и я решил не выёбываться.

>>1101164
[] и . это такие же операторы, которые возвращают какое-то значение.
Как 2 + 2 возвращает (позволяет себя заменить на) 4, так и {"x": 4}["x"] === 4 всегда.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Property_Accessors

У тебя в объекте содержится объект. Это не подсвойство, а две операции идущие подряд. Как в (2 + 4 - 5) плюс даст 6, потом минус даст 1, в итоге 1.
Так и str["ex1"].x
сначала str["ex1"] вернёт объект
потом ex1.x уже вернёт значение

function extractXs (obj) {
var arr = [];
var lookupKey = "x";
for (var key in obj) {
var innerObject = obj[key];
var wantedValue = innerObject[lookupKey];
arr.push( wantedValue );
}
return arr;
}
#102 #1101262
>>1101233

>Похоже, что он только начинает


В этом и соль. Надо показывать как правильно делать, а не как неправильно.
var по уму должен быть депрекейт.
#103 #1101266
>>1101233

>var


Ох, блядь.
Сам ему потом бушеь хостинг разжевывать, когда он сюда снова придет.
#104 #1101403
>>1101262

>по уму должен быть депрекейт


только не за пределами фигурных, выглядит по уебански и смысла не несет
#105 #1101414
Двач, а можно ли изменить место расположения npm просто переместив папку с npm и Gulp в другое место?

У меня есть сервак с Ubuntu 16.04, на котором папка с npm и Gulp лежит в /var/www/engine/, но я хочу перекинуть её, например, в папку /var/www/dev/. Я могу просто скопировать содержимое папки engine в папку dev?
#106 #1101444
>>1101183
Node.js среда исполнения Javascript. Еще там есть библиотеки для работы с файловой системой и тому подобное. Без ноды js можно запускать только в браузере. Есть еще Electron, среда для десктопных программ.
#107 #1101455
>>1101444

>Без ноды js можно запускать только в браузере.


Ну, учитывая мои задачи, я проходил курс только ради гугл скриптов для работы с гугл таблицами.
#108 #1101493
>>1101139
Проблема в том, что функция BLIAD тоже работает с канвасом и чтобы она что-нибудь делала с канвасом, сначала в ней опять надо создать объект канваса, впиздючить туда картинку, снова ее отрендорить и все остальное, что есть в функции drawCanvas. То есть по сути скопировать ее полностью, а это пиздец рак какой-то.

Так-то оно работало, если две независимые функции сделать.
#109 #1101581
>>1100777
из метода на массивах сделали standalone функцию
#110 #1101673
>>1101403
че?
любое var x в глобальном скоупе это global.x в отличии от let x в том же глобальном скоупе
#111 #1101733
>>1101493

>функция BLIAD тоже работает с канвасом


Так передай туда переменную с канвасом при вызове. И/или картинкой или что там тебе ещё нцжно. Или как глобальную её определи, чтобы обеим функциям была доступна.
Если у тебя твоя функция совсем никак не может работать, не имея всего предшествующего в зоне видимости (что было до этого в drawCanvas'е), то, быть может, и не нужно их разделять на две функции?
#112 #1101745
Функция принимает массив и поочередно добавляет пробелы к элементам массива.
Как сделать чтобы всегда редактирование начиналось с первого элемента, т.е. что х в первый раз назначался нулем?
Как надо работает только с четными числами.

const addSpace = function(arr, num) {
for (let i = 0; i < num; i++) {
let x = (num + i) % arr.length;
arr[x] += ' ';
}
};
#113 #1101762
>>1101745
Пиздец. Иди учись формировать ТЗ.
#114 #1101776
>>1101745
Объясни что ты хочешь? Зачем тебе let x=какая то магия. Задай себе два вопроса что я хочу сделать и нахуя это делать.
Программирование это объяснение как что то делать. Причём так понятно, что даже бездушная машина поняла. А пока даже анончики не понимают.
#115 #1101810
>>1101776
Задача
Принимаем огромную строку и число.
Необходимо эту строку нашинковать на множество строк размеров в принимаемое число.
Слова пополам делить нельзя. Если ширины не хватает (от того, что следующее слово не вмешается) увеличиваем количество пробелов, начиная от первого промежутка между словами.
Функция что выше, выполняет часть работа, когда уже необходимо раскидать пробелы. Количество требуемых пробелов вычислено и я пытаюсь их рассовать вот таким некрасивым способом – добавляю к элементам массива (словам) пробелы.

В конце выполнения задачи я с помощью join растравляю по одному пробелу между словами в строках и \n между строками

Уже лёг в кровать, пишу с телефона. Завтра если не смогу решить кину нормальное условие с имеющимсяя кодом
#116 #1101812
>>1101776
Задача
Принимаем огромную строку и число.
Необходимо эту строку нашинковать на множество строк размеров в принимаемое число.
Слова пополам делить нельзя. Если ширины не хватает (от того, что следующее слово не вмешается) увеличиваем количество пробелов, начиная от первого промежутка между словами.
Функция что выше, выполняет часть работа, когда уже необходимо раскидать пробелы. Количество требуемых пробелов вычислено и я пытаюсь их рассовать вот таким некрасивым способом – добавляю к элементам массива (словам) пробелы.

В конце выполнения задачи я с помощью join растравляю по одному пробелу между словами в строках и \n между строками

Уже лёг в кровать, пишу с телефона. Завтра если не смогу решить кину нормальное условие с имеющимсяя кодом
#117 #1101846
>>1101812
Аутист шоле? Сплитишь строку регуляркой по пробелам/знакам припинания, получившийся массив мапишь, если длина меньше чем нужно юзаешь padEnd. Джойнишь массив. Done
#118 #1101857
>>1101812
Слава богу что к концу 2017ого года обработка строк входит в стандартный пакет почти любого языка. Гугли про slice, trim, pad. Join уже знаешь, хорошо.
FireShot Capture 42 - Google URL Shortener - httpsgoo.gl108 Кб, 681x667
#119 #1101878
саб ЖС тредик, почти допилил свой чан, помогите найти причину, почему не отправляется шебм с телефона? кококо шпам листс https://goo.gl/Rg1KEo
#120 #1101932
>>1099555 (OP)
Скачал вот этот парсер, просто сохранив его как страницу: http://convertjson.com/json-to-html-table.htm
и теперь при вводе JSON-таблицы - выводится таблица.
Она выводится в отдельном div.
Хочу добавить к каждой строке текстовое значение "addnode="
где это сделать, всё перерыл - не могу найти, настопиздело уже... Может глянете да подскажете?
Пойду спать...
#121 #1101939
>>1101932
Сделал вот так короче, в html-файле:

var csv = $.csv.fromObjects(outArray,options);

arr = csv.split("\r\n");
arr.forEach(function(item, i, arr) {
if(i!==0 && item!==""){arr = "addnode="+item;}
});
csv = arr.join("\r\n");

Теперь, когда заходишь в какой-нибудь qt-кошелёк какого-нибудь альткоина, и вводишь getpeerinfo,
можно скопипастить JSON-ответ сюда, и получить список addnode для файла config.conf
#122 #1101946
>>1101846

>Сплитишь строку регуляркой по пробелам/знакам припинания


Так ему же по длине нужно. Плюс, как я понял, в получившейся строке, содержащей несколько слов, нужно равномерно добавить пробелов между словами, пока не дойдёт до нужной длины. Таким образом, нет гарантий, что между первыми двумя и последними двумя будет равный промежуток (например, сделать строку "я был здесь" длиной в 14 символов.)
Так что его цикла, пускай и по-умному сделанного, таки не избежать, по-моему, потому что в ЖС'овской реплейсе нельзя указать, сколько первых совпадений заменять. А ещё non-capturing group нельзя сделать, вообще регулярки в ЖС убогие, как по мне.
(Например, на питоне можно было бы легко сделать через пару регулярок сделать — https://repl.it/repls/DarkslategreySingleTuna )
#123 #1101953
>>1101946
А можно разрезать на слова, замерить их длину и слеплять. Если с новым словом в строке будет больше символов чем надо, значит слово не добавляем, а ебашим пробелы. Едем дальше пока до конца массива слов не дойдём.
#124 #1101956
>>1101953

>Если с новым словом <...> а ебашим пробелы.


И куда мы ебашим пробелы, если до лимита не хватает, скажем, 3-х символов? Очевидно, надо ещё раз обходить строку, которую только что слепляли, по-другому-то никак. И вот именно это тот анон, собственно, и пытался сделать в своём цикле.
#125 #1101957
>>1101956
А может и нет, хуй его знает, он объяснять не умеет.
#126 #1101961
>>1101957
Вы чего наехали на меня? Я вас тоже не могу понять.

Теперь все разъяснится, вот оригинальный текст задания

>Your task in this Kata is to emulate text justification in monospace font. You will be given a single-lined text and the expected justification width. The longest word will never be greater than this width.



Here are the rules:

Use spaces to fill in the gaps between words.
Each line should contain as many words as possible.
Use '\n' to separate lines.
Gap between words can't differ by more than one space.
Lines should end with a word not a space.
'\n' is not included in the length of a line.
Large gaps go first, then smaller ones: 'Lorem---ipsum---dolor--sit--amet' (3, 3, 2, 2 spaces).
Last line should not be justified, use only one space between words.
Last line should not contain '\n'
Strings with one word do not need gaps ('somelongword\n').

Example with width=30:
(тут должен быть моноширинный шрифт)
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vestibulum sagittis dolor
mauris, at elementum ligula
tempor eget. In quis rhoncus
nunc, at aliquet orci. Fusce
at dolor sit amet felis
suscipit tristique. Nam a
imperdiet tellus. Nulla eu
vestibulum urna. Vivamus
tincidunt suscipit enim, nec
ultrices nisi volutpat ac.
Maecenas sit amet lacinia
arcu, non dictum justo. Donec
sed quam vel risus faucibus
euismod. Suspendisse rhoncus
rhoncus felis at fermentum.
Donec lorem magna, ultricies a
nunc sit amet, blandit
fringilla nunc. In vestibulum
velit ac felis rhoncus
pellentesque. Mauris at tellus
enim. Aliquam eleifend tempus
dapibus. Pellentesque commodo,
nisi sit amet hendrerit
fringilla, ante odio porta
lacus, ut elementum justo
nulla et dolor.

Also you can always take a look at how justification works in your text editor or directly in HTML (css: text-align: justify).
#126 #1101961
>>1101957
Вы чего наехали на меня? Я вас тоже не могу понять.

Теперь все разъяснится, вот оригинальный текст задания

>Your task in this Kata is to emulate text justification in monospace font. You will be given a single-lined text and the expected justification width. The longest word will never be greater than this width.



Here are the rules:

Use spaces to fill in the gaps between words.
Each line should contain as many words as possible.
Use '\n' to separate lines.
Gap between words can't differ by more than one space.
Lines should end with a word not a space.
'\n' is not included in the length of a line.
Large gaps go first, then smaller ones: 'Lorem---ipsum---dolor--sit--amet' (3, 3, 2, 2 spaces).
Last line should not be justified, use only one space between words.
Last line should not contain '\n'
Strings with one word do not need gaps ('somelongword\n').

Example with width=30:
(тут должен быть моноширинный шрифт)
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vestibulum sagittis dolor
mauris, at elementum ligula
tempor eget. In quis rhoncus
nunc, at aliquet orci. Fusce
at dolor sit amet felis
suscipit tristique. Nam a
imperdiet tellus. Nulla eu
vestibulum urna. Vivamus
tincidunt suscipit enim, nec
ultrices nisi volutpat ac.
Maecenas sit amet lacinia
arcu, non dictum justo. Donec
sed quam vel risus faucibus
euismod. Suspendisse rhoncus
rhoncus felis at fermentum.
Donec lorem magna, ultricies a
nunc sit amet, blandit
fringilla nunc. In vestibulum
velit ac felis rhoncus
pellentesque. Mauris at tellus
enim. Aliquam eleifend tempus
dapibus. Pellentesque commodo,
nisi sit amet hendrerit
fringilla, ante odio porta
lacus, ut elementum justo
nulla et dolor.

Also you can always take a look at how justification works in your text editor or directly in HTML (css: text-align: justify).
Kosyachno103 Кб, 1920x1080
#127 #1101962
>>1101961
А вот то, что я написал вчера.

С помощью 'but' я пытался остановить обработку, когда все будет кончено.
#128 #1101981
>>1101962
Таки я правильно понял, что сделать надо.

Попробуй сначала расписать пошагово, что ты хочешь, чтобы твой код делал, потому что, если честно, хуй поймёшь, перемудрил бы.
Что значит этот "but"? Два раза джоин в конце, это вообще как?
Ты в addSpaces передаёшь массив букв, как я могу видеть, так что прибавлять пробелы к элементам этого массива это какая-то глупость.
Ну и да, обратись-таки к slice'ам, а то строки 26-35 это какой-то ужас.
Например, как >>1101953 сказал, только не слепляй сразу строку из слов, а массив держи, по которому потом пройдёшься, добавляя пробелы через починеный addSpaces.

анон с решением на питоне
#129 #1101982
>>1101981

>перемудрил бы.


бы = ты
фикс
#130 #1102041
>>1099555 (OP)
Кто для реакта ssr использует? Я расчитывал, что у меня страница на сервере сгенерится и клиент получит тупа html, но работает все тот же клиентский рендеринг, че бля за хуйня?
#131 #1102052
>>1102041
Ты утонул в лишних абстракциях.
maxresdefault (1)137 Кб, 1280x720
#132 #1102112
>>1101878

Антон, ну ты где?
#133 #1102114
>>1102112

>


> Антон, ну ты где?


Мне лень с телефона тестить.
#134 #1102125
>>1102114

нищук с некро телом или тян?
#135 #1102130
>>1102125
Не твоя личная армия прост.
#136 #1102142
>>1102130

>пок



это не /б аутист, тут люди учатся и помогают друг другу, иначе в чем суть этого тредика и всего пр, м?
#137 #1102158
>>1102142

>иначе в чем суть этого тредика и всего пр


Ссать в рот дауничам типа тебя.
23ef22 Кб, 190x528
#138 #1102185
Решил написать немного бека, что бы понять взаимосвязь между фронтом и бэкендом. Выбрал ноду -> експресс, так как других языков кроме js не знаю.
Фронт обрабатывает вебпак. (src -> public). Все изменения в папке src перезагружают браузер.
На сервере, прям как наши деды использую шаблонизатор с серверной логикой и отдаю клиенту уже целую html страницу (начинаю с самого простого крч).
А теперь сама проблема: Нужно сделать так, что бы после изменений в файлах-шаблонизаторах (.pug), браузер тоже перезагружался.
Пытался использовать reload плагин для expressjs, но он перезагружает браузер только тогда, когда вношу изменения в серверных файлах (app.js и прочего дерьма, которое в него импортируется).
Помогите пожалуйста.
#139 #1102187
>>1102125
Ты ахуел наезжать, пидр? Хуй тебе за воротник, а не помочь. Мне просто компьютера на работе хватает, ебал я в рот жопу отсиживать, я на двач захожу отдохнуть. Сижу сру, и /pr листаю.
#140 #1102191
>>1102185
Фига у тебя деды молодые. Деды статические файлы раздавали и верстали таблицами. А почему тебя просто ф5 нажать не устроит?
#141 #1102195
>>1102191
Ну так я верстаю там, нужно сразу видеть результат. Хотя если не найду решения, то смирюсь и буду жать...
#142 #1102196
>>1102195
Передавать AJAX-запрос на сервер, проверять время изменения последнего файла, и узнав об этом на клиенте, выполнять "reload()".
Но вообще лучше F5.
#143 #1102199
>>1102158

>пок



к чему ты тут устраиваешь это перекидывание калом? ты из деревни или просто тупой? пиздуй на завод, не позорь нормальных анонов
#144 #1102212
>>1102196
Вот хороший вариант. Но оно того не стоит, это целый маленький проект. Лучше ф5,по затратам-эффективности.
#145 #1102216
>>1102212
>>1102196

Я тут столкнулся с другой проблемой, которая рано или поздно ко мне придет.

После билда в продакшен, вебкап ко всей статике в названия добавит хеш, а пути в файлах-шаблонизаторах останутся прежними.
Раньше, когда я занимался только фронтендом, html файл у меня генерировал вебпак и он сам менял все пути в html файле, когда происходил билд в продакшен.

Да я вообще не понимаю как происходит реальная разработка от начала и до конца...
Во всех видео-уроках показывают слишком поверхностно, то что и самому можно понять, прочитав доки...
#146 #1102222
>>1102191

> Деды статические файлы раздавали и верстали таблицами


Это я такой старый по-вашему?
#147 #1102277
>>1102222
Не обижайся, мы с уважением. Лучше баек расскажи старых.
>>1102216
Поищи в npm'e модуль для этого. В ноде для всего есть модуль. А вообще то что ты делаешь - не реальная разработка, а модная сублимация, направленная на повышение зарплаты. Больше умных слов знаешь => больше можешь просить.
#148 #1102399
>>1102185
гугли SSE
#149 #1102418
>>1099555 (OP)
Ребята кто хочет побыть моим ментором по react redux буду платить битками цену обсудим моя телега @reactboi
#150 #1102549
>>1102418

>моя телега


>2017


>телега


Здрово, что ты предоставил свой номер телефона, выписку из ЖЕКа и анализ кала для того, чтоб обмениваться сообщениями в Интернете в 2017 году. Большинство твоих сверстников совсем немного опережают тебя по развитию, но не готовы к таким подвигам. Мама говорит, что ты герой и она права. Но всё таки попытайся найти другую площадку.
#151 #1102559
>>1102549
Валим в utox, посоны.
#152 #1102578
>>1102549

>2017 год


>регистрировать сим-карты на себя


>регистрировать аккаунты в сети на сим-карты привязанные к тебе


>поучать кого-то в интернете



Шёл бы ты отсюда, петушок.
#153 #1102589
>>1102549
>>1102578
мама я анонимус
image231 Кб, 416x396
#154 #1102669

>Сидят на мейлаче


>Кукарекают о анонимности в телеграмме.

ICQlogo123 Кб, 577x588
#155 #1102670
>>1102589
>>1102578
>>1102559
Вы чего взбунтовались? Ну отдали номера и телефонки за возможность обмениваться сообщениями через Интернет. Это же уникальное современное предложение, у вас не было другого выхода. Всё нормально, никто вас говноедами не называл.
2017-12-0414-34-25338 Кб, 1656x924
#156 #1102754
нашел супер видос поясняющий за магию внутри этой черной блядской коробочке

https://www.youtube.com/watch?v=8cV4ZvHXQL4
#157 #1102822
>>1102754
Держи в курсе
8tE74B8umo102 Кб, 736x944
#158 #1102834
>>1099555 (OP)
сап, аноны.

Вобщем помогите дизайнеру которого заставили верстать сайт, суть проблемы такова у меня есть div.myclass в нем вложен ul в котором есть несколько li в которых вложены а в которых вложены span(и эту структуру изменить нельзя из-за плагина который ее создает), и мне нужно в эти спаны записать их порядковый номер в таком виде 01 02 03 04 05 06 07 08 09 10 11 и тд, при этом количество элементов может меняться, с меня как обычно слезное обещание выучить наконец таки джаваскрипт и джеквери
2017-12-0418h40296 Кб, 416x129
#159 #1102848
Накидал пару палок строк на ноде для патчинга саблайма 3.х dev-билдов. Снимает с экзешника блеклист на твиттеровский ключ: https://repl.it/repls/LimegreenOrangeredTopi
Паттерн невозбранно спизжен с руборда.

1) Поместить скрипт в папке с sublime_text.exe
2) Сделать бекап оригинального файла sublime_text.exe
3) `node app.js`
4) ???
5) PROFIT!
#160 #1102866
>>1102834

>из-за плагина


>изменить нельзя

#161 #1102868
Такс-такс-такс. Можно ли сделать так, чтобы в браузере писало ошибки если они есть? И вообще есть такое в JS?

Ну например напишу:
<script>
"use strict";
num = 5;
</script>

И ошибку и напишет где. Если нету, то что делать?
#162 #1102869
>>1102868

>что делать


устанавливать линтер и не пользоваться стриктом
#163 #1102871
>>1102869
Что такое линтер и почему стриктом лучше не пользоваться?
#164 #1102873
>>1102822

>Держи в курсе


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

так что собрал вот подборочку на которой все четко блядь видно сука, по шагам, чо куда кто и почему, просто кайф

http://esprima.org/demo/parse.html#
http://int3.github.io/metajs/ — вот эта прям оче полезная
http://latentflip.com/loupe
#165 #1102876
>>1102873

>технари


>JS


LOOOOOL

>так что собрал вот подборочку на которой все четко блядь видно сука, по шагам, чо куда кто и почему


Ненужно это все js программисту.
Элементарно, зарплата не оплачивает подобных умственных усилий.
8tE74B8umo73 Кб, 1280x720
#166 #1102878
>>1102866
не не, ты не понял, у меня есть верстка(и верстать более-менее научился, вот только скрипты для меня геморно даются), потом в нее добавляются с помощью плагина дополнительные html-элементы и мне уже в них нужно внести изменения
#167 #1102881
>>1102866
и мне внутрь спана нужно внести значение
#168 #1102883
>>1102876

>Ненужно это все


а как иначе спокойно работать?

Как я могу ездить на автомобиле, не зная принципов работы его узлов и агрегатов? А что если на трассе что то случится, да даже если в городе встрять один хуй не приятно, а если с кем то, подвести людей, такая то ответственность не только за себя, но и за пассажиров и всех участников движения или ты хочешь сказать что я аутист и все задачи уже решены копируй@вставляй ! ?
#169 #1102885
>>1102834
let spans = document.querySelectorAll(".myclass span");
for (let I = 0; I < spans.length; I++) {
If (I < 10)
spans.innerHTML = "0" + String(I);
else
spans.innerHTML = String(I);
}
#170 #1102887
>>1102885
Писал с телефона, но вроде должно работать
#171 #1102888
>>1102881

>внутрь спана


>>1102887
#172 #1102894
и да если через квери селектор то сразу ебашить спан можно без обращения к класу же, один хуй он вложен в списки там хуиски
#173 #1102898
>>1102888
Как анон выше сделал?

><span_01>


Тогда единственный способ, по-моему удалять кодом имеющиеся спаны и херачить свои, модифицированные
#174 #1102900
>>1102898

>Тогда единственный способ


переписать плагин под изменившиеся задачи блять очевидно же, проще туда строчку дописать чем сикл гонять
#175 #1102908
>>1102900
Да нихрена не очевидно. Я не зна что за плагин это и можно ли вообще его изменять
#176 #1102909
>>1102908
а кто знает?

ты ж вебмастер ебта, если какая то хуевина выдает тебе штемель, значит ты обязан с ним совладать иначе я б тебя в тот же вечер суку на мороз с макбуком в сраке
#177 #1102910
To create a variable in JavaScript, we need to use the let keyword.

А в русском var

Что за различия ?
#178 #1102911
>>1102910
платиновый вечер ебать

es6 гугли ебанный ты по голове
8tE74B8umo4 Кб, 276x183
#179 #1102912
>>1102885
увы не взлетело

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

>>1102908
fullPage.js
мне надо навигацию по слайдам превратить из точек в цифровую
#180 #1102914
>>1102911

>es6


Дякую хлопец
#182 #1102917
>>1102916
Это что за таблица? Как ее открыть? Тоже хочу свою регулярку сделать, я решал задачи на регулярные, но на другом языке.
#183 #1102918
>>1102917
она уебанская братишь, парсит после загрузки, поэтому приходится отварачиваться на опасных тяжелых сайтах

word replace гуглить расширения
#184 #1102942
>>1102912
https://jsfiddle.net/26s12uj7/
На этот раз работает
#185 #1102948
>>1102912

>я тупая пизда и не могу отличить ul от ol


а вообще

>navigation: (default false) If set to true, it will show a navigation bar made up of small circles.


соси члены лучше тупопездная библиотечка не имеет настроичик для цифирик((((
2017-12-04 (2)185 Кб, 1353x848
#186 #1102949
>>1102942
все тщетно родной
#187 #1102951
>>1102883

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


Как 95% водителей.

>что то случится


Один хуй ты ничего на современных кредитовозках не сделаешь, так что эвакуатор + метро.

>все задачи уже решены копируй@вставляй


Да.

>>1102909
А макбук новый? Я б не против был.
#188 #1102958
>>1102951

>95%


ну ты понел кек

>современных кредитовозках


тащемта и не ломаются первыет пару лет

>копируй@вставляй


а как тогда ощутить себя кодером лол!? ты же блять мартышка ебучая, нахуй так жить

>>1102951

>А макбук новый? Я б не против был.


больной ублюдок клава говно, в новых так просто пиздец, экран маленький, подключаешь к монику начинает кулек выть как сука, в рот ебал эти игрушки гейские, а с мороза так еще и холодный блядовина люменивая, толи дело вот мелокомякие, обтянули алькантарой, красавчики, но все равно говно без задач за сотню денег
#189 #1102960
>>1102949
Ты как подключил скрипт? Он после твоего фулпейджа идет? Если нет, сделай после.
Я спать, завтра в школу рано вставать
#190 #1102961
>>1102958

>больной ублюдок


Так я продать и нормальный, 15-ого года купить.

>тащемта и не ломаются первыет пару лет


Какая разница? Суть в другом была.
#191 #1102962
>>1102958

>а как тогда ощутить себя кодером лол!?


Для начала, хотя бы уйти из JS'а.
#192 #1102969
>>1102960
это жикверьная параша, я ее палкой потыкал и бросил впизду блядь

>>1102961

>15-ого года


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

>>1102962
лол ты что шутешь что ли, жс это год тир язык, только в нем ты можешь почувствовать себя молодым современным специалистом а на чмом байтоебом, деды байты ебали и я ебать буду writeln suka, он растет он меняется, в нем нет рамок и нет границ, он вобрал в себя самое лучше и продолжает совершенствоваться руками огромного интернационального комунити — он тупо охуенен и в этом я убеждаюсь раз за разом
#193 #1102972
>>1102834
Это семантически плохая верстка. За такое в 2017 гугл применяет санкции. Какие точно не знаю
#194 #1102975
>>1102972

>Какие точно не знаю


На парашу, на самое дно нахуй поискового запроса сука, только так
#195 #1102977
>>1102878
Потому что JS не знаешь. С помощью jquery писать на джаваскрипте не научишься.
#196 #1102981
>>1102975
Спаны не суют в списки, разве не так?
#197 #1102983
>>1102969

>но клава хуита


А мне наоборот нравится очень.

>и экранчик маленький


любитель 17" ноутов? Иначе странная претензия. Его ж нигде, кроме столе, на котором может стоять монитор, особо и не раскроешь.

>я ее палкой потыкал


Так ты можешь ссылку на фиддл свой дашь, чтобы местные починили?

>я убеждаюсь раз за разом


Я не понял, так это ты горе-дизайнер или нет?

>год тир язык


Картиночка с доказательством-то будет?
#198 #1102985
>>1102981
спан строчный элемент выделения моя ебать твоя рука, я сплю отхебись, суй его куда хочешь, другое дело у тебя есть артикл секшон хуекшон, просто надо помнить об этом и юзед вайзли сука
#199 #1102987
>>1102983

>Картиночка с доказательством-то будет?


Вечно кому-то что-то доказывают скрипт-киддисы, а мы пишем и радуемся.
d792qbjqCmU554 Кб, 1900x1297
#200 #1102991
>>1102983

>нравится очень


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

>любитель 17" ноутов?


топ кек фотка старая бзв

>Я не понял, так это ты горе-дизайнер или нет?


обижаешь братишка

я ж все подробнейше пояснил, какие еще картиночки то, вот через пару лет будешь кофеварку прогать, вспомнишь анона хуле
#201 #1102993
>>1102985
Вот именно. Списки для меню, а меню из блоков. Спаны туда не подходят, ни технически, ни семантически.
8tE74B8umo165 Кб, 640x490
#202 #1102995
>>1102942
спасибо тебе огромное, анон! все работает!

>>1102948

>я тупая пизда и не могу отличить ul от ol


к чему это? не, рили интересно

>тупопездная библиотечка не имеет настроичик для цифирик((((


именно поэтому здесь все эти танцы с бубном и затевались

>>1102972
ты явно не знаком с продакшеном, тут как бы качество, семантичность и прочие полезные и интересные штуки о которых макеев постоянно речи талкает никому не нужны
п.с. ты когда-нибудь видел лендинг из одного джепега и кучи ссылок абсолютно спозиционированых на нем?

>>1102977
спасибо, кэп, я в курсе чем отличается джеквери от js
2015-07-07222303693 Кб, 1890x1257
#203 #1102996
>>1102993
в пекло семантику!
#204 #1103007
>>1102995

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


Если сайт для себя, то нужно думать о семантике. Потому как продвигать будет легче.
1430218350127427361725 Кб, 604x439
#205 #1103009
>>1102912
Это нихуя не простецкая задача.
Я не сильно разбирался, но получилось такое:
https://codepen.io/anon/pen/qVvxWE
Надо добавить колбек afterRender и в нём насрать циферками.
8tE74B8umo30 Кб, 480x360
#206 #1103015
>>1103009
и тебе огромное спасибо, анон! чую, вы в двоем спасли чью то задницу от увольнения
#207 #1103019
Расскажите мимо крокодилу, сколько за час вы получаете, сколько часов в день работаете и сколько дней в неделю?
Ну и что именно делаете в двух словах.
Интересно какие навыки сколько стоят.
#208 #1103045
>>1103015
Если тебя, дезигнера, могли уволить за то, что ты не решаешь инженерные задачи по кастомизации хуёво сделанного стороннего плагина для Жиквери, то может мы лучше не будем им мешать?
Мы то тебя из любого дерьма постараемся вытащить, но ты к карме прислушайся.

>>1103019
В двух словах пишем сценарии. Несколько часов в день, несколько дней в неделю.
300к\сек в Тайланде. Можешь открыть ГОСТ со стоимостями навыков и проверить, долбоёб.
#209 #1103069
Изучаю JS после другого языка. Какой же безумный язык. Мне нравится. Это нормально?
#210 #1103073
>>1103069
Если после PHP, то да.
#212 #1103075
>>1103073
Но как, Ватсон?
#213 #1103077
>>1103075
Хуже жаваскрипта только PHP.
#214 #1103175
>>1103069
нормально. охуенный язык.

че, куски говна, вывели список с циферками? молодцы, развиваетесь.
#215 #1103178
эх дегроды

if (i < 10)
spans.innerHTML = '0' + i.toString();
else
spans.innerHTML = String(i);

заменяется одной строчкой

spans.innerHTML = ("00" + i).substr(-2);
#216 #1103220
>>1103178
Если тебе циклом надо обработать миллион строк, то 2й вариант медленней.
#217 #1103247
Выручайте, сам вообще не дизайнер, а js изучаю, чтобы морду сайта написать. Нужен css framework для React, такой чтобы без лишних страданий был среднего вида дизайн.
#218 #1103261
>>1103247

css framework для реакта? Че несешь болезный? Если тебе дизайн без лишних страданий, то посмотри вот это
https://react.semantic-ui.com
или конкретизируй, что тебе именно, а то пиздец.
#219 #1103262
>>1102876

>>технари


>>JS


>LOOOOOL



В JS предостаточно чистых технарей, не связанных никак с дизайном и прочим html программированием.
sage #220 #1103268
>>1103262
но в этом треде только говноеды
#221 #1103269
>>1103069
ES6 хорош, можно писать также лаконично как на функциональных языках. Слабая типизация конечно не очень, но в целом язык отличный.
#222 #1103270
>>1103268
сага приклеилась
#223 #1103273
>>1103268
ты забыл где мы находимся .hk
#224 #1103286
>>1103045

>называет анона долбоебом


>хотя сам пишет про необходимость говноконторке с эникей ДИЗХАЙХНЕРОМ завести ИНЖИНЕАРА


розовая поня дегенерат ебучий блядь, дизайнеров как грязи, если эта что то не может, за килограмм хлеба и лапши найдут другого, пошмышленней, рыночек решает, а твои маняпредставления — нет
#225 #1103287
>>1100779
Говорят что сам создатель редукса советует не начинать изучать редукс и пилить без него как ни в чем не бывало. До тех пор, пока не начинаешь реально упираться в потребность в этом самом редуксе.
#226 #1103288
>>1102991

>старой классики на резинках, <...> на топры или вишневые свичи


Извини, я что-то нихуя не понял.

>топ кек


Тогда я не понимаю претензии "экранчик маленький" конкретно к ноуту, если есть внешний монитор который можно к чем угодно подключить.

> какие еще картиночки то


Ну, со списком языков по god/good/shit tier'ам распределённым.
#227 #1103289
>>1099961

>В прошлым треде обоссали ангуляр и топили за реакт, теперь реакт не угодил.


Таки правильно сделали что обоссали ангуляр. Тут просто, это... а нахуя тебе реакт в имиджборде? Для фронтенда времен первой половины 2000-х? jQuery для интерактива тебе не там не будет уже хватать?
#228 #1103290
>>1103220
В таком случае, номера строк в двузначные числа влезать не будут. Нахуяришь шесть if/else if'ов?
e7BN1LmdYJt2bNecK8Vj6xD30jihNzlyopt6IUpKYNg154 Кб, 1024x672
#229 #1103291
>>1103288

>Извини, я что-то нихуя не понял.


тебе сюда https://www.reddit.com/r/MechanicalKeyboards но если коротко топра это клава за 20 тысяч русских рублей, чери - за 10

>если есть внешний монитор


я просто куплю системник, который будет дешевле и мощнее, кодить в кафе или на диване это хуита

>списком языков


ок, есть топ тир жс и отсталое говно для ребят в растянутых свитерах и очках без оправы
#230 #1103292
>>1103291

>механические клавы


Не, спасибо, я с ума от шума сойду через неделю. Ну и плюс ход и расположение клавиш и всё такое, когда пробовал — совсем не понравилось (наверняка частично дело привычки, конечно), так что уж лучше говноедом останусь, спасибо. Только не надо про шум клав новый макбуков, они говно.

>я просто куплю системник


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

>есть топ тир жс и отсталое говно


Ну так не интересно.
#231 #1103293
>>1103292

>шум клав новый макбуков


они не шумят родной, они по пизде лопаются сука, ход крошечный, пластика с хуй, только когда эта ебань отколется ты хуй топкейс клееный поменяешь, просто пойдешь за новым, а этот на детали за пару рублей дай б-г продашь

>в чём тогда смысл


писи мастерпис же, это как с FOSS ^_^ не могу удержаться когда вижу чужие страдания
#232 #1103294
>>1099555 (OP)
Приветствую, аноны.
Есть вот такой вот портабельный порт-сканнер: http://www.andlabs.org/tools/jsrecon.html
Представляет из себя портативную страницу, работающую через WebSockets и XHR в браузере.
Моя задача проверить список рандомных IP с рандомными портами и вывести доступные - в лог.
Но при каждом вызове функции генерируется отдельные результаты, которые идут в div,
при этом в div результаты только последнего сканирования.

Я сделал так:
1. у меня заходит в textarea список:
addnode=107.185.205.40
addnode=58.218.204.206:86153
addnode=148.251.53.212
addnode=13.126.44.33
addnode=173.212.207.13:15165
addnode=5.189.152.63
addnode=85.25.117.71


2. Список парсится в массив. Регулярными выражениями извлякаются IP и порты.
Первый найденный порт если не указан - объявляется дефолтным, и вставляется рядом со всеми другими IP, в которых он не указан.
Дальше, идёт через foreach сканирование, но результаты выводятся только для последнего сканирования.

На выходе по-идее должен быть список доступных нод.
Как сделать???
#233 #1103295
>>1102995

>>я тупая пизда и не могу отличить ul от ol


>к чему это? не, рили интересно


а мне интересно сейчас интим услуги дизайнера сколько стоят? для начальника скидка или совсем бесплатно? зп по часам? на работу приходишь к обеду наверное

>>1103175

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


ДЫА))))
#234 #1103296
>>1103293

>они не шумят родной


Ты странный. Я указал на один яркий недостаток для меня в механике — шум, считая при этом клаву макбука очень удобной для себя. Очевидно, было бы довольно странно упрекать механику в шуме, если бы макбуки шумели точно так же. Новые вот как раз и шумят серьёзно, и именно поэтому я его упомянул. То, что у этой клавы есть другие недостатки, я и так в курсе.

>мастерпис


master race, может, а не пис?
#235 #1103297
>>1103295
А нолики перед цифрами где?
15-1450180987-yash-masterpiece-distribution-rights-breaks-r[...]55 Кб, 600x450
#236 #1103298
>>1103296
я подумал мак шумит лол, устрос

ну хз звук то пиздатый, вот синии они щелкают и высверливают мозги, а красные просто кайфово лязгают, ну и капсами стучат об плейт стальной можно если ты неврастеник, но ведь можно и не стучать, там 45 грам на кнопке, клавиши просто плавают под пальчиками ммм кайф

а резинки(рабердом) или топры они соответственно еще тише

>master race


блять обосрался чурк сук)

>>1103297
ой нахуй иди братишк)
#237 #1103301
>>1103294
Всё, решил. Там в функции scan_ports() повторно объявляется ps_open_ports=[];
который уже был объявлен вверху скрипта var ps_open_ports=[];
#238 #1103303
>>1103301
Всё-равно херня. Теперь при каждом сканировании одни и те же порты появляются.
#239 #1103322
>>1103303
Ты код-то покажи, ёба. Это твой сайт или не твой? Какой ещё text area, где что парсится? Где массив создаётся, откуды ты выход берёшь?
#240 #1103351
НИКОГДА НЕ ПОЗДНО
https://rabota.ua/cv/10889107
#241 #1103381
>>1103351
Небось дед-то ее хрилансит на коболе по одной бабкиной пенсии в день, вот и решила не отставать.
#242 #1103383
>>1103351
Охуенная бабка, пример для подражания.
Yep109 Кб, 1920x1080
#243 #1103386
Заработало.
#244 #1103400
>>1103261
Да, оно, спасибо. А что по поводу бутстрапа для реакта? Или это получше будет?
#245 #1103535
>>1103322

>Ты код-то покажи.


Код в браузере смотри.

>Это твой сайт или не твой?


Сайт не мой, и это не сайт - это страничка c JS-кодом. Её можно скачать.

>Какой ещё text area, где что парсится?


textarea у меня тут, и да, она парсится.

>Где массив создаётся.


Там же, при парсинге...
Сначала я делаю так:
var textArea = document.getElementById("addnode_list").value;
var port = document.getElementById("default_port_for_nodes").value;

потом вот так:
var first_ip = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/; //one fists founded IP
var arrayip = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g; //all IP addresses in array
var ip_port = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,7}\b/g; //ip:ports in array
var first_port = /:\d{1,5}/; //first founded port in array

и вот так:
var ips = textArea.match(arrayip); //array with all ip addresses including that where port not specified
var ips_ports = textArea.match(ip_port); //array with ip:port where port is specified
var nodes = ips.concat(ips_ports); //array with ip + array with ip:port

После уже работаю с массивом nodes, извлекая ip и port - и вызывая функцию scan_ports() c этими параметрами.

>откуды ты выход берёшь?


я вижу этот выход где-то в функции results_ps(), но как его вытащить оттуда в виде трёх параметров через setinterval - вот это понять не могу...
Если поможешь переписать всё это под рандомный IP с рандомным портом и одиночным коллбеком, с тремя параметрами - запощу здесь готовое решение своё.
Суть его такова:
На входе - список криптовалютных нод, или список, содержащий IP с указанием дефолтного порта,
а на выходе - список нод у которых открыт порт.
#245 #1103535
>>1103322

>Ты код-то покажи.


Код в браузере смотри.

>Это твой сайт или не твой?


Сайт не мой, и это не сайт - это страничка c JS-кодом. Её можно скачать.

>Какой ещё text area, где что парсится?


textarea у меня тут, и да, она парсится.

>Где массив создаётся.


Там же, при парсинге...
Сначала я делаю так:
var textArea = document.getElementById("addnode_list").value;
var port = document.getElementById("default_port_for_nodes").value;

потом вот так:
var first_ip = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/; //one fists founded IP
var arrayip = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g; //all IP addresses in array
var ip_port = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,7}\b/g; //ip:ports in array
var first_port = /:\d{1,5}/; //first founded port in array

и вот так:
var ips = textArea.match(arrayip); //array with all ip addresses including that where port not specified
var ips_ports = textArea.match(ip_port); //array with ip:port where port is specified
var nodes = ips.concat(ips_ports); //array with ip + array with ip:port

После уже работаю с массивом nodes, извлекая ip и port - и вызывая функцию scan_ports() c этими параметрами.

>откуды ты выход берёшь?


я вижу этот выход где-то в функции results_ps(), но как его вытащить оттуда в виде трёх параметров через setinterval - вот это понять не могу...
Если поможешь переписать всё это под рандомный IP с рандомным портом и одиночным коллбеком, с тремя параметрами - запощу здесь готовое решение своё.
Суть его такова:
На входе - список криптовалютных нод, или список, содержащий IP с указанием дефолтного порта,
а на выходе - список нод у которых открыт порт.
#246 #1103547
>>1103400
Я сам вообще бутстрап не люблю, поэтому в сторону бутстрапа для реакта не смотрел даже, так что если тебе нужно, гугли сам. Это довольно удобно, как мне кажется, но опять же, что тебе удобно, то и юзай.
#247 #1103552
>>1100056
может принять одно из указанных значений, если указано другое, будет еггог. Это называется String literal type. Подробнее https://basarat.gitbooks.io/typescript/docs/types/literal-types.html
#248 #1103553
Вопрос к продвинутым анонам. Правда ли что единственный способ заставить промисы выполняться последовательно друг за другом - это соединить их через then? Вопрос по чистому js, я не про async/await сейчас. Я как раз хочу разобраться как работают всякие транспайлеры и библиотеки типа ко и подобных.
Допустим у меня есть промис, который я хочу выполнять в бесконечном цикле до определенного условия. Я могу это запилить только через цепочку then, соответственно с каждой итерацией цепочка будет увеличиваться и будет расти память. Короче, умеет ли жс в бесконечную асинхронщину?
#249 #1103556
>>1103547
Ладно, спасибо.
#250 #1103557
>>1103553
написать бесконечный асинхронный цикл с авайтом и транслировать его, чтобы посмотреть во что развернется, ты конечно не пробовал
#251 #1103560
>>1103535

>Код в браузере смотри.


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

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

Короче, мне кажется, тебе нужно сделать следующее:
Предположим, что у тебя есть список нод в виде (твои \t\t\t\t читать желания никакого нет, уж извини, там уж сам подгони под свою структуру данных)

>nodes = [{ip: '1.1.1.1', start_port: 1, end_port:500}, {...}]


Далее, для каждой ноды нужно сделать (именно глобальные переменные изменяй):
ip = node.ip
start_port = node.start_port
end_port = node.end_port
scan_ports_ws() // ну или scan_ports_xhr()
let count = end_port - start_port + 1

Далее, периодически проверяй, готов ли результат. Где-нибудь предварительно объяви
function isFinished(){
if (count == (ps_open_ports.length + ps_closed_ports.length + ps_timeout_ports.length)) {
fin();
} else {
setTimeout(isFinished, 1000);
}
}

А потом, после вызова scan_ports_xx(), сделай:
setTimeout(isFinished, 1000);
Будет каждую секунду проверять, все ли порт провелись. fin это твоя фунция, которая будет что-то с результатами делать и перевызывать процесс для следующей ноды.
Решение такое себе, костыльное, но на одном уровне с "либой".

По-хорошему, я бы тебе посоветовал прочитать страничку "more details" да реализовать эту хрень самому.
#251 #1103560
>>1103535

>Код в браузере смотри.


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

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

Короче, мне кажется, тебе нужно сделать следующее:
Предположим, что у тебя есть список нод в виде (твои \t\t\t\t читать желания никакого нет, уж извини, там уж сам подгони под свою структуру данных)

>nodes = [{ip: '1.1.1.1', start_port: 1, end_port:500}, {...}]


Далее, для каждой ноды нужно сделать (именно глобальные переменные изменяй):
ip = node.ip
start_port = node.start_port
end_port = node.end_port
scan_ports_ws() // ну или scan_ports_xhr()
let count = end_port - start_port + 1

Далее, периодически проверяй, готов ли результат. Где-нибудь предварительно объяви
function isFinished(){
if (count == (ps_open_ports.length + ps_closed_ports.length + ps_timeout_ports.length)) {
fin();
} else {
setTimeout(isFinished, 1000);
}
}

А потом, после вызова scan_ports_xx(), сделай:
setTimeout(isFinished, 1000);
Будет каждую секунду проверять, все ли порт провелись. fin это твоя фунция, которая будет что-то с результатами делать и перевызывать процесс для следующей ноды.
Решение такое себе, костыльное, но на одном уровне с "либой".

По-хорошему, я бы тебе посоветовал прочитать страничку "more details" да реализовать эту хрень самому.
#252 #1103566
>>1103557
Там сложна. Нечитаемая хуйня выходит.
#253 #1103577
>>1103553

>Вопрос по чистому js, я не про async/await сейчас.


Это чистый ЖС, это просто сахарок над промисами в генераторах. Генераторы выступают и как приёмник, и как источник данных.
http://exploringjs.com/es6/ch_promises.html
http://exploringjs.com/es6/ch_generators.html
http://exploringjs.com/es2016-es2017/ch_async-functions.html
Раушмайера почитай, например, если MDN уже читал. У него там много закидонов и абузов описано.
Ещё у Симпсона обязательно должно быть что-то просветляющее, но не гарантирую, так как сам никак не заставлю себя прочитать:
https://github.com/getify/You-Dont-Know-JS/tree/master/async & performance

Простейшая бесконечная асинхроншина в ЖС это setTimeout для вычислений или requestAnimationFraim для графики, который каждый раз вызывает сам себя.

let timer = setTimeout(printSec, 0, 1);
function printSec (second) {
console.log(second);
timer = setTimeout(printSec, 1e3, second + 1);
}
// будет бесконечно, в стеке и куче будет только одна функция, можно остановить через 30 сек. например
setTimeout(() => clearTimeout(timer), 30e3);

ЖС оптимизирован для простеньких сценариев на страничках. Да, ты обычно просто хочешь воспользоваться результатом результата и вызываешь пару раз .then(), он оптимален для такого. Если ты начинаешь его абузить для какой-то надуманной хуйни, то это уже твои проблемы.
Скорее всего, как я передаю секунды в примере, так же можно и промисы передавать, резолвить их руками, нормально поебаться. Мне лень сейчас проверять и биться об подводные камни. Скорее всего промисы даже потеряют ссылку после перезаписи таймера и будут очищены мусорщиком. Но это будет помойка, потому что промисы отрабатывают в микротасках, а таймеры в тиках лупа, на уровень выше.
Короче, разберись с инструментами и своей архитектурой для начала. А потом либо забивай гвозди молотком, либо хуярь микроскопом и не жалуйся.
#254 #1103586
>>1103577

>Fraim


Frame
Сам себе не перезвоню.
#255 #1103595
>>1103553

>как работают всякие транспайлеры


Делают ебучий конечный автомат на свичах и глобальных состояних
https://babeljs.io/docs/plugins/transform-regenerator/
https://ru.wikipedia.org/wiki/Конечный_автомат
Про бесконечно там while true как можешь заметить.
2017-12-0520-40-0832 Кб, 945x976
#256 #1103606
переставлял тут свои часики на свежие рельсы бесподобную конструкцию let t.h = t.getHours; ес6 жрать отказался сука и мне кажется я прозрел анан, наконец то функции делают то как названы, но хочу уточнить, все ли по красоте?

накатил бабель кстати, теперь дрочить старый унылый стандарт вообще нет смысла, тут же листанул посмотрел че там на выходе, вздрогнул и обратно пишешь свой няшный питонообразный свежий кодик
#257 #1103629
>>1103606

>let t.h


После let должен быть идентификатор, в котором не может быть точки.
Идентификатор (типа имя переменной) это нижнее подчёркивание или юникод-буква (некоторые юникод-точки помечены соответствующе) первым символом, далее буквы, цифры, подчёркивания.
Русские буквы тоже будут работать, например. Проверь, но никогда так не делай.
let анон = "лев";
console.log(анон);
https://tc39.github.io/ecma262/#sec-names-and-keywords

>функции делают то как названы


переменная конКат это противокошки или что в ней?
Давай начнём с того, что ты будешь избегать любых сокращений. Даже если ты будешь печать большим пальцем ноги (попробуй), это всё равно займёт незначительную часть всей твоей работы. Пиши полно и ясно.
В именах функций первым должен идти глагол, описание действия. Не клокПринт, а принтКлок. В русском языке допустимо "часы печатать", но мы то по-английски пишем, у них порядок слов в грамматике, а не в экспрессии.

И если на странице ещё что-то будет выполняться, твои часы не будут рабоать, так как Интервал не гарантирует, что сработает по времени.
Когда Ивент-луп делает тик, он первым делом устанавливает переменную вроде каррентТайм, потом он сравнивает таймеры со временем в этой переменной, запускает коллбеки тех, которые меньше или равны. Если кто-то впендюрит в Луп коллбек, который работает больше секунды, то твой Интервал вызовется только после этого коллбека и часы начнут отставать соответствующе.
Тебе надо вызывать часы рекурсивно по таймауту, как >>1103577 . Оно тоже не гарантирует, но подводных камней станет меньше.
zzzzzzzzzzzzzzzzzz173 Кб, 1391x808
#258 #1103753
>>1099555 (OP)
Новый нуфаг вкатился. Добрый день.
Сижу джва часа ломаю голову, что за ошибка со скобкой и почему консоле лог не выдаёт на пустую страницу эту песенку.
Помогите, пожалуйста. Всё перепроверил и нифига. Лиса 56, нотепад++ кода.
Блин, уже не знаю, что делать. Мб я настолько слепой, что не вижу ошибки?
И еще странное по кодировке, подключил, а всё равно черные хуйни вместо символов.
Заранее спасибо за ответы.
Когда код прячешь в комментарий, что ошибка со скобкой пропадает, само собой.
#259 #1103754
>>1103560

>Свой код, который должен формировать какй-то массив результатов.


Код почти такой как и тут:
https://42k5tcpg7bhjjaze.onion.to/getpeerinfo_to_addnode/ip-list_to_addnode-list.html
Здесь из textarea извлекаются IP и IP с портами. Если порт указан - он добавляется к ip где он не указан,
если IP не указан - первый найденный порт объявляется дефолтным и добавляется ко всем другим,
ноды с другими указанными портами - также остаются в списке.
Всё это идёт в массив и выводится в виде списка addnode= в div.
Но я решил продолжить парсинг массива, вызывая последовательно сканер портов.

У меня код по нескольким файлам разбросан и недопилен ещё, поэтому не заливал его никуда.
#260 #1103755
>>1103753
<meta charset = "utf8"> же? Или нет?

Мимонуфаг
#261 #1103758
>>1103754

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


И вопрос в том, как через эти всякие глобальные переменные - вернуть результаты сканирования при каждом последующем вызове.
Я вижу, что функция проверки доступности порта check_ps_ws()
сравнивает время, как и функция сканирования множества IP например check_ns_xhr(),
последняя даже лучше, потому что там указывается один порт,
но когда они scan_ports() и scan_network() вызываются там объявляется снова массив результатов,
var ps_open_ports=[];
var ps_closed_ports=[];
var ps_timeout_ports=[];
и лог
document.getElementById('log')
к тому же в лог результаты идут вызовом отдельной функции results_ps()...
Возможно поэтому глобальные переменные и не обновляются.

Мне же надо что-то типа универсальной функции для проверки порта:
function scan_ip_port(ip, port){return result array;} и всё.
потому что в списке addnode, как ты можешь видеть по ссылке выше - находится и IP и порт.
#262 #1103768
>>1103629

>let анон = "лев";


мммаксимум ватничества, я вообще удивлен что еще нет чисто РУССКОГО языка программирования БЛД

>это противокошки или


конкатинация же ~_~

>избегать любых сокращений


ну эт тупо же, представь у тебя портанка на 20 знаков и ты ее будешь подпихивать дальше по коду во все функции, и читать заибешься и понимать труднее, лучше один раз сразу разобраться че это, зато потом понятно

>Не клокПринт, а принтКлок


тоже тупо сделоли, я смотрю на горб и понимаю чье это, смотрю в лево и понимюа что это, что легче глазами выцепить горб или хуню слева?

ну а про колбеки я знаю анон, сайты с визуализацией это очень наглядно мне показали, но да это часики и никаких ивентов больше нет, колорпикер вроде без колбеков, но я учту на будущее энивей санкс
#263 #1103769
>>1103753
сниси ишацкий уебанский нотпад
#264 #1103776
>>1103768

>я вообще удивлен что еще нет чисто РУССКОГО языка программирования БЛД


Ты слишком юн, коли так считаешь.
#265 #1103777
>>1103560

>fin это твоя фунция, которая будет что-то с результатами делать и перевызывать процесс для следующей ноды.


Смотри, аноним!
У меня есть три результата там, которые идут в лог. Это ps_open_ports, ps_closed_ports и ps_timeout_ports.
Я хотел бы хотел после объявления массива
var array_results = [];
вернуть их из функции fin() в виде массива - вот так:
array_results = [ps_open_ports[0], ps_closed_ports[0], ps_timeout_ports[0]];
//console.log(array_results); //их видно внутри функции fin();
return array_results;

Но...
setTimeout(isFinished, 1000); не возвращает значения, окромя каких-то цифр.
Поэтому я вставил повыше вот такую функцию:
function sleepFor( sleepDuration ){
var now = new Date().getTime();
while(new Date().getTime() < now + sleepDuration){ // do nothing
}
}

она работает вот так:
function myFunction() { //после sleepfor - обновлю массив
myArr = [1,1,1];
}

var myArr = [];
console.log("до setTimeout "+myArr); //ничего
setTimeout(isFinished, 1000);
console.log("после setTimeout "+myArr); //ничего

var myArr = [];
console.log("до sleepfor: "myArr); //ничего
sleepFor(1000);
myFunction();
console.log("после sleepfor"+myArr);//1,1,1 - массив поменялся.

Но всё-равно из функции fin() массив array_results как глобальная переменная - не обновляется даже с использованием sleepFor.
Если засунуть array_results = [1,1,1]; рядом возле fin(); внутри функции isFinished()
и вызывать isFinished после sleepFor - массив array_results всё-равно не обновляется.
Это видимо потому, что внутри функции isFinished она вызывает сама себя при помощи setTimeout, который не обновляет этот грёбанный массив.
И вообще, функция sleepFor , хоть позволяет другим функциям возвращать значения за пределы их,
но от неё виснет вкладка, пока весь скрипт не завершится.

Поэтому, как вернуть результаты сканирования - понять до сих пор не могу. На ум приходит спарсить div как-то через innerHTML.value,
но это надо делать для каждого элемента массива, после каждого конкретного вызова функции и не факт что получится ещё...
#265 #1103777
>>1103560

>fin это твоя фунция, которая будет что-то с результатами делать и перевызывать процесс для следующей ноды.


Смотри, аноним!
У меня есть три результата там, которые идут в лог. Это ps_open_ports, ps_closed_ports и ps_timeout_ports.
Я хотел бы хотел после объявления массива
var array_results = [];
вернуть их из функции fin() в виде массива - вот так:
array_results = [ps_open_ports[0], ps_closed_ports[0], ps_timeout_ports[0]];
//console.log(array_results); //их видно внутри функции fin();
return array_results;

Но...
setTimeout(isFinished, 1000); не возвращает значения, окромя каких-то цифр.
Поэтому я вставил повыше вот такую функцию:
function sleepFor( sleepDuration ){
var now = new Date().getTime();
while(new Date().getTime() < now + sleepDuration){ // do nothing
}
}

она работает вот так:
function myFunction() { //после sleepfor - обновлю массив
myArr = [1,1,1];
}

var myArr = [];
console.log("до setTimeout "+myArr); //ничего
setTimeout(isFinished, 1000);
console.log("после setTimeout "+myArr); //ничего

var myArr = [];
console.log("до sleepfor: "myArr); //ничего
sleepFor(1000);
myFunction();
console.log("после sleepfor"+myArr);//1,1,1 - массив поменялся.

Но всё-равно из функции fin() массив array_results как глобальная переменная - не обновляется даже с использованием sleepFor.
Если засунуть array_results = [1,1,1]; рядом возле fin(); внутри функции isFinished()
и вызывать isFinished после sleepFor - массив array_results всё-равно не обновляется.
Это видимо потому, что внутри функции isFinished она вызывает сама себя при помощи setTimeout, который не обновляет этот грёбанный массив.
И вообще, функция sleepFor , хоть позволяет другим функциям возвращать значения за пределы их,
но от неё виснет вкладка, пока весь скрипт не завершится.

Поэтому, как вернуть результаты сканирования - понять до сих пор не могу. На ум приходит спарсить div как-то через innerHTML.value,
но это надо делать для каждого элемента массива, после каждого конкретного вызова функции и не факт что получится ещё...
#266 #1103778
>>1103758

>объявляется снова массив результатов


Не совсем. Перезаписывается/обнуляется глобальная переменная, содержащая результаты. Доступ к этом массивам есть отовсюду. Там нет var (и не нужно) в коде функции scan_ports.

>Возможно поэтому глобальные переменные и не обновляются.


?? Всё должно обновляться, и всё обновляется.

Я уже сказал, как тебе нужно сделать:
1. Записать айпи/порт в глобальную переменную
2. Запустить scan_ports_ws()
3. Ждать, пока не завершится сканирование
4. Использовать результаты сканирования из трёх глобальных массивов ps_...._ports.

>как ты можешь видеть по ссылке выше


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

>return result array;


Так просто ты не сделаешь, асинхронностоть жи. Нужны генераторы/промисы/await'ы. Вот как-то так, например: https://repl.it/repls/SarcasticOutgoingAfricanparadiseflycatcher
В приципе, слегка адаптировав условие на третьей строке и название массивов с портами можешь прямо этот код и попробовать применить.

А что ты вообще делаешь? А то вдруг я тут соучастником становлюсь.
#267 #1103779
>>1103777

>видимо потому, что внутри функции isFinished она вызывает сама себя при помощи setTimeout, который не обновляет этот грёбанный массив


Если вставить sleepfor вместо settimeout внутри isFinished - вообще всё зависает нафиг.
Поэтому как подключить твой "костыль" - ума не приложу. Костыль - не костыль, блядь.
#268 #1103780
>>1103777
Не пиши код с \t, ну не видишь, что ли, что не работает тут это?

>setTimeout(isFinished, 1000); не возвращает значения, окромя каких-то цифр.


Это просто "номер" таймера, по истечение которого будет вызвана функция isFinished.

>но от неё виснет вкладка, пока весь скрипт не завершится.


>Поэтому, как вернуть результаты сканирования - понять до сих пор не могу.


Тебе надо пойти почитать, что такое асинхронность (в JSе в частности) и как с этим работать. Коллбеки там, промисы и т.д. Без этого ты тут, увы, абсолютно ничего не поймёшь, потому что там весь код на этом построен. Никакой линейности (без сахарка типа await'а, как я показал выше), как ты хочешь, здесь не будет. Результаты готовы только тогда, когда вызывается fin().
2016-01-14 23-34-50639 Кб, 1600x1184
#269 #1103781
>>1103776
имею в виду такого РУССКОГО что бы в каждой ссаной шараге после черепашки были наши, отечественные кресты со скрепами и покаянием безусловно

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

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

так вот и у меня цикли поперек встают, было бы куда пизже увидеть родные знакомые КУДА ДЛЯ ЧЕГО ПОТОМ ЕСЛИ сука

>слишком юн


пх
#270 #1103782
>>1103778

>3. Ждать, пока не завершится сканирование


Поправочка: ждать асинхронно, т.е. используя всё те же setTimeout'ы, которые бесконечно перезапускаются, пока некое условие завершения не будет выполнено.
Твой sleepFor блокирует всё к чертям, и браузер именно что не деает ничего, абсолютно ну, ладно, сравнивает два числа с максимальной скоростью, включая и проверку портов и вызовы функций по таймауту. Он занят твоим пустым циклом.
#271 #1103783
>>1103781
Он есть, 1С.
#272 #1103786
>>1103783

>1С.


г-ди какой же он охуенный, под него уже есть транспеллеры на жс?
#273 #1103788
>>1103778

>Не совсем. Перезаписывается/обнуляется глобальная переменная, содержащая результаты. Доступ к этом массивам есть отовсюду. Там нет var (и не нужно) в коде функции scan_ports.


Если сделать
console.log("open ports:"+ps_open_ports+", closed ports:"+ps_closed_ports+", ps_timeout_ports: "+ps_timeout_ports);
внутри фукнции scan_ports эти значения - undefined.
Потому что из неё scan_ports_xhr() и scan_ports_ws() - вызываются через setTimeout.
А он - не возвращает var, только какое-то число похожее на время.

>?? Всё должно обновляться, и всё обновляется.


Они обновляются только внутри функций.

>Использовать результаты сканирования из трёх глобальных массивов ps_...._ports


Вот тут вот и трабла. Они выводятся как undefined.

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


Причём тут вещества, ИМХО TOR юзабельнее для серверов - просто чтоб не юзать DDNS.

>асинхронностоть жи. Нужны генераторы/промисы/await'ы. Вот как-то так, например: https://repl.it/repls/SarcasticOutgoingAfricanparadiseflycatcher


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


Вот тут уже вообще ничего непонятно.

>А что ты вообще делаешь? А то вдруг я тут соучастником становлюсь.


Ну смотри. Вот там в луке генерируется список нод для конфига различных альткоинов.
Список выглядит так:
addnode=IP:PORT
addnode=IP:PORT
addnode=IP:PORT
...


Этот список можно получить из пиров, если в кошельке рандомной монеты - ввести консольную команду getpeerinfo.
Но не каждый пир является доступной нодой.
Моя задача состоит в том, чтобы проверить порт-сканером - открыты ли порты дефолтные для ноды порты у пиров,
и если порты открыты - оставить пира как ноду в списке addnode.
Иначе - удалить, чтобы список не был длинный.
Ведь многие пиры в одноранговой сети, являющиеся на данный момент подключёнными к кошельку клиентами -
могут являться не только клиентами,
и не обязательно их удалять из списка addnode - просто потому что у них другой порт.
Их рандомные порты могут быть открыты в момент соединения и назначены в рандомном порядке на маршрутизаторах,
в то время как дефолтный порт - может быть проброшен во вне, и этот пир может являться полноценной нодой.
Поэтому в луке генерируется список addnode для всех найденных IP_порт , а также IP+дефолтный_для_ноды_порт.

Для чего всё это? А чтобы искать и генерировать списки годных addnode для монет у которых не работает peer exchange, например.

Вот здесь, например: https://bitnodes.earn.com/ я вижу кнопку CHECK NODE,
однако это только для биткоина (протокол наверное тоже имеет значение там),
и только одну ноду можно проверить.
А хотелось бы сразу пачку нод проверить, просто спарсив список addnode, и не просто где-то там на сайте (который может упасть),
а из-под портабельного скрипта в браузере.
Ничего криминального тут нет, а альткоинов - на самом деле очень много и все они однотипны.
Можешь посмотреть их список - тут: https://www.cryptopia.co.nz/CoinInfo
#273 #1103788
>>1103778

>Не совсем. Перезаписывается/обнуляется глобальная переменная, содержащая результаты. Доступ к этом массивам есть отовсюду. Там нет var (и не нужно) в коде функции scan_ports.


Если сделать
console.log("open ports:"+ps_open_ports+", closed ports:"+ps_closed_ports+", ps_timeout_ports: "+ps_timeout_ports);
внутри фукнции scan_ports эти значения - undefined.
Потому что из неё scan_ports_xhr() и scan_ports_ws() - вызываются через setTimeout.
А он - не возвращает var, только какое-то число похожее на время.

>?? Всё должно обновляться, и всё обновляется.


Они обновляются только внутри функций.

>Использовать результаты сканирования из трёх глобальных массивов ps_...._ports


Вот тут вот и трабла. Они выводятся как undefined.

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


Причём тут вещества, ИМХО TOR юзабельнее для серверов - просто чтоб не юзать DDNS.

>асинхронностоть жи. Нужны генераторы/промисы/await'ы. Вот как-то так, например: https://repl.it/repls/SarcasticOutgoingAfricanparadiseflycatcher


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


Вот тут уже вообще ничего непонятно.

>А что ты вообще делаешь? А то вдруг я тут соучастником становлюсь.


Ну смотри. Вот там в луке генерируется список нод для конфига различных альткоинов.
Список выглядит так:
addnode=IP:PORT
addnode=IP:PORT
addnode=IP:PORT
...


Этот список можно получить из пиров, если в кошельке рандомной монеты - ввести консольную команду getpeerinfo.
Но не каждый пир является доступной нодой.
Моя задача состоит в том, чтобы проверить порт-сканером - открыты ли порты дефолтные для ноды порты у пиров,
и если порты открыты - оставить пира как ноду в списке addnode.
Иначе - удалить, чтобы список не был длинный.
Ведь многие пиры в одноранговой сети, являющиеся на данный момент подключёнными к кошельку клиентами -
могут являться не только клиентами,
и не обязательно их удалять из списка addnode - просто потому что у них другой порт.
Их рандомные порты могут быть открыты в момент соединения и назначены в рандомном порядке на маршрутизаторах,
в то время как дефолтный порт - может быть проброшен во вне, и этот пир может являться полноценной нодой.
Поэтому в луке генерируется список addnode для всех найденных IP_порт , а также IP+дефолтный_для_ноды_порт.

Для чего всё это? А чтобы искать и генерировать списки годных addnode для монет у которых не работает peer exchange, например.

Вот здесь, например: https://bitnodes.earn.com/ я вижу кнопку CHECK NODE,
однако это только для биткоина (протокол наверное тоже имеет значение там),
и только одну ноду можно проверить.
А хотелось бы сразу пачку нод проверить, просто спарсив список addnode, и не просто где-то там на сайте (который может упасть),
а из-под портабельного скрипта в браузере.
Ничего криминального тут нет, а альткоинов - на самом деле очень много и все они однотипны.
Можешь посмотреть их список - тут: https://www.cryptopia.co.nz/CoinInfo
#274 #1103789
>>1103780

>Не пиши код с \t, ну не видишь, что ли, что не работает тут это?


Я просто вставляю символ табуляции, а оно заменяется на \t а потом исчезает у меня.
У тебя что не исчезает?? Обнови страницу.

>Тебе надо пойти почитать, что такое асинхронность (в JSе в частности) и как с этим работать.


>Коллбеки там, промисы и т.д. Без этого ты тут, увы, абсолютно ничего не поймёшь,


>потому что там весь код на этом построен. Никакой линейности (без сахарка типа await'а, как я показал выше),


>как ты хочешь, здесь не будет. Результаты готовы только тогда, когда вызывается fin().


Ладно, подзабью-ка я хуец на это дело, а то много непонятных слов.
Но всё-же может можно было бы как-то через JQuery какой-нибудь сделать всё это норм?
Поэтому просто оставлю здесь эту задачу в зависшем состоянии, вы же кодеры - хуле мне вам затирать тут про коллбэк из setTimeout ...
#275 #1103790
>>1103781

>такой бонус носителям языка


Ты не смыслишь в программировании, если так считаешь.
Естественные языки не пригодны для формального описания задач. Чем язык более язык аналитический, тем он удобнее.

Русский язык не аналитический.
#276 #1103791
>>1103786
Возможно, не интересовался.
#278 #1103794
>>1103780

>Не пиши код с \t, ну не видишь, что ли, что не работает тут это?


>Я просто вставляю символ табуляции, а оно заменяется на \t а потом исчезает у меня.


>У тебя что не исчезает?? Обнови страницу.


Почему бы не заменять символ табуляции на восемь неразрывных пробелов &nbsp;
почему именно на \t - оно же не отображается...
#279 #1103796
>>1103794
И вообще, для кодов можно было бы использовать тег <pre></pre>
разместив его в виде bb-кода c кнопкой в окне ввода.
2016-04-21 23-47-451231 Кб, 1600x1184
#280 #1103801
>>1103790
про бонус я говорил за англичан, мы должны учить сначала их язык =культуру а уже потом язык кода сама же логика везде +- одинаковая и ее вид сути не поменяет, вон ромбики с параллелограммами раскидывать одинаково тяжело

почитал за 1с, это дно, очень обидно что суровая реальность все умудрится опошлить, но идея очень годная

>>1103792
пидорская хуита убрали лишние кнопки типа на стиле и при этом оставили ахирацкий спайс, л: логика
#281 #1103805

>Если сделать <...> внутри фукнции scan_ports


Подожди, ты нахуя scan_ports вообще трогаешь? Он же только читает данные из инпутов, обнуляет массивы результатов/окно вывода и запускает процесс. И вообще, где именно ты запускаешь свой код-то? Какую часть кода с сайта ты используешь? Может, все функции оттуда скопировал, а объявление переменных (строки 210-229) — нет?
Я именно поэтому и просил тебя несколько раз свой код показать.

>Вот тут вот и трабла. Они выводятся как undefined.


Не должны. Открой свой сайт, введи айпи-порты, запусти. Затем открой консоль в браузере и введи свой

>console.log("open ports:"+ps_open_ports+", closed ports:"+ps_closed_ports+", ps_timeout_ports: "+ps_timeout_ports);


Всё будет показано.

>Причём тут вещества


Да я пошутил же, ну чо ты.

>Ладно, подзабью-ка я хуец на это дело


Так быстро сдался. Ну ладно, как хочешь

>Но всё-же может можно было бы как-то через JQuery какой-нибудь сделать всё это норм?


Блин, ну я ж уже показывал, как всё нужно. И на коллбеках, и на промисах. Чистый жс, Никакх jquery (который так-то вообще для интерфейса). Не могу же я прям всё за тебя решить, не интересно так.

>>1103801

> мы должны учить сначала их язык


Зачем? Там 10 ключевых слов да и всё.
#282 #1103847
>>1103805

>Подожди, ты нахуя scan_ports вообще трогаешь?


Ну, чтобы показать тебе, что после вызова scan_ports_ws() строкой через setTimeout там,
Объявленный внутри функции массив с портами - не обновлется и не видно результатов сканирования в этом массиве - внутри этой функции scan_ports() .

>Он же только читает данные из инпутов, обнуляет массивы результатов/окно вывода и запускает процесс.


Так вот мне оттуда надо вернуть результаты сканирования и запхнуть их в глобальну переменную,
а потом уже её читать, и работать со всеми результатами.

>И вообще, где именно ты запускаешь свой код-то?


В браузере, где же ещё?.. Google Chrome. Скопировал страничку в html-файл, открыл при помощи Notepad++ и играюсь с кодом...

>Какую часть кода с сайта ты используешь?


Просто работаю с функциями scan_port(), scan_port_ws(), как ты описал,
и ещё пробовал засоывать IP, port в функцию scan_network().

>Может, все функции оттуда скопировал, а объявление переменных (строки 210-229) — нет?


Всё это есть там. Проблема в возврате результатов.
Вообще, в идеале было бы неплохо переписать всё это в виде одной функции, вроде:

var array_results = [];
function scan_ip_port(ip, port){
//долгая и нудная проверка порта
return array_results = [ip, ps_open_ports, ps_closed_ports, ps_timeout_ports];
}
//а потом уже, после всего этого - обрабатывать array_results;
//вида ["0"[192.168.0.1, 5555, 0, 1], "1"[10.0.0.2, 0, 0, 8080], "2" [100.05.00.0, 0, 80, 0]]

>Не должны.


>введи


>в браузере


>Затем


>Всё будет показано.



Вроде-бы нашёл решение, позволяющее извлечь данные из функции после вызова её через setTimeout.
Оно заключается в работе с переменной УЖЕ ПОСЛЕ всех её изменений, и вот, на мой взгляд это решение:
<script>
var secondsLeft = 10;
function deathCounter() {
if(secondsLeft>0) {
secondsLeft-- ; // note the -- here!
console.log('inside function: ' + secondsLeft); // and the log
setTimeout(deathCounter, 1000);
}
}

console.log('outside function: ' + secondsLeft);
setTimeout("deathCounter()",100);
setTimeout("console.log('outside function: ' + secondsLeft)",11000);
</script>

Но его ещё подключить надо правильно, бля...

>Да я пошутил же, ну чо ты.


чё-то было нисмишнооооо, забей.

>Так быстро сдался. Ну ладно, как хочешь


Быстро?!! Я уже три почти три дня проклацал с этой хренью!

>Блин, ну я ж уже показывал, как всё нужно. И на коллбеках, и на промисах.


Пробовал видать промисы выводя их в консоли - там такие полотна листинга, что яебу.

>на коллбеках


Тоже что-то нагуглил, попробовал, не получилось - да и удалил сразу.

>Не могу же я прям всё за тебя решить, не интересно так.


Вот же вы любите мозги впустую помахать. Ладно пойду инклюдить свою шнягу, может чё и получится.
Если получится и не забуду - то запощу тут лучок.
#282 #1103847
>>1103805

>Подожди, ты нахуя scan_ports вообще трогаешь?


Ну, чтобы показать тебе, что после вызова scan_ports_ws() строкой через setTimeout там,
Объявленный внутри функции массив с портами - не обновлется и не видно результатов сканирования в этом массиве - внутри этой функции scan_ports() .

>Он же только читает данные из инпутов, обнуляет массивы результатов/окно вывода и запускает процесс.


Так вот мне оттуда надо вернуть результаты сканирования и запхнуть их в глобальну переменную,
а потом уже её читать, и работать со всеми результатами.

>И вообще, где именно ты запускаешь свой код-то?


В браузере, где же ещё?.. Google Chrome. Скопировал страничку в html-файл, открыл при помощи Notepad++ и играюсь с кодом...

>Какую часть кода с сайта ты используешь?


Просто работаю с функциями scan_port(), scan_port_ws(), как ты описал,
и ещё пробовал засоывать IP, port в функцию scan_network().

>Может, все функции оттуда скопировал, а объявление переменных (строки 210-229) — нет?


Всё это есть там. Проблема в возврате результатов.
Вообще, в идеале было бы неплохо переписать всё это в виде одной функции, вроде:

var array_results = [];
function scan_ip_port(ip, port){
//долгая и нудная проверка порта
return array_results = [ip, ps_open_ports, ps_closed_ports, ps_timeout_ports];
}
//а потом уже, после всего этого - обрабатывать array_results;
//вида ["0"[192.168.0.1, 5555, 0, 1], "1"[10.0.0.2, 0, 0, 8080], "2" [100.05.00.0, 0, 80, 0]]

>Не должны.


>введи


>в браузере


>Затем


>Всё будет показано.



Вроде-бы нашёл решение, позволяющее извлечь данные из функции после вызова её через setTimeout.
Оно заключается в работе с переменной УЖЕ ПОСЛЕ всех её изменений, и вот, на мой взгляд это решение:
<script>
var secondsLeft = 10;
function deathCounter() {
if(secondsLeft>0) {
secondsLeft-- ; // note the -- here!
console.log('inside function: ' + secondsLeft); // and the log
setTimeout(deathCounter, 1000);
}
}

console.log('outside function: ' + secondsLeft);
setTimeout("deathCounter()",100);
setTimeout("console.log('outside function: ' + secondsLeft)",11000);
</script>

Но его ещё подключить надо правильно, бля...

>Да я пошутил же, ну чо ты.


чё-то было нисмишнооооо, забей.

>Так быстро сдался. Ну ладно, как хочешь


Быстро?!! Я уже три почти три дня проклацал с этой хренью!

>Блин, ну я ж уже показывал, как всё нужно. И на коллбеках, и на промисах.


Пробовал видать промисы выводя их в консоли - там такие полотна листинга, что яебу.

>на коллбеках


Тоже что-то нагуглил, попробовал, не получилось - да и удалил сразу.

>Не могу же я прям всё за тебя решить, не интересно так.


Вот же вы любите мозги впустую помахать. Ладно пойду инклюдить свою шнягу, может чё и получится.
Если получится и не забуду - то запощу тут лучок.
#283 #1103858
>>1103847

>Оно заключается в работе с переменной УЖЕ ПОСЛЕ всех её изменений


А что, ты изначально хотел узнать значение переменной до её изменений? Это как?

>в виде одной функции, вроде:


Без понимания промисов с async/await сахарком не перепишешь, говорю же. Потому что для старта подключения, функция, создающая вебсокет или xhr запрос, должна завершиться, чтобы браузер получил возможность, собственно, заняться этой фигнёй.

Гу, удачи, в общем.
#284 #1103875
>>1103768
Вообще, если у тебя есть файл (или модуль, или класс), который называется "клок", то функция в нём может называться просто "принт". Из контекста же очевидно, что она про "клок".
Если после того, как ты отбросил всё очевидное, у тебя всё равно получается 20 знаков, то, либо у тебя беда с архитектурой и слишком много контекстов приходится объяснять, либо пусть уже будет 20 знаков, чтоб не надо было разбираться, угадывать что-то.
#285 #1103905
>>1103875

>просто "принт". Из контекста же очевидно


А вот это л-логично, еще не дорос до модульности тащемта, однако так ведь нарваться на зарезервированное имя проще, та же Дата наверняка уже кем то занята или не?
#286 #1103914
>>1103905
Скоуп! Область видимости!
#287 #1103952
Допустим, что есть example.org и он имеет страницу с адресом /123. Можно ли с помощью .htaccess сделать так, чтобы по адресу example.org/abc открывалось то же самое, что и по /123, но при условии, что в адресной строке написано /abc (то есть, редирект просто не пойдёт)? Если да, то что нужно написать?
#288 #1103962
>>1103914
хуеуп, назови блять функцию return и чо будет, я же не могу знать все зарезервированные имена, или могу, яж программист ебта!
#289 #1103964
Хуевый сайт там список больше на самом деле, ну да хуй бы с ними даты там нет и ладно, да и вообще теми словами функцию называть ниразу не хочется, так что ок
#290 #1103971
>>1103858
Нифига не получилось с этими глобальными переменными,
но нашёл ещё такой порт-сканнер: https://defuse.ca/in-browser-port-scanning.htm
тут используется объект
var scanner = new PortScanner(ip, port);
и надо задавать какие-то коллбеки для него.
Как переделать его под проверку списка IP:port - тоже ума не приложу пока-что,
но он вызывается каждый раз отдельным объектом, и видно в консоли все данные про этот объект.
#291 #1103975
>>1103962
Вообще не проблема, тебе редактор сразу ругнется. Ну или рантайм. Локально можешь у себя называть как хочешь
#292 #1103977
Ходил на собеседование на реакт. Похоже завалил и на многие вопросы не ответил. Вот некоторые вопросы, может поможет кому:

1) В чём отличие ангулара 2 и ангулара 4?
2) Назовите пять причин, почему css препроцессоры не нужны.
3) Что вы знаете о c++ аддонах для ноды?
4) Чем ssh отличается от ssl?
5) Чем http отличается от http2?
6) Чем замыкания отличаются от размыканий?
7) Как выполнить XHR на ванильном JS?
8) Для чего в jQuery передавать window если он и так глобальный и зачем undefined?
9) Каким вы видите реакт через пять лет?
10) Как сделать неизменяемый объект?
11) Какой клиентский MVC-фреймворк посоветуете для браузерной игры?
12) Какой консольный редактор или IDE вы больше всего любите?
13) Почему Backbone не подходит для Twitter?
14) Читали ли вы исходники V8?
15) В чём преимущества и недостатки V8 перед Chakra?

И ещё что-то, уже не помню.
#293 #1104001
>>1103977

>9) Каким вы видите реакт через пять лет?


Это такой траллинг? Пост-ирония над мемом "кем вы видите себя через 5 лет?"
#294 #1104004
>>1103977

> Чем замыкания отличаются от размыканий



Ты, чисто случайно, не на электрика-монтажника собеседоваться ходил?
#295 #1104005
>>1103753
бамп. подскажите плиз
#296 #1104011
>>1104005

В 21 строчке ты не смог в конкатенацию.
#297 #1104014
>>1104011
Не понял. Разъясни, если не трудно. код по книге обучающей забил.
#298 #1104015
>>1103977

>Backbone


на этой хуите вроде окромя яндекса не пишет

что за клованов ты посетил? пиздец каша из вопросов, вам шашечки или ехать блять
#299 #1104016
>>1104011

>В 21


в 22ой же
#300 #1104019
>>1104016

Ничего не знаю, я с нуля отсчитывал на самом деле, да, конечно.
#301 #1104021
>>1104019

>я с нуля отсчитывал


[кек, )))] в 29 тоже, но чот я сомневаюсь что это зарешало, хотя ромбы, а может и вправду в этой мелочи дело
#302 #1104023
>>1104016
Подскажите, в чём проблема.
Вся разметка из книги.
#303 #1104025
>>1104023

>в чём проблема


var ward = "b::r.,ea":
var cam: 99,-
wlule (Gaunt >o)(

В ТОМ ЧТО ТЫ АНОНИМНЫЙ ИШАК И ПИЗДОГЛАЗтебе уже дали ответ, не смотря на то что ты не предоставил интерактивный листинг

can:u)e.)nq(cuunc ; u
can:u)e.)nq(cuunc ; u
can:u)e.)nq("?ake
(mun:
#304 #1104026
>>1104025
Еблан, блять. Ливая с этого говняного треда.
1381684098165153173528 Кб, 604x251
#305 #1104028
>>1104025
Ты кое-что забыл.
#307 #1104031
>>1103971
Там идёт попытка загрузки картинки и не всегда корректные результаты.
Например некоторые порты, являющиеся закрытыми - порой отображаются, как открытые.
Вот туда бы websockets как-то прикрутить... Но с этим я уже врядли справлюсь...
#308 #1104032
Пиздец вы тут долбоёбы. Не хотите человеку показать где он плюс пропустил.
мимо проходил
2017-12-06138 Кб, 1920x1080
#309 #1104038
>>1104028
SAS1))))
#310 #1104039
>>1104032

>Не хотите человеку показать


это необучаемое животное, пусть дворы метет
#311 #1104040
>>1104039
Ну ему 14 лет. Всё нормально. А тебе 16 и ты уже весь крутой такой, взрослый, унижаешь его. Молодец. Так держать.
Из-за таких как ты в стране пиздец.
Что за менталитет такой свинский.
#312 #1104047
>>1103977

>1) В чём отличие ангулара 2 и ангулара 4?


Раньше пользователю приходили счета за свет за конпиляцию, теперь они будут приходить нам. Мы заботимся о пользователях.

>2) Назовите пять причин, почему css препроцессоры не нужны.


Не вижу смысла говорить о том, что не нужно.

>3) Что вы знаете о c++ аддонах для ноды?


Долго пишутся, быстро работают.

>4) Чем ssh отличается от ssl?


Уровнями.

>5) Чем http отличается от http2?


Возможностью жрать трафик клиента.

>6) Чем замыкания отличаются от размыканий?


Стоит пояснить про помыкания и примыкания.

>7) Как выполнить XHR на ванильном JS?


Скобочками.

>8) Для чего в jQuery передавать window если он и так глобальный и зачем undefined?


Это не резервированные ключевые слова.

>9) Каким вы видите реакт через пять лет?


Мёртвым.

>10) Как сделать неизменяемый объект?


Пойти к психологу, сказать: "Меня в детстве били родители и теперь я хочу всё контролировать, как они". Выслушать его рекомендации, забить на них, рекурсивно применить Обжект.фриз.

>11) Какой клиентский MVC-фреймворк посоветуете для браузерной игры?


СВГ + ВебГЛ

>12) Какой консольный редактор или IDE вы больше всего любите?


Вим, я не понял, как из него выйти, пришлось полюбить.

>13) Почему Backbone не подходит для Twitter?


Бекбон хочет готовые объекты, а Свиттер это лоскутное одеяло.

>14) Читали ли вы исходники V8?


Я предпочитаю Данцову.

>15) В чём преимущества и недостатки V8 перед Chakra?


Преимущества — В8 на хайпе, а Чакра от тырпрайз-инженегров. Недостатки — В8 на хайпе, а Чакра от тырпрайз-инженегров
#312 #1104047
>>1103977

>1) В чём отличие ангулара 2 и ангулара 4?


Раньше пользователю приходили счета за свет за конпиляцию, теперь они будут приходить нам. Мы заботимся о пользователях.

>2) Назовите пять причин, почему css препроцессоры не нужны.


Не вижу смысла говорить о том, что не нужно.

>3) Что вы знаете о c++ аддонах для ноды?


Долго пишутся, быстро работают.

>4) Чем ssh отличается от ssl?


Уровнями.

>5) Чем http отличается от http2?


Возможностью жрать трафик клиента.

>6) Чем замыкания отличаются от размыканий?


Стоит пояснить про помыкания и примыкания.

>7) Как выполнить XHR на ванильном JS?


Скобочками.

>8) Для чего в jQuery передавать window если он и так глобальный и зачем undefined?


Это не резервированные ключевые слова.

>9) Каким вы видите реакт через пять лет?


Мёртвым.

>10) Как сделать неизменяемый объект?


Пойти к психологу, сказать: "Меня в детстве били родители и теперь я хочу всё контролировать, как они". Выслушать его рекомендации, забить на них, рекурсивно применить Обжект.фриз.

>11) Какой клиентский MVC-фреймворк посоветуете для браузерной игры?


СВГ + ВебГЛ

>12) Какой консольный редактор или IDE вы больше всего любите?


Вим, я не понял, как из него выйти, пришлось полюбить.

>13) Почему Backbone не подходит для Twitter?


Бекбон хочет готовые объекты, а Свиттер это лоскутное одеяло.

>14) Читали ли вы исходники V8?


Я предпочитаю Данцову.

>15) В чём преимущества и недостатки V8 перед Chakra?


Преимущества — В8 на хайпе, а Чакра от тырпрайз-инженегров. Недостатки — В8 на хайпе, а Чакра от тырпрайз-инженегров
#313 #1104050
Охуеть. Решил полистать тред. Вы даже этому не подсказали. >>1100317
Пиздос.
Подпишусь на тред и буду помогать всем. Вам на зло нахуй.
Ньюфаги, у кого есть вопросы по жсу? Любые. Если смогу, помогу.
inb4: у меня тут проблема с либой, о которой знают 2 с половиной человека в мире, как её использовать?
#314 #1104052
>>1104040

>в стране пиздец


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

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

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

так что ты не плачь дядь, уже 500 лет так было и так будет всегда
#315 #1104060
>>1104050

>проблема с либой


Ни в коем случае не хочу охладить твой позитивный пыл, но на комунити то не гони. Тут даже дезигнеру помогли с какой-то говонлибой >>1103015
Если кому-то и не помогают, то только потому, что он не может сформулировать пост и ждёт победителей Битвы экстрасенсов.
#316 #1104068
и да если кому интересно все бесплатные файнридеры хуита

https://www.onlineocr.net/
вот этот боле-мене, остальные дно путают О с 0

https://finereaderonline.com/ru-ru/Tasks/Create
аби таки затащил шакаложипег без косяков
#317 #1104075
>>1099555 (OP)
Суп, скриптач, поясните за xmlhttprequest.
Делаю так: jsfiddle.net/gvbL6zzd
Обычный http работает, локальные работают, а с SSL шлет нахер, даже заголовки не присылает. В чем могут быть подводные? Я только вкатываюсь.
#318 #1104076
>>1103977

>14) Читали ли вы исходники V8?


Конечно! Какой-то миллион строчек кода на крестах, хули не почитать то.
#319 #1104087
>>1104032
Дай человеку рыбу и он будет вонять рыбой, научи его рыбачить и он будет цеплять на крючек телочек
#320 #1104089
Впендюрьте в шапку уже про КОРС, платина же.

>>1104075
Веб позволяет запустить произвольный код из произвольного места. Чтоб от этого совсем не умереть, есть разные заголовки, которые должны отдать и сервер данных и сервер документа. Иначе браузер молча проигнорирует такие дырявые запросы в целях твоей безопасности.
https://ru.wikipedia.org/wiki/Межсайтовый_скриптинг
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
Естественно с шифрование на это дополнительные ограничения накладываются. Твой сертификат шифрования же не действует на сторонний сервер, который данные должен отдать.
#321 #1104109
>>1104075
У тебя HTTP и HTTPS на одном и том же домене?
Если HTTP на локальном, а HTTPS где-то далеко, то да, это CORS запрещает. Хотя я твой скрипт вообще запустить не смог. Сначала там в конце скобки не хватало, а потом просто ничего не происходило.
#322 #1104110
>>1104075
Под пивко потом Кокфорда посмотри, про то, как мы сделали хуйню для шары документов внезапно самой дырявой средой.
https://www.youtube.com/watch?v=HUXootHAnfk
#323 #1104122
Аноны, кто может пояснить за хуйню одну, может сталкивался кто. В общем есть анкор, который по id пиздюхает к контейнеру и все пиздато работает. Но если добавить js для плавности прокрутки, то начинается ебала. Прокручивается нормально только если начинать с самого верха страницы, если прокрутиться ниже, то начинается неадекватная хуйня - экран не доезжает до нужного контейнера или вообще едет вверх, хотя должен вниз. На всякий кидаю код:
$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();

$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 900, 'easeOutQuart');
});
#324 #1104125
>>1104122

>Прокручивается нормально только если начинать >с самого верха страницы, если прокрутиться >ниже мышкой



фикс
#325 #1104142
>>1104122
Консоль открой и пиши туда "$($.attr(this, 'href')).offset().top"
Потом прокрути вниз страницу и снова напиши. Меняется?
Если нет, то возьми это число и поставь сюда
"scrollTop: число"
Будет кататься в одно и то же место или будет зависать от того, куда ты прокрутил?
#326 #1104146
>>1104142
А вообще нет, this будет то меняться.
Сделай так:

$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();
var scroll_to = $($.attr(this, 'href')).offset().top;
console.log('Scrolling to:' + scroll_to);
$('html, body').animate({
scrollTop: scroll_to
}, 900, 'easeOutQuart');
});

В консоль будет писать "Scrolling to:", оно одинаковое будет вне зависимости от положения прокрутки?
#327 #1104148
>>1104146
Меняется в зависимости от положения прокрутки. Есть идея, как фиксить?
#328 #1104150
>>1104148
Зависит от того что означает "$.attr(this, 'href')"?
Что оно делает?
Я вообще в доке не вижу "$.attr" https://api.jquery.com/attr/
#329 #1104152
>>1104150
Тоже в спеку смотрю, аттр первым атрибутом только строку принимает, не понимают, как тут зис может сработать.
другой помогун
#330 #1104154
>>1104152
так а разве $.attr не равно jquery.attr?
#331 #1104159
>>1104154
Ну в доках и "jquery.attr" нету.
Замени "$($.attr(this, 'href')).offset().top" на "$('#X').offset().top" (замени #X на любой элемент в центре страницы) и проверь будет ли оно к нему скроллить из любого положения?

Если да, то ты что-то напутал.
#332 #1104162
>>1104159
Такая ж хуйня, как и была. Лады, спасибо и на том.
#333 #1104164
>>1104162
Сделай

$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();
var scroll_to = $('#X').offset().top;
console.log('Scrolling to:' + scroll_to);
$('html, body').animate({
scrollTop: scroll_to
}, 900, 'easeOutQuart');
});

Замени #X на своё. Всё равно 'Scrolling to:' будет меняться?
#334 #1104169
>>1104164
Scrolling to:635 insane-code.js:4:1
Scrolling to:114 insane-code.js:4:1
Scrolling to:407 insane-code.js:4:1

Тут может херь в том, что по докам в animate нужно первым аргументом впихивать CSS {property: value}, а тут получается функция scrollTop. Хуй пойми. Программирование ебаное.
#335 #1104171
>>1104169
Подожди, ты заменил #X на что-то другое и у тебя меняется? Оно не должно. Либо у тебя элемент путешествует по странице, либо ты хуйни натворил.
Покажи код, что и на что ты заменил? Может ты меня не так понял.
Покажи этот кусок кода с заменой своей.
#336 #1104174
>>1104171
$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();
var scroll_to = $('#navimain').offset().top;
console.log('Scrolling to:' + scroll_to);
$('html, body').animate({
scrollTop: scroll_to
}, 900, 'easeOutQuart');
});

#navimain - id контейнера, в который должны приехать.
#337 #1104176
>>1104174
setInterval(function(){
console.log('Offset: ' + $('#navimain').offset().top);
}, 100);

Начнёт флудить в консоль, крути рукой прокрутку. Меняются числа?
Если да, то у тебя где-то код меняет положение #navimain при прокрутке. Либо он CSSом меняется.
#338 #1104182
>>1104176
Числа меняются. Но они и должны менятся, т.к. метод offset().top возвращается кол-во пикселей от верха экрана до элемента, так же?
#339 #1104183
>>1104109

> одном и том же


Нет, я это по заголовкам определил. Собственно, я уже выяснил в чем проблема.

> скобку


Потерялась при копипасте.

> ничего не происходило


Собсна, респонс я передаю дальше на парсинг, все по классике. Проблема именно в объедке xmlhttprequest, а точнее, в его реализации на конечной платформе - не поддерживает TLS 1.2 и уже никогда не сможет. Лечится это только молотком.
>>1104089
>>1104109
>>1104110
Но в любом случае, спасибо, анонасы, буду кресты теперь ковырять, хуле.
#340 #1104185
>>1104176
Кстати эта хуйня работала вроде нормально, я правда сильно не тестил, но из различных положений скролило как надо. А почалося, когда в этот же контейнер с анкором впиздючил тег с видосом. Так что ебала может уходит корнями в ебучий браузер.
#341 #1104186
>>1104182

>Get the current coordinates of the first element, or set the coordinates of every element, in the set of matched elements, relative to the document.



В этом треде выполни:

setInterval(function(){
console.log('Offset: ' + $('#post-body-1104176').offset().top);
}, 100);

Не меняется. У тебя элемент скачет по странице при прокрутке.
#342 #1104189
>>1104186
Спасибо анон, все заработало после того, как убрал overflow-x: hidden у body. Хоть и не понял схуяле.
#343 #1104194
>>1104189
С того, что CSS ебучий. Вообще фронтэнд это пиздец какой-то.
#344 #1104195
>>1104076
Вы нам не подходите. Нам нужен профессиональный Фронтенд-девелопер, а вы безынициативный верстальщик.
#345 #1104199
>>1104194
Каждый раз, когда что-то меняю, потом дрочу пару часов, чтобы снова заработало то, что перестало. Но мне кажется это из-за того, что опыта нихуя нет. Через годик-два на эту хуйню буду тратить раза в 2 меньше, лол. Пасиба еще раз, упиздючил с треда
#346 #1104202
>>1104195
он нам не подходит уже на 9 пункте, а то и раньше нам нужны профессионально выдроченные бесполые биороботы, что бы решали задачу и не думали ни о чем
#348 #1104208
>>1103847

>Если получится и не забуду - то запощу тут лучок.


>нашёл ещё такой порт-сканнер: https://defuse.ca/in-browser-port-scanning.htm


Вот что получилось: https://42k5tcpg7bhjjaze.onion.to/getpeerinfo_to_addnode/addnode_generator_and_port_checker.html
Но чё-то оно хреново работает. telnet показывает, что порты закрыты.
Может кто-нибудь из нормальных кодеров здесь на базе этого - что-то лучшее запилит.
#349 #1104242
аноний я тут внезапно узнал что ритёрну можно скармливать малтбл итемс просто обернув их кругляком как же отъебывает голову, то кругляк то фигурный сука хуле везде по разному то блять так вот снова нарисовалось два стула

>I


let concatiNation = ` ${h} ${m} ${s} `;
return concatiNation;

>II


return (`${h} ${m} ${s}`);

учитывая что переменные объявлены выше, в пределах экрана, но лично мне почему то больше нравится более говорящий вариант, а как по красоте положено?
#350 #1104257
>>1104242
Первый. Чтоб человек, читающий твой код, понимал по названиям переменных чё там происходит.
#351 #1104258
>>1104242
>>1104257
И название переменной пусть будет "timeString" или типа того.
#352 #1104262
>>1104257
>>1104258
все понел анонче, оке
#353 #1104294
>>1104204
А могешь пояснить за section? Ща его надо использовать, а не div? Ну по моде типо.
#354 #1104299
>>1104242
Переменную стоит называть на один уровень абстракции выше, чем её содержимое. У тебя в переменной часы и минуты, какое для них обобщающее понятие? Это время. Если в переменной "красный", то обобщающее понятие (имя переменной) будет "цвет", нутыпонел. И не надо добавлять "стринг", потому что это очевидно из-за ёбаных кавычек в коде и к данным не имеет никакого отношения (если данные завтра станут объектом или числом, какого хуя ты должен менять их имена (понятия)?). Была такая "венгерская нотация", но быстро пришли к тому, что это глупость:
https://ru.wikipedia.org/wiki/Венгерская_нотация
Отстань ты уже от понятных только тебе в момент написания сокращений, нажми ещё несколько кнопок, это не долго.
Правильная функция должна быть атомарной, т.е. короткой и делать одно дело, возвращаемое ей значение должно быть очевидно из её имени, без дрочни с переменными.

Вооружившись этим, ты должен написать что-то типа:

function formatCurrentTime () {
const currentDate = new Date();

const hours = currentDate.getHours();
const minutes = currentDate.getMinutes();
const seconds = currentDate.getSeconds();

return `${hours} ${minutes} ${seconds}`;
}
#355 #1104310
>>1104294
тлдр: Там беда. Если есть время и силы, заморочься и используй, потом пригодится. Если нет, то сри дивами, Веб всё стерпит.
Пока ещё ни один браузер не сделал механизм оглавления на странице, чтоб все секционирующие элементы обрели смысл (ты можешь впиздолить h1 в h1, это будет валидно, они будут считаться равнозначными). Ни у кого даже в планах этого нет. К тому же мы имеем концепцию "Веба для авторов, а не программистов", читай "для говноляпоющих макак". Все конторы, у которых хватает ресурсов (гуглы, яндексы), будут парсить твою портянку на дивах как родную. Просто потому что у нас таких большинство.
Но секционирование уже кое-где кое-как реализуется. Например читалка скажет "навигация по (лейблРодительскойНоды)" и т.д. Плюс все поисковики, как верные гои, дрочат на всякие аксесабили, и если встретят у тебя верную разметку, то накинут тебе очков в позиции поиска.
Всё к тому же упирается в мудацкую спеку, которая использует "шуд" вместо "маст", позволяет вкладывать одно в другое и вообще боится хоть как-то косо посмотреть. Мы с тобой пока можем договориться так: если мы представим наш документ как книгу, то <артиклом> будет то, что содержит название нашей маленькой книги-документа или подразумевает в себе <h1> (явно оно указано или нет, но ты чётко сможешь этот заголовок назвать; "подразумевает" тут ключевое слово), секшенами станут те, кто подразумевает название глав или <h2>. В остальном ты всё так же можешь срать дивами, не забывая про нав, эсайд, хедеры-футеры и пр.
Если мы возьмём страницу Яндекс.маркета с телефонм, то article.h1, заголовок будет имя телефона section.h2, главы будут всякие комплексы характеристик (экран, батарея), aside будут аксессуары и т.д.
#356 #1104317
>>1104310
https://inclusive-components.design/#components
Можешь на вот это творчество обратить внимание. Далеко не лучший инженер и сомнительная дрысня, но заставляет погуглить и прикинуть.
#357 #1104332
>>1104299
const нахуя, когда тебе дали let который не выплывет в область видимости лишнюю?
2017-12-0709-55-4439 Кб, 748x919
#359 #1104435
>>1104299

>Переменную стоит называть на один уровень абстракции выше, чем её содержимое.


вот это в цитатник нахуй

>"венгерская нотация"


настолько натуральна и естесвенна что я тоже ее изобрел ^_^

>но быстро пришли к тому, что это глупость:


лел

>это не долго


это заебывает в персепктиве дальше, не смотря на автоподстановку, но я подумаю ведь конечная цель это все-таки навести порядок

>делать одно дело, возвращаемое ей значение должно быть очевидно из её имени


ну епт я сделял а анон меня зачепушил

>currentDate.getHours();


ох ебать ну и красотища, так очевидно, что даже немного стыдно

>const hours


ну я так и хотел, но тяга к минимализму таки зарешала. Кстати чому конст, там же дата меняется каждую секунду, или тут смысл именно переприсваивается ли сама переменная, типа const++ нельзя, а то что там внутри похуй
image64 Кб, 976x579
#360 #1104442
>>1104310
а если сайт йоба реакто-динмачиеский и подчистую на ясе типа твитора, это ж как изъебываться надо что б смочь в адекватную семантику
#361 #1104445
>>1104332
ппц ты лолет))) еще и уверенный такой шопездеця бы взял тебя на работу :3
#362 #1104450
>>1104435

>или тут смысл именно переприсваивается ли сама переменная, типа const++ нельзя, а то что там внутри похуй


Да.
#363 #1104452
Подскажите либу для парсинга хтмл.
#364 #1104458
>>1104452
google chrome
#365 #1104463
>>1104452
Регулярками и подстроками как правило проще всего.
#366 #1104471
>>1104452
На Node.JS или где?
Если в нём, то вроде как jquery это умеет из коробки.

>var $ = require('jquery');


>var title = $(html).find('title').text();

#367 #1104474
>>1102871
стриктом пользуйся, не слушай
#368 #1104483
>>1104474

>мелокобувенный пидар не знает как работает среда исполнения


гоните его, насмехайтесь над ним, бросайтесь в него камнями
#369 #1104492
>>1102871

>Что такое линтер


Это херовина которая сама проверяет твой код на ошибки. Например если ты объявил переменную и никогда её не использовал.
Есть jslint и jshint, один из них полное говно, но я не помню какое.
Их можно подключить к системе сборки, которая сама будет всё проверять при каждом изменении файла, например. Такая система сборки есть Grunt и ещё тонны других.
Воооот...
#370 #1104497
>>1104310
Благодарю за развернутый ответ!
#371 #1104498
>>1104492

>grunt


Ты какой-то не молодёжный, gulp же.
#372 #1104509
Блед, перешел на Ноду, очень полюбил JS.
Че машин лернинга родного на ноде нет(
это связано можешь с сингл тредом?
#373 #1104520
>>1104498

>gulp


Ты какой-то не молодёжный, webpack же.
#374 #1104525
>>1104492
Этого не слушай. Сейчас вроде eslint везде по дефолту, ставь плагин на редактор и не парься с галпами и прочими скриптами
#375 #1104528
>>1104471
В ноде же. Что то похожее на beautiful soup 4 из питона.
#376 #1104540
>>1104528
https://github.com/cheeriojs/cheerio
Сам пользовал. Годная штука.
#377 #1104606
>>1104540
Спасибо, няш.
#378 #1104637
>>1104509
Есть всякая фигня:
https://tutorialzine.com/2017/04/10-machine-learning-examples-in-javascript
Вряд ли оно сильно будет развиваться. На какой-то конфе видел сравнение распознавалки лица с камеры на ЖС и на ВАСМе, в 10 раз разница в скорости, ЖС всего пару кадров в секунду выдавал.
#379 #1104648
>>1099555 (OP)
Аноним, смотри что я нашёл: https://gist.github.com/Arahnoid/9925725
Здесь, походу дела, JavaScript открывает файл и работает с ним (читает и пишет в этот файл что-то там)...

Так вот, вопрос к вам... Можно ли сделать нечто наподобие гостевой книги, чата, или троллбокса какого-нибудь,
без всяких регистраций, серверных обвесов PHP, AJAX,
а просто на JS и возможно JQuery, с использованием различных функций HTML5 типа websockets и какого-нибудь метода вроде download?

Как я себе вижу это?
1. Размещается некий index.html с JS-кодом внутри - на сервере без PHP. Никакого AJAX там.
Пусть это будет обычный файловый сервер, в котором прямые ссылки на файлы html - интерпретируются браузером.
2. В папке /data/ рядом с ним создаётся некий файл chat_log.txt
3. Дальше идёт регулярное чтение и запись данных в файл скриптом. Может быть чтение некого зашифрованного файла admin.conf с паролем админа и правами 777.
4. Таким образом, два клиента открывшие html-файл в различных вкладках браузера - могут общаться между собой - просто печатая в форму различную хуету.
5. Админ может сделать бан посетителя по IP, если кто-то надоел, но для этого надо ввести пароль дешифрования файла админских настроек.
6. Все юзеры могли бы добавить всех юзеров в игнор, ну или что-то типа private message.
7. Chat_log мог бы быть ограничен десятком мегабайт - этого вполне достаточно для обычного текстового чата.

Подобное вообще реализуемо? Я раньше видел гостевые книги на файлах, но файлы там создавались средствами PHP,
и для юзания чата - надо было ставить полнофунциональный сервер.
#380 #1104658
>>1104648
Либо ты какую-то хуйню придумал, либо я ничего не понял.
Хочешь чат - бери Node.JS и на вебсокетах делай. Или на либе socket.io, там сразу поддержка комнат есть.
#381 #1104663
>>1104648
Вот какой-то простенький сервер в виде exe-файла https://www.codeproject.com/Articles/443660/Building-a-basic-HTML-client-server-application
но его скачать нельзя и вообще, быть может есть более годные решения...
#382 #1104665
Нужна пиздатая идея для петпрожекта на реакте и ноде. Только не борду.
#383 #1104669
>>1104663
Если тебе прям примеры нужны, гугли примеры чата на socket.io
#384 #1104670
>>1104658
Я хочу чтобы input формы отправлялся на сервер из которого загружена веб-страница,
а потом чтобы JS писал инфу из этого input'а в файл,
регулярно читая его и выводя результаты в div.

Никаких сокетов и соединений, просто форма либо отправлена, либо нет.
Файл с логом чата - должен быть на сервере, или же рядом с html-файлом,
так как если чат представляет из себя портабельную веб-страницу,
работающую в любом браузере - то очевидно то, что её можно сохранить и запустить у себя, локально.

Я понимаю, что данные формы, принимающиеся на сервере обрабатываются серверными программами, и языками типа PHP,
поэтому файл может изменяться уже такими скриптами,
но я полагаю, что файл мог бы создаваться и при помощи JS, ну или загружаться туда, на сервер и там обрабатываться JS-скриптом админа,
если админ запустил JS-код во вскладке своего браузера. Вот что у меня тут.
#385 #1104673
>>1104670
Ты чего-то не понимаешь в этом мире.
Нельзя просто так магически взять и жсом из браузера записать файл на каком-то компухтере в другой стране.
Тебе нужен веб сервер, который это делать будет.
Даже локально из браузера жс не может записать файл на диске.
Было бы охуенно еслиб ты открывал сайт с порнухой, а он тебе троян в загрузчик прописывал. Или считывал файл с твоими паролями от браузера.
#386 #1104681
антоны дайте каких-нибудь простых задачек по реакт + редакс + нод начинаюшей мокаке пожалуста
зелёный режим40 Кб, 200x200
#387 #1104684
>>1104681
Сделай чат этому >>1104670
9cjWrXbwiB8[1]25 Кб, 416x287
#388 #1104689
>>1104673
Логично, анон.
Я просто, погромизд хуев, подзабыл фундаментальное - а именно то что JS исполняется на клиенте, и что это клиентский язык погромирования.

Видел бы ты моё удивление тому, почему же блять в 21-м веке,
при наличии функционала HTML5 для работы с файлами и сокетами
чаты обязательно требуют PHP или AJAX...

Но всё-же, насколько я понял, при наличие websocket's или всяких там socket.io,
JS может сделать из браузера сервер, функциями встроенными в браузер, и слушать его порты там.
Тогда, вполне возможно, моя задумка и может быть воплощена... Но я не шарю там нихуя...
Такие дела.
#389 #1104690
>>1104684
Он чего-то не понимает в этом мире.
Нельзя просто так магически взять и жсом из браузера записать файл на каком-то компухтере в другой стране.
Ему нужен веб сервер, который это делать будет.
Даже локально из браузера жс не может записать файл на диске.
Было бы охуенно еслиб он открывал сайт с порнухой, а он ему троян в загрузчик прописывал. Или считывал файл с его паролями от браузера.
#390 #1104700
>>1104690

>Было бы охуенно еслиб он открывал сайт с порнухой, а он ему троян в загрузчик прописывал. Или считывал файл с его паролями от браузера.


набери в адресной строке браузера "C:/" Но это раздел или логический диск, том.
Юзая hex-редакторы, можно было бы наверное не только просмотреть загрузчик, а также скачать файл,
но и создать файл из браузера... temp-файлы же создаются как-то браузером...
#391 #1104705
>>1104700
для этого браузер испольует php с ajax
очевидно же
#392 #1104706
>>1104700
жс не может получить доступ к file:///C:/
Иногда всплывают уязвимости, после которых у людей пиздят пароли и кошельки от биткоинов, например https://habrahabr.ru/company/eset/blog/264619/
Но вообще нельзя так.
Что можно, так это показать диалоговое окно, в котором ты сам выберешь файл и дальше жс сможет его обрабатывать. Или сгенерировать файл и спросить у тебя куда его сохранить.
Но сам жс не может без проса читать всё подряд или писать.
#393 #1104708
>>1104705
Ну если серверные фичи типа пхо с аяксом встроены там в браузер,
и админы гугола спокойно листать мотреть порно-паки на диске, имея возможность одномоментно затерев его каким-нибудь вирусом типа PETYA.A
то их навернка можно было бы заюзать и для чатика, инициализируя функции всякие через JS, не?
#394 #1104709
>>1104689
Можно сделать чат чисто на клиенте + горящая база для бека.
#395 #1104710
>>1104708
ну так чего ты не заюзаешь их для чатика навернка?
#396 #1104712
>>1104706
Ну, тогда, можно было бы прописать исключение для этого файла - каким-нибудь user_script.js
или вообще запилить нечто типа p2p крипто-чата через браузер - в виде расширения, например uTox_extension.
#397 #1104715
>>1104710
Это надо в скомпилированном и обфусцированном коде браузера колупаться, же.
#398 #1104718
>>1104715
Проприетарном.
#399 #1104720
>>1104712
Не-а. Нельзя. Расширения тоже не могут читать/писать локальные файлы.
Можно пилить костыль-сервер на компе, который поднимает локальный веб сервер и расширение уже общается с ним. И его надо будет устанавливать отдельно.
И это открывает охуенную дыру.
download759 Кб, 400x388
#400 #1104725
антоны ну памахите хочу набираться experience че поделать на реакт редакс нод
есть возможность сидеть 24\7 не могу никак вкатиться хотелосьбы получать от 300 рублей в месяц
#401 #1104726
>>1104725
Ну хоть объясни другому ньюфагу что такое "реакт редакс нод"?
#402 #1104727
>>1104725
Напиши стандартный Crud типа бложика или магазина с админкой или имиджбооды. Без фанатизма, просто чтобы работодатель видел что ты можешь в типичную архитектуру.
#403 #1104730
>>1104726
реакт шляпа с виртуальными домами
редакс это флакс
нод рунтайм для жса
#404 #1104732
>>1104525

>Сейчас вроде


если не знаешь нахуй пишешь на умняке, а блядь?

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

ну а ЕСлинк тупо наваливает кучу говна прямо в консольке под носом
#405 #1104763
>>1104720
Ну, TorChat есть же. https://habrahabr.ru/post/201696/
Там в статье написано вот что:
"Клиенты взаимодействуют напрямую через Tor, серверов в системе TorChat нет. "
И вместе с тем, тутже, ниже - написано следующее:
"Каждый пользователь имеет собственный hidden service с доменным именем вида abc.onion,
на котором он слушает порт 11009. "
Понятное дело, что слушать порт может серверная программа, привязанная к этому порту,
т. е. сервер коим по-сути hidden service TOR'a и является. А сам торчат уже как надстройка.
Поэтому юзеры и торчат там обторченные такие все, как торчки.
#406 #1104778
>>1104763
Не совсем понял что ты имеешь в виду и как это связано с чтением/записью локальных файлов, но в чате, что ты показал сервер поднимается скриптом на питоне https://github.com/prof7bit/TorChat/blob/torchat_py/torchat/src/tc_client.py
Который слушает порт и может писать/читать файлы, если ты про это. JS не может.
2017-12-0722-34-4548 Кб, 1187x987
#407 #1104781
>>1104732
починил значит еслинт, педерасты на офпаге написали расширение конфиг файла жс вместо жсон, поменял все заработало, только толку с этой параши не больше чем от бравзера, к тому же не пашет с имбедид скриптами, такая ебань блядь, еще и без няшного интерактивчика в сточной канаве
#408 #1104796
>>1104778
Ага, ага, вижу какой-то tor_server...
config.get(TOR_CONFIG, "tor_server"),
config.getint(TOR_CONFIG, "tor_server_socks_port"))
А то я думал, что без сервера оно работает, и клиент слушает порт, как-бы являясь локальным сервером у себя там,
просто взаимодействуя с сетью тор на транспортном уровне без клиент-серверных изъебств:
interface = config.get("client", "listen_interface")
port = config.getint("client", "listen_port")
Но в любом случае, этот скрипт на питоне, даже если и поднимает локальный сервер, то по сути он и есть сервер - так как является серверной частью этого чата...
#409 #1104850
>>1104730
что ты несешь, даун
просто съеби с треда блять, решительно
#410 #1104863
>>1104732
Ну саблайм мб да, там плагины полное говнище. Человеческие плагины, например как у vscode просто поставишь, они сразу начнут читать конфиг и подчеркивать красным именно в редакторе.
#411 #1104891
>>1104850
ты пишеш выпускнеку москвоского университета Витте если что
мне-то получше знать
#412 #1104892
>>1104891
в московских университетах русский язык не учат уже?
2017-12-0856 Кб, 818x895
#413 #1104905
1104863

>vscode


>кусок браузера для домохозяек


>время запуска больше чем у ОС ВИНДОУЗ ДЕСЯТЬ


ваше мнение очень важно для нас и да саблайм это не просто иде, еще и просто удобный темный блокнот для правки луашек конфигов ватников да и просто чтения ридми, и запускаться это должно как не трудно догадаться моментально
#414 #1104907
>>1104905
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.006 000.006: --- VIM STARTING ---
000.108 000.102: Allocated generic buffers
<...>
055.198 001.559: first screen update
055.200 000.002: --- VIM STARTED ---
#416 #1104937
В проекте для букинга отелей использую сторонее АПИ, но оно отдаёт отели только кусками по 100, а запросить следующую партию можно только новым запросом. Как я понял единственный вариант показать их это подгрузка при скролле. Вёрстка будет на Ангуларе, и интересно было бы узнать как он себя поведёт если отелей будет больше тысячи. Есть ли какие-то "фишки" для оптимизации?
#417 #1104942
>>1099555 (OP)
Хули это говное ебаное не работает?
#418 #1104945
>>1104942
ты ж полуебок, кто за тебя функцию будет вызывать
#419 #1104946
а кнопка, ну тогда ладно
#420 #1104948
>>1104942
.textContent()
#422 #1104973
>>1104951
Это консолелог, а я хочу иннерХТМЛ.
>>1104945
Я ее вызываю в цикле.
>>1104948
Попробую.
15047315183523212 Кб, 1146x1080
#423 #1105135
>>1104050

>Ньюфаги, у кого есть вопросы по жсу? Любые. Если смогу, помогу.


Анон выручай, на тэбэ вся надежда - как должна выглядеть регулярка которая бы скрывала нахуй все окраинские диалекты из моих интернетов?
#424 #1105138
>>1105135
Удаляет все символы кириллицы.
#425 #1105144
>>1105138
A kak ge i ?
#426 #1105150
>>1105135
Жди когда роскомнадзор введёт белые списки, тогда пару сайтов останется и все русские.
#427 #1105151
>>1105144
А это не кириллица, что ли?
#428 #1105170
>>1105150
>>1105150

>пару сайтов и все русские


Mmmmm, skorey bi

>>1105151
Eto okrainc`a, vse russkie bukvi u menya krasnenkie, a i chernenkaya
#429 #1105261
нормально я его отхуесосил?
#430 #1105273
>>1105261
нормально, на следующих выходных потрахаитесь
#431 #1105290
Интересно мнение мамкиных фронтендеров
http://www.strawpoll.me/14579021
#432 #1105297

>document.querySelectorAll('#fbox1, #fbox2, #fbox3').style.background = 'white';


хуле оно не работает блеадь? не цикл же его скармливать в самом то деле
#434 #1105307
>>1105297
for (const fbox of document.querySelectorAll('#fbox1, #fbox2, #fbox3')) {
fbox.style.background = 'white';
}
#435 #1105314
>>1105307
Спасибо ня все работает только вот правильный ответ был: да нужно использовать цикл -_-
#436 #1105346
>>1104540
Спасибо :*
#437 #1105354
кароче не удержался и на три часа зааутировал все снипеты нахуй, накатил пекедж экстрактор, вытащил все говно из говна и спокойно все причесал за гадкими технарями без чувства аэстетики ну и форин фороф дописал докучи

кому интересно самый ебатый снипет под жс это JS & Node snippets + поверх ES6 toolkit, но он сильно пидорский, тому шо крошечный попап пидорасит с его портянок, аж трисет

ну и еще глянул чо там у Еммета, так вот в нем и цеска и штмл есть, так что отдельно я бы ничего не ставил,
таки дела.
#438 #1105368
Сильно ли бьёт по производительности babel-polyfill?

Заебал этот IE со своей неподдержкой хуйни вроде промисов, методов арреев и хуй ещё пойми ещё чего, с чем не справляется простой транспайл в es5. babel-polyfill всю хуйню решает, но бля, стоит ли?

Вариантов пока вижу 3:

> Послать в жопу IE и не ебаться


> Вручную всю хуйню тестить, искать косяки и ставить только нужные полифилы


> babel-polyfill и не ебаться

#439 #1105604
Использую history API для фильтров в каталоге, далее при переходе по ссылке товара открывается уже обычная страница: не ajax. При переходе назад со страницы товара
в каталог загружается только часть, полученная ajax'ом, а нужно релодить полностью. Как фиксить?
#440 #1105606
>>1105604
Сделал: отключил ajax cache
#441 #1105626
Пока писал, что мне нужно накодить, догадался сам как. Всегда бы так
2017-12-0915-35-58200 Кб, 899x870
#442 #1105660
кому тут нехуй заняться, вот вам задачка:

вместо унылого круга на двух точках

>ellipse(mouseX, mouseY, 80, 80);


заибаште мне кисть состоящую из.. ну я не знаю сколько там эта вебгл параша вытянет, ну пусть будет 36 точки

ну и что б пасНоиз и сайз = рандом дривен были

воот, ебаште граждане
#443 #1105697
>>1105290
Бамп
#444 #1105699
>>1105368
Однозначно стоит. Бьет никак. То есть отличие нативного метода и метода, реализованного через полифилл КРАЙНЕ МАЛА. Первое сделано в браузере на c++, второе - на js, но поверь, IE настолько говно что работать будет хуево при любом раскладе. Пользователи IE должны страдать. Им не привыкать. Так что подключай и все будет норм.
#445 #1105785
сап, двач. как подружить jquery и react?
есть перехват $('.key').click(), со статическим контентом работает, если рендерю те же данные через реакт - обработки не происходит. прекрасно понимаю, что можно все то же самое сделать через обработчики реакта, но блин, все переписывать не хочется.
index347 Кб, 200x200
#446 #1105792
Так, фронтендеры, вопрос фапа или смерти.
Как выдрать видео?
http://www.camwhoreshd.com/videos/198538/kati3kat-anal2-6c1440849861fb81/
#447 #1105795
>>1105785
сам спросил, сам ответил. нужно делегировать события статичным объектам DOM, в коих и генерятся данные
#448 #1105800
>>1099555 (OP)
У нас есть чатик для вката в реакт, ждем новичков https://t.me/hcdev
WxYAoYOfYUDk11 Кб, 498x110
#449 #1105801
>>1105792
Куда тебе залить?
#450 #1105806
>>1105785

> как подружить jquery и react?


> перехват $('.key').click()


Пиздец, зашквар.
#451 #1105824
>>1105801
Спасибо.
На любой файлообменник.
Или куда сочтёшь нужным.
1288945958654227 Кб, 2048x1365
#453 #1105851
>>1105843
Спасибо огромное.
promisde26 Кб, 709x187
#454 #1105852
Объясните нубу почему здесь получается число 15?
Promise.resolve(5) вроде просто возвращает промис в состоянии "выполнен", а число 5 передает в обработчик .then, которого вообще у этого промиса нет. Почему тогда в переменных появляются эти числа?
#455 #1105866
>>1105852
ты что даун? ты написал функцию складывающую 2 числа, она тебе их и сложила
#456 #1105874
>>1105866
ты вообще понимаешь что Promise.resolve(5) возвращает объект, а не примитив?
#457 #1105886
>>1105874
type coercion?
#458 #1105887
>>1105785
Это пиздец тупо, но если очень надо, обработчики нужно назначать в ComponentDidUpdate/ComponentDidMount
#459 #1105894
#460 #1106064
>>1105785

>react?


>есть перехват $('.key').click(), со статическим контентом


Переписывай нахой! Реакт не должен работать с селекторами и реальным домом. Переназначай методы-обработчики в JSXe блядь, мудак! Ух поймаю такого на работе - пизды дам. Пиши блять, компоненты если их нет
14928565098430658 Кб, 235x120
#461 #1106086
>>1105785

>подружить jquery и react

#462 #1106157
>>1105785
брось заявку в друзья
#463 #1106166
>>1105785
preventEventBubbling: function(e) {
console.log('click on div - stopping propagation');
e.stopPropagation();
e.nativeEvent.stopImmediatePropagation();
}
Аноним #464 #1106167
>>1105785
preventEventBubbling: function(e) {
console.log('click on div - stopping propagation');
e.stopPropagation();
e.nativeEvent.stopImmediatePropagation();
}
2017-12-11 (8)166 Кб, 1920x1080
#465 #1106171
реактаны я вам тут покушать принес
час двадцать картинку добавлял лол
#466 #1106176
>>1106171

>принес


Точки с запятой в конце строк в 2017 не обязательно расставлять.
#468 #1106187
Вопрос в следующем, правильно ли я понимаю устройство изоморфных приложений. (реакт)

1) Сервер генерирует первоначальный html, причём рендр реакта идёт синхронно, не работают всякие асинхронные запросы к API. Нужно отдельно загрузить что надо и передать например через пропы в рендр.

2) Так же надо вшить начальные параметры в сам html. Чтобы клент не перерендривал всё поновой. В этом хтмл так же указан бандл джиес со всей хуйнёй, который работает уже только у клиента. Клиент вызывает hydrate и всё, что происходит дальше делается на клиенте.

Как я понял, сервер нужен только при первом обращении. Так ли это? Или он и потом может что-то дорендривать и "помогать" клиенту?
#469 #1106217
java-господин вкатился

redux ваш говно, тыща строк на мелкое изменение, какие-то константы, префиксы, вы ебанулись там?

полгода плевался редуксом, от количества boilerplate кода было ощущение, что попал в джаву6, в итоге на обычных ангуляровских сервисах пришлось писать

все изменилось месяц назад, когда наткнулся на Mobx, через 15 минут интегрировал его в проект и начал пользоваться

надо ли говорить, что небо и земля? что вам мешает использовать божественный mobx? мутабельна ряяяя, нифункциональна ряяяя

на днях надо было сделать функционал в реакт нативе, который видел первый раз (как и реакт), через час уже было пара рабочих, аккуратненьких сторов, которые дергались в разных частях проекта, как представлю, какие мучения пришлось испытать бы от редукса аж в дрожь бросает
#470 #1106230
>>1106187
Да. Сервер ноды нужен только чтобы отрендерить первый запрос сгенерировать HTML и запихать его в див и отдать клиенту. Дальше уже клиент получает JS бандл и гуляет по нему без участия сервера иногда лениво совершая XHR/Fetch потуги в сторону API. (За получение информации отвечает третий API сервер на базе чего угодно). Проблемы начинаются, сука там где те же асинхронные вызовы. Параметры авторизации типа JWT нужно хранить только в куках, чтобы сервак мог отрендерить отдельную страницу. Сколько мы уходили от кук к локалсторейджу? Вспомнил? Теперь забудь. Вообще один раз писал React SPA с SSR, больше не возьмусь. Подводных камней дохера. Были проблемы и с хранением данных и с асинхронными данными и с роутингом. Гугл нормально индексирует. Остальные пусть идут нахуй либо пусть рендерят страницы с перезагрузкой либо пусть платят по 150к$ за такую еблю. И то - я бы присмотрелся к Next.js
#471 #1106231
>>1106217

>Не осилил отгрызок функциональщины.


>Не нужно


Конечно.
Вызвать экшн, который пройдет через редьюсер и вернет новое состояние это много?
Просто не нужно хранить все в редаксе. А хранить только то - что входит в надмножество многих не связанных компонент. Если группа взаимосвязанных компонент живет спокойно и не имеет проблем извне. Не лучше ли использовать стейт, в крайнем случае создать родительский контейнер.
#472 #1106232
>>1106230
Забыл добавить, что 70% методов из жизненного цикла при написании изоморфного кода нельзя использовать.
150721107414137805568 Кб, 600x382
#473 #1106371
Поясните за генераторы. Нахуя они нужны в 2017, если я не пилю хитровыебанные структуры данных по которым можно итерировать, и я могу спокойно пользоваться async/await.
#474 #1106448
>>1106371
Чтобы ты мог спокойно пользоваться async/await.
Сами генераторы тебе вряд ли ещё скоро понадобятся. А вот итераторы или асинки, на них основанные, обязательно. Так что неплохо бы по диагонали про генераторы прочитать, чтоб не быть баттхёртом.
#475 #1106454
>>1106448
Вопрос был не про это. Как они работают понятно. Как на них делать структуру ведущие себя как итераторы понятно. Вопрос нахуя оно может пригодится еще.
#476 #1106456
Хелп ми.
Нужно построить график математической функции. Пробовал в теге canvas, строя циклом линии от значения к значению, но смотрится стремно. Посоветуйте библиотеку или вариант решения
#478 #1106502
#479 #1106552
>>1106479
>>1106502
Спасибо

>ебучая либа


Попробую с этого начать. Странно, что сам не нашел, хоть и гуглил достаточно долго
#480 #1106565
господа, я правильно понимаю, что все функции, которые есть в жиквери есть и в реакте встроенные типа hover, on key down, on mousover и т.п.?
т.е. вместо жиквери можно тупо писать на реакте?
#481 #1106621
Я вижу что во многих вакансиях щас требуют Реакт но при этом кроссбраузерность-адаптивность. Реакт использует ES6 классы, которые поддерживаются только в последних версиях браузеров. И чо опять все через жопу делать или эти фирмы по умолчанию подразумевают разработку тока под последние версии?
#482 #1106622
>>1106621

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


Google babel typescript polyfill webpack
И тысячи других баззвордов.
#483 #1106635
аноны понял что я бездарное хуйло которое никак не может реалезовать свои навыки
посоветуйте плиз книжек где побольше практики
#484 #1106659
>>1106622
я уже погуглил. и где можно отбабелить реакт классы что-то не нашел. знаю как ес6 без реактов бабелить.
#485 #1106669
Пилите стори о том как ставили и настраивали ноду с нпм, сколько нервных клеток сожгли и времени потратили впустую.
Если анон доставит гайд по тому как поставить нод+нпм под вин10 и чтобы ВСЕ рабоатло без дополнительных команд то было бы прекрасно.

Моя стори такова что получил задание опубликовать модуль и успешно все проебал из-за отсутствия документации, толи из-за собственной тупости. Теперь люто ненавижу опесорс, все эти нпм и прочую хуйню которая не стабильна, нужно делать все не так как в документации написано(а в видео все чуть иначе)
#486 #1106671
>>1106565
Нет. Там нужен сборщик как минимум, тупо не получится
#487 #1106678
>>1106659
Webpack
#488 #1106683
А че, в 2к!8 еще верстают?
#489 #1106686
>>1106669

>настраивать нпм


ты ебанутый? может еще руководства по установке своего шиндовса читаешь?
#490 #1106687
>>1106686
Ни разу в жизни не переустанавливал шиндус
#491 #1106697
>>1106552

>гуглил достаточно долго


просто ты тупой чартсжс висит в каждой подборочке лучших фремворков
#492 #1106702
>>1106669

>нод+нпм


хуйня, прокликиваешь инсталятор и все работает

у меня вот было откровение что ГИТ и ГИТХАБ это сука разные вещи и что они нужны ОБЕ блять, пидорской октокот об этом по пидорски умолчал деграданты с наклейками блять думают что все вокруг нахуй ванги сотого левела, ух аж тресет блять, юзабилити? нет не слышал

а еще жопу рвет конфигурирование глобал пакетов, вот это адовая хуйня, кешируемый джейсон, который подцепляет конфиг хуйня малафья в итоге работает только локально
#493 #1106703
>>1106669

>опесорс, которая не стабильна


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

в отличии от доброго няшного фоса, где если приспичит ты сам можешь все починить, ощутив себя совладельцем любимого програмного продукта и частью гигансткого комунти таких же отбитых задротов как и ты пожалуй только ради одной этой фичи уже стоит вкатываться в коддинг
#494 #1106717
>>1106659
Три слова есть тебе сказать:
get dafuq out create-react-app.
#495 #1106735
>>1106669
на десятке сейчас максимум могут быть проблемы с нативными модулями (решается через npm install --global --production windows-build-tools) при установке нпм пакетов, еще насколько я помню нужен python 2.7 (но это не точно), пропиши пути в переменную окружения (path), в остальном даже n и nvm уже в WSL устанавливаются без проблем, поэтому можно даже обойтись без cygwin или git bash.

сам редко работаю из под винды и в основном запускаю проекты из докера, но это скорее по старой привычке
#496 #1106782
>>1106669
консоль открываешь и пишешь нпм инстал
#497 #1106784
>>1106717
фу, не хочу этот костыль.
я просил без костылей.
>>1106683
а жс где-то кроме фронтенда используют что ли?
#498 #1106795
>>1106784
бэк, мобилки, десктоп
#499 #1106801
>>1106784
бытовая техника
#500 #1106838
>>1106782
>>1106703
Ну если публиковать модуль то нужно залогинится, что вовсе не очевидно, учитывая все параметры в пекедже, а во вторых могут быть проблемы что даже до этого недоходит из-за того что пакетный файл находится в аппдата который под правами админа. Не все кулхацкеры и привыкли обслуживать свою операционку и ЧИНИТЬ новый инструмент пред применением

>>1106735
Слишком толсто, рил
Вот думаешь правда всем нужно это знать и копаться в этом?
Кто хотел уже сидят на никсах и собирают ядро вечечрами, или и вовсе заделались системщиками
#501 #1106844
>>1106838

>если публиковать модуль то нужно залогинится, что вовсе не очевидно


ну блять а куда ты его собрался аплодить без логина то!?

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

>обслуживать свою операционку и ЧИНИТЬ новый инструмент


домохозяке печет лол

>>1106838

>Вот думаешь правда все


такое черное или белое? тебе 16?надеюсь что такиначе ну ты понел
#502 #1106848
>>1106844
я ебу где там логинится?
Может после нпм паблиш нужно?
по такой же логике я пытался залогиниться нпм логин усер пассворд, оказалось нужно просто нпм логин. Это все НЕ ДОКУМЕТИРОВАННАЯ хуйня, понимаешь? Т.е. не просто тупо сделано,а еще и нету инфы б этом там, где она должна быть.

> ой иди нахуй


нпм это лишь пакетный менеджер, ИНСТРУМЕНТ, в нем не нужно разбираться. Что бы забить гвоздь я не должен разбираться в молотках, а просто взять молоток и забить гвоздь, с нпм так не вйдет
Явно все сделано не очевидно, криво, с расчетом что нужно разбираться, гуглть и прочее, тут вопрос ЗАЧЕМ? Сделайте нормально. Это просто сырой продукт, недоделка. Представь себя функцией которая на вход принимает параметры и должна возвращать рабочий результат, если параметры не валидны то нужно помудохаться с написанием хендлера. Надеюсь аналогия ясна.

Допутим больше, что не так. И ты обосрался, пайтон вообще никоим боком тут не нужн.
2017-12-1301-01-29445 Кб, 1211x902
#503 #1106853
>>1106848

>Что бы забить гвоздь я не должен разбираться в молотках


Мань плз количество типов молоткой больше чем извилин в твоей черепной коропкепро виды гвоздей их материалы вообще молчу

>ЗАЧЕМ


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

>не так


твой инфантильный подход
#504 #1106864
>>1106853
Где залогинится я имел ввиду на машине, через консоль, что бы запаблишить)

ЗАЧЕМ имелось ввиду коврятся во всей этой фигне если я хочу сайты,апы делать. НПМ пользуются разные девелоперы
#505 #1106875
>>1106864

>что бы запаблишить через консоль


читай аналогию с гитом, ковыряй апишник, это нихуя не дефолтное взаимодействие

>апы делать. НПМ пользуются разные девелоперы


/0
#506 #1106876
>>1106875
Что с гитом не так? У меня небыло такого что бы не мог легко и просто найти решение проблемы, доки там норм кмк.

Апы могут быть и веб-апы. или просто сайтики, собраные вебпаком, зачем тут "красноглазить" я хз

ИНБИФО: но пейн н гейн и проее в том же духе
#507 #1106935
Подскажите, почему на https://jsfiddle.net/14e34w1t/ жсфиддле у меня код работает нормально, а в хроме первое рандомное число нормально выдает, а на второе пишет НаН. Что за бред.
#508 #1106937
>>1106935
поменял название переменной с топ на лимит и все стало ок. Ничего не понял.
#509 #1106958
>>1106876

>Что с гитом не так?


нельзя репу создать из под соснольки без ковыряния АПИ

>>1106935
хром ущербный браузер, но в твоем случае ты забыл почистить чистить лучше читсить вилкой переменную з памяти
#510 #1106968
>>1106958

>нельзя репу создать из под соснольки без ковыряния АПИ


git init

github и git это как бы не одно и то же, ты же сам даже писал, что откровение было. Очевидно, что для работы с github'ом нужно использовать его API, как иначе-то может быть? Это же и есть определение API.
#511 #1106978
>>1106968

>git init


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

мой батхерт в том что все топят за сосноль, при том успускают из виду что для создания ссаной репы им надо пиздовать на сайт и шаманить там, а после они такие распускают хвосты и такие git suka -m 'ebal-sih-urot' аштресет блять
#512 #1106990
>>1106978

>ты ж уебок тредж читай


А ты, хороший человек, дальше сообщение читай. github это СЕРВИС, ОТДЕЛЬНЫЙ, ХОСТИНГ ПРОСТО, как ты представляешь себе работу с сервисом БЕЗ АПИ, а?! Я могу на своей личной vps'ке удалённые репы деражть, никакой разницы не будет.
#513 #1106995
>>1106990

>СЕРВИС, ОТДЕЛЬНЫЙ, ХОСТИНГ ПРОСТО, как ты представляешь себе работу с сервисом БЕЗ АПИ


и это существо пару часов назад улюлокало за нпм
#514 #1106997
>>1106995
Я не знаю, кого ты существом назвал, но я про нпм ничего не писал и только 2 (уже 3) сообщения назад в беседу вступил. На всякий случай: нахуй пройди.
#515 #1107064
>>1106935
тлдр: аккуратней с var, оно устаревшее и с закидонами, пока лучше используй везде let вместо var, позже со всем этим цирком разберёшься

Когда ты объявляешь var в глобальной области (не в функции), то такое свойство создаётся в глобальной объекте.
в Ноде:
https://repl.it/repls/InsignificantUnusualSpringbok
в браузере:
https://codepen.io/anon/pen/ZvYKaO?editors=0010

В window уже есть куча свойств, многие из которых ридонли. Например, топ:
https://developer.mozilla.org/en-US/docs/Web/API/Window/top
ЖС по своим особенностям в развитии просто молча не даёт создавать уже имеющееся ридонли-свойство в глобале. За это мы его и любим.

Не знаю точно, как работает Жсфиддл. Скорее всего он выполняет весь твой ЖС в функции. И у него тогда проблем с var нет. Ты сам можешь так сделать:
;(function () {
// твой копрокод
}());
Или можешь использовать везде современный let вместо var и проблем не будет нигде.
#516 #1107091
>>1107064

>пишет код в глобальной области


>обвиняет var


Может пора вкатиться в ООП?
#517 #1107093
>>1107064
Спасибо тебе большое
#518 #1107114
>>1107091

>вкатыш спрашивает про var top


>просто юзай ООП, хуля там


Может пора катиться на хуй?
#519 #1107447
>>1101019
Если ты ещё тут, прошу написать мне harka4[O}2ANUSyanwd?dexPUNCTUMrujhu
#520 #1107527
>>1107447
пиши на телегу @tsechi
#521 #1107565
>>1106669
1. Скачал nvm
2. Установил
3. Profit
#522 #1107566
>>1107565
Два ассерта в chai этому.
#523 #1107658
console.log(token);
console.log(token === null);

null
false

j_j
#524 #1107781
>>1107658
var a = NaN;
console.log(a == a);

false
Подробнее покажи код
#525 #1107808
Что нужно знать, чтобы сделать туду лист без свистелок и перделок?

Спасибо.
#526 #1107813
>>1107808
Да так, 3-4 функции
#527 #1107837
>>1107813
Ну ответ такой себе. Ладно, благо я уже сделал то что надо. Все равно спасибо.
#528 #1107845
>>1107808
ИМХО, всю теорию алгоритмов. Но я её не знаю толком, блядь.
#529 #1107964
Блин, как в атом установить eslint после того как скачал пакет?

https://atom.io/packages/linter-eslint

команды, которые здесь описаны, они куда писаться должны ?
#530 #1107976
>>1107964

>атом


хуита

>eslint


хуита нода в терминале блять и то лучше подскзаывает

накатывай сабляйм и жсхинт, будет тебе счастье
хлеб33 Кб, 1444x825
#531 #1107993
Почему котик не удаляется?
https://jsfiddle.net/0ncdkq2s/
#532 #1107995
>>1107993

>Почему котик не удаляется?


Потому что не добавляется
#533 #1107996
>>1107995
Добавляется. Это с js fiddle что-то. Я тег <head> удалил, потому что он попросил
#534 #1107997
>>1107996
Ну или с моими руками.
#535 #1108000
>>1107996
ну и нахуй ты нам нерабочий код выкладываешь!?

найди нормальный хост для начала, прояви уважение к анону чмо блядь
#536 #1108002
>>1107976
посмотрю,
я хочу попробовать все инструменты,

так по поводу вопроса-то?
#537 #1108004
>>1108002
пробуй, но не иби мозга анону

за линтеры я пояснял выше по треду, ориентируйся по краисвым картинкам
#538 #1108012
>>1108000
Сорри.

Я уже исправил и решил вопрос.
#539 #1108022
Пачиму в ректе нужно вызывать super() перед this?
#540 #1108092
>>1108022

>почему


Потому что наследуется конструктор из React.Component класса. Откуда у тебя в классе this.setState, как ты думаешь, тупое ты чудовище?
#541 #1108097
>>1108092
А пачиму тогда this/props робит без super?
#542 #1108098
>>1108097
Не тот анон, но вроде пропсы в аргумент функции там кладуться.
#544 #1108108
>>1108098
не совсем. в самом теле класса доступ к this.props будет, а если у тебя есть конструктор и ты хочешь сделать this.state, или получить доступ к this в конструкторе - обязательно нужно делать супер(). зачем - хуй знает. так ес6 классы устроены
#545 #1108177
https://jsfiddle.net/5gtbLrs1/

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

>timePassed = start - 20;


Вот строчка отвечающая за шаг, прикол в том что если я минус поменяю на плюс, всё работает, в смысле плавно идёт, а с минусом сразу пригыает. Помогите пожалуйста
#546 #1108260
>>1108022

>в ректе


На смену программистам на Жиквери пришли программисты на Реакте.
http://javascript.info/class-inheritance#super-internals-homeobject

>>1108177
Ты, если помощи хочешь и там больше пары строчек, будь добр скидывать минимально работающий прототип с разметкой и прочим. Всем лень додумывать.

>timePassed = start - 20;


Как достаточно открутишь, напиши там мне, чтоб я к биткам посерьёзней отнёсся.
#547 #1108264
>>1108177
https://codepen.io/anon/pen/KZdvvZ
Вот, сравни, где ты наебался. Вместо интервала я просто по таймауту как бы рекурсивно вызываю очередной шаг скролла. У тебя слишком много лишнего мусора в коде, чтобы было желание разбираться.
#549 #1108411
Кто и зачем вообще пользуется скролбарами!?

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

скролбар должен отмереть, как сучий шум прекрасного интерфейса
#550 #1108449
У кого есть курсы по JS от HMTL academy? поделитесь, молю.
#551 #1108476
>>1108449

>У кого есть курсы по JS от HMTL academy?


Я слышал у безымянного клуба есть, но это не точно
144864417781711,7 Мб, webm,
432x360, 0:30
#552 #1108490
>>1108260
ууу сука как пиндосам все расписал подробно
#553 #1108495
Ссылка на прошлый тред: >>1099555 (OP)

Этот тред посвящён уже нахуй никому не нужному языку прошлого - JavaScript, который через пару лет будет похоронен WebAssembly. Благодаря своей кажущейся дебилам простоте, веб-макаки затащили его уже и на сервера, и в мобильные приложения, и на десктопы, и ещё хуй знает куда, что привело к экспоненциальному росту количества написанного говнокода. Благо синтаксис позволяет легко писать на нём говнокод любой степени ущербности, а производительность позволяет писать на нём даже анимашки для лендингов и интернет-магазинов. Впрочем, для уменьшения потока говнокода от веб-макак каждый день выпускается по 100500 JS-фреймворков, благодаря чему веб-макаки теперь в основном тратят своё время на чтение доков по этим фреймворкам, а не на написание говнокода.
JavaScript по праву является самым популярным в мире языком: ведь дебилов среди людей - абсолютное большинство. На каждом сайте пока ещё есть браузерный JavaScript, а от JavaScript на сервере все постепенно отказываются.

Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md

Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/

Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/

JS-конфа в телеграме:
https://telegram.me/jsthread

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

анон сделай так что бы все поняли блять у нас тут модно сука и молодежно
#557 #1108526
>>1108522
не тупи еба, давай пересоздавай, мухосранские шутеечки подзаебали, да
#558 #1108531
добавь еще логосы актуального стака, что бы каждый примат был в курсе
1511656944584222 Кб, 423x417
#559 #1108535
>>1108531
Еще будут какие-нибудь пожелания?
#560 #1108538
>>1108535

>мартыхан на пике: не мы такие, жизнь такая


я бы все унес все маркдавн на гитхабе, так и красивше(читай читабельнее) и актуализировать проще
#561 #1108660
[code]
class Pes {
dernut(anus) {}
}
[/code]
#562 #1108661
>>1108660
`
class Pes {
dernut(anus) {}
}
`
#563 #1108663
>>1108661
class Pes {
dernut(anus) {}
}

`var pizdets = this;`
2162b2137b8e430cbf025ee81ba7e1a6264 Кб, 450x299
#564 #1108706
Что выбрать - freecodecamp или udacity ли может быть хекслет?
Тред утонул или удален.
Это копия, сохраненная 24 декабря 2017 года.

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

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