Jump to content

WingedFox

Expert
  • Posts

    214
  • Joined

  • Last visited

Posts posted by WingedFox

  1. Смешивать CSS с JavaScript можно только в IE.

    Кроме того существуют т.н. "behavior" в IE и его эмулятор для мозиллы: http://dean.edwards.name/moz-behaviors/

    А вообще, подобные задачи решаются привязкой к событию resize и правкой нужных координат.

  2. А, ну да. Только для .split сделано исключение.

    Тем не менее, заметная разница в скорости появляется только на очень большом числе итераций (10..30 тысяч) и коротких строках (<300 символов).

    При увеличении длины строки (за исключением Сафари) рег уменьшает отставание, а в IE даже обгоняет строковый разделитель.

    Двукратное превосходство строкового разделителя есть только в том же Сафари.

    В IE разница не более 10%.

    В FF2 - около 25%.

    Оперу не тестировал

    var str = "a b c d e f g h i j k l m n o p q r s t v u w x y z "

    var max = 5000;

    var d1 = (new Date).valueOf()

    for (var i=0; i<max; i++) {
    var res = str.split(" ");
    }

    var d2 = (new Date).valueOf()

    var reg = /\s/
    for (var i=0; i<max; i++) {
    var res = str.split(reg);
    }

    var d3 = (new Date).valueOf()

    document.writeln("split(\" \") == "+(d2-d1)+"ms")
    document.writeln("<br />")
    document.writeln("split("+reg+") == "+(d3-d2)+"ms")

  3. s0rr0w

    Спешу огорчить - split использует ровно тот же движок регулярных выражений. Даже если туда передаётся строчка.

  4. теоретически и в большинстве случаев практически

    Можно подробнее? При 15000 глобальных переменных у меня тесты показывали разницу меньше доступной для измерения (т.е. 0ms).

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

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

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

  6. Я привёл пример - почему. Он иллюстрирует "качество" следующего абзаца

    Для объявления нового метода для объектов класса String мы применили конструктор Function. Есть один небольшой, но существенный нюанс: новыми методами и свойствами будут обладать только те объекты, которые порождаются после изменения прототипа объекта. Все встроенные объекты создаются до того, как JavaScript программа получит управление, что существенно ограничивает применение свойства prototype.

    Остальное - того же уровня.

  7. Какой ужас..... Тут йад уже не поможет.... Особенно про прототипы.

    <script>

    var a = "test test test"

    String.prototype.capitalize = function () {
    return this.replace(/\b(\w)/g, function (a) { return a.toUpperCase()});
    }

    document.write(a.capitalize())

    </script>

    Забудьте этот опус как страшный сон.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy