Обычно я люблю хранить мой HTML-код чистым, семантическим и свободным от Javascript или CSS. Я включаю мои файлы .JS и .CSS вверху, а функциональность слоя поверх элементов DOM.
Положительные стороны этого:
- Архитектурное разделение концернов
- Изящная деградация, когда Javascript или CSS не поддерживаются
- Удобство поиска
Есть один главный минус:
- Проблемы с производительностью в IE 6
Поскольку все события присоединяются к элементам через код Javascript, который обращается к DOM, страдает производительность в IE.
Это особенно верно при использовании jQuery (который является моим любимым фреймворком Javascript).
Похоже, у меня есть два варианта: либо оставить код красивым и аккуратным, и заставить пользователей IE 6 (около 20% пользовательской базы) жаловаться, либо «отменить нормализацию» кода для повышения производительности IE 6 .
Есть ли "средний путь" в этой ситуации? Или я обречен?
Примечание: я не говорю, что мои проблемы с производительностью вызваны наличием Javascript в отдельном файле.
Я могу добиться замечательной производительности в IE, сохранив ее в отдельном файле.
Проблема в том, что мне все еще приходится помещать фактические обработчики событий в атрибуты 'onclick' в HTML. Например:
<span onclick="doSomething()">More...</span>
Было бы намного лучше, если бы я мог написать:
<span id="more-button">More...</span>
А затем назначьте его отдельно, в Javascript, со следующим:
$("#more-button").click(doSomething);
К сожалению, похоже, что это плохо для производительности IE6.