۱۳۸۷ دی ۷, شنبه

آموزش Java Script (بخش 2)

شي گرايي و ديناميكي درمورد زبان JS
در درس قبل آموختيم زبان js با صفحات وب چه ارتباطي دارد و دانستيم كه برنامه هاي زبان js در ميان TAG هاي زبان HTML قرار ميگيرد . اما حال بهتر است چگونگي ارتباط js با صفحات وب را بررسي كنيم . هر چيزي كه شما در صفحه وب مي بينيد (و گاهي بعضي چيزهايي كه نمي بينيد ) و در تعريف كلي هر چيزي كه صفحه وب را تشكيل مي دهد , مثل دكمه ها ( button ) , فرم ها , عكس ها و هزاران چيز ديگر در صفحه وب , شي نام دارند . اين اشياء راه ارتباط JS با صفحات وب هستند و در واقع وظيفه اصلي JS كنترل اين اشياست . خاصيت شي گرايي (object-oriented) در JS باعث شده كه بتواند با بيشتر اشياء در صفحات وب ارتباط برقرار كند . يك مثال ساده اين مفهوم را آشكارتر مي كند . اگر ما دنياي واقعي خود را در نظر بگيريم مي توانيم ميز ها , كتاب ها , سگ ها , گربه ها , انسان ها و همه و همه را شي بناميم . در صفحات وب نيز شي به همين معناست البته با اين تفاوت كه در صفحات وب بعضي از اشياء قابل مشاهده نيستند . در صفحات وب هر شي داراي خصوصيات و مشخصه هاي خاص خودش است كه در زمان بررسي هر شي به ان اشاره خواهم كرد .
همانطور كه گفتم اين اشياء بسيار زيادند . براي راحتي استفاده از آنها , گروه ها و زير دسته هايي در نظر مي گيريم و اين اشياء را در اين گروه ها طبقه بندي مي كنيم .
زبان HTML به تنهايي نمي تواند با اعمالي كه كاربر در درون صفحه وب انجام مي دهد ارتباط برقرار كند . و علاوه بر آن توانايي ايجاد جلوه هاي ويژه كه باعث جذابيت صفحه وب مي شود را ندارد . و چون كاربر نمي تواند به وقايع (Event ) و اشياء صفحه پاسخ دهد , حالتي كسل كننده براي او ايجاد مي شود . زبان JS به خوبي اين كمبود در صفحات وب را رفع مي كند و به صفحات حالت فعال مي دهد . در واقع JS اين ويژگي را به وسيله خصلت شي گرايي اش كسب كرده است . مثلا وقتي شما اطلاعات نادرست به يك فرم در صفحه وب مي دهيد , JS با پيغامي مي تواند به شما اطلاع دهد . به صورت ساده تر مي توان گفت JS نوعي امكان انتخاب به كاربر و امكان پاسخ مناسب از طرف خود را مي دهد . با يك مثال ساده تر , مفهوم آشكار تري را در اختيار شما قرار مي دهم . شما دوربين عكاسي را در نظر بگيريد كه بدون توجه به نور اطراف خود عكس برداري مي كند . اين دوربين را مي توان مانند حالت غير فعالي HTML در نظر گرفت . در سوي ديگر دوربيني را در نظر بگيريد كه بنا به نور اطراف خود , شفافيت عكس را تنظيم ميكند .
اين دوربين را ميتوان مانند JS در نظر گرفت كه با محيط اطراف خود ارتباط برقرار مي كند وتصميمات لازم را مي گيرد و اعمال لازم را انجام مي دهد ( البته بر اساس خواست برنامه نويس ) . حال با مثالي در خود JS بحث را تكميل مي كنم . فرض كنيد شما وارد صفحه وبي شده ايد . بنا به برنامه اي كه برنامه نويس نوشته است ابتدا پيغامي مبني بر اينكه (( آيا شما از رنگ صفحه خوشتان مي آيد ؟ )) توسط JS صادر مي شود . در صورت انتخاب جواب مثبت , رنگ صفحه تغيير نمي كند ولي در صورت منفي بودن پاسخ بنا به انتخاب خود شما يا برنامه نويس رنگ صفحه تغيير مي كند . متاسفانه توسط برنامه نويسان مختلف تعاريف اشتباهي درباره مفهوم ديناميك بودن در زبان هاي برنامه نويسي ارائه مي شود . بسياري به اشتباه , به هر زباني كه شي گرا باشد ديناميك مي گويند. من ابتدا نحوه اجراي JS را مورد بررسي قرار ميدهم تا به نتيجه نهايي برسيم .
دو مفهوم Client 50162e languages و Server 50162e languages به ما كمك فراواني مي كنند . در اصطلاح به كامپيوتر كاربر يا بيننده صفحه , مشتري ( Client ) و به كامپيوتري كه به كامپيوتر هاي ديگر جهت مشاهده صفحات وب سرويس مي دهد , سرويس دهنده يا ميزبان (Server ) مي گوييم. برنامه ها و فايل هاي موجود در كامپيوتر ميزبان , به 2 صورت مي توانند براي كامپيوتر هاي مشتري مورد استفاده قرار گيرند . در حالت اول , فايل ها دقيقا به كامپيوتر مشتري انتقال يافته و آنجا ترجمه و اجرا مي شوند . در اين حالت درخواستي به ميزبان فرستاده شده و ميزبان اين درخواست را پردازش مي كند . سپس فايل درخواستي را بدون انجام هيچگونه عملياتي به مشتري مي فرستد . پس از انتقال فايل , مشتري فايل را دريافت ميكند . فايل توسط مرورگر ترجمه و اجرا مي شود . زبان هايي چون JS و HTML و CSS به اين صورت عمل مي كنند . زبان هايي كه به اين صورت اجرا مي شوند را Client 50162e languages ( زبان هاي طرف مشتري ) مي گويند .اين زبان ها غير ديناميكي هستند زيرا سرويس دهنده هيچ نقشي در اجراي آنها ندارد .
در حالت دوم ابتدا فايل توسط مترجمي كه در كامپيوتر ميزبان تعبيه شده , در خود ميزبان ترجمه مي شود و سپس نتايج اين پردازش به مشتري ارائه مي شود . مرورگرهايي كه در كامپيوتر مشتري قرار دارند , نمي توانند برنامه هاي نوشته شده توسط اينگونه زبان ها را خودشان ترجمه و ا جرا كنند , بلكه نياز به نقش اساسي ميزبان در ترجمه آن دارند . اينگونه زبان ها را Server 50162e languages يا زبان هاي طرف ميزبان مي نامند . اين زبان ها به دليل نقش داشتن ميزبان در فرايند ترجمه و در نتيجه امكان تغيير يا استفاده فعال از منابع ميزبان , حالت ديناميكي دارند . مهمترين اين زبان ها ASP , CGI و PHP هستند . با استفاده از مفاهيم بالا به راحتي ميتوان نتيجه گرفت JS زباني ديناميكي نيست و فرايند هاي مربوط به آن روي كامپيوتر مشتري صورت مي گيرد .

هیچ نظری موجود نیست: