برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

اسکریپت های سمت سرویس گیرنده در صفحات ASP.NET ( بخش اول )

برنامه های وب یکی از مهمترین دستاوردهای اخیر در صنعت نرم افزار می باشند که علل آن را می بایست در تاثیر اینترنت بر دنیای گسترده نرم افزار جستجو کرد  . آشنائی با معماری برنامه های وب و بکارگیری فن آوری های متعدد با توجه به ساختار  این نوع برنامه های کامپیوتری برای تمامی پیاده کنندگان علاقه مند حضور موثر و مستمر در این عرصه ، امری لازم و ضروری است .
برنامه های‌ وب دارای سه ویژگی مهم و برجسته می باشند :
  • مبتنی بر وب می باشند ( Web-based )
  • از معماری‌ سرویس گیرنده - سرویس دهنده Three tire استفاده می نمایند .
  • سیستم های پردازش اطلاعات می باشند ( در مقابل سیستم های عرضه اطلاعات )

با توجه به موضوع این مقاله اجازه دهید بر روی ویژگی دوم متمرکز شده و با آن بیشتر آشنا شویم .
واژه  "سرویس گیرنده - سرویس دهنده " نشاندهنده این واقعیت است که از شبکه های مبتنی ‌بر سرویس دهندگان به منظور مدیریت اشتراک منابع استفاده می گردد . برای توزیع پردازش از پتانسیل های سخت افزار‌ی و نرم افزاری سرویس دهندگان و سرویس گیرندگان استفاده می گردد و هر یک دارای سهمی در کل پردازش می باشند ( گرچه در توزیع سهم پردازش ، عدالت به درستی رعایت نشده باشد ) .
با توجه به رویکرد فوق، پیاده کنندگان برنامه های وب می توانند به منظور تامین خواسته های یک برنامه از پتانسیل های پردازش سمت سرویس دهنده و یا سمت سرویس گیرنده استفاده نمایند . برای تحقق پردازش های سمت سرویس دهنده و سرویس گیرنده از فن آوری های متعددی استفاده می گردد .
ASP.NET ، یک فن آوری سمت سرویس دهنده است و نمی تواند  مستقیما" با مرورگر تعامل و یا ارتباط داشته باشد .به عنوان نمونه ، در ASP.NET  مکانیزمی وجود ندارد که بتوان با استفاده از آن داده تایپ شده از طریق صفحه کلید توسط کاربر در برنامه مرورگر را دریافت ، به رویدادهای موس پاسخ و عملیاتی را انجام داد که مستلزم تعامل مستقیم با کاربر می باشند . ASP.NET صرفا" می تواند نتایج اینچنین تعاملاتی را پس از ارسال صفحه مشاهده و از آنان استفاده نماید و قادر به پاسخگوئی مستقیم به رویدادهای ایجاد شده در سطح مرورگر نمی باشد .
به منظور برخورد و مدیریت تعامل با مرورگر و رویدادهای محقق شده در آن سطح ، بهترین گزینه استفاده از اسکریپت های سمت سرویس گیرنده است که توسط یکی از زبان های اسکریپت نویسی نظیر جاوااسکریپت نوشته می گردند . اسکریپت های سمت سرویس گیرنده در مرورگر اجراء شده و می توانند بلافاصله نسبت به عملیات انجام شده توسط کاربر از خود واکنش نشان دهند . مثلا" با استفاده از اسکریپت های سمت سرویس گیرنده می توان یک افکت rollover را ایجاد و یا واکنش مناسبی را در زمان حرکت موس بر روی یک button و یا یک آیتم خاص موجود در منو انجام داد .
اسکریپت های سمت سرویس گیرنده توان عملیاتی پیاده کنندگان را به منظور برخورد با رویدادهائی که در سطح لایه رابط کاربر محقق می شوند و لازم است که بلافاصله به آنان پاسخ داده شود ، افزایش می دهد .

کنترل های سرویس دهنده ASP.NET و اسکریپت های سمت سرویس گیرنده
تعدادی از کنترل های سرویس دهنده ASP.NET  به منظور انجام وظایف از قبل تعریف شده خود نیازمند استفاده از اسکریپت های سمت سرویس گیرنده می باشند . به عنوان نمونه کنترل LinkButton  برای انجام فرآیند Postback نیازمند استفاده از اسکریپت های سمت سرویس گیرنده است . کد زیرنحوه استفاده ازکنترل LinkButton را نشان می دهد . ( پس از کلیک بر روی آن یک متن در کنترل label نمایش داده می شود) .

<%@ Page Language="VB" AutoEventWireup="True" %>

<script language="VB" runat="server">
     Sub LinkButton_Click(sender As Object, e As EventArgs)
         Label1.Text = "You clicked the link button"
      End Sub
</script>


<html>
<body>
<form runat=server>
<h3>LinkButton Example</h3>
<asp:LinkButton id="LinkButton1"
       Text="Test LinkButton"
       Font-Name="Tahoma"
       Font-Size="14pt"
       OnClick="LinkButton_Click"
        runat="server"/>
<p>
<asp:Label id=Label1 runat=server />
</form></body></html>

تحقق برخی از پتانسیل و قابلیت های صفحات ASP.NET نیز در ارتباط با اسکریپت های سمت سرویس گیرنده است و لازم است با نحوه استفاده کنترل های سرویس دهنده ASP.NET از اسکریپت های سمت سرویس گیرنده آشنا شویم چراکه از این طریق برداشت ما از نحوه تاثیر اسکریپت های سمت سرویس گیرنده بر روی صفحات وب ASP.NET شکل واقعی و منطقی خود را پیدا خواهد کرد .
اسکریپت های سمت سرویس گیرنده مورد نیاز  کنترل های سرویس دهنده ASP.NET به صورت اتوماتیک به صفحه اضافه می گردند. توجه داشته باشید که اسکریپت سمت سرویس گیرنده که به صورت اتوماتیک برای کنترل های سرویس دهنده ایجاد می گردد ، مستقل از سایر اسکریپت های سمت سرویس گیرنده ای است که توسط پیاده کنندگان نوشته می گردد . 
عناصر زیر از اسکریپت های سمت سرویس گیرنده استفاده می نمایند ( کنترل و یا برخی خصلت های مرتبط با یک کنترل)  :

  • کنترل های Page .HtmlForm و Panel : خصلت های DefaultFocus ، DefaultButton و MaintainScrollPositionOnPostback نیازمند استفاده از اسکریپت های سمت سرویس گیرنده می باشند .

  • کنترل های LinkButton, ImageButton و HtmlButton  از اسکریت های سمت سرویس گیرنده به منظور حمایت از رویداد Postback استفاده می نمایند. توجه داشته باشید که کنترل های Button Web server control، HtmlInputButton و HtmlInputImage به اسکریت های سمت سرویس گیرنده نیاز ندارند .

  • Calendar : کنترل فوق از کنترل LinkButton به منظور پیاده سازی حرکت در بین روز ، هفته و ماه استفاده می نماید . کنترل LinkButton از اسکریپت های سمت سرویس گیرنده برای رویداد postback استفاده می نماید . در صورتی که از کنترل calendar صرفا" به منظور نمایش یک ماه بدون امکان انتخاب و یا حرکت استفاده می گردد ، کنترل فوق نیازی به استفاده از اسکریت هآی سمت سرویس گیرنده ندارد .

  • DetailsView : در صورتی که کنترل شامل دکمه هائی باشد که به عنوان کنترل های LinkButton پیکربندی شده باشند ( برای ویرایش ، paging و ...)، به منظور انجام عملیات فوق از اسکریپت های سمت سرویس گیرنده استفاده می گردد . در صورتی که خصلت EnablePagingCallbacks فعال و مقدار آن True باشد ، از اسکریپت های سمت سرویس گیرنده به منظور مدیریت callback استفاده می گردد . 

  • GridView : در صورتی که کنترل شامل دکمه هائی است که به عنوان کنترل های LinkButton پیکربندی شده باشند ( برای ویرایش ، paging و ...) ، به منظور انجام عملیات فوق از اسکریپت های سمت سرویس گیرنده استفاده می گردد .  از اسکریپت های سمت سرویس گیرنده به منظور مرتب سازی و paging استفاده می گردد (در صورت حمایت کنترل منبع داده مرتبط با آن ). در صورتی که خصلت EnablePagingCallbacks فعال و مقدار آن True باشد ، از اسکریپت های سمت سرویس گیرنده به منظور مدیریت callback استفاده می گردد .

  • Label : خصلت  AssociatedControlID به همراه خصلت AccessKey اسکریپت های سمت سرویس دهنده ای را در پاسخ به keyboard shortcut  تولید می نمایند. در صورتی که خصلت های فوق مقداردهی نشده باشند ، کنترل Label  نیازی به استفاده از اسکریپت های سمت سرویس گیرنده ندارد .

  • Menu: از اسکریپت های سمت سرویس گیرنده برای باز وبستن آیتم های منو ، نمایش پانل های pop-out و کنترل نمایش زمانی که کاربر اشاره گر موس را بر روی آیتم های موجود در منو قرار می دهد ، استفاده می گردد . 

  • TreeView ، از اسکریپت های سمت سرویس گیرنده به منظور باز و بستن گره ها استفاده می نماید .

  • هر نوع کنترل سرویس دهنده ای که خصلت PostBack آن true باشد : رفتار خصلت AutoPostBack برای کنترل های غیر button  با استفاده از اسکریپت های سمت سرویس گیرنده پیاده سازی می گردد .

  • کنترل های Web Part از اسکریپت های سمت سرویس گیرنده به منظور حمایت از  Drag-and-drop ، افزودن کنترل های Web part به Zones و Verbs و صدور و یا ورود توانمندی ها استفاده می گردد .

  • کنترل های Validator ( شامل CompareValidator، CustomValidator ، RangeValidator ، RegularExpressionValidator ، RequiredFieldValidator ) ، از اسکریت های سمت سرویس گیرنده به منظور ارائه پاسخ فوری پس از بررسی اعتبار داده استفاده می نمایند. در صورتی که سرویس گیرنده از اسکریپت حمایت نمی نماید ، validation صرفا" بر روی سرویس دهنده اجراء خواهد شد .

  • هر متد و یا خصلتی که بر روی کنترل ها focus می نماید ، نظیر متد Focus بر روی کنترل ها و متد SetFocus صفحه : از اسکریپت های سمت سرویس گیرنده به منظور تنظیم focus بر روی کنترل مورد نظر استفاده می گردد .

اسکریت های سمت سرویس گیرنده مورد نیاز برای هر یک از کنترل ها و اعضاء به صورت اتوماتیک تولید و به همراه صفحه ارسال می گردد .
در برخی موارد ممکن است کاربران امکان استفاده از اسکریپت را در مرورگر خود غیرفعال نمایند ( اقدامی در جهت افزایش ایمنی سیستم ) . در صورت انجام این کار  ، نمی توان از پتانسیل های ارائه شده توسط اسکریپت های سمت سرویس گیرنده استفاده نمود و بدیهی است که برخی کنترل ها نظیر کنترل LinkButton ، بطور کامل از کار بیافتد و یا قابلیت های خصلت AutoPostBack غیرفعال گردد . برخی کنترل ها از وضعیت فوق کمتر متاثر شده و در شرایط خاصی می توانند عملیات خود را انجام دهند . مثلا" کنترل های Validation می توانند در صورت بروز مشکل در خصوص اجرای اسکریپت های سمت سرویس گیرنده ، آنان را سمت سرویس دهنده اجراء نمایند ( با این تفاوت که به دلیل اجرای آنان بر روی سرویس دهنده به کاربر سریعا" پاسخ داده نمی شود ) .

 استفاده از اسکریپت های سمت سرویس گیرنده  توسط پیاده کننده در صفحات ASP.NET
با توجه به این که رفتار صفحات ASP.NET در برخی موارد مشابه صفحات HTML است ، می توان اسکریپت های سمت سرویس گیرنده خود را به صفحات ASP.NET اضافه نمود . در صفحات ASP.NET از اسکریپت های سمت سرویس گیرنده به منظور پاسخ به رویدادهای محقق شده در سطح لایه رابط کاربر، حمایت می گردد . استفاده از اسکریپت های سمت سرویس گیرنده در یک صفحه ASP.NET  همانند سایر صفحات HTML است . با افزودن یک بلاک script به صفحه امکان نوشتن اسکریپت های سمت سرویس گیرنده فراهم می گردد . پیاده کنندگان می توانند از اسکریپت های سمت سرویس گیرنده به منظور نوشتن event handler به منظور پاسخ به رویدادهای محقق شده در سمت سرویس گیرنده نظیر رویداد onload صفحه نیز استفاده نمایند . زمانی که یک صفحه ASP.NET در مرورگر اجراء می گردد ، با استفاده از اسکریپت های سمت سرویس گیرنده می توان عناصر موجود بر روی صفحه را آدرس دهی و متناسب با رویداد محقق شده ، مدیریت آنان را در سمت سرویس گیرنده برعهده گرفت .
استفاده از اسکریپت های سمت سرویس گیرنده در صفحات ASP.NET نسبت به صفحات HTML در برخی موارد متفاوت است :

  • اضافه کردن event handler سمت سرویس گیرنده  به کنترل های سرویس دهنده ASP.NET 

  • مراجعه به کنترل های سرویس دهنده از طریق اسکریپت های سمت سرویس گیرنده 

  • افزودن اسکریپت های سمت سرویس گیرنده به صفحه به صورت پویا 

  • ایجاد رویداد کلیک سمت سرویس گیرنده برای کنترل های سرویس دهنده 

  • اشتراک اطلاعات بین اسکریپت های سمت سرویس گیرنده و کدهای سمت سرویس دهنده

  • فراخوانی کدهای سمت سرویس دهنده از طریق اسکریپت های سمت سرویس گیرنده بدون نیاز به postback

 در بخش دوم به بررسی هر یک از موارد فوق خواهیم پرداخت .

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد