منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : PAGE CLOSING\UNLOAD Event
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوواني
انا حاليا اصمم موقع للدردشة ...
و عندما يدخل مستخدم للروم .. فان الموقع يطلب اسمه ليقوم بالمشاركة في الرووم .. و يصبح "اونلاين"
لكن المشكلة هي عندما يقوم بالخروج .. فيفرض ان يقوم الموقع بارسال بيانات للسيرفر تفيد بان هذا المستخدم اصبح الان غير متوفر و اصبح "اوفلاين"
فباختصار انا اريد تنفيذ امر عند الخروج من الصفحة .. و ارسال بيانات للسيرفر في نفس الوقت
تحياتي ....
اخي العزيز .. يمكنك ادراج ملف Global.asax واستخدام الـ session
كيف اخي الغالي ؟؟ اتمنى منك ان ترفق مثال بسيط جدا .. فقط يقوم بالاتصال بالسيرفر عند الخروج
شكرا لك اخي Smile
up ........... Sad
Global.asax
فيها عدة احداث حتما ان اطلعت عليها ستعرفها تلقائيا انظر للملف لدي
كود :
<%@ Application Language="VB" %>

<script runat="server">


    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs on application startup
        Application("activeuser") = 0


    End Sub
    
    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs on application shutdown
    End Sub
        
    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when an unhandled error occurs
    End Sub


    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when a new session is started
        Session("start") = DateTime.Now


        Application.Lock()
        Application("activeuser") = Convert.ToInt32(Application("activeuser")) + 1
        Application.UnLock()


    End Sub


    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when a session ends.
        ' Note: The Session_End event is raised only when the sessionstate mode
        ' is set to InProc in the Web.config file. If session mode is set to StateServer
        ' or SQLServer, the event is not raised.
        Application.Lock()
        Application("activeuser") = Convert.ToInt32(Application("activeuser")) - 1
        Application.UnLock()


    End Sub
      
</script>

وضمن حدث تحميل الصفحة الرئيسية
كود :
If Not IsPostBack Then            Dim i As Integer = Convert.ToInt32(Application("activeuser"))
            ' Response.Write("عدد الزوار الان: " & i.ToString())
            ' Application("activeuser") += 1
            visit.InnerText = "عدد الزوار الان: " & i.ToString


        End If
سعود كتب :Global.asax
فيها عدة احداث حتما ان اطلعت عليها ستعرفها تلقائيا انظر للملف لدي
كود :
<%@ Application Language="VB" %>

<script runat="server">


    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs on application startup
        Application("activeuser") = 0


    End Sub
    
    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs on application shutdown
    End Sub
        
    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when an unhandled error occurs
    End Sub


    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when a new session is started
        Session("start") = DateTime.Now


        Application.Lock()
        Application("activeuser") = Convert.ToInt32(Application("activeuser")) + 1
        Application.UnLock()


    End Sub


    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when a session ends.
        ' Note: The Session_End event is raised only when the sessionstate mode
        ' is set to InProc in the Web.config file. If session mode is set to StateServer
        ' or SQLServer, the event is not raised.
        Application.Lock()
        Application("activeuser") = Convert.ToInt32(Application("activeuser")) - 1
        Application.UnLock()


    End Sub
      
</script>

وضمن حدث تحميل الصفحة الرئيسية
كود :
If Not IsPostBack Then            Dim i As Integer = Convert.ToInt32(Application("activeuser"))
            ' Response.Write("عدد الزوار الان: " & i.ToString())
            ' Application("activeuser") += 1
            visit.InnerText = "عدد الزوار الان: " & i.ToString


        End If

شكرا اخي العزيز سعود .. لكن المشكلة انها تنفذ فقط عند دخول المستخدم و لا يتم تنفيذ اي شيء عند خروجه Sad
اتمنى منك ان تنظر الى المشروع و ان تقوم بالتعديل عليه اذا كنت قد اخطأت بشيء
شكرا مرة اخرى
http://vb4arb.com/vb/uploaded/65_11350468488.rar
بل انها تعمل لكن لابد من خطوة في ملف التكوين
كود :
<sessionState mode="InProc" timeout="10" cookieless="false"></sessionState>
تضعها ضمن system.web
شكرا اخي لكن اين اضعها بالضبط ؟
في اي مكان في ملف web.config ضمن system.web
لو حبيت ضعها في نهاية system.web قبل وسم الاغلاق
كود :
</system.web>
الرقم 10 بالدقائق قللها لترى النتيجة بشكل اسرع
الصفحات : 1 2