عنصر Session ASP

Session對象用於存儲用戶的信息。存儲於session對象中的變量持有單一用戶的信息,並且對於一個應用程序中的所有頁面都是可用的。

Session對象

當您操作某個應用程序時,您打開它,做些改變,然後將它關閉。這很像一次對話(Session)。計算機知道你是誰。它清楚你在何時打開和關閉應用程序。但是在因特網上有一個問題:由於HTTP地址無法存留狀態,web服務器不知道你是誰以及你做了什麼。

ASP通过为每位用户创建一个唯一的cookie的方式解决了这个问题。cookie被传送至客户端,它含有可识别用户的信息。这种接口被称作Session对象。

سیسٹم وار اکائی استعمال کیا جاتا ہے تاکہ استعمال کنندہ کی معلومات کو ذخیرہ کیا جائے یا ایک استعمال کنندہ کی سیسٹم وار تبدیلیوں کا تعین کیا جائے۔ سیسٹم وار اکائی میں ذخیرہ کی گئی متغیر ایک استعمال کنندہ کی معلومات رکھتی ہیں اور اسپلیکیشن کی تمام ویب پیجوں میں استعمال کی جاسکتی ہیں۔ سیسٹم وار اکائی میں ذخیرہ کی گئی معلومات عام طور پر نام، آئی ڈی اور پارامترات کی شکل میں آتی ہیں۔ سرور ہر نئے استعمال کنندہ کیلئے ایک نئی سیسٹم وار قائم کرتا ہے اور سیسٹم وار کی مدت کا خاتمہ ہونے پر اس سیسٹم وار اکائی کو ختم کردا ہے۔

سیسٹم وار کیوں شروع ہوتا ہے؟

سیسٹم وار کیوں شروع ہوتا ہے؟

  • جب کسی نئے استعمال کنندہ نے ایک ایس پی فائل کی درخواست دی اور گلوبل اے ایس اے فائل میں سیسٹم وار کے شروع کئے جانے کا کوڈ استعمال کردا ہے تو؛
  • جب کسی کچھ کو سیسٹم وار متغیر میں ذخیرہ کیا جاتا ہے تو؛
  • جب کسی استعمال کنندہ نے ایک ایس پی فائل کی درخواست دی اور گلوبل اے ایس اے میں <object> نمبر کے ذریعے سیسٹم وار کے سائکپ کے ذریعے کسی اکائی کو نمائش کردا ہے تو؛

سیسٹم وار کیوں ختم ہوتا ہے؟

اگر استعمال کنندہ مقررہ وقت کے اندر اسپلیکیشن میں درخواست یا ویب پیج کو تازہ کردیا نہیں تو سیسٹم وار ختم ہوجائے گا۔ مقررہ مقدار 20 منٹ ہے۔

اگر آپ چاہتے ہیں کہ وقت گزاری کا عرصہ بڑا یا چھوٹا رکھنا چاہئیے تو اس کو سیٹ کریں سکتے ہیں، Timeout خصوصیت.

درج ذیل مثال میں 5 منٹ کا وقت گزاری کا عرصہ سیٹ کردا گیا ہے:

<%
Session.Timeout=5
%>

سیسٹم وار کو فوری طور پر ختم کرنا چاہئیے تو استعمال کریں: Abandon طریق:

<%
Session.Abandon
%>

توجہ:سیسٹم وار استعمال میں اکثر مسئلہ یہ ہوتا ہے کہ وہ کیوں ختم ہونا چاہئیے۔ آپ نہیں جانتے کہ استعمال کنندہ کی حالیہ درخواست آخری درخواست ہو یا نہیں، لہذا آپ نہیں جانتے کہ سیسٹم وار کو کتنا وقت رکھنا چاہئیے تاکہ وہ رکھا رہا رہے۔ کسی بیکار سیسٹم وار کو بہت طویل انتظار کیا جانا سرور کی وسائل کو خالی کر سکتا ہے۔ اگر سیسٹم وار بہت جلد ختم ہوجائے تو استعمال کنندہ کو پھر سے پھر پورا سفر شروع کرنا پڑ سکتا ہے، کیونکہ سرور نے تمام معلومات کو ختم کردیا ہوگا۔ مناسب وقت گزاری کا تلاش بہت مشکل ہوتا ہے۔

آگاہی:اگر آپ سیسٹم وار متغیر استعمال کر رہے ہیں تو ان میں بہت سے اعداد و شمار نہیں رکھنا چاہئیں۔

سیسٹم وار متغیر کو ذخیرہ اور بازیابی کیا جانا:

سیسٹم وار اکائی کا سب سے بڑا فائدہ یہ ہے کہ اس میں متغیر کو ذخیرہ کیا جاسکتا ہے تاکہ بعد کی ویب پیجوں کی پڑھائی جاسکے، اس کا استعمال دائرہ بہت وسیع ہے۔

درج ذیل مثال میں "Donald Duck" کو username کے نام سے سیسٹم وار متغیر میں رکھا گیا ہے اور "50" کو age کے نام سے رکھا گیا ہے:

<%
Session("نام کاربری")="Donald Duck"
Session("سن")=50
%>

جب کچھ بات سیسٹم وار متغیر میں رکھ دی جاتی ہے تو وہ اسپ اپلیکیشن کے کسی بھی پیج کا استعمال کرسکتا ہے:

خوش آمدید <%Response.Write(Session("نام کاربری"))%>

نتیجه خط زیر: "خوش آمدید Donald Duck".

همچنین می‌توانید پارامترهای کاربر را در شیء جلسه ذخیره کرده و با دسترسی به این پارامترها تصمیم بگیرید که چه صفحه‌ای به کاربر بازگردانده شود.

در مثال زیر، اگر رزولوشن نمایشگر کاربر پایین باشد، نسخه متنی صفحه بازمی‌گردد:

<%If Session("screenres")="low" Then%> 
  این نسخه متنی صفحه است
<%Else%> 
  این نسخه چندرسانه‌ای صفحه است
<%End If%>

حذف متغیر جلسه

مجموعه contents شامل تمام متغیرهای جلسه است.

می‌توان از روش remove برای حذف متغیرهای جلسه استفاده کرد.

در مثال زیر، اگر مقدار متغیر جلسه "سن" کمتر از 18 باشد، متغیر جلسه "sale" حذف می‌شود:

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

برای حذف تمام متغیرهای جلسه، لطفاً از روش RemoveAll استفاده کنید:

<%
Session.Contents.RemoveAll()
%>

جستجو در مجموعه contents

مجموعه contents شامل تمام متغیرهای جلسه است. می‌توانید با جستجو در مجموعه contents، متغیرهای ذخیره شده را مشاهده کنید:

<%
Session("نام کاربری")="Donald Duck"
Session("سن")=50
dim i
برای هر i در Session.Contents
  Response.Write(i & "<br />")
Next
%>

نتایج:

نام کاربری
سن

اگر می‌خواهید تعداد عناصر مجموعه contents را بدانید، می‌توانید از ویژگی count استفاده کنید:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("جلسه متغیر: " & j)
برای i=1 تا j
  Response.Write(Session.Contents(i) & "<br />")
Next
%>

نتایج:

جلسه متغیر: 2
Donald Duck
50

مجموعه StaticObjects را جستجو کنید

می‌توان از طریق چرخه StaticObjects مجموعه، برای مشاهده ارزش‌های همه اشیاء ذخیره شده در عنصر session استفاده کرد:

<%
dim i
برای هر i در Session.StaticObjects
  Response.Write(i & "<br />")
Next
%>