2010-09-01 3 views
1

У меня есть задача обновить какой-то ужасно устаревший JavaScript-код, который я не писал, полный хаков и ловушек, редких в комментариях. Помимо внесения изменений, я хотел бы сделать скрипт более понятным и более надежным (например, не используя глобальные переменные).Приоритет изменений в JavaScript-коде

Я думаю, что мне удалось сосредоточить внимание на большей части его выполнения, поэтому я думаю, что я готов начать вносить в него изменения.

Мой вопрос: какое ограниченное время, какие части следует первоочередно менять? Должен ли я сначала попытаться инкапсулировать все в пространствах имен? Должен ли я создавать классы для всех моих объектов? Должен ли я заменить все вызовы .innerHTML их эквивалентами DOM? Должен ли я использовать jQuery? Какие части, по вашему мнению, наиболее важны для максимизации улучшений кода?

ответ

1
  1. Получить кросс-браузер взламывает из вашего кода. Неважно, какую библиотеку вы используете для этого, но они сделают это лучше вас. Наиболее важным здесь является, вероятно, кросс-браузер обработки событий, но есть некоторые другие проблемы DOM, и использование чего-то вроде jQuery действительно может избавиться от некоторых шаблонов.
  2. Если код использует innerHTML, то он, вероятно, также генерирует строки html. innerHTML действительно не так уж плох, как генерация html для него может быть очень уродливым. Посмотрите на простое решение для шаблонов JS.
  3. По пути в сторону первых двух вы, вероятно, обнаружите, что имеет смысл сделать код более объектно-ориентированным/namespaced, и вы, вероятно, сможете это сделать, когда идете. Если что-то осталось, вы можете сделать это, когда остальные будут выполнены.
2

Лично я бы начал с namespacing и, возможно, классов. Таким образом, если ваше время ограничено, и вам нужно уйти и вернуться к коду, он будет лучше организован и, следовательно, вам легче или проще выбрать резервную копию и очистить ее дальше.

+0

+1 Изоляция всегда хорошая вещь с точки зрения maintanence. Не исправить то, что не сломано tho, innerHTML отлично работает :) – Konerak

Смежные вопросы