צפיות
תשובות
שלום לכולם…
יש לי שאלה כזאת אני מבצע את הקוד הבא :
function CheckTime(gamecode,gametype)
{
setTimeout(ShowReturnValue(gamecode,gametype),5000)
}
function ShowReturnValue(gamecode,gametype)
{
var GetGameStartEnd = GetXmlResponse('gamecode=' + gamecode + ' ' + gametype,true)
var GetValue = GetGameStartEnd.split('n')
if (GetValue[0].length == 6)
{
clearTimeout() CheckTime(gamecode,gametype)
}
if (GetValue[0].length == 5)
{
clearTimeout()
window.location.reload()
}
}
function GetXmlResponse(gamecode,bText)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST","http://localhost/CardsGame/CheckGameUsers.aspx",false);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(gamecode);
return(bText?xmlhttp.responseText:xmlhttp.responseXML)
}
ואני מקבל שגיאה כזאת :
out of memory at line : 37
למה זה קורה ??
בתודה איתי.
7 תשובות
אני לא רואה
את שורה 37 בקוד שכתבת (אין אפילו שורה 30)..
מה זו שורה 37 בקוד שלך?
תראה אני אסביר קצת יותר
אני מבצע קריאה לדף אחר דרך xmlhttp ומוציא ממנו ערך שבודק האם שני אנשים נכנסו לדף מסוים במערכת…
העניין הוא שאני מפעיל settimeout שבעצם מפעיל פונקציה כל 5 שניות שבודרת האם היוזרים נכנסו…
ומה שקורה הוא זורק לי error out of memory
בגלל שהוא רץ בלולאה אין סופית עד שמשתמש אחר מגיע…
האם הקוד שלי נכון ומה יכול להיות הבעיה…??
בתודה איתי.
אבל למה כל 5 שניות?
ניסית במקרה אולי כל דקה או יותר?
ניסית וזה עדיין
זורק את אותה שגיאה…
בתודה איתי.
אתה יכול לעזור לי במשהו אחר…
איך אני מפעיל timer בצד הלקוח..?
אבל בצורה אוטומטית בלי לחיצה על כפתור…
אני ביצעתי בהעלת דף שיקפוץ לפונקציה ואז הוא מפעיל את ה – timer…
בנוסף האם :
settimeout היא פונקציה טובה של timer
בתודה איתי.
מישהו יודע
איך אני קורא לפונקציה ב – asp.net או asp מ – javascript ??
בתודה איתי.
setTimeout מול setInterval….
setTimeout היא פקודה שמגדירה השהיה מסויימת לפני ביצוע פעולה.
setInterval, לעומתה, מגדירה שפעולה תתבצע כל X זמן.
המסקנה: בשביל לבצע משהו כל X זמן יש להשתמש ב setInterval ולא ב setTimeout.
בשביל לבצע משהו פעם אחת עם השהיה, יש להשתמש ב setTimeout.
בכל מקרה צריך לבצע clearTimeout או clearInterval בהתאמה…