Я пытаюсь оптимизировать некоторый базовый сценарий jquery, который пересекает и скрывает/показывает некоторые неупорядоченные списки.Javascript performance: Caching vs No Caching - weird results
Вот TestCase в JSPerf: http://jsperf.com/caching-vs-no-caching
Я запустить тест в двух браузерах: Chrome и IE7/IE8 и удивительно кэшируются случай медленнее - по чуть-чуть, но до сих пор.
неоптимизированная версия:
(function($) {
$.fn.menuManipulation = function() {
this.parents().show();
};
})(jQuery);
$('.menu-vertical li.selected').menuManipulation();
$(".menu-vertical li.selected > ul.static").show();
$('li.static').has('ul').addClass("with-child");
и кэшируются один:
(function($) {
$.fn.menuManipulation = function() {
this.parents().show();
};
})(jQuery);
var menu = $('.menu-vertical');
menu.find('li.selected').menuManipulation();
menu.find('li.selected > ul.static').show();
menu.find('li.static').has('ul').addClass("with-child");
Может кто-нибудь объяснить, что я делаю неправильно и почему кэшированные версии кажутся медленнее?
Я бы рискнул предположить, что преимущество, которое вы получаете из кешированной версии, не перевешивает накладные расходы на кеширование данных, поэтому требуется больше времени для сбора и хранения всех данных для целей кеширования, чем это делает для получения и возврата определенных данных, которые вы хотите использовать для не кэшированной версии. – taz