Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
>>703769 Бля ну да, надо сделать текущий контекст windows для f. Спасибо типо. Завело в заблуждение, что функция не создает область видимости для this, а это и было нужно.
>>703854 Диаграмма с симпатичными анимашками на канвасе. Визуализатор чего-нибудь на вебЖЛ/канвасе. Миллиардный никому не нужный кроме тебя MVC-фреймворк.
У меня такое портфолио было, когда я первую работу нашёл.
>>703782 Я сам только учу ЖС, но мне кажется в apply и call контекстом this пихают часто по инерции, мол обычно так надо, значит буду делать всегда. На деле в твоем случае null вместо контекста даст тот же эффект.
>>703965 >>703986 Всё, нашел. Смотри, если функции, которые ты собираешься передавать в f не подразумевают использование контекста this в себе, то и контекст this в apply особо смысла нет передавать, особенно учитывая, что this у timingDecorator ссылается на глобальный объект window, доступ к которому и так есть отовсюду. Но ты поспешил решив, что на этом пригодность apply заканчивается и он не нужен в данном случае. У apply есть вторая фишка: он принимает вторым аргументом массив/псевдомассив который разворачивает в аргументы для функции, и ты не можешь пихнуть псевдомассив в f() и ожидать, что он сможет развернуть его в список аргументов. Т.е. у тебя f(a, b, c) и ты не можешь передать ему эти аргументы так f([a, b, c]), но можешь так f.apply(контекст, [a, b, c]);
>>703893 По-моему, это очевидно. Я когда на пыхе свой первый проект писал, полез ради интереса кантора читать(чтобы хоть что-то в джс шарить, кроме прикручивания свистелок и перделок без особо понимания) и охуел помню. Первая мысль была - что за ебанутый и непонятный язык, как на нем писать вообще можно. А вот спустя полтора года я обожаю джс и даже не хочу вспоминать о пыхе или возвращаться к ней. Но первый впечатления о джс я еще помню, лол.
>>704014 А у меня знакомство с js было очень приятным. Натыкаюсь на ютубе на туториалы вида "как сделать игорь на js для чайников", начал смотреть и понял, что как-то всё слишком дохуя легко и понятно, параллельно с просмотром видосов без какой-либо другой инфы пилил недодвижок платформера, при том что по видео делался топдаун шутер, и у меня даже получалось. А ведь я до этого пытался ковырять жаву и c# и дальше работы с консолью и ковыряния классов дело не ушло. Конечно, взявшись за мануалы, всякие замыкания, прототипы, коллбеки заставили голову покипеть, но сейчас да хуй знает, я пока всё еще нубас.
Можно ли на JS сделать сортировку списка по цене? То есть в гугле куча вариантов как отсортировать этот список в алфавитном порядке, но при этом учитывется текст всего li, а мне нужно только по цене.
>>704222 Это не я написал, что он страшный, я прост оговорю, что мне понятен страх того анона перед джс. Он поначалу такой. Так что да, я думаю тот анон так считает с непривычки.
Ionic 2, есть еще уебаны, кроме меня, сподобившиеся работать с ним? Нужен совет, КОТОРЫЙ БЛЯДЬ Я НИГДЕ НЕ МОГУ НАНГУГЛИТЬ СУКА ПОТОМУ ЧТО ЛЕНИВЫЕ ТВАРИ РАЗРАБЫ НЕ МОГУТ ПОТРАТИТЬ ВРЕМЯ И НАПИСАТЬ НОРМАЛЬНУЮ ДОКУМЕНТАЦИЮ ВМЕСТО ТОГО ГОВНА ДЛЯ ПЕРВОКЛАССНИКОВ КОТОРОЕ ОНИ СЧИТАЮТ ДОКУМЕНТАЦИЕЙЗАЕБАЛОНАХУЙПОРЕЖУВСЕХИСЕБЕВЕНЫБЛДЯЬ. В общем, типичный пример CORS issue, как запилить проксю в ебаном ионик 2? ионик.проджект теперь отсутствует, логика подсказывает, что объект с проксей нужно пилить в ионик.конфиг, но практика говорит хуй тебе, ничего не пашет урла не свапается, ошибок не выдает(кроме самой КОРС), понять что-либо решительно невозможно. заебало.
поцоны, шаломствую. Тут полюбасу верстал куча, может подкинете мне джентельменский набор скриптов для версталы. Ну типа высоту фиксировать и т.д. Знаю что постоянно пользуются они чем то таким но не ебу чем и для чего.
>>704497 Почему смешное? Я должен бугуртить что ты 80к получаешь? Может я должен похвалить, или ты пидораха и думаешь что люди только завидуют и думаю как много он зарабатывает оххххх.
Есть страничка, на ней форма ввода и кнопка (реализовано через тэги input и button, но если это плохое решение предложите по-другому). Юзер вводит урл, скрипт должен проверять наличие robots.txt по данному урл. Если файл есть, на нашей же странице, без полной перезагрузки (динамически), что-нибудь пишется. Если нет, пишется что-нибудь другое. Как я понял это делают ajax, но объяснения в гугле ниасилил. Выручай, анон, думаю уже дня два с перерывами.
>>704594 Я не могу сказать с чем конкретно, я в принципе не понимаю как это делается. Ну ты же должен понимать о чем речь. Обычная страница, обычная форм ввода, юзер жмет на обычную кнопку и ему динамически что-то то подгружается.
Асинхронность клиентского JS распространяется только на ajax? Все остальные операции синхронны? Например код выполняется синхронно, потом попадает на doSomething(); выполняется внутри функции, доходит до ближайшего return\заканчивает обработку функции и продолжает выполняться дальше?
>>704613 Нет, не только аякс. Из твоего примера однозначно нельзя сказать синхронно это происходит или нет. Колбеки видел? Все они вызываются асинхронно.Вот тебе видос про это https://www.youtube.com/watch?v=8aGhZQkoFbQ
>>704424 Не могу, очевидно. Заказчик настоял и настаивает на ионике2. >>704333 Сам спросил - сам ответил. Для тех кто пойдет по моим стопам: -инструкция с офблога херня - не пашет, прокся из конфига не работает -КОРС на локалке правится установкой плагина Аллоу-Контрол-Аллоу-Ориджин на хромого.
Сап, анон. Как по вашему, что вернее для строгой типизации хинтинг (аля TypeScript, Flow) или декораторы?
Я понимаю, разумеется, что хинтинг в ts/flow работает в компилтайме, а следствие декораторов будет чекать тип в рантайме. Я имею ввиду, именно само декларирование типов (допустим хинтинг ts/flow работал был бы и в рантайме), что ближе философии js - декораторы или ts/flow-хинтинг, как по-вашему?
>>704672 Молодец. Теперь накатывай TS и смотри все классы, интерфейсы, приватные и публичные методы. Сможешь скрестить Пикачу с хамелеоном, а получившийся результат с Ельцином.
>>704677 ТайпСкрипт? Я думал он только для типизации мол указывать что в переменной, что за атрибуты, что возвращает функция, тип чтобы избегать багов и всё такое.
>>704600 Ебать я невнимательный дебил! ceil же в вверх! Типа создали ещё один фейковый диапазон, чтобы у всех равные шансы были при округлении вниз. Спасибо.
Backbone и Angular только для SPA? Почему из везде просят на front-end но я не вижу в интернете русскоязычных сайтов по типу SPA? Работают на белых людей?
>>704740 Атом хорош концептуально, а реализация подкачала. Чем больше файл и длиннее строки, тем больше вероятность словить лаги и/или отсутствие подсветки. А еще саблайм распознает больше литералов.
>>704743 Недавно видел интересную статью О.Л.Д.фага сравнения атома и емакса. Он писал о появлении емакса в своё время и что тот был как атом "перегруженное, тормозящее, монструозное поделие" в глазах аудитории тех времён и в целом занимал позицию атома во всём. - стремный язык расширений для тру мамкиных прогеров жабаскрипт вместо лиспа - жирное ядро при слабом функционале искаропки привет вебкитам и электронам - медленная работа и пожирание ресурсов - уже есть редакторнейм, зачем оно нужно? - etc
Но в целом, редактор вырос. Вот я с ним согласен, концептуально первый атом это емакс, который сейчас решили реализовать на самых хайпнутых и быстроразвивающихся экосистемах чтобы он вырос и поглотил всё вокруг, что стало довольно годным решением, потому что сейчас по количеству наворотов атом уже уделывает большинство редакторов. Сам недавно перелез, охуенно доволен, хотя раньше сидел на имаксах и спейсмаксах.
Даже начал разрабатывать первое говнорасширение в своей жизни - линтер с сниппетами для одного css фреймворка.
Аноны, где навернуть задач для практики? осилил пару небольших книг по js, node.js, осилил много туториалов и тд, осилил 2 книги по метеору осилил todo, microscope туториалы по метеору
В свете выше указанного могу сказать что почти все херня.
Но как именно правильно писать и что бы сделать такого нормального и интересного для набивания руки хз Буду рад наставлениям
>>704816 А чего тебе не хватает там? консолька - чек продвинутые линтеры и прочее уровня тернжс - чек лучшая работа с гитом среди всех редакторов - чек всякие мелкие удобства типа очень навороченного минимапа и сортоф - чек тысячи сниппетов - чек виммод - чек всякие другие плюшки, которых уже больше чем у имакса - чек
Ну и всякие навороты для редактора типа прыгнуть к такой то хуите тоже завезли.
>>704615 Тод вот сейчас не понял, получается если я забил Callback Queue какими-то операциями(пользователь потыкал что-то на странице и там скопилось допустим 50 вызовов по 1 секунде, которые теперь по одному передаются на выполнение в Стек), а потом вызвал некое иное событие с интервалом 1 секунда, то это событие номер 2 полетело в вебапи, потом в Callback Queue и выполнится уже ПОСЛЕ тех 50-ти событий, что попали в Callback Queue до события номер 2? То есть грубо говоря, ты или блочишь стек или блочишь ивент-луп долгоиграющими операциями? Или если я допустим сделал асинхронно переборку массива с функцией на каждое его значение, то событие вызываемое по клику все же сможет вклиниться в процессе выполнения асинхронной обработки массива? Но все же если ивент-луп уже забит до отказа, то любая нвоая операция будет ожидть выполнения предыдущих, что попали в Callback Queue до нее?
>>705036 >дали ему топор - руби дрова >а он засовывает топор в жопу и жалуется, что топорище входит, а лезвие нет >ему указывают, что топор не для того сделан, чтобы херню с ним творить >он посылает всех нахуй в ответ и уходит с гордо поднятой головой и торчащим из жопы топором Ну хуй его знает.
Йо! Есть одна страница с ?id=0123. На странице есть возможность изменить id, все данные этого айтема я подгружаю ajax'ом. Нужно передавать в window.location.search текущий айди так, что бы страница не перезагружалась при этом. Нужно это для того что бы юзер мог поделиться ссылкой на свой йоба айтем и в случае перезагрузки страницы не проебывал данные. Как это организовать?
>>704972 У меня всё ОК с 50к. И да, я на жс пишу и го, ультрамодульность братишка, leafpad, все дела. У меня если файл больше 50 строчек - надо рефакторить на два, а ты мне про 160к, кек.
>>705067 Зачем мне юзать разные редакторы для того, чтобы открывать файлы? Типа один топор для сосны, один для березы, один для тополя. Я лучше возьму бензопилу. Атом не бензопила.
>>705214 >>705164 >>705098 >>704992 А на второй скрин посмотреть не вариант? Длина строка превышает определенный размер и атом начинает глючить. Почему саблайм не глючит?
>>705362 Чувак ты удивишься, но даже топоры бывают под разные задачи. Чисто навскидку, есть плотничьи, таежные, колуны, боевые, корабельные. Так что ты соснул. Тебе предложили маленький удаленький редактор, который еще к тому же кастомайзится под нужды, а ты выебываешься, что он 50к строк не тянет. Юзай тот, что тянет, если ты такой чудак, что файлы по 50к строк обрабатываешь.
>>705367 В каком плане? Если оперативы меньше 4гб, то со всякими браузерами, скайпами, сервами не пойдет, но если 4гб и более, то побежит. Наворотов по дефолту бесполезных почти нет. Имо, лучший редактор, джва года с ним вместе.
>>705373 >>705382 К тому же это временный файл, из него я формирую базу, там нетривиальная связь козла с бобром, так что мне именно что надо вручную с ним работать.
>>704935 >>705358 Ты не про то спрашиваешь вообще. Тут суть в блокирующих операциях, которые стопорят весь луп. Это всякие обращения к базе, чтения файлов и прочее. Суть в том, что нода может передавать эту операцию и не ждать её окончание, а делать что-то другое, а по окончанию операции снова возвращаться к ней и что-то делать.
>>705364 У меня ничего не глючит, например, так что мне ок. И вообще, спор о инструментах - долбоебизм. Самые крутые программисты пишут в acme без подсветки и прочей бесполезной залупы, получая миллионы далларов. привет главному го-петушку
>>705391 Если не глючит, значит не сталкивался с этим кейсом. И >Самые крутые программисты пишут в acme без подсветки и прочей бесполезной залупы, получая миллионы далларов. Далларный манямирок.
>>705394 >Далларный манямирок лол, ты не понел о ком я? Или тебя рили удивляет зарплата в лям у программиста на такой позиции? Вон 27 летние пиздюки в фейсбуки со стоками получают 480к, а тебя такое удивляет.
>>705394 Нажимаю beautify и смотрю код, например. Я же не шизик.
>>705395 Нет, всё таки шизик, криво первый ответ скопипастил. Ладно, забей, у меня на 30-50к нихуя не лагало и не глючило, мне в целом похуй че там у тебя, в вим умею, надо будет 4гб файл распарсить - сделаю в виме за 30 секунд, лол. Саблаймоговно ненужно.
>>705395 Что ты несешь вообще? Ты пытаешься оправдать редактор, который не выполняет своих функций или тролишь человека, который не может в подсветку синтаксиса файла без редактора?
>>705404 >>твоя феррари не сможет проехать по тайге, не выполняет свои функции машины!111 >>но я катаюсь только по городу >>оправдания!111 Я не хочу переключаться между редакторами.
Cап, пограмисты, пилю прохладную. Хочу писать на js, основы знаю, немного юзал Angular, но на этом всё и закончилось. Хочу устроится на работу, позиционирую себя как недо-front-end dev верстаю всякую шляпу, но хочу продвигаться по стезе JS. Выслушаю ваши советы за три тонны нихуя.
начал читать " 'javascript' сильные стороны", и там был такой пример. Разве сейчас не правильно писать "document.write"?? Пример приведенный в книге у меня не сработал.
>>705563 Ищи задания типа - сделать мобильное или десктопное приложение, похуй на чём - написать программу для ардуинки/распберри, похуй на чём и так далее, и делай на JS.
>М. Кантелон , М. Хартер - "Node.js в действии" >Кирилл Сухов - "Node.js. Путеводитель по технологии" >Дэвид Хэррон - Node.js. Разработка серверных веб-приложений И с чего начать?
>>705573 Сухов хорош, но немного устарел, особенно по части экспресса. Хартер тоже, в нём инфы больше, но всё чисто по ноде, а у Сухова ещё затрагиваются базы, ОРМ, шаблонизаторы. Хэррон - совсем тонкая книжка. Вот и выбирай.
>>705743 Лучше не стоит. Возьми в качестве первого языка что-то со статической типизацией, лучший вариант - Pure C, но задрачивать его до победного не обязательно, когда освоишься с типами и сделаешь laba1.c можно перейти и на js
>>705758 Я имел ввиду первого серьезного опыта на языке, не правильно выразился. У меня есть понятия о типах, знаю сишный синтаксис по книжке какого-то русского автора (давно читал, года 2 назад). А начинать надо с верстки или с JS?
>>705765 Верстку учить целенаправленно вовсе не обязательно, она изучается сама в процессе создания сайтов. Можно разве что прочитать по диагонали коротенькие самоучители на htmlbook.ru, если совсем ничего не знаешь. А какой язык учить первым - зависит от цели. Если цель вкатиться во фронтенд то js. Если нет - то лучше пока js не трогать, слишком специфичный язык. Посмотри на Python или Ruby, или, если нравиться статическая типизация на C#
>>705778 За реакт натив не скажу, но у фреймворков вроде ангуляра и эмбера довольно высокий порог входа, без достаточного опыта ты будешь испытывать БОЛЬ. И изучения ядра js вовсе недостаточно чтобы освоить эти фреймворки без боли
>>705780 Ну либо превозмогать боль, либо для начала освоить какой-нибудь MVC фреймворк на другом языке (это можно сделать довольно быстро), а потом вкатываться в JS
>>705778 JavaScript превращается в то, чем стал PHP: кучи ньюфагов вкатываются из за хайповости и низкого порога вхождения, пилят говнокод, потом опытные люди работают с этим говнокодом и получают отвращение от работы. Постепенно все начинают считать язык говном.
Антохи, столкнулся с пикрилейтед, но в ангуляре практически ничего не смыслю, какие-то основы с кодескул. Что значит ошибка 'Could not resolve ... from state site'? Остальное вроде как на стороне сервера, но запара в том что интеграционные тесты серверной части отрабатывают нормально. Вообще, что можно сказать судя по этим ошибкам?
>>705797 У жс так-то пиздец какой порог вхождения. Чтобы начать писать что-то более менее серьезное нужно месяца три потратить на изучения тонкостей языка и понимание асинхронной модели программирования. А на пыхе ты уже на следующий день мог пилить убийцу фейсбука.
>>704866 >>704871 Практики в смысле на реальных(почти реальных ) задачах, а не просто задачки по программированию вот пытаюсь на метеоре небольшой магазинчик написать, но встревает куча проблем(плюс это ебучее обновление с 1.2 на 1.3 где вся структура проектов и логика загрузки модулей поменялась, а все туториалы и тд что изучал были на версию 1.2 и ниже)
>>705962 Шарп или жс. Лучше шарп, так как там статическая типизация. А рабипитоны построены на отступах, которые разъедают мозг новичкам и они не могут писать на скобках после этого.
>>705972 >Аргументировано. Учиться программированию на жсе - лучший способ стать неконтролируемым говнокодером. Сам дизайн жса уж очень удобен для лапшеписания.
Анонасы, помогите с вебпаком. Есть одностроничный сайт. Есть файл со скриптами для всяких onload, onclick и прочего. Как его забилдить вебпаком? Если просто рекваить в main.js, то он помещается внутрь другой функции и html не видит эти функции.
>>704601 На w3school охуенный туториал по ajax. Всё, что тебе понадобится там есть. Там есть даже различные варианты взаимодействия с серверными языками: php, net; c базами данных. Есть примеры работающих приложений с полным кодом: html, ajax, php (asp) и т.д. и возможностью отредактировать и запустить это прямо на сайте.
Мне одному кажется, что введенные в es6 конструкции классов - сильно лишние? Раньше были объекты, прототипы, объекты с конструкторами. Все было прозрачно, а сейчас это только переусложнение и так перегруженного конструкциями языка. Зачем это надо было вообще?
>>705981 На любом языке можно разговаривать очень хорошо, ясно, культурно и понятно, выражая свои мысли. При этом подавляющее большинство умеют разговаривать только очень плохо.
Глупо делать язык с защитой от дураков, ограничивая его формальность максимально, смысла в этом нет никакого.
>>705948 Нихуя не знаю английского. Но интуитивно из текста все понимаю, в крайнем случае перевожу отдельные слова, когда надо. На слух речь не воспринимаю, сам строить предложения правильно не могу (давно забыл все эти правила со временами и прочим), ну и не говорю, соотвественно.
1) какой минимум знаний надо чтоб искать работу джуна если хочу писать на андроид приложения? 2) на сколько трудно найти хоть какую нибудь работу, чтоб начал капать стаж, который так любят работодатели если до этого не работал с программированием вообще никак? 3) играет роль возраст во время поиска работы?
>>706118 >>1) какой минимум знаний надо чтоб искать работу джуна если хочу писать на андроид приложения? Ваниль хорошо знать, плюс фреймворк, с которым ты работаешь. >2) на сколько трудно найти хоть какую нибудь работу, чтоб начал капать стаж, который так любят работодатели если до этого не работал с программированием вообще никак? Если нужен вообще любой стаж - оформи ООО, назначь себя генеральным разработчиком и повышай иногда. Будет опыт в трудовой. Если нужна нормальная работа, то зависит от города. >3) играет роль возраст во время поиска работы? Меня однажды на 19 лвле не взяли, сказали слишком молодой.
>>706127 1) тоесть базовые знания из фака в опен посте, а дальше по ситуации? понял. 2) Киев. конечно я о норм работе, просто я как не листаю вакансии так везде вижу что минимум 2 года стажа. 3) ну я скорее имел ввиду 25+. до этого не в программирование работал и пока что работаю просто.
>>706144 Естественный язык в сущности своей ничем не отличается от языков программирования. И там и там, мы формулируем указания или декларируем что-то. Язык он везде язык, все различие лишь в том, что в одном случае мы общаемся с человеком, а в другой с машиной.
Есть люди, неспособные выражать свои мысли ясно и четко. И если они этого не умеют, то какой бы язык им не дай js, c, ruby, русский или английский, они нигде не смогут. Потому что проблема не в языке.
>>706132 >2) Киев В столицах обычно с работой пролем нет, в отличии от мухосрани. > как не листаю вакансии так везде вижу что минимум 2 года стажа. Похуй на это. В вакансиях обычно пишут всё подряд. Обращай внимание только на нужные технологии. Вышка, опыт - нужно или нет, выяснится только на собеседовании. >3) ну я скорее имел ввиду 25+. На практике ни разу не встречал, чтобы отказали из за слишком высокого возраста, хотя в инетернете пишут про такое иногда. В любом случае, пока меньше 50 беспокоиться не о чём.
Тут есть кто-то, кто с handlebars работает? Как мне вставить другой шаблон внутрь {{each}}? По замыслу на странице много однотипных элементов, которые из другого шаблона генерируются, но вместо них страница просто пустая в этом месте.
>>706159 >все различие лишь в том, что в одном случае мы общаемся с человеком, а в другой с машиной Это не "лишь", это принципиальное различие, школьный максималист. Человек, в отличии от компьютера, может переработать даже косноязычно поданную информацию.
Нахуя я учу ноду, всякие реакты, шаблонизаторы, архитектурные паттерны, если в моём городе самая лучшая вакансия фронтендщика что-то уровня >хтмл+жс+джиквери >за 20к
>>706202 Машина тоже способна переработать. Но это совершенно не значит правильно понять. Ровно как и в случае с человеком.
Возьми феню и понятия. Человек ими оперирующий будет с тобою говорить, казалось бы, на твоем родном языке. Но вот всегда ли ты сможешь понять, что именно он имеет ввиду, если сам не умеешь мыслить теми же абстракциями?
>>706220 >Возьми феню и понятия. Человек ими оперирующий будет с тобою говорить, казалось бы, на твоем родном языке. Но вот всегда ли ты сможешь понять, что именно он имеет ввиду, если сам не умеешь мыслить теми же абстракциями? Если это будет происходить не в чатике в интернетах, а в реальном разговоре, то почти всегда. Ведь есть еще интонация, артикуляция, жестикуляция...
>>706118 >какой минимум знаний надо чтоб искать работу джуна если хочу писать на андроид приложения? Если ты хочешь писать на андроид приложения то тебе стоит пройти нахуй, потому что приложения на андроид пишут на javaна js тоже можно
>>706341 Можно и PHP. Можно питон. Если статическая типизация - C#, Java. Напиши laba1 на всех языках и поймешь какой тебе больше нравиться. Если цель найти работу - на пыхе вакансий в вебе намного больше чем на чем-то еще >>706343 А почему не хипстерская? Один фреймворк, который внезапно выстрелил, и все хипстеры побежали учить руби. Сейчас конечно хайпа по релльсам никакого нет, но кроме рельсов почти ничего ценного на рубях так и не появилось
>>706343 Бытует мнение, что существенные фичи руби ограничиваются "элегантным" (читай - странноватым) синтаксисом, гемами и аниме. Иначе говоря - говно без задач, все что руби делает, тот же питон сделает как минимум не хуже. Следовательно, никто, кроме хипстеров и любителей китайских мультиков, руби учить не будет. Я это мнение не разделяю, потому что вообще нихуя не знаю о руби - не могу оценивать.
>>706541 У каждого объекта. есть прототип, от которого он наследует свойства и методы. Получить прототип любого объекта можно или через геттер prototype если он есть, или через Object.getPrototupeOf(someObject) Любой прототип это тоже объект. Прототип может быть null Прототип можно переопределить через Object.setPrototypeOf Можно создать объект унаследовав другой через Object.create (somePrototype)
Object.create(null) вернет объект, у которого прототипом будет null
Функции-конструкторы (или синтаксические классы), просто создают объект с определенным прототипом, и вызывают конструктор в котором this уже сам объект
--- Например, у всех массивов есть метод push Сам метод хранится в объекте Array.prototype Так как все массивы (созданные через литерал или через конструктор Array берут в качестве прототипа Array.prototype, то и метод push и все остальные, определенные в в прототипе, доступны в любом массиве.
Если ты например изменишь какому-то массиву прототип
x = [] Object.setPrototypeOf (x, null) У него уже не будет этих методов, присущих всем массивам. Потому что их нет в прототипе.
>>706541 Вернее сказать, свойства и методы не наследует, в привычном понимании, ибо в js наследование через делегирование.
Если метод или свойство не найдено у объекта, оно ищется в цепочкепрототипов, пока не дойдетдо null
Если в прототипе переопределить какое-то свойство, которое видно в его потомках, то у потомков оно тоже станет переопределено. Но если у объекта есть совственное свойство с этим именем, то изменения в прототипе его не коснуться
Жаваскриптаны, смотри, у меня несколько конструкоторов было с методами в прототипах вот такого шаблона: function A() {}; A.prototype.a = function() {}; A.prototype.list = [A, B] // тут ссылки на оба конструктора
function B() {} B.prototype = Object.create(A.prototype); B.prototype.a = function(){} Но конструкторов много, и методов в прототипах у них тоже, так что я для удобства работы в редакторе каждый конструктор с методами обернул в фигурные скобки, прокомментировал и могу скрывать чтобы было легче искать нужный конструктор, как на пике. Но почему-то теперь в list значение A заносится, а B становится undefined. Не понимаю, разве фигурные скобки должны как-то ограничивать видимость, или что вообще происходит?
>>706837 Или объявление функций/переменных в таком случае улетает не в начало своей родительской функции, а начало фигурных скобок, в которых оно заключено?
>>706541 Ну вот тип есть конструктор function Person(name) { this.name = name; } Мы хотим, чтобы все объекты созданные этим конструктором могли что-то делать, если записать в конструктор что-то типа this.sayHi = function() { alert('Hi, my name is ' + name + '!'); }; то результат будет достигнут, но у каждого нашего экземпляра будет своя точная копия этого метода занесенная в свойство, а копировать одну и ту же инфу объектам которым она нужна - не эффективно. Здесь вступает в дело объект prototype. Prototype - это прежде всего свойство конструктора, а не экземпляра, важный момент. Мы заносим свойства, которые нужны всем экземплярам Person в его прототип Person.prototype.sayHi = function() { alert('Hi, my name is ' + name + '!'); }; и теперь каждый экземпляр созданный этим конструктором имеет доступ к методу: var d = new Person('Dick'); d.sayHi(); Но, важный момент, в самом объекте не появляется свойства sayHi, магия заключается в том, что при создании объекта new Person('Dick'); получается объект вида { name: 'Dick', __proto__: { sayHi: function() {...} } }, т.е. каждый экземпляр получается ссылку на прототип своего конструктора в скрытое свойство __proto__, а при вызове вида d.sayHi(); интерпретатор ищет метод sayHi в объекте d, если не находит его, заходит в __proto__ объекта и ищет функцию там (если его нет и там, то заходит в __proto__ объекта __proto__ и так далее, тип цепочка прототипов). Про то как реализуется наследование не буду писать, потому что шаблонов наследования куча и у всех свои ньюансы. Если понял меня, то перекури соответствующие главы на learn.javascript.ru еще несколько раз для закрепления и потом читай Шаблоны JavaScript из гайда этого треда, там много про варианты реализации наследования.
>>706940 >>706933 Вот и я знаю что не создает. Так что же происходит? По идее декларации выносятся при интерпретации же тоже за пределы своего блока, если это не функция.
>>706950 1. console.log(a); // function a() {} function a() {}; 2. console.log(b); // undefined { function b() {}; } Вот поведение в общем. Чем оно обусловлено?
>>706960 Ведь декларация b есть, выдает не ReferenceError, но определения функции не происходит, как будто я использовал выражение вместо объявления console.log(a); var a = function() {};
>>706960 Может быть из - за того, что обычно Function Declaration выполняется первым, несмотря где он, но когда ты объявляешь Function Declaration в таких скобках, этого не происходит?
Итак, нужен программист, чтобы написать (или поднять готовый скрипт) очень простую анонимную борду. Выбор технологии остается за программером, я подумывал про Node+Backbone. Оплата по договоренности.
>>706967 >>706973 Ну то уже выяснили, хочется узнать чем обусловлено такое поведение, не является ли это каким-то более общим правилом про которое я не знаю? Словом, бамп вопросу.
>>707074 Скорее всего обусловлено тем, что интерпритатор не может заранее знать, будет ли в таких скобках литерал объекта, или просто блок, поэтому хойстинг не происходит. На 100% не знаю, это просто моя догадка, но мне кажется она верная.
>>707081 Но ведь хоистинг происходит "а" он выносит как декларирование наверх, потому мы получаем не ReferenceError, а undefined, но значение "а" как функции в этом декларировании не записывается.
>>703542 (OP) Ребята. Спасите ! Обуздываю ноду, по всеми любимому скринкасту (да, отстаю от технологии на 3 года). С вебсторма запускаю сервачок, в косоле пишет что всё окей и что сервер слушается на порте 3000. Но когда захожу на localhost:3000, то прелоадер во вкладке крутится бесконечно долго, но страница не загружается. Удалял всё содержимое файла hosts, ничего не менялось. При чём эта проблема появилась просто из нихуя. Единственное, что произошло с момента, как всё работало, это: 1. Проебалась база данных, из-за того, что я ненароком перезагрузил комп, нормально её не потушив. Но эту проблему я исправил путём mongod --repair. 2. Я не проплатил интернет в этом месяце, но он у меня всё-равно работает хуй знает почему, хоть и на счету нет денег. было может быть у кого-то ?
>>707094 Я имел в виду полный хойстинг тела функции в том числе. В общем погуглил не много, по ходу спецификация вообще не позволяет иметь FE внутри блоков, но почему-то это правильно не сильно соблюдается, и в итоге происходят очень странные вещи.
>>705818 Похоже, что адблок заблочил твой контроллер advertisement. Попробуй отключить адблок (но ты его же не отключишь у всех пользователей) или переименуй контроллер и стейт.
Анон, выручай. Нужно в Sharepoint сделать сайт одностраничку с контактами и возможностью добавлять/редактировать всё это. Могу запилить это в студии, с ангуляром, на локалочке всё работает, не знаю как это правильно или же чем залить на сайт на sharepoint.
>>703542 (OP) Посоны, кулстори. Откликнулся на вакансию фронтенд-разработчика одной конторы. Они прислали тестовое задание. Первое, что нужно было мне сделать - загрузить json файлы по данным мне ссылкам. Пытаюсь [code lang="js"] $.getJSON("http://site.ru/file.json", function(json) { console.log(json); }); [/code] И сразу фейл >XMLHttpRequest cannot load http://site.ru/file.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
Ну ок. Пробую их просто скачать и загрузить как локальные файлы [code lang="js"] $.getJSON("file.json", function(json) { console.log(json); }); [/code]
Та же самая ошибка. Начинаю бешено гуглить, потому то время на выполнение ограничено. Нахожу это пидрильное говно (pic): Chrome запрещает грузить локальные файлы. Флаг --allow-file-access-from-files тоже не работает! Ошибки уже такой нет, но ругается на невалидный json. Но json валиден - я проверил в валидаторе. Но блядь Firefox разрешает. Сука, у меня нет времени качать и устанавливать другой браузер. В итоге тупо подключил эти файлы как js через <script>. Но времени убил дохуя на выяснение причин почему это говно не заводится. И конечно это хуйня, а не решение - уродский костыль и никто так никогда не делает. В итоге не успел доделать задание и, конечно, меня не пригласили. Поясните за кроссдоменные запросы. Почему я не могу скачать файл непосредственно по ссылке? Это настраивается на сервере, отдающем json? Например с api вконтакте такой проблемы нет - я могу загрузить json оттуда. И как работать с json на локальной машине?
>>707251 То есть мне нужно установить ещё какой-нибудь node.js на локальную машину? Мне нужно просто было выполнить небольшое тестовое задание. Неужели нужно столько ебаться чтобы загрузить сраный json файл?
>>707253 Да, тебе нужно какой-то сервер поднять. И выставить заголовки, что ты ты разрешаешь скачивать этот файл с другого домена. Представь что творилось бы, если бы все могли запрашивать всё ото всюду. Макака могла бы выкачивать твои сообщения из втентаклика, пока ты строчил бы этот пост.
Поясните плиз. Использовать объявленную функцию внутри другой объявленной функции это плохо? Особенно если глубина вложения функций друг в друга больше чем единица? Просто иногда начинаешь путаться в глубине вложений и закрадывается мысль, что это какой-то говнокод, раз у тебя самого возникают затруднения с дебагом.
>>707250 Может json у тебе возвращают в callback функциях? То есть к их backend, если твой frontend на ангуляре, запрос должен быть как то так: req = { method: 'JSONP', url: 'http://big_suck.com:8080', params : {callback : 'JSON_CALLBACK'} } $http(req).success(function(data){ $scope.some_data = data; console.log($scope.some_data) }); Для ajax думаю переделать будет не сложно. Нужно только узнать какой у них адрес/порт бэка.
>>707298 Мне кажется это нормально. Но глубину вложений можно, наверное, держать и у единицы. Мол вот функция и вот все функции которые ей нужны. Но без примера сложно сказать, может твоей конкретной проблеме есть более эффективное решение.
>>707062 У меня от кути багет. Грузить в память кучу либ, чтобы использовать какие-то виджеты. Пиздец не кастомизируемо и придется изъебываться, чтобы запилить что-то свое.
>>707320 >Прицепили jslint Кто прицепил? Ты? Отцепи, если не надо. Отцепи, все лишнее, что не нужно. Но тогда зачем тебе атом? Если он не текстовый редактор, а среда разработки. Его расширяемость обусловлена плагинами.
>>707327 >C++ - самое универсальное ради этой универсальности слишком много ебаться придется, под браузер легче написать под все платформы сразу. правильно говорят, хромиум - новая ява.
>>707339 Не ровняйся. Тебе кто-то запрещает? Люди запиливают штуку (например хромимум) и приходят рассказывать, что вот мы ее запилили. Если хотите, то пользуйтесь. Не хотите не надо.
А ты это воспринимаешь так, словно тебя силой заставляют, отнимая иные варианты.
>>707342 >ты это воспринимаешь так, словно тебя силой заставляют, отнимая иные варианты Так и есть, впринципе. Ну это примерно как пацанов заставляют юзать linux, а не freebsd.
>>707339 >следить за ТРЕНДАМИ. Что это значит блядь? За трендами следят только ради того, чтобы им следовать. Ты можник чтоли дохуя?
Или может ты просто сильно внушаемый\ведомый, я не знаю? Я читаю ленты\треды, вижу какие-то новости. Смотрю, делаю выводы. Мне как-то плевать что там тренд, а что нет. Я делаю выводы.
Мне от того что вышла новая версия атома, не горячо не холодно. Ему уже овердохуя лет. А еще есть брэкетс, например. И что?
Нет никакого хайпа, ты слишком все преувеличиваешь. Люди просто пользуются тем, что им удобнее использовать.
>>707343 >Так и есть, впринципе Нет, это только у тебя в голове.
А что до nix'ов. Это называется в чужую хату, со своим уставом. Есть индустрия. Не ты ее строил. Никто тебя силой в нее не тащит. Не хочешь не иди. Запили свою. С бсдой и без атомов.
Что-то я торможу, есть один объект, ему поставлена постоянная анимация, анимация выполняется через keyframes, как сделать так, чтобы при наведении на объект мышкой, анимация останавливалась?
Поясните за d3, почаны. Вот пикрелейтед. Пишет, что ошибка во время вызова создания xAxis. Я могу догадаться, что что-то не так с форматированием даты. Но что конкретно?
>>707716 В функцию передаётся Date объект. Вот кароче цепь связанная с созданием аксиса целиком. 1) Создаём time.range 2) Сoздаём svg.axis на основе рэнджа. 3) Присобачиваем аксис к разметке.
У меня ощущение, что я знаю, что я ничего не знаю, но я даже не знаю что не так. Это определённо не ситаксическая ошибка.
>>707760 >>707756 Ну такая ошибка, как у тебя, может появляться только если ты неправильную дату передаешь. Уверен, что new Date(e.time.started) отрабатывает правильно?
>>707782 Вот я сделал консоль лог того что будет в tickValues. С аксисом всё впродядке получается, но где же ошибка тогда в d3.time.scale что ли. А там что может быть.
>>707250 Хех, не думал, что пригодится мое недавно приобретенное на ионике2\анг2 знание. Итак, секи сюда, щусенок: 1) Это стандартная КОРС-ишуе. 2)лечится установкой плагина для Хромого - Allow-Control-Allow-Origin:* -так и называется. Ищи в маркете и накатывай. Алсо, сам плагин работает странно, то есть может быть вариант, что ошибку все еще будет выдавать, но ты не ссы, просто рефреш страничку пока не заработает. Я уже почти неделю его юзаю и все окей. И никаких правок хедеров на стороне серва не нужно. Правда плагин надо будет выключать если фейсбуком пользуешься или ютубом или еще чем или прописывать паттерн в самом плагине, в общем, разберешься.
>>707298 До 3-х уровней ЭТО НОРМА, а вообще, хуй знает, что ты там за парашу написал, что используя сторонние функции у тебя множество вложений? Разбивай еще на функции или ты член от дырки в жопе меряешь не так считаешь вложения.
>>707817 Google charts рисует вот это вот всё из коробки. Только я не уверен почему люди выбирают д3 над ним, может быть у гугл чартсов есть какие-то проблемы.
>>707792 >>707756 >>707664 Выяснил причину, точнее не то чтобы выяснил, а просто удалил tickValues и всё заработало. Значит d3.time.scale не дружит с d3.svg.axis.tickValues.
Анон, поясни пожалуйста ньюфагу за ОО JS. А если быть точнее, за его употребление. Где оно к месту, а где нет. Недавно познакомился с концепцией, идея вроде хорошая. Код выдается мне логичнее. Когда есть конкретный объект, он делает то-то и то-то, с первого взгляда можно хотя бы примерно понять, что перед тобой вообще такое. Что не могу пока догнать, так это принципы его употребления. То есть, где его следует использовать, особенно на низком уровне скриптовой логики.
Вот я допустим, я умею хорошо верстать. Пилю сейчас работы в портфолио. Имеется средней сложности сайт, куда хочу прикрутить всякие плюшки, галерею, отрисовку данных, сортировку, валидацию крупной формы и т.д. Если со скриптами уровня, к примеру, галереи все и так понятно, то с той же валидацией или слайдерами не очень. Стоит ли под такие простые кейсы юзать подход ООП. А для чего-то помельче? Допустим скрипт красиво оживляющий менюшку/всплывающие окна/еще какие-то свистоперделки?
>>707813 >>707250 Да вы пиздец мудаки. Вы что блядь, разрабатываете на локалке без локального сервера? То есть блядь просто открываете страницу прямо с диска и удивляетесь, что у вас CORS. Совсем ебанулись? Какие в пизду плагины, блядь. ишуе, блядь. Пиздец.
>>707852 Я обычно придумываю структуру данных и методы, которые помогают с ней работать, а потом все это в фабрику и делаю один управляющий объект. var googleMapsHelper = newGoogleMapsHelper({map: "#map", options: mapOptions, useClusterer: true}); А затем делаю вызовы типа: googleMapsHelper.init(); //init полностью отрисовывает, а дальше в памяти остаются только callback'и, их создаешь внутри фабрики, так же как и внутренние функции, в этом случае .draw(), .getMarkers(), setAnimation("bounce", markerID) и прочее. Конечно, это далеко не лучший путь, сейчас все больше наблюдаю за тем, что рекомендуют immutable и функциональный стиль.
>>707941 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en >>707880 Нет, я разрабатываю на локалке с локальным сервером, но дело в том, что внятного решение корс-ишуе для ионика2 и моего сервера, который писал не я, но использую для разработки его апи, я не нашел, потому просто накатил плагин. Зачем мне тратить время и пытаться решить проблему, которую легко устранить плагином, а в продакшене ее не, потому как с кордовой не возникает подобных проблем, тчо уже протестировано? Ну, скажи, умник ебаный.
>>707950 Я особо не вникал, нужно было быстро решить проблему, на форуме ионика по этой теме предложили такой плагин + тамошние отзывы, что с ним все работает ок, вот я его и накатил.
>>703542 (OP) Ребята, хэлп ! Пишу своё первое приложение на Ноде. Первым делом хочу запилить регистрацию, со своей базой данных, МонгоДБ. Где подробнее можно почитать об этом ? Где сами учились делать подобное ? Лучше пилить это самому, или через пасспорт, или ещё какой модуль ? Посоветуйте что-то по запиливанию человеческой регистрации на сайт с запоминанием юзера, капчей при регистрации, етс.
Начал разбираться в написании юзерскриптов. Сразу возникло два вопроса: 1. Почему не работает userscripts.org 2. Как оформляются функции, которые я буду подключать к документу? Куда их девать?
>>708450 >что значит "подключать к документу"? Ну допустим я добавляю в dom кнопку <button onClick="download()"></button>, которая будет скачивать все картинки на странице. На onClick стоит функция download(), которая собственно и скачавает всё. При нажатии на эту кнопку функция же будет искаться в подключенных к странице скриптах. Так как мне это делать?
>Кирилл Сухов - "Node.js. Путеводитель по технологии" Книга отвратительно написана. Начал читать, дошел до главы "node core" и в ней автор просто кидает термины и определения к ним не удосужившись в нормальном объяснении темы. Возможно, учебник просто написан для тех, кто уже имел дело с бэкенд разработкой
Я немного не понимаю сути ORM. В общем nodejs, есть БД rethinkdb, orm к ней thinky.
Я могу создать модель, и авоматически будет создана таблица, могу добавлять всякую хуйню к ней и т.д. Но после закрытия программы, все объекты удаляются, записи в БД же остаются.
Подразумевает ли ORM последующее извлечение объектов из БД? Как это вообще используют?
Прямоугольники в строках 149-164 рисуются. Линии в строках 168-182 - нет. Консоль лог в строках 164 и 184 выводится. Консоль лог в строке 174 игнорируется.
То есть весь блок команд для рисования линий игнорируется. Почему так может быть?
>>708684 Я имею в виду ничего красного не выбрасывает в консоль. Вот зелёный блок кода работает, а красный нет. Они идентичны, разница в нескольких аттрибутах.
>>708653 А как в ИДЕ отлаживать, вот в этом вашем вебсторме, например. Я один хуй иду в консоль, пишу всякие консоль.логи в код и смотрю в какой момент и что отвалилось. Как-то все никак не соберусь разобраться с отладчиками, чтобы наблюдать состояние, положение интерпретатора(типо где он сейчас), стак, состояние переменных и прочие пошаговые ништяки. Как себя заставить и что почитать по теме? Думаю я много времени трачу на отладку из-за моего пещерного подхода к ней.
>>708605 >Возможно, учебник просто написан для тех, кто уже имел дело с бэкенд разработкой This. Читал с опытом пхп, книга зашла хорошо. Плюс порадовало описание сопутствующего стаффа типа баз, ORM к ним, шаблонизаторов, диалектов, тестировщиков и прочего.
Ну это вообще охуенная пушка. Когда я рисую одну линию, в консоли, она рисуется. Когда я рисую массив, он не рисуется и возвращает массив нулов нулы. Ещё можно заметить, что когда я рисовал одну линию её родитель стал html, и родитель массива линий - svg. Массив data полностью адекватен. Это же безумие.
>>709003 это только под героином можно сделать, иначе не реализовать. >>708661 Если ты не понял, то x.apply(null, [].slice.call(arguments, 1))); == x.apply(null, arguments.slice(1)); или x(arguments.slice(1))
>>708661 Аа, я кажется понял, что ты не понял. Вызов идет через (x), так вот x это arguments[0]. Только непонятно как ты учишь apply не понимая псевдомассив аргументов.
Ребят, помогите пожалуйста. Есть вот такой выпадающий список. Как видно чекнутые option закрепляются под select и их можно убрать, кликнув по ним. То есть нам нужно вывести активные чекбоксы и добавить к ним класс изменяющий внешний вид. Проблемма в том, что я туповатый и толком не знаю ни js ни jq.
>>703542 (OP) Поцоны, решил я сегодня поизучать jQuery методом чтения исходников - многие крутые прогеры советуют изучать библиотеки таким методом, да и вообще - учиться читать чужие программы нужно. Ну и подахуел маленько - это вот реально нужно именно так писать на джаваскрипте и именно так пишут профессионалы? Это же ебучее нагромождение из методов и функций, десять раз ссылающихся друг на друга, сотни тернарных операторов, за каким то хуем используемых вместо if-else, это куча вспомогательных объектов, которые, блять возвращаются сразу же при вызове функций хуй пойми куда. Ребята, а как же "программы пишутся в первую очередь для людей"? Неужели вот им минификатора мало и они сразу хуярят тернарники для экономии места? Или это действительно профессионализм? Поясните, я в замешательстве.
>>709715 Понятно, тогда существуют ли в природе примеры проектов на JS, которые полезно поизучать в качестве, скажем так, эталона в плане поддерживаемости и качества кода?
>>709730 посмотри проекты абрамова и tj, там всё очень хорошо с кодом, погугли ещё про elm архитектуру и её применение относительно обычных жс приложений
>>703542 (OP) Ребята, подскажите пожалуйста, как добавить технологию " Забыли пароль" к себе на сайт ( пишу сайт на ноде, мой первый ) Хотя-бы ссылочку, а если не сложно, то какое-то решение готовое. Вот сам сисечек авансом
>>709801 И заодно хочу спросить про капчу.Скачал модуль, подключил, вставил код в app.js, но вот что нужно вставлять в HTML ( jade, ejs ) файл, что-бы эта капча там появлялась ?
>>709801 Функция восстановления пароля тесно связана с реагистрацией и входом. Если ты для них не использовал готовое решение, то и для восстановления пароля его нет
>>709823 Обычно обучение идёт так - ты сначала пишешь свой вариант, понимаешь как оно работает, делаешь свой вариант рабочим, а потом скачиваешь готовый вариант и используешь его в готовых проектах. Если только собирать приложение из готовых проектов, можно стать макакой, которая будет полагаться на магию и не понимать, как всё работает. А такая макака даже мелкий баг исправить не может.
Завтра ищешь в интернете книжку Node.js in action. Похуй если ничего не поймешь. Затем идешь на nodejs.org и изучаешь стандарты от корки до корки. Потом зубришь, именно, сука, вызубриваешь содержимое папки test гитхабовской ветки 1.х io.js, чтобы от зубов отскакивало. Когда напишешь свой первый REST сервис, по пути детально разобравшись в TDD/BDD, скачиваешь и изучаешь любой редактор, рекомендую Atom или Webstorm. Как напишешь Yeoman плагин к WS, чтобы можно было автоматом генерировать модули проекта, тест-кейсы и нормальный JSDoc по коду, можешь идти дальше - тебя ждет увлекательный мир NoSQL: Key-Value-in-Memory-Store с опциальной персистентносью, документо-ориентированных хранилищ с eventual consistency, Map-Reduce и встроенной репликацией, а также моков и стабов, асинков и промисов, сверхмощная мозговыебывательная многоуровневая структура callback-ов и главное - постоянный рефакторинг и непрерывная интеграция! Отсос хиккующих выблядков / просто неудачников типа рейфага или Ruby/Java/PHP-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Чего бы написать, чтобы хорошенько подтянуть свои знания? Всегда использовал js только для написания небольших скриптов и никогда не пробовал писать что-то более-менее серьезное. Может быть есть какие-нибудь типовые проекты, которые помогут лучше разобраться в языке?
Ребята, как часто вы обновляете данные в своих SPA? Гуглил стратегии предотвращения протухания данных у клиента, нашел вот такие подходы:
- WebSocket`ы. - Ставить всем вытянутым с сервера данным временной маркер, спустя определенный интервал времени, обращаться на сервак за обновлением. - Каждый раз, при отображении определенной вьюхи, запрашивать данные для нее.
Как делаете вы?
Ну и связанный вопрос, сколько данных имеет смысл тянуть разом? То есть предположим есть листинг каких нибудь товаров с фильтрами. Определенное количество товаров загружается сразу, но получается, что после изменения состояния фильтров придется каждый раз обращаться на сервер, получать товары, которые подходят под фильтр. Или можно загрузить сразу все товары, тогда сервер дергать не придётся, но как-то по-идиотски ведь тянуть огромный пласт данных, большая часть которых в итоге будет не нужна. Куда в таком случае самому сесть, куда мать посадить?
>>710019 >но получается, что после изменения состояния фильтров придется каждый раз обращаться на сервер, получать товары, которые подходят под фильтр И ничего страшного, т.к. это запрос в базу данных, которая отсортирует и вернет результат. 1 действие.
>>710024 Да, но в этом случае есть еще ряд моментов - пагинация, например. То есть с одной стороны можно разбить по страницам товары, которые подходят под фильтры, но как быть с ситуацией, когда товаров стало больше, пока просматривался листинг?
>>710034 LIMIT, а если товаров стало больше, то пагинация чутка съедет, ничего страшного не произойдет, пользователь просто увидит те товары, которые уже видел, но гарантированно не пропустит другие. Если же скорость добавления товаров очень высока, то стоит усложнить систему.
Аноны, подскажите какой-нибудь jquery plugin для гридов типа этого http://dhtmlx.com/docs/products/dhtmlxGrid/ . Главное - возможность фильтрации каждого столбца по дропдауну(желательно позволяющему вводить текст - autocomplete), содержащему все возможные значения в столбце. Ну и хочется чего-то лекговесного и хорошо кастомизируемого, поскольку вся таблица с нужным контентом уже отдаётся сервером, ничего загружать/подгружать не надо, просто добавить гриду функций.
Посоны, дайте для изучения примеры ХОРОШЕГО кода на чистом JavaScript. Не очень большие, но цельные скрипты, чтобы не рыться во взаимосвязях между модулями, а сразу окинуть взглядом целую программу. У вас же наверняка есть такие. Хочу посмотреть как пишут гуру.
>>710021 Тут прикол в том, что интерпретатор сперва идентифицирует foo.x, присваивая ей undefined в текущем адресе foo, а потом начинает присваивания. Только вот во время присваивания адрес foo меняется, а свойство создано в старом адресе к которому foo отношения уже не имеет. Свойства x в новом адресе foo нет-отсюда undefined. Однако оно есть в старом адресе bar.x. Это выражение по сути то же самое, что и bar.x=foo={n:2}
>>710098 >интерпретатор сперва идентифицирует foo.x, присваивая ей undefined в текущем адресе foo, а потом начинает присваивания Ты хуйню говоришь, undefined ничему не присваивается, оно undefined потому что на обновленный foo оно и не успело сослаться. >foo //Object {n:2} а не Object {n:2 x:undefined}
>>710098 Короче дело происходит так: foo.x = foo = {n: 2}; foo.x ссылается на свойство первого объекта, переменная foo становится ссылкой на другой объект через foo = {n: 2};, а foo.x, являясь ссылкой на свойство всё еще первого объекта, присваивает ему ссылку на обновленный foo. Охуеть, сам спросил, сам теперь поясняю умникам.
>>710118 Это ты просто долбаеб, я все правильно говорю. Сперва оно присваивается undefined по адресу foo.x==bar.x==undefined. Потом foo = другому адресу в памяти. И (foo.x уже не сввсем корректно)==bar.x присваивается ссылка на этот новый адрес {n:2} >>710121 там то же самое написано, дебил, поясняет он
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.