Подтвердить что ты не робот

Я использую слишком много jQuery? Когда я пересекаю линию?

В последнее время я часто использовал jQuery и JavaScript, часто делал то же самое, что делал до использования CSS.

Например, я чередую строки строк в таблице или создаю кнопки и ссылки, зависающие с помощью JavaScript/jQuery. Это приемлемо? Или я должен продолжать использовать CSS для таких вещей?

Итак, реальный вопрос: Когда я использую слишком много jQuery? Как я могу понять, когда я пересекаю линию?

4b9b3361

Ответ 1

Вы пересекаете линию, если используете jQuery, чтобы делать то, что можно легко сделать без jQuery. Цель jQuery - сделать жизнь проще, но она не должна быть за счет совместимости или удобства использования.

jQuery, безусловно, не следует использовать в качестве замены для CSS - подумайте о пользователях, у которых отключен JavaScript.

Я знаю, что этот образ злоупотребляют, но кто-то должен был бросить его здесь:

Кредит изображения - bobince.

Ответ 2

Я не думаю, что здесь есть "линия", я думаю, что есть некоторые простые вещи и некоторые серые области там, где вам нужно балансировать то, что вы хотите. Расширенные функции, производительность, совместимость, думаю, что это треугольник, трудно сделать все как можно лучше в то же время.

Если CSS может это сделать, конечно, сделайте это в CSS. Если это невозможно сделать в CSS, используйте jQuery, но не используйте jQuery, где накладные расходы не нужны, например. $(this).attr("id") обычно может быть this.id, многие вещи доступны строго на DOM и все еще в браузере.

Когда вы используете его слишком много? Если вам не требуется , иногда вам нужен jQuery для межсерверных селекторов CCS3, иногда вы используете селектор CSS, который уже доступен , помещаем его в таблицу стилей. Существует еще сто примеров, но если вы можете обойтись без кросс-браузера без него, тогда нет необходимости, такие вещи, как выцветание, не будут выполняться тривиально. Если вам вообще нужно включить jQuery, нет причин не использовать .fadeIn() после того, как вы (код был включен, зачем его дублировать?)

JavaScript против JavaScript

Как сказано в комментариях, ваш сайт должен предлагать все основные функции без javascript, это обычно не проблема, например. захват клика и загрузка содержимого через AJAX... если вы его не захватили, они выполняют полную перезагрузку страницы, это легкий откат стандартного поведения. Впрочем, все "колокола и свистки"? Это, конечно, упрямо, но я не думаю, что вам следует наклониться назад, чтобы предложить все функциональность без JavaScript. Пользователь отключил его, они не получили причудливые вещи, это прекрасно... посмотрите на SO в качестве примера, отключите javascript, отключите много несущественных функций, вы можете просматривать только но комментарии, голосование, в основном действия не обязательно доступны без JavaScript.

Ответ 3

Если вы отключите java script в своем браузере, и ваш сайт/приложение не запускается или не выглядит функционально без него, тогда у вас есть проблема.

JS отлично, но он никогда не должен останавливать пользователя от использования того, что вы создали, если он отключен.

Ответ 4

Если это что-то, что легко сделать в CSS, то вырезать jQuery и сделать это в CSS. Таким образом, вы не должны зависеть от выполнения javascript для внешнего вида вашего приложения.

Ответ 5

Вы используете слишком много jQuery, если вы можете установить один атрибут класса вместо атрибутов многого стиля. Например:

/** Select 400 rows and change the background colour **/
$('#table tr').css('backgroundColor', 'blue');

Вместо:

/** jQuery **/
$('#table').addClass('blueRows');

/** CSS **/
#table tr.blueRows {
    background-color: blue;
}

Чтобы избежать стиля jQuery, вы также можете установить класс в тело, чтобы упростить стиль с помощью CSS для браузеров с поддержкой Javascript:

/** jQuery **/
$(document).addClass('JS-enabled');

/** CSS **/
body #table tr{
    background: #FFF;
}

body.JS-enabled #table tr {
    background: blue;
}

Ответ 6

jQuery чаще всего применяется после загрузки документа. Я предполагаю, что если вы можете добиться того же, что и с простым CSS, CSS - это путь. Меньшая загрузка браузера, и если у кого-то нет jQuery, по крайней мере, есть еще (некоторый) стиль из-за CSS.

Ответ 7

Хорошо, не отмечайте меня как тролля...

Если ваше веб-приложение не работает в среде, в которой не включен JavaScript или несовместим с JQuery, просто перейдите к тому, что вам проще всего управлять. Нет никакой пользы от визуальной поддержки приложения, если оно вообще не работает вообще.

Tho, если вы хотите, чтобы он работал позже без поддержки JavaScript, вы должны попытаться использовать css. Но если вы не планируете поддержку без JavaScript, и это работает, идите с тем, что вам просто легче

Ответ 8

Например, я чередую строки строк в таблице или создаю кнопки и ссылки, зависающие с помощью JavaScript/jQuery. Это приемлемо? Или я должен продолжать использовать CSS для такого рода вещей?

Действительно, это зависит от вашей поддержки браузера. Вы можете делать полосатые полосы на таблицах действительно просто с помощью этого кода:

table.classname tr:nth-child(even) td {
  background-color: #ddd;
}

Но это вообще не работает в Internet Explorer (хотя это и должно быть в следующей версии 9). Поэтому, если вам нужно все, чтобы посмотреть один и тот же кросс-браузер, вместо этого используйте jQuery.

Для эффектов зависания ссылок, предполагая, что вы имеете в виду изменения цвета и т.д., а не фантазии анимации, определенно используйте CSS, так как это поддерживается везде.