قالب وبلاگ

سایت رسمی حسابداری و حسابرسی
نوشته شده توسط : سایت رسمی حسابداری و حسابرسی

تاکنون و در طی شش مقاله با مواردی نظیر شی XMLHttpRequest ، برخی الگوهای Ajax استفاده شده در زمان پیاده سازی برنامه های وب قدرتمند با توانائی ایجاد تعامل بیشتر ، معماری  ASP.NET AJAX  و سناریوهای مختلف پیاده سازی آشنا شدیم .
در این بخش با استناد به موارد فوق با نحوه استفاده از این فریمورک آشنا خواهیم شد و صفحات وب مبتنی بر Ajax  را با تبعیت از مدل پیاده سازی با محوریت سرویس دهنده ایجاد خواهیم کرد  .

مدل پیاده سازی با محوریت سرویس دهنده
همانگونه که در بخش ششم اشاره گردید ، در این مدل ، منطق برنامه و اكثر عناصر بخش رابط كاربر بر روی سرويس دهنده باقی می مانند و در ادامه ، تغییرات مورد نیاز رابط کاربر برای برنامه مرورگر ارسال می گردد ( در مقابل این که تغییرات از طریق اجرای اسکریپت های سمت سرویس گیرنده ایجاد شوند) .
برای آشنائی عملی با مدل فوق ، در ادامه یک نمونه مثال ساده و در عین حال کاربردی را با یکدیگر دنبال می نمائیم .

مثال : ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویس دهنده فریمورک ASP. NET Ajax 
در این مثال می خواهیم تعداد مقالاتی را که بر روی سایت سخا روش و در هر یک از گروه های مختلف منتشر شده است ، به اطلاع ملاقات کنندگان سایت برسانیم .برای سادگی کار ، فرض می شود  که تعداد مقالات منشتر شده بر روی سایت از طریق بانک اطلاعاتی  بازیابی نخواهد شد و  در مقابل از یک کلاس با نام Maghalat برای بازیابی تعداد مقالات منشتر شده در هر گروه استفاده خواهیم کرد . کلاس فوق دارای صرفا" یک متد با  GetNumberOfMaghalat است که وظیفه آن برگرداندن تعداد مقالات منتشر شده در  هر گروه است .
پس از آشنائی اولیه با صورت مسئله ، مراحل زیر را برای پیاده سازی یک صفحه وب مبتنی بر Ajax با محوریت سرویس دهنده ، دنبال می نمائیم .

مرحله اول : ایجاد سایت
اولین مرحله در پیاده سازی هر نوع برنامه وب مبتنی بر ASP. NET ، ایجاد وب سایت اولیه است . بدین منظور از برنامه ویژوال استودیو نسخه های 2005 و یا 2008 استفاده کرده ( و یا نسخه Visual Web Developer  ) و برای وب سایت خود تمپلیت ASP.NET AJAX-Enabled Web Site را انتخاب می کنیم . بدین ترتیب ، یک وب سایت با قابلیت استفاده از اسمبلی ASP. NET AJAX ( با نام System.Web.Extensions.dll  ) از طریق GAC ( برگرفته شده از   Global Assembly Cache  ) ایجاد می گردد . این کار همچنین باعث ایجاد یک فایل web.config  پیچیده می گردد که شامل تنظیمات اضافه دیگر برای ارتباط با فریمورک ASP. NET AJAX است .
شکل 1 ، نحوه انتخاب تمپلیت ASP.NET AJAX-Enabled Web Site  را در زمان ایجاد یک وب سایت نشان می دهد .

 انتخاب تمپلیت ASP.NET AJAX-Enabled Web Site

شکل 1 : انتخاب تمپلیت ASP.NET AJAX-Enabled Web Site 
در زمان ایجاد یک وب سایت

مرحله دوم : طراحی و پیاده سازی کلاس  Maghalat 
Maghalat یک کلاس ساده است که دارای صرفا" یک متد با نام GetNumberOfMaghalat است که گروه مقاله را به عنوان پارامتر ورودی گرفته و تعداد مقالات منشتر شده در آن گروه را برمی گرداند . بدین منظور از یک ساختار Select Case استفاده شده است تا بر اساس مقدار پارامتر ورودی ، یک عدد را بطور ایستا برگرداند ( برای سادگی کار نام گروه مقاله و تعداد آن مستقیما" در کد درج شده اند ) .
شکل 2 ، ساختار کلاس Maghalat را نشان می دهد .


شکل 2 : ساختار کلاس Maghalat

کد زیر ، کلاس فوق به همراه متد مربوطه را نشان می دهد .

کلاس Maghalat.VB

Public Class Maghalat
Public  Shared Function GetNumberOfMaghalat(ByVal ArticleGroup As String) As Integer
 Dim Count As Integer = 0
 Select Case ArticleGroup
    Case "Software"
          Count = 11
    Case "Hardware"
          Count = 12
    Case "Security"
          Count = 13
    Case "Network"
          Count = 14
    Case "other"
         Count = 15
 End Select
 GetNumberOfMaghalat = Count
End Function
End
Class 

مرحله سوم : ایجاد یک صفحه وب ASP.NET 
در زمان ایجاد وب سایت ، بطور اتوماتیک یک صفحه Default.aspx نیز ایجاد می گردد . کد اولیه این صفحه به صورت زیر است .

<%@ Page Language="VB" AutoEventWireup="true"   %>
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<
head runat="server">
       <
title>تست شماره یک /title>
head>
<
body>
        <
form id="form1" runat="server">
              
<asp:ScriptManager ID="ScriptManager1" runat="server" />
                 <
div>
                div>
        form>
body>
html>

تنها تفاوت صفحه فوق با سایر صفحات Default.aspx  ایجاد شده توسط ویژوال استودیو ، اضافه شدن کنترل ScriptManager است . همانگونه که قبلا" اشاره گردید ، کنترل فوق به عنوان مغز متفکر یک صفحه مبتنی بر Ajax ایفای وظیفه می نماید . کنترل فوق ، مسئولیت توزیع کدهای سمت سرویس گیرنده برای مرورگر و مدیریت بهنگام سازی جزئی ( نه تمامی صفحه ) صفحه را برعهده دارد .
پس از ایجاد اولیه صفحه وب ، از کنترل های دیگری برای طراحی بخش رابط کاربر متناسب با خواسته های موجود استفاده می کنیم . در این مثال خاص از یک کنترل ListBox جهت نمایش گروه مقاله با قابلیت AutoPostBack   و یک کنترل Label به منظور نمایش نتایج استفاده شده است  .

<%@ Page Language="VB" AutoEventWireup="true" %>
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<
head runat="server">
    <
title>تست شماره یک title>
head>
    <
body>
        <
form id="form1" runat="server">
             <
asp:ScriptManager ID="ScriptManager1" runat="server" />
             <
div style="text-align: center">
              <
table>
               <
tr>
                 <
td colspan="3">
                     <
strong> ایجاد یک صفحه وب مبتنی بر Ajax<br />
                   
(( پیاده سازی با محوریت پتانسیل های سمت سرویس دهنده فریمورک ASP.NET Ajax )) strong>
                    <
br />
               td>
             tr>
              <
tr>
                 <
td style="width: 150px">
                     
لطفا" یک گروه مقاله را انتخاب نمائید
                 td>
                 <
td align="right" colspan="2" dir="rtl">
                   <
asp:ListBox ID="ArticleGroup" runat="server" AutoPostBack="True" Font-Names="Tahoma"
                                      
Font-Size="Small" ForeColor="#C04000">
                        <
asp:ListItem>
نرم افزار  asp:ListItem>
                        <
asp:ListItem>
سخت افزار  asp:ListItem>
                        <
asp:ListItem>
 امنیت اطلاعات  asp:ListItem>
                        <
asp:ListItem>
شبکه  asp:ListItem>
                        <
asp:ListItem
سایر asp:ListItem>
                   asp:ListBox>td>
              tr>
                <
tr>
                  <
td style="width: 150px"> td>
                  <
td style="width: 100px"> td>
                  <
td style="width: 131px"> td>
             tr>
              <
tr>
                   <
td colspan="3" style="height: 18px">
                       <
asp:Label ID="LblFinalResult" runat="server" Font-Names="Tahoma" Font-Size="Small"
                                        
ForeColor="Black" Text="Label">asp:Label>td>
             tr>
          table>
          span>
          div>
   form>
body>
html>

