منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
PAGE CLOSING\UNLOAD Event - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم برمجة وتطوير المواقع (http://vb4arb.com/vb/forumdisplay.php?fid=51)
+--- قسم : قسم ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=52)
+---- قسم : قسم اسئلة ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=53)
+---- الموضوع : PAGE CLOSING\UNLOAD Event (/showthread.php?tid=5779)

الصفحات: 1 2


PAGE CLOSING\UNLOAD Event - H111er - 15-10-12

السلام عليكم اخوواني
انا حاليا اصمم موقع للدردشة ...
و عندما يدخل مستخدم للروم .. فان الموقع يطلب اسمه ليقوم بالمشاركة في الرووم .. و يصبح "اونلاين"
لكن المشكلة هي عندما يقوم بالخروج .. فيفرض ان يقوم الموقع بارسال بيانات للسيرفر تفيد بان هذا المستخدم اصبح الان غير متوفر و اصبح "اوفلاين"
فباختصار انا اريد تنفيذ امر عند الخروج من الصفحة .. و ارسال بيانات للسيرفر في نفس الوقت
تحياتي ....


PAGE CLOSING\UNLOAD Event - Mr. DotNet - 16-10-12

اخي العزيز .. يمكنك ادراج ملف Global.asax واستخدام الـ session


PAGE CLOSING\UNLOAD Event - H111er - 16-10-12

كيف اخي الغالي ؟؟ اتمنى منك ان ترفق مثال بسيط جدا .. فقط يقوم بالاتصال بالسيرفر عند الخروج
شكرا لك اخي Smile


PAGE CLOSING\UNLOAD Event - H111er - 17-10-12

up ........... Sad


PAGE CLOSING\UNLOAD Event - سعود - 17-10-12

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



PAGE CLOSING\UNLOAD Event - H111er - 17-10-12

سعود كتب :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


PAGE CLOSING\UNLOAD Event - سعود - 17-10-12

بل انها تعمل لكن لابد من خطوة في ملف التكوين
كود :
<sessionState mode="InProc" timeout="10" cookieless="false"></sessionState>
تضعها ضمن system.web


PAGE CLOSING\UNLOAD Event - H111er - 17-10-12

شكرا اخي لكن اين اضعها بالضبط ؟


PAGE CLOSING\UNLOAD Event - سعود - 17-10-12

في اي مكان في ملف web.config ضمن system.web
لو حبيت ضعها في نهاية system.web قبل وسم الاغلاق
كود :
</system.web>



PAGE CLOSING\UNLOAD Event - سعود - 17-10-12

الرقم 10 بالدقائق قللها لترى النتيجة بشكل اسرع