Об ошибках, которые вовсе не ошибки.
Недавно пришлось ловить два странных бага.
Первый заключался в том, что комменты, отправленные из Оперы ajax'ом, удваивались и даже учетверялись. Причем из Оперы и только из Оперы.
Отчаявшись понять, в чем же проблема, я решил посмотреть, а каков же нормальный ход вещей, и поглядел отладочный вывод в FireBug.
К моему изумлению, FF тоже отправлял на сервер по два коммента. Просто по неким причинам не отображал эти дубли.
Мораль: Не факт, что баг, заявленный тестировщиком (ох уж эти тестировщики) как Opera/FF/IE-специфик, действительно таковым является. Возможно, что глючат как раз остальные два браузера и скрывают ошибку в логике.
Мораль 2.0: Удаляете ноду -- удаляйте события и хэндлеры, особенно кастомные.
Второй баг родился в результате длительной переработки некоего, скажем, контрола с целью повышения функциональности и code-reuse.
После переписывания функции init(), контрол отказался работать в IE6. Причем только в IE6.
Ошибка была крайне странной:
init: function(element, params) {
//иницируем некоторые переменные
this.control = element
...
}
Дальше по коду IE клялся и бил себя пяткой в грудь, что this.control равняется undefined и работать с этим никак нельзя.
Полтора рабочих дня было потрачено на медитацию, прежде чем случайный взгляд на тот же самый файл во время отладки в MS Visual Web Developer Express открыл мне, что в результате какого-то сбоя моего Notepad++, перенос строки после комментария отсутствует. То есть в файле стоит не виндовый перенос строки, а, наверное, юниксовый (не посмотрел).
Мораль: Не факт, что баг, смотрящийся как изьян в логике, таковым является. Капризы браузеров -- вещь непредсказуемая.
Мораль 2.0: IE6 -- ночной кошмар веб-разработчика.
|
Русские комментарии для ИЕ6 - это почти 100% смерть работоспособности скрипта, вот в чем грабля была
Ну прям уж 100%. Ни разу не сталкивался.
Пол дня убил чтоб понять что не так в скрипте. Подтверждаю бага с русскими комментами есть 1000% в IE6