JQuery چیست؟

آوریل 21, 2008 at 1:23 ق.ظ | In پرسش و پاسخ | 7 Comments

راستشو بخاین این آقای دکتر مزیدی استارت پرسش و پاسخو برام زد و بهانه اولین پست این صفحه بود.ایشون لطف دارن و تقریبا هفته ای 21 بار به من سر می زنن و البته وقتی میان اینجا من سرشو کوتاه میکنم.بگذریم ، ایشون پرسید که جی کوئری چیه ؟ من هم همچین از سرکار گذاشتنش بدم نمی آد! یکسری اراجیف بهش گفتم که البته خودمم هم نفهمیدم و وقتی آخر توضیحاتم ازش پرسیدم که چقدر از حرفامو فهمیده گفت که همشو فهمیده ! خب ، حالا اینجا میخام سوال ایشونو بدرستی پاسخ بگم که دینی بگردنم نداشته باشن آخه میدونی من حلال و حرام سرم میشه!
میدونید که تمامی صفحاتیکه شما در وب می بینید و میخونید یعنی محتوای اینترنتی ، بر اساس زبان پایه HTML تولید می شوند و حتی وقتی یه توسعه دهنده از زبانهای توسعه وب استفاده می کنه مثل سی شارب ، پی اچ پی ، و یا…. در نهایت اونچه به سمت کاربر ارسال میشه بزبان HTML هست.زبان فوق بر اساس ساختاری درختی شکل میگیره که بهش میگن DOM یا Document Object Model. این مدل ساختار شی ء گرا داره بنابر این دارای والد و فرزند هست.بعنوان مثال شء والد صفحه ، شی یی بنام Window هست که والد شی ء فرزندی بنام Document میشه و اونهم بنوبه خودش والد اشیاء درونی خودش مثلا Form و در نهایت این شی آخری والد اشیاء دیگری مثل Combobox ، EditBox , Button و…. هست.
شمای مصور توصیف DOM

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

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

window.onload = function(){ alert("a") }

داخل پرانتز بگم که برای دیدن کد HTML یک صفحه می تونید منوی View و سپس گزینه Source رو انتخاب کنید(IE) ، کد بالا میگه که وقتی صفحه داره لود میشه تا در براوزر شما نمایش داده بشه یه پنجره باز بشه و حرف a را نشون بده.این یک نمونه از کد نویسی برای رویداد لود صفحه هست.خب ، رویدادهای متنوعی برای یک صفحه و انواع اشیاء داخل اون وجود داره و شما در کار با اینترنت صفحات مختلف با جلوه های متنوعی رو دیدید.توسعه دهندگان وب ، برای کدنویسی های این رویدادها و جلوه ها ، از زبانهای اسکریپتی استفاده می کنند ، و برای اینکه ناچار نشن که دوباره کاری بکنن ، معمولا کتابخونه ای از این اسکریپتها برای خودشون درست می کنن و برای توسعه نرم افزارهای وبی خودشون از اونها استفاده می کنن.خب از اونجا که ایجاد این کتابخونه ها وقتگیره ، تهیه کتابخونه های جامع معمولا برای توسعه دهنده ها بخصوص اونها که انفرادی کار میکنن و یا تازه کار هستن مقرون به صرفه نیست.بنابر این بهتر بنظر می رسه که از کتابخونه های جامع و آماده استفاده کنن که توی اینترنت فراوونه.انواع این کتابخونه ها برای فریموورک های مختلف ASP , PHP , Perl , Ruby , J2EE ,… وجود داره که هر کدوم ویژگیهای خودشونو دارن.مشهورترین و پر استفاده ترین این کتابخونه ها GWT یا Google Web Toolkit برای برنامه نویسان جاوا و مشابه این کتابخونه توسط یاهو بنام YUI هست و البته برای برنامه نویسان PHP هم کتابخونه JQuery. البته همینجا بگم نمیشه مطلقا این کتابخونه ها رو محدود به زبانهای نامبرده کرد و میشه که مثلا از JQuery در محیط ASP.Net هم استفاده کرد.ویژگیهای مقایسه ای اینها رو می تونید در
http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks ببینید.

پس حالا باید جا افتاده باشه که JQuery یه کتابخونه اسکریپتی هست برای توسعه صفحات وب که بیشتر توسط توسعه دهندگان بزبان PHP استفاده میشه.

در مورد هر یک از لغات و یا جملات این پست اگر سوالی بود ، بپرسید تا باز هم پر حرفی کنم.

تا کنون 7 نظر داده شده »

RSS برای دیدگاه‌های‌ این نوشته. آدرس دنبالک

  1. سلام. در همین راستا:
    jQuery for JavaScript programmers

    یه کم فنیه ولی خوب برای آشناییم بد نیست.

  2. خیلی ممنون. عالی بود. با تشکر

  3. خیلی ممنون

  4. سلام. ممنون از مطلبتون. سوالی داشتم:
    خوب گفتین که jquery یک فریم ورک برای فریم ورک های بزرک تر است.
    می خوام بدونم فریم ورک asp.net چه فرقی با فریم ورک های وب داره؟
    در این لیست که میبینین چرا jquery نوشته نشده :
    http://en.wikipedia.org/wiki/List_of_web_application_frameworks
    و اینکه به php یا asp.net میگن فریم ورک وب. ولی به اینام همین کلمه رو میگن. پس چه فرقی بین ASP.net و jquery وجود داره؟ یا چه فرقی بین ASP.net ajax و GWT وجود داره؟ کلا تعریف web application framework چیه؟ و چه خصوصیاتی داره؟ به jquery هم میگن javascript libirary و هم میگن web application framework اینا چه فرقی دارن؟ واقعا کلافه شدم.

    • در پاسخ به دوست گرامی ، جناب آقای امیر ، باید عرض کنم که من جایی از پست ننوشتم که جی کوئری یک فریموورک هست و یا اینکه فریموورکی برای فریموورکهای بزرگتره!
      چیزی که گفته شده اینه که جی کوئری و GWT و YUI و…. کتابخونه های جاوا اسکریپتی هستند که میتونند در فریموورکهای مختلف مثل جاوا یا ASP.Net ,… مورد استفاده قرار بگیرند.
      در مورد اینکه فریموورک ASP.Net چه فرقی با سایرین داره ، خودش یک پست مجزا میخاد و البته در اینمورد مقالات متنهابهی در اینترنت میشه پیدا کرد.مقایسه ها از نظر کارایی ، سرعت بارگذاری و یا ترجمه ، امنیت ، قابلیت توسعه و باز بودن منبع ، تنوع کنترلها و یا سورس کد ها ، قابلیت نصب در سیستمهای عامل مختلف ، و….. انجام میشه و خوب در مورد تک تک اینها میشه بحثهای مفصلی کرد.
      اما اونچه مهمه این هست که چیزی که باعث میشه یک تیم تصمیم بگیره که پروژه پیشنهادی رو با چه فریموورک و پلاتفرمی پیاده سازی بکنه ، ویژگیها و مشخصه نیازمندیهای سیستم مورد نظر هست و در واقع تولید کننده یک نرم افزار سفارشی ، ابتدا مطالعه ای مقدماتی انجام میده و بعد تصمیم میگیره و در واقع شرکتهای بزرگ تولید نرم افزار ، هیچ تعصبی نسبت به فریموورک ندارند(البته اگر محدودیتهای مالی و یا منابع انسانی و نیروی متخصص نداشته باشند)
      بنابر این ممکنه مثلا برای پروژه های وبسایت که صرفا جهت اطلاعرسانی دارند PHP توصیه بشه و نیز برای پورتالهایی که علاوه بر اطلاعرسانی لازمه که کارکردهایی از قبیل Form Filling و یا Collaboration هم داشته باشند جاوا و یا ASP.Net و یا در مورد پروژه های وب مالی مانند بانکداری از سیستمهای Java استفاده بشه که البته باز هم قابل بحثه.
      در مورد لینکی که فرستادید ، اونجا در واقع فریموورکهای Web Application هست و نیاز به کمی توضیح داره.در واقع در این لینک ، نرم افزارهای تحت وب تولید محتوا ، پورتال ، وب سایت و بطور خلاصه پایگاههای وب فهرست و مقایسه شده اند و از نظر آکادمیک و یا تجاری ، فریموورک محسوب نمیشند ولی برخی از این نرم افزارهای تولید پایگاههای اطلاعرسانی و یا پورتال ، اونقدر گسترده هستند (چه از نظر نصب ، چه پیکره بندی ، چه کنترلهای قابل استفاده و چه تنوع امکانات و نهایتا قابلیت توسعه) که بدلیل همین گستردگی ، گاها به اشتباه به اونها فریموورک هم ممکنه بگن.
      برای JQuery و GWT و YUI بهترین نامگذاری ، کتابخونه جاوا اسکریپتی و یا Toolkit هست.البته در مورد YUI و گاهی GWT هم بدلیل تنوع امکانات و گستردگی این کتابخونه ها ، گاها توسط نیمه حرفه ای ها ممکنه فریموورک هم خونده بشن.
      فریموورک یا چارچوب ، یک مجموعه کاملا جامع رو در بر میگیره مثلا در مورد ASP.Net اگر نگاهی به Namespace ها بیاندازید متوجه میشید که جامعیت در فریموورک چه معنایی داره.اما در YUI و GWT و JQuery تمرکز ، عمدتا User Interface یا رابط گرافیک کاربری هست گرچه برخی از اونها با ترکیب و تلفیق توابع پایه ای ، اقدام به تولید کارکردهای جدید مثلا در حوزه امنیت و یا Validation هم کرده اند اما بهیچ وجه نمیشه اونها رو با فرموورکهایی مثلا ASP.Net و یا J2EE مقایسه کرد.

  5. مفید واقع شد / ممنون

  6. بسیار عالی و علمی بود لطفا ادامه بدهید


دیدگاه‌تان را بنویسید:

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

وبلاگ روی وردپرس.کام. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.