Ответы пользователя по тегу JavaScript
  • Падает производительность приложения?

    sheknitrtch
    @sheknitrtch
    Я вроде бы нашёл в чем причина.
    Во-первых, методом тыка было определено, что если закомментировать строку 97:

    drawBoard();
    

    То никаких тормозов в Opera не наблюдается.

    Во-вторых, если в глобальную переменную gridOn записать false, то тормоза тоже исчезают.

    Ну и в-третьих, оказалось, что достаточно добавить после 127-ой строки

    gDrawingContext.beginPath();
    

    И тормоза исчезают в Opera навсегда.

    Мне кажется, что если не вызывать beginPath, то Opera запоминает все созданные с помощью lineTo линии при каждом вызове drawBoard. И когда вызывается stroke() то рисуется сетка от всех предыдущих кадров вместе взятых. Эту гипотезу нужно ещё проверить. Но судя то тому, что вызов beginPath исправляет проблему производительности, Я думаю, дело именно в этом.
    Ответ написан
    1 комментарий
  • Необходима jquery библиотека для построения графиков?

    sheknitrtch
    @sheknitrtch
    Как насчёт библиотеки Google Charts? Есть скроллинг и масштабирование.
    Ответ написан
    1 комментарий
  • Как реализовать многоуровневый вложенный запуск функций?

    sheknitrtch
    @sheknitrtch
    Я вижу в исходниках строку:
    root.stack.push(newrecord);
    

    То есть функция makeRecord всегда добавляет новую запись в корень.
    Я бы добавил ещё один аргумент parentGroup в

    var makeRecord = function(name,value, parentGroup) {
        var newrecord = new record();
        newrecord.name=name;
        newrecord.value=value;
        if(parentGroup === undefined) {
            parentGroup = root;
        }
        parentGroup.stack.push(newrecord);
    }
    

    Аналогично подправить функцию makeGroup.
    Пользоваться этими функциями можно будет так:

    makeRecord('first record','some text');
    makeGroup('first group');
    makeRecord('second record','yet another text');
    makeGroup('second group', function(parentGroup) {
        makeRecord('first record in second group','how can i do it?', parentGroup);
    });
    


    ИМХО, анализировать стек вызовов или заводить какие-то дополнительные глобальные переменные — это плохой вариант.
    Ответ написан
    Комментировать