Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с оптимизацией анализатора логов (https://javascript.ru/forum/misc/55321-pomogite-s-optimizaciejj-analizatora-logov.html)

switch001 26.04.2015 13:50

Цитата:

Сообщение от Erolast (Сообщение 368310)
Храни массив объектов

Тогда придется хранить массив всего что находится в строке.

А вообще я еще предыдущий метод не внедрил ;)
но попробую. Метод с поиском по DOM регэкспами оказался не шибко гибким.

UPDATE: метод с массивом тоже оказался муторным. Дело в том что скрывать нужно не только строку целиком, но и ее элементы. Т.е. надо строку разбить на группу элементов со свойствами, потом их собирать... а в строке не все ведь подлежит "разбивке", это тоже нужно хранить. В общем оценил объем возни и забил. К тому же потом понадобится анализировать не одну строку, а группы строк, это планирую делать регэкспом уже по готовому тексту. Короче пока оставил как есть.

Может есть какой-то механизм, который привяжет к каждому найденному элементу функцию, которая в свою очередь будет реагировать на какое-то событие скрытия ?

Erolast 26.04.2015 15:45

Цитата:

Тогда придется хранить массив всего что находится в строке.
Зачем?

Цитата:

Метод с поиском по DOM регэкспами оказался не шибко гибким.
Искать по DOM вручную регулярными выражениями - это тот еще идиотизм. Для кого DOM API придуман?
$(".toggle-log-item").on("click", (checkbox) => {
    let logItems = doucment.getElementById("wrapper").getElementsByClassName(checkbox.name);
    
    for (let item of logItems) {
        checkbox.display.style = checkbox.checked;
    }
});


Ну и, да, переключатель лучше представлять как <input type=checkbox>, а не <button>.

switch001 26.04.2015 17:24

Цитата:

Сообщение от Erolast (Сообщение 368345)
Зачем?

Искать по DOM вручную регулярными выражениями - это тот еще идиотизм. Для кого DOM API придуман?

вы это своему коллеге говорите, не мне. Хотя факт на лицо: работает быстро.
Цитата:

Сообщение от Erolast (Сообщение 368345)
Ну и, да, переключатель лучше представлять как <input type=checkbox>, а не <button>.

спасибо, КЭП!!!

Erolast 26.04.2015 19:28

Цитата:

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

Цитата:

спасибо, КЭП!!!
Хм, почему-то показалось, что у тебя button была.
Но зачем так грубо отвечать? Я, вообще-то, помочь пытаюсь.

switch001 26.04.2015 19:56

Цитата:

Сообщение от Erolast (Сообщение 368361)
Ему что-то говорить бессмысленно - уже пытались сотню раз, я тебя предостерегаю.

я соглашусь что его метод, мягко говоря, странный. Однако он работает. И работает быстро. Могу лишь сказать что мир бы увидел Doom или Wolfenstein намного позже ежели Джон Кармак пользовался бы исключительно очевидными и "правильными" методами. Конечно сейчас оптимизацией почти никто не занимается. Многие даже думать в этом направлении не умеют. А я застал те времена, когда особо критичные вещи писали на ассемблере. Хорошо что они прошли нахрен ;)
Цитата:

Сообщение от Erolast (Сообщение 368361)
Хм, почему-то показалось, что у тебя button была.
Но зачем так грубо отвечать? Я, вообще-то, помочь пытаюсь.

Извините, если обидел. Но вроде не грубо ответил.
button была. Я марафет еще не наводил, а налепил чтоб было на что нажать, только и всего. Ща вот никак из unix сокета не могу этот лог прочитать, немного подзабил на отображение.

Erolast 26.04.2015 20:09

Цитата:

я соглашусь что его метод, мягко говоря, странный. Однако он работает. И работает быстро
Медленнее, чем нормальный вариант через DOM API.

Цитата:

Могу лишь сказать что мир бы увидел Doom или Wolfenstein намного позже ежели Джон Кармак пользовался бы исключительно очевидными и "правильными" методами.
Одно дело - когда хак оправдан, другое - когда правильный метод выигрывает во всех отношениях.


Часовой пояс GMT +3, время: 22:05.