Integer
یک عدد صحیح می باشد.
دو نوع داده با Integer وابستگی دارند .
byte, long .
long می تواند اعداد بزرگتر از محدوده integer را در خود ذخیره نماید.
یک byte کوچکتر می باشد.
اعداد اعشاری یا Floating-point numbers
اعداد اعشاری اعداد decimal می باشند .
توجه به این نکته مهم می باشد که اعداد ممیز شناور و اغلب گرد شده یا بریده می شوند تا به اندازه فضایی شوند که به آنها اختصاص داده شده است .
نوع داده ای single , double به اعداد ممیز شناور ، اختصاص داده شده اند فرق بین این دو دقت اعدادی که در خود ذخیره می کنند می باشند در نوع داده double دو برابر single حافظه لازم دارید اما بدیهی است که محدوده اعداد بزرگتر را می تواند در خود نگهداری کند و همچنین دقت بیشتری نسبت به single دارد.
رشته String
یک رشته می تواند زنجیره ای از حروف ، اعداد، و نشانه ها را در داخل خود نگهداری کند.
اطلاعات Data
یک ویژگی مفید Vbscript که در دیگر زبانهای برنامه نویسی وجود ندارد مدیریت اطلاعات می باشد .
اگر چه می توان داده ها را به صورت رشته ها یا اعداد نمایش داد ولی استفاده از این متغیر داده ای می تواند زمان یا تاریخ و اطلاعات متنوع توابع تاریخ Vbscript و عملگرهایی که فرمت و اطلاعات مربوط به تاریخ را چاپ می نمایند را نگهداری کنند.
Boolean
یک متغیر boolean مقادیر درست یا غلط را در خود نگهداری می کند.
نوع داده Currency
یک عدد دقیق که تنها برای ذخیره مقادیر پولی به خوبی کار خواهد کرد اما Vbscript یک نوع داده مخصوص برای پول مهیا می کند که با چندین تابع ویژه Vbscript کار می کند
Object
این قسمت به اشیاء مخصوص اشاره دارد در کارکردن با عملگرهای مربوطه به پایگاه های داده استفاده می شود.
Variant Variables
در بیشتر زبانهای برنامه نویسی تفاوتی باید بین متغیرهای داده های مختلف وجود داشته باشد.
یک متغیر که برای نگهداری رشته ها استفاده می شود بعداً برای نگهداری یک عدد نمی تواند مورد استفاده قرار بگیرد البته این موضوع در زبان Vbscript صادق نمی باشد.
Vbscript از Variant Variables هایی استفاده می کند که متغیرهایی هستند که شامل مقادیری از هر نوع می تواند باشد.
مقدار دادن به یک متغیر
در تعدادی از زبانهای برنامه نویسی قبل از اینکه شما از متغیرها استفاده کنید باید به سیستم اعلام نمایید که از چه نوعی از داده می خواهید در داخل متغیر استفاده کنید و چه کاری با آن متغیر میخواهید انجام دهید.
برای مثال در زبان برنامه نویسی c++ شما باید بگویید که
int my_variable;
my_variable = 2;
Vbscript همه چیز را کمی ساده تر می کند در Vbscript لازم نیست که نوع متغیر را یعنی char, real, integer یا هر نوع متغیری را که ایجاد میکنید تعیین نمایید.
در Vbscript همه متغیرها به وسیله کلمه کلیدی dim تعریف میگردند این بدین خاطر است که در Vbscript از variant variables ها استفاده میگردد .
بنابراین جملهی معادل برای آن چیزی که در c++ توصیف شد عبارت زیر است:
Dim my_variable
در اینجا در اولین خط my_variable به عنوان متغیر توصیف گشته است بدون اینکه my_variable را به عنوان یک متغیر از نوع integer تعیین نماییم.
حتی در خط اول ابداً لزومی ندارد، در Vbscript استفاده از خط دوم بدون اینکه اشارهای بهmy_variable شود به سادگی قابل قبول میباشد به این کار implicit declaration می گویند.
از dashes, perrids, Spaces استفاده نکنید .
استفاده از هر کدام از موارد ذکر شده در نام متغیرتان یک پیغام خطا را ایجاد میکنند در عوض اگر شما میخواهید چیزی را گسترش دهید سعی کنید از علامت (_) استفاده نمایید برای مثال my_first_variable یک نام متغیر است در صورتی که my first variable چنین نمی باشد.
نامهای متغیرها باید با یک حرف شروع شوند Underscore و اعداد می توانند در داخل نامهای متغیرتان تعریف گردند اما نه به عنوان کاراکتر اول.
• نام متغیرها نباید طولانی تر از 255 کاراکتر باشد.
• از کلمات کلیدی به عنوان متغیرها استفاده نکنید.
• از نام متغیرها دوباره استفاده ننمایید شما می توانید از نام متغیرها دوباره استفاده نمایید فقط آگاه باشید که شما نمی توانید از همان نام برای دو متغیر مختلف استفاده نمایید.
• همان طوری که پیش از این ذکر گردید Vbscript از variant variable ها استفاده مینماید که با وجود آنها شما دیگر نیازی برای ساختن یک متغیر مخصوص برای یک نوع داده را ندارید.
آنها کدهای شما را برای خواندن دیگران سادهتر مینمایند اما بهتر از آن اینکه آنها چیزهایی را برای شما که میخواهید بنویسید راحتتر مینمایند.
همان طوری که پیش از این ذکر گردید Vbscript از variant variable ها استفاده مینماید که با وجود آنها شما دیگر نیازی برای ساختن یک متغیر مخصوص برای یک نوع داده را ندارید.
آنها کدهای شما را برای خواندن دیگران سادهتر مینمایند اما بهتر از آن اینکه آنها چیزهایی را برای شما که میخواهید بنویسید راحتتر مینمایند.
استفاده از نامهای توصیفی بیشتر برنامه نویسان سعی میکنند که به وسیله استفاده از یک حرف برای نام متغیرها کمتر تایپ نمایند .
تصور نمایید که شما در خال خواندن 100 خط از کدها می باشید و به یک خطی مثل x=5 برخورد مینمایید این عبارت به چه معنی میباشد؟
حرف x چیست ؟
آیا یک متغیر از نوع رشته ای میباشد که میخواهید اسم کاربر را در خود نگاه دارد که در آن صورت نامی مانند strUserName را باید به کار ببرید اگر آن یک رشته را نگاه میدارد که حقوق اشخاص می باشد باید آن را syssalary بنامیم .
تمام متغیرها را در ابتدای برنامه تعریف نمایید اگر حتی بعد از استفاده از نامهای مناسب شما در به یادآوری نام یک متغیر به خصوص دچار مشکل شدید بهتر است بدانید که کجا میتوانید آن متغیر را پیدا کنید بیشتر زبانها از این واقعیت استفاده مینمایند.
ثابتها Constants یک ثابت متغیری میباشد که شما به آن یک نام دادهاید و یک data را در آن ذخیره کردهاید .
برعکس متغیرها ،ثابتها وقتی که آنها را تعریف میکنید ، یک مقدار میگیرند و آن مقدار دیگر تغییر داده نمی شود.
Vbscript چندین ثابت پیش ساخته برای خود دارد.
آرایه ها یک نوع دیگر از داده ها وجود دارند که شما هنوز به آنها برخورد نکردهاید یک متغیر آرایهای ، مجموعهای از متغیرها می باشند با داشتن یک نام ، اما به وسیله یک اندیس تشخیص داده میشوند.
آرایه ها برای گروهی از داده ها که از یک نوع میباشند استفاده می شوند.
چگونه نوع متغیرها را مشخص میکنید ؟
دو تابع در هنگام data type که در داخل متغیرها ذخیره میگردند سودمند میباشند اولین آنها vartype میباشد که به صورت زیر مورد استفاده قرار می گیرد.
Vartype (variable-name) تابع vartype یک کد عددی را بر می گرداند که مطابقت داشتن با نوع داده را مشخص می کند .
تابع دوم که قشنگتر از اولی است تابعی به نام typename می باشد .
typename یک رشته را بر میگرداند که نام نوع دادهای است که به عنوان یک کد استفاده میشود و مانند تابع vartype استفاده میگردد مقادیر برگشتی از تابع typename و منظور آنها در جدول 1 لیست شده است.
Value Constant Datatype 0 Vbempty Empty 1 Vbnull Null 2 Vbinteger Integer 3 Vblong Long 4 Vbsingle Single 5 Vbdouble Double 6 Vbcurrency Currency 7 Vbdate Date 8 Vbstring String 9 Vberror Error 10 Vbboolean Boolean 11 Vbvariant Variant 12 Vbdataobject Object 13 Vbdecimal Decimal 14 Vbbyte Byte جدول 1 Abstraction data type داده مجرد نوع داده مجرد(ADT) یک نوع داده انتزاعی است، جایی که فرم های داخلی پشت مجموعه ای از توابع پنهان شده اند.
مقدار این نوع فقط توسط فراخوانی توابع ایجاد و ویرایش می گردد.
این نوع به ما اجازه می دهد که انواع تغییر یافته را بدون نیاز به تغییرات خارجی ماژول پیاده سازی کنیم.
اشیاء و ADT ها هر دو فرم هایی از داده های انتزاعی هستند اما اشیاء داده مجرد نیستند.
اشیاء متدهای رویه ای انتزاعی را استفاده میکنند نه نوع انتزاعی.
که مثال قدیمی از داده مجرد، پشته می باشد ،توابعی که یک پشته خالی را برای PUSH کردن مقادیر روی پشته و POP کردن مقادیر از آن ایجاد میکنند.
دستور زبان انتزاعی یک نمایش از داده (عموماً یک پیام در طول یک لینک ارتباطی یا یک برنامه کامپایل شده) که مستقل از ساختمان ماشین و کد کردن و همچنین نمایش فیزیکی داده ها می باشند.
یک نمایش داخلی از یک برنامه کامپایل شده به اجزای ساده تری مانند دستورات، عبارات و شناسه ها توسط دستور زبان انتزاعی تقسیم می شود.
که این از دستور مبدأ کامپایل شده مستقل است.
یک PARS TREE شبیه به یک درخت Abstraction Syntax می باشد با این تفاوت که شامل خصیصه هایی چون پرانتزها نیز می باشد که بصورت نحوی مهم می باشند.
Sequence Control انواع کنترل سه نوع اصلی از ساختارهای کنترلی در برنامه نویسی مورد استفاده قرار می گیرند.
آنها اجازه کنترل کردن را به ما میدهند تا دستورات را هر چند بار که میخواهیم اجرا کنیم.
استفادهی بجا از این ساختارهای کنترلی برای یک برنامه نویس به عنوان یک مهارت محسوب می گردد خوشبختانه منطق پشت این ساختارها بسیار واضح می باشد.
1 ـ منطق شرطی 2 ـ منطق حلقه ها 3 ـ منطق انشعابی یا Branching logic IF –Then statement جمله if … then یکی از معمولترین ساختارهای کنترلی می باشد.
شکا دستوری آن بصورت if condition Then code block End if If … then …..
else statement گاهی اوقات مفید است که یک قطعه از کد فقط وقتی اجرا گردد که شرط ما غلط است .
شما میتوانید با اضافه کردن یک عبارت else به ساختار if … then این کار را انجام دهید.
If condition then Code block 1 Else Code block 2 End if ElseIf statement عبارت elseIf ساختارهای if های تو در تو را سادهتر میسازد برای مثال به عبارت if در مثال زیر توجه نمایید : if condition then code block 1 else if condition2 then code block 2 can be changed to this: if condition 1 then code block 1 ElseIf condition 2 then Code block 2 … تابع ElseIf به عنوان یک ترکیب از if و else می باشد دو چیز را هنگامی که از تابع else if استفاده می کنید در نظر داشته باشید.
تابه ElseIf بعد از یک Else قرار نمیگیرد .
شما میتوانید از ElseIf به صورت تکراری استفاده نمایید.
اما عبارت ElseIf را بعد از Else نباید استفاده کنید .
ElseIf نیازی به end if ندارد اما عبارت if اصلی به endif نیاز دارد کنترل های منطقی حلقوی منطق حلقه یک بلوک از کدها را به صورت تکراری اجرا می نماید البته تا وقتی که شرط معینی اتفاق بیفتد یا هنگامی که شروط معینی درست باشند.
عبارات Do … loop Do ….
یکی از دو شکل را می تواند داشته باشد شکل اول do while … loop یک بلوک از کد را تا هنگامی که شرط معینی درست باشد اجرا میکند.
نوع دوم do until … loop یک بلوک از کد را تا وقتی که به یک شرط معین برسد اجرا میکند.
Do while … loop شکل عبارت do while … loop به صورت زیر میباشد.
Do while condition Code block کد بلوک تا زمانی که شرط درست است اجرا میگردد اگر شرط نادرست باشد برای بار اول عبارت do اجرا میگردد اما حلقه هیچگاه اجرا نمیگردد.
مثال زیر اعداد 1 تا 10 را با استفاده از Do while … loop میشمارد.
Icount =1 Do while icount Response.
write (icount) Icount = icount + 1 عبارتهای Do until … loop عبارت do until … loop بسیار شبیه عبارت Do while ….
Loop میباشد تنها فرق آن با do while … loop در این است که در Do until … loop حلقه تا زمانی اجرا میگردد که شرط true شود نه false هرکاری که یکی از آنها میتواند انجام دهد حلقه نوع دوم نیز میتواند انجام دهد تنها فرق در این است که آیا شرط به صورت مثبت نوشته شده است یا خیر ؟
شمارنده تا 10 (فقط زیر) یک اسکریپت میباشد که در آن از حلقه Until به جای while استفاده شده است.
Dim icount Icount =1 Do Until icount > 10 Response.
write (icount) % > Icount = icount + 1 LOOP %> عبارتهای While …Wend عبارت While … wend همانند Do while… loop میباشد این دستور زبان به خاطر اینکه برای بیشتر برنامه نویسان آشنا میباشد آورده شده است.
به جای do while کلمه while و به جای عبارت loop کلمه wend قرارداده شده است.
با این وجود while… wend دقیقا همان کار do while … loop را انجام میدهد.
عبارتهای for… next حلقه for … next وقتی استفاده میشود که تعداد دفعات اجرای کد مشخص میباشد .
این حلقه یک بلوک کد را به تعداد دفعات معینی اجرا میکند.
شکل زیر یک حلقه for … next میباشد.
For counter-variable = start-value to stop-value step step-value Code block next متغیر counter-variable یک متغیر عددی میباشد که تعداد دفعات اجرای حلقه را نگاه میدارد.Start-value اولین مقداری است که متغیر counter-variable میگیرد .
در اولین گذر در داخل حلقه مقدار counter-variablr برابر با مقدار start-value میباشد دفعه بعدی مقدار آن برابر با start-value + step-value میشود.
با توجه به اینکه step-value مقدار مثبتی است حلقه تا آنجایی اجرا میگردد که مقدار counter-variable بزرگتر از stop-value شود در هر بار اجرای حلقه مقدار متغیر counter-variable با step-value جمع میگردد.
شما می توانید برنامه شمارنده سادهای را با حلقه for… next بنویسید.
For icount = 1 to 10 step 1 Response.write (icount) Loop عبارتهای for each … next ساختار for each … next برای تکرار کردن هر عنصر در یک گروه مورد استفاده قرار میگیرد فرض کنید که یک آرایه از نام کاربران دارید و میخواهید هر نام را بر روی صفحه نمایش چاپ کنید یکی از راه حل ها استفاده از for … next و یک شمارنده می باشد for icount = 0 to arraysize response.write (arrusernames (icount)) next برای یک راه حل دیگر می توان از for each … next استفاده نمود.
For each strnames in arrusernames Respons.write(strnames) next برای موضوعات کم اهمیتی فرق زیادی نمیکند شما از کدام ساختار استفاده نمایید.
وقتی شما میخواهید یکسری از اشیاء را انتخاب نمایید استفاده از ، از for each … next مفیدتر میباشد.
Infinite loops یا حلقه های نامتناهی اگر هیچ چیزی در بلوک کدهای شما موجود نباشد که سبب شود شرط در انتها نادرست گردد.
کد به صورت نامتناهی اجرا میگردد اینها را حلقه های نامتناهی میگویند و باعث میگردند که ملاقات کنندگان صفحه های شما خیلی ناراحت گردند.
یکی از چیزهایی که موجب ایجاد حلقه نامحدود میگردد این است که ما مقادیر اشتباهی را به کار برده باشیم برای مثال : Do while icount > 0 Response.write (ifactor*icount) Ifactor = ifactor – 1 Loop استفاده از سابروتین ها سابروتینها ( همچنین procedures نیز نامیده میشوند ) عملیاتی را انجام میدهند.
یک نمونه ساده از سابروتین در زیر بیان شده است : Sub name Code block End sub برای ساختن یک سابروتین به صورت نمونه به شکل زیر عمل میشود: Sub subHeading Response.write (“”) Response.write (“ Your name ”) Response.write (“ Your name ”) End sub ارسال آرگومان یک آرگومان یک روش برای ارسال داده و متغیرها به سابروتین یا تابع بدون مقدار یا Violating Separateness میباشد.
مقادیر برای آرگومان ها وقتی که سابروتین فراخوانی میشود تعیین میگردد.
سابروتین ها می توانند به داده ها دسترسی داشته باشند و به وسیله متغیرهای تعریف شده آنها را به کار ببرند.
استفاده از توابع توابع ، مقادیر را مورد پردازش قرار میدهند شاید در ابتدا تفاوت توابع با سابروتین را متوجه نشوید.
سابروتین ها با هیچ مقداری مساوی نمیباشند.
تنها راهی که شما میتوانید یک سابروتین را فراخوانی کنید به کار بردن نام آن در یک خط میباشد.
در عوض ، توابع مقادیر را بر میگردانند.
به این معنی که فراخوانی تابع را می توانیم در داخل یک عبارت محاسباتی انجام دهیم تا چیزهایی را با یکدیگر جمع نماید و از این قبیل… ایجاد یک تابع بسیار شبیه ایجاد یک سابروتین میباشد.
به جای sub عبارت Function را قرار داده و به جای end sub عبارت End function را جایگزین نمایید.
مهمتر از همه اینکه شما باید یک خط که می گوید چه مقداری باید از تابع برگشت داده شود را در داخل آن قرار دهید خط مزبور چیزی شبیه خط پایین میتواند باشد.
Function-name = some-value Typecasting variables شما ممکن است بخواهید نوع داده ها را تغییر دهید.
اغلب ، وقتی داده وارد شده به فرم HTML ، به یک صفحه ASP فرستاده می شود ، آن داده به قالب مورد نظر در ASP نمی رسد.
یا ممکن است که شما در یک بخشی از زمان بخواهید که داده شما رفتار یک رشته را داشته باشد و در بخش دیگری از زمان همانند یک عدد رفتار نماید.
Typecasting راه حل این مشکلات می باشد.
Typecasting چیست و چرا ما عمل Typecasting را انجام میدهیم ؟
Typecasting به عمل تبدیل انواع داده ها گفته می شود .
چگونه عمل Typecasting را بر روی متغیرهایتان انجام میدهید ؟
تابع (expression) Cint یک عبارت را تبدیل به یک عدد Integer مینماید.
تابع (expression) Clng مقدار عبارت را تبدیل به یک عدد Long میکند.
تابع (expression)Cbyte مقدار expression را به یک مقدار byte که بین 0 تا 255 می باشد تبدیل می نماید.
تابع(expression) cdbl مقدار expression را به یک عدد double تبدیل میکند.
تابع (expression) csng مقدار expression را به یک عدد single تبدیل میکند.
تابع (expression) cbool، مقدار expression را تبدیل به یک مقدار Boolen مینماید.
تابع (expression) مقدار expression را به یک مقدار Currency تبدیل مینماید.
تابع (expression) Cdate مقدار expression را به یک مقدار با فرمت تاریخ تبدیل میکند.
Objects آبجکت Response Response برای فرستادن مقدار به خروجی ، مورد استفاده قرار میگیرد.
آبجکت Response همچنین میتواند کنترل کند که چطور و کی اطلاعات فرستاده شوند و کوکیها به عنوان اطلاعات ذخیرهای نوشته شوند.
آبجکت Request این آبجکت برای گرفتن اطلاعات از Client مورد استفاده قرار میگیرد.
واژه جدید : Query string data چیزهایی اضافه میباشند که به انتهای یک URL میچسبند.
چیزی شبیه "?firstname = John & lastname = smith" میباشند.
آبجکت Application آبجکت Application به منظور اشتراک اطلاعات بین چندین سرویس گیرنده که از یک صفحه بازدید می نمایند مورد استفاده قرار گیرد.
آبجکت Session یک session ، به دسترسی یک سرویس گیرنده به یک application اشاره دارد.
آبجکت Server آبجکت server چندین خصوصیت پایه و متد را فراهم می کند.
احتمالاً مهمترین آنها متدcreateobject میباشد.
متد createobjec برای ایجاد یک نمونه از اجزاء Server به کار میرود.
کامپوننتها ، بسته های وابسته آبجکت ها می باشند که شما میتوانید.
در صفحه هایتان از آنها استفاده نمایید.
خصوصیت Script Timeout میتواند برای تعیین طول زمانی که اسکریپت قبل از ایجاد یک خطا، اجازه اجرا شدن را دارد ، مورد استفاده قرار گیرد.
HTML Encode و URL Encode دو متدی میباشند که عمل کد را به یک رشته انجام میدهند.
آبجکت Objectcontext آبجکت objectcontext به منظور اتصال ASP و Microsoft transaction مورد استفاده قرار میگیرد به دست آوردن مقادیر check Box همه check Box هایی که به یکدیگر وابسته میباشند ، باید خصوصیات NAME یکسانی را داشته باشند.
تعداد عناصر موجود در acheckboxarray بستگی به تعداد آیتم های موجود در لیست جدا شده با کاما در str check Box string دارند.
اگر هیچ check Box ی علامت نخورده باشد ، str checkBox string یک رشته خالی خواهد بود ، یعنی شامل هیچ آیتمی نیست.
در این مورد ، تابع Split ، یک آرایه با صفر عنصر را بر میگرداند .
Cookies واژه جدید : یک نرم افزار کاربردی زمانی State(پایدار) گفته می شود که آن نرم افزار برای هر کاربر ، اطلاعاتی را باقی بگذارد ، در یک سایت وب ، این مورد وجود ندارد.
برای مثال ، اگر شما یک فرم بر روی صفحه وب را پر کنید و سپس چند وقت دیگر آن فرم را دوباره بازدیدکنید ، فیلدهای فرم شامل اطلاعاتی که قبلاً وارد کرده اید را نخواهد داشت.
به بیان دقیقتر ، فیلدهای فرم خالی خواهند بود .
زیرا سایت های وب فاقد state می باشند و به آنها stateless می گویند.
اولاً ، اطلاعات ذخیره شده در آبجکت session در حافظه سرویس دهنده وب برای مدتی که هر کاربر از سایت بازدید می کند.
ذخیره می شود.
اگر صدها یا هزاران کاربر دارید که به طور همزمان از سایت وب بازدید می کنند ، استفاده از آبجکت می باشد State باقی می ماند.
کوکی ها چیستند ؟
کوکی ها ، بیتهای اطلاعاتی کوچکی می باشند که مانند رشته ها و مقادیر عددی بر روی کامپیوتر سرویس گیرنده برای مدت زمان معینی ذخیره می شوند.
وقتی کوکی ها بر روی کامپیوتر سرویس گیرنده ساخته می شوند سازنده آنها زمان خاتمه یافتن آنها را معین نمایند بعد از اینکه یک کوکی به پایان کار خود می رسد به صورت خودکار خودش را از کامپیوتر سرویس گیرنده پاک می کند.
یک روش که این بخش کوچک از اطلاعات می تواند بر روی کامپیوتر سرویس گیرنده ذخیره شود استفاده از سه کوکی مجزا می باشد.
شما می توانید این کوکی ها را userAgentstring ,Name, Last Visit بنامید .
راه دیگر استفاده از keys میباشد.
استفاده از کوکی ها کوکی ها فایل های متنی کوچکی هستند که بر روی کامپیوتر کلاینت نوشته می شوند.
همانطوری که میدانید کوکیها را میتوان با استفاده از مجموعه Response.cookies بر روی کامپیوتر کلاینت نوشت و با استفاده از مجموعه Request.cookies خواند.
استفاده از آبجکت session Active server pages یک آبجکت پیش ساخته برای کمک به توسعه دهندگان برای پایدار نگهداشتن اساس کاربر به کاربر بکار میرود.
این آبجکت session نام دارد و میتواند هر صفحه ASP بر روی سایت وب شما مورد دسترس قرار گیرد.
آبجکت session میتواند هر نوع از داده ها از اعداد و رشته ها تا آرایه ها و آبجکت ها را در خود ذخیره نماید.
آبجکت session برای پایدار نگهداشتن شبکه برای مدت زمانی که کاربر از سایت وب شما بازدید میکند مورد استفاده قرار میگیرد .
وقتی که هر کاربر جدید به سایت شما وارد میشود حافظه سرویس دهنده وب برای ذخیره آبجکت session آن کاربر تخصیص داده میشود.
این حافظه زمانی آزاد میشود که کاربر برای مدت طولانی از سایت وب شما بازدید نکند این مدت زمان به طور پیش فرض 10 دقیقه میباشد اما میتوانید آن را کوتاهتر نمایید.
استفاده از آبجکت Application آبجکت application آبجکت دیگری است که به پایدار ماندن کمک میکند.
شما ممکن است از خود بپرسید که چه تفاوتی بین آبجکت session و Application وجود دارد در صورتی که هر دوی آنها برای پایدار نگهداشتن سایت وب شما طراحی شده اند.
در حالی که آبجکت session می تواند هر متغیری از هر نوعی را ذخیره کند متغیرهای Application گاهی اوقات متغیرهای سراسری نیز نامیده می شوند زیرا هر کاربری می تواند از هر صفحه ASP به هر متغیر Application دسترسی پیدا نماید.
مهم است که به خاطر داشته باشید که تنها یک نمونه از آبجکت Application برای سایت وب شما وجود دارد.
اگر اطلاعاتی کلی دارید که می خواهید در کل سایت وی ذخیره شود متغیرهای Application راه خوبی برای این کار میباشند.
مخصوصاً اگر اطلاعات تغییر داده شود.
آبجکت session آبجکت session یک آبجکت داخلی ASP میباشد که برای پایدار نگهداشتن شبکه بر مبنای user-by-user طراحی شده است .
به هر کاربر آبجکت session مخصوص به خودش داده میشود.
Session ID در دو مکان ذخیره میشود سرویس دهنده وب و سرویس گیرنده .
هر session که به وسیله سرویس دهنده وب مدیریت میگردد شامل session ID مربود به خود میباشد.
این session ID همچنین بر روی کامپیوتر کلاینت به صورت یک کوکی ذخیره میگردد.
از آنجایی که session ID هم بر روی کلاینت و هم بر روی سرور ذخیره میگردد سرویس دهنده وب میتواند تعیین کند که چه session هایی متعلق به چه کلاینت هایی میباشند.
اگر شما قصد دارید که session کاربر را صراحتاً از بین ببرید ، قبل از اینکه session timeout اجرا شود از متد Abandon استفاده کنید .
دکمه logout وقتی کلیک می شود باید پیغام logout را نمایش دهد و متد Abandon از آبجکت session را فراخوانی کند.
استفاده از متغیرهای session یک نمونه از آبجکت session به عنوان یک انبار برای ذخیره اطلاعات کاربر به خصوص مورد استفاده قرار میگیرد.
استفاده انبار چیست ، اگر شما چیزی را در داخل آن قرار ندهید ؟
اگر شما تکه ای از اطلاعات کاربر بخصوصی را دارید که قصد نگهداری آن را دارید نیاز به ذخیره این اطلاعات در یک متغیر و قراردادن آن متغیر در داخل session کاربر دارید به چنین متغیرهایی session variable اطلاق می گردد.
برای نوشتن یک مقدار در داخل session از دستور زیر استفاده کنید.
Session (session Variable Name)= value این عبارت اساساً یک متغیر را در داخل انبار شخصی کاربر ذخیره میکند .
یک متغیر session را میتوان به صورت زیر خواند : value = Session (session Variable Name) تصور کنید که شما یک سایت ایجاد کرده اید و در بالای هر صفحه وب قصد دارید که یک نقل قول را ذکر نمایید زیباتر این است که به کاربر یک گزینهای را بدهد که بتواند نقل قول را مخفی نماید.
استفاده از آبجکت Err در ASP 2.0 کنترل خطا به وسیله VBScript در دسترس قرار میگرفت .
دستور زبان مشابه با کنترل خطای استفاده شده در برنامه Visual Basic بود.
در هر صفحه ای که میخواستید توانایی کنترل خطا را داشته باشد مجبور بودید خط On error Resume next را وارد کنید که این خط به موتور VBScript می گوید که اگر با یک خطا مواجه شد به خط بعدی پرش نماید پس هرگاه در جاهای گوناگون نیاز به تست کردن را داشتید تا ببینید که آیا خطا اتفاق افتاده است یا نه این کار به وسیله آبجکت Err انجام می شد.
استفاده از آبجکت ASPError هنگامی که توسعه دهندگان شرکت مایکروسافت در حال کارکردن به روی ASP 3.0 بودند آنها کاری را با آبجکت جدید ASPError انجام دادند این آبجکت پیش ساخته جدید در ASP 3.0 کنترل خطا را شبیه به آبجکت Err انجام می دهد آبجکت ASPError ، معایب آبجکت Err را بر طرف نموده است.
از آنجایی که آبجکت ASPError یک آبجکت داخلی ASP می باشد اهمیتی ندارد که از چه زبان اسکریپت Server-Side استفاده میکنید.
این کار روش اولین عیب آبجکت Err را حل میکند اما در مورد دومی چه کار میکند ؟
چگونه از آبجکت ASPError میتوان استفاده کرد تا نیازی به وارد کردن کد کنترل خطا در تمامی صفحات ASPنداشته باشید ؟
راز کار در خود آبجکت ASPError به تنهایی نمیباشد اما به همراه IIS 5.0 میتواند این کار را انجام دهد هر زمانی که یک خطا در صفحات ASP اتفاق میافتد خطای 500;100 HTTP اتفاق میافتد.
Error Handling در هر برنامه حتی ساده ترین درخواست ها ممکن است خطا وجود داشته باشد.
شما باید بدانید خطا کجا رخ می دهد تا بتوانید آنرا به خوبی اداره کنید.
ASP از آن دسته زبانهایی است که استثناها را در زمان اجرا اداره میکنند که این یکی از بنیادی ترین خصیصه های آن است.
همینطور که احتمالاً انتظار دارید ASP خارج از چارچوب کاری می تواند عمل کند،به عنوان مثال شما حتی میتوانید کنترل خطا با VB.NET بنویسید که خطاها را درC# کنترل کند.
)Options… Options کنترل خطاهای زمان اجرا) ماباید خطاها را در زود ترین زمان ممکن ضبط کرده و سپس آنرا در محیط زمان اجرا علامت بزنیم که vb.net دستوراتOption Strict و Option Explict(صریح) را جهت کنترل خطاها در زمان طراحی پیشنهاد میکند.
برنامه نویسان کلاسیک ASP باید با نوع صریح آشنا باشند.
در این نوع تعریف صریح برای همه متغیرها در سطح ماژول اجباری است.
بعلاوه وقتی در صفحات برنامه نویسی شده ASP در VB برنامه نویسی شود.
زمانیکه Option Explict فعال شده که باید همه متغیرها با استفاده از Public و Privet وdime یا Redime تعریف شوند.
خطاهای آشکار را که Option Explict ضبط کرده نام متغیر های یکسان به دفعات در دامنه یکسان استفاده میکنند.
یک موقعیت خیلی شبیه به خطاهای زمان اجرا اگر استثنائات وجود نداشتند.
خوشبختانه در ASP.NET ،option explict ها بصورت پیش فرض تعیین شده است، اگر به هر دلیلی بخواهید پیش فرض را تغییر دهید: Option Explicit Off تکنیکهای برخورد با خطا در Asp قبل از بررسی جزئیات تکنیکهای بررسی خطا به این میپردازیم که چه حالاتی در برخورد با خطا برایمان وجود دارد.
کد که احتمال خطا بودن آن ضعیف است.
خطاهای حساس و زمانیکه اتفاق میافتد.
خطاهای جزیی و روش برخورد مناسب با آنها.
خطاهای معلق حاضر کردن صفحات معمولی خطا برای برخورد با خطاهایIIs حاضر کردن صفحات معمولی خطا برای برخورد با خطاهای مربوط به صفحات.
اکنون با توضیحاتی در مورد جزئیات این مواردی بپردازیم.
حک که احتمال خطا بودن آن کم است .
همانطور که گفته میشود.
پیشگیری بهتر از درمان است.
و شما باید تا جایی که میتوانید از به وجود آمدن مشکل جلوگیری کنید.
مثالی را تصور کنید که میخواهید برروی دو عدم را که کاربر میدهد در اعمال محاسباتی انجام دهید.
شما میدانید که سیستم برمنو باعث به وجود آمدن خطا میشود.
که شما به راحتی میتواند از بروز چنین خطایی جلوگیری میکنید.
این کار کنید خطاها را جلوگیری نمیکند اما تا حدودی برای برخورد با خطاهای شما مفید میباشد.
استفاده از Try & Catch در برخورد با خطاهای حساس: همانطور که شرح داده شد شما باید برای برخورد با موقعیت های غیرقابل پیش بینی مانند مشکلات شبکه و پایگاه داد آماده باشید.
زبانهایی مانند++C و VB.net از قبل راههایی را برای برخورد با این خطاها پیشبینی کردند.
در net این خطاها به عنوان استثنا هایی که نشان دهند این هستند که یک اتفاق غیر معمول رخ داد.
نمایش داده میشود.
کدهای زیر نمایش میدهند که چگونه این ساختار را یکبار ببرید.
Sql connection cnn=null; Try { cnn=new sql connection(); cnn.connectionstring=textbox1.text; cnn.open(); } cash(exception.exp) { labe11.text=exp.message; } finally { if (cnn.state==connectionstate.open) cnn.close(); } در اینجا کدی ارائه شده که استثنا را به یک تلاش میفرستند.
و اگر مجدداً استثنایی اتفاق بیفتد مجدداً به بخش Cash Blackفرستاده میشود.
و بخش CashBlack به شما اجازه میدهد که خطای خود را فیلتر کنید در مثال بالا ما یک روش کلی برخورد با خطا را ارائه کردیم.
که شما می توانید آن را برای حالات به خصوصی طراحی کنید.
بکار بردن صفحات معمول بعضی خطاها وجود دارند که از کنترل تولید کنندگان خارج میباشند پیدا نشدن صفحه و مشکلات داخلی سرور نمونههایی از آن میباشند.
عموماً تولید کنندگان و یا مدیران عادت به استفاده از صفحات خطای معمول برای یک چنین خطاهایی هستند که استفاده از Iissnap.in Asp.net به شما اجازه انجام این Web.
Canfig را میدهد.
این بدان معنی است که شما میتوانید صفحات خطا را تنظیم کنید بدون رفتن به Iist.in و همچنین تغییر آسان الگو در آینده را خواهید داشت.
تنظیم صفحات خطای معمول شما را مجبور خواهد کرد که بخش Custom Errors را از فایل web.configویرایش کنید.
کدهای زیر مثالی از این نوع میباشد.
Page Level Error Handling دو مورد: تعیین جهت صفحه استفاده اشیاء رفتار خطا برای ضبط استثنائات که در مورد هر کدام به نوبت صحبت خواهیم کرد.
تعیین جهت صفحه خطاهای غیرمنتظره می توانند توسط خصوصیات Error Page شیء داده صفحه شناسایی شوند.
این اجازه تعریف یک URLتعیین جهت را در مورد استثناهای کنترل شده می دهد، در گام دوم نیاز است کنترل خطا را فعال کنیم.
به هر حال صفاتCustom Error ،فایل Web.Config شما مانند زیر است: