ali_rezaei76
2007-11-16, 04:25 PM
آموزش Java Script
Java Script در یك نگاه
با اطمینان كامل می توان گفت « بیش از نیمی از كسانی كه با دنیای اینترنت در ارتباط هستند حداقل یك بار اسم Java Script را شنیده اند » ولی با دیدن یك برنامه ساده كه توسط زبان Java Script نوشته شده , دیگر حتی حاضر نشده اند حتی یك بار دیگر اسم آن را بشنوند !!! Java Script در ابتدا بسیار سخت و حتی عذاب آور! به نظر میرسد , ولی اصلاً اینطور نیست . فقط كمی تلاش و كوشش می تواند شما را در آموختن این زبان بسیار زیبا كمك كند .
در ابتدا می خواهم مقدمه ای درباره Java Script بنویسم كه بسیاری از مسائل مربوط به آن را آشكارتر كند , و مسائلی در مورد آن را بررسی كنیم تا ذهنیت های اشتباه در مورد Java Script را از بین ببرد .
در این مقدمه یكسری موارد پایه در مورد زبان برنامه نویسی Java Script مورد بحث قرار می دهیم كه دانستن انها برای درك بقیه مفاهیم آن الزامیست . مشكلات و موارد مبهم را در قسمت Java Script تالار گفتگوی سایت مطرح كنید تا این مشكلات را رفع كنیم .
در این سری آموزش ها سعی خواهم كرد كه دروس ومطالب را به صورت طبقه بندی شده و همراه با سادگی بیان و ذكر تمام جزئیات و مفاهیم ارائه كنم تا برای خوانندگان - با هر سطح معلومات - قابل استفاده باشد .
برای آموختن Java Script حتما باید یكسری اطلاعات اولیه و در واقع پیش نیاز در زمینه زبان HTML داشته باشید در میان هر درس , در صورت نیاز مواردی از HTML را ذكر خواهم كرد كه در آموختن Java Script مفید خواهند بود . شما می توانید اطلاعات مفیدی در مورد زبان HTML در آدرس های زیر بدست آورید واگر سوالی در این زمینه داشتید در قسمت Java Script یا HTML تالار سایت مطرح نمایید .
http://www.davesite.com/webstation/html
http://www.htmlgoodies.com/primers/basics.html
http://www.pagetutor.com/pagetutor/makepage
بسیاری زبان برنامه نویسی Java Script را با زبان JAVA اشتباه می گیرند و ایندو را یكی می دانند ولی اصلا اینطور نیست ! JAVA زبانی است كه در واقع نسخه پیشرفته تری از زبان C تحت ویندوز است در حالی كه Java Script یك زبان مستقل از هر زبان دیگری است , JAVA هم به صورت فایل اجرایی (Execute ) وهم در صفحات وب قابل استفاده و بكارگیری است در صورتی كه Java Script صرفا به منظور استفاده در وب و صفحات اینترنتی است . در درس های بعدی موارد دیگری از تفاوت ها یا شباهت های این دو زبان را ذكر خواهم كرد ...
دو زبان Java Script و VB script متداول ترین زبان های برنامه نویسی اسكریپتی در وب می باشند كه از ایندو , Java Script به دلیل پشتیبانی شدن توسط بیشتر مرورگرهای وب مانند Microsoft Internet Explorer و Netscape Navigator نظر تعداد بیشتری از برنامه نویسان را به خود جلب كرده است .
زبان Java Script محصولی مشترك از دو شركت Sun Microsystem و Netscape Communications می باشد كه مترجم های ان مرورگرهای وبی هستند كه از آن پشتیبانی می كنند . (مترجم برنامه ایست كه كدهای نوشته شده توسط برنامه نویس را بر اساس قواع00000000000000000000000000د همان زبان برنامه نویسی ترجمه كرده ونتایج این پردازش را به كاربر نمایش می دهد ) یعنی وقتی كدهای نوشته شده توسط JS (Java Script) توسط مرورگر IE (Internet Explorer ) خوانده می شود , این كدها توسط مترجم JS ی كه در ان تعبیه شده ترجمه میگردد وحاصل این ترجمه به بیننده ارائه می شود .
گفتیم كه JS یك زبان اسكریپتی است . یعنی برنامه هایی كه توسط آن می نویسیم متن ساده هستند (text only documents ) و توسط هر ویرایشگری كه بتواند متن ساده ایجاد كند قابل ویرایش و مشاهده هستند . متداول ترین و ساده ترین آنها ویرایشگر Note Pad است كه در تمامی نسخه های ویندوز وجود دارد . دستورات زبان JS در بین تگ های خاصی از زبان HTML قرار می گیرند (تک علامتی در زبان html است كه برای مشخص كردن دستورات این زبان از متون ساده استفاده شده و شكل كلی آن به این صورت است ) . در این حالت script ها همراه با دستورات html و معمولا درون فایلی با پسوند htm یا html قرار میگیرند . این ساده ترین راه است . راه دیگر نوشتن برنامه ها به زبان JS , ایجاد فایلی با پسوند JS و نوشتن برنامه ها در ان است ، پس از این كار فایل JS ی كه ایجاد كرده ایم را در داخل یك صفحه وب مسیردهی كرده و استفاده می كنیم .
شی گرایی و دینامیكی درمورد زبان JS
در درس قبل آموختیم زبان js با صفحات وب چه ارتباطی دارد و دانستیم كه برنامه های زبان js در میان TAG های زبان HTML قرار میگیرد . اما حال بهتر است چگونگی ارتباط js با صفحات وب را بررسی كنیم .
هر چیزی كه شما در صفحه وب می بینید (و گاهی بعضی چیزهایی كه نمی بینید ) و در تعریف كلی هر چیزی كه صفحه وب را تشكیل می دهد , مثل دكمه ها ( button ) , فرم ها , عكس ها و هزاران چیز دیگر در صفحه وب , شی نام دارند . این اشیاء راه ارتباط JS با صفحات وب هستند و در واقع وظیفه اصلی JS كنترل این اشیاست . خاصیت شی گرایی (object-oriented) در JS باعث شده كه بتواند با بیشتر اشیاء در صفحات وب ارتباط برقرار كند .
یك مثال ساده این مفهوم را آشكارتر می كند . اگر ما دنیای واقعی خود را در نظر بگیریم می توانیم میز ها , كتاب ها , سگ ها , گربه ها , انسان ها و همه و همه را شی بنامیم . در صفحات وب نیز شی به همین معناست البته با این تفاوت كه در صفحات وب بعضی از اشیاء قابل مشاهده نیستند . در صفحات وب هر شی دارای خصوصیات و مشخصه های خاص خودش است كه در زمان بررسی هر شی به ان اشاره خواهم كرد .
همانطور كه گفتم این اشیاء بسیار زیادند . برای راحتی استفاده از آنها , گروه ها و زیر دسته هایی در نظر می گیریم و این اشیاء را در این گروه ها طبقه بندی می كنیم .
زبان HTML به تنهایی نمی تواند با اعمالی كه كاربر در درون صفحه وب انجام می دهد ارتباط برقرار كند . و علاوه بر آن توانایی ایجاد جلوه های ویژه كه باعث جذابیت صفحه وب می شود را ندارد . و چون كاربر نمی تواند به وقایع (Event ) و اشیاء صفحه پاسخ دهد , حالتی كسل كننده برای او ایجاد می شود . زبان JS به خوبی این كمبود در صفحات وب را رفع می كند و به صفحات حالت فعال می دهد . در واقع JS این ویژگی را به وسیله خصلت شی گرایی اش كسب كرده است .
مثلا وقتی شما اطلاعات نادرست به یك فرم در صفحه وب می دهید , JS با پیغامی می تواند به شما اطلاع دهد . به صورت ساده تر می توان گفت JS نوعی امكان انتخاب به كاربر و امكان پاسخ مناسب از طرف خود را می دهد .
با یك مثال ساده تر , مفهوم آشكار تری را در اختیار شما قرار می دهم . شما دوربین عكاسی را در نظر بگیرید كه بدون توجه به نور اطراف خود عكس برداری می كند . این دوربین را می توان مانند حالت غیر فعالی HTML در نظر گرفت . در سوی دیگر دوربینی را در نظر بگیرید كه بنا به نور اطراف خود , شفافیت عكس را تنظیم میكند . این دوربین را میتوان مانند JS در نظر گرفت كه با محیط اطراف خود ارتباط برقرار می كند وتصمیمات لازم را می گیرد و اعمال لازم را انجام می دهد ( البته بر اساس خواست برنامه نویس ) .
حال با مثالی در خود JS بحث را تكمیل می كنم . فرض كنید شما وارد صفحه وبی شده اید . بنا به برنامه ای كه برنامه نویس نوشته است ابتدا پیغامی مبنی بر اینكه (( آیا شما از رنگ صفحه خوشتان می آید ؟ )) توسط JS صادر می شود . در صورت انتخاب جواب مثبت , رنگ صفحه تغییر نمی كند ولی در صورت منفی بودن پاسخ بنا به انتخاب خود شما یا برنامه نویس رنگ صفحه تغییر می كند .
متاسفانه توسط برنامه نویسان مختلف تعاریف اشتباهی درباره مفهوم دینامیك بودن در زبان های برنامه نویسی ارائه می شود . بسیاری به اشتباه , به هر زبانی كه شی گرا باشد دینامیك می گویند.
من ابتدا نحوه اجرای JS را مورد بررسی قرار میدهم تا به نتیجه نهایی برسیم .
دو مفهوم Client side languages و Server side languages به ما كمك فراوانی می كنند .
در اصطلاح به كامپیوتر كاربر یا بیننده صفحه , مشتری ( Client ) و به كامپیوتری كه به كامپیوتر های دیگر جهت مشاهده صفحات وب سرویس می دهد , سرویس دهنده یا میزبان (Server ) می گوییم. برنامه ها و فایل های موجود در كامپیوتر میزبان , به 2 صورت می توانند برای كامپیوتر های مشتری مورد استفاده قرار گیرند . در حالت اول , فایل ها دقیقا به كامپیوتر مشتری انتقال یافته و آنجا ترجمه و اجرا می شوند . در این حالت درخواستی به میزبان فرستاده شده و میزبان این درخواست را پردازش می كند . سپس فایل درخواستی را بدون انجام هیچگونه عملیاتی به مشتری می فرستد . پس از انتقال فایل , مشتری فایل را دریافت میكند . فایل توسط مرورگر ترجمه و اجرا می شود . زبان هایی چون JS و HTML و CSS به این صورت عمل می كنند . زبان هایی كه به این صورت اجرا می شوند را Client side languages ( زبان های طرف مشتری ) می گویند .این زبان ها غیر دینامیكی هستند زیرا سرویس دهنده هیچ نقشی در اجرای آنها ندارد .
در حالت دوم ابتدا فایل توسط مترجمی كه در كامپیوتر میزبان تعبیه شده , در خود میزبان ترجمه می شود و سپس نتایج این پردازش به مشتری ارائه می شود . مرورگرهایی كه در كامپیوتر مشتری قرار دارند , نمی توانند برنامه های نوشته شده توسط اینگونه زبان ها را خودشان ترجمه و ا جرا كنند , بلكه نیاز به نقش اساسی میزبان در ترجمه آن دارند . اینگونه زبان ها را Server side languages یا زبان های طرف میزبان می نامند . این زبان ها به دلیل نقش داشتن میزبان در فرایند ترجمه و در نتیجه امكان تغییر یا استفاده فعال از منابع میزبان , حالت دینامیكی دارند . مهمترین این زبان ها ASP , CGI و PHP هستند .
با استفاده از مفاهیم بالا به راحتی میتوان نتیجه گرفت JS زبانی دینامیكی نیست و فرایند های مربوط به آن روی كامپیوتر مشتری صورت می گیرد .
Java Script در یك نگاه
با اطمینان كامل می توان گفت « بیش از نیمی از كسانی كه با دنیای اینترنت در ارتباط هستند حداقل یك بار اسم Java Script را شنیده اند » ولی با دیدن یك برنامه ساده كه توسط زبان Java Script نوشته شده , دیگر حتی حاضر نشده اند حتی یك بار دیگر اسم آن را بشنوند !!! Java Script در ابتدا بسیار سخت و حتی عذاب آور! به نظر میرسد , ولی اصلاً اینطور نیست . فقط كمی تلاش و كوشش می تواند شما را در آموختن این زبان بسیار زیبا كمك كند .
در ابتدا می خواهم مقدمه ای درباره Java Script بنویسم كه بسیاری از مسائل مربوط به آن را آشكارتر كند , و مسائلی در مورد آن را بررسی كنیم تا ذهنیت های اشتباه در مورد Java Script را از بین ببرد .
در این مقدمه یكسری موارد پایه در مورد زبان برنامه نویسی Java Script مورد بحث قرار می دهیم كه دانستن انها برای درك بقیه مفاهیم آن الزامیست . مشكلات و موارد مبهم را در قسمت Java Script تالار گفتگوی سایت مطرح كنید تا این مشكلات را رفع كنیم .
در این سری آموزش ها سعی خواهم كرد كه دروس ومطالب را به صورت طبقه بندی شده و همراه با سادگی بیان و ذكر تمام جزئیات و مفاهیم ارائه كنم تا برای خوانندگان - با هر سطح معلومات - قابل استفاده باشد .
برای آموختن Java Script حتما باید یكسری اطلاعات اولیه و در واقع پیش نیاز در زمینه زبان HTML داشته باشید در میان هر درس , در صورت نیاز مواردی از HTML را ذكر خواهم كرد كه در آموختن Java Script مفید خواهند بود . شما می توانید اطلاعات مفیدی در مورد زبان HTML در آدرس های زیر بدست آورید واگر سوالی در این زمینه داشتید در قسمت Java Script یا HTML تالار سایت مطرح نمایید .
http://www.davesite.com/webstation/html
http://www.htmlgoodies.com/primers/basics.html
http://www.pagetutor.com/pagetutor/makepage
بسیاری زبان برنامه نویسی Java Script را با زبان JAVA اشتباه می گیرند و ایندو را یكی می دانند ولی اصلا اینطور نیست ! JAVA زبانی است كه در واقع نسخه پیشرفته تری از زبان C تحت ویندوز است در حالی كه Java Script یك زبان مستقل از هر زبان دیگری است , JAVA هم به صورت فایل اجرایی (Execute ) وهم در صفحات وب قابل استفاده و بكارگیری است در صورتی كه Java Script صرفا به منظور استفاده در وب و صفحات اینترنتی است . در درس های بعدی موارد دیگری از تفاوت ها یا شباهت های این دو زبان را ذكر خواهم كرد ...
دو زبان Java Script و VB script متداول ترین زبان های برنامه نویسی اسكریپتی در وب می باشند كه از ایندو , Java Script به دلیل پشتیبانی شدن توسط بیشتر مرورگرهای وب مانند Microsoft Internet Explorer و Netscape Navigator نظر تعداد بیشتری از برنامه نویسان را به خود جلب كرده است .
زبان Java Script محصولی مشترك از دو شركت Sun Microsystem و Netscape Communications می باشد كه مترجم های ان مرورگرهای وبی هستند كه از آن پشتیبانی می كنند . (مترجم برنامه ایست كه كدهای نوشته شده توسط برنامه نویس را بر اساس قواع00000000000000000000000000د همان زبان برنامه نویسی ترجمه كرده ونتایج این پردازش را به كاربر نمایش می دهد ) یعنی وقتی كدهای نوشته شده توسط JS (Java Script) توسط مرورگر IE (Internet Explorer ) خوانده می شود , این كدها توسط مترجم JS ی كه در ان تعبیه شده ترجمه میگردد وحاصل این ترجمه به بیننده ارائه می شود .
گفتیم كه JS یك زبان اسكریپتی است . یعنی برنامه هایی كه توسط آن می نویسیم متن ساده هستند (text only documents ) و توسط هر ویرایشگری كه بتواند متن ساده ایجاد كند قابل ویرایش و مشاهده هستند . متداول ترین و ساده ترین آنها ویرایشگر Note Pad است كه در تمامی نسخه های ویندوز وجود دارد . دستورات زبان JS در بین تگ های خاصی از زبان HTML قرار می گیرند (تک علامتی در زبان html است كه برای مشخص كردن دستورات این زبان از متون ساده استفاده شده و شكل كلی آن به این صورت است ) . در این حالت script ها همراه با دستورات html و معمولا درون فایلی با پسوند htm یا html قرار میگیرند . این ساده ترین راه است . راه دیگر نوشتن برنامه ها به زبان JS , ایجاد فایلی با پسوند JS و نوشتن برنامه ها در ان است ، پس از این كار فایل JS ی كه ایجاد كرده ایم را در داخل یك صفحه وب مسیردهی كرده و استفاده می كنیم .
شی گرایی و دینامیكی درمورد زبان JS
در درس قبل آموختیم زبان js با صفحات وب چه ارتباطی دارد و دانستیم كه برنامه های زبان js در میان TAG های زبان HTML قرار میگیرد . اما حال بهتر است چگونگی ارتباط js با صفحات وب را بررسی كنیم .
هر چیزی كه شما در صفحه وب می بینید (و گاهی بعضی چیزهایی كه نمی بینید ) و در تعریف كلی هر چیزی كه صفحه وب را تشكیل می دهد , مثل دكمه ها ( button ) , فرم ها , عكس ها و هزاران چیز دیگر در صفحه وب , شی نام دارند . این اشیاء راه ارتباط JS با صفحات وب هستند و در واقع وظیفه اصلی JS كنترل این اشیاست . خاصیت شی گرایی (object-oriented) در JS باعث شده كه بتواند با بیشتر اشیاء در صفحات وب ارتباط برقرار كند .
یك مثال ساده این مفهوم را آشكارتر می كند . اگر ما دنیای واقعی خود را در نظر بگیریم می توانیم میز ها , كتاب ها , سگ ها , گربه ها , انسان ها و همه و همه را شی بنامیم . در صفحات وب نیز شی به همین معناست البته با این تفاوت كه در صفحات وب بعضی از اشیاء قابل مشاهده نیستند . در صفحات وب هر شی دارای خصوصیات و مشخصه های خاص خودش است كه در زمان بررسی هر شی به ان اشاره خواهم كرد .
همانطور كه گفتم این اشیاء بسیار زیادند . برای راحتی استفاده از آنها , گروه ها و زیر دسته هایی در نظر می گیریم و این اشیاء را در این گروه ها طبقه بندی می كنیم .
زبان HTML به تنهایی نمی تواند با اعمالی كه كاربر در درون صفحه وب انجام می دهد ارتباط برقرار كند . و علاوه بر آن توانایی ایجاد جلوه های ویژه كه باعث جذابیت صفحه وب می شود را ندارد . و چون كاربر نمی تواند به وقایع (Event ) و اشیاء صفحه پاسخ دهد , حالتی كسل كننده برای او ایجاد می شود . زبان JS به خوبی این كمبود در صفحات وب را رفع می كند و به صفحات حالت فعال می دهد . در واقع JS این ویژگی را به وسیله خصلت شی گرایی اش كسب كرده است .
مثلا وقتی شما اطلاعات نادرست به یك فرم در صفحه وب می دهید , JS با پیغامی می تواند به شما اطلاع دهد . به صورت ساده تر می توان گفت JS نوعی امكان انتخاب به كاربر و امكان پاسخ مناسب از طرف خود را می دهد .
با یك مثال ساده تر , مفهوم آشكار تری را در اختیار شما قرار می دهم . شما دوربین عكاسی را در نظر بگیرید كه بدون توجه به نور اطراف خود عكس برداری می كند . این دوربین را می توان مانند حالت غیر فعالی HTML در نظر گرفت . در سوی دیگر دوربینی را در نظر بگیرید كه بنا به نور اطراف خود , شفافیت عكس را تنظیم میكند . این دوربین را میتوان مانند JS در نظر گرفت كه با محیط اطراف خود ارتباط برقرار می كند وتصمیمات لازم را می گیرد و اعمال لازم را انجام می دهد ( البته بر اساس خواست برنامه نویس ) .
حال با مثالی در خود JS بحث را تكمیل می كنم . فرض كنید شما وارد صفحه وبی شده اید . بنا به برنامه ای كه برنامه نویس نوشته است ابتدا پیغامی مبنی بر اینكه (( آیا شما از رنگ صفحه خوشتان می آید ؟ )) توسط JS صادر می شود . در صورت انتخاب جواب مثبت , رنگ صفحه تغییر نمی كند ولی در صورت منفی بودن پاسخ بنا به انتخاب خود شما یا برنامه نویس رنگ صفحه تغییر می كند .
متاسفانه توسط برنامه نویسان مختلف تعاریف اشتباهی درباره مفهوم دینامیك بودن در زبان های برنامه نویسی ارائه می شود . بسیاری به اشتباه , به هر زبانی كه شی گرا باشد دینامیك می گویند.
من ابتدا نحوه اجرای JS را مورد بررسی قرار میدهم تا به نتیجه نهایی برسیم .
دو مفهوم Client side languages و Server side languages به ما كمك فراوانی می كنند .
در اصطلاح به كامپیوتر كاربر یا بیننده صفحه , مشتری ( Client ) و به كامپیوتری كه به كامپیوتر های دیگر جهت مشاهده صفحات وب سرویس می دهد , سرویس دهنده یا میزبان (Server ) می گوییم. برنامه ها و فایل های موجود در كامپیوتر میزبان , به 2 صورت می توانند برای كامپیوتر های مشتری مورد استفاده قرار گیرند . در حالت اول , فایل ها دقیقا به كامپیوتر مشتری انتقال یافته و آنجا ترجمه و اجرا می شوند . در این حالت درخواستی به میزبان فرستاده شده و میزبان این درخواست را پردازش می كند . سپس فایل درخواستی را بدون انجام هیچگونه عملیاتی به مشتری می فرستد . پس از انتقال فایل , مشتری فایل را دریافت میكند . فایل توسط مرورگر ترجمه و اجرا می شود . زبان هایی چون JS و HTML و CSS به این صورت عمل می كنند . زبان هایی كه به این صورت اجرا می شوند را Client side languages ( زبان های طرف مشتری ) می گویند .این زبان ها غیر دینامیكی هستند زیرا سرویس دهنده هیچ نقشی در اجرای آنها ندارد .
در حالت دوم ابتدا فایل توسط مترجمی كه در كامپیوتر میزبان تعبیه شده , در خود میزبان ترجمه می شود و سپس نتایج این پردازش به مشتری ارائه می شود . مرورگرهایی كه در كامپیوتر مشتری قرار دارند , نمی توانند برنامه های نوشته شده توسط اینگونه زبان ها را خودشان ترجمه و ا جرا كنند , بلكه نیاز به نقش اساسی میزبان در ترجمه آن دارند . اینگونه زبان ها را Server side languages یا زبان های طرف میزبان می نامند . این زبان ها به دلیل نقش داشتن میزبان در فرایند ترجمه و در نتیجه امكان تغییر یا استفاده فعال از منابع میزبان , حالت دینامیكی دارند . مهمترین این زبان ها ASP , CGI و PHP هستند .
با استفاده از مفاهیم بالا به راحتی میتوان نتیجه گرفت JS زبانی دینامیكی نیست و فرایند های مربوط به آن روی كامپیوتر مشتری صورت می گیرد .