534
צפיות
צפיות
11
תשובות
תשובות
שאלה
אני מעוניין לספור את הזמן שנמצא גולש מסויים בדף מסויים באתר. (אני לא מעוניין לעשות את זה עם global.asa בגלל שאז זה ישפיע על כל דפי האתר ואני רוצה את זה רק לדף המסויים- תקנו אותי אם אני טועה).
אז אני לוקח את זמן ההתחלה:
startTime = Timer 'הזמן שחלף מחצות
אך כיצד אני יכול למצוא את זמן הסיום (בעת שהאדם עוזב את הדף) ולהכניס את חיסור הזמנים למסד?
ניר
11 תשובות
משהו כזה
<html>
<head>
<script type="text/javascript">
var sTime=new Date()
onunload = function(){
var eTime = new Date()
var tTime = (eTime.getSecond()+1)-(sTime.getSecond+1)
/*
here your xmlhttp code
*/
}
</script>
</head>
<body>
</body>
</html>
על XMLHTTP תוכל ללמוד במדור JS מאמרים למתקדמים
להבהרה
היתחלנו משתנה מסוים שמכיל בתוכו את הזמן הנוכחי
יצרנו אירוע יציאה מהעמוד (onunload) שיתפקד כפונקציה
ובפונקציה אנו מאתחלים משתנה נוסף שיכיל את הזמן הנוכחי(בעת יציאה מהעמוד)
לאחר מכן מציבים בעוד משתנה את הפרש השניות בין שני המשתנים הקודמים שיצרנו.
בבעזרת xmlhttp אתה יכול לשלוח את המשתנה הזה לעמוד ASP שיכניס את הנתונים למסד
ולאחר מכן המשתמש יוצא מהאתר
תודה! אני אנסה
עשיתי משהו כזה וזה עושה שגיאה
אל תצחקו כי אני לא מבין הרבה בצד לקוח javascript:
<html>
<head>
<title>סקריפט זמן- ניסיון</title>
<script type="text/javascript">
var sTime=new Date()
onunload = function(){
var eTime = new Date()
var tTime = (eTime.getSecond()+1)-(sTime.getSecond+1)
var xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP");
xmlhttp.Open("POST","timesys.asp?time=" + tTime + "&msgnum=5",false);
xmlhttp.Send();
}
</script>
</head>
<body>
</body>
</html>
"הקוד עושה שגיאה על שורה 7 בטענה שהאובייקט אינו תומך במאפיין או בפעולת שירות אלה".
האם דבר ראשון הקוד מבצע את מה שהתכוונתי? מהי השגיאה שמתרחשת?
למה יש בסוף { ?
נקה את האובייקט xmlHTTP בסיום הפעולה של השליחה.
צרף את השגיאה.
לנקות את האובייקט משווים אותו ל-0?
והשגיאה היא:
"אירעה שגיאת זמן ריצה.
שורה:7
שגיאה: האובייקט אינו תומך במאפיין או בפעולת שירות אלה"
כי יש פונקציה
onunload = function(){
}
אי מניח שזה קרה
השגיאה היית ב-getSeconds כי אני כתבתי getSecond בטעות ואין פונקציה כזו
בכל מקרה – זה עבד לי:
var sTime=new Date()
onunload = function(){
var eTime = new Date()
var tTime = (eTime.getSeconds()+1)-(sTime.getSeconds()+1)
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
xmlHttp.Open("POST","timesys.asp?msgnum=5&rand="+Math.random(),false)
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(tTime)
delete xmlHttp;xmlHttp=null; // clean the object
}
צור גם את הקובץ timesys.asp לפני שאתה מפעיל את הסקריפט הזה כי אחרת תופיע לך שגיאה על כתובת שלא בוצעה או משהו כזה :-/
בהצלחה
תודה!
עזרה!!!!
אני לא יודעאיך בונים פורום
חבל