حتم داریم که تا به حال نام کوکیها را شنیدهاید و یا از آن استفاده کردهاید. بطور حتم در تارنماهای متفاوت نمونههایی را مشاهده کردهاید. برای نمونه تارنماهایی که به هنگام ورود ابتدا نام شما را گرفته و پس از آن با هر بار ورود به آن تارنما شما را شناخته و به شما خوش آمد میگویند. در این درس یاد میگیریم که چگونه به کوکیها مقدار داده و سپس مقادیر آنها را بازیابی کنیم.
کوکیها در جاوا اسکریپت
وقتی
که کاربر نشانی تارنمایی را در قسمت نشانی مرورگر مینویسد، مرورگر
درخواست بازدید تارنما را برای سرور ارسال میکند. سرور درخواست را از
مرورگر میگیرد و صفحه وب را برای مرورگر (کاربر) باز میفرستد. پس از
فرستادن صفحه وب توسط سرور برای مرورگر، ارتباط سرور و مرورگر پایان
مییابد و سرور هیچ دادهای را از مرورگر (کاربر) در خود ندارد. اگر دوباره
کاربر برای سرور درخواستی بفرستد این ارتباط بدون در نظر گرفتن ارتباط
پیشین دوباره شکل میگیرد. اینجاست که «کوکیها» پا به وسط گذاشته و برای
حفظ شناسایی ارتباط کاربر و سرور دادههایی را در خود نگه داری میکنند.
کوکیها در اصل دادههایی هستند حاوی اطلاعاتی که در رایانه کاربر ثبت
میشوند. این اطلاعات به سرور اجازه میدهد تا کاربر را پس از ارجاع دوباره
شناسایی کند. برای نمونه کاربرد کوکیها در این است که وقتی کاربر به
تارنمایی مراجعه کرد نام او ثبت شده و در مراجعه بعدی سرور نام او را بداند.
پس از بکارگیری کوکیهای، وقتی کاربر توسط مرورگر خود درخواستی را برای سرور میفرستد همراه آن درخواست کوکیها (دادههایی در مورد کاربر) ارسال میشوند. به این ترتیب سرور دادههایی در مورد کاربر را در اختیار دارد و با دیدن آنها، کاربر را شناسایی میکند.
ساخت کوکیها در جاوا اسکریپت
کوکیها در جاوا اسکریپت به شیوه زیر ساخته میشوند:
document.cookie="username=پیمان";
در این درس میخواهیم در مورد رویدادهای زمانی و اجرای کدها در فواصل زمانی متفاوت شرح بدهیم.
رویدادهای زمانی در جاوا اسکریپت
یکی
دیگر از قابلیتهای جاوا اسکریپت اجرای کدهای آن در فواصل مختلف است. به
این عمل در اصل رویداد زمانی میگویند. این یعنی برای اجرای کدها زمان
بندی ویژهای با انتخاب خود تعیین کنیم. انجام زمان بندی در جاوا اسکریپت
بسیار ساده است کافیست که تنها از دو متد مورد نظر برای این کار استفاده
کنیم. این دو متد عبارتند است از:
1.etInterval() // اجرا یک تابع، بارها و بارها و در فواصل زمانی مشخص
2.setTimeout() // اجرا یک تابع، یک بار پس از انتظار تعداد مشخصی از میلی ثانیه
نکته: هر دو این متدها از متدهای آبجکت پنجره (window) در DOM اچ تی ام ال هستند.
متد setInterval
این
متد برای زمان مشخصی -که برنامه نویس تعیین میکند- منتظر میماند و سپس
کدها (تابع) را اجرا میکند و دوباره ادامه به توقف و اجرا بر اساس زمان
انتظار تعیین شده میدهد. یعنی اجرای تابع و توقف، دوباره اجرای تابع و
توقف، این روال برای همیشه ادامه دارد. شیوه نوشتن این متد به شکل زیر است:
window.setInterval( " تابع جاوا اسکریپت " , زمان به واحد میلی ثانیه );
همانطور که میبینید در جلوی متد setInterval از کلمه window استفاده شده است که نشان دهنده این مطلب است که این متد از متدهای آبجکت پنجره (window) است. البته نوشتن کلمه window ضروری نیست اما بهر حال باید دانست که متد setInterval از متدهای این آبجکت است.
این متد دارای دو ورودی یا پارامتر است که اولین آن یک «تابع» و دومین آن مدت «فاصله زمانی» تعیین شده برای ایجاد توقف در بین اجراهای تابع هستند.
نکته: هر ثانیه، ۱۰۰۰ میلی ثانیه است.
در این درس میخواهیم در مورد آبجکت پنچره و چگونگی کار با آن توضیح بدهیم.
آبجکت window
این آبجکت برای کارکردن با مرورگر است و تقریبا در تمام مرورگرها پشتیبانی میشود. در اصل این آبجکت است که پنچره در مرورگر را معرفی میکند و همه آبجکتها، توابع و متغیرهای جهانی و... زیر مجموعه آن قرار میگیرند.
متغیرهای جهانی به عنوان ویژگی آبجکت پنجره و توابع جهانی به عنوان متدهای آبجکت پنجره شمرده میشوند. حتی آبجکت document به عنوان ویژگی آبجکت پنچره میباشد.
window.document.getElementById("intro");
نمونه بالا را میتوان به شکل زیر هم نوشت:
document.getElementById("intro");
به دلیل بودن آبجکت document در زیر مجموعه window میتوان از نوشتن آن صرف نظر کرد.
در درس پیشین به چگونگی ارتباط بین جاوا اسکریپت و برچسبهای اچ تی ام ال پرداختیم. در این درس میخواهیم به قابلیتهای بیشتری از این ارتباط اشاره کنیم.
تولید محتوای پویا
جاوا اسکریپت میتواند محتوای پویا برای خروجی برچسبهای اچ تی ام ال بگذارد.
<!DOCTYPE html>
<html> <body>
<script>
document.write(Date());
</script>
</body>
</html>
همانطور که میبینید «زمان» که یک مقدار پویا میباشد در خروجی قرار داده شده است.
آموزش این دوره تا به اینجا مربوط به مفاهیم پایهای و شیوه برنامه نویسی در جاوا اسکریپت بوده است. در این درس میخواهیم به یک قابلیت دیگر جاوا اسکریپت یعنی ارتباط آن با برچسبهای اچ تی ام ال بپردازیم.
اچ تی ام ال و جاوا اسکریپت (HTML DOM) Document Object Model
DOM در اصل یک استاندارد برای دسترسی به سندهای اچ تی ام ال تعریف میکند و آنها (برچسبهای اچ تی ام ال) را به عنوان آبجکت در نظر میگیرد. وقتی یک برگه در وب بالا میآید مرورگر یک درخت از آبجکتهای واقع در آن (برچسبهای اچ تی ام ال که به عنوان آبجکت در نظر گرفته شدهاند) با نام «سند مدل آبجکت»ـی یا DOM میسازد. این مدل شبیه درختی است که در بالای آن آبجکتهای اصلی برگه قرار دارند و در زیر آن دیگر آبجکتهایی که برگه را میسازند. DOM در اچ تی ام ال قابل دسترسی با جاوا اسکریپت یا دیگر زبانهای برنامه نویسی است. بوسیله استاندارد DOM جاوا اسکریپت میتواند به برچسبهای اچ تی ام ال دسترسی پیدا کرده و حتی آنها را تغییر دهد.
تا با حال با مفاهیم گوناگونی از جاوا اسکریپت آشنا شدهایم و توانایی کدنویسی با این زبان را پیدا کردهایم. در این درس میخواهیم به دو مفهوم مهم و کاربردی ریاضی و تاریخ در جاوا اسکریپت بپردازیم. این دو مفهوم هر کدام در جای جای برنامههایی که شما در آینده خواهید نوشت کارامد خواهند بود.
ریاضی در جاوا اسکریپت
با
معنی ریاضی همگان آشنایی دارند، بله ریاضی، همان درسی که خیلیها از آن
فراری هستند. اما رابطه ریاضی با جاوا اسکریپت چیست؟ از آنجا که کار اصلی
ما برنامه نویسها نوشتن برنامههایی برای حل مشکلات مشتریهایمان است،
گاهی اتفاق میافتند که برنامهای به ما پیشنهاد میشود که در آن باید از
عملیاتهای ریاضی استفاده کرد. بطور مثال محاسبه حقوق کارمندان یک سیستم با
احتساب کسریها و افزایشها (مالیات، اضافه کاری).
نترسید قرار نیست ما در این درس به حل مسئلههای ریاضی بپردازیم. ما تنها با چند قابلیت جاوا اسکریپت در قالب متدهای آن برای عملیاتهای ریاضی آشنا میشویم.
آرایهها در جاوا اسکریپت
آرایه یک نوع متغیر مخصوص است که برای نگهداری مقادیر متفاوت در یک زمان کاربرد دارد. در تعریف دیگر شاید بتوان گفت که آرایه، متغیری با چند خانه است که توسط آن میشود مقدارهای متفاوتی را نگهداری نمود. فرق یک آرایه با متغیرهای معمولی اینست که هر متغیر معمولی تنها میتواند یک مقدار را ذخیره کند در صورتی که هر آرایه خود به تنهایی میتواند چند مقدار را نگهداری کند. آرایه را میتوان به سه شکل تعریف کرد
در درسهای گذشته پیرامون انواع دادهها در جاوا اسکریپت صحبت کردیم و دادههایی مانند عدد، رشته، منطقی، آبجکت و آرایه را معرفی نمودیم. در این درس میخواهیم با نگاهی عمیقتر به مفاهیم آبجکتها پرداخته و شرح آنها را تکمیل کنیم.
آبجکت در جاوا اسکریپت
در درس پنجم (درس آبجکتها) در مورد آبجکتها در جاوا اسکریپت شرح دادیم و گفتیم که بطور تقریبی همه چیز در جاوا اسکریپت آبجکت هستند؛ حتی انواع دادههای نخستین مانند رشتهها؛ البته به غیر از null و undefined، علاوه بر آن شما میتوانید آبجکتی را
برای خودتان بسازید. نکتهای که باید به آن توجه کنید اینست که هر کدام از
انواع دادههای نخستین میتوانند هم به شکل سنتی (نوع نخستین دادهها) و
هم به شکل آبجکت مورد استفاده قرار گیرند. این بدان معنی ست که دادهها را هم میتوان بشکل همیشگی آن استفاده کرد و هم میتوان آنها را به عنوان یک آبجکت معرفی کرد با این تفاوت که وقتی آنها را به شکل آبجکت معرفی میکنیم دادهها دارای «ویژگی» و «متد» میشوند.