از ListBox برای نمایش لیست گروه مقالات استفاده شده است . مقدار خصلت AutoPostBack کنترل فوق ،  True در نظر گرفته شده است تا بلافاصله پس از انتخاب یکی از آیتم های موجود در لیست ، یک PostBack به سمت سرویس دهنده تحقق یابد . این کار از طریق رویداد   SelectedIndexChanged  محقق خواهد شد که متعاقب آن روتین  ArticleGroup_SelectedIndexChanged فراخوانده می شود . در انتهای صفحه از یک کنترل Label استفاده شده است تا به کمک آن بتوان نتایج را در خروجی نمایش داد .
از طریق کد نوشته شده در روتین ArticleGroup_SelectedIndexChanged ، انتخاب کاربر تشخیص و متد مربوط به کلاس maghalat  صدا زده می شود تا پس از برگرداندن نتایج ، ماحصل کار از طریق کنترل Label نمایش داده شود .
کد روتین ArticleGroup_SelectedIndexChanged در جدول زیر نشان داده شده است .

Protected Sub ArticleGroup_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

  LblFinalResult.Text = Maghalat.GetNumberOfMaghalat(ArticleGroup.SelectedValue)
  LblFinalResult.Text +=
"   "
 
LblFinalResult.Text += "مقاله تاکنون در گروه "
 
LblFinalResult.Text += "   "
 
LblFinalResult.Text += ArticleGroup.SelectedValue
  LblFinalResult.Text +=
"   "
 
LblFinalResult.Text += "برروی سایت سخا روش منشتر شده است "
 

End Sub

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

مایش تعداد مقالات منتشر شده در هر گروه

شکل 3 : نمایش تعداد مقالات منتشر شده در هر گروه

عملکرد برنامه فوق متناسب با انتظار ما است : با انتخاب یک گروه مقاله ، تعداد مقالات منتشر شده در آن گروه در قسمت پائین صفحه نمایش داده می شود . تنها مسئله مهم و قابل توجه بازخوانی مجدد تمامی صفحه پس از هر مرتبه ای است که کاربر یک گروه مقاله را انتخاب می نماید . برای حل این موضوع می توان از کنترل جادوئی UpdatePanel استفاده کرد . شکل زیر نحوه استفاده از کنترل فوق در  مثال اشاره شده را نشان می دهد .

...
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <
ContentTemplate >
         <asp:ListBox ID="ArticleGroup" runat="server" AutoPostBack="True" Font-Names="Tahoma"
                               
Font-Size="Small" ForeColor="#C04000">
                        <
asp:ListItem> نرم افزار  asp:ListItem>
                        <
asp:ListItem> سخت افزار  asp:ListItem>
                        <
asp:ListItem>  امنیت اطلاعات  asp:ListItem>
                        <
asp:ListItem> شبکه  asp:ListItem>
                        <
asp:ListItem سایر asp:ListItem>
                   asp:ListBox>td>
              tr>
                <
tr>
                  <
td style="width: 150px"> td>
                  <
td style="width: 100px"> td>
                  <
td style="width: 131px"> td>
             tr>
              <
tr>
                   <
td colspan="3" style="height: 18px">
                      <
asp:Label ID="LblFinalResult" runat="server" Font-Names="Tahoma" Font-Size="Small"
                                        
ForeColor="Black" Text="Label">asp:Label>td>
             tr>
ContentTemplate>
asp:UpdatePanel>
  ...

به صورت پیش فرض ، محتویات موجود  بین تگ ContentTemplate مربوط به کنترل UpdatePanel در زمان بروز یک postback غیرهمزمان بطور اتوماتیک بهنگام خواهند شد. Postback فوق بطور غیرهمزمان اتفاق می افتد و رفتار آن با postback عادی متفاوت است . ( در postback عادی  ، یک درخواست برای سرویس دهنده ارسال می گردد تا پس از انجام پردازش های ضروری در سمت سرویس دهنده ، رابط کاربر جدید برای مرورگر ارسال گردد ) .
و اما یک سوال مهم که ممکن است در ذهن شما مطرح شده باشد . یک postback غیرهمزمان چیست ؟ اکثر پیاده کنندگان برنامه های وب به کمک فناوری ASP.NET صرفا" با یک نوع postback آشنا می باشند . با بکارگیری UpdatePanel ، صفحه روال طبیعی  حیات خود را طی می نماید ، ولی PostBack به عنوان یک postBack غیرهمزمان شناخته می شود . که در آن  از روش های هوشمندانه تری استفاده می گردد و صفحه با مدلی متفاوت تر در حین چرخه حیات خود پردازش می گردد .
در ادامه ،  همزمان با اجرای صفحه و انتخاب یک گروه مقاله ، بخش رابط کاربر بطور اتوماتیک و بدون نیاز به بازخوانی کامل صفحه بهنگام خواهد شد . بطور خلاصه ، با اضافه کردن یک مجموعه اندک از کنترل های سرویس دهنده بر روی صفحه ، از بازخوانی مجدد تمامی صفحه ممانعت بعمل آمده و همچنین در تعامل کاربر با برنامه وقفه ای ایجاد نخواهد شد .

 مرحله پنجم : بهینه سازی خروجی و ضرورت استفاده از  کنترل UpdateProgress
در صورتی  که با یک خط سرعت پائین برنامه فوق اجراء گردد ، مشاهده خواهیم کرد که زمان نسبتا" زیادی بطول خواهد انجامید تا نتایج نمایش داده شود . این موضوع ( تاخیر محسوس در مشاهده خروجی کار  ) باعث می شود  کاربری که برنامه را اجراء کرده است ، نگران عملکرد صحیح برنامه باشد و اینگونه برداشت کند که برنامه دچار اختلال شده است .
 قبل از معرفی Ajax ، برای صفحاتی که بازخوانی مجدد می گردیدند از علامتی استفاده می شد که کاربران متوجه این موضوع می شدند که فرآیندی در حال انجام است و یا درخواست آنان مورد پذیرش قرار گرفته شده است . هم اینک با توقف postback طبیعی ، کاربران متوجه این موضوع نمی شوند که عملیاتی در شرف انجام است تا این که فرآیند مورد نظر به اتمام برسد ( از علامتی برای نشان دادن این که فرآیندی در حال انجام است ، استفاده نمی شود ) . در چنین مواردی ، کاربران نیازمند یک فیدبک دیداری ( ویژوال )  هستند تا نسبت به انجام یک فرآیند در پس زمینه آگاه گردند . 
کنترل UpdateProgress یک راه حل جهت مشکل فوق را ارائه می نماید . هدف کنترل فوق ، نشان دادن  یک نشانه دیداری  به کاربران در زمان بروز یک postback غیرهمزمان است . بدین منظور می توان کد زیر را به انتهای صفحه اضافه نمود .
 

<asp:UpdateProgress ID="UpdateProgress1" runat="server">
 <
ProgressTemplate >
  <
img src=" images/ajax1.gif " />  در حال بارگذاری ...
 ProgressTemplate>
asp:UpdateProgress
>

پس از اجرای برنامه ( با لحاظ کردن کنترل UpdateProgress   )  ، پس از انتخاب یک گروه مقاله توسط کاربر یک نشانه دیداری نمایش داده خواهد شد . شکل 4 ، خروجی برنامه را به همراه نشانه دیداری نشان می دهد .

ارائه یک نشانه تصویری در زمان تحقق یک postback غیرهمزمان

شکل 4 : ارائه یک نشانه دیداری در زمان تحقق یک postback غیرهمزمان

در صورت اجرای برنامه فوق بر  روی ماشین محلی ، به احتمال فراوان فرآیند بهنگام سازی صفحه به سرعت انجام خواهد شد و عملکرد کنترل UpdateProgress مشاهده نخواهد شد . برای کاهش سرعت و مشاهده  نشانه دیداری  می توان سرعت آن را به صورت زیر کاهش داد .

Protected Sub ArticleGroup_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

  LblFinalResult.Text = Maghalat.GetNumberOfMaghalat(ArticleGroup.SelectedValue)
  LblFinalResult.Text +=
"   "
 
LblFinalResult.Text += "مقاله تاکنون در گروه "
 
LblFinalResult.Text += "   "
 
LblFinalResult.Text += ArticleGroup.SelectedValue
  LblFinalResult.Text +=
"   "
 
LblFinalResult.Text += "برروی سایت سخا روش منشتر شده است "
 
System.Threading.Thread.Sleep(2000)

End Sub

توجه داشته باشید که نمی بایست از متد Sleep در کد تولید شده نهائی استفاده کرد . در مثال فوق با فرض این که برنامه بر روی یک ماشین محلی اجراء شده است و هدف مشاهده عملکرد کنترل UpdateProgress است ، از کنترل فوق استفاده شده است .

خلاصه
در این مقاله با نحوه  ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویس دهنده فریمورک     ASP. NET Ajax آشنا شدیم .  بدین منظور  یک نمونه مثال ساده را بررسی کردیم که در آن از کنترل های  UpdatePanel و  UpdateProgress به منظور نشان دادن قابلیت Ajax در صفحات ASP.NET استفاده شده بود .
در بخش بعد با نحوه ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویس گیرنده فریمورک         ASP. NET Ajax ، آشنا خواهیم شد .



:: موضوعات مرتبط: , ,
:: بازدید از این مطلب : 1629
|
امتیاز مطلب : 9
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3
تاریخ انتشار : دو شنبه 9 خرداد 1390 | نظرات ()
نوشته شده توسط : سایت رسمی حسابداری و حسابرسی

در بخش اول ضمن بررسی تاثير متقابل وب بر نرم افزار ، مروری داشتيم به وب ايستا و وب پويا و اين كه برای انجام پردازش های مورد نياز در برنامه های وب می توان از امكانات و فناوری های متعددی در سمت سرويس گيرنده و سرويس دهنده استفاده كرد . هدف از بيان مطالب فوق ، پاسخ به اين سوال بود كه چرا به وجود يك فناوری ديگر نظير Ajax نياز است ( گرچه  Ajax يك فناوری نيست و مجموعه ای از فناوری ها را شامل می شود ) .
با اين كه ايده فناورهائی نظير Ajax  در گذشته نيز وجود داشته است و پياده كنندگان برنامه های وب در زمان خود با بكارگيری برخی فناوری ها و ترفندها  توانسته بودند مشكل خود را تا حدود زيادی برطرف نمايند ولی گذشت زمان و  گسترش باور نكردنی اينترنت ، باعث شد تا استفاده از بستر فوق برای ارائه سرويس های online  در دستور كار اكثر سازمان ها و شركت ها در اقصی نقاط جهان قرار بگيريد . همين موضوع باعث شد كه دگر باره جامعه بزرگ طراحان و پياده كنندگان برنامه های وب اين نياز را احساس كنند كه به يك راه حل جامع و سيستماتيك برای برخورد با مسائل خود ( خصوصا" تعامل با كاربر ) در دنيای نوين برنامه نويسی وب نياز دارند . دنيائی كه در آن دقت و سرعت در ارائه خدمات online با بكارگيری كمترين منابع و توليد بيشترين بهره وری ، رمز ماندگاری يك سازمان در مدار رقابت و پيشرفت است . همين امر باعث شد كه شركت های بزرگ توليد كننده نرم افزار و خدمات online نيز دست به كار شوند و چيزی را خلق كنند كه ما امروزه از آن با نام Ajax ياد می كنيم .
در اين بخش به بررسی موارد زير خواهيم پرداخت :

    • تولد Ajax و ريشه يابی علت انتخاب اين نام
    • Ajax و فناوری های مرتبط با آن
    • اصول حاكم بر فناوری Ajax   .
    • نحوه كاركرد Ajax در برنامه های وب 

تولد Ajax
در فوريه سال 2005 ، Jesse James Garrett از  Adaptive Path مقاله ای را  با عنوان " يك رويكرد جديد به برنامه های وب "   بر روی وب سايت خود منشتر كرد . وی در اين مقاله ضمن اشاره به اين موضوع كه فاصله بين برنامه های وب و desktop در حال از بين رفتن است ،  به بررسی دو نمونه از برنامه های وب جديد با نام Google Suggest و Google Maps پرداخته بود . Garrett  پس از تشريح نحوه عملكرد برنامه های فوق ، برای اولين مرتبه از  واژه  Ajax  در مقاله خود استفاده كرد .
وی در مقاله خود دنيائی را پيش بينی كرده بود كه در آن برنامه های وب از لحاظ قابليت دستيابی ، پاسخ گوئی و سادگی قابل مقايسه با برنامه های desktop خواهند شد . 

 Ajax چيست ؟

    • Ajax برگرفته شده از Asynchronous JavaScript  XML است  و مشتمل بر مجموعه ای از  فناوری ها است ، نه صرفا" يك فناوری .

    • Ajax ، اساس و پايه چيزی است كه امروزه از آن با نام وب 2 نام برده می شود ( نسل جديد وب ) .  ايده اصلی ، ايجاد برنامه های وبی است كه دارای شكل ظاهری و توانمندی هائی  مشابه با برنامه های desktop باشند .

    • Ajax چي‍زی بيشتر از يك نگرش  جديد به برنامه های وب نيست . نگرشی كه در آن صرفا" يك حجم اندك از اطلاعات بين سرويس گيرنده و سرويس دهنده با هدف افزايش تعامل كاربر با برنامه ، مبادله می گردد .

    •  Ajax ، مشتمل بر مجموعه ای از فن آوری ها است كه هر يك دارای جايگاه مختص به خود می باشند :

      - فن آوری های استاندارد presentation نظير XHTML و CSS
      - بهنگام سازی پويای يك صفحه مستقر شده در حافظه با استفاده از DOM ( برگرفته شده از Document Object Model )
      - مبادله و پردازش داده با استفاده از XML (فرمت مبادله داده  ) و XSLT ‌(  تبديل  XML به XHTML  )
      - بازيابی داده غيرهمزمان با استفاده از XMLHttpRequest  ( كارگزار اوليه مبادله اطلاعات  )
      و جاوا اسكريپت كه همه چيز را به يكديگر مرتبط می نمايد و از آن برای برنامه نويسی Ajax engine استفاده می گردد .

    • در دنيای واقعی ، از تمامی فناوری های فوق در Ajax استفاده می گردد  ولی به وجود HTML/XHTML ، DOM و Javascript  بيش از همه نياز است چون :
      از XHTML برای نمايش اطلاعات استفاده می گردد .
      از  DOM برای تغيير بخش هائی از يك صفحه XHTML بدون نياز به load مجدد صفحه استفاده می گردد.
      از جاوا اسكريپت ، برای مقداردهی اوليه ارتباط بين سرويس گيرنده و سرويس دهنده و بهنگام سازی صفحات وب  به كمك  DOM  استفاده می گردد .

    • يك عنصر اساسی و مهم ديگر كه در مقاله  Garrett به آن اشاره نشده است ، ضرورت انجام پردازش های سمت سرويس دهنده است . تمامی فناوری های اشاره شده ( در پاراگراف قبل ) ، در ارتباط مستقيم با Ajax engine سمت سرويس گيرنده می باشند . بدون وجود يك سرويس دهنده مطمئن و پاسخگو به منظور ارسال محتويات برای Ajax engine ، در عمل Ajax فاقد كارآئی لازم خواهد بود . صرفنظر از فناوری استفاده شده در سمت سرويس دهنده ( نظير PHP و يا ASP.NET ) ، می بايست اين اطمينان حاصل گردد كه داده با فرمت صحيح برای Ajax engine ارسال می گردد .

    • از شی XMLHttpRequest درون جاوا اسكريپت برای ارتباط با سرويس دهنده استفاده می گردد تا در ادامه بتوان داده برگردانده شده از سرويس دهنده ( با فرمت Xml و يا متن معمولی ) را پردازش كرد .

    • از DHTML و  CSS برای نمايش نتايج در مرورگر  استفاده می گردد .

    • هدف از كنارهم قرار گرفتن تمامی فناوری های اشاره شده ، اين است كه شكل ظاهری برنامه های وب و نحوه پاسخ گوئی آنها به خواسته كاربران مشابه برنامه های desktop گردد .

همانگونه كه در نام اين فناوری مشخص است ، Ajax مشتمل بر مجموعه ای از فناوری ها است : Asynchronous JavaScript  XML

    • غيرهمزمان و يا  asynchronous  بدين معنی است كه مرورگر لازم نيست منتظر بماند تا داده از سرويس دهنده برگردانده شود و می تواند به محض دريافت داده  آن را پردازش نمايد . به عبارت ديگر ، انتقال داده در پس زمينه انجام شده و مرورگر مجبور به توقف و انتظار برای تحقق اتفاقی نخواهد بود .
      رويكرد فوق نشاندهنده يكی از ويژگی های مهم و حياتی Ajax است . در چنين مواردی‌، می توان داده را پس از ارسال توسط سرويس دهنده ، پردازش كرد . لازم نيست تمامی برنامه را معطل رسيدن داده از سمت سرويس دهنده كرد .
      در صورتی كه لازم است پردازش های سمت سرويس گيرنده منتظر دريافت داده بمانند ، مكانيرم دريافت و پردازش داده می بايست بطور همزمان انجام شود . در صورتی كه يك ارتباط ضعيف بين سرويس گيرنده و سرويس دهنده برقرار شده باشد اين موضوع می تواند عملكرد و موفقيت يك برنامه وب را با مشكل مواجه نمايد . 

    • بخش جاوا اسكريپت واژه Ajax نيز بسيار مهم است چراكه بالفعل شدن پتانسيل های Ajax در مرورگر توسط آن محقق می گردد . Ajax به كمك جاوا اسكريپت با سرويس دهنده ارتباط خود را برقرار می نمايد و در ادامه نيز داده برگردانده شده از سرويس دهنده را پردازش می نمايد . 

    • بخش xml واژه Ajax دارای چه مسئوليتی است ؟  XML به عنوان يك استاندارد جهانی در عرصه وب مطرح است و به كمك آن می توان از يك روش مبتنی بر متن برای مبادله داده در عرصه اينترنت استفاده كرد . يكی از دلايل مهم گسترش xml ، ماهيت مبتنی بر متن آن است . با توجه به اين كه طراحی اينترنت بگونه ای انجام شده بود تا بتواند مستندات مبتنی بر متن نظير اسناد HTML را نمايش دهد ، وجود xml به منزله قلابی است كه می توان آن را دور اينترنت انداخت و به صيد داده پرداخت. داده ئی كه به همراه ساختار خود می تواند امكان پردازش را در ساير سيستم ها فراهم نمايد . به همين دليل است كه برنامه های Ajax بگونه ای نوشته می گردند تا بتوانند بر روی داده برگردانده شده از سرويس دهنده با فرمت xml ، عمليات مورد نظر را انجام دهند . به عبارت ديگر ، پس از برقراری ارتباط با سرويس دهنده ، داده با فرمت xml برگردانده خواهد شد . 
      xml ، صرفا" يكی از روش های برگرداندن داده است و در صورت لزوم می توان از فرمت هائی ديگر نظير متن معمولی نيز استفاده كرد . 

    • در كنار جاوا اسكريپت و XML ، فناوری Ajax با فناوری های ديگری نظير DHTML  و CSS نيز كار می كند . به كمك فناورهای فوق می توان داده موجود در يك صفحه وب را بدون نياز به load تمامی صفحه بهنگام كرد ( صرفا" load بخشی كه ضرورت آن احساس می شود )  . پتانسيل فوق يكی از اهداف و ويژگی های مهم برنامه های وب مبتنی بر فناوری Ajax محسوب می گردد .

    • بخشی از جاوا اسكريپت كه امكان Ajax را ميسر می سازد ، شی XMLHttpRequest است . شی فوق تقريبا" در تمامی مرورگرهای مدرن و پيشرفته از قبل تعبيه شده است . به كمك اين شی امكان اتصال به سرويس دهنده و مديريت داده برگردانده شده از آن در پس زمينه فراهم می گردد .
      اقتدار Ajax نه تنها وابسته به جاوا اسكريپت بلكه مديون شی XMLHttpRequest است . 

اصول Ajax
Ajax هنوز در ابتدای راه است و بسياری از پياده كنندگان با اين پرسش مواجه هستند كه از اين فناوری در چه زمانی و در چه نوع برنامه هائی می توان استفاده كرد . عدم شناخت مناسب از اين فناوری باعث می شود تا از آن در برنامه هائی استفاده گردد كه نه تنها قابليت و يا ويژگی جديدی را به برنامه اضافه نمی نمايد بلكه در بسياری از موارد عدم موفقيت يك برنامه و نارضايتی كاربران آن را به دنبال خواهد داشت . 
زمانی می توان اين ادعا را داشت كه يك برنامه وب مبتنی بر Ajax  در اهداف خود موفق بوده است كه در آن اصول زير رعايت شده باشد .

    • به حداقل رساندن ترافيك : برنامه های Ajax می بايست حتی المقدور حجم اندكی از اطلاعات را برای سرويس دهنده ارسال و يا از آن دريافت نمايند . به عبارت ديگر ، با بكارگيری Ajax  می بايست حجم ترافيك بين سرويس گيرنده و سرويس دهنده كاهش يابد .   

    •  عدم سردرگمی كاربر : برنامه های وب مبتنی بر فناوری Ajax مدل تعامل با كاربر مختلفی را نسبت به برنامه های وب سنتی معرفی كرده اند . در مقابل وب استاندارد ( كليك كن و منتظر باش ) ، برخی برنامه های Ajax از يك رويكرد ديگر برای پياده سازی بخش رابط  كاربر خود نظير drag-and-drop و يا double-clicking  استفاده می نمايند . صرفنظر از نوع مدل انتخاب شده برای پياه سازی تعامل با كاربر ، مهم ارائه امكانات بخش رابط كاربر بگونه ای است كه همواره كاربر در سريع ترين زمان بتواند در خصوص انجام حركت بعدی خود تصميم گيری نمايد .

    • استفاده منطقی از تجارب مثبت گذشته  : وقت خود را بی خودی به ابداع مدل های تعامل با كاربر جديد كه كاربران شما با آنها آشنا نيستند ، هدر ندهيد . استفاده از تجارب برنامه های  وب سنتی و desktop می تواند پياده كنندگان را در طراحی يك مدل مناسب جهت تعامل با كاربر كمك نمايد .

    • اجتناب از بكارگيری عناصر غيرضروری  : از بكارگيری عناصر غير ضروری نظير تكرار انيميشن و بخش هائی نظير blinking page  اجتناب كنيد. بكارگيری اين چنين عناصری باعث می شود تا كاربران در زمان انجام فعاليت های مورد نظر دچار سردرگمی شوند . 

    • قابليت دسترسی و رضايت كاربران : برنامه های Ajax را با در نظر گرفتن رفتار و نوع خواسته كاربران طراحی و پياده سازی نمائيد . برای طراحی و پياده سازی خود را در يك مكان بسته محبوس ننمائيد. در غير اينصورت همواره اين احتمال وجود خواهد داشت كه خواسته برخی از كاربران ناديده گرفته شود . قابليت دسترسی و رضايت كاربران يكی از نكات بسيار مهم در موفقيت يك برنامه كامپيوتری محسوب می گردد .

    • پيشگيری از دانلود تمامی صفحه : تمامی ارتباط با سرويس دهنده پس از مقدار دهی اوليه دانلود صفحه ، می بايست توسط Ajax engine مديريت گردد . عدم مديريت صحيح بر روی فرآيند فوق می تواند بخش رابط كاربر يك برنامه وب را با مشكل اساسی مواجه سازد ( نظير دانلود حجم اندكی از داده در يك مكان و دانلود تمامی صفحه در بخش ديگر ) 

    • توجه  به نياز كاربران قبل از هر چيز : برنامه های Ajax  را قبل از هر چيز  با كاربران خيالی در ذهن طراحی نمائيد . سهولت در انجام عمليات متداول می بايست در دستور كار قرار بگيرد . كمتر در انديشه انجام كارهای تبليغاتی و يا افكت های غيرضروری باشيد . 

نقطه مشترك بين تمامی اصول اشاره شده ،  قابليت استفاده از يك برنامه با حداكثر ظرفيت و رضايتمندی كاربران است . هدف اوليه Ajax ، بهبود و ارتقاء بخش رابط كاربر برنامه ها با هدف رضايتمندی بيشتر كاربران است . 

نحوه كار Ajax
در برنامه های وب سنتی مرورگر مسئوليت مقداردهی اوليه درخواست ها  و پردازش آنها  جهت ارسال به سرويس دهنده وب را برعهده دارد . در مقابل ،  در  Ajax  يك لايه ميانی ( كه Garrett آن را Ajax engine ناميد ) مسئوليت مديريت  ارتباط برقرار شده را برعهده می گيرد .  Ajax engine در واقع يك شی جاوا اسكريپت و يا تابع است و  زمانی كه به اطلاعاتی از سرويس دهنده نياز باشد ،‌  از آن استفاده خواهد شد .
در مقابل برنامه های وب سنتی كه يك لينك به يك منبع ديگر ارائه می گردد ( نظير يك صفحه وب ديگر ) ، در برنامه های وب مبتنی بر Ajax ، هر لينك باعث فراخوانی Ajax engine می گردد كه وظيفه آن زمانبندی و انجام درخواست بطور غيرهمزمان است  .
سرويس دهنده ( كه از لحاظ سنتی  اسناد HTML ، تصاوير ، CSS و جاوا اسكريپت را ارائه می نمايد ) ، بگونه ای پيكربندی می گردد تا داده مورد نياز را در اختيار Ajax Engine قرار دهد. اين داده می تواند متن معمولی ، XML  و يا ساير فرمت های مورد نياز داده باشد. بديهی است در چنين مواردی ، Ajax engine می بايست قادر به خواندن و تفسير داده باشد .
پس از دريافت پاسخ لازم از سرويس دهنده ، Ajax engine عمليات خود را كه اغلب بررسی داده و ايجاد تغييرات لازم در بخش رابط كاربر است ،  آغاز می نمايد .  با توجه به اين كه در فرآيند فوق به اطلاعات كمتری نسبت به برنامه های وب سنتی نياز است ، بخش رابط كاربر با سرعت بيشتری بهنگام می گردد و كاربر قادر به انجام كارهای خود با سرعت بيشتری است .
در شكل  1 ، عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر Ajax نشان داده شده است . 

عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر Ajax

شكل 1 : عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر Ajax
منبع : Adaptive Path

خلاصه
فناوری های مرتبط با Ajax در طی ساليان گذشته  مطرح  و  از آنها در مجموعه ای از نرم افزارها استفاده می گرديد .  Jesse James Garrett در مقاله خود تمامی فناوری های اشاره شده را در زير يك سقف و با نام Ajax  كنار هم قرار داد . با بكارگيری فناوری Ajax در نرم افزارهای برجسته ای نظير Google Suggest در سال 2005 ، Ajax در كانون توجه جهانی  قرار گرفت . وب 2 ، برای نيل به اهداف خود به Ajax دل بسته است و Ajax می تواند تصويری جديد از برنامه های وب را در عرصه اينترنت به نمايش بگذارد .
وجود برخی خصايص خاص در بخش رابط كاربر برنامه های desktop و نحوه تعامل كاربران با اينگونه برنامه ها ، حلقه گمشده ای در برنامه های وب است. حلقه ای كه Ajax سعی دارد خلاء آن را پر كند .  قطعا" در آينده ای نه چندان دور شاهد حضور بيشتر برنامه های وبی خواهيم بود كه دارای شكل ظاهری و عملكردی مشابه (خصوصا" تعامل با كاربر )  با برنامه های desktop می باشند .
شايد روزی فرا رسد كه يكی از واژه های برنامه های desktop و برنامه های وب به نفع ديگری كنار برود و يا هر دو بر يك نام مشترك ديگر به توافق برسند .
در بخش سوم به بررسی نمونه برنامه هائی خواهيم پرداخت كه در آنها از فناوری Ajax استفاده می گردد . 



:: موضوعات مرتبط: , ,
:: بازدید از این مطلب : 1720
|
امتیاز مطلب : 14
|
تعداد امتیازدهندگان : 6
|
مجموع امتیاز : 6
تاریخ انتشار : دو شنبه 9 خرداد 1390 | نظرات ()
نوشته شده توسط : سایت رسمی حسابداری و حسابرسی

phpNuke يك Web Portal سيستم هست. كه به شما اجازه ميدهد سايتي كاملا ديناميك داشته باشيد. phpNuke يك سيستم كاملا انعطاف پذير و قابل Customize كردن مي باشد. اين سيستم از يك هسته اصلي و تعدادي موژول اصلي كه دور هسته قرار گرفته اند تشكيل شده. اين سيستم حاصل سال هاي مديريت سايت Linux Preview مي باشد. Nuke (اول اسمش uke بوده)در ابتدا در زبان Perl نوشته شده است.
اما اين سيستم نياز به موژول هاي بسياري داشته و هنگام كاركردن از CPU خيلي كار ميكشيده :-). پس از يك مدت اين سيستم رو آوردند زير زبان PHP و بازنويسي كردن و PHP-Nuke به دنيا اومد :-). در حال حاظر phpNuke يك سيستم مي باشد كه در زبان هاي گوناگون وجود دارد و در سراسر دنيا از آن استفاده مي شود. اين سيستم، سيستمي مي باشد كه از بسياري موژول كه براحتي مي توان آنرا فعال يا غير فعال كرد نوشته شده. همچنان هرروز بر تعداد اين موژول ها افزوده مي شود. يكي از محسنات اين سيستم، ساختار منطقي آن مي باشد. از اين ساختار مي توان براي پيشبرد و تكميل اين برنامه استفاده كرد و به راحتي براي آن موژول هاي اضافه نوشت و به كارايي phpNuke افزود.

phpBB فارسي چيست؟
بدليل اينكه بسياري از كاربران ايراني و فارسي زبان از اين انجمن استفاده مي كنند و متاسفانه چون اين زبان براي phpBB تعريف نشده است، من بر آن شدم كه اين انجمن را فارسي كنم تا يك سري امكانات فارسي از جمله تايپ فارسي، تاريخهاي فارسي و ... در آن قابل روئيت باشد. شما در phpBB‌فارسي ديگر هيچ قسمتي را به زباني غير از زبان شيرين فارسي نخواهيد ديد (البته در پروژه نهايي) و تمام قسمتهاي آن به فارسي تبديل شده اند از جمله پيغامها ، نحوه نمايش پيغامها ، پرسش و پاسخ ، كنترل پنل مديريت انجمنها و ... كه باعث راحتي كار براي كاربران گرامي ميشود. توجه داشته باشيد phpBBفارسي بصورت كاملا رايگان بوده و در دسترس همگان قرار مي گيرد و هرگونه استفاده تجاري از ممنوع است.

phpBB Port چيست؟
حتما خيلي جاها كلمه phpBB Port را ديده ايو اما متوجه منظور آن نشده ايد! phpBB Port همان انجمنها phpBB است كه در بالا توضيح داده شد ولي با اين تفاوت كه در آن يك سري تغييرات اعمال شده است كه ميتوان از آن در برنامه phpNuke به راحتي استفاده كرد . يعني اگر شما phpBB‌ را بر روي phpNuke نصب كنيد نميتوانيد از آن استفاده كنيد چون به مشكل بر خواهد خورد. همچنين از phpBB Port هم به تنهايي نميتوانيد استفاده كنيد چون آنرا بر حسب phpNuke تغيير داده اند و حتما بايد روي phpNuke نصب شود تا بتوان با آن كار كرد.


اين نكته را در اينجا ياد آور ميشوم كه phpBB توسط سايت مجيد آنلاين و phpNuke توسط سايت farsinuke به زبان فارسي برگردانده شده است و بصورت رايگان در اختيار كاربران قرار گرفته است...

سايت اصلي ومرجع اصلي phpBB :
www.phpBB.com

سايت اصلي و مرجع اصلي phpNuke :
www.phpnuke.org

- سايتي براي دريافت انواع عكس و تمپليت براي phpBB :
http://www.forumimages.com/
http://www.pixdesign.ch/en/

- سايتهاي مربوط به phpNuke :
سايتي براي دريافت ماژولها و تمپليتهاي مختلف :
http://www.nukemods.com
http://www.nukecops.com/
http://www.phpnukefiles.com/
http://www.disipal.net/
http://www.nukescripts.net/
http://www.portedmods.com/


اين آدرسهايي كه در بالا گفتم به اين معنا نيست كه فقط در اينها ميتوانيد چيز هاي مورد نظر خود را پيدا كنيد. بلكه سايتهاي پشتيباني

كننده بسيار زيادي وجود دارد كه من بعضي از آنها را نوشتم... كساني هم كه آدرسهاي مفيدي دارند به همين نامه ريپلاي كنند تا كاربران بتوانند از اين آدرسها استفاده كنند.

براي دريافت phpBB‌ بر روي لينك زير كليك كنيد:
http://www.majidonline.com/modules.p...p=getit&lid=43

براي دريافت phpBB فارسي (زبان فارسي) بر روي لينك زير كليك كنيد:
http://www.majidonline.com/modules.p...p=getit&lid=26

براي دريافت استايل فارسي subSilver بر روي لينك زير كليك كنيد:
http://www.majidonline.com/modules.p...p=getit&lid=27

(توجه داشته باشيد كه براي اينكه بخواهيد از phpBB‌فارسي استفاده كنيد بايد زبان و استايل فارسي را بر روي phpBB خود نصب كنيد)

طريقه نصب phpBB و فارسي سازي آن :
http://www.majidonline.com/modules.p...p=getit&lid=30

براي دريافت phpBB Port بر روي لينك زير كليك كنيد:
http://www.majidonline.com/modules.p...p=getit&lid=42

براي دريافت فارسي ساز phpBB Port بر روري لينك زير كليك كنيد:
http://www.majidonline.com/modules.p...p=getit&lid=41

براي دريافت phpNuke فارسي بر روي لينك زير كليك كنيد: (نياز به عضويت در سايت farsinuke دارد)



:: موضوعات مرتبط: , ,
:: بازدید از این مطلب : 2105
|
امتیاز مطلب : 6
|
تعداد امتیازدهندگان : 2
|
مجموع امتیاز : 2
تاریخ انتشار : دو شنبه 9 خرداد 1390 | نظرات ()
نوشته شده توسط : سایت رسمی حسابداری و حسابرسی

اينترنت و مهمترين سرويس آن وب علاوه بر اين كه حيات بشری را در هزاره سوم دستخوش تحولات فراوانی كرده است ، توانسته است منشاء تحولات گسترده ای در ساير حوزه های فناوری گردد . در واقع ، تحول در زندگی بشريت  مديون پيشرفت در ساير حوزه های فناوری‌ است . يكی از اين حوزه ها ، صنعت نرم افزار است .
برای آشنائی با اين تحول بد نيست مروری سريع داشته باشيم به گذشته وب و نرم افزار تا از اين رهگذر بتوانيم ضرورت ايجاد فناورهای جديدی نظير Ajax ( برگرفته شده از Asynchronous JavaScript And XML ) را بهتر درك كنيم .

مروری بر وب ، نرم افزار و تاثير متقابل آنها بر يكديگر
موجودات جديدی كه ما امروزه آنها را با نام برنامه های وب می شناسيم ، ماحصل تاثير وب بر نرم افزار و رشد رو به فزاينده استفاده از اينترنت در متن زندگی ، ماحصل تاثير نرم افزار بر وب است . اجازه دهيد ببينيم موضوع از كجا و با چه مختصاتی شروع گرديد و هم اينك در چه وضعيتی به سر می بريم .

وب ايستا : زمانی كه تيم . برنرز لی در سال 1990 اولين پيشنهاد خود در رابطه با وب را ارائه كرد ،  ايده كار بسيار ساده بود : ايجاد يك شبكه از اطلاعات متصل شده به يكديگر با استفاده از ابرمتن ها و URIs ( برگرفته شده از  Uniform Resource Identifiers ) . وب در آغاز به عنوان يك رسانه اشتراك اطلاعات مطرح گرديد تا از طريق آن دانشمندان و محققين بتوانند دانش و اطلاعات را بين خود به اشتراك گذاشته و نتايج تحقيقات را با يكديگر مبادله نمايند . ارائه دهند گان با استفاده از يك استاندارد مستند سازی ، اطلاعات خود را تهيه و آنها را به مخاطبان خود ارائه می كردند . در آغاز برای استاندارد مستند سازی از ابزاری كه در آن زمان خود هنوز استاندارد نشده بود استفاده می گرديد . HTML ، ابزاری است كه با بكارگيری مجموعه ای از تگ ها ، استاندارد لازم جهت نمايش يك مستند در نرم افزارهای نمايش دهنده ( مرورگرها )  را فراهم می نمايد . نرم افزارهای نمايش دهنده ، مجهز به مفسرهائی جهت تفسير تگ ها و نمايش اطلاعات موجود در مستند بر اساس تعاريف از قبل تعريف شده شدند . در آن زمان كه به سال های ابتدائی دهه 90 ميلادی برمی گردد ، چيزی با نام برنامه های وب وجود نداشت و وب به عنوان رسانه ای جهت اشتراك و مبادله اطلاعات مطرح بود . تمامی تعاملات در عرصه وب محدود به درخواست يك مستند توسط سرويس گيرنده و ارسال آن توسط سرويس دهنده بود .

وب پويا با تمركز بر روی پردازش های سمت سرويس گيرنده : در ادامه ، نياز به انجام برخی پردازش های اوليه مطرح گرديد . با  توجه به اين كه اينترنت از يك بستر سرويس گيرنده و سرويس دهنده ( client server based) به منظور دريافت درخواست كاربر و پاسخ به آن استفاده می كرد ، طراحان و پياده كنندگان برای تحقق پردازش ها بر روی دو گزينه متمركز شدند : انجام پردازش ها در سمت سرويس گيرنده و  يا سمت سرويس دهنده . در آغاز ، برای انجام پردازش ها بر روی سرويس گيرنده متمركز شدند . با اين هدف كه بتوان پردازش های مورد نياز را ( با حوزه ای كه در آن زمان تعريف شده بود ) ، در سمت سرويس گيرنده انجام داد . برای تحقق خواسته فوق لازم بود كه بستر و ابزارهای لازم در بطن مرورگر ها ايجاد گردد . ظهور فناورهائی نظير Html-DOM ، جاوااسكريپت ، CSS  ( برگرفته شده از  cascading style sheets ) و DHTML  ( برگرفته شده از Dynamic HTML  )  از جمله مهمترين تلاش های انجام گرفته در آن زمان برای تحقق پردازش ها در سمت سرويس گيرنده بود . برای آشنائی بيشتر با تلاش های انجام گرفته در آن زمان بد نيست مروری سريع داشته باشيم به آنچه طی ساليان گذشته در عرصه وب اتفاق افتاده است .

    •  عرضه جاوا اسكريپت : Netscape Navigator اولين مرورگر وبی بود كه پس از طراحی و پياده سازی موفقيت آميز توانست به عنوان كاتاليزوری در رشد وب و عرضه فناوری های مرتبط با آن نقش بسيار مثبتی را ايفاء‌ كند . اغلب سازمان ها و شركت ها از مرورگر فوق به عنوان معيار استاندارد خود برای پياده سازی فناوری های جديد استفاده می كردند . يكی از اين فناوری ها ، جاوا اسكريپت بود . 
      جاو ااسكريپت توسط Brendan Eich از نت اسكيپ ايجاد و  نسخه شماره دو  آن در سال 1995 عرضه گرديد . برای اولين مرتبه ، پياده كنندگان قادر به ايجاد صفحات وبی شدند كه می توانست با كاربر تعامل برخورد نمايد . استفاده از جاوا اسكريپت برای معتبر سازی داده در سمت سرويس گيرنده و حذف برخی مبادلات غيره ضروری بين سرويس گيرنده و سرويس دهنده از جمله مهمترين دستاورد بكارگيری جاوا اسكريپت در آن زمان بود . بدين ترتيب نطفه پردازش های ساده در سمت سرويس گيرنده به كمك جاوا اسكريپت بسته شد . قابليت فوق در زمانی كه اكثر كاربران اينترنت از طريق يك مودم با سرعت 8 . 28 ( Kbps ) به شبكه وصل می شدند ، باعث می شد كه تعداد دفعاتی كه كاربران مجبور به انتظار برای دريافت يك پاسخ از سرويس دهنده باشند ، كاهش يابد . تحول فوق اولين مرحله جدی به سمت رويكرد Ajax در آن زمان بود .

    •  ايجاد فريم :   در نسخه اوليه HTML با هر سند به عنوان يك موجوديت رفتار می شد  تا اين كه در نسخه شماره چهار فريم ها معرفی گرديدند . با استفاده از فريم ها  نمايش يك صفحه وب می توانست مشتمل بر بكارگيری مجموعه ای از ساير صفحات وب باشد . ايده فوق يك اصلاح ساختاری اساسی در خصوص نحوه نمايش يك صفحه وب بود .  Netscape Navigator 2.0 اولين مرورگری بود كه از فريم ها و جاوا اسكريپت حمايت كرد . اين يك مرحله جدی به سمت رشد و توسعه Ajax در آن زمان بود .
      با توجه به اين كه يك فريم ، يك درخواست مجزاء را  برای سرويس دهنده ايجاد می كرد ، قابليت كنترل يك فريم و محتويات آن با استفاده از جاوا اسكريپت دنيای جديدی را پيش روی طراحان و پياده كنندگان صفحات وب قرار داد .

    • روش فريم  مخفی  : به موازات اين كه پياده كنندگان درگير نحوه استفاده از فريم ها شدند  ، يك روش جديد با هدف تسهيل در امر ارتباط بين سرويس گيرنده و سرويس دهنده مطرح گرديد . روش فريم مخفی شامل تنظيم يك frameset با طول و يا عرض صفر پيكسل است كه هدف اساسی آن انجام فرآيند مقداردهی اوليه با سرويس دهنده بود . فريم مخفی شامل يك فرم HTML با فيلدهای خاصی است كه می توانست بطور اتوماتيك توسط جاوا اسكريپت تكميل و برای سرويس دهنده ارسال گردد . زمانی كه فريم از سرويس دهنده مراجعت می كرد ، يك تايع ديگر جاوا اسكريپت فراخوانده می شد تا اعلام نمايد كه داده از سمت سرويس دهنده برگردانده شده است . روش فريم مخفی ، اولين مدل درخواست و پاسخ غيرهمزمان را برای برنامه های وب به ارمغان آورد ( اولين رويكرد به مدل ارتباطی Ajax ) .

    • Dynamic HTML  و DOM  :  تا سال 1996 ، وب يك دنيای ايستا را تجربه می كرد و برای تعامل محدود با كاربر از جاوا اسكريپت و روش فريم های مخفی استفاده می گرديد . همچنان امكان تغيير در محتويات يك صفحه بدون نياز به load مجدد آن از سرويس دهنده وجود نداشت .  در ادامه IE 4.0 ( برگرفته شده از  Internet Explorer  )  توسط شركت مايكروسافت ارائه گرديد . در اين نسخه علاوه بر بكارگيری اكثر فناوری های استفاده شده در Netscape Navigator ، يك ويژگی مهم ديگر با نام DHTML ( برگرفته شده از Dynamic HTML  ) نيز ارائه گرديد . DHTML به پياده كنندگان اجازه می داد تا بتوانند هر بخشی از يك صفحه مستقر شده در حافظه سرويس گيرنده را با استفاده از جاوا اسكريپت تغيير دهند . DHTML به همراه عرضه غيره منتظره CSS ( برگرفته شده از  cascading style sheets ) به وب و نحوه پياده سازی صفحات وب يك نيروی تازه داد. پياده كنندگان توانستند با تركيب DHTML و روش فريم های مخفی هر بخشی از يك صفحه را با استفاده از اطلاعات دريافت شده از سرويس دهنده refresh نمايند . ويژگی فوق در زمان خود توانست يك تحول بزرگ در عرصه وب را ايجاد نمايد .
      در ادامه ،  DOM ( برگرفته شده از  Document Object Model  ) ارائه گرديد . برخلاف DHTML كه صرفا" امكان تغيير بخش هائی خاص از يك صفحه وب را فراهم می كرد ، DOM  دارای يك هدف بلندپروازانه ديگر بود . هدف DOM ارائه يك ساختار برای تمامی صفحه بود . انجام عمليات و يا پردازش بر اساس ساختار فوق ، امكان تغيير يك صفحه را فراهم می آورد . اين مرحله بعدی به سمت Ajax بود .

    • Iframesبا اين كه روش فريم مخفی بطور غيرقابل پيش بينی متداول گرديد ، ولی دارای چالش های مختص به خود بود . افرادی می بايست زمان زيادی را صرف نوشتن يك frameset می كردند تا شرايط استفاده از فريم های مخفی فراهم گردد . زمانی كه عنصر  >  در سال 1997 و به عنوان بخشی از نسخه رسمی HTML 4.0 ارائه گرديد ، يك قدم اساسی ديگر به سمت انقلاب بر روی وب حركت شد .
      در مقابل تعريف frameset ، پياده كنندگان قادر به استفاده از فريم ها در هر مكانی از صفحه شدند . بدين ترتيب پياده كنندگان توانستند از  iframe نامرئی ( با بكارگيری قابليت های CSS ) در يك صفحه استفاده نمايند و شرايط عملياتی لازم جهت مبادله داده بين سرويس گيرنده و سرويس دهنده را فراهم نمايند . زمانی كه نسخه نهائی DOM در IE 5.0 و Netscape 6.0 پياده سازی گرديد ، قابليت ايجاد فريم ها به صورت پويا نيز فراهم گرديد . در چنين حالتی از يك تابع جاوا اسكريپت به منظور ايجاد يك iframe ، ايجاد يك درخواست و دريافت پاسخ ( جملگی بدون نياز به اضافه كردن تگ های HTML اضافه در يك صفحه ) استفاده می گرديد . اين روش معروف به روش iframe مخفی گرديد .

    • XMLHttp  : پياده كنندگان مرورگر شركت مايكروسافت پس از مشاهده عموميت استفاده از روش هائی‌ نظير فريم مخفی و iframe مخفی ، تصميم گرفتند يك ابزار بهتر جهت تعامل بين سرويس دهنده و سرويس گيرنده را ارائه نمايند . اين ابزار به شكل يك اكتيوايكس و با نام  XMLHttp در سال 2001 ارائه گرديد .
      زمانی كه مايكروسافت حمايت خود از XML را از طريق يك كتابخانه با  نام MSXML آغاز كرد ، شی XMLHttp نيز به همراه آن ارائه گرديد .
      با اين كه شی‌ فوق به همراه خود نام XML   را يدك می كشيد ولی چيزی بمراتب بيشتر از روشی برای انجام عمليات بر روی داده XML  بود . شی فوق همانند يك درخواست HTTP بود كه می توانست توسط جاوا اسكريپت كنترل گردد . پياده كنندگان دارای قدرت دستيابی به كدهای وضعيت HTTP و هدر همانند داده برگردانده شده از طريق سرويس دهنده بودند . داده می توانست به صورت XML ساختيافته ، اشياء سريال شده جاوا اسكريپت و يا ساير فرمت های مورد نظر پياده كننده باشد . در مقابل استفاده از فريم های مخفی و يا iframe ، اين امر ميسر گرديد كه به سرويس دهنده از طريق كد و توسط جاوا اسكريپت دستيابی داشت ( مستقل از چرخه load و  reload صفحه ) . شی XMLHttp پس از مدتی به عنوان يك موفقيت بزرگ برای پياده كنندگان مرورگر IE  عرض اندام كرد .
      به موازات متداول شدن شی فوق ، پياده كنندگان در Mozilla نسخه اختصاصی از  XMLHttp را پياده سازی كردند . در مقابل اجازه دستيابی از طريق اكتيو ايكس ، پياده كنندگان موزيلا متدها و خصلت ها را در يك شی ذاتی مرورگر و با نام objectXMLHttpRequest ارائه كردند . پس از اين كه دو مرورگر اصلی در بازار هر يك توانستند به نوعی از XMLHttp حمايت نمايند ، مرورگرهائی ديگر نظير Opera و Safari نيز هر يك به نوعی حمايت خود از شی فوق را اعلام كردند .

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

وب پويا با تمركز بر روی پردازش های سمت سرويس دهنده
همزمان با گسترش اينترنت و  وب ، ايجاد صفحات وب  با محتويات پويا با اتكاء به منابع داده موجود در سمت سرويس دهنده و ساير شرايط تاثير گذار در فرآيند پاسخ به درخواست كاربران مطرح گرديد . همين موضوع باعث شد كه توجه به سرويس دهنده برای انجام برخی پردازش ها  نيز در دستور كار قرار بگيرد . ظهور فناورهائی نظير  ASP ( برگرفته شده از Active Server Page ) و PHP ( برگرفته شده از  Hypertext Preprocessor  ) از اوايل سال 1996 پاسخی به اين نياز بود . از آن زمان به بعد بود كه كم كم واژه برنامه های وب قدم در عرصه نرم افزار گذاشت . اگر به تعاريف آن زمان برگرديم مشاهده می كنيم كه در ابتدا از اين اصطلاح در خصوص صفحات وب پويا استفاده می گرديد .
نگرش جزيره ای به فناورهای مرتبط با برنامه های وب تا اوايل سال 1999 ادامه يافت . تا اين كه شركت های متعددی به فكر ارائه يك پلت فرم با در نظر گرفتن واقعيتی به نام اينترنت افتادند . دات نت ، پلت فرم ارائه شده توسط شركت مايكروسافت يك نمونه در اين زمينه است كه از صدر تا ذيل آن با در نظر گرفتن واقعيتی با نام اينترنت طراحی و پياده سازی شده است .
در اين دوران بود كه به برنامه های وب با يك نگاه جامع تر و سيستماتيك تر نگاه می شد . در طی پنج سال گذشته ، اين نوع برنامه ها توانستند با بكارگيری مجموعه ای از  فناوری ها  منشاء تحولات عمده ای در خصوص بردن اينترنت در متن  زندگی (و نه حاشيه ! ) مردم جهان باشند . ايده " نرم افزار به عنوان سرويس " و يا برنامه نويسی سرويس گراء از نگرش های جديد به مقوله نرم افزار و دنيای برنامه نويس‍ی در عرصه وب است .
موج استفاده از اينترنت برای ارائه خدمات online ( ارائه شده به كاربران از طريق برنامه های وب )  باعث گرديد تا معماری و رفتار اينگونه برنامه ها با تامل بيشتر مطالعه و بررسی گردد . هدف ، ايجاد برنامه های وب با كارآئی مطلوب است تا ضمن ارائه خدمات خود دارای ويژگی هائی نظير : افزايش تعامل كاربر با برنامه ( همانند برنامه های desktop ) ، استفاده بهينه از محيط انتقال و به حداقل رساندن ترافيك آن ، مديريت بهينه منابع سمت سرويس گيرنده در پاسخ به رويدادهای محقق شده سمت سرويس گيرنده ، عدم ارسال اطلاعات غيره ضروری توسط سرويس گيرنده و ... باشند .  ماحصل اين تفكرات ظهور فناوری جديدی با نام Ajax است كه شركت هائی نظير گوگل و مايكروسافت توانستند از سال 2005 با بكارگيری اين فناوری تحول بزرگی را در عرصه برخی از سرويس ها و خدمات خود ايجاد نمايند .

حمع بندی !
همزمان با بحث معماری سرويس گيرنده و سرويس دهنده  دو واژه   fat-client و thin-client  قدم در ادبيات نرم افزار گذاشتند . در معماری فوق ، هدف استفاده از توان پردازشی سرويس گيرنده و سرويس دهنده برای اجرای يك برنامه است . استفاده از توان پردازشی هر يك از عناصر اصلی درگير در معماری فوق و تعريف سهمی خاص برای هر يك  ( سرويس گيرنده و سرويس دهنده ) ، از اهداف اوليه و در عين حال بسيار مهم معماری فوق است .
پياده كنندگان برنامه های كامپيوتری خصوصا" برنامه های وب ، همواره با اين سوال مواجه بوده و هستند كه در تقسيم سهم پردازش ، چه ميزان سهم را می بايست به سرويس گيرنده داد ؟ چه پردازش هائی را می توان در سمت سرويس گيرنده انجام داد ؟ در پاسخ به اين سوال رويكردهای مختلفی مطرح شده است . fat client و thin client دو نمونه متداول در اين زمينه می باشند .
در   fat client ، هدف بكارگيری پتانسيل های  مرورگر برای انجام اكثر پردازش ها در يك برنامه وب است . رويكرد فوق در اواسط دهه 90 ميلادی در كانون توجه طراحان و پياده كنندگان وب قرار گرفت . علت اين امر به تلاش شركت های بزرگ نرم افزاری در جهت توليد و ارائه فناورهائی بود كه توانمندی مرورگر  در انجام پردازش  را افزايش می داد . ظهور فناورهائی نظير جاوا اسكريپت ، ايجاد يك اينترفيس برنامه نويسی در مرورگر ،‌ايجاد يك مدل شی گراء ( ولو ناقص ) برای يك سند HTML با هدف امكان دستيابی به هر يك از عناصر موجود در آن ، عرضه DHTML و CSS جملگی نشاندهنده تلاش هائی است كه در آن زمان با هدف افزايش توان پردازش در سمت سرويس گيرنده مطرح شد .
پس از گذشت مدت زمان كوتاهی ( از ابتدای سال 1996 ) ، تمايل به سمت برنامه های وب با ويژگی thin client مطرح گرديد . در مدل فوق ، هدف كاهش سهم پردازش در سمت سرويس گيرنده و افزايش پردازش های سمت سرويس دهنده بود . ظهور فناورهای متعددی نظير ASP   و PHP   تنها نمونه ای اندك از تلاش های انجام يافته در آن دوران برای افزايش توان پردازش در سمت سرويس دهنده است .
با اين كه در ساليان گذشته همچنان از پتانسيل های سمت سرويس گيرنده برای انجام پردازش در برنامه های وب استفاده می گرديد ، ولی رفتار اكثر برنامه های وب    مبتنی بر اين واقعيت بود كه : " داده را وارد نمائيد ، صفحه را برای سرويس دهنده ارسال نمائيد و منتظر دريافت پاسخ باشيد " .
هم اينك ما شاهد يك تحول بزرگ ديگر در عرصه برنامه نويسی هستيم . تحولی كه مهمترين دستاورد آن ، تولد نسل جديدی از برنامه های وب است كه در آنها كاربر با برنامه دارای تعامل بمراتب بيشتری نسبت به نسل گذشته برنامه های وب است . اين تحول عظيم نرم افزاری به كمك مجموعه ای از فن آوری ها كه در مجموع به آنها Ajax گفته می شود ، محقق می گردد .
آيا Ajax قصد دارد با تغيير در الگوی رفتاری برنامه های وب فاصله آنها را با برنامه های desktop كاهش دهد ؟  آيا زمان آن رسيده است كه برای پردازش های سمت سرويس گيرنده از يك پلت فرم جامع ، همانند پلت فرم های ارائه شده سمت سرويس دهنده ، استفاده گردد ؟ آيا تاكنون از اين فناوری به منظور ايجاد برنامه های وب  استفاده شده است ؟  با استفاده از چه مكانيزم هائی می توان مبادله اطلاعات بين سرويس گيرنده و سرويس دهنده را كاهش و از پهنای باند موجود استفاده بهينه كرد ؟
اجازه دهيد به اين سوال و سوالات بسيار ديگر در رابطه با Ajax ، فناورهای مرتبط با آن و از همه مهمتر كاربرد آن در بخش های بعدی پاسخ دهيم .


:: موضوعات مرتبط: , ,
:: بازدید از این مطلب : 1709
|
امتیاز مطلب : 6
|
تعداد امتیازدهندگان : 2
|
مجموع امتیاز : 2
تاریخ انتشار : دو شنبه 9 خرداد 1390 | نظرات ()
نوشته شده توسط : سایت رسمی حسابداری و حسابرسی

هر چند صنعت فن‌آوري اطلاعات هنوز پديده‌اي نوظهور به‌شمار مي‌آيد و چندي بيش از عمر آن نمي‌گذرد، با اين حال به سرعت نور دستخوش تحولات گسترده‌اي است و نهايت تلاش خود را مي‌نمايد تا سه امكان سرعت، سهولت و كاهش هزينه‌ها را براي كاربران خود به ارمغان بياورد.
سيستم مديريت محتوا ( CMS ) تحولي شگرف در زمينه طراحي و مديريت سايت‌هاي اينترنتي به‌شمار مي‌آيد. امروزه توقع بينندگان سايت‌ها بسيار بالا رفته و ديگر مرور سايت‌هايي با صفحات ثابت و راكد هيجاني در آنها ايجاد نمي‌كند.

امروز كاربران به‌‌دنبال سايت‌هايي مي‌گردند كه بتوانند به نوعي در گوشه‌اي از آن سهمي داشته باشند و خود را در آن مطرح نمايند. سطح توقع كاربران امروزي سرعت در تغيير و به‌روز رساني اطلاعات است و ارائه مطالب و اطلاعات جديد در هر بار رجوع كاربران به سايت مي‌تواند آنها را پايبند سايت نمايد.

حتي بسياري از ارائه ‌دهندگان خدمات جزئي در اينترنت نيز امروزه به اين فكر افتاده‌اند كه براي جذب كاربران به نوعي امكانات انواع نظرسنجي و نظرخواهي را در وب ‌سايت خود فراهم نمايند.
يكي از مشكلاتي كه تا امروز به نوعي باعث مي‌شد تا افراد كمتري به فكر داشتن يك وب‌ سايت بيافتند شايد نداشتن تخصص كافي و هزينه‌هاي بالاي آن بوده، ولي امروزه با دسترس بودن سيستم CMS ديگر تمامي اين مشكلات رفع شده و حتي دانش‌آموزان نيز مي‌توانند بدون داشتن تخصص كافي و با كمترين هزينه وب‌ سايت‌هاي مورد علاقه خود را راه‌اندازي نمايند.

سيستم CMS به شما اين امكان را مي‌دهد تا محتويات متني و تصويري سايت خود را به‌صورت كاملاً پويا و آنلاين بروز نماييد.

براي درك بيشتر كارايي اين سيستم آن‌را با يك سيستم ثابت همچون html مقايسه مي‌نماييم. هنگامي كه شما در سايت خود از صفحات ثابت html استفاده مي‌نماييد، براي به‌روز كردن آن ناگزيريد كه ابتدا صفحه موجود قبلي را دانلود نماييد، سپس تغييرات مورد نظر را بر روي آن اعمال و سپس صفحه جديد را مجدداً بر روي سرور آپلود نماييد و تنها شما و افرادي كه كدهاي دسترسي لازم براي اين كار را در اختيار دارند قادرند تا اين عمل را انجام دهد. همچنين براي اين منظور حتماً بايد از برنامه‌هاي جنبي و كمكي استفاده كنيد. اين در حالي است كه با در اختيار داشتن يك سيستم پويا و ديناميك مثل CMS شما قادريد به‌راحتي مطالب موجود در سايت خود را به‌روز نماييد.
براي مثال براي اضافه نمودن يك مقاله به سايت خود فقط كافي است به‌وسيله يك مرورگر سايت خود را باز نماييد (فرقي نمي‌كند كه توسط چه كامپيوتري اينكار را انجام مي‌دهيد، فقط لازم است به اينترنت متصل باشيد) بر روي دكمه اضافه نمودن مقاله كليك كنيد، براي شما يك ديالوگ باز مي‌شود كه قادريد مقاله مورد نظر را در آن تايپ نماييد و يا آن‌راCopy Paste كنيد، سپس بر روي دكمه "تأييد" كليك كنيد تا مقاله مورد نظر در سايت شما اضافه شود، به همين راحتي و با همين سرعت .

به‌طور خلاصه در سايت‌هاي ثابت كه شما تنها يكسري صفحات ثابت HTML داريد، براي هر بار تغيير ناگزير هستيد كه كل صفحه HTML را ويرايش نماييد و سپس همه آنها را آپلود نماييد تا سايت به‌روز شود، ولي در سيستم ديناميك و پوياي CMS براي به‌روز كردن صفحات سايت خود اصلاً احتياجي به چنين كارهايي نداريد، تنها كافي است سايت خود را باز نماييد، بر روي چند لينك كليك كنيد و سايت خود را به‌روز نماييد. تنها تخصصي كه نياز داريد، نحوه مرور كردن سايت‌ها در اينترنت و كار با يك نرم‌افزار مرورگر وب همچون اينترنت اكسپلورر مي‌باشد. امكان فوق يكي از صدها امكاني است كه استفاده از سيستم CMS به‌جاي صفحات ثابتHTML براي شما به ارمغان مي‌آورد.



:: موضوعات مرتبط: , ,
:: بازدید از این مطلب : 1710
|
امتیاز مطلب : 8
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3
تاریخ انتشار : دو شنبه 9 خرداد 1390 | نظرات ()