Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-webkit-transform: translate3d(100px, 100px, 0px);
-webkit-transition: -webkit-transform 0.5s ease;
На собственном опыте убедился, что $(document.getElementById('foo')) гораздо лучше чем $('#foo')
var time = new Date().getTime();
var div;
for(i = 0; i < 1000000; i++){
//div = $(document.getElementById('select_me'));
div = $('#select_me');
div = null;
}
var new_time = new Date().getTime();
alert(new_time - time);
//div = $(document.getElementById('select_me')) => 659
//div = $('#select_me') => 924
924 - 659 = 265265 / 1000000 = 0.000265необходимо использовать либо margin, либо padding, либо leftБыстрее всего это делать трансформациями (CSS transform translate). В старых MSIE не работает, конечно.
Итак: для того, чтобы ваша страница могла начать отрисовку как можно быстрее, размещайте стили наверху. Чтобы избежать блокировки загружаемых ресурсов, размещайте скрипты внизу.Заключение о расположении стилей и скриптов :)
Особенно IE7 и IE8, которые до сих пор востребованы
</body>. Это позволяет обойтись без $(document).ready(function() { /* ... */ });, который преврашает асинхронный JS в исполняемый последовательно.который преврашает асинхронный JS в исполняемый последовательно
$(document).ready() встают в очередь и исполняются последовательно. Каждый последующий вызов не будет выполнен, если предыдущий не завершился (return). Если предыдущий вызов завершился, а, например, бросил исключение, последующие $(document).ready() вообще не сработают.$(document).ready(), т. к. он будет заторможен безо всякой нужды.$(document).ready(function(){
$.ajax({
url: 'ajax.php',
success: function(data) {
$('#foo').text(data);
}
});
});
$.ajax({
url: 'ajax.php',
success: function(data) {
$(document).ready(function(){
$('#foo').text(data);
});
}
});
// antipattern
// create and append your element
$(document.body).append("<div class='baaron' />");
// requery to bind stuff
$("div.baaron").click(function () {...});
// preferred
// swap to appendTo to hold your element
$("<div class='baaron' />")
.appendTo(document.body)
.click(function () {...});
Для выбора первых, последних или определённых элементов используйте .first(), .last(), .eq( index )
$('.class:first-child') работает заметно быстрей чем $('.class').first()<head>, вы вынуждены использовать $(document).ready(function() { /* ... */ });. Это, конечно, гарантирует, что пользователь не увидит неинтерактивного HTML, но появляется другая проблема: асинхронный JS превращается в исполняемый последовательно.часто выгоднее иметь весь js код инлайном внутри страницы
главная страница google где почти 80% кода страницы именно inline js
Статья будет интересна новичкам JS и jQuery
В код скрипты эмбеддят
Оптимизация JavaScript и jQuery из-под HTML и CSS при разработке сайта