All streams
Search
Write a publication
Pull to refresh
36
0
Mike Freeman @Scalar

Визионер, инфлюенсер xD

Send message
И еще вот это, мое любимое:
  {} + {}   // NaN
( {} + {} ) // "[object Object][object Object]"
Тут либо график неправильный, либо утверждение
при увеличении количества света напряжение в цепи резко возрастает
неверное
Опять вы за старое (
По поводу пункта №8 лучше использовать метод bind,
и вместо
var whoAmI = obj.whoAmI;

написать
var whoAmI  = obj.whoAmI.bind(obj);

Для любителей jQuery, есть многофункциональный метод $.proxy.

А то что указано как «решение» в статье, выглядит, имхо, немного странно.
Интересная библиотека, но все же LINQ на мой взгляд гораздо функциональнее.
Писать велосипеды это хорошо и полезно.
Но я все равно хочу обратить внимание, на замечательную библиотеку linq.js (как можно догадаться порт LINQ на JavaScript).
Позволяет делать с массивами данных все то же, что умеет оригинальный LINQ, т.е. выбрать данные любой вложенности по запросу любой сложности, отсортировать их по любому количеству полей и еще много всего.
Вы можете оценить возможности библиотеки посмотрев код из документации.
Кроме того, вы пишете в статье про translate3d, а сами все равно используете на странице position:absoulte + left.
Или вы сайт вашей студии привели в качестве отрицательного примера «Как не надо делать параллакс»?
Заголовок: «Высокопроизводительный JavaScript-параллакс»
Половина комментариев, про то, как дико оно тормозит (у меня, собственно, такая же ситуация).
Автор, где обещанные 30fps?
Интересно, кто был раньше, Philips или LIFX?
Во первых вы опоздали года на три) Уже давно есть Foursquare, и даже отечественный аналог AlterGeo и миллион их клонов.
Во вторых — это худший «пресс-релиз», который я когда-либо видел.
И в третьих, когда я зашел на страничку вашего приложения в google play — мне окончательно стало понятно, что с маркетингом и продвижением у вас не очень хорошо: большинство отзывов — 5 звезд, и все они очевидно куплены/накручены, все однотипные и очень плохого качества)
Оно работает именно «настолько медленно». В сложном интерфейсе, когда динамически подгружается десяток блоков со сложной версткой вы сразу почувствуете лаги, если не использовать шаблоны, data-binding, и прочие прелести современных фреймворков (knockout, backbone, angular).
Посмотрите как устроен любой сложный клиентский интерфейс, VK, Twitter и т.д

Все сообщество веб-разработчиков бьется за каждую миллисекунду и мгновенную отзывчивость интерфейса, а вы предлагаете самый худший вариант создания dom-дерева, отсюда и критика.
Вам следует указать в статье, что такой способ создания элементов черезвычайно ресурсоемкий, и подходит только для создания небольшого количества элементов, и уж точно его нельзя использовать в цикле, раз уж ваша статья предназначена для новичков.
Строить DOM создавая отдельно каждый элемент — это удар по производительности.
Первый пример из статьи будет работать в 10-100 раз быстрее, особенно в цикле.
Конечно так складывать строчки не очень красиво, зато работает быстро.

Ну и конечно никто не запрещает использовать шаблоны для построения DOM, хотя бы тем же jQuery.tmpl
Убирать запятые — это очень смело)

Задумка очень интересная. Раз уж расширять возможности языка и упрощать синтаксис — было бы удобно писать анонимные функции в стиле C#, без слова function и оператора return, когда в нем нет необходимости:
x => x*x;
(y, z) => y*z;


Кроме того в JS иногда очень не хватает типов-перечислений (Enum), было бы удобно не задавать значения без необходимости:
Enum CarTypes = {
   Truck,
   Sedan,
   Wagon
}
//Использование: CarTypes.Truck
С JS приходится не думать, а гадать — что же вам туда передадут.
Теоретически, если бы у JS появилась типизация входных параметров в функции — чем бы это понизило гибкость?
function Render(param:iRenderable, key:Number){
   ...
}

Да, придется использовать интерфейсы, но зато автокомплит и автоматическая проверка на тип аргумента.
Вот допустим будете вы реализовывать метод:
function Render(iRenderableObject){
   ...
}

И ни одна JS-IDE в мире не подскажет вам методы и свойства объекта iRenderableObject.

Что уж говорить о случае, когда вы используете прототипное наследование:
function A(){};
function B(){};
A.prototype = new B();
B.prototype.test = function(){}
var foo = new A();

И ни одна JS-IDE в мире не подскажет вам, что у объекта foo в цепочке прототипов есть метод test.

Вы совершенно правы, просто другого слова для обозначения этой сущности нет.

Интерпретатор конечно исполняет код в один поток.
Но «потоки в js» есть в том смысле, что при возникновении ошибки во время выполнения — останавливается только тот поток, в котором ошибка, а остальные работают нормально.
Кроме того, в общем случае не рекомендуется объявлять переменные без ключевого слова var.
Например в функции controller вы выносите переменную item в глобальную область видимости.

Почему вы обращаетесь к свойствам вашего FilesUploader через this?
Когда вы вызываете функцию controller по таймауту this.maxThreads будет undefined, т.к. this уже не указывает на объект FilesUploader.

А в случае, когда надо вызывать функцию через определенный интервал используют setInterval, а не рекурсивно setTimeout.
Извините, что сразу критика, просто возникает множество вопросов:

Странно, что мы не можем настроить сервер таким образом, чтобы он не отдавал 503, и пытаемся «не забивать канал», делая проверку на клиенте, а не на сервере. По мне так это очень плохой костыль.

Странно, что мы считаем объем загружаемых файлов, а не скорость загрузки. Мы вроде хотим «не забивать канал»?

Кроме того имена переменных deley и fStek довольно сильно режут глаз.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity