جلسه قبل، مطالب کلی درباره برنامه نویسی، و انواع آن، گفته شده؛ مثل ارتباط زبان جاوا اسکریپت، با زبان سروری. این بار میخواهم ارتباط جاوا را با زبان html بیان کنم. • html یک زبان برنامه نویسی نیست؛ بلکه زبان طراحی است. شالوده هر صفحهای که در اینترنت میبینید، با این زبان نوشته شده است. مثلا این وبلاگ، و همین کلماتی که من مینویسم و شما میبینید. اگر بخواهم کلمهای را بنویسم، بزرگ شود، رنگی باشد، لینک داشته باشد، یا یک عکس وارد کنم، یا یک جدول طراحی کنم؛ همه و همه با این زبان است. متن، کیفیت متن (نوع، رنگ، اندازه)، عکس، جدول، فرم، دکمه؛ به وسیله زبان html نوشته میشوند. کار با html • نوشتن این زبان، احتیاج به محیط خاصی ندارد. مثلا زبان ویژول بیسیک را باید برنامه ویژوال بیسیک را نصب، و در محیط آن بنویسیم؛ ولی زبانهای وب، چنین محدودیتی ندارند. مثلا شما در یک متن ساده (Text)، میتوانید به راحتی، هم HTML بنویسید و هم Java و هم PHP. • در رابطه با طراحی وب، برنامههایی ساخته شدهاند که ما را در هرچه راحتر، سریعتر، و دقیقتر نوشتن، کمک میکنند. مانند “فرانت پیج” (FrontPage) از مایکروسافت، و “دریم ویور” (Dreamweaver) از ماکرومدیا، و برنامههای دیگر. در این نوع نرمافزارها، امکاناتی تدارک دیده شده که کار با html را آسان و مطمئن کردهاند. مثال: برای ضخیم کردن یک کلمه در html ، باید این دستور را نوشت: <b>مثال</b> ولی در فرانت پیج، کافی است کلمه مورد نظر را انتخاب کنید، و در نوار ابزار، آیکون B را کلیک کنید. داخل پرانتز: در اینجا نه قصد دارم فرانت پیج یا هر نرم افزار دیگری را آموزش دهم، و نه استفاده از آنها را به دوستان تازه کار، توصیه میکنم؛ چون ما را از هدفمان که یادگیری برنامه نویسی است دور کرده و باعث تنبلی میشود. تنها یک نرمافزار را پیشنهاد میکنم که از مدتها قبل، همراه و یار من در یادگیری و برنامه نویسی بوده. “۱st Page 2000“. این برنامه رایگان را میتوانید از این آدرس دریافت کنید. ساختار HTML یک صفحه وب، از دو قسمت سر (Head) و بدنه (Body) تشکیل شده، که به این صورت نوشته و مشخص میشود. <html>شروع صفحه <head>شروع سر <Script> دستورات جاوا </Script> </head>پایان سر <body>شروع بدنه محتویات صفحه: متن،عکس </body>پایان بدنه </html>پایان صفحه اسکلت اصلی یک صفحه وب، به این صورت است. واژه نامه: کـُد (Code): دستور و فرمانی که به زبان برنامه نویسی، نوشته شده. تَـگ (Tag): کوچکترین جزء یک کد. مثلا تگ سر = <head>؛ تگ بدنه = <Body>؛ تگ اسکریپت = <Scirpt>. هر تگ باید در داخل این دو علامت < >، قرار گیرد. در درسهای قبل آموختیم زبان 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 ) می گوییم . برنامه ها و فایل های موجود در کامپیوتر میزبان , به ۲ صورت می توانند برای کامپیوتر های مشتری مورد استفاده قرار گیرند . در حالت اول , فایل ها دقیقا به کامپیوتر مشتری انتقال یافته و آنجا ترجمه و اجرا می شوند . در این حالت درخواستی به میزبان فرستاده شده و میزبان این درخواست را پردازش می کند . سپس فایل درخواستی را بدون انجام هیچگونه عملیاتی به مشتری می فرستد . پس از انتقال فایل , مشتری فایل را دریافت میکند . فایل توسط مرورگر ترجمه و اجرا می شود . زبان هایی چون JS و HTML و CSS به این صورت عمل می کنند . زبان هایی که به این صورت اجرا می شوند را Client side languages ( زبان های طرف مشتری ) می گویند .این زبان ها غیر دینامیکی هستند زیرا سرویس دهنده هیچ نقشی در اجرای آنها ندارد . در حالت دوم ابتدا فایل توسط مترجمی که در کامپیوتر میزبان تعبیه شده , در خود میزبان ترجمه می شود و سپس نتایج این پردازش به مشتری ارائه می شود . مرورگرهایی که در کامپیوتر مشتری قرار دارند , نمی توانند برنامه های نوشته شده توسط اینگونه زبان ها را خودشان ترجمه و ا جرا کنند , بلکه نیاز به نقش اساسی میزبان در ترجمه آن دارند . اینگونه زبان ها را Server side languages یا زبان های طرف میزبان می نامند . این زبان ها به دلیل نقش داشتن میزبان در فرایند ترجمه و در نتیجه امکان تغییر یا استفاده فعال از منابع میزبان , حالت دینامیکی دارند . مهمترین این زبان ها ASP , CGI و PHP هستند . با استفاده از مفاهیم بالا به راحتی میتوان نتیجه گرفت JS زبانی دینامیکی نیست و فرایند های مربوط به آن روی کامپیوتر مشتری صورت می گیرد . در درسهای آینده بحث درباره چگونگی برنامه نویسی با JS را آغاز میکنیم و چند برنامه ساده خواهیم نوشت … ۲- ویژوالی شدن: ویژوال یعنی بصری، دیدنی، قابل دیدن. یعنی به جای کدنویسی در یک محیط ساده، برای ساخت یک دکمه، از دکمههای آماده در این برنامه استفاده میکنید. این نرمافزار، عناصر مختلف را به صورت آماده، در اختیار ما قرار داده است. کافی است شما آنها را انتخاب کنید. ۳- کدهای آماده: بعضی از دستورات متدوال را به صورت آماده، ارائه میکنند. ۴- غلط یاب: در صورت اشتباه نوشتن کد، اخطار میدهد. ۱- ویرایشگر قوی: امکان برگشت (Undo)، تا چندین مرحله. رنگی کردن قسمتهای مختلف کـُد، برای بهتر مشخص شدن دستورات.