اشکال در اسکریپت ساعت

sranimation

Member
سلام
اشکال کد جاوااسکریپت که نوشتم چیه که درست کار نمی کنه؟

کد:
<script language="javascript" type="text/javascript">
function timer() {
	var time=new Date();
	var hour=time.getHours();
	var minute=time.getMinutes();
	var second=time.getSeconds();
	if (second<10) {
	second="0"+second
	}
	if (minute<10) {
	minute="0"+minute
	}
	if (hour<10) {
	hour="0"+hour
	}
	var t=hour+":"+minute+":"+second;
	document.getElementById("clock").firstChild.nodeValue=t;
	window.setInterval('timer()',1000);
}
</script>
این کد را در div با ایدی clock قرار دادم
در واقع مشکل اینه که یا درست کار نمیکنه یا وقتی هم که کار میکنه لحظه به لحظه از رم و cpu بیشتری استفاده می کنه!

صفحه کامل با عکس ها:
مشاهده پیوست hattrick.zip
 

farik

Well-Known Member
با سلام...دوست عزيز اين كار شما باعث ايجاد يك حلقه دائمي ميشه نميدونم كه اسم توابع بازگشتي رو شنيدين يا نه ولي شما به طور ناخواسته از اين استفاده كردين و هيچ پاياني هم نداره..شما بايد اينتر وال رو خارج از تابع ست كنين نه داخلش در واع پس از هر 1 ثانيه شما يك بار ديگه اينتروال به كد اضافه ميكنين و مثلا در ثانيه 51 ام 50 بار تابع اجرا ميشه و در ثانيه 501 ام ،500 بار...
خوب اينم كد اصلاح شده:
کد:
function timer() {
	var time=new Date();
	var hour=time.getHours();
	var minute=time.getMinutes();
	var second=time.getSeconds();
	if (second<10) {
	second="0"+second
	}
	if (minute<10) {
	minute="0"+minute
	}
	if (hour<10) {
	hour="0"+hour
	}
	var t=hour+":"+minute+":"+second;
	document.getElementById("clock").innerHTML=t;
	//document.getElementById("clock").firstChild.nodeValue=t;
}
window.setInterval('timer()',1000);
با تشكر TabOTabDesign
 

sranimation

Member
خیلی ممنون.
چرا این قسمت از کد را تغییر دادید؟
کد:
document.getElementById("clock").firstChild.nodeValue=t;
 

farik

Well-Known Member
سلام دوباره..
چون من مستقيم تودايو ميريختم ولي شما تو فرزندش ميريختين و چون واسه من نتيجه كد مهم بود اون قسمت رو تغيير دادم تا بتونم تستش كنم...:wink:
شب خوش
 

جدیدترین ارسال ها

بالا