שלח תשובה

זירת השאלות

534
צפיות
11
תשובות

שאלה

,‏ 14 ביולי, 2004

אני מעוניין לספור את הזמן שנמצא גולש מסויים בדף מסויים באתר. (אני לא מעוניין לעשות את זה עם global.asa בגלל שאז זה ישפיע על כל דפי האתר ואני רוצה את זה רק לדף המסויים- תקנו אותי אם אני טועה).

אז אני לוקח את זמן ההתחלה:


startTime = Timer 'הזמן שחלף מחצות


אך כיצד אני יכול למצוא את זמן הסיום (בעת שהאדם עוזב את הדף) ולהכניס את חיסור הזמנים למסד?

ניר

תגיות:

11 תשובות

  1. ניר טייב הגיב:

    משהו כזה


    <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 מאמרים למתקדמים

  2. ניר טייב הגיב:

    להבהרה
    היתחלנו משתנה מסוים שמכיל בתוכו את הזמן הנוכחי
    יצרנו אירוע יציאה מהעמוד (onunload) שיתפקד כפונקציה
    ובפונקציה אנו מאתחלים משתנה נוסף שיכיל את הזמן הנוכחי(בעת יציאה מהעמוד)
    לאחר מכן מציבים בעוד משתנה את הפרש השניות בין שני המשתנים הקודמים שיצרנו.
    בבעזרת xmlhttp אתה יכול לשלוח את המשתנה הזה לעמוד ASP שיכניס את הנתונים למסד
    ולאחר מכן המשתמש יוצא מהאתר

  3. נירnir הגיב:

    עשיתי משהו כזה וזה עושה שגיאה
    אל תצחקו כי אני לא מבין הרבה בצד לקוח 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 בטענה שהאובייקט אינו תומך במאפיין או בפעולת שירות אלה".

    האם דבר ראשון הקוד מבצע את מה שהתכוונתי? מהי השגיאה שמתרחשת?

  4. Deviation הגיב:

    למה יש בסוף { ?
    נקה את האובייקט xmlHTTP בסיום הפעולה של השליחה.

    צרף את השגיאה.

  5. נירnir הגיב:

    לנקות את האובייקט משווים אותו ל-0?
    והשגיאה היא:
    "אירעה שגיאת זמן ריצה.
    שורה:7
    שגיאה: האובייקט אינו תומך במאפיין או בפעולת שירות אלה"

  6. ניר טייב הגיב:

    אי מניח שזה קרה
    השגיאה היית ב-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 לפני שאתה מפעיל את הסקריפט הזה כי אחרת תופיע לך שגיאה על כתובת שלא בוצעה או משהו כזה :-/

    בהצלחה

  7. ishaygr הגיב:

    עזרה!!!!
    אני לא יודעאיך בונים פורום

שלח תשובה