Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2012, 23:26
Аспирант
Отправить личное сообщение для Gamestop Посмотреть профиль Найти все сообщения от Gamestop
 
Регистрация: 25.05.2011
Сообщений: 93

Помогите оптимизировать этот код
$(document).ready(function(){

		var items = $(".item")
		//items = items.children
		//alert(items.length)
	for(var i = 1; i < items.length + 1; i++)
	{
		(function(i){
		var stock_timer = setInterval(function(){
	
		var days = $("#days_" + i).text()
		var hours = $("#hours_" + i).text()
		var minutes = $("#mins_" + i).text()
		var seconds = $("#secs_" + i).text()
		if(seconds <= 0)
		{
			minutes = minutes - 1
			if( minutes <= 10)
			{
				$("#mins_" + i).text("0" + minutes)
			}
			else
			{
				$("#mins_" + i).text(minutes)
			}
			if(minutes <= 0)
			{
			hours = hours - 1
			if(hours < 10)
			{
				$("#hours_" + i).text("0" + hours);
			}
			else
			{
				$("#hours_" + i).text("0" + hours);
			}
			minutes = 59;
			$("#mins_" + i).text(minutes)
		
			}
			if(hours <= 0)
			{
			days = days - 1
			$("#days_" + i).text(days)
			hours = 24;
			$("#hours_" + i).text(hours)
		
			}
			seconds = 59;
			$("#secs_" + i).text(seconds)
		}
		else
		{
			seconds = seconds - 1;
				if( seconds < 10)
				{
					$("#secs_" + i).text("0" + seconds)
				}
				else
				{
					$("#secs_" + i).text(seconds)
				}
		}

		if(seconds <= 0 && minutes <= 0 && hours <= 0 && days <= 0)
		{
			clearInterval(stock_timer);
			$("#timer_" + i).hide(function(){
			
				$(this).text("Акция закончилась");
				$(this).show(5000);
			
			
			})
		}
		}, 1000)
	}(i))
	}
});


Скажите пожалуйста достаточно-ли этот кода быстродействинен???

таким способом я запускаю таймер для каждого элемента

перерыл кучу скриптов в инете, что-то долго мучался, решил это написать, но теперь переживаю что код недостаточно хорош, есть какой-нибудь способ ускорить выполнение этого кода??

если кто может предложить лучше вариант, но тока с этим кодом буду благодарен!!!
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2012, 23:33
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

поменьше $. вообще, они должны встречаться только в одном месте - в начале, где они ищут элементы и сохраняют их в переменных.

заместо поиска элементов заново кешируйте их в переменных.
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2012, 13:54
Аспирант
Отправить личное сообщение для Gamestop Посмотреть профиль Найти все сообщения от Gamestop
 
Регистрация: 25.05.2011
Сообщений: 93

Извините, но что такое "заного кешируйте их в переменных"??, я непонял честно, я незнаю как кешировать переменные, обьясните пожалуйста или покажите, мне-же ведь нужно постоянно подставлять значения, как сделать поменьше $. ??
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2012, 14:02
Аспирант
Посмотреть профиль Найти все сообщения от Даша Соколова
 
Регистрация: 18.01.2012
Сообщений: 58

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

$() делает поиск по селекторам, а это вычисления. Если один раз найти, и положитьв переменную, а потом уже обращаться к переменной то поиска происходить уже не будет, в переменной сразу будет лежать ссылка на область в памяти которая нам нужна.
Суть в том чтобы класть результат функции $() в какую нить переменную а потом работать с этой переменной.


для совсем маленьких напишу пример

var q = $('#fdf')
и теперь работаем через q
q.css() и.т.п.

Последний раз редактировалось Даша Соколова, 20.01.2012 в 14:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающие списки. Помогите подправить код. cardsmoney Элементы интерфейса 6 18.02.2011 16:20
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Помогите код оптимизировать. Suharik Events/DOM/Window 2 27.05.2010 11:59
Помогите оптимизировать скрипт смены изображений с анимацией Khmelevsky Элементы интерфейса 5 06.03.2010 19:02
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52