بخشی از مقاله
امروزه وب به عنوان يك واقعيت انكارناپذير سايه خود را در تمامي زندگي اجتماعي، اقتصادي و بشريت انداخته و داراي رشد بسيار سريع در زمينه بكارگيري تكنولوژيهاي جديد است.
همزمان با اين رشد اعجازگونه وب سايتها از حالت اوليه خود كه كوچك و عمدتا ايستا بودند خارج شده و به سمت حجيم شدن و پويايي حركت كردند.
امروزه روي يك وب سايت نرمافزارهاي متعددي اجرا ميشوند تا پاسخ وي نياز كاربران خود بوده و در اين دنياي رقابت، دليلي براي بودن خود داشته باشند.
در اين مسير تكنولوژيهاي متعددي نظير تكنولوژي Dynamic Scripting مانند ASP بوجود آمد تا طراحان را جهت طراحي يك وب سايت پويا ياري كند. استفاده از مزاياي كلاسهاي Vb script، استفاده از متدها و نمونههايي از اين تدابير جهت طراحي صفحات ASP ماجولار با قابليت استفاده مجدد Reusable است.
شركت ماكروسافت در سال 1996 تكنولوژي (Active Server page) را معرفي نمود. تكنولوژي فوق اولين بار به همراه سرويس دهندة اطلاعاتي اينترنت
(IIS: Internet Information server) نسخة 3.0 ارائه شد. با بكارگيري تكنولوژي فوق امكان طراحي و پيادهسازي نرمافزارهاي بزرگ و بانكهاي اطلاعاتي به همراه صفحات وب فراهم شد، هسته اوليه ASP زبان Vbscript است. صفحات ASP همراه كدهاي نوشته شده توسط زبان فوق ايجاد ميشود. Vbscript به عنوان زبان استاندارد براي پيادهسازي صفحات ASP در نظر گرفته شده است. بنا به اظهارات شركت مايكروسافت در ماه مه سال 2000، قريب به 800000 نفر در اين زمينه فعاليت داشتند و به طراحي صفحات وب با بهرهگيري از تكنولوژي فوق مشغول بودند. آمار فوق نشان دهنده سرعت رشد تصاعدي و استقبال عموم از تكنولوژي فوق در سطح جهان دارد. قريب به 500 شركت كامپيوتري در سطح جهان بصورت كاملا تخصصي صرفا به توليد قطعات و اجزاي متفاوت بصورت گيتهاي آماده نرمافزاري به كمك ASP فعاليت داشته و محصولات آنها در وب سايتهاي متعدد عرضه ميشود.
ASP تقريبا هر كاري ميتواند انجام دهد. مثلا دستيابي و جستجو در بانكهاي اطلاعاتي متفاوت مستقل از بانك، شخصي كردن صفحات وب، نمايش صفحات متفاوت براي مرورگرهاي متفاوت، حفاظت رمز عبور، بازيهاي كامپيوتري، پردازش فرمها و …
براي شروع به چه چيزي نياز است؟
جهت استفاده كامل از تواناييهاي ASP، ميبايست سيستم عامل ويندوز NT 4.0 را به همراه IIS 4.0 استفاده كرد. از ويندوز Server 2000 همراه IIS 5.0 نيز ميتوان بهره برد. جهت استفاده از ASP روي كامپيوترهايي كه بر روي آنها ويندوز 98 يا 95 نصب شده ميتوان سرويس دهندة شخصي وب يا (PWS: Personel Web Server ) را روي كامپيوتر نصب كرد.
Microsoft Internet Information Server 2.0
Windows NT Server 4.0 با سرويس دهندة وب، سرويس دهندة FTP و حتي سرويس دهنده گوفر كامل ميشود. تمام سرويسهاي عمده اينترنت به سادگي از طريق اين سرويس نصب ميشوند فقط از برنامه كاربردي Network control panel براي افزودن Microsoft Internet Information Server 2.0 استفاده كنيد و قادر خواهيد بود كه حضور وب جهاني را احساس كنيد.
استفاده از ASP بدون بكارگيري IIS يا PWS :
به دليل اينكه سرويس دهندگان وب تنها بر روي محصولات ويندوز شركت مايكروسافت اجرا ميگردند. شما ممكن است فكر كنيد كه براي استفاده از صفحات ASP حتما بايد از IIS يا PWS روي سرويس دهنده وب خود استفاده نماييد. اين درست نيست. زيرا كه شركتهاي زيادي نرمافزارهايي را ايجاد كردهاند كه به شما اجازه ميدهند صفحات ASP را روي سرويس دهندههاي متنوع و كامپيوترهاي مختلف ايجاد نماييد.
يكي از محصولات Holycon Softwares In stant ASP است كه به صورت مخفف ASP ميگويند. يكي ديگر از اين محصولات توسط شركت Chili !soft ايجاد Chili! ASP ناميده ميشود اين محصولات مي توانند روي سرويسدهندههايي كه IIS ندارند اجرا شوند به علاوه محصولات زير:
Jave Web Server . . Sun Web Server . Apache . Net scape Eterprise server
اين محصولات روي كامپيوترهاي زير نيز ميتوانند نصب شوند.
IBM / AIX Apple Mac os Sun Solaris Linux
ASP چيست؟
ASP مخفف كلمات Active server page است. ASP برنامهاي است كه به كمك IIS اجرا ميشود. IIS يكي از عناصري است كه همراه ويندوز 2000 آورده شده. IIS يكي از اجزاي Win NT 4.0 option pack نيز ميباشد.
PWS يك نسخة خاص و كوچكتر از برنامة IIS است. PWS را مي توان از روي CD حاوي ويندوز 98 نصب كرد.
چگونه ميتوان يك فايل ASP را روي كامپيوتر شخصي اجرا كرد؟
با نصب يكي از نرمافزارهاي PWS و يا IIS (با توجه به سيستم عامل نصب شده) بدون نياز به يك سرويس دهنده كمكي ديگر.
نحوه نصب PWS و اجراي فايلهاي ASP روي Win 98
مرحله اول: برنامة Setupexe را از مسير Add ons \ PWS \ موجود در CD حاوي Win 98 اجرا كنيد.
مرحله دوم: يك فولدر به برنامه Inetpub روي هارد ايجاد و در آن يك فولدر به نام Wwwroot بسازيد.
مرحله سوم: يك فولدر جديد با نام دلخواه مثل My web در فولدر Wwwroot بسازيد.
مرحله چهارم: با استفاده از يك اديتور مبتني مثل Notepad كدهاي دلخواه Asp خود را تايپ كرده و فايل فوق را با نام دلخواه Test . asp ولي با انشعاب Asp در فولدر My web ذخيره كنيد.
مرحله پنجم: اطمينان داشته باشيد كه PWS در حالت اجرا است.
مرحله ششم: مرورگر خود را فعال كرده و در محل مربوطه آدرس زير را تايپ كنيد.
http: // local host / My Web / Test . asp
NT Server 4.0 چيست؟
همه چيز از سال 1992 با نشر نگارش 1/3 Windows Advanced Server آغاز شد در ابتدا موفقيت Windows NT 4.0 سرويس دهندة برنامة كاربردي بود كه به عنوان سيستمي براي برنامههاي كاربردي مبتني بر سرويس دهندة مايكروسافت مانند
SQI Server، در داخل ناول يا ساير سيستمهاي عامل شبكه موجود استفاده ميشد NT 4.0 در بسياري از شبكه هاي محلي شركتها كه قبلا دقيق مايكروسافت را به عنوان استانداردي براي محصولات روميزي انتخاب كرده بودند جاي پاي محكمي پيدا كرد و به عنوان سيستمي مفيد براي برنامههاي كاربردي Back office مايكروسافت مطرح شد. اين جاي پاي محكم با معرفي Windows NT Server 3.5 در سال 1993 به راهحل كامل و قدرتمندي براي سيستم عالم شبكه تبديل گرديد.
NT Server برخلاف ساير سرويس دهندههاي سيستم، ايستگاه كاري نيز ميباشد. NT 4.0 رابط كاربر تقريبا با رابط كاربر ويندوز 95 و برنامههاي روميزي معمولي مانند Word، Excel و هزاران برنامه كاربردي ديگر ويندوز دارد كه به خوبي بر روي NT Server 4.0 اجرا ميشوند. اما، در زير اين رابط سادة ميز كار، ابزارهاي پيچيدة مديريت و سرپرستي شبكه و سيستم عامل شبكة قدرتمندي با پشتيباني چندين پروتكل و سيستم ميباشد اين رابط آشنا و ساده يكي از جذابترين ويژگيهاي NT Server 4.0 و همچنين مشكلي عمده براي سرپرستان مبتدي ميباشد. نصب NT 4.0 ساده است. NT 4.0 رابط سادهاي دارد كه با سبك اشاره و كليك عمليات ابتدايي را فورا براي افراد آشنا با ويندوز (كه هم اكنون با 100 ميليون نسخة فروش تقريبا براي همه آشنا ميباشد) قابل درك و دسترسي ميسازد.
نيازهاي سختافزاري
حداقل نيازهاي سختافزاري براي IIS به صورت زير است:
CPU: 486 / 33 يا بالاتر
حافظه: 16 مگا بايت براي سرويس دهنده NT و 12 مگا بايت براي ايستگاه كاري NT .
فضاي ديسك: 125 مگا بايت براي سرويس دهندة NT و 110 مگا بايت براي ايستگاه كاري NT .
صفحه نمايش: VGA يا بالاتر.
CD – ROM .
ديسكت گردان فلاپي ظرفيت بالا.
نرمافزارها و ابزارهاي لازم:
نرمافزارها و زبانهاي برنامهنويسي كه در اين پروژه استفاده شدهاند به شرح زير ميباشد:
- زبانهاي HTML و ASP و VBScript
- پايگاه داده Access
- سيستم عامل ويندوز XP و وب سرور IIS
فصل اول
مروري بر ASP
ASP راهحل شركت مايكروسافت براي ايجاد صفحات پوياي وب ميباشد. با گسترش اينترنت و www در زندگي امروزه، ايجاد وب سايت يكي از بخشهايي است كه به سرعت در حال رشد است. در روزهاي اوليه www، HTML به منظور ايجاد صفحات وب ايستا استفاده ميشد. اما امروزه، صفحات وب ايستا به سرعت در حال منسوخ شدن است. راهحل مايكروسافت براي ساختن صفحات وب پويا استفاده از ASP است. ASP شامل دو بخش است. كدهاي برنامهنويسي و Embeded HTML.
كدهاي برنامهنويسي به وسيله تعدادي از زبانهاي دستنويس (Script language) نوشته ميشوند. زبانهاي اسكريپتنويسي دستنويس مربوط به وب كه محبوب ميباشند عبارتند از VBScript و JavaScript، هنگامي كه يك صفحه ASP درست ميكنيم ميتوان از يكي از چهار زبان برنامهنويسي استفاده كرد: VBScript، Jscript، Perlscript، Pythen.
آشنايي با مدل Client – server
يك مدل Client – server، دو كامپيوتر ميباشند كه با هم براي انجام يك كار همكاري مينمايند. يك كامپيوتر سرويس گيرنده اطلاعات مورد نياز خود را از كامپيوتر سرويس دهنده تقاضا ميكند. كامپيوتر سرويس دهنده اطلاعات درخواستي را به Client برميگرداند و كامپيوتر Client روي آن اطلاعات كار ميكند.
همانطور كه قبلا بيان شد صفحات ASP شامل تركيبي از HTML و كدهاي برنامهنويسي ميباشند، اين كد كه با زبانهاي مختلف ميتواند نوشته شود. به صفحات ASP اجازه ميدهد كه به صورت پويا عمل كنند. هر چند سرويس دهنده وب مجبور است كدهاي برنامهنويسي را قبل از فرستادن HTML پردازش كند. وقتي كه مرورگر وب درخواست يك صفحة ASP را ميكند مراحل زير اتفاق ميافتد.
1- سرويس گيرنده محل سرويس دهنده را به وسيله بخش اول URL تعيين ميكند.
(www. Something . com)
2- سرويس گيرنده درخواست صفحة ASP را به وسيله بخش دوم URL انجام ميدهد. (default. Asp)
3- سرويس دهنده وب فايل ASP را ميخواند و كدها را پردازش ميكند.
4- بعد از اينكه صفحة ASP بطور كامل به وسيله سرويس دهنده پردازش شد خروجي به فرمت HTML به سرويس گيرنده فرستاده ميشود.
5- سرويس گيرنده HTML فرستاده شده به وسيله سرويس دهنده را دريافت كرده و آن را براي كاربر اجرا ميكند.
توجه
توجه كنيد كه كد ASP به وسيله علامت < % % > احاطه شده است. وقتي يك صفحه ASP از يك سرويس دهنده وب درخواست ميگردد سرويس دهنده وب بطور كامل همة كدهاي مابين دو علامت < % % > را قبل از فرستادن خروجي براي سرويس گيرنده پردازش ميكند.
فرق بين ASP با تكنولوژي Client – side scripting
وقتي از ASP استفاده ميشود مهم است بدانيد كه كدهاي ASP فقط روي سرويس دهنده وجود دارند. كد ASP كه توسط محدودكنندههاي < % % > محصور ميشوند توسط سرويس دهنده كامل پردازش ميگردند. سرويس گيرنده به اين كدهاي ASP دسترسي ندارد. Client – side scripting كدهاي برنامهنويسي است كه در يك فايل HTML روي مرورگر اجرا ميگردد.
كدهاي اسكريپتنويس Client – side شبيه كدهاي HTML است و به وسيله تگ < Script > HTML فهميده ميشود. فهميدن اينكه اسكريپتهاي Client – side و اسكريپتهاي Server – side دو موجوديت كاملا مجزا هستند بسيار مهم است. براي بحث و توضيح بيشتر به آدرس زير مراجعه كنيد.
http: //www. 4 guys formolla.com / Webtech / 0823921. Shtml
قابليتهاي ASP
استقلال از مرورگر
ASP از مروگر كاملا مستقل است زير تمامي دستورالعملها بر روي سرور اجرا ميشود و مروگر تنها صفحات HTML معمولي را به عنوان حاصل اجراي دستورالعملها دريافت ميكند.
استفاده از زبان دستورالعملنويسي
اين بدين معني است كه يك برنامه ASP به راحتي قابل تغيير است چرا كه زبانهاي دستورالعملنويسي نياز به كامپايل نداشته و به راحتي ميتوان در يك ويرايشگر مثل Notepad برنامه نوشت و آن را تغيير داد.
دسترسي آسان و سريع به انواع بانكهاي اطلاعاتي
اعمال پيچيده مربوط به پردازش بانكهاي اطلاعاتي در ASP بسيار ساده است و به سرعت ميتوان برنامه دلخواه را نوشته يا تغيير داد.
همان روش مورد استفاده در VB يا C++ را ميتوان در ASP استفاده كرد. (ADO)
ايجاد صفحات ASP
صفحات ASP، همانند صفحات وب HTML، فايلهاي متني ساده بر روي سرويس دهنده وب ميباشندو براي ايجاد صفحه ASP بعد از اينكه سرويس دهندة وب را نصب كرديد تمام چيزي كه شما احتياج داريد يك ويرايشگر متن همانند برنامة Notepade است. برنامه Notepad به صورت معمول براي ايجاد و اصلاح صفحات ASP استفاده ميشود.
ايجاد ASP توسط Notepade داراي مزايا و معايبي مي باشد ابتدا مزاياي اين كار را بيان ميكنيم.
مزايا
سرعت: Notepad يك ويرايشگر كوچك و كاراست
سادگي به كارگيري: چون Notepade گزينههاي زيادي ندارد.
معايب
نداشتن پشتيباني سايت وب: با Inter Der يا Front page شما ميتوانيد سراسر سايت وب را مديريت كنيد. ولي با Notepade شما فقط ميتوانيد يك فايل در يك زمان را ويرايش كنيد.
- كدهاي دستور زبان غير رنگي: وقتي از Front page و يا Inter Der استفاده ميكنيم قطعات مختلف كدهايمان رنگهاي متفاوت خواهد داشت.
- نداشتن ابزار صفحات وب Drog - & - drop: هم Inter Der و هم Front page به ما اجازه ميدهند كه ظواهر صفحه وب را به وسيله كشيدن و رها كردن اشياء يا عناصر داخل صفحه وب ايجاد نمائيد.
بعد از اينكه يك وب سرور را نصب كرديم ميتوان صفحات ASP را در دايركتوري ريشه سايت وب خود ايجاد كنيد يا آن را در زير فهرستهاي دايركتوري ريشه قرار دهيم و صفحات ASP حاصله را توسط مرورگر وب استانداردي مشاهده نمائيم.
Delimiter
يك كاراكتر يا رشتهاي از كاراكترها كه ابتدا و انتهاي هر واحد را نشان ميدهد، ASP براي نشان دادن ابتدا و انتهاي هر واحد از < % % > استفاده ميكند و دستورات اسكريپت بيان اين علامتها قرار ميگيرند. متني كه بين دو عبارت < % % > قرار ميگيرد به عنوان كدهاي ASP در نظر گرفته ميشود به اين خاطر كه سرويس دهنده قبل از فرستادن صفحه براي مرورگر وب آنها را مور پردازش قرار ميدهد.
<HTML>
<BODY>
This page was last refreshed on
<% = now%>
</BODY>
<HTML>
تابع Now در VBScript زمان و تاريخ جاري را برميگرداند و زماني كه سرويس دهندة وب اين صفحه را پردازش ميكند به جاي تابع Now زمان و تاريخ جاري را، ميگذارد و نتيجه را به مرورگر ميفرستد دستوراتي كه به وسيله <% %> احاطه ميشوند فرمانهاي اوليه اسكريپت ناميده ميشوند اين فرمانها بوسيله زبان اسكريپت ابتدايي[1] پردازش ميشوند. دستوراتي كه بين Delimiter نوشته ميشود بايد براي زبان اسكريپت ابتدايي شناخته شده باشند كه اين زبان بطور پيشفرض VBScript است.
نوشتن كدهاي ASP بدون استفاده از <%… %>
اسكريپتهاي Client – Side بر روي كامپيوتر كاربر بعد از اينكه صفحه دريافت شد اجرا ميشود. اگر به يك اسكريپت Client – Side نگاهي بيندازيم احتمالا Tag هاي HTML، <Script> و </Script> را تشخيص ميدهيم. آنها به منظور درج كردن كد اسكريپت Client – Side در داخل يك صفحه HTML استفاده ميشود.
براي مثال ممكن است شما چيزي شبيه به اين را ببينيد:
<Script Language = Java Script>
d = new pate ( )
ie (d.get Hoors ( ) >12)
document. Write (“Good evening") ;
else
document. Write (“Good Morning") ;
</Script>
اگر شما از <Script> براي اسكريپتهاي Server – Side استفاده نماييد، يك پيچيدگي اضافي وجود خواهد داشت. حتي ميتوانيد <Script> و <%… %> را در يك صفحه به صورت تركيبي به كار ببريد.
تابع Response . write در VBScript ميتواند به جاي docuument. Write استفاده شود. علت استفاده اين تابع اين است كه ASP موجود در روي سرويس دهنده را به شكل HTML كه مرورگر وب كاربران نشان ميدهد، تبديل نماييد. براي مثال:
<B>
<%
Response . write "Hello"
%>
</B>
متن Hello به خروجي فرستاده ميشود.
اگر متن نوشته شده با تابع Response . write شامل Tagهاي HTML نيز باشد آنها نيز توسط مرورگر وب كاربران تفسير خواهد شد.
استفاده از دستور دهندههاي[2] ASP
دو نوع دايركتيو در ASP وجود دارد كه عبارتند از
1- ASP outpot directive ها. كه بصورت زير استفاده ميشوند.
<% expression %> كه مقدار expression را نشان ميدهد و اين معادل Response . write است.
2- ASP Processing directive ها كه بصورت زير استفاده ميشوند.
<% a key word %>
اين دسته اطلاعات لازمي را كه براي پردازش صفحات ASP لازم است را در اختيار ما قرار ميدهند. مثلا <% a language = VBScript %> يعني زبان اوليه براي اسكريپتها VBScript ميباشد.
اين دايركتيوها بايد در خط اول فايل ASP باشند و نمي توان آن را به عنوان يك فايل ديگر به برنامه اضافه كرد همچنين لازم است يك فضاي خالي بين @ و كلمه كليدي وجود داشته باشد.
كلمات كليدي كه در Processing directive استفاده ميشوند، عبارتند از:
- lANGUAGE، زبان مورد نياز براي صفحات را مشخص ميكند.
- CODEPAGE، كد صفحه لازم را براي صفحات مشخص ميكند.
- LCID، شناسههاي محلي براي صفحه را مشخص ميكند.
- TRANSACTION، مشخص ميكند كه صفحه تحت چه تراكنشي اجرا خواهد شد.
ENABLE SESSION STATE -
ميتوان از بيش از يك كلمه كليدي در يك Directive استفاده كرد هر كلمه كليدي و تعداد آن توسط => از هم جدا ميشوند و هيچ فضاي خالي ديگري نبايد بين آنها باشد.
<% a lANGUAGE = Jscript CODE PAGE = 932 %>
كار كردن با زبانهاي اسكريپت
بطور كلي در زبانهاي اسكريپت واسطي بين HTML و زبانهاي برنامهنويسي مانند جاوا و C++ و ويژوال بيسيك وجود دارد HTML براي فرمت كردن متنها و لينك كردن صفحات، مورد استفاده قرار ميگيرد و زبانهاي برنامهنويسي براي دادن دستورات پيچيده به كامپيوتر استفاده ميشود.
زبانهاي اسكريپت ميتوانند همچنين دستورات را به كامپيوتر بدهند و قوانين و فرمهاي آنها آسانتر از زبانهاي برنامهنويسي ديگر ميباشد. زبانهاي اسكريپت روي فرمت متن متمركز ميشوند و از اجزاي كامپايل شده زبانهاي برنامهنويسي استفاده ميكند.
ASP اين امكان را ميدهد كه رويههاي كاملي را بوسيله استفاده از انواع مختلف زبانهاي اسكريپت بنويسيم. در حقيقت ميتوان از چندين زبان اسكريپت در يك فايل ASP استفاده كرد بعلاوه به دليل اينكه روي سرويس دهنده خوانده و پردازش ميشود مرورگر CLIENT كه فايل ASP را درخواست ميكند نيازي نيست كه اسكريپتها را ساپورت كند. و هر زبان اسكريپت را كه مناسب با Scripting engine است ميتوان روي سرويس دهنده وب نصب كرد.
استفاده از VB و JS روي سرويس دهنده
Java Script معمولا براي اسكريپتهاي Server – Side مورد استفاده قرار نميگيرد. VBScript به خاطر راحتي در يادگيري، بيشتر در نظر گرفته ميشود. بنابراين ما از Java Script براي اسكريپتهاي Server - Side استفاده نميكنيم. زبان Java Script سختتر از C و C++ و زبان برنامهنويسي Java نميباشد، اولين مزيت VBScript راحتي يادگيري آن است. VBScript بر پايه VB است. VBScript همچنين زبان پيشنويس فرض براي ASP ميباشد. اين بدان معني است كه اگر شما قصد داريد از VBScript استفاده كنيد ميتوانيد از خط
<% @ Language … %> استفاده نكنيد.
فرمانهاي VBScript
در VBScript، توضيحات بوسيله (‘) شروع شده و برخلاف HTML زماني كه اسكريپت پردازش ميشود آنها حذف شده به مرورگر فرستاده نميشوند. در جملات خروجي نبايد يك توضيح قرار داد به عنوان مثال عبارت زير صحيح نيست.
<% = Name this prints the variahe name %>
اما عبارت زير كار ميكند.
<% i = i+1 this incrementi %>
فرمانهاي Jscript
در Jscript توضيحات با (“) شروع ميشوند VBScript به حروف بزرگ و كوچك حساس نيست اما نميتوان دو متغير همنام داشت در حاليكه Jscript به اين مسئله حساس است و اسم اشياء بايد با حروف بزرگ نوشته شود اما متدها و خاصيتها ميتوانند با حروف كوچك هم نوشته شوند و ASP از Jscript تبعيت ميكند.
استفاده از متغيرها و ثابتها
اعلان متغيرها در VBScript:
در VBScript، همه متغيرها به وسيله كلمه كليدي Dim تعريف ميشود. اين بدين خاطر است كه در VBScript از Variant variables ها استفاده ميگردد. بنابراين، جمله معادل براي آن چيزي كه در C++ توصيف شده عبارت زير است. استفاده كردن از عبارت <% Option Explicit %> باعث ميشود كه همه متغيرها از نوع توصيف صريح تعريف شود.
دامنة متغيرها
متغيرهاي سراسري و متغيرهاي محلي ميتوانند همنام باشند به مثالهاي زير توجه كنيد.
<%
Dim y
Y=1
Call set laocal Variable
Response. Write y
Sub set Local Variable
Dim y
Y=2
End sub
مثال فوق مقدار Y را 1 برميگرداند.
اما در مثال زير مقدار 2 برگردانده ميشود. زيرا متغير Y صريحا اعلان شده است.
<%
Y=1
Call setlaocal Variable
Response. Write y
Sub setlocal Variable
Y=2
End sub
%>
ولي بايد تا حد امكان سعي كنيم كه متغيرها را اعلان كنيم بخصوص زماني كه بخواهيم از جملات #include[3] براي صفحه Asp استفاده كنيم.
تعيين دامنه متغيرها
براي اينكه متغيرهاي ما در تمام صفحات قابل دسترسي باشند از دو روش استفاده كنيم.
1- Session Scope variable متغيرهايي هستند كه در تمام صفحات يك كاربرد ASP موجودند و توسط يك كاربر درخواست ميشوند.
2- Application Scope variable متغيرهايي كه در تمام صفحات وجود دارند و بوسيله هر كاربري مي توانند درخواست شوند.
نوع اول يك روش خوب براي ذخيرهسازي اطلاعات براي يك كاربر ميباشد اما روش دوم براي ذخيرهسازي اطلاعات براي همة كاربران در يك كاربرد بخصوص است. ASP از دو شيء براي موارد فوق استفاده ميكند.
1- Session object
2- Application object
براي اينكه به يك متغير دامنة Session داده شود آن متغير را در شيء اول ذخيره كنيم و يك مقدار به اسم داخل شيء نسبت ميدهيم مثال 1:
<%
Session ("first name") = "Jeff"
%>
و براي بدست آوردن اطلاعات ذخيره شدن از دستور زير استفاده كنيم.
Wellcome <% = Session ("first name") %>
مثال 2:
<% Application ("Greeting"); Well come to exploration Air" %>
براي بدست آوردن اطلاعات ذخيره شده از Response. Write و يا از
Output directive استفاده ميكنيم.
Response. Write "session ("first name") %>
و يا روش
<% = Application ("first name") %>
<% = Session ("first name") %>
استفاده از ثابتها
ثابتها مكاني از اعداد يا رشتهها را بوسيله اسمي مشخص ميكنند برخي از اجزاي اساسي تهيه شده با ASP مانند ADO ثابتهاي ما را كه ميتوانيم در اسكريپتهايمان استفاده كنيم را تعريف ميكنند.
يك جزء ميتواند اجزاي داخل يك كتابخانه اجزا را اعلان كند كه فايلي است شامل اطلاعاتي دربارة شيء و نوع آنها كه بوسيله يك جزء Activex پشتيباني ميشوند. از اينرو ميتوان يك كتابخانه را در داخل يك Global. asa اعلان كرد و مي توان اجزاء تعريف شده را در داخل هر اسكريپتي در برنامه به كار برد. براي اعلان يك نوع كتابخانه ميتوان از تگ <METADATA> در فايل Global. asa استفاده كرد.
مثال:
<! –METADATA type = “typelib”
File = "C:/ program files \ common files\
System ado \ msado
-- >
پس ميتوان ثابتهاي ADD را در هر اسكريپتي در برنامه مشابه بكار برد در مثال زير Ado penkeyset و Adlock optimistic دو ثابت ADO هستند.
Create and open Recordset object
Set Rs Customer list = server. Create object ("ADO DB. Recordset")
RS Customer list. Active connection = OB odb Connection
RS Customer list. Cursortype = acdopenkey set
RS Customer list. Lock type = adlock optimistic
براي استفاده از ثابتها در VBScript از جمله Const و در Jscript از Var استفاده ميكنيم و براي استفاده از يك ثابت در چندين صفحه آن را در فايل جداگانه قرار داده آنگاه به صفحات ASP كه آن را نياز دارند Include ميكنيم.
نوشتن رويهها
سابروتينها (رويهها Procedure) عملياتي را انجام ميدهند. يك نمونه ساده از سابروتين در زير بيان شده است.
Subname
Code block
End sub
براي ساختن يك سابروتين به صورت نمونه به شكل زير عمل ميشود.
Sub subHeading
Response. Write ("< p align = right>">)
Response. Write ("Your name <BR>")
Response. Write ("Your name <HR>")
حال اگر اين سابروتين را داخل صفحه خود قرار دهيد براي شما سر تيتر را چاپ ميكند.
صدا زدن رويهها
براي فراخواني رويه اسم آن را داخل دستوراتمان ميآوريم اگر رويههاي Jscript را در Vbscript فراخواني كنيم بعد از اسم رويه بايد پرانتز بگذاريم و اگر رويهاي پارامتر ندارد از پرانتز خالي استفاده كنيم اگر رويههاي Jscript و Vbscript را از Jscript فراخواني كنيم بعد از اسم رويه هميشه از پرانتز استفاده ميكنيم.
براي Vbscript مي توان از لغت كليدي Call نيز استفاده كرد و اگر روية ما داراي پامتري نيز هست ليست آرگومانهاي آن بايد در پرانتز قرار بگيرد. و اگر از فرم Call استفاده كنيم براي هر تابعي، مقدار بازگشتي تابع رد ميشود.
<%@ LANGUAGE = VBSCRIPT %>
<HTML>
<BODY>
<%Call Echo %>
<BR>
<%Call print Data %>
</BODY>
</HTML>
<%
Sub Echo
Response. Write "<TABLE>"
Response. Write "<TR> <TH> Name </TH> <TH> value
</TH> </TR>
Set params = Request. Quary string
For Wach p in params
Response. Write "<TR> <TD>” & p &” </TD> <TD>”
& params (p)
& “</TD> </TR>”
Next
Response. Write "</Table>”
End sub
%>
<Script LANGUAGE = Jscript Runat = server
Function print Data
Var x
X = new Data ( )
Response. Write (x. tostring ( ) )
</Script>
براي انتقال آرايه يك رويه در VB از اسم و آرايه همراه پرانتزهاي خالي استفاده ميكنيم و در Jscript از براكت خالي استفاده ميكنيم.
استفاده از كامپونتها و اشياء
استفاده كردن از كدهايي كه قبلا نوشته شدهاند كاري ضروري ميباشد. اگر هر فرد مجبور باشد كه تمامي چيزهايي كه لازم دارد را خودش بساز كار زيادي نميتواند انجام دهد. خوشبختانه، راههاي زيادي براي استفاده مجدد از كدها وجود دارند. عمل Copy و Paste براي كارهاي كوچك مورد استفاده قرار ميگيرند، اما براي قطعاتي بزرگ از كدها كاربرد ندارند. به همين دليل است كه از كامپونتها استفاده ميشود. كامپونتها كدهايي كه مورد احتياج ميباشند را بستهبندي و از هم جدا ميكند تا براي شما قابل دسترس شوند.
هنگامي كه يك كار بصورت يك كار عادي در آمد، بعضي از افراد براي آن كار يك كامپونت مينويسند. بعضي از كامپونتها را ميتوان بطور رايگان از طريق وب دريافت كرد ولي بعضي ديگر را بايد خريد.
نمونهسازي كامپونتها
كامپونتهاي پيشساخته را با استفاده از متدهاي Set و Creat object از آبجكت Server، نمونهسازي مينمايند. اولين قدم، تعريف متغيري است كه آبجكت Server را نگهداري مينمايد. معمولا نام اين متغير را با پيشوند “Obj” شروع ميكنند.
Dim objwhatever
Set objwhatever = Server. Creat object ("classname. Componentnan”)
Classname عبارت MSWC ميباشد كه بستهاي است كه كامپونتها در آن قرار دارند.
آزاد كردن حافظه از كامپونتها: آزادسازي حافظهاي كه در اختيار كامپونت است هنگامي كه كار با كامپونت تمام ميشود داراي اهميت ميباشد. اگر چه خود ASP بايد اين كار را براي شما انجام دهد، اما عاقلانه نيست كه خيلي به اين مسئله اطمينان نماييد.
اگر ASP در انجام اين كار با شكست مواجه شود، شما به انواعي از گرفتاريها دچار خواهيد شد.
براي اينكه حافظه را به صورت صريح از كامپونتهاي Objwhatever پاك كنيد بايد به صورت زير عمل كنيد.
Set objwhatever = Nothing
Ad Rotator: تبليغات در همه جاي وب وجود دارد. خوب يا بد. آرمهاي تبليغاتي 460 x60 تبديل به بخش ثابتي از وب، تحت عنوان www.com. شده اند. مايكروسافت براي اينكه بتوانيد آرمهاي سايتتان را به سادگي تغيير دهيد كامپونت Ad Rotator را ساخته است.
استفاده از ASP براي ساختن اشياء (Object)
خود ASP نيز يكسري از اشياء را تهيه ميكند براي مثال Request كه براي دادههاي عبور داده شده به يك سرور را ذخيره مي كند براي فرستادن اطلاعات به سرور بر خلاف موارد گذشته ديگر نيازي به تهيه نمونه از شيء نيست.
صدا زدن يك متد شيء
يك متد يك عمل ميباشد كه مي توان روي يك شيء يا با يك شيء انجام داد.
فرم مربوطه بصورت زير است.
Object. Method parameters
مثال: ميتوان از متد Write براي فرستادن اطلاعات به مرورگر استفاده كرد.
<%Response. Write “Hello world”>
هماهنگ كردن خاصيتهاي يك شيء (Object)
ميتوان مقادير خاصيتها را خواند و يا اين خاصيتها را مقداردهي كرد و يا خواص جديد اضافه كرد.
فرم كلي آن بصورت زير است.
Object property
به عنوان مثال AD Rotator Component يك خاصيت به نام Border دارد.
<% my Ads. Border = 0%.>
براي برخي از خاصيتها ميتوان مقادير جاري را نشان داد اين كار را ميتوان به كمك خروجي مستقيم ASP انجام داد مثال زير چنانچه مرورگر هنوز به Server وصل باشد مقدار درست را برميگرداند.
<% = Response. IS client connected %>
استفاده از كلكسيونها (Collection)
اغلب اشيا (object)هاي ساخته شده در ASP، كلكسيون را پشتيباني ميكنند يك كالكشن مكاني براي ذخيرهسازي رشتهها، اعداد، شيءها و ديگر مقادير ميباشد در واقع شبيه يك آرايه است با اين تفاوت كه به آساني ميتواند توسعه پيدا كند يعني زماني كه عناصري به آن اضافه ميشود بطور اتوماتيك توسعه مييابد.
برخلاف يك آرايه موقعيت يك عنصر برحسب تغييرات انجام شده روي كلكسيون عوض ميشود و ميتوان به يك عنصر بوسيله اسم يا انديس و يا حركت مكرر ميان عناصر دسترسي پيدا كرد.
چرا آبجكتها ميتوانند در صفحههايي كه مي نويسيد مفيد باشند؟
آبجكتها به افزايش سطح تجرد در صفحههايتان كمك ميكند. به شما گفته ميشود كه بصورت تصادفي يك پرچم انتخابي را نمايش دهيد. ميتوانيد در ميان ليست پرچمها يكي را انتخاب كنيد به اين صورت كه تابع Random كه اعداد تصادفي توليد ميكند را اجرا كرده و بعد كدي را براي Tag <Img SRC = …> بنويسيد. ميتوانيد تمام اين كارها را هر زماني كه ميخواهيد يك پرچم را نمايش دهيد انجام دهيد. اما سادهتر آن است كه تمام كارهايي را كه ميخواهيد انجام شود در داخل يك آبجكت كه يك پرچم را بصورت تصادفي نمايش ميدهد بنويسيد بعد از اين كار احتياج داريد به اينكه فقط چيزي مثل Random Banner را بنويسيد. پس از آن اگر بخواهيد به سيستم نمايش پرچم خود، چيزي را اضافه يا تغيير دهيد، فقط احتياج داريد كه يك تكه از كد را تغيير دهيد.
Cookies
كوكيها فايلهاي كوچكي ميباشند كه سايتهاي وبي كه از آنها بازديد ميكنيد بر روي كامپيوترتان ذخيره ميكند. كوكيها به سايت وب چيزهايي مثل اينكه چه كسي هستيد با چه كاري را وقتي صفحه را قبلا ديديد انجام داديد را ميگويند. Response شامل يك مجموعه به نام Cookies ميباشد كه ميتواند براي نوشتن كوكيها مورد استفاده قرار گيرد.
كوكيها داراي دو دسته دستور ميباشند.
Request. Cookies (Cooki Name) [ (KeyName) ]
اين دستور براي خواندن كوكيها مورد استفاده ميباشد.
دستور دوم Request. Cookies است كه براي نوشتن كوكيها مورد استفاده است.
هماهنگ كردن دامنة اشياء
دامنة يك شيء تعيين ميكند كه كدام اسكريپتها ميتوانند به آن دسترسي داشته باشند بطور پيش فرض دامنه، يك صفحه ASP ميباشد و تمام اسكريپتهاي نوشته شده در آن صفحه ميتوانند به شيء دسترسي داشته باشند اما ميتوان اين دامنه را تغيير داد.
دادن دامنه سيشن (Session) به يك شيء
اگر دامنة يك شيء از نوع Session. Scope باشد آن شيء در پايان سيشن پاك ميشود دامنة سيشن براي اشيائي استفاده ميشود كه بوسيله چندين اسكريپت فراخواني ميشوند اما فقط روي يك كاربر اثر ميگذارند براي داشتن دامنه سيشن بايد شيء را در سيشن ذخيره كنيم و يا از تگ <Object> در فايل Global. asa استفاده كنيم و يا از متد Server. Create object در يك صفحة ASP استفاده كنيم.
مثال:
<OBJECT Runat Server Scope = Session
ID = my AD
PROGID = "mswc. Ad rotator">
</OBJECT>
بدين ترتيب شيء ذخيره شده در سيشن ميتواند توسط ديگر صفحات قابل دسترسي باشد.
مثال زير شياي را كه در مثال قبل ايجاد شده را استفاده ميكند.
<% = myAd. Get Advartis ement ("Ad Rotator. Txt”) %>
مثال فوق با استفاده از متد Server. Create object
<% = Set Session (“myAd”) = Server. Create object ("mswc. Adrotator %>
حال براي نمايش Ad مينويسيم
<% = Set myAd = Session (("my Ad”) %>
آنگاه از متدي براي نمايش Ad استفاده ميكنيم.
استفاده از تگ </OBJECT> اجراي بهتري را نسبت به متد Server. Create object عرضه ميكند.
با استفاده از دو مجموعة Static object و Contents ميتوان در داخل متغيرهاي Session ذخيره شده در يك Session كاربر (بجز در آبجكتهاي متغير Session ايجاد شده در يك صفحه Asp) وقتي از آبجكت Session براي پايدار نگهداشتن سايت وب خود استفاده ميكنيد فكر كنيد آبجكت Session يك انبار ميشود و متغيرهاي Session كالاهاي داخل انبار ميباشند. چون هر كاربر، Session مختص به خود را دارد هر كاربر ميتواند مقادير متغير Session منحصر به فردي را داشته باشد.
دامهاي متغيرهاي Session:
وقتي از متغيرهاي Session در نرمافزار وب خود استفاده ميكنيد از چند تله عادي اجتناب كنيد:
- دام 1- قرار دادن آبجكتها در يك Session كاربر
- دام 2- تنظيم خاصيت Timeout به يك مقدار غير بهينه
- دام 3- ايجاد متغيرهاي Session غير ضروري
چون هر كاربر براي خودش نمونهاي از آبجكت Session را تخصيص ميدهد، هر چه تعداد زيادي كاربر بطور همزمان از سايتتان بازديد كنند، نمونههاي بيشتري از Session مورد نياز ميباشد. اگر شما آبجكتهاي بزرگي را داخل Session كاربر قرار دهيد هر آبجكت Session رشد خواهد كرد و به حافظه بيشتري از سرويس دهنده وب نياز پيدا ميكند.
دادن دامنه كاربردي به يك شيء
همانطور كه آبجكتهاي Session بزرگتر و بيشتر نمونهسازي ميشوند سرويس دهنده وب شما كندتر خواهد شد. به همين دليل عاقلانه است كه آبجكتها را از Session خارج كنيد.
تله دوم وقتي است كه هنگام استفاده از آبجكت Session، خاصيت Timeout را يك مقدار غير بهينه قرار ميدهند. وقتي كاربر براي مدت زمان معيني سايت شما را مورد بازديد قرار نداد، Session كاربر از حافظه آزاد ميشود. اين طول از زمان قبل از اينكه Session پايان بپذيريد را اصطلاحا Session Timeout گويند. اين مقدار را خيلي بزرگ نگيريد.
تله سوم: اگر شما در حال استفاده از متغيرهاي Session براي ذخيره اطلاعاتي هستيد كه كاربر معيني ندارند به جاي آن از آبجكت Application استفاده كنيد.
1- Primary Scripting Language (P.S.L)
2- Directive
[3] - شامل يك فايل جداگانه است كه در هر كجاي برنامه كه صدا شود اجرا ميشود.