2012-02-14 2 views
0

Мне просто интересно больше всего ... Мне нужно условно скрыть элемент в зависимости от свойства. Я мог бы сделать это с основной JavaScript:мнения - напишите простой javascript или просто используйте jQuery?

document.getElementById('business_option').style.visibility = 'hidden'; 
document.getElementById('business_option').style.height = '0px'; 

или сделать то же самое с JQuery:

$("#business_option").css("visibility", "hidden").css("height", "0px"); 

Что бы люди идут сюда? Я понимаю, что чистый JS, вероятно, будет выполняться чуть быстрее, чем jQuery, но jQuery более краток и быстрее писать! Неужели плохая практика становится чрезмерно зависимой от jQuery? Должны ли вы все-таки написать немного javascript на таких ocasions? Или просто проще писать более сжатый бит jQuery?

Или кто-нибудь даже заботится ?! :-)

+0

является то, что только код JavaScript, который работает на этой странице? –

+4

Если вы хотите скрыть элементы, было бы лучше поместить 'display: none' вместо того, чтобы изменять как видимость, так и высоту –

+2

Если у вас есть jquery на странице, это позор, чтобы не использовать его. –

ответ

3

Если это единственная цель вашей страницы, вы, возможно, придерживаетесь чистой JS, но я действительно рекомендую использовать jQuery для выполнения этой задачи.
Потому что jQuery предлагает множество способов манипулировать контентом, а его называемый write less делает больше libary по какой-либо причине ;-) Вы также можете добавить эффекты к вашим методам скрытия и шоу!
Прочитайте это так, вопрос может быть, тоже:

+0

спасибо за ввод. Никаких эффектов здесь не требуется - буквально иногда показывать элемент, но не показывать его в других случаях - в зависимости от того, как вы попали на страницу. Я получаю, насколько полезен jQuery в целом, но просто интересно, если он перестал убивать какие-то тривиальные фрагменты кода. – geoid

1

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

Так что мое решение:

.invis{ 
visibility: hidden; 
height: 0px; 
} 

$('#business_option').addClass('invis'); 

Мой номер 1 правило для исполнения: Worry об этом после того, как его медленно, не тратьте время, пытаясь сделать что-то, что не замедлит быстрее. Это слишком дорого. Сначала следует очистить код.

Помимо переключения класса в этом случае происходит намного быстрее, чем редактирование js-> css, поскольку оно позволяет избежать избыточных переходов. и объект стиля фактически не существует, его созданный, когда вы «получаете» его (afaik).

+1

wow ... ужасная грамматика, просто прочитайте ее сейчас –

2

На мой взгляд, это зависит от ряда факторов:

  • целевые браузеры вы разрабатываете для
  • если производительность имеет решающее значение для вашего веб-приложения

Браузеры

Если вы разрабатываете веб-сайт для широкого спектра старых и новых браузеров, сила jQuery заключается в том, чтобы использовать многие sma ll различия в поведении браузера.Вам не нужно запоминать и применять все трюки для поддержки изменения CSS в более старом IE, jQuery выйдет из-под контроля.

Performance

Наоборот, на последних мобильных устройств, вы можете рассчитывать на то, что браузеры соответствуют последним стандартам и идти для чистого осуществления JS. Даже даже на мобильных устройствах ситуация неизбежна, с появлением новых браузеров, префиксов поставщиков и т. Д.

О производительности, работы jQuery удовлетворяют почти каждый веб-сайт без каких-либо проблем. Когда дело доходит до веб-приложений, с довольно большим количеством данных и эффектами глазных конфет, тогда вам, вероятно, хотелось бы оптимизировать самые дорогие части кода, используя чистую JS. Или полностью избавиться от jQuery. Это особенно верно для мобильных устройств, в которых вычислительные ресурсы ограничены по сравнению с настольными.

Говоря о производительности, вот лучший способ, чтобы написать свой код :)

// Accessing the DOM is expensive, let's limit it to a single call 
var business_option_style = document.getElementById('business_option').style; 
business_option_style.visibility = 'hidden'; 
business_option_style.height = '0px'; 

и

// Single function call 
$("#business_option").css({ 
    "visibility": "hidden", 
    "height": 0 
}); 
+0

@Roderich спасибо за редактирование, я не знал, что доступ к стилю несколько раз был дороже, чем кеширование. Я проверил его быстро здесь http://jsfiddle.net/qtdvk/ – Davide