Это копия, сохраненная 1 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Хипстеры в узеньких штанишках там совсем охренели?
Сделали классы, все дружно бросились их использовать, но приватные методы забыли.
Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Запилили декораторы
@хуй
пизда() {}
но обосрались, декараторы работают только с классами. нельзя повесить декоратор просто на функцию или объект.
хипстеры дружно бросились использовать декораторы и команда babel берет их и выпиливает нахуй из проекта, потому что они вообще были просто шуткой, питушки так и не решили нужны ли они вообще?
в итоге имеем: недоделанные классы, в которых надо писать this ехал через this и нет приватных методов. Куча проектов использующих декораторы, которых вроде как нет и не должно быть и которые все равно через жопу сделаные.
стрелочные функции
поменял function на () => отвалилось все нахер
как вообще блять так жить?
хочется уже перейти на нормальный язык, без этих ебанутых плясок в яме с говном. жили же как-то раньше
> Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Как и питоне. Какие тебе вообще приватные методы в ооп языках?
так es5 никто не отменял же?
>поменял function на () => отвалилось все нахер
Блядь, ты охуенен, анон. Честно, без иронии.
Заведи бложик где-нибудь на Медиуме и пиши про ЖС. Обещаю подписаться.
>Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Сначала приведи аргументы в пользу наличия приватных методов в интерпретируемых ЯП.
Тебе самому разбираться, где паблик, а где прайвет?
Стандарт де-факто помечать имена приватных методов а-ля _myPrivateMeth() {}
Если не хочешь выбрасывать методы в глобал скоуп, юзай WeakMap'ы, приемы навроде Closuring и т.д. Простор же для фантазии, а тебе обязательно надо было заморочиться вокруг ES6 Classes.
>Запилили декораторы
>но обосрались, декараторы работают только с классами
Ну тут-то ты перегнул палку, бро. Декораторы можно вешать на методы класса.
Специально для тебя русек подогнали для описания декораторов: https://habrahabr.ru/post/277021/
>>911275
> Какие тебе вообще приватные методы в ооп языках?
> динамически типизируемых языках
Спецификаторы видимости важны для инкапсуляции, чтобы отделить внешний интерфейс от внутренней реализации. Типизация здесь вообще не при чём.
>>911269
> Сделали классы, все дружно бросились их использовать, но приватные методы забыли.
Ну называй приватный методы с нижнего подчёркавания, нормальный программист их извне вызывать не будет. Вот наличие тайп-хинтов хотя бы как в PHP очень сильно помогло бы. Но вот есть ребята, которые не только ноют, а пытаются что-то изменить: https://flowtype.org/
> Flow can catch common bugs in JavaScript programs before they run, including:
> silent type conversions,
> null dereferences,
> and the dreaded undefined is not a function.
Можешь и ты присоединиться, у них там около тысячи issues на гитхабе.
Если так сразу не скажешь, вот пример:
https://cloud.mail.ru/public/Cvrs/59QuUGxGT
> Если не хочешь выбрасывать методы в глобал скоуп, юзай WeakMap'ы, приемы навроде Closuring и т.д.
Это ты сейчас преимущества или что перечислил? Почему бы эти костыли не заменить на поддержку приватных полей из коробки, вместо того чтобы фантазировать как еще можно это говно довести до состояния здорового яп.
Есть файл icalendar или как-то так.
Можно ли как то выудить из него информацию и использовать ее жс? Переконвертировать его в json может, или какая то библиотека есть для работы с такими файлами? Как вообще делают в подобных ситуациях?
IE11, в Edge-режиме, выдаёт такой userAgent:
>"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; rv:11.0) like Gecko"
Они там пизданулись? Эта хуйня под FF косит.
Как детектировать любой браузер от MS?
В IE11, в режиме эмуляции IE9, тоже есть
>Trident/7.0;
. Это один из тех случаев, где эмуляция не помогает и нужен реальный старый IE?
В ноде есть fs.readFile(). В браузере нельзя получить доступ к внешним файлам c помощью жс.
>Сначала приведи аргументы в пользу наличия приватных методов в интерпретируемых ЯП.
Разработка api, фреймворков, везде где надо скрывать реализацию от шаловливых ручек макак и принципы ООП никто не отменял.
Вот я сделал на англуяре контроллер используя class,
angalar.module('analApp', []).controller(class {
constructor(privateService) {
this.privateService = privateService;
}
ebalJs() {}
});
некоторые методы приватные, потому что не должны вызываться из шаблона (view). Однако в js я могу обратиться к этим методам и даже сервисы, которые заинджектил, вызвать, через {{ $ctrl.privateService }}
Кто скажет: нахуй так жить?
Однако у нас на проекте ребята в узких штанишках именно так и живут.
>Стандарт де-факто помечать имена приватных методов а-ля _myPrivateMeth() {}
Вот сейчас открыл arbnb конвеншин, они пишут: не используйте _ перед именами, если хотите, что-то скрыть, скрывайте. Потому что _ не работает и выглядит убого.
>Ну тут-то ты перегнул палку, бро. Декораторы можно вешать на методы класса.
имел ввиду, что никуда кроме класса и метода класса ты их не повесишь
В той же статье:
@mydecorator
def myfunc():
pass
Вау!!! Мы сделали декораторы, как в пистоне, дивитесь, хлопцы
Однако аналогичный пример на js
@mydecorator
function() {
}
работать не будет
>Сначала приведи аргументы в пользу наличия приватных методов в интерпретируемых ЯП.
Разработка api, фреймворков, везде где надо скрывать реализацию от шаловливых ручек макак и принципы ООП никто не отменял.
Вот я сделал на англуяре контроллер используя class,
angalar.module('analApp', []).controller(class {
constructor(privateService) {
this.privateService = privateService;
}
ebalJs() {}
});
некоторые методы приватные, потому что не должны вызываться из шаблона (view). Однако в js я могу обратиться к этим методам и даже сервисы, которые заинджектил, вызвать, через {{ $ctrl.privateService }}
Кто скажет: нахуй так жить?
Однако у нас на проекте ребята в узких штанишках именно так и живут.
>Стандарт де-факто помечать имена приватных методов а-ля _myPrivateMeth() {}
Вот сейчас открыл arbnb конвеншин, они пишут: не используйте _ перед именами, если хотите, что-то скрыть, скрывайте. Потому что _ не работает и выглядит убого.
>Ну тут-то ты перегнул палку, бро. Декораторы можно вешать на методы класса.
имел ввиду, что никуда кроме класса и метода класса ты их не повесишь
В той же статье:
@mydecorator
def myfunc():
pass
Вау!!! Мы сделали декораторы, как в пистоне, дивитесь, хлопцы
Однако аналогичный пример на js
@mydecorator
function() {
}
работать не будет
>Но вот есть ребята, которые не только ноют, а пытаются что-то изменить: https://flowtype.org/
Это скорее попытка сделать яваскрипт строго типизированным. Интересно, почему команда ангуляра второго выбрала основным языком TypeScript, а не flow?
В тайпскрпте есть private, кстати. Вот только зачем использовать TypeScript, когда можно использовать java? Если писать на нем соблюдая все типы, то нужна будет тяжеловесная ide.
Спасибо за подсказку, буду думать.
>Вот только зачем использовать TypeScript, когда можно использовать java?
А еще можно своими кокошками жонглировать, попердывая в кресло.
Ты от проблем привык фрустрировать, или все же решать их?
Если нужны приватные методы, обмажься паттерном "revealing module":
https://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript
>получается, что если ты хочешь приватные методы, то использовать новые фишки нельзя
Риторический вопрос: ты сильно расстроился, когда узнал, что к fat arrow функциям нельзя биндить контекст? Это тоже ограничение новых фишек?
чем лучше расшаренной папки или python -m http.server?
> отображает некоторые мои файлики на компе
> express.js
Ради такого фреймворк жирнючий ставить...
То, что ты описал, уместится в один index.php на 5-6 строк.
>яваскрипт
Ухх, блять
>Интересно, почему команда ангуляра второго выбрала основным языком TypeScript, а не flow?
Почему команда говнуляра не выбрала dart?
Ты заебал уже хуйню пороть, маяковский. В js нет классового наследования, смирись. Здесь пишут функции, кооторые просто не экспортируют и все - нахуй не упали прайват методы. Используй java, раз так бомбит. Или костыли типа typescript/flowtype/dart
ты охуенен, анон
Не существует HTMLBoldElement для <b> - он наследует напрямую от HTMLElement. И для всяких <i> и прочих <em> тоже.
>Как вообще сделать приватный метод класса в этом вашем яваскрипте?
как там в 0х, что тебе мешает юзать модули?
всё что должно быть приватным, ты тупо не экспортируй из своего модуля, вот и всё решение.
внезапно на стороне клиента, это так и так бесполезно, в чем суть приватных свойств, если они видны в консольке бровзера в жс файле?
жаль не заскринил про че там, думал опять ебаный js свои финты крутит. Так-то в браузере все норм работает, там правда среда не совсем браузер обычный. Ну да похуй
>ебаный js свои финты крутит
В стапроцентах слачаев, это не js крутит финты, а криворукость чья-то.
>внезапно на стороне клиента, это так и так бесполезно, в чем суть приватных свойств, если они видны в консольке бровзера в жс файле?
Что ты несешь?
Как ты собираешься добраться до приватных свойств из консольки спрятанных в викмапе, которая в замыкании?
Я не о том, что это годно. Все привычки классоебво в прототипном программировании не нужны (да-да, и конструкция класс в js не нужна, уебки).
Но то, что в js нельзя ничего спрятать от пользователя, так чтобы он до этого не добрался - чушь.
> в питоне есть приватные методы
нихуя, в питоне абсолютная рефлексия, там есть только pep8 на приватные и защищенные (protected) методы, а также магические методы и все. В js аналогично.
> эффект медленного появления
Играйся с прозрачностью, где 100% растянуты на нужный тебе интервал.
>>911402
> везде где надо скрывать реализацию от шаловливых ручек макак
Кек, тогда и браузеры заставляю этого стандарта придерживаться, чтобы базовые вещи типо xhr, array.prototype и прочее никто не мог переопределить.
Алзо поясните за react-way. Можно ли в реакт роутере использовать не один компонент, а несколько?
Приватные методы как и классы вообще просят классоебы, которые не могут не пукнув перекатиться из КООП в ПООП. У них шаблон рвётся, так же как у статикодебилов, не способных писать код, так, чтобы их тайпчеккер по рукам все рвемя не ебашил.
Пиздец нахуй. Что это за ебатень?
А как по мне, приватные метода - хорошая альтернатива. Чтобы пользователь, такой как я, лол, который если и захочет залезть - то не сможет. Если-бы была поддержка в IE9 и е.п. - давно-бы перекатился на новые стандарты. Но приватные методы ещё на стадии черновика, насколько я помню.
>который если и захочет залезть - то не сможет.
Сможет. У него же весь код под рукой. Он возьмёт и сделает нужный метод публичным, поссав вам на литсо.
Потому что у тебя маняфантазии и преувелечения скобочек.
>В js нет классового наследования, смирись.
Но ведь оно есть и его можно было эмулировать и без введения фальшивых классов в стандарт
Сейчас пишу так:
function private() {
}
class Pizda {
jopa() {
private.bind(this)();
}
}
убого, но хоть какое-то решение
>>911655 допустим я делаю перделку-виджет, который клиент сможет разместить у себя на сайте сославшись на мой js фаил. и экспортирую api
widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту.
все это можно спрятать в замыкания, однако js обезьяны вообще не понимают зачем что-то прятать, они запилили классы без праветов, потому что не осилили прототипы и замыкания.
>>911659 да. Рвется шабло, что есть класс, а скрыть метод я не могу. Зачем спрашивается нужны были классы?
>>911731 это уже будут его личные проблемы, потому что мы как бы предупреждали
>Зачем спрашивается нужны были классы?
Они всегда были. Ввиде конструктора и прототипа.
class {} Это просто сахар.
Вместе с их введением ввели и полезную вещи, как наследование от встроенных классов.
>это уже будут его личные проблемы, потому что мы как бы предупреждали
Тогда достаточно использовать символы.
>это уже будут его личные проблемы
В смысле проблемы? Он же намеренно хочет покопаться, а не случайно там что-то сломает.
>потому что мы как бы предупреждали
подчёркиванием предупредите и всё. Нахуя усложнять жизнь и себе, и другим-то, я никак не пойму?
>Зачем спрашивается нужны были классы?
А что, единственное предназначение классов это приватные методы? Даже у инкапсуляции две части: сокрытие данных и группировка данных с методами.
>зачем что-то прятать
А ты можешь внятно объяснить, зачем? Толкьо без "не хочу, чтобы они имели доступ", желательно.
>В смысле проблемы? Он же намеренно хочет покопаться, а не случайно там что-то сломает.
Вот именно. Может он вообще туда дебагером полезет. Инкапсуляция это ключевой принцип ООП, вообще-то.
>подчёркиванием предупредите и всё. Нахуя усложнять жизнь и себе, и другим-то, я никак не пойму?
лол. Вообще сокрытие методов и свойств должно упрощать жизнь.
>>911789 ну ничего же не мешало добавить в этот сахар приватные методы. а так в этом сахаре нет смысла, да и какое же это сахар, когда нужно везде писать this. Даже в java такого маразма нет.
>>911806
> объясни мне принципы OOP
> яваскрипт тред
>допустим я делаю перделку-виджет, который клиент сможет разместить у себя на сайте сославшись на мой js фаил. и экспортирую api
widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту.
>>911787 дело говорит: https://jsfiddle.net/ee9woaLg/
>>>911787 дело говорит: https://jsfiddle.net/ee9woaLg/
Нет, не правильно.
Так у тебя в каждом инстансе инстансы собственных приватных методов, которые ты не сможешь использовать из других методов и вообще поебота какая-то.
Замыкать нужно сам класс, а не методы в конструкторе.
У тебя хуевое какое-то представление работы js
>Даже в java такого маразма нет.
Это совершенно разные языки.
Люди не умеющие переключаться между абстракциями и ноющих о том, что в каком-то языке что-то не так как они привыкли, обычно идиоты
Это конечно все замечательно, но как ты это сделаешь используя class и всю мощь es2016
http://www.typescriptlang.org/play/#src=class Widget { private pok = 'pok'; puk() { this.perd(); } private perd() { alert('puk') }}let w = new Widget();w.perd();
>Private visibility is a design-time construct; it is enforced during static type checking but does not imply any runtime enforcement. ... TypeScript enforces encapsulation of implementation in classes at design time (by restricting use of private members), but cannot enforce encapsulation at runtime because all object properties are accessible at runtime. Future versions of JavaScript may provide private names which would enable runtime enforcement of private members
а если бы тайп скрипт генерил код так?
https://jsfiddle.net/Lkf7yqsq/
Впрочем с protected бы обсрались, но все равно лучше бы было
> Алзо поясните за react-way. Можно ли в реакт роутере использовать не один компонент, а несколько?
Бамп вопросу
Вполне годная. Но у реакта больше материалов.
Нет, ты начинаешь делать приложение и когда у тебя возникает потребность в какой-то технологии - ты начинаешь ее использовать. Я уже год пишу на реакте, но не знаю вебпак идеально.
Найди awesome vue на github - там будут примеры приложений и ссылки на технологии, которые тебе могут понадобиться.
>но как ты это сделаешь используя class
Разницу между твои и этим примером чувствуешь?
https://jsfiddle.net/kq6dzb4f/
Пример не он писал, а я скопипиздил и изменил имена функций. И да, у тебя паттерн "модуль" - я это понимаю, просто не заморачивался с фиддлом, а нарисовал общее понятие. Скопипиздил пример с кантора.
>Инкапсуляция это ключевой принцип ООП, вообще-то.
Инкапсуляция это не только методы прятать, я же написал.
>Вообще сокрытие методов и свойств должно упрощать жизнь.
Так чем? Ты можешь не ссылаться на какие-то там принципы чего-то, деды так делали, а взять и пояснить по хардкору, зачем тебе это делать, кроме как скрыть от шаловливых ручек? Ведь последнее, как уже гвоорилось, с js не сделать, всегда есть относительно лёгкий способ всё расковырять.
ТайпСкрипт, Дарт, ФлоуТайп нахуй не нужны. Единственный их плюс - это облегчить старт для всяких мракобесов, которые пришли из Java, например, и не могут переучиться. КофеСкрипт тоже хуета.
Сейчас, блять, ВСЕ кому не лень пилят свои неебатсо крутые фреймворки (но это еще можно понять) и пытаются вылечить JS, который, по их мнению, является хуетой. В итоге мы получим то, что сообщество будет полностью разобщено. Придется тратить больше сил на поддержку проекта, который написан на чуть-чуть ином стеке.
Поэтому не следует быть как Мелкомягкие и заставлять писать разработчиков на своей недоподелке.
Нахуй говнуляр 2 и туда же тайпскрипт.
Вотэт у меня бомбануло, охуеть
> не следует быть как Мелкомягкие и заставлять писать разработчиков на своей недоподелке.
Ну да, именно поэтому ангуляр 2 через пару лет снова станет промышленным стандартом, на котором будут пилить толстые spa, как это было с первым.
> ангуляр 2 через пару лет снова станет промышленным стандартом
>Angular 3 will be released in March 2017
Там леченние проблем с обратной совместимостью. Когда пилили ангулар2, над совместимостью между версиями не подумали. Сейчас во 2-й версии api устаканится и можно будет все обновлять куда проще.
Короче нафига я пишу, читни лучше сам
https://toddmotto.com/please-stop-worrying-about-angular-3
Энивей ангулар2 это уже тяжелая махина на уровне эмбер или дерби, которые для простых приложений уже не годятся из-за оверхеда всяких фич "из-коробки".
Ты ща просто взял и ajax на ноль просто помножил
> Единственный их плюс - это облегчить старт для всяких мракобесов, которые пришли из Java, например, и не могут переучиться.
А ты писал на Java/C# большие проекты?
>>911659
> У них шаблон рвётся, так же как у статикодебилов, не способных писать код, так, чтобы их тайпчеккер по рукам все рвемя не ебашил.
Но ведь это удобно, чем больше проект - тем это полезнее. Вот, послушай чувака, у него явно и опыта и мозгов побольше, чем у тебя: https://www.youtube.com/watch?v=Ui8YfxzjaTY
Мужик обстоятельно рассказывает об удобстве TypeScript и преимуществах строгой типизации в общем.
Никто из здешник большой проект никогда не писал видимо. Но тут и правда удобней будет яву использовать я фанат gwt
Тоже проиграл с подливой, соседи ментов вызвали, а то шумно очень. Еще мчс приехали, я подливой пол дома затопил.
С того, что джава макака будет рассказывать, насколько этот язык позволяет писать хороший код. Обычно это такой же ад, как и js. Упрощает понимание как раз документирование в нужных местах и тесты. Неочевиднаю логику любой язык позволяет настругать.
>>912285
> как красиво писать код на javascript
Посмотри исходники 2 ангулара, экспресс.
Книги ему какие-то подавай.
>С того, что джава макака будет рассказывать, насколько этот язык позволяет писать хороший код
ты удивишься, но действительно позволяет. Существует огромное количество литературы, как писать хороший код на яве. Многие передовые практики в программировании вышли из явы. Даже этот ваш тайпскрипт не более чем попытка запилить яву. Да даже яваскрипт это яваскрипт.
С последнего утверждения улыбка на поллица уже была.
>Даже этот ваш тайпскрипт не более чем попытка запилить яву
Нет, это попытка запилить С#. А знаешь в чём разница? В тайпскрипте есть дженерики. В жаве их нет.
>Нет, это попытка запилить С#
начнем, с того, что C# это попытка сделать яву с кучей говна и сахора
>В тайпскрипте есть дженерики. В жаве их нет.
ха ха проиграл
https://docs.oracle.com/javase/tutorial/java/generics/types.html
Ты ебанутый?
Как он сделает публичным метод, к котором даже не имеет доступа даже через Консоль? Вообще, как он изменит тип метода?
Ты ебанутый.
Если хочешь один раз чему-то научится и работаьь следующие 50 лет, ничего не изучая, не читая и не гугля, то иди дворником работать. ЯП и решения на них будут постоянно развиваться, не смотря на все твое желание оставаться клавиатурной макакой
ПРОСТО возьмёт и изменит. Скачает твой код, подправит, и будет использовать свою версию. Или скопирует нужную часть и через плагин добавит публичный метод, который выполняет тот же код, что и приватный.
>>912246
>и правильный код
Разумеется, никакой конкретики, одни смехуечки и гринтекст.
>>912322
Красиво позволяет писать, наверное, любой язык. Однако, если требуется
>огромное количество литературы, как писать хороший код
значит есть вероятность, что некрасивый код оно писать позволяет гораздо проще, чем другие языки, на которые столько литературы не требуется, разве нет? Ведь не одни же джависты какие-то особенные, что хотят красивый код писать, все хотят.
>widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту
лол, что клиенту мешает сделать релейт, после того как он посмотрит в твой жс файл по ссылке?
widget.prototype._perd = function() {...};
в webassebly обещают байт код для ЖС, можно будет потом прятать весь код в него. только вот нахуя это всё, когда кругом опенсурс во все поля. хотя...
*webassembly
>ПРОСТО возьмёт и изменит. Скачает твой код, подправит, и будет использовать свою версию. Или скопирует нужную часть и через плагин добавит публичный метод, который выполняет тот же код, что и приватный.
про объясни, зачем это делать?
>значит есть вероятность, что некрасивый код оно писать позволяет гораздо проще, чем другие языки, на которые столько литературы не требуется, разве нет?
нет, это значит что яваскрипетры макаки необучаемые, вкатившиеся в кодинг неделю назад
>>912515 можно, но зачем? я просто скрыл от клиента все не нужное и весь информационный шум, оставив только нужные методы
0
голос «против»
избранное
Делаю веб-приложение с расчётом на длительную перспективу. Решил изначально использовать Angular 2, но мне не понравилось, что он слишком массивный, создаёт много файлов и директорий, а так-же устанавливает много модулей, которые мне не нужны (а нужны исключительно для работы ангуляра 2), тем самым, вовсе не вписывается в общую арххитектуру приложения. А за основу своего приложения, брать Angular 2 я не буду, так как его роль далеко не первостепенна. Но я вот вспомнил, что первый ангуляр просто подключается ссылочкой и работает сразу же. Но возникает вопрос, а Ангуляр 1, это вообще хороший продукт, а то я начитался об огромных преимуществах Ангуляра 2, над своим младшим братом, что возникает вопрос, стоит ли вообще использовать Ангуляр1? Или лучше обойтись православным JQuery и не морочить себе голову? Или быть может есть какой-то такой же простенький фреймворк (библиотека), чтобы просто подключить его ссылочкой и не собирать по частям, не закачивать какие-то дополнительные возможности, а просто сесть с сделать то что мне нужно?
Я читал что он очень ограничен в своих возможностях, а что самое ужасное, ему нужно в случае всего каике-то сторонние модулиподключать.
Это всё правда?
> Скачает твой код, подправит, и будет использовать свою версию.
>>912359
> C# это попытка сделать яву с кучей говна и сахора
А получилось так, что все новые фичи и сахар джава перенимала из С# с опозданием на пару-тройку лет. Так что попытка вышла отличнейшая. Если бы еще не была привязана к одной платформе - java-приложения были бы очень сильно потеснены.
>>912054
> ТайпСкрипт, Дарт, ФлоуТайп нахуй не нужны
Яскозал!
>>912530
Backbone, всего 2 зависимости - jquery и underscore/lodash. То бишь 3 скрипта. Не слушай этих (>>912532 >>912534) петухов, с этой хуитой тебе еще придется всякие редуксы и роутеры использовать с довольно ограниченным функционалом, плохо принимающим что-то кастомное.
Так-то ангулар первый очень хорош, но скоро его поддержку полностью дропнут, увы.
Смотрел, читал, к сожалению провёл тест на своём компьютере и он оказался даже медленнее чем jQuery...
Ну а вот "дропнут поддержку" и что? Мой же сайт будет нормально работать? Я вот тоже склоняюсь к первому ангулляру.
Жабаскрипта не знаю почти.
https://jsfiddle.net/ojwkoLg4/2/
Есть же ЦБ РФ, который в xml отдаёт курс, нафиг тебе какой-то иностраный поставщик?
>А получилось так, что все новые фичи и сахар джава перенимала из С# с опозданием на пару-тройку лет
например какие?
>>912536
>медленнее чем jQuery
лол, тогда пиши на жуквери
>твой код, подправит
Ты ебанутый?
Как он исправит мой код у меня на сервере, блять?
Ты ебанутый.
> на своей недоподелке
И тут ты обосрался. Этой недоподелкой пользуются даже инженеры из гугла, тобишь квалифициронные спецы.
>но после жс жаба кажется очень хорошим языком
Теперь я знаю, ради кого гугл запиливал дарт.
Слава богам Египта, эта хуитка не взлетела.
Да. Хочешь сказать в джаве не нужны многопоточность или асинхронщина просто потому что? За асинхронщину недавно вот adswizz задвигал, как у них на джаве все круто с ней.
>то понял бы к чему запилили тайпскрипт
к тому, что гуглодебсы делают джяву из всего к чему прикасаются
как бы понятно, почему гугелу это выгодно, не понятен только восторг дебилов, которых заставляют жрать говно (программировать на джяве)
>>912560
Собственно как и предполагалось, в этом треде одни мамкины вкатывальщики, ничего кроме жс не видавшие.
Поэтому в js прототипное ооп, и нехуй изъебываться и пытаться применять парадигмы классового.
Вебассемблер человекочитаем.
Нет, ты путаешь функциональное говно с КООП.
А для JS просто нужны приватные свойства/методы.
Если знаешь, то о каких приватных свойствах\методах ты говоришь? Зачем они в ПООП? Ты уверен, что понимаешь суть ПООП?
Я говорю о класс-синтаксисе же.
И вообще, вон, предложение уже есть -- через решётку. И нормально, уже на черновой стадии.
В том-то и дело, что не нужен в js этот синтаксис.
В js не то что чего-то не хватает, как многие тут утверждают, а напротив, слишком много лишнего.
В js не нужна ни конструкция class, ни оператор new, ни множества еще прочих вещей.
Их впиливали чтобы закосить и облегчить жизнь перекатывальщикам. А перекатывальщикам все мало.
В js иная парадигма, не КООП, он динамичен, тут метапрограммироване во все поля. Но людям слишком сложно и они ноют что им нужно то, чего на самом деле тут не нужно.
Все, что вы просите, должно реализовываться для вас препроцессорами, трансляторами, а не самим языком. И если бы вы понимали что KISS это хорошо, то не ныли бы.
>через решётку
Куда полезнее было бы это использовать для Symbol.for()
object #ololo == object[Symbol.for('ololo')]
>ни оператор new
И как ты предлагаешь вызывать функцию с NewTarget?
Через `Object.create(Constuctor.prototype)` и `Function#call`?
Ты ебанутый? Ты ебанутый.
Насчёт всего остального -- согласен, да. Но раз уж заговорили -- просто поддержал тему.
Да и мне всё-равно так-то. Всё-равно ещё года 3-4 не буду использовать ES6+, лол.
Ебанутый тут только ты, к сожалению, если не умеешь выносить часто используемый код в отдельную функцию.
>часто используемый код в отдельную функцию
Как-раз в конструктор это и выносится, если наследник нужен во многих местах.
При чем тут конструктор и оператор. блядь, дебил сука.
Какой же ты тупой, если не понимаешь, что оператор в языке ты уже не перегрузишь, если тебе не запилят эту возможнсть через какие-нибудь мета-методы, а метод блядь легко.
Ты настолько туп, что не смог бы переделать bew Hui() в Hui.new() ?
Ты дебил?
Наоборот же, антоша.
> Не пробовал писать на нормальном языке объёмные проекты
> жизнь не понял
Так-то лучше.
Это ты ебанутый. Если код у тебя на сервере, то клиенту похуй, у него нет никакого доступа к твоему коду вообще, приватность методов тут никаком боком не относится. Изначальный посыл был, что "вот у меня есть два метода, но пользователю моей либы я хочу дать доступ лишь к одному из них".
>>912554
Никак не посмотрит, ты даже не понимаешь, о чём речь в разговоре шла.
>>912529
>про объясни, зачем это делать?
Для того, чтобы использовать методы, которые какой-то хуй приватными сделал.
>яваскрипетры макаки необучаемые, вкатившиеся в кодинг неделю назад
Ээ, каким образом это вытекает из наличия кучи литературы по джаве?
Одни джавадебилы говорят что это идеальный язык и делают из всего, к чему прикасаются джаву, даже из лиспа, даже из пайтона, да даже из аллаха.
Вторые говорят что джава не нужна и вообще не тру и ебашат веб на пыхе, перле или рубях. Съебитесь в свой загон, заебали по всей борде срать.
>>912655
Разговор был только за строгую типизацию (независимо от языка), а не за то, что "джява лучший язык", не фантазируйте.
Строгую типизацию сожно прикрутить к любому языку ввиде препроцессинга. А ты попробуй выпилить строгую типизацию из языка, в который она вшита. Сможешь java использовать в качестве шелл-языка? В качестве интерактивного репла для управления какой-то среды? Удобно будет?
А js удобно. А чтобы на js писать что-то большое для поддержки, есть внешние инструменты.
Бритва Оккама.
>java использовать в качестве шелл-языка
>интерактивного репла для управления какой-то среды
>А js удобно
лол
Стикероеб, съеби в вкашечку.
Ты из тех, кто пишет GTK-приложения на руби?
Я не слепой фанатик какого-то определённого языка и не пытаюсь пихать его там, где ему не место. Очевидно, что для шелла удобней использовать скриптовый язык.
В треде вроде как не шелл обсуждали. То, что JS скриптовый и подходит для шелл скриптов лучше, чем джава, ещё не означает, что на js приятно писать что-то сложнее туду-списка.
Тред посвящен языку, а не какому-то отедльному его применению.
JS отлично подходит в качестве встраиваемого, в отличии от.
Мой пост был о том, что из языка в котором зашито всё, нельзя это просто взять и выбросить, в отличии от того, что когда в языке тебе не хватает чего-то - прикрутить это.
Я правильно понимаю если я напишу этот ивентлисенер инлайн, т.е. внутри тела цикла, то JS клонирует эти функции столько раз, сколько итераций цикла, а если я вынесу тело функции за пределы цикла, то в памяти будет только один экземпляр этого лисенера на все пикчи?
Спасибо, добра.
дурачок не унимается и продолжает пихать жс всюду?
bash неплох, есть альтернативы, если ты неосилятор - это уже другой разговор
Перепробовал все советы, один хуй на выходе прозрачное изображение (пнг), что в Хроме, что в FF.
Вот что делаю, например, на этой странице: http://learningwebgl.com/lessons/lesson01/index.html
const glctx = document.querySelector('canvas').getContext('webgl', {preserveDrawingBuffer: true})
glctx.canvas.toDataURL()
Пробовал через readPixels, как сказано тут: http://stackoverflow.com/a/18804083
Получается та же хуйня.
Потому что в твоих примерах при рисовании контекст был создан без {preserveDrawingBuffer: true}
Сохрани эту свою страницу на комп, допиши там в функции initGL {preserveDrawingBuffer: true}
и все заработает.
Блджад, и правда заработало.
Спасибо!
Выходит, зафиксировать изображение из webgl канваса можно только передав соответствующий аргумент в получение контекста на этапе инициализации?
Ну, а иначе буффер изображения не хранится в озу, оно в видеопамяти же. Откуда его брать, чтобы тебе отдать в виде пикчи?
Возможно и можно сделать скриншот страницы, через апи самого браузера, которое доступно для расширений например, и из него уже вырезать область с канвасом. Но в обычном клиентском js нет такого апи, то небезопасно..
Ясно, спасибо!
>переделать bew Hui() в Hui.new()
Пиздец. Даун, не понимающий ООП. Спешите видеть!
>>912644
>Это ты ебанутый.
Нет, ты
Слушай, анон, в чём проблема? Приватные методы - хороший способ убрать то, что не нужно видеть. Я-бы с удовольствием перепилил некоторые функции для расчётов и пр., чтобы их не было видно вообще во внешнем коде.
Это хорошое дополнение к языку, приучает контролировать геттерами-сеттерами всё важное и не давать добраться юзеру к чему-то важному.
Эти "квалифицированные спецы" будут писать на том, на чем им скажет писать начальство.
Если инженеры из гугла будут ставится хмурым и жрать говно, ты свое говноедство тоже будешь так аргументировать?
съеби нахуй, ты даже не понял о чем я говорю
Может, тогда ещё убрать `instanceof` и `in`? И циклы все в методы переделать.
Пиздец даун. Операторы в JS нужнее тебя в этом треде.
Если бы ты был хоть чуть-чуть прошаренее, то знал бы, что половина операторов и так перегружаются с помощью мета-методов. И твой instanceof ни что иное как obj[Symbol.hasInstance]()
Так что продолжай пососасывать причмокивая.
>Может, тогда ещё убрать `instanceof` и `in`? И циклы все в методы переделать.
Охуенно было бы, кстати. После этого останется только this выпилить, === переделать в == и получится более-менее нормальный язык.
inb4 переделай на объекты
Там та же самая проблема будет, только с объектом вместо массива.
Например, у меня есть 412, как его сконвертировать в 4.12?
Т.е. брать последние 2 знака как знаки от точки.
550 = 5.5, 5155 = 51.55 и т.п.
Пока только идея конвертировать в строку, добавлять . на 3 с конца позицию, это нормально?
ТЗ не читай, сразу отвечай.
Спасибо, и правда тупо
linq в java нет и не было
многопоточность всегда была
async/await нет, вообще не знаю что это за шняги и зачем она нужна
Тестовое выполняешь?
У него версия апнулась в прошлом году.
Do more, write less
80% сайтов, в том числе самые популярные, используют jquery, остальные 20% старое говно.
В том же луа, например, все через Class.new() и хуячат, потому что по-другому нельзя, и ничего, живут.
>и не давать добраться юзеру к чему-то важному.
Библиотеку свою спрячьте, блин.
>хороший способ убрать то, что не нужно видеть.
Если не хочешь чего-то видеть — не смотри. Ни одного конкретного аргумента, кроме как "не хочу", "спрятать", "ооп", "правильный код" так и не прозвучало. Что такого хорошего-то в ограничении пользователя, особенно когда он может это обойти, если совсем надо? Задокументируйте, обозначьте — дальше пусть сам ебётся, если что-то сломает используя "приватное". Я уже слышу запах своего пердака из будущего, когда приватность введут.
Вот есть OGVKit на ифон, webm проигрыватель. Там есть методы для показа и скрытия кнопок управления. И они приватные, блядь, вызывается только по внутренным событиям. Ну вот нахуя? Мне надо было в нужные мне моменты прятать или показывать, пришлось копипастить код тех функций в свой контроллер (даже к приватным переменным обращений не было).
В питоне в xlwt, например, была возможность доступа к экселевским листам лишь по названию. А мне по индексу надо или просто по всем листам пройтись, а массив листов "приватный" (к счастью, в питоне это легко обходится). В итоге через workbook._Workbook__worksheets[idx] и приходилось лазить. Но тут имя класса указано, а это не очень хорошо и может принести проблем.
Я уверен, у многих найдутся такие примеры, когда что-то полезное зачем-то прячут, вынуждая костыли пилить.
В общем, похуй, чего спорить.
> что не понимаешь о чем говоришь
Я сравниваю. В С# многие вещи сделаны на голову продуманнее и удобнее. Только в 1.8 добавили лямбды например.
> вообще не знаю что это за шняги и зачем она нужна
Действительно, зачем в приложении может понадобится асинхронность?
В общем этот холивар не имеет особого смысла.
А как же Веб Гэ Эль?
>Я сравниваю. В С# многие вещи сделаны на голову продуманнее и удобнее. Только в 1.8 добавили лямбды например.
Как ты можешь сравнивать ява и c#, если ты не имеешь представления о яве и несешь какой-то бред?
>Только в 1.8 добавили лямбды например.
и? ты хочешь, что сказать, что лямбды придумали специально для c#? ты хочешь сказать, что раньше нельзя было писать код лямбд?
>Действительно, зачем в приложении может понадобится асинхронность?
ты утверждаешь, что в яве нет асинхронности? Ты что несешь вообще?
Вот я, допустим (https://jsfiddle.net/bjg5Lv7L/), решил сделать класс User, каждому экземпляру которого давался бы свой айдишник от 0 до +∞.
Лучше ничего не придумал, чем по совету Кантора задать прототипу а-ля "внутреннее" свойство.
Так вот, как бы данную проблему решил прокаченный анон, или я накорябал максимум, который (пока) можно сделать?
Так он как раз не понимает постулатов Кея.
Он же из переделанной (new Class) конструкции в (Class.new) увидел сингелтон, а не посылку сообщения объекту.
> как бы данную проблему решил прокаченный анон
Не выебывался с сахаром, и писал бы все на страх добрых прототипах и конструкторах отдельно.
Для консистентности.
>User.prototype._quantity++;
То, что ты в конструкторе дергаешь свойство их прототипа, а не из образешься к нему из самого инстанса, говорит о том, что ты вообще не понимаешь прототипную объектную модель
Я как бы поэтому и спрашивал. А вот то, что ты сделал, это указал мне на то, что я дурак, ничего не предложив самому. И, кстати, ниже тебя, опять же, спросили, почему, на что ты ответил "вот уж действительно". У меня два предположения - либо ты сам нихера не понимаешь, либо ты просто мудак. Скорее всего, второе
Нахуя тебе этот твой счетчик _quantity в протипе инстансов?
Почему ты не сделаешь его статическим свойством самого конструктора User? Или ты не знаешь, что такое стические свойства, и что функции это тоже объекты?
Для это придется отказаться от использования сахара. Я же потому и спрашивал, что class не дает возможности устанавливать свойства-значения.
Менять свойства в прототипах вообще - хуевая практика, вносящая путаницу. Прототипы хранят методы. которые у всех инстансов будут одинаковыми, и если свойства - то со значениями по умолчанию.
В его конкретном примере, где он пытается хранить динамический счетчик чтобы генерировать id - это все равно, что в магазине, после каждого покупателя продавец будет рассылать сообщения всем предыдущим (и последующим) покупателям смс о том, что количество покупателей стало больше. У него короче нелогичное решение аблсолютли, ибо этот его счетчик никак не относится к отдельному инстансу, он относится к классу как таковому и считает количество инстансов этого класса, а значит и свойством должен быть класса, а не инстансов.
Ты дурак? Ты итак отказался от сахарах, и пишешь в протип мимо сахара.
Замени свой user.protytype.q на user.q
И иди учить js заново.
>>913070
Если тебе так лень инициализировать статическое свойство строкой ниже декларирования класса, используй замыкание на здоровье. Но для одного свойства, это вполне себе оверхед. https://jsfiddle.net/erx7fbhk/
>половина операторов и так перегружаются с помощью мета-методов
Которые, естественно, не нужны.
Зачем учить язык, если есть раскладка на клавиатуре?
ты правда хочешь говорить в жс треде о сосании хуев?
Как оно вообще?
В том плане, приятно ли на жс игростроем заниматься, при условии, что сам процесс разработки на жс очень доставляет.
Описание логики нуднее, чем, скажем, на Lua?
Правильно ли я понимаю, что все современные игровые движки на жс задействуют canvas?
>Правильно ли я понимаю, что все современные игровые движки на жс задействуют canvas?
Да.
Об остальном не скажу, не знаю что для тебя приятно.
Хорошо, а на каком движке можно быстро запилить простейший аналог арканоида или флаппи-берда, дабы ознакомиться?
Без текстур и без физических наворотов.
Суть в том, что когда я гружу приложение на роуте '/' и потом перехожу из него на '/url', то всё норм. Но если сразу попытаться зайти на '/url' или обновить страницу, будучи на нём, то ничерта не грузится. Не срабатывает даже перенаправление на '/' с неправильного роута.
Выбрал JS основным языком, который буду юзать, но начинать дрищу с него не рекомендуют, потому начал изучать основы программирования на С. Понял синтаксис и основы, но не затачивал решения задач, т.е. я осознаю где и что в этом С, но не применял его на практике. Так вот, что хочу знать: таких знаний будет достаточно, чтобы начать учить JS и не стать говном, или всё-таки надо задрочить С? Просто скучноват он, да и все-равно его применять не планирую, но становиться быдлом не хочу. Спасибо!
>но становиться быдлом не хочу
А правда в том, что знания Си и прилагающиеся к нему в работе с JS тебе не понадобятся ещё очень долго, возможно - никогда.
Понимаю, но в воспитательных целях надеюсь я не зря потратил время =) Спасибо за ответ
Чтобы начать изучать Js, тебе нужен просто курс основ программирования. Понимать, как работают циклы, ссылки, функции. И то, это все необязательно, в учебниках Js это в любом случае разжевывается.
Другой вопрос - для чего ты собираешься использовать Js. Если для веба (а если не для веба, то это странно), то хорошо бы заштудировать html и css, благо, эти две вещи простые как жопа.
Понял, спс. Да для веба, html и css точу на htmlacademy.
Ну, если ты очень любишь Js, то ты захочешь писать на нем инструкции на холодильнике для своих детей. Вопрос в том, что человек спрашивал про то, с чего ему начать любить Js, а начать лучше с того, с чего начинал сам Js
JavaScript неудачный вариант для новичка. Функции как объекты, объекты как массивы, запутанная схема кастования типов при сравнении: https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3 , хаки для вещей, которые в нормальных ЯП реализованы искаропки: http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex/6969486#6969486
Отсюда и обилие всяких is-function.js и is-number.js
Лучше со старта не забивать себе голову этой дрянью, а взять сишку и какой-нибудь учебник по алгоритмам, реализовать стек, очередь, различные алгоритмы на деревьях и графах. Далее взять язык с нормальным ООП и написать на нём пару игрулек. А потом, если уж припечёт, окунайся в джс-парашу.
Алсо, дополнительный вопрос: пишу на Python/Django, хочу делать фронт для своего проектика, который задуман как SPA. Чем бы вы пользовались на моём месте? Таблицы, кнопки, тулбары и деревья в проекте будут, а на ExtJS денех нет (проект не планируется быть OpenSourсе, а пиратить убеждения не позволяют).
[SPOLER]Скидываю лолей авансом[/SPOILER]
Очевидный реакт очевиден.
>пикрил
Ох уж этот реддит.
Не поленился, нашел пекедж:
https://github.com/tjmehta/is-positive-integer
В package.json - зеродеп и три дев зависимости для тестирования.
Сам пекедж состоит из одного файла и дюжины loc.
Блять, у этой хуйни лайков больше, чем во всех моих репах вместе взятых. Нужно пересаживаться на JS и клепать is-string.js
> Почему он так непопулярен?
Потому же, почему и эмбер. Сложный и тяжелый. Хотя на самом деле просто нимодна
Rax же. Алибаба хуйню не посоветует.
Тем более, реакто-совместим. Если что, пересядешь на другой стул.
https://twitter.com/survivejs/status/819811229690535936
http://ru.stackoverflow.com/questions/616064/angularjs-обработка-input
Поднимает, но картинки не подключает и роуты не работают. Урл меняется, вьюха - нет.
Нифига не понимаю суть вебпака этого.
Может у кого-нибудь простейший проектик есть на react+scss+webpack?
Для тебя нет. Ты мозговой инвалид. Некоторые киселя по ящику зырять, ты вот, корявыми пальцами в бородавках, гавнокод на жоэс набираешь за дошир.
Начни носить брюки в обтяжку и жахаться в срачельник и все сразу заработает. Фраентенд чует, что ты не из своих и не дается тебе.
Покажите простой пример ООП, который реально встречается, а не Animal -> Cat.
На самом деле плюсую к тем, кто выше писал, что проблема не найти обучающие материалы, а найти материалы, которые РЕАЛЬНО используются или, хотя бы, близки к этому.
Один раз вообще статью читал, где фронтам рекоммендовали выучить сколько кб ссылка занимает и задрочить алгоритмы с обходами бинарных деревьев. Где, блеать, в обычном SPA, это может пригодиться???
Гавнакод на ангуляре. Писала макака (другие на ангуляре и гавнариакте не пишут). Разъяснять лень.
Проиграл с кастинга в строку и последующих сравнений.
>Где, блеать, в обычном SPA, это может пригодиться???
Никто не спорит, что создать виджет комментариев легко и без применения ООП.
Однако создание изолированного класса [здесь] сродни компонентному подходу, т.е. повысит и упростит реиспользуемость кода в будущем.
Так что ООП в фронт-энде не лишено смысла.
Это же шутка какая-то? Айди даётся по порядковому номера элемента в массиве (зачем вообще такой айди нужен, это же индекс?), но при этом элеметы оттуда могут удаляться, то есть получится несколько элементов с одинаковыми айди.
Абу пидор, двачую
> в обычном SPA
Ну если для тебя смысл жизни это лепить круды, то можешь забить вообще на теорию.
>насколько ООП востребовано в веб-разработке?
НИНУЖНО
во фронтеде востребовано ФП, в частности FRP
ООП - для отсталых яванских макак
Нет, не шутка.
Если бы ты присмотрелся, о понял, что унео там с айди не все так просто даже. Они у него вынлядят как
011
021
031
...
0441
0451
В твоем задании хотели, чтобы ты рассобачил сам интерфейс на MVC, а модели попривязывал к предметным сущностям - пользователь\комментарий\етк
Ну окай, интерфейсы к крудам
Комментбокс на MVC паттерне? Ёбу дал?
Тогда из него вырастет достойный продолжатель дел TodoMVC.
Спасибо за публикацию нашего ТЗ на дваче. Мы вам перезвоним
Скажите, можно ли каким-либо JS фреймворком тестировать функционал либы, кроме монструозных комбайнов типа фантома/селениума?
Тестирование заключается в проверке атрибутов элементов созданного дома на соответствие эталонным.
>и нет, это не попап, который открывает вкладки в бекграунде
Проиграл.
window.open это и есть попап, мань.
получаю список категорий по апи, но фигня в том, что каждый раз при вызове контроллера в шаблоне перерисовыется меню, состоящая из списков категорий.
как сделать так, чтобы список категорий получить один раз и больше к нему не обращаться?
Не хотелось бы изобретать велосипед
>window.open это и есть попап, мань.
Да здесь нечему проигрывать.
Имел в виду не рекламный скрипт.
Браузер не различает семантику содержания.
Если он настроен блокировать всплывающие окна, он их будет блокировать. В отличии от вкладок.
Это все понятно, я сделал оговорку для того, чтобы не возникло сомнений относительно благонадежности кода.
Я смотрю, Жасмин умеет отлавливать ивенты, в т.ч. открытие окна.
Может ли она чекать дом в порожденном окне?
Я вот о чем подумал, дабы избежать использования фантома и селениума, в апи либы своей сделать доступным вызов, который бы возвращал объект window порожденного окна, а входящий в него дом далее использовать в тестировании.
Ведь это гораздо проще.
Например:
1. Тупо были файлики index.html, style.css, script.js, где и была вся логика. Написал, закинул новые на сервак - всё работает. По желанию - модульность в отдельные файлики.
2. CRM, CMS - ????
3. Пишем на фреймворках, собираем галпами и паками, получаем готовую сборку, которую и деплоим
Собственно, проблемы с п.2, т.к. не застал того момента и не особо шарю, как ээти ваши CRM/CMS работают. К чему они относятся вообще?
Сначала был голый html, даже без css. Все форматирование происходило за счет семантики тегов b, i, p, blockquote и так далее. За стиль оформления отвечал сам браузер.
Потом появился css, который вначале был куда плачевнее нынешнего.
Только позднее, спустя почти пять лет начала существования гипертектста в браузерах появился js, но и тогда он не был призван для какой-то там логики. Он использовался для все того же фактически оформления страниц.
Веб эпохи один ноль, был устроен таким образом, что сайты были в большей степени статичны и наполнялись самими администраторами. Не было никаких комментариев чатов и прочего (суть такой интерактивной динамики, а если где-то и была, то выглядела совершенно иначе и работал на иных принципах), для общения и обсуждения использовались иные каналы связи, не веб.
cms же тогда, если и были то только у крыпных ресурсов, для администрирования и генерации этого самого статичного контента.
Сначала использовали perl, потом из него родился php. И так далее, иные серверные платформы, для написания этих самых штук.
Айти самая динамичная индустрия в мире, тут все всегда развивается очень быстро и парарллельно. Нельзя точно сказать, что в какой-то момент это было, а этого в этот же момент не было. Оно могло быть но осуществлялось иначе.
С тем как росли серверные фреймворки (к слову, php это имено веб-фреймворк, а все ваши симфони запилены уже поверх фрейворка. в то время и до сих пор были и остаются те кто писал сайты и на сишечке), как росли серверные платформы, менялся и веб.
Нет такой статьи которая бы в полной мере охватывала каждую деталь в отдельный момент времени. Читай о каждом факте истории, технологии и прочем по отдельности. Так и придешь к осознанию.
Можешь начать с Тима Бернса Ли. Википедия так и устроена, что из одной статьи можно переходит в иные.
Самообучение наше все.
да
>Нахуя?
Костыль для того, чтобы перекомпоновать/изменить дом с исходной страницы с целью последующего преобразования (сохранение, печать и т.д.)
Не хотел изменять контент в донорской странице, хотя... Это трезвая идея: создать фрейм 1х1, поместить в необходимом порядке контент во фрейм, и в финале заинжектить скрипт с триггером onload, как тут: http://plungjan.name/SO/testprintiframe.html
Будет работать?
Пиздец ты поехавший. Есть же data, blob-ы всякие для сохранения/отображения. Есть медиатип для стилей, которые будут использоваться при печати.
Зачем хаки делать?
> перекомпоновать/изменить дом с исходной страницы с целью последующего преобразования
Йобаный стыд, чем тебе DocumentFragment не угодил, что свой велосипед понадобился?
>DocumentFragment
Причем здесь DocumentFragment?
Задача следующая:
Выбрать фрагмент исходного дома -> произвести манипуляции над выбранным узлом -> добавить новые элементы -> подготовить к экспорту/печати.
Вопроса как это сделать у меня нет, уже все сделал тупо клонируя ноду и, при необходимости, добавляя новые элементы .appendChild'ом. Но вот анон годную идею подкинул, что вовсе нет необходимости вставлять узел в новое окно, достаточно все это запихать в iframe (который потом нужно удалить, да).
Вопрос изначально состоял в том, как лучше провести тестирование полученного дома, не прибегая к очевидным фантомам. Сейчас, конечно, можно будет вооружиться любым фреймворком, если все содержимое будет в iframe.
>>914663
>Есть же data, blob-ы всякие для сохранения/отображения.
Необходимо не просто сохранить исходный фрагмент. Уже накостылили до меня таких приблуд, типа html2canvas, нужно именно провести определенные манипуляции над имеющимися элементами и добавить новые. CSS @media решает проблему только отчасти.
>Йобаный стыд
>ты поехавший
Ну стыдно немножко, да, но решение под чужие нужды.
Так и зачем тебе вообще отдельный браузерный контекст для этого?
Клонируешь ноду в документфрагмент. Производишь над ней манипуляции. Вставляешь документ фрагмент в отдельный слой (который если хочешь, можешь убрать за границу видимости). К этому слою применяешь css с медиакуарес для печати (чтобы на печать выходил только он). И всё.
Например, в jQuery или Angular?
Ведь надо, чтобы http.get вернул содержимое файла, а не реально выполнялся
>под любую платформу
На моей микроволновке тоже должна проигрываться?
Вопросы учить нормально задавать.
Типо того?
var xhr = new XMLHttpRequest();
xhr.open('GET', 'moi_igri.json', false);
xhr.send();
Что ты написал?
Ты же хотел перехватывать запросы и возвращать поддельные данные, вместо реальеых запросов.
А ты чего делаешь?
Расскажи мне, что делает твой код, по-твоему.
это называется, что люди пришли в динамический язык и не знают, что такое динамика.
Я понял тебя, анон.
Но одно из требований - обеспечить возможность сохранения исходных стилей при возможности (опция).
В предложенном тобой способе, когда кусок склонированной ноды остается в одном контексте с донором, будет проблематично реализовать такой механизм.
Можно, конечно, запплаить стиль, при котором будет сокрыто все, кроме склонированного узла, но затем нужно будет запплаить стиль, который бы отображал склонированную ноду, насколько это возможно, похожей на исходную.
К тому же, появляется неиллюзорная вероятность возникновения в одном контексте нескольких элементов с идентичным идентификатором, а это уже не комильфо.
Посему отдельный контекст - не блажь, но необходимость.
контекст iframe работает по тем же принципам что и window.open (почти).
тоесть ты точно также кимпортируешь склонированную тобою ноду, только в документ не в окне а в ифрейм. инжектишь туда какие-хочешь скрипты, обмениваешься с ним сообщеняиями на здоровье. он же локальный.
Да-да, спасибо.
Я так и сделаю.
Просто объяснил анону, который предложил в одном оконном контексте производить манипуляции с склонированной нодой и аттачить их в донорский документ, почему такой вариант не подходит.
> >Есть же data, blob-ы всякие для сохранения/отображения.
> Необходимо не просто сохранить исходный фрагмент. Уже накостылили до меня таких приблуд, типа html2canvas, нужно именно провести определенные манипуляции над имеющимися элементами и добавить новые. CSS @media решает проблему только отчасти.
> html2canvas
Это же вообще скриншотер DOMа. Что-то я совсем потерял представление о твоей задаче
Не знаю, я с W3School скопировал, там пример на эту тему был.
Ну создаём новый объект запроса и кидаем его в xhr переменную. Потом открываем запрос GET и передаём туда файл, вместо урла, false для чего-то там.
А потом отправляем. Всё.
Ты сам себе противоречишь. Сначала ты не хотел делать запросы, а теперь делаешь.
>Не знаю, я с W3School скопировал
В общем, удачи.
Зацените помимо лолей, что я пишу на Dojo. Рендеринг шаблонов - на Django. Возможно, кто-то поссыт мне в лицо сейчас, но пока пусть будет так.
Пилю сейчас для тренировки всякие тудушки и прочие простенькие задачи на ангуляре и реакте.
Сколько должно времени уходить на простое СПА у джуна/мида/сеньора?
Начиная от пустой папки до готового проекта (включая стили и настройку gulp/webpack)?
Очень интересно узнать, какая корреляция между опытом и затрачиваемым временем.
Godno.
Govno
Гавно.
Не слушай этих долбоебов, отличный учебник.
Хочу сделать простую поделку. Нужно генерить разноцветные пиксели и двигать их в сторону (как будто прогресс бар) Как это сделать лучше всего. Канвасом?
В общем с помощью request перебираю адреса сайтов. Проблема в том что нода возвращает мне статус кода не тот который в браузере. Например отдаёт 503, вместо 200. А при следующем запуске может и 200 отдать. Поставил уже и UA и timeout (я не могу понять он работает или нет).
Вот код https://jsfiddle.net/atd51zed/
В гугле предлагают setTimeout поставить, но у меня идёт просто задержка 2сек (например) и потом опять выплёвывает всё разом. Еще прочитал что якобы синхронные действия мешаю с асинхронными. В общем помогите.
А вообще мне нужно перебрать эти страницы и на каждой поискать нужный мне элемент. Если нашел -> адрес в один массив, если нет -> в другой массив.
Но запуская скрипт через раз находит элемент на сайте (хотя он там есть).
Сути не меняет, добавление константы, перевод в строку и т.д. одинаковы для всех. Удаление хотя бы одной тудушки приводит к дублированию айди при следующем добавлении (кроме случая, когда удалённая была последней в массиве). А ещё ты нолик лишний приписал, по-моему, оно же будет 01, 11, 21, 31 и т.д.
>>914303
Не очень понял, что ты этим хотел сказать и как это противоречит (если должно было) моему посту. Где-то туду помечается выполненным и удаляется из списка. Когда и кем конкретно - не так уж важно.
Неосилятор, плиз
Погугли, ленивый ты пидор.
Попробуй делать повторный запрос через несколько секунд при ошибке. Возможно, просто какой-нибудь ngx_http_limit_req стоит на сервере
>>915010
>>915009
В общем решил, кому интересно (судя по всему всем похуй)
https://jsfiddle.net/3mh651pw/
Другой тупой вопрос. Я Excel файл конвертирую в json. Мне сам json файл не нужен (я ставлю output в null, так в документации написано), а нужны данные. Данные находятся в result. Я не могу подобраться к ним вне функции. С глобальными переменными не работает.
xtj({
input: "./test.xlsx",
output: "./test.json"
}, function(err, result) {
if (err) {
console.error(err);
} else {
console.log('done');
}
});
https://jsfiddle.net/1ksfc94r/embedded/result/
Кто-нибудь может добавить выбор амплитуды, фазы и анимацию?
Чур не я.
>>915082
Спасибо за отклик, но я загорелся более продвинутую вещь сделать, за одно освоить пару новых для себя вещей.
В общем на словах все должно быть так примерно
На первом шаге цикла генерируется столбик из разноцветных пикселей например.
На второй шаге готовый столбик сдвигается на 1 пиксель вправо, а в освободившемся месте генерируется новый уже другой столбик.
На третьем шаге уже оба столбика сдвигаются вправо, а новый столбик опять же генерируется в пустом месте.
Я так полагаю мне нужно хранить инфу о пикселях в массиве, и постоянно генерируя новый столбик размером Х пикселей просто добавлять в массив новую строку которая хранит инфу о них. А потом заново в обратном порядке отрисовывать всю картину?
Буду ща курить код
http://www.goodboydigital.com/pixijs/bunnymark/
можно сказать вдохновило меня на то, что бы запилить что-то своё.
Нет, двигать надо. Не важно как проще или логичнее. Важно, что можно двигать. Можно, конечно, и не двигать, но тот факт, что есть такая возможность подвигать, непременно означает, что ею необходимо тотчас же воспользоваться. И подвигать. Двигай, если ты хочешь двигать. Подвинь это еще раз, и еще.
Сделал колонку на бутстрапе, пока было по одной глиф-иконке - всё нормально было. Решил добавить к одной из них счётчик - вышла хуита и всё разъехалось.
Код такого плана
http://pastebin.com/7vhXj3qe
Хочу сделать как на втором пике. Чтобы иконка почты никуда не уезжала, а просто у неё в углу был счётчик
Ваших бутстрапов не знаю, вот как в вузе учили, так и пишу. Значит, так:
<div id="buttons-wrapper" style="position: relative;">
<div id="buttons-greenbutton" style="clear: both; width: 100%; border-radius: 5px; background-color: green; text-align:left">+</div>
<div id="buttons-bluebutton" style="clear: both; border-radius: 5px; background-color: blue; text-align:left"><img src="convertique.png" style="float:left" /> <span style="background-color:white; border-radius: 10px; font-size:10px; font-weight:bold" id="buttons-bluebutton-number">1488</span> </div>
<div id="buttons-redbutton" style="clear: both; width: 100%; border-radius: 5px; background-color: red; text-align:left">×</div>
</div>
не show а fadeIn
Но тогда не будет никакой собственно анимации.
>Назови хоть одну книгу о том, как красиво писать код на javascript
Я понимаю, что интеллект среднестатистического жабоеба требует наличия руководства, изложенного в книжном формате, даже для таких простых вещей, как поход в туалет, однако в жс коммьюнити достаточно свода кратких рекомендаций для обретения навыка написания семантически ясного и синтаксически верного кода.
Линкрелейтед: https://github.com/ryanmcdermott/clean-code-javascript
Я же вроде как обновляю холст после отрисовки каждого столбца.
https://jsfiddle.net/s1mvm836/
>while (new Date() < ms){
>}
Никогда так не делай. ЖС асинхронен, линейный синхронный синхронный код с задержками в нём писать нельзя. И не пытайся пока. setTimeout, setInterval, коллбэки и промисы (что, по сути, то же самое). Потом про промисы через генераторы узнаешь, ES2048 выйдет с async/await, станет проще.
А по коду: браузер не прерывается на отрисовку страницы во время твоего лупа. То есть, что-то ты там может и меняешь, но браузер показывает лишь два кадра: "до" и "после" лупа.
Вот типа так. https://jsfiddle.net/s1mvm836/1/
Только оно всё лагает. С канвасом не работал, размуно ли каждые 2 мс вызывать ctx.putImageData — не знаю. Видимо, нет.
Рекурсия ничем не отличается от лупа. Нужно возвращать контроль браузеру, иначе толку никакого, промежуточные шаги пропадут.
Сама функция, вижу же — пашет, а вот с получением результата из неё проблема. Где я накосячил-то?
если юзать рекурсию с setTimeOut, то всё норм, она вернёт коллбэк как отресуется пикселями - скажем 1%, и будет ждать нового вызова для отрисовки следущей порции процентов, браовзер при этом не остановится.
>>915628
>>915682
Блин как же тут все не для людей, вот на паскале 20 лет назад прогал и было всё изи. Прога не прерывалась если ты не хотел, если хотел выводить всё динмамически то и было все збс. Потом меня эта хуйня бесила в пхп, что нельзя получать динамически ответочку от скрипта, а только результат, и тут ща это же вижу БЛЯДЬ НУ ЗА ШТО
В пре-финальном шаге ты просто вызывал функцию, после чего она возвратила (ф-ции в JS всегда что-то возвращают, так уж повелось) undefined. А уже в финальном ты вернул результат, но в никуда.
Чтот я непонял.
У меня в isEven стоит ретурн, который даёт функции check число и по идее же должен return фунции чек принимать в себя и тут же отдавать в console.log в самом конце.
Разве не так всё?
Ладно, если в двух словах:
>check(n)
следует заменить на:
>return check(n)
Понимание придет, когда сам нагуглишь, зачем так делать.
Т.е. то, что я постом выше написал — вызывается только один раз, а потом, само в себе, оно вызывает себя уже без ретурна, и по этому оно не передает значение в функцию isEven?
> вызывается только один раз, а потом, само в себе, оно вызывает себя уже без ретурна, и по этому оно не передает значение в функцию isEven?
>оно не передает значение в функцию isEven
Вернее сказать: не возвращает значение.
А в целом правильно размышляешь.
Итого имеем, твоя исходная функция isEven(Number) вернет корректное значение только при аргументах 0 и 1, во всех остальных случаях будет возвращено undefined.
> вернет корректное значение только при аргументах 0 и 1
И сделает это только потому, что они в самом начале проверяются, когда для них описано всё. Спасибо.
А это не считается за какой-то костыль или неудобство, которого в других языках нет?
>агает. С канвасом не работал, размуно ли каждые 2 мс вы
А какие есть альтернативы канвасу? Как вообще в js рисовать?
Я так и знал, что первым ты ответишь.
А ты знаешь какие-то тьюрринг полные языки программирования, на которых нельзя?
АЛГОЛ? Ну я скорее про удобство.
Брейнфак?
>>915691
вопрос, если я правильно понял, в ЖС каждое объявление функции запускает отдельный тред с задачей, но при этом на это не выделяется особый процесс в ЦПУ, но в то-же время эти треды работают как бы параллельно, как это реализовано, и чем это лучше/хуже тру параллельных вычислений?
// тред 1
function t1() {...}
// тред 2
function t2() {...}
Пришла простыня текста по косякам, но отметили и достоинства. А, главное, предложили переписать это под 2й ангуляр, типо это в задании указано было. Но когда я приходил туда - я сразу сказал, что 2й версии не знаю, мне ответили, что "Норм, мы тоже недавно перекатываться начали", а по заданию - было чёткое и ясное "на чём угодно". Специально уточнил, сказали хоть на реакте, хоть на ванилле.
А сейчас ВНЕЗАПНО переписать под 2ю версию. Зачем? Что должно это тестовое показать? Я, вроде, уже показал свои навыки и свой максимум, насколько это возможно. Какое исправление косяков и какое переписывание в ТЕСТОВОМ ЗАДАНИИ? Что это покажет?
И, хотя сказали, что этот код нигде применяться не будет, типо задание явно тестовое, но меня терзают смутные сомнения...
Компания разрабов клёвая, я б поработал, но КОМПАНИЯ, при этом, никаких ништяков не обещала, даже про зп речи не зашло, зато толсто, но в шутку типа, спросили работаю ли я от звонка до звонка обычно или есть варианты. И сказали, что у них офис 24/7 открыт и можно если что - ночью прийти поработать. Мне кажется это самый херовый "пряник" из всех возможных.
Посоветуйте, что думаете? Переписать/закрыть баги или плюнуть и пилить собственные проектики?
Плюс настройка вебпака с плагинами.
Собственно, я ищу место, где можно начать учиться на готовом проекте и фиксить мелкие баги, т.к. в том же ангуляре пока опыта мало, а не херачить SPA соло. Может, возникло недопонимание?
>>915867
нет, ты все неправильно понял.
тут нет параллельных вычислений. они все последовательны, но могут быть ассинхронны. асинхронны это значит, что если в коде у тебя вызов функций идет одна за другой, это не значит, что они выполнятся именно так. какая-то из них может выполнится хоть завтра, или раньше той, что объявлена перед ней.
но ты это все сам контролируешь. нет никакой магии.
> Зачем? Что должно это тестовое показать?
На сколько ты быстро ориентируешься в технологиях/подходах. По сути твой профессионализм.
> Мне кажется это самый херовый "пряник" из всех возможных.
Это значит что им пофиг на твой график, хоть в ночь можешь работать а днем спать.
Я б рискнул на твоём месте. А там потерся бы месяца 3 - не понравится то и свалить всегда можно.
Вот честно, я бы не стал бы переписывать и написал им все как было изначально уговорено: прототип, на чем угодно, не стремно выглядящий.
Сделал - сделал. Недостатки сказали, спасибо, учту на будущее, все равно это тестовое.
Так же обговорил бы вилку зарплат, подхожу/не подхожу. И сказал что поработать я могу в принципе когда угодно, т.к. кодить люблю, но овертаймы должны оплачиваться.
Ну и про баги и перепись на 2 версию: если подразумевается испыталка (оплачиваемая естественно) сказал бы что сделаю на ней.
Если бы послали - для себя бы допилил и выложил в качестве поделия собственного.
Это лично мое мнение
ок, я читаю сейчас релейт http://www.sohamkamani.com/blog/2016/03/14/wrapping-your-head-around-async-programming/
т.е. сама ЖС не может создавать процессы в ЦПУ у неё всегда один тред/процесс, но она внезапно может создавать стек с очередью к другим рантаймам, которые могут это делать. т.е. жс вроде как получается неким таким диспетчером, который раздаёт задачи в другие среды выполнения и регулярно смотрит статус.
что, получается ЖС это универсальная обёртка(АПИ) для всех языков что-ли, и она сама вообще ничего не делает на процессоре?
Ни один язык, кроме машинного, не может создавать какие-либо процессы. Это всегда делает окружение.
>у неё всегда один тред/процесс,
и это тоже не верно.
js выполняется в разных окружениях. в некоторых из них есть треды. в других есть кластеры процессов.
>вообще ничего не делает на процессоре?
На процессоре ни один в мире язык ничего не делает. Процессор твой понимает только машинный код. Ты откуда вылез такой неуч?
> ЖС это универсальная обёртка(АПИ) для всех языков что-ли, и она сама вообще ничего не делает на процессоре?
Чет в голос проиграл.
Для тебя они не очевидны ни разу.
Какой там по твоему язык умеет создавать треды или процессы? Си? А вот нхуя он не умеет, он дергает апи операционной системы для этого.
Что он там у тебя умеет, числа складывать? А вот хуй, не умеет он этого - для сложения чисел компилятор генерирует машинный код. А си твой нихуя не делает, кроме как описывает Алгоритм. Как и любой другой язык, js в том числе.
>js выполняется в разных окружениях
меня нода и клиенты интересуют, там вроде всё как раз так, как я и написал:
ЖС типо рассылает задачи из своего окружения в разные другие окружения, которые могут на своё усмотрение распараллелить задачу. вроде как ЖС важен только статус done & result от них и что бы event loop летала, сама ЖС нехуя не делает кроме этого
>>915900
хорошо, байткод
>>915901
я не пытаюсь устроить языкосрачь, х/з нужно погуглить какие языки могут открывать треды/процессы. я пытаюсь понять ЖС на сервере и на клиенте.
>какие языки могут открывать треды/процессы
Никакие не могут. У тебя проблемы с понимаем принципов работы вычислительных машин.
реакт так умеет? Подскажи, анон. Погуглил, но нашел решения для серверов, а мне надо локально. Типа, лист ту ду чтоб сохранял задачи по кнопке или когда я закрываю страницу, а не проебывал.
>какие языки могут открывать треды/процессы
>Никакие не могут.
ок, погуглил, получается что процесс один на ядро ЦПУ, но в нём спаунятся треды с задачами, которые пушатся в РАМ параллельно. это как минимум могут C и C++. ЖС как раз оправляет в эти процессы задачи и ждёт решения. сама она кроме петли и стека с задачами, никаких тредов в своём процессе не создаёт?
> это как минимум могут C и C++
Нет, они этого не могут.
Они дергают для этого апи операционной системы.
Ты почему такой глупый? Языки не умеют ничего, кроме описания алгоритмов.
разве это не создает локальный объект в браузере? Я бы хотел в отдельный файл записывать. может я просто не понимаю, как оно работает
Ты хочешь записывать файлы на клиенте? Ты прежде чем задаваться такими вопросами задумался о том, что если бы была такая возможность, то любой бы сайт мог создавать у тебя на компьютере фалы и читать их? Это было бы нормально по-твоему?
localStorage выполняет твою задачу. После закрытия вкладки то, что ты в него сохранишь останется в нем и загрузится снова, когда ты вновь откроешь вкладку. Он для того и сделан.
>если бы это было реализовано как загрузка файла, то еще как.
Тогда это не запись в файл. Ты можешь на здоровье, генерировать файл, скачивать его, а потом заново загружать. Но это не запись в файл.
>Нет, они этого не могут
>Они дергают для этого
лол анус себе дёрни, заносчивый пидорг. я тебе и ничего не говорил, про то как это реализовано. это имхо понятно, что все низкоуровневые ЯП это "обёртка" вокруг ядра системы - а ЖС внезапно обёртка вокруг этих ЯПов.
ЖС просто один из этих ЯП, а не обертка вокруг них
что порвался то? всё верно же. с хуяли тогда все ключевые компоненты ноды написаны на си и крестах?
сука не беси меня аутист. если сказать по делу нечего, нахуй огрызаешься? молчал бы в тряпочку или нагуглил бы пруфов своим вскукарекам.
сука, аутист, вот скажи, нахуя ты такой аутист. зойчем ты доебался? я уже понял где я заблуждался насчет ЖС. не ясно, от чего тебе пригорает так. может ты просто тупой неосилятор с проекциями?
в чем вообще проблема изменять локальный json файл? он же локальный.
>>915954
>>915953
нихуя не работает, кстати. Создается ключ, но сразу после ре-рендера ДОМ древа он теряет свое значение(console.log(localStorage.getItem('key')) выдает null). Может есть таки вариант изменять какой то локальный, для приложения, json или еще что?
>нихуя не работает, кстати
Значит ты что-то делаешь не так. Локалсторадж персистентный.
>в чем вообще проблема изменять локальный json файл? он же локальный.
Ну ты не против будешь, если когда та зайдешь на мой сайт, я тебе начну создавать json файлы на компе? Они же локальные у тебя, что в ыэтом такого?
localStorage.setItem('key', 'value')
console.log(localStorage.getItem('key')) // value
{код реакта...
onClick() { // событие вызывает новый рендер всего документа
...
console.log(localStorage.getItem('key')) // null
}
про второе, я имею ввиду локальный файл, кот.существует только в директории сайта/аппа. Т.е если он у тебя на сервере, он твой же жсон и редактирует. Похапе же так умеет, а жс нет что ли?
закрывающее } для кода реакта проебал после второго консольлога, но и так понятно.
Под "код реакта" я имею ввиду, внутри класса. hui extends react class etc
>про второе, я имею ввиду локальный файл, кот.существует только в директории сайта/аппа. Т.е если он у тебя на сервере, он твой же жсон и редактирует. Похапе же так умеет, а жс нет что ли?
Ты несешь какую-то чушь.
На клиенте нет никаких папок с твоим сайтом\аппом.
Ты вообще не умеешь в дебаг или тестировать? Ты хочешь спорит о том, что ошибка не у тея где-то в коде, а браузер себя ведет неправильно? Ты серьезно?
Открой консоль здесь в этом треде.
вбей, блядь туда localStorage.setItem('key', 'value') и нажми enter. теперь закрой вкладку со с этим тредом. и открой снова.
и вбей в консоль localStorage.getItem('key')
Что блядь? Работает? Вот нихуя себе.
>Почему я не могу писать/читать файлы из браузера?
>ЖС обертка над другими ЯП!
>локальные фалы как на сервере!
>директория с сайтом на клиенте!
Пиздец блядь.
Пиздец, нахуй вы живете.
Ну я делаю ран скрипт и не работает. Должно окно выскакивать такое. Я вообще не шарю нифига, надо определиться с программой, где все это делать, можете порофлить с того какой я даун, но ответ дайте. Чтобы уровнять это все скажу, что я инженер, работаю уже 3 года и шарю кадовские программы и вы можете у меня спросить что-то тоже.
лол. На сервере есть папка с сайтом, в ней файл, кот.содержит дату. Те же юзернеймы и пароли. Логин и пароль передаются в файл при регистрации похапе запросом. Или ты прав и сервер содержит голый сайт, а логин и пароль - локалстораж браузера? Вот и я не думаю.
Я хочу иметь тоже самое в локальной версии, но без пхп. Жс редактирует жсон/что угодно.
Такие дела.
>>916028
И че ты такой агрессивный и остроумный? Ты специально не читаешь мой текст? пишу тебе код словами:
если в начале файла я задаю ключ и значение, а потом след.строкой спрашиваю его консольлогом, все работает, т.к этот код находится до создания класса реакта.
Если же я пытаюсь прочитать ключ внутри класса(для тебя:
var App = React.createClass(
(какой то код и функции);
onClick() {
добавить элемент, создание которого вызывает перерисовку всего компонента;
и если уже тут консольлог (localStorage.getItem('key')) который динамически перерисовывается, то значение null после первого перерендера. Ключ остается, а его значение становится "". Я бы записал тебе видео, да не хочу еще пол часа на создание шебм тратить, фома.
алерт создает компонент window, а ИДЕ имеет только консоль. Твои всплывающие окна будут при нажатии кнопки ф6 в любом браузере на странице, куда ты добавишь код.
чем тебе браузер не программа? жс код априори направлен на браузеры. Создай себе шаблонный html и проверяй сколько хочешь.
1.Открываешь хром
2. Нажимаешь F12
3. Выбираешь вкладку Консоль/Console
4. В строчку ввода вбиваешь свой алёрт
6 Нажимаешь Enter
7 ??????
ПРОФИТ!
>локальной версии
В каой блядь локальной версии, дебил.
Браузеру поебать откуда ты загрузил код. ограничения для всех одинаковые.
Иди нахуй просто.
> т.к этот код находится до создания класса реакта.
Пиздец.
Спешите видеть. РЕАКТ НЕ ПОДДЕРЖИВАЕТ ЛОКАЛ СТОРАДЖ
>шебм
Нахуй мне твои вебм?ты язык выучи, а не фреймворк, чтобы понимать в чем твоя проблема, олень.
так ты бы объяснил, раз умный такой.
А зачем она?
Проиграл. Что в нее уметь, дебил?
Скорее наоборот, перекатывальщики не в состоянии осилить динамический язык с неявной типизацией.
Двачую
> Скорее наоборот, перекатывальщики не в состоянии осилить разрабатывание очка ржавым дилдаком.
Пофиксил наркомана.
По себе не судят.
два чая electron-ному анону. То, что надо.
Хотелось бы, чтобы все это не тормозило. Что вы бы посоветовали использовать? Я склоняюсь к реакту и стековерфлоу дривен девелопмент. Насколько сырой дартангуляр? Эльм для игрушесных проектов?
Суть - нужен просмотрщик логов, который будет не просто выводить сообщения, а делать это имтитируя мессенджер. логи храняться в виде txt файла такого содержания:
09.02.2013 17:01:19Vasiliy99го дота
09.02.2013 17:02:23Grigoryго
09.02.2013 17:04:15Vasiliy99я создал
09.02.2013 17:05:13Afanasiyпидорасы, если не будете работать, поувольняю к хуям
Работет так: Открывается страница, перетягивается файлик за допустим 2016. Потом можно выбрать любой день за который хочешь посмотреть логи. После выбора появляется в "чате" первое сообщение. Чтоб вывело второе надо нажать кнопку Send или тыцнуть enter если курсор стоит в текстовом поле снизу. При чем не важно какой текст вы пишете снизу, он не будет попадать в чат. Ты просто пищешь что угодно, жмешь кнопку и из лога подтягивается следующее сообщение. В двух словах такое, с некоторыми нюансами типа кнопки выбора рандомного дня и мелочей по покраске сообщений.
Такая балалайка не будет хоститься на сайте и ей не нужен интернет. Она будет запускаться локально на компе и просто показывать логи из файла, который ей скормили
О, братишка, привет. Маялся подобной хуйней намедни, ибо асушник.
Итак, понеслася:
>Необходим вывод графика с частотой сбора 20мс, порядка 10 минут в реальном времени, т.е. 30000 точек. Насколько это безумная идея?
Во-первых, Plotly, как и все либы для построения графиков, базирующиеся на движке D3, используют SVG.
SVG хорош для создания богатых интерактивными плюшками графиков, но по сравнению со скоростью рендеринга сосут у движков, использующих webgl/2d-canvas технологию.
Во-вторых, продумай стратегию рендеринга графиков. Тебе действительно нужно ОБНОВЛЯТЬ ВИЗУАЛИЗАЦИЮ каждые 20мс? Скорее всего, нет. Данные можешь с определенной уверенностью собирать с такой частотой, а отрисовывать, скажем, раз в 5 секунд сразу пачку.
Ну и в-третьих,
>Хотелось бы, чтобы все это не тормозило
It depends. Рендеринг графиков - достаточное узкое место в общем процессе отрисовки страницы и обновления документа в целом. Поэтому, с целью минимизации тормозов, используй следующие рекомендации как говорится, мнение анона может не совпадать с мнением /pr/, лол:
- отрисовывай графики с помощью canvas либ если не нужна богатая интерактивщина;
- отрисовывай с меньшей частотой, чем собираешь данные;
- если требуется интерактивная навигация по временной шкале, хендлеры лучше организовать таким образом, чтобы обновления графика подчитывались с сервера, ибо держать ВЕСЬ объем координатных точек для графика в памяти - удар по производительности и опять же, узкое место;
- ну и, естественно, убирай за собой, как принято в культурном обществе. Удаляй массивы данных, более не нужных и находящихся в памяти.
Лично я использовал следующий стек и задействовать тебе, анон, я бы не рекомендовал в виду необходимости большой работы по оптимизации:
Сервер-сайд: NodeJS + NeDB + socketIO, клиент: ReactJS + MobX + Highcharts (SVG-based) + Clusterize
Требовалось отрисовывать пять координантных графиков, обновляющиеся с частотой 100-250 мс.
Отрисовывал раз в 5 сек.
var t = "hello";
r+=" ";
Итого имеем просто "hello" когда должно быть "hello " куда пропадает whitespace? Я ничего не обрабатывал.
>>916>>916433
Планируется достаточно много отчетов, возможность менять настройки модулей, смотреть архивы, там функционала можно придумать больше, чем на 90% сайтов. Да и божественные, самописные велосипеды я бы не хотел использовать.
Спасибо за развернутый ответ. Обновлять хоть раз в 5 секунд. Очистить память в за это обнулить ссылку на объект с данными и ждать Гц?
>Очистить память в за это обнулить ссылку на объект с данными и ждать Гц?
Да. Ну и, очевидно, вызвать соответствующие методы для (пере)строения графиков с актуальными значениями.
>ECMAScript — это встраиваемый расширяемый не имеющий средств ввода-вывода язык программирования, используемый в качестве основы для построения других скриптовых языков
Все встраиваемые языки так или иначе расширя.тся за счет API окрудения, куда встраиваются. JS не приносит в ES какие-либо синтаксические расширения, как например это делал AS, все исключительно на уровне API. Так по факту JS это никакой не JS, а ES.
От признания этого факта все только выиграют. Отпадет эта глупая ассоциация с Java у дурачков. Отпадет легаси биография как язычок ща 10 дней и используется только для снежинок. Потому как первоначальные версии JS(хотя по факту вообще не js а то mocha, то live) и были запилены Айком за неделю, и потом на протяжении десяти лет использовался только для анимации снежинок и меню, сегодня нет никакого ТОГО JS, есть вполне себе ES, который встраивается в разные окружения, спеки на который курирует целый комитет комитет.
Такие дела, тащемта. Я бы прямо начал с переименования треда.
Иначе хуйня выходит, какая-то.
>без нажатий кнопок и прочего
Хочешь, чтобы браузер сам решал что куда и когда ему подтягивать? С ума сошёл?
Если же понимаешь принципы,а не дурак, то используй обсерверы.
Не сам решал, а указать. В ангуляре это делается через [(ngModel)]
Ты пишешь [(ngModel)]="Person.Name" и страница смотрит что там за значения у тебя в Person.Name и подставляет сразу. В чистом ДС так нельзя?
inb4 тудулист
Я тебя люблю :3
В моём случае загрузка в несколько потоков увеличивает скорость, в разы.
Похоже на то, что нужно, спасибо, буду пробовать.
Хочу вкатится нормально в JS, стоит ли сразу начинать писать используя let, class и прочие плюшки нормальных языков?
Это копия, сохраненная 1 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.