Code Monkey home page Code Monkey logo

dirty-on-steroids's People

Contributors

a-shumakov avatar adequator avatar aivean avatar alexzabolotny avatar bearoff avatar crea7or avatar crimaniak avatar ishchenko avatar oshibka404 avatar stasik0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dirty-on-steroids's Issues

Производительность модулей

Инбоксах с большим количеством комментариев производительность сервиспака оставляет желать лучшего.
Пример (более 600 комментов, из них более 500 новых):

runtime2779
Навигация по новым1405
Dirty tooltip316
Пряталки рейтинга217
Показывать favicons доменов205
Цветовая дифференциация полов165
Приглушать удаленные комментарии155
Цветной рейтинг152
Раскрытие картинок по клику на ссылке81
Просмотр видео по клику на ссылке45
Выделять ссылки на подсайты в постах14
Рестайлинг сайта от dirty tort4
Показываться онлайн через d3search4
Прятать пользователей инбокса под ссылку2
Показывать все комментарии в посте2
Показывать внешние ссылки из заголовков постов2
Каноничные гертруды2
Анонимные авторы постов2
config core module2
Прятать посты с низким рейтингом1
Помечать как прочитанное1
Добавлять предпросмотр для комментариев1
XD1
Широкая главная0
Спрятать лишнее0
Показывать посты целиком без "развернуть"0
Линк на последнюю версию0
Добавление видео к комментариям0
Бесконечная страница0

Нужно пробовать оптимизировать производительность, возможно путем перевода селекторов с jquery на xpath.

Включённые плагины по умолчанию

Надо как-то решить, что мы включаем по умолчанию, а что оставляем по умолчанию выключеным. Может быть на подсайте servicepack провести опрос?

С дёрти

При переходе в пост, за которым слежу:

  1. автоматического перехода на первый новый коммент не происходит,
  2. в индикаторе комментов справа в позициях «следующий мой» и «следующий новый» отсвечивают нули. При движении скроллом индикация проявляется, возврат скроллом обратно её уже не обнуляет.
    Opera 12.11 x64, Win7 x64

мне нужно посмотреть при возможности, похоже что-то с таймингом

у нас есть скрипт разворачивающий новые?

Проверка времени выполнения модулей как в старом сп

Думаю как минимум на первых порах эта фича будет востребована и необходима. По сути это где-то прямо в ядре можно сделать, ибо оно же вызывает run каждого модуля. Ну и вывод наверно можно на саму страницу, а не консоль. Хотя польза вывода на страницу сомнительна, если только совсем пользователям смотреть на то, что у них тормозит сп.

Иконки для скроллера

Новые иконки стали вроде лучше, но читабильность ужасная (нет контраста). И слишком похоже на хабр. Может мы лучше сопрём что-то с нового д3? Как стрелочки для голосования по карме?

Реализовать событийную модель для общения между модулями

Для того, чтобы избежать такого:

                var module = d3.getModule("Навигация по новым");
                if (module != null) {
                    module.countItems.call(module);
                    module.newPosition.call(module);
                }

Надо реализовать красивую обертку вокруг DOM events, чтобы модули имели возможность регистрировать обработчики событий и посылать события.

Документация

Нужно проапдейтить readme в соответствии с изменившимся api. Также желательно сделать шпаргалку по наиболее полезным функциям и методам (возможно, с примерами использования).

Обработчик группы комментариев/постов для модулей

В целях улучшения производительности работы модулей нужно помимо обработчика для одного комментария/поста сделать обработчик группы комментариев/постов. Цель — минимизировать количество вызовов сложной логики.

Сейчас часто сложные рассчеты по всем комментариям/постам вызываются при добавлении одного комментария/поста. То есть, обработка занимает время O(n2) вместо O(n).

Обработчик для группы может представлять собой функцию onUpdate, которая будет триггериться после того, как вся группа комментариев/постов уже добавлена, либо функции onCommentsBatch(comments), onPostsBatch(posts), которые будут триггериться после группового добавления сущностей и в которые будут передаваться обновленные сущности.
Мне первый вариант по некоторым причинам нравится больше.

По поводу реализации. Пока в голову приходит только clearTimeout/setTimeout при каждом новом посте.

Неправильное отображение favicon при наведении

Настройки Модуля "Показывать favicons доменов":
"Активировать" – включено.
"Показывать иконки": "при наведении"
Наводим на заголовок статьи.
Иконка показывается выше заголовка и обрезана в верхней части.
Firefox 16.0.2, Chrome 23.0.1271.91 m, Opera 12.11 (Windows 7 x32)
Скриншот:

Comments threshold

Сделать продвинутый фильтр комментариев, предполагаемые опции:

Использовать относительное/абсолютное значение
Количество опций
Не скрывать мои
Не скрывать ответы на мои
Не скрывать родителей
Не скрывать картинки
Показывать селектом / линками
Полностью прятать / делать прозрачными

На получение данных из local storage уходит много времени

Каждый запрос d3.storage.get() у меня занимает 50-70 миллисекунд в опере.
В хроме - 0.
В FF пока не могу проверить.
Запись в опере - 0

Не знаю, чем вызвано: то ли самой оперой, то ли тем, что опера у меня - основной браузер, и много чего в local storage лежит, а хром только из коробки.

В итоге время выполнения модулей наполовину - это получение данных из storage.

Прошу проверить на своих браузерах или сказать, если это что-то известное.

Проверял так:
добавил в d3:

...........
runTimeTotal: 0,
buildMode: '@buildMode@',
getFromStorageTime:0,
getFromStorageTimes:0,
.......

        get: function(key, defaultValue)
        {
                        var start = new Date().getTime();
            var value = localStorage.getItem(key);
                        var end = new Date().getTime();
                        d3.getFromStorageTime += end - start;
                        d3.getFromStorageTimes ++;
            return value === null ? defaultValue : value;
        },

.......
if (console) console.log('get from storage time: ' + d3.getFromStorageTime + 'ms');
if (console) console.log('get from storage times: ' + d3.getFromStorageTimes + 'times');

Предпросмотр комментариев

Теперь с ним всё плохо, можно открывать несколько окон для ответа и они создаются реалтайм. Надо заметно переделывать всё. К тому же, нужен предпросмотр для написания новых инбоксов. Возможно это будет отдельно, ибо опять всё везде по разному называется.

В новом посте с комментариями фокус оказывается внизу страницы

С дерти:

При заходе в новый пост с комментариями фокус автоматически оказывается на поле для ввода, и если комментариев много, то приходится скролить вверх. Только у меня так?

http://d3.ru/comments/384774/#8273275

Хоть баг и не наш, надо бы пофиксить.

Project structure refactoring

  1. Delete obsolete modules and code
  2. Rename "extra" folder to "modules".
  3. Create subfolders for modules by type, such as "content", "social", "other"
  4. Create folder "libs" and move libraries, such as jquery.js there
  5. Create folder "build" for build-related scripts

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.