ASP Global.asa ফাইল

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>