Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 12538|Ответ: 1

[JavaScript] javascrip{filter}t performance optimization

[Скопировать ссылку]
Опубликовано 04.12.2017 20:23:14 | | |
1. Уважать право собственности на объект
 Не добавлять атрибуты в экземпляры или прототипы;
 Не добавлять методы в экземпляры или прототипы;
 Не переопределяйте уже существующие методы.
Лучший способ сделать это — никогда не изменять объекты, которые не принадлежат вам. Владение объектом означает, что вы его создали, например, пользовательский тип или объектный литерал, который вы создали сами. Массивы и документы явно не ваши, они существуют до запуска вашего кода.
2. Избегайте глобальных переменных
Создайте глобальную переменную максимум, позволяя другим объектам и функциям существовать в ней. Взгляните на следующие примеры:
//两个全局量——避免!!
var name = «Николас»;
function sayName(){
alert(name);
}
Этот код содержит две глобальные величины: имя переменной и функцию sayName(). На самом деле, вы можете создать объект, содержащий оба, как показано в следующем примере:
//一个全局量——推荐
var MyApplication = {
name: “Nicholas”,
sayName: function(){
alert(this.name);
}
};
3. Избегайте сравнения с null
 Если значение должно быть типом ссылки, используйте экземпляр оператора для проверки его конструктора;
 Если значение должно быть базовым типом, используйте typeof для проверки его типа;
 Если вы хотите, чтобы объект содержал конкретное имя метода, используйте оператор typeof, чтобы убедиться, что метод с указанным именем существует на объекте.
(Здесь я рекомендую мою группу по обучению и обмену веб-интерфейсом: 675498134, независимо от того, новичок вы или бог, я приглашаю вас прийти, учиться, общаться и время от времени делиться сухими товарами, включая последние фронтенд-материалы и уроки, которые я сам собрал для вас, а также технические эксперты, которые ежедневно объясняют фронтенд-знания. Новички и продвинутые друзья могут учиться, общаться вместе и добиваться прогресса. )
4. Используйте константы
Хотя Javascrip{filter}t не имеет формального понятия констант, он полезен. Идея отделения данных от логики приложения может изменять данные без риска ошибок. Взгляните на следующие примеры:
var Константы = {
INVALID_VALUE_MSG: «Неверное значение!»,
INVALID_VALUE_URL: «/errors/invalid.php»
};
function validate(value){
если (!значение){
alert(Constants.INVALID_VALUE_MSG);
locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
}
5. Избегайте глобального поиска
Наверное, самое важное для оптимизации производительности скриптов — это внимание к глобальным поискам. Использование глобальных переменных и функций определённо дороже, чем локальное, потому что требует поиска по цепочке области. Обратите внимание на следующую функцию:
обновление функции UI(){
var imgs = document.getElementsByTagName("img");
для (var i=0, len=imgs.length; Я < Лен; i++){
imgs[i].title = document.title + «изображение» + i;
}
var msg = document.getElementById("msg");
msg.innerHTML = «Обновление завершено.»;
}
Функция может выглядеть вполне нормально, но содержит три ссылки на глобальный объект документа. Если на странице несколько изображений, ссылка на документ в цикле For выполняется несколько раз или даже сотни раз, каждый раз выполняется поиск по цепочке объёма. Создав локальную переменную, указывающую на объект документа, можно повысить производительность этой функции, ограничив глобальный поиск один раз:
обновление функции UI(){
var doc = документ;
var imgs = doc.getElementsByTagName("img");
для (var i=0, len=imgs.length; Я < Лен; i++){
imgs[i].title = doc.title + «изображение» + i;
}
var msg = doc.getElementById("msg");
msg.innerHTML = «Обновление завершено.»;
Здесь сначала поместите объект документа в локальную переменную doc; Затем замените оригинальный документ на остальной часть кода. По сравнению с оригинальной версией, текущая функция имеет только один глобальный поиск, который определённо быстрее.
6. Другие меры предосторожности для повышения эффективности
 Нативные методы быстрее — по возможности используйте нативный метод, а не переписывайте его самостоятельно с помощью Javascrip{filter}t. Родной метод написан на скомпилированном языке, таком как C/C++, поэтому он гораздо быстрее Javascrip{filter}t. Самое забытое в Javascrip{filter}t — это сложная математика, которую можно найти в объектах Math; Эти методы гораздо быстрее любого другого, написанного на Javascrip{filter}t, таких как синус и косинус.
 Операторы Switch быстрее — если у вас есть серия сложных if-else операторов, вы можете получить более быстрый код, преобразовав их в один оператор switch. Вы также можете дополнительно уточнить оператор switch, организуя кейс по порядку от наиболее вероятного к наименее вероятному.
 Битовые операторы быстрее — при выполнении математических операций битовые операции быстрее любых булевых или арифметических операций. Выборочная замена арифметических операций битовыми операциями может значительно повысить производительность сложных вычислений. Логика, такая как модуль, логика и логика суммы, может рассматриваться как заменённая битовыми операциями.

Счёт

Количество участников1МБ+1 способствовать+1 Коллапс причина
QWERTYU + 1 + 1 Поддержите владельца в хорошем посте, и я тоже выложу хороший пост!

Смотреть все рейтинги





Предыдущий:SQL Server экспортирует указанные данные с условиями
Следующий:Новички играют в чёрные технологии в CSS
Опубликовано 05.12.2017 9:33:13 |
научился            
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com