zHz00 Untitled

суббота, 10 февраля 2024
01:08 Ещё один спящий баг
У наших программ есть окно с настройками. Оно довольно типично для устаревших интерфейсов: слева располагается дерево страниц. В зависимости от того, какой лепесток дерева выбран, формируется страница настроек справа.

По умолчанию, естественно, открывается первый лепесток.

И вот мы добавили очередную настройку -- целое число. Эта настройка была на первой странице. И оказалось, что она не подгружается из настроечного файла. А остальные подгружаются. В чём же дело? После некоторых шаманств удалось добиться, чтобы настройка подгружалась, но почему-то только со второго раза.

ОКАЗАЛОСЬ, что при открытии диалогового окна сначала происходит рендеринг всех настроек, и только потом численные настройки подгружаются из настроечного файла. Таким образом, на странице отображаются устаревшие значения.

Много лет мы этого не замечали. Почему? По двум причинам.

1. На первой странице никогда не было численных полей. Только чекбоксы, комбо-боксы и подобное. А они, в отличие от численных настроек, подгружались ДО рендеринга. Это, конечно, был для меня полный взрыв мозга -- половина настроек подгружается до, а половина после!

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

@темы: Программирование, Говнокод, Борьба с техникой

URL
Проблемы, которые кажутся неразрешимыми, часто испаряются...
завтра приезджает бабушка.... это чтобы нам всем жизнь ...
недавно Владимир поинтересовался, чем же мы занимаемся с ...
Этот кофе уже просто бесит.. но не могу без него. Без нег...
Последние дни замечал на улицах и в транспорте очень мног...
Утро. На дне путающегося в обрывках сна сознания неонов...
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail