All streams
Search
Write a publication
Pull to refresh
20
0
Send message
Если для примера, то конечно подойдет. Но все таки
e.stopPropagation();
Водит в заблуждение, и хорошей практикой, считается, при проектировании интерфейсов его избегать.
У меня такое ощущение, что мы друг друга не понимаем. В приведенном вами примере, я на всплытие не могу привести проблему. Но у меня возник вопрос в вашем коде
 e.stopPropagation();
То есть, другие элементы которые лежат выше вас уже не интересуют,(хотя у них тоже может быть класс jst), вот кстати и проблема всплытия, которую я хочу до вас донести.
По поводу скорости, поверьте ни одни Вы работаете на высоко нагруженных сайтах.
Я с вами полностью согласен, что front-end должен быть оптимизирован. Но по поводу того, что пользователь уйдет вы перебираете, конечно, если ваша страница не грузить минуту, то да уйдет.
Про масштабирование, мне сложно какие-то доводы привести. Просто это код не модульный и у него сильное связывание. И при нарастании функционала и плюшек, будет спагетти код, который я не раз видел.
Но желаю, что бы у вас все хорошо развивалось.
Про много функций я имел ввиду, если какое-то другое действие нужно выполнить будет(не переключение), а если к примеру вам понадобиться, где-то остановить всплытие как вы с этим будете бороться.
По поводу обхода лучше я один раз обойду при загрузке(но все надо в меру конечно), чем при каждом клике. По факту вы каждый раз ищите элемент.
Я вот как-то тяжело представляю, как вы это потом будете масштабировать.
Не знаю, что хорошего, вы находите в статье(кроме подробного изложение), но сам подход очень плохой.
Вешать событие на весь документ, и потом вызывать каждый раз функцию, это не есть хорошо, а если у вас будет тысячу таких функций. Я конечно понимаю, что делегирование это круто, удобно и быстро, но нужно думать, где его использовать. Про навешивания javascript очень интересный подход изложил Андрей Сумин в докладе «Как не утонуть в мегабайтах JS-кода».
Он предложил на все блоки, где нужно навесить js, повесить класс, а в самом элементе в свойстве onclick, указать модуль который нужно подключить. Сумин конечно использует свой велосипед для загрузки js (можно было бы использовать AMD) и кастомные событие, но сам подход по-моему просто супер, дает очень хорошо поддерживаемый и структурированный код.
Я же говорю не понял вашего вопроса.) Да рассматривал вариант code.google.com/p/explorercanvas/. Но он не имеет этого метода, он вообщем делает прорисовку используя объект VML, который я как понимаю нельзя сохранить в картинку.
Не понял вашего вопроса, но если вы спрашиваете про стандартный объект canvas, то да, есть метод toDataURL. Вот здесь developer.mozilla.org/en/DOM/HTMLCanvasElement, можно почитать какие есть методы.
Пробовал эту библиотеку, но сделать совместимой ее с IE<9, так и не вышло(сохранять картинки), так как в flashcanvas не очень хорошо работает метод canvas.toDataURL. Но я думаю если повозиться, то можно было все-таки закостылить. Мне тогда повезло, заказчик согласился не делать функционал для IE<9.
Да я полностью с Вами согласен, и об этом нам говорит спецификация es5.github.com/#x11.9.3, в которой не так много уж много букв, чтобы не осилить ее( в частности по поводу операторов).
Полностью с Вами согласен. Вот думаю, после прочтения таких статей, давно уже изъезженных, а самое главное хорошо описанных в спецификации, думаешь, ну неужели в javascript нету куда более тонких мест чем, точно хорошо описано его создателями. Мне куда интереснее было бы почитать, про разное поведение в разных движках языка(не только браузерных). Уж лучше написать статью про определение типов написать, хотя это тоже тема разобрана по кусочкам.
У меня есть пару замечаний по js коду. Я бы посоветовал отказаться от функции setInterval (), в сторону setTimeout(), здесь написано почему shamansir.github.com/JavaScript-Garden/#other.timeouts. Вместо того, что бы объявлять во всех функциях переменную me, и присваивать ей this, можно объявить ее в конструкторе. А так как используется jQuery использовать $.proxy, в $.ajax передавать this через параметр context, и тогда эта переменная вообще будет не нужна.
C iOS 3.2 появился флаг UIFileSharingEnabled в info.plist, который и говорил iTunes о необходимости бэкапа папки Documents. Но мне тоже непонятно, зачем было менять этот механизм — кому было надо, тот пользовался.
Ответ по поводу setTimeout habrahabr.ru/blogs/client_side_optimization/137318/#comment_4572733. Задержка, как я написал выше при значении ноль будет минимальна, а не равна нулю.
Вот попробовал learn.javascript.ru/play/HkUa0b. Не удаляться, а вот если объявить без var, тогда удалиться. Но это другой случай.
Вы ошибаетесь, delete не удаляет переменные. Попробуйте выполнить такой код:
(function(){
    var n = 1;
    delete n;
    alert(n);
  }())
Если в короток, то он удаляет объект, свойство объекта или элемент массива по указанному индексу.
По поводу первого пункта, я ввожу новые переменные, чтобы было понятно их назначение, и после меня человек мог понять зачем она нужна(думайте о людях, которые будут читать ваш код), хотя да в Вашем примере, переменные счетчики, конечно можно использовать дважды. По поводу замыканий, я конечно придираюсь, но сказать используйте меньше замыканий не есть правильно, замыкание у нас создается в любом случае при вызове функции, а вот количество переменных в нем, кончено может быть разным. А можно по подробнее, что вы имеете ввиду под «функции-обёртки», и как они относятся к оптимизации?
Странно, что он прекрасно работает у Вас в FF, у меня сочетание клавиш «сtrl+v» не сработало, да и отправка формы не должна сработать по нажатию на «enter». А можно по подробнее, какая особенность события «onPaste'?
Если вы пересмотрите мою статью, то заметите почему использовать:
 event.charCode >= 48 && event.charCode <= 57
это плохо. Попробуйте, к примеру, скопировать значения из input в FF. Я думаю, в опере вообще половина клавиш вроде tab, up, down работать не будут. Стоит все таки пересмотреть запрет нажатия клавиш. А вот для маски я бы использовал плагин digitalbush.com/projects/masked-input-plugin/ (его можно встроить в вашу архитектуру). И да, в моем плагине можно задавать собственные маски ввода. И скажите зачем использовать
setTimeout(function(){},0)
, если минимальная задержка составляет в зависимости от браузера около 12 мс. А если хотите сразу вывзвать функцию, то почему не используете конструкцию immediate function. А навешивание событий через live, может вызвать много проблем. Советую пересмотреть Вам ваш код.
Я, к примеру, знаю правила постановки точки с запятой, но все равно ставлю их везде. Так js является не первым языком программирования, с которым я познакомился. И мне не всегда комфортно читать код без точек с запятой. И мне кажется, что большинство программистов, советует использовать точки с запятой, не из-за не понимания конструкций языка, а из-за влияния других языков на их стиль программирования, но это лично мое мнение. И когда новички обращаются с вопросом о точках с запятыми они просто, советуют ставить их всегда, что бы не объяснять все правила. А человек который действительно хочет разобраться в тонкостях языка найдет их в спецификации.
Извините, не туда ответил, ответ ниже.
Так получается, потому что в плагине есть опция значение по умолчанию, сейчас в примере для дробный чисел стоит 10.1, и если вставляемое число не подходит под выражение, то вставляется значение по умолчанию.

Information

Rating
Does not participate
Registered
Activity