دروس ASP

الصفحة الرئيسية ASP

دروس الفسفور الابيض

مقدمة صفحات الويب صفحات الويب الحلاقة تخطيط صفحات الويب مجلدات صفحات الويب صفحات الويب العالمية نماذج صفحات الويب كائنات صفحات الويب ملفات صفحات الويب قواعد بيانات صفحات الويب مساعدي صفحات الويب WebPages WebGrid مخططات صفحات الويب البريد الإلكتروني لصفحات الويب أمن صفحات الويب نشر صفحات الويب أمثلة على صفحات الويب فئات صفحات الويب

ASP.NET Razor

مقدمة الحلاقة تركيب الشفرة المتغيرات Razor C # حلقات موس الحلاقة C # Razor C # المنطق متغيرات Razor VB حلقات الحلاقة VB Razor VB Logic

كلاسيك ASP

مقدمة ASP بناء جملة ASP متغيرات ASP إجراءات ASP شروط ASP حلقات ASP نماذج ASP ملفات تعريف الارتباط ASP جلسة ASP تطبيق ASP تضمين ASP # ASP Global.asa ASP أياكس البريد الإلكتروني ASP أمثلة على ASP

مرجع ASP

وظائف ASP VB كلمات رئيسية ASP VB استجابة ASP طلب ASP تطبيق ASP جلسة ASP خادم ASP خطأ ASP نظام ملفات ASP ASP TextStream محرك ASP ملف ASP مجلد ASP قاموس ASP أدروتور ASP متصفح ASP ربط محتوى ASP محور دوار للمحتوى ASP المرجع السريع ASP

برنامج ADO التعليمي

مقدمة ADO اتصال ADO مجموعة سجلات ADO عرض ADO استعلام ADO نوع ADO إضافة ADO تحديث ADO حذف ADO عرض ADO تسريع ADO

كائنات ADO

أمر ADO اتصال ADO خطأ ADO حقل ADO معلمة ADO خاصية ADO سجل ADO مجموعة سجلات ADO دفق ADO أنواع بيانات ADO

كائن جلسة ASP


يقوم كائن الجلسة بتخزين معلومات حول أو تغيير الإعدادات لجلسة مستخدم.


كائن الجلسة

عندما تعمل مع تطبيق على جهاز الكمبيوتر الخاص بك ، تقوم بفتحه وإجراء بعض التغييرات ثم إغلاقه. هذا يشبه إلى حد كبير الجلسة. الكمبيوتر يعرف من أنت. إنه يعرف متى تفتح التطبيق ومتى تغلقه. ومع ذلك ، هناك مشكلة واحدة على الإنترنت: خادم الويب لا يعرف من أنت وماذا تفعل ، لأن عنوان HTTP لا يحتفظ بالحالة.

يحل ASP هذه المشكلة عن طريق إنشاء ملف تعريف ارتباط فريد لكل مستخدم. يتم إرسال ملف تعريف الارتباط إلى كمبيوتر المستخدم ويحتوي على معلومات تحدد هوية المستخدم. هذه الواجهة تسمى كائن Session.

يقوم كائن Session بتخزين معلومات حول أو تغيير الإعدادات لجلسة مستخدم.

تحتوي المتغيرات المخزنة في كائن Session على معلومات حول مستخدم واحد ، وهي متاحة لجميع الصفحات في تطبيق واحد. المعلومات الشائعة المخزنة في متغيرات الجلسة هي الاسم والمعرف والتفضيلات. يقوم الخادم بإنشاء كائن Session جديد لكل مستخدم جديد ، ويتخلص من كائن Session عند انتهاء صلاحية الجلسة.


متى تبدأ الجلسة؟

تبدأ الجلسة عندما:

  • يطلب مستخدم جديد ملف ASP ، ويتضمن الملف Global.asa إجراء Session_OnStart
  • يتم تخزين القيمة في متغير الجلسة
  • يطلب المستخدم ملف ASP ، ويستخدم الملف Global.asa علامة <object> لإنشاء مثيل لكائن بنطاق جلسة

متى تنتهي الجلسة؟

تنتهي الجلسة إذا لم يطلب المستخدم أو يحدّث صفحة في التطبيق لفترة محددة. بشكل افتراضي ، هذه 20 دقيقة.

إذا كنت تريد تعيين فاصل زمني أقصر أو أطول من الافتراضي ، فاستخدم خاصية المهلة .

يعيّن المثال أدناه مهلة زمنية مدتها 5 دقائق:

<%
Session.Timeout=5
%>

استخدم طريقة التخلي لإنهاء الجلسة على الفور:

<%
Session.Abandon
%>

ملاحظة: المشكلة الرئيسية في الجلسات هي متى يجب أن تنتهي. لا نعرف ما إذا كان آخر طلب للمستخدم هو الأخير أم لا. لذلك لا نعرف إلى متى يجب أن نبقي الجلسة "حية". يستخدم الانتظار لفترة طويلة لجلسة خاملة الموارد الموجودة على الخادم ، ولكن إذا تم حذف الجلسة في وقت قريب جدًا ، فيجب على المستخدم البدء من جديد لأن الخادم قام بحذف جميع المعلومات. قد يكون العثور على الفاصل الزمني المناسب للمهلة أمرًا صعبًا!

نصيحة: قم فقط بتخزين كميات صغيرة من البيانات في متغيرات الجلسة!



تخزين واسترجاع متغيرات الجلسة

أهم شيء في كائن Session أنه يمكنك تخزين المتغيرات فيه.

المثال أدناه سيعيّن اسم مستخدم متغير الجلسة على "Donald Duck" وعمر متغير الجلسة على "50":

<%
Session("username")="Donald Duck"
Session("age")=50
%>

عندما يتم تخزين القيمة في متغير جلسة يمكن الوصول إليها من أي صفحة في تطبيق ASP:

Welcome <%Response.Write(Session("username"))%>

يعود السطر أعلاه: "مرحبًا ب دونالد داك".

يمكنك أيضًا تخزين تفضيلات المستخدم في كائن Session ، ثم الوصول إلى هذا التفضيل لاختيار الصفحة التي سيتم إرجاعها إلى المستخدم.

يحدد المثال أدناه نسخة نصية فقط من الصفحة إذا كان المستخدم لديه دقة شاشة منخفضة:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

إزالة متغيرات الجلسة

تحتوي مجموعة المحتويات على جميع متغيرات الجلسة.

من الممكن إزالة متغير جلسة باستخدام طريقة Remove.

يزيل المثال أدناه متغير الجلسة "sale" إذا كانت قيمة متغير الجلسة "age" أقل من 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

لإزالة جميع المتغيرات في الجلسة ، استخدم طريقة RemoveAll:

<%
Session.Contents.RemoveAll()
%>

حلقة من خلال مجموعة المحتويات

تحتوي مجموعة المحتويات على جميع متغيرات الجلسة. يمكنك إجراء حلقة عبر مجموعة المحتويات ، لمعرفة ما تم تخزينه فيها:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

نتيجة:

username
age

إذا كنت لا تعرف عدد العناصر في مجموعة المحتويات ، فيمكنك استخدام خاصية العدد:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

نتيجة:

Session variables: 2
Donald Duck
50

حلقة من خلال مجموعة StaticObjects

يمكنك إجراء حلقة عبر مجموعة StaticObjects لرؤية قيم جميع الكائنات المخزنة في كائن Session:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>