Определение текущего браузера.

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

Самый простой способ определения браузера — при помощи Jquery. До версии Jquery 1.9, даный функционал у него в базе. После — предполагается что используется дополнительная библиотека «для поддержки старых проектов«. Описание API Jquery Browser здесь. Пример вот он:

boxModel: устанавливается в true, если страница обрабатывается браузером в соответствие с моделью W3C CSS Box Model (в настоящий момент не поддерживается в IE 6 и 7, когда они в режиме Quirks Mode). Пока документ полностью не загружен, данное свойство имеет значение null.

«Убираем за собой» или уничтожение обьектов в JavaScript

Сегодня столкнулся с тем что когда работаешь с JavaScript иногда приходится «подчищать» за собой. Например: подгружаем при помощи AJAX некий html в котором в есть в свою очередь код на JavaScript.

Вот подгружаемый код:

Т.е. чтоб не плодить  datepicker и редакторы tinymce каждый раз, как будет нажата кнопка «отредактировать», отлавливаем закрытие диалогового окна. После закрытия — уничтожаем объекты datepicker и редакторы tinymce. Т.е. если не уничтожите, может ничего страшного и не случится. Но потенциальная утечка памяти. Открыл-закрыл 10 раз — ушло 10 мегабайт.

Обычно я тоже не особо обращал внимание на такие мелочи, ибо не слишком часто сталкиваешься с ситуацией, что какой то объект  на странице нуждается в создании много раз.