Окна TEMP CSS и TEMP JS больше не теряют данные при закрытии — v3.2.2 и v3.2.3
Неделями в нашем бэклоге висела запись: «× в TEMP очищает sessionStorage». Маленький заголовок, месяцы тихой проблемы — случайный клик по кнопке × выбрасывал код, журнал, геометрию. В мае 2026 года мы наконец это исправили (v3.2.2) и сразу добавили кнопку «очистить» для осознанной очистки (v3.2.3). Вот что изменилось и почему эта мелочь крупнее, чем кажется.
Что было сломано
Окна TEMP CSS, TEMP JS, TEMP JS Console и TEMP Output Console (сочетания Ctrl+Alt+G/H/J/K) жили в sessionStorage вкладки под случайным идентификатором, назначаемым при первом открытии. Закрытие через × вызывало removeTempPane, который:
- удалял запись состояния окна (код, журнал, геометрию,
viewMode), - освобождал идентификатор, поэтому каждое последующее
Ctrl+Alt+Gсоздавало новый случайный идентификатор.
Результат: содержимое терялось безвозвратно, и даже если бы что-то где-то уцелело, найти это было невозможно — следующее открытие искало другой идентификатор. Тот, кто работал в TEMP CSS и случайно кликал по ×, терял 20 минут написания селекторов.
v3.2.2 — × только скрывает
В v3.2.2 мы изменили модель: окно TEMP больше не удаляется при закрытии, оно получает флаг closed и остаётся в сессии со своим содержимым, геометрией и viewMode. Функция createTempPane теперь идемпотентна: повторное открытие окна того же типа (например, Ctrl+Alt+G для CSS) показывает существующее окно с сохранёнными данными вместо создания нового. injectTempPanesIntoData отрисовывает только окна без флага closed, поэтому после перезагрузки вы по-прежнему видите то, что должно быть видно.
Данные окон TEMP всё так же исчезают при закрытии вкладки — это естественные границы sessionStorage и исходное обещание «данные в рамках сессии». Перезагрузка страницы также очищает их (sessionStorage привязан к вкладке и источнику и не переживает естественный жизненный цикл страницы).
v3.2.3 — кнопка «очистить»
Теперь, когда × стал дружелюбным, мы добавили инструмент осознанной очистки: заголовки TEMP CSS и TEMP JS получили кнопку со значком корзины рядом с ×. Клик по ней очищает содержимое редактора одним движением:
- очистка попадает в историю отмены браузера —
Ctrl+Zвозвращает её обратно; - для TEMP CSS немедленно обновляется живой
<style>на странице — вы сразу видите эффект; - новый ключ i18n
tempPane.clear.title×8 языков (всплывающая подсказка).
Два намерения, две кнопки: скрыть окно (×) и очистить его содержимое (корзина). Раньше × объединял оба в одно деструктивное действие.
Что это значит в повседневной работе
Три конкретных сценария, где это имеет значение:
- «Спрячь его на минутку, я сейчас вернусь» — у вас открыт TEMP CSS с длинным правилом CSS, вы хотите увидеть страницу без окна, но через минуту вернётесь. До v3.2.2: × стирал код. Теперь: × скрывает,
Ctrl+Alt+Gвозвращает его с тем же кодом. - «Я перепутал × с кнопкой закрытия» — классическая ошибка, когда окон много. Раньше: потерянная работа. Теперь: ещё одно
Ctrl+Alt+G— и вы там, где были. - «Хочу начать с чистого листа» — до v3.2.3 единственным способом очистки было выделить всё и удалить, либо закрыть с потерей. Теперь: клик по корзине,
Ctrl+Z, если передумали.
Другие улучшения, которые открыла эта модель
Старая модель «× очищает» блокировала и небольшие улучшения, для которых не было разумного места: память размера для каждого типа окна (v2.13.201), двойной клик по полосе = переключение размера (v2.13.203), удержание прокрутки (v2.13.203). После перестройки состояния окна все три получили согласованное место для хранения данных и согласованно реагируют на закрытие/открытие.
Смотрите также
- Окна TEMP — полное описание окон, вызываемых сочетанием
- TEMP против постоянного окна — модель принятия решения
- Окна на странице — окна разработчика внутри страницы
Установите JustZix — и перестаньте терять код TEMP из-за одного случайного клика.
Оцени эту статью
Оценок пока нет — оцени первым.