ASP Global.asa ফাইল
- পূর্ববর্তী পৃষ্ঠা ASP #include
- পরবর্তী পৃষ্ঠা ASP ইমেইল
Global.asa ফাইলটি একটি বাছাইযোগ্য ফাইল যা, এসপি অ্যাপ্লিকেশনের প্রত্যেক পেজ দ্বারা ব্যবহৃত অবজেক্ট, ভেক্টর এবং পদ্ধতির ঘোষণা সম্মিলিত করতে পারে。
Global.asa ফাইল
Global.asa ফাইলটি একটি বাছাইযোগ্য ফাইল যা, এসপি অ্যাপ্লিকেশনের প্রত্যেক পেজ দ্বারা ব্যবহৃত অবজেক্ট, ভেক্টর এবং পদ্ধতির ঘোষণা সম্মিলিত করতে পারে। সব বৈধ ব্রাউজার স্ক্রিপ্টটি Global.asa-তে ব্যবহার করা যায়。
Global.asa ফাইলটি নিম্নলিখিত সামগ্রী সম্মিলিত করতে পারে:
- Application 事件
- Session 事件
- <object> ঘোষণা
- TypeLibrary ঘোষণা
- #include নির্দেশ
মন্তব্য:Global.asa ফাইলটি এসপি অ্যাপ্লিকেশনের মূল ডিরেক্টরিতে থাকতে হবে এবং প্রত্যেক অ্যাপ্লিকেশনে কেবল একটি Global.asa ফাইল থাকতে হবে。
Global.asa 中的事件
Global.asa-তে, application এবং session অবজেক্টকে শুরু এবং শেষের কাজ করার জন্য আমরা জানাতে পারি।এই কাজ করার কোডটি event handler-এ স্থাপন করা হয়।Global.asa ফাইলটি চারটি ধরনের ইভেন্ট ধারণ করতে পারে:
Application_OnStart - এই ইভেন্টটি প্রথম ব্যবহারকারীর প্রথম পেজ অনুরোধ করার সময় ঘটবে।এই ইভেন্টটি Web সার্ভার পুনরুদ্ধার হওয়ার পর বা Global.asa ফাইল সংশোধিত হওয়ার পর ঘটবে।"Session_OnStart" ইভেন্টটি এই ইভেন্টটির পর তাত্ক্ষণিকভাবে ঘটবে。
Session_OnStart - এই ইভেন্টটি প্রত্যেক নতুন ব্যবহারকারীর প্রথম পেজ অনুরোধ করার সময় ঘটবে
Session_OnEnd - এই ইভেন্টটি প্রত্যেক ব্যবহারকারীর session শেষ হওয়ার সময় ঘটবে।যদি নির্দিষ্ট সময় (ডিফল্ট ইভেন্ট 20 মিনিট) এর মধ্যে কোনো পেজ অনুরোধ করা না হয়, session শেষ হবে
Application_OnEnd - এই ইভেন্টটি শেষতম ব্যবহারকারীর session শেষ হওয়ার পর ঘটবে।সাধারণভাবে, এই ইভেন্টটি Web সার্ভার স্টপ হওয়ার সময় ঘটবে।এই সাব-প্রোগ্রামটি অ্যাপ্লিকেশন স্টপ হওয়ার পর সংযোজন করা, যেমন রেকর্ড মুক্ত করা বা টেক্সট ফাইলে তথ্য লিখা করা জন্য ব্যবহৃত হবে
Global.asa ফাইল এমনভাবে হতে পারে:
<script language="vbscript" runat="server"> sub Application_OnStart 'some code end sub sub Application_OnEnd 'some code end sub sub Session_OnStart 'some code end sub sub Session_OnEnd 'some code end sub </script>
মন্তব্য:Global.asa ফাইলে ASP-এর স্ক্রিপ্ট বিভাজক (<% এবং %>) ব্যবহার করতে পারলেও, আমরা HTML-এর <script> ইউনিট ব্যবহার করবো
<object> ঘোষণা
Global.asa ফাইলে <object> ট্যাগ ব্যবহার করে session বা application ক্ষেত্রপ্রসারের অবজেক্ট তৈরি করা যায়
মন্তব্য:<object> ট্যাগটি <script> ট্যাগের বাইরে থাকবে
সংজ্ঞা:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
পারামিটার | বর্ণনা |
---|---|
scope | অবজেক্টের ক্ষেত্রজোগ্যতা (ক্ষেত্রপ্রসার) (Session বা Application) সংযোজিত করুন |
id | অবজেক্টকে একটি অভিন্ন id নির্দিষ্ট করুন |
ProgID |
ClassID-এর সাথে সংযুক্ত id।ProgID-এর ফরম্যাট: [Vendor.]Component[.Version] ProgID অথবা ClassID নির্দিষ্ট করা আবশ্যক |
ClassID |
COM ক্লাস অবজেক্টের জন্য একটি অভিন্ন id নির্দিষ্ট করুন ProgID অথবা ClassID নির্দিষ্ট করা আবশ্যক |
ইনস্ট্যান্স
প্রথমটি "MyAd" নামক এবং ProgID পারামিটার ব্যবহার করে session কার্যক্ষেত্রের অবজেক্ট নির্মিত হয়
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
দ্বিতীয়টি একটি "MyConnection" নামক এবং ClassID পারামিটার ব্যবহার করে নির্মিত হয়
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
এই Global.asa ফাইলে ঘোষিত এই অবজেক্টগুলি অ্যাপ্লিকেশনের যে কোনও স্ক্রিপ্ট দ্বারা ব্যবহৃত হতে পারে
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
আপনি এই "MyAd" অবজেক্টকে ASP অ্যাপ্লিকেশনের যে কোনও পাতায় উল্লেখ করতে পারেন:
কোনও .ASP ফাইল:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary ঘোষণা
TypeLibrary (টাইপ লাইব্রেরি) একটি কন্টেনার, যাতে কম অবজেক্টের জন্য DLL ফাইল রয়েছে। Global.asa-তে TypeLibrary-এর কোল অন্তর্ভুক্ত করে কম অবজেক্টের কনস্ট্যান্ট পরিবর্তনকারী এবং ASP কোডও ত্রুটি রিপোর্ট করার কার্যকরী হয়। যদি আপনার সাইটের অ্যাপ্লিকেশনটি টাইপ লাইব্রেরিতে ঘোষিত ডাটা টাইপ কম অবজেক্টের ওপর নির্ভর করে, তবে আপনি Global.asa-তে TypeLibrary-কে ঘোষণা করতে পারেন
সংজ্ঞা:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
পারামিটার | বর্ণনা |
---|---|
file | টাইপ লাইব্রেরির জন্য সম্পূর্ণ পথ নির্দিষ্ট করে। পারামিটার file বা uuid, উভয়ই অপরিহার্য |
uuid | টাইপ লাইব্রেরির জন্য অতূল্য পরিচিতি নির্দিষ্ট করে। পারামিটার file বা uuid, উভয়ই অপরিহার্য |
version | বাছাইযোগ্য। সংজ্ঞায়িত সংস্করণ পাওয়া যায় না তবে, সবচেয়ে কাছাকাছি সংস্করণ ব্যবহৃত হবে |
lcid | বাছাইযোগ্য। টাইপ লাইব্রেরির জন্য এলাকা পরিচিতি করার জন্য ব্যবহৃত |
ত্রুটি মান
সার্ভার নিচের কোনও ত্রুটি সংদেশ ফেরস্টাইট
ত্রুটি | কোড | বর্ণনা |
---|---|---|
ASP | 0222 | অবৈধ টাইপ লাইব্রেরি সংকেতন |
ASP | 0223 | টাইপ লাইব্রেরি পাওয়া যায় না |
ASP | 0224 | টাইপ লাইব্রেরি লোড করা যায় না |
ASP | 0225 | টাইপ লাইব্রেরি ওয়েপিং করা যায় না |
মন্তব্য:METADATA ট্যাগটি Global.asa ফাইলের যে কোনও স্থানে (স্ক্রিপ্ট ট্যাগের অভ্যন্তর এবং বাইরেও) থাকতে পারে।কিন্তু, আমরা ফাইলের শুরুতে এই METADATA ট্যাগটি স্থাপন করার জন্য সুপারিশ করি。
প্রতিবন্ধকতা
Global.asa ফাইলের উপর যা উল্লেখ করা যায় এর প্রতিবন্ধকতা:
আপনি Global.asa ফাইলের টেক্সটকে দেখা পারবেন না।এই ফাইলটি কোনওভাবেই তথ্য প্রকাশ করতে পারে না。
আপনি শুধুমাত্র Application_OnStart এবং Application_OnEnd সাব-প্রোগ্রামগুলোতে Server এবং Application অবজেক্টকে ব্যবহার করতে পারেন।Session_OnEnd সাব-প্রোগ্রামে, আপনি Server, Application এবং Session অবজেক্টকে ব্যবহার করতে পারেন।Session_OnStart সাব-প্রোগ্রামে, আপনি যে কোনও নির্মিত অবজেক্টকে ব্যবহার করতে পারেন。
সাব-প্রোগ্রাম কিভাবে ব্যবহার করা যায়
Global.asa-এর সাধারণত বদলগুলোকে প্রথমবার চালু করা হয়。
নিচের উদাহরণে, কিভাবে ব্যবহারকারীর প্রথম সফরকারীকে পরিবর্তন করা যায়, এই উদাহরণে সময়টি "started" নামক Session অবজেক্টে সংরক্ষিত হবে, এবং "started" বদলের মূল্যটি অ্যাপলিকেশনের কোনওভাবেই এসপি পেজ পরিবর্তন করতে পারবে:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa-এর মাধ্যমে পেজ পরিবর্তন নিয়ন্ত্রণ করা যেতে পারে。
নিচের উদাহরণে, কিভাবে প্রত্যেক নতুন ব্যবহারকারীকে আরেকটি পেজে পরিবর্তন করা যায়, এই উদাহরণে "newpage.asp" পেজে পরিবর্তন করা হবে:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
আমরা আরও Global.asa-তে ফাংশন সম্মিলিত করতে পারি।
নিচের উদাহরণে, যখন ওয়েব সার্ভার চালু হয়, Application_OnStart সাব-প্রোগ্রামও চালু হয়।তারপর, Application_OnStart সাব-প্রোগ্রামটি "getcustomers" নামক আরেকটি সাব-প্রোগ্রামকে বিবেচনা করবে।"getcustomers" সাব-প্রোগ্রামটি একটি ডাটাবেস খুলব এবং "customers" টেবিল থেকে একটি রেকর্ড সেট ফিরিয়ে দেবে।এই রেকর্ড সেটটি একটি আইন্দ্রণে মূল্যায়িত হবে, এবং ডাটাবেস অনুসন্ধান না করেই, এই আইন্দ্রণটি কোনওভাবেই এসপি পেজ পরিবর্তন করতে পারবে:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Global.asa ইনস্ট্যান্স
এই উদাহরণে, আমরা একটি Global.asa ফাইল তৈরি করতে চাই যা বর্তমান পরিদর্শকদের সংখ্যা গণনা করতে পারে。
Application_OnStart সাব-রুটিন সার্ভার চালু হওয়ার সময় "visitors" Application ভ্যারিয়েবলের মান 0 সংযোজন করে।
যখন একজন নতুন ব্যবহারকারী আসে, Session_OnStart সাব-রুটিন "visitors" ভ্যারিয়েবল কোম্পাউন্ড করে 1।
যখন Session_OnEnd সাব-রুটিন সক্রিয় হয়, তখন এই সাব-রুটিন "visitors" ভ্যারিয়েবল থেকে 1 হ্রাস করে।
Global.asa ফাইল:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
এই ASP ফাইলটি বর্তমান ব্যবহারকারীর সংখ্যা দেখাবে:
<html> <head> </head> <body> <p>এখন <%=response.write(Application("visitors"))%> অনলাইনে আছে!</p> </body> </html>
- পূর্ববর্তী পৃষ্ঠা ASP #include
- পরবর্তী পৃষ্ঠা ASP ইমেইল