Может ли данный js-скрипт грузить браузер?

Добрый день.


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


Код приглагаю, если он действительно грузит, то подскажите, как можно это исправить.


Сам код:
var id;
timer();
start();
function timer(){
	var year = 2013;
	var month = 0; // 0 - январь
	var day = 10;
	var hours = 0;
	var minutes = 0;
	var seconds = 0;
	var needDate = new Date(year, month, day, hours, minutes, seconds);
	var nowDate = new Date();
	var raznDate = needDate.getTime() - nowDate.getTime();
	var leftDays = raznDate/1000/60/60/24 | 0;
	raznDate = raznDate - leftDays*24*60*60*1000;
	var leftHours = raznDate/1000/60/60 | 0;
	raznDate = raznDate - leftHours*60*60*1000;
	var leftMinutes = raznDate/1000/60 | 0;
	raznDate = raznDate - leftMinutes*60*1000;
	var leftSeconds = raznDate/1000 | 0;
	if(leftHours<10){
		leftHours = '0' + leftHours;
	}
	if(leftMinutes<10){
		leftMinutes = '0' + leftMinutes;
	}
	if(leftSeconds<10){
		leftSeconds = '0' + leftSeconds;
	}
	document.getElementById('daysData').innerHTML = leftDays;
	document.getElementById('hoursData').innerHTML = leftHours;
	document.getElementById('minutesData').innerHTML = leftMinutes;
	document.getElementById('secondsData').innerHTML = leftSeconds;
}

function start(){
	id = setInterval('timer()',1000);
}
  • Вопрос задан
  • 3372 просмотра
Решения вопроса 1
demimurych
@demimurych
При беглом просмотре ничего того что заметно грузило бы бракзер я не увидел.
ВЫ можете открыть тот же гугул хром, и открыть в нем диспетчер задач (Настройки-> Инструменты -> Диспетчер задач) и посмотреть в нем нагрузку которую создает таб с вашим скриптом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
По идее грузить не должно, но в любом случае можно воспользоваться профайлером. Например jsfiddle.net/k4kwP/4/, данный пример позволяет сравнить время пустой функции empty, время логики logic, время записи в dom writeDom, время записи в dom один раз вместо 4ех writeDomOnce и время которое требуется всей Вашей функции timer. Можно заметить, что основное время идет на записть в дом (возможно лучше не 4е раза писать в dom, а один). Для меня профайлеры помогают найти наиболее медленный код, для одной функции он достаточно бесполезен, можно прогнать весь Ваш код, возможно ошибка не в данной функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы