[موسیقی] دیوید مالان: این CS50 است. این آغاز هفته نه است. و این است که آنچه را که باید تولد 200 آقای بول بوده است. بنابراین این همراهان است که ما با آنها اشاره ام کاملا چند بار در مورد استفاده از متغیرهای بولین درست و نادرست، 1 و 0 و مانند. و این بود گوگل ادای احترام به او امروز. او را تبدیل 200. بنابراین اگر شما می خواهم به برای ناهار CS50 پیوستن به ما، نگاهی به لینک در وب سایت درس است. و چنین چهره و دوستان به عنوان این در انتظار شما در اینجا در کمبریج. چهره هایی از این در انتظار شما در نیوهیون. و، در واقع، کن در نیوهیون مهربانی ساخته شده آنچه به نام GIF متحرک الی در اینجا در اخیر lunch-- یک GIF هنوز یکی دیگر از فرمت فایل های گرافیکی، که با آن شما familiar-- که هستید به نظر می رسد کمی چیزی شبیه به این. بنابراین فقط یک دنباله of-- OK. در اینجا هیچ کس در کمبریج خنده است. اما در نیوهیون، این واقعا خنده دار، درست است؟ خیلی خوب. پس وقت را به ما بپیوندید وجود دارد. در اینجا در دانشگاه هاروارد، به طور خاص، این چهارشنبه، اگر شما یک دانشجوی سال دوم هستید و یا دانشجوی سال اول even-- و یا حتی فکر junior-- ساخت یک سوئیچ به کامپیوتر علم، می دانم که وجود دارد را یک CS مشاوره نمایشگاه این چهارشنبه، مدت کوتاهی پس از کلاس در 04:00 در کامپیوتر ساختمان علم ماکسول دورکین. ما این را در دوره قرار داده وب سایت فردا، و همچنین. پیراشکی، به من گفته، خدمت خواهد شد. خیلی خوب. story-- خیلی خنده دار بود مجبور در سراسر اینترنت، و من برخی آرشیو قدیمی از وب سایت سابق من. و آن را تبدیل out-- در اطراف این زمان، به نظر می رسد بسیار به موقع از آنجایی که من جمع آوری که انتخابات UC در مورد به دنده تا دوباره. بنابراین من برای UC زد، به طرز ناراحت از دست داد. و شاید این در بخشی به همین دلیل بود. بنابراین این وب سایت من در آن زمان بود. به چند دلیل، من فکر کردم آن بود یک ایده خوب، قبل از گفتن مردم چه پلت فرم من بود و به همین دلیل آنها باید به من رای، که آنها را کلیک کنید برای ورود به برای پیدا کردن که اطلاعات، که در نگاه به گذشته است نوع خزنده. من واقعا نمی دانم آنچه که بود. اما قطعا نه کمک به مبارزات انتخاباتی من. من هم با ارشد پیدا شده است که year-- من این تقویم ماپت ها بود. ماپت نوع در رواج آن زمان بودند. یا شاید آنها نیست. من تا به حال یک تقویم ماپت ها در آن زمان. و من فکر کردم آن می شود، سرد به نام کامپیوتر من در شبکه هاروارد frogman.student.harvard.edu. در آن زمان، همه ما منحصر به فرد بود نام میزبان مشخص می شود. و شما می توانید برخی از غرور را انتخاب کنید نام به جای نام خود را. و من با غواص برای برخی از دلیل رفت. و بعد من started-- من صرف مقدار زیادی زمان کلیک کردن از طریق این لینک امروز صبح. و این صفحه در مورد من بود، که در حال حاضر به نظر می رسد نوع شایان ستایش. اما آن را نیز به شهادت فقط چگونه فن آوری دور آمده است. منظور من، در روز، 486 چیزی بود. این روزها، آن را فوق العاده، فوق العاده، فوق العاده آرام و کمتر از شما ممکن است در خود دارند جیب خود این روز است. بیشتر در وجود دارد که حتی بیشتر شرم آور بود. پس من آن را در ترک. اما این اولین بار بود تاخت و تاز کردن web-- اوه، نه. که بود. تاخت و تاز کردن واقعی من به برنامه نویسی تحت وب این سایت، که من فقط فراموش کرده بود. در برخی موارد، یاد گرفتم چگونه به عکس های پس زمینه را تکراری. و به این ترتیب من پیدا کردم این کاشی کاری موثر، مانند بازیکن هاکی، فوتبال، گلف و توپ، و یا هر چه که باشد برای وب سایت جدید الورود انجمن ریاضی. و این در واقع، واقعا اولین پروژه مبتنی بر وب من در زمان شماها من فکر می کنم شاید دانشجوی سال دوم سال، year-- تاریخ و زمان پس از مصرف CS50 و CS51، یکی مشترک کلاس های پیگیری در. من در به دنبال متوجه از طریق آرشیو که یکی از جانشینان من و دوستان، لی، نوع تغییر کپی رایت به خود. اما این در واقع چیزی بود که من باید خجالت به خود است. اما در آن زمان، این وب سایت اولین بار بود، همان طور که گفتم چند هفته پیش، که توسط آن می تواند دانشجوی سال اول ثبت نام برای ورزش های درون مرزی است. و پس از آن معلوم که تصاویر پس زمینه مانند که چنین ایده خوبی نیست. اما وب جدید بود، و همه ما انجام داد. و این همان چیزی است که من ظاهرا در آن زمان بود. خیلی خوب. بنابراین بدون ado بیشتر، ما تغییر دهید امروز چرخ دنده را به شما بدهد، واقعا، قطعه نهایی که شما ممکن است پیدا کردن به ویژه برای پروژه های نهایی مفید بلکه به شروع خواهد شد که را در وب گسترده ای کل جهان احساس می کنم کمی قابل فهم تر. در واقع، ما قصد داریم به معرفی یک زبان برنامه نویسی بیشتر جاوا اسکریپت به نام که شبیه و به روش های مختلف مختلف از زبان ما در دور نگاه شده است. بنابراین C، به یاد بیاورید، این زبان وارد شده است. شما باید آن را از طریق یک کامپایلر. شما دریافت می کنید کد منبع به اعتراض کد، و یا صفر و. و کسانی که صفر و هستند که CPU خود را، واحد پردازش مرکزی، در واقع درک. PHP، در مقابل، است یک زبان وارد شده است. آن چه؟ این یک زبان تفسیر شده است. بنابراین برخی از برنامه وجود دارد به نام یک مفسر است که به خواندن بالای it-- به پایین، چپ به right-- و کشف کردن آنچه همه نحو خود را می کند و به معنی، آن است که آیا یک حلقه یا یک شرط یا هر تعداد دیگر از برنامه نویسی سازه. به طوری که یک زبان تفسیر شده است. سپس ما HTML معرفی شده است. و حتی یک نمی HTML زبان برنامه نویسی. ما می خواهم آن چه پاسخ؟ زبان نشانه گذاری است که فقط مرتب کردن بر اساس راه فانتزی گفتن آن سازه های برنامه نویسی مانند می کند ندارد ما شاهد حتی در روز از ابتدا. هیچ حلقه وجود دارد. هیچ شرایط وجود دارد. این واقعا یک زبان است در مورد مارک کردن داده های خود را و قالب بندی آن و یا ساختار آن را در برخی از راه. CSS، در عین حال، به طور مشابه یک زبان برنامه نویسی. آن را حتی بیشتر زیبایی گرا. و آن را اجازه می دهد تا شما را به مرتب کردن بر اساس ریز لحن چیزهایی مانند اندازه فونت و رنگ و قرار دادن و همه از آن. پس از آن ما بود SQL. بنابراین SQL در واقع یک برنامه نویسی زبان در بعضی جهات، البته متناسب با به طور خاص به پایگاه داده. اما حتی اگر ما تنها به شما معرفی را انتخاب کنید و درج و حذف و به روز رسانی و چند تن دیگر، معلوم واقع شما می توانید نوشتن توابع و یا روش ها، به عنوان آنها نامیده می شود، در SQL است که نگاه و عمل کاملا مانند توابع پی اچ پی و C. بنابراین می دانیم که کسانی وجود داشته باشد. اما ما حتی با آنها را خسته نکنید همانطور که ما تنها بخش کوچکی است. و سپس جاوا اسکریپت، گذشته از زبان ما به طور رسمی معرفی شده است. بنابراین جاوا اسکریپت، بیش از حد، یک زبان تفسیر شده. و کسانی که آشنا، انجام شما می خواهید برای تشخیص آن با برخی از ویژگی از هر دو C و پی اچ پی؟ چه چیزی باعث آن متفاوت است؟ رسید آن را کامپایل نشده است. دیوید مالان: بگو دوباره؟ رسید آن را کامپایل نشده است. DAVID مالان: این کامپایل نشده است. پس از آن، بیش از حد، تعبیر شده است. پس از آن وارد نشده است. اما آن را کمی مانند PHP می سازد. اما هنوز هم از PHP در برخی از راه قابل توجه، حداقل در راه ما آن را استفاده کنید. آره؟ مخاطبان: این اجرا می شود سمت سرویس گیرنده. دیوید مالان: این اجرا می شود سمت سرویس گیرنده، معمولا. که در واقع متمایز مشخصه برای ما در حال حاضر. C در سمت سرور به این مفهوم که ما همه چیز در CS50 IDE است. PHP تا کنون شده است سمت سرور تا آنجا آن را به عنوان، بیش از حد، می شود interpreted-- وارد نیست، اما interpreted-- در داخل CS50 IDE، که البته فقط یک یا چند سرور در ابر است. اما جاوا اسکریپت، حتی اگر شما قصد دارید شروع به نوشتن آن، می گویند، pset هشت و شاید نهایی projects-- شما رفتن به آن را در سمت راست CS50 IDE و ذخیره آن در فایل های درون IDE CS50، CS50 IDE و، به نوبه خود، سرورهای ابری که در آن میزبان، قرار نیست برای تفسیر یا اجرای کد خود را. در عوض، آن را به در ارسال می شود فرم پایین بدون تغییر به مرورگر. و بعد از آن، برای رفتن به اینترنت اکسپلورر و یا کروم یا فایرفاکس یا سافاری و یا هر آنچه که در واقع تفسیر آن، بالا به پایین، چپ به راست. بنابراین متمایز کلیدی مشخصه برای امروز است که جاوا اسکریپت سمت سرویس گیرنده است و PHP، به عنوان مثال، بوده است در سمت سرور. در حال حاضر، این امر پیامدهای جالب برای، مانند، مالکیت معنوی و که در واقع می توانید کد خود را ببینید. و در واقع، شما می توانید به در وب و ببینید ترین هر کد که کسی نوشته شده در جاوا اسکریپت. گاهی اوقات آن را قابل خواندن است، گاهی اوقات آن را مبهم اند. اما بیشتر که در زمان مقرر. بنابراین جاوا اسکریپت، به خوبی به اندازه کافی، فوق العاده مشابه، به نحوی، به C. و بسیار شبیه به پی اچ پی، هیچ عملکرد اصلی وجود دارد. اگر می خواهید شروع به نوشتن کد های جاوا اسکریپت، به عنوان شما امروز خواهید دید، شما فقط شروع به نوشتن آن. اما از آن است، شما خواهید دید، به ویژه در زمینه مرورگرهای وب مفید است. با این حال، کوچک من disclaimer-- معمولا earlier-- می گویند که شما می توانید به طور فزاینده استفاده از امروز جاوا اسکریپت سمت سرور با استفاده از یک چارچوب فانتزی به نام نود.جیاس که برخی از برنامه های کاربردی خود را CS50 در نوشته شده است. بررسی 50 در واقع با استفاده Node.js. اما ما قصد داریم به تمرکز بر روی جاوا اسکریپت های سمت سرویس گیرنده اینجا در خارج. بنابراین در اینجا مجموعه ای از شرایط در PHP است. با عرض پوزش، in-- در واقع، که بیانیه، TOO درست است. در اینجا نیز مجموعه ای از شرایط در جاوا اسکریپت. از لحاظ دستوری، آن است که یکسان به C و PHP. عبارت آقای بول هستند، به طور مشابه، نحوی یکسان به هر دوی C و PHP. ما همچنین سوئیچ در اند جاوا اسکریپت است که نگاه یکسان است. ما برای حلقه که دارند ساختار یکسان، در حالی که حلقه ها، در حالی که حلقه را انجام دهد. این یکی کمی متفاوت است. پی اچ پی برای هر سازه حال که شما ممکن است با استفاده از و یا در pset هفت شاید استفاده خواهد کرد. جاوا اسکریپت است این نسخه ویژه ای از که در آن شما به معنای واقعی کلمه می گویند چیزی مانند کلید متغیر در جسم، که یک راه بسیار موجز از این است، اگر من با یک object-- کردم ایم و خواهیم در مورد این صحبت دوباره در یک moment-- و من می خواهم به تکرار بیش از همه از جفت کلید در داخل، من لازم نیست به شکل از چگونه به شاخص عددی آنها را با صفر، یک، دو سه. من به معنای واقعی کلمه می توان گفت این. و در هر تکرار، جاوا اسکریپت برای من خواهد کلید متغیر به روز رسانی به اولین کلید، سپس کلید بعدی، سپس کلید بعدی، سپس کلید بعدی، و الی آخر. و من می توانید در ارزش خود را با درمان گرفتن یک شی در جاوا اسکریپت، همانطور که خواهیم دید، به عنوان اینکه آن را به یک آرایه انجمنی در PHP. در واقع، اگر شما در نهایت پیچیده خود را ذهن در اطراف چه یک آرایه انجمنی است در پی اچ پی، شما می توانید از آن برای حال حاضر به عنوان فکر می کنم یکسان به یک شی در جاوا اسکریپت. اما این یک بیت از این ساده. آرایه نگاه کنید، به سادگی به اندازه کافی، یکسان به پی اچ پی به جز یک شخصیت. یک چیز از دست رفته در اینجا وجود دارد که ما انجام داد هفته گذشته با پی اچ پی را ببینید. چه خبر حذف؟ آره؟ بدون علامت دلار. بنابراین ما به یک هستید بیشتر جهان طبیعی که در آن متغیرهای علائم دلار ندارد. اما شما آنها را پیشوند با ور، به طور معمول. و VAR معنی متغیر است. و بسیار شبیه به PHP است آزادانه typed-- به موجب آن انواع وجود دارد، تعداد و رشته وجود دارد و شناور خطوط و بنابراین forth-- جاوا اسکریپت مشابه دارای انواع. اما آن را آزادانه در آن تایپ ما برنامه نویسان مجبور به آنها را مشخص کنید. ما فقط باید آگاه باشید که انواع مختلف وجود داشته باشد. متغیرها، meanwhile-- اینجا است که چگونه ما ممکن است اعلام "سلام جهان" به عنوان یک رشته است. متوجه آن یکسان است به PHP اما هیچ نشانه ای دلار. و این چیزی است که ما را شروع به دیدن امروز بیشتر، به موجب آن شما یک شی با کلید ها و مقادیر. و اگر شما می خواهید امتحان کنید برای پی بردن به آخرین week-- از نحو کمی متفاوت است. اما سلامت عقل کمی check-- که چگونه بسیاری از کلید این شی به نظر می رسد؟ بنابراین من چهار ببینید. من دو را مشاهده کنید. پس از آن که در واقع دو. بنابراین این یک مجموعه است از دو جفت کلید-مقدار. کلید نماد که ارزش FB است. کلید قیمت که ارزش 101.53 است. بنابراین کسانی که دو جفت کلید-مقدار. و به یاد داشته باشید، PHP-- و این است که دوباره فقط از نوع تفاوت نحوی. این همه که فکری جالب. PHP ممکن است این همان نوشته چیزی که به عنوان نقل قول follows--، برابر است. و من این را به براکت را تغییر دهید. و سپس این به تغییر من یک کلمه به نقل از، «قیمت» و پس از آن من روده بزرگ استفاده نکنید. چه من در هفته گذشته استفاده کنید؟ آره، از علامت مساوی فلش نماد بد بو. و پس از آن من هم همین اینجا انجام داد. همان چیزی که در اینجا. همش همین بود. پس از آن خوب اگر این است و نه واقعا به حافظه فقط غرق در اما از آنجا که آن را واقعا فکری غیر. این تفاوت فقط نحوی است. اما ایده دقیقا همان. در داخل این متغیر نقل قول در جاوا اسکریپت مجموعه ای از جفت کلید ارزش است، که یکی از آنها نماد است، که یکی از آنها قیمت است. و من می توانید در آن ارزش گرفتن با دستور زیر. فقط در پی اچ پی، من می توانم انجام چیزی شبیه اجازه من را از این کادر کمی بزرگتر. فقط در پی اچ پی، من می توانم را this-- آه، لعنتی. بجنب. درست مثل در PHP-- OK، ما فقط یادداشت مجری استفاده کنید. فقط در پی اچ پی، من می توانم انجام $ $ نقل قول نقل قول ["نماد"]، و این من ارزش "نماد است." در جاوا اسکریپت، آن را به یکسان، به موجب آن من فقط می تواند این کار را. تنها چیزی که گم شده علامت دلار است. تا به سادگی به اندازه کافی، پس از آن، وجود دارد همه که نه نحو جدید است. پس چه امروز ما تمرکز بر روی، واقعا، برخی از ایده ها و برنامه های کاربردی. و اولین برنامه ای که شما ممکن است را دیده اند، اگر شما را به pset شیرجه هفت در حال حاضر این نحو است. بنابراین در pset هفت، اگر شما دیده یا دیده می شود آن را هنوز، می دانم که یک فایل است که ما به وجود شما به نام config.json-- جاوا اسکریپت شی نشانه گذاری. واسه چی؟ ما می خواستیم قادر به شما را با ارائه یک قالب با برخی از جفت کلید-مقدار. ما می خواستیم قادر به شما یک لیست را از میزبان، نام سرور. ما می خواستیم به شما یک را حفره یا سوراخ برای نام کاربری خود را و یک حفره یا سوراخ برای رمز عبور خود را. اگر شما در حال دیدن نیست این در عین حال، به نگرانی نیست. بیشتر در مورد این در pset هفت [؟ تنظیمات. ؟] و بعد، بدیهی است که ما شما می خواهید برای پر کردن در به داس زیرا هنگامی که شما به سیستم وارد شوید CS50 IDE، هر یک از شما نام کاربری و رمز عبور خود را داشته باشد. بنابراین ما می تواند یک نیم دوجین استفاده می شود یا فرمت های فایل های مختلف است. ما می تواند یک فایل TXT استفاده کرده اند. ما می تواند یک فایل CSV استفاده می شود. ما می تواند مورد استفاده قرار گیرد ام فایل INI، یک فایل XML، کلمات اختصاری یک دسته کامل تر است که شما ممکن است که تا کنون شنیده می شود. این نوع از خودسرانه است در پایان روز. اما فوق العاده محبوب این روزها یک متن است فرمت به نام شی JSON-- جاوا اسکریپت نشانه گذاری که شبیه به این. آن را کمی مرموز، اما متوجه الگوهای. شما با اشکال مختلف باز شروع بریس، و شما را با همان پایان دادن به. در داخل آن چیزی است. این یک جفت کلید ارزش است. بنابراین این یک شی است که من است به دنبال در بر روی صفحه نمایش در اینجا است که یک کلید است که یک مقدار است. و فقط استنتاج بر اساس الگوی قبلی، چه کلیدی در اینجا؟ پایگاه داده، چیزی که به در سمت چپ روده بزرگ است. در حال حاضر، ارزش اتفاق می افتد به خطوط متعدد این زمان. اما ارزش با اشکال مختلف شروع می شود بریس و با یک آکولاد به پایان می رسد. بنابراین آنچه را که شما پیشنهاد است که نوع ارزش پایگاه داده؟ یک فرهنگ لغت یا، فقط بیشتر به طور خلاصه، یک شی. درست؟ این نوع از ساختار داده است که می توانید سازه های دیگر در درون خود استفاده کنید. بنابراین اگر تمام این چیز ما فراخوانی یک object-- و یک شی فقط یک دسته از کلید-مقدار pairs-- است ارزش پایگاه داده خود یک شی است. ارزش از پایگاه داده است یک دسته کامل از جفت کلید، اولین بار است که است میزبان، پس از آن نام، و سپس نام کاربری و سپس رمز عبور، هر یک از مقادیر که، در عین حال، آن را تنها یک رشته خسته کننده را در کوتیشن. بنابراین حتی اگر که نه فوق العاده روشن فقط رتبهدهی نشده است، می دانم که این فقط یک استاندارد، راه نسبتا حفاری و خسته کننده ذخیره سازی اطلاعات در یک قالب استاندارد. اما از اشتباهات رایج شما ممکن است، حتی در pset هفت، کارهای احمقانه کمی هستند، مانند اگر شما به طور تصادفی حذف کاما از هم وجود دارد. که رفتن به نتیجه در فایل نه لزوما قابل خواندن است. اگر شما به طور تصادفی حذف چیزهایی مانند نقل قول ها، آن را به قابل خواندن است. پس از آن یک فایل با فرمت بسیار nitpicky، اما آن یکی که فوق العاده شایع است. و ما اتفاق می افتد به استفاده از آن، حتی اگر شما هر جاوا اسکریپت غیر این صورت استفاده نمی کند، در pset هفت. خیلی خوب. خب این تصویر به یاد داشته باشید. ما در مورد صحبت کردیم، در HTML، که کد ممکن است شبیه به این. این زبان نشانه گذاری ابرمتن است [نامفهوم] فقط برای "سلام جهان!" اما پس از آن ما پیشنهاد در حالی که تماس که اگر آن را کمک می کند، شما ممکن است بخواهید شروع به فکر کردن در مورد این در حال حاضر به عنوان یک درخت. در واقع، دندانه که ما استفاده فقط به خاطر خوانایی است و یا به خاطر سبک در سمت چپ می تواند به نوعی به این درخت، که در آن شما ترجمه برخی از گره ریشه های خاص است که ما عموما به نام سند، که در زیر عنصر HTML ریشه یا برچسب، HTML غیر فعال است، که پس از آن دو کودکان، سر و بدن. و سپس به نوبه خود، سر تا به عنوان. و عنوان دارای یک مقدار متن. و بدن به طور مشابه دارای ارزش متن. بنابراین اگر شما راحت گفت هستید که بله، شما می توانید این را در HTML و رسم یک تصویر مانند این، سمت راست یک مدل ذهنی خوب است چون در حال حاضر که ما از جاوا اسکریپت، برنامه نویسی زبانی که می توانید مرورگر اجرا و تفسیر برای شما، معلوم است که چه ما در مورد به انجام در کد هستید این است که شروع به دستکاری این ساختار درختی در حافظه است. ما لازم نیست که به ساخت درخت در حافظه است. ما لازم نیست که به انجام مرتب کردن بر اساس ساختار داده pset و پنج سبک پیچیدگی. مرورگر، به خوبی به اندازه کافی، پس از تفسیر بالای HTML به پایین، چپ یا راست است، به معنای واقعی کلمه از رفتن به دست ما معادل یک اشاره گر به کل درخت به صورت رایگان. این کار همه از کار سخت است. این چیزی است که موزیلا و اپل و دیگران برای ما انجام داده اند. و با جاوا اسکریپت ما را به رفتن قادر به کنترل و تغییر و انجام چیزهای جالب برای آن درخت، در غیر این صورت شناخته شده به عنوان یک DOM یا مدل شیء سند. چه چیزهایی؟ خب، معلوم است که در جاوا اسکریپت، وجود دارد این لیست خشکشویی که از رویدادی که می تواند انجام گیرد. و ما واقعا استفاده می شود که کلمه از هفته صفر و pset صفر وقتی ما در مورد خراش صحبت کردیم. بسیاری از شما احتمالا از آن استفاده نکرد یک رویداد در پروژه خراش خود را. اما شما ممکن است به یاد ساده مارکو پولو به عنوان مثال، جایی که ما دو حال جن، که یکی از آنها گفت: مارکو. دیگر آنها پس از آن، پس از گوش دادن و شنیدن آن رویداد، گفت: پولو است. اگر نه، در صورت تمایل به نگاه که به دور است. اما این فقط به می گویند، و شما می توانید نوع استنباط از نام این همه چیز، جاوا اسکریپت، که معلوم است، است به ما یک راه برای گوش دادن به ماوس رفتن به پایین و یا بالا رفتن موس یا کلید پایین رفتن یا کلید بالا رفتن یا onselect onsubmit و یا onresizing چیزی. به عبارت دیگر، هر گونه اقدام فیزیکی که یک انسان می تواند با یک مرورگر را که شما هر روز انجام دهید، شما می توانید ارسال کد برای گوش که برای کسانی که وقایع و پس از آن چیزی مناسب است. به عنوان مثال، اگر شما استفاده از نقشه های گوگل، اگر شما کلیک کنید و حرکت چه اتفاقی می افتد ماوس، معمولا؟ اگر شما با کلیک و کشیدن؟ آره؟ دقیقا. نقشه شروع به حرکت می کند. بنابراین شما مرتب کردن بر اساس توانید ببینید چه چیزی در اینجا، آنچه بیش از وجود دارد. و چگونه گوگل پیاده سازی است که؟ خب، احتمالا، آنها با استفاده از یک زن و شوهر از این رویداد شنوندگان، که می گوید، گوش دادن بر روی موس برای down-- تا زمانی که کاربر فیزیکی هل لای شیار یا خود و یا موس خود را پایین. و پس از آن ما به دنبال چیزی شبیه به جنبش یا برخی از رویداد های دیگری که ما اجازه می دهد برای گرفتن بکشید. و در واقع، کشیدن است به طور مشابه در این نقطه نقطه نقطه لیست از گزینه های ممکن است. پس این است که برای رفتن به یک قدرتمند راه برای شروع پاسخ به کاربران حتی قبل از او در واقع کلیک چیزی صریح و روشن مانند ارسال کنید. اما ما قصد داریم به معرفی یک زن و شوهر موضوعات به وجود دارد. انتقال اما در ابتدا، اجازه دهید به برخی از کد واقعی. بنابراین من قصد دارم به جلو و باز کردن DOM-0، که به عنوان مثال بسیار ساده است در اینجا است که اگر من در به سادگی زوم این ورودی در اینجا برای من. و من قصد دارم به جلو بروید و تایپ "دیوید" نام من کلیک کنید و ثبت. و پس از آن، البته نوع ارزان، من این اعلان که بالا میآید که می گوید، "سلام، دیوید!" بنابراین این نوع از مانند ما "سلام جهان" که ما انجام داد مدتی در C و حتی در PHP چون من به صورت پویا نام من ... خروجی. من می توانم نام شخص دیگری انجام دهید. من به سادگی می تواند این تغییر، مانند، هانا، کلیک کنید و ثبت. و در واقع، کمی تغییرات پاپ آپ. در حال حاضر، پاپ آپ یکی از هستند بسیاری از ویژگی های مورد آزار قرار گرفته از وب است. و در واقع، در روز مسدود کننده pop-تا به رواج آمد، زیرا شما به برخی website-- رفتن شاید یک سوال place-- که پس از آن به طور ناگهانی شروع گردهای صفحه نمایش خود را با یک دسته کامل از پاپ آپ. و این توانایی پاپ تا پنجره ها در مقابل کاربر شده است به خصوص شده است خوبی دریافت شده توسط بشریت است. به همین دلیل شما می بینید این جلوگیری از چیزی، که فقط باعث می شود تمام این چیز زشت است. بنابراین ما در حال رفتن به نیاز به یک راه بهتری برای سریع کاربر. اما در حال حاضر، به نظر می رسد که به کار است. بنابراین فقط به طور مستقیم، چه به نظر می رسد اتفاق می افتد که اینجا هستید؟ من پیش بروید و روی ارسال کلیک کنید، و پس از آن چیزی که اتفاق می افتد، به وضوح. اما آنچه اتفاق می افتد که اتفاق افتاد هفته گذشته هر زمان من کلیک کنید. چه بر روی صفحه نمایش اتفاق نمی افتد؟ متاسف؟ بازنگری. آدرس URL را تغییر دهید نه در همه. من گفتم این DOM-0، و من هنوز در DOM-0 است. به طور معمول، ما می خواهم به برخی دیگر از تغییر URL، مانند register.php و یا مانند. اما حتی زمانی که من رد این چیزی که با کلیک کردن OK، توجه کنید که URL باقی می ماند به طور کامل قرار داده است. و، در واقع، اگر من کمی شک و تردید، من اجازه باز کردن کروم. من اجازه باز کردن تب شبکه. و متوجه آن خالی در حال حاضر. اجازه بدهید به جلو و دوباره ماریا. هیچ ترافیک شبکه وجود ندارد. بنابراین هیچ HTTP وجود دارد. پس در واقع، اگر من در کد منبع نگاه برای this-- اجازه دهید من این پنجره را ببندید و رفتن به مشاهده منبع. جالب هست. به نظر می رسد برخی از وجود دارد تگ های جدید، در میان آنها اسکریپت. بنابراین اجازه دهید یک نگاهی از درون CS50 IDE دقیقا آنچه که من را به کاربر ارسال می شود. بنابراین در اینجا is-- اجازه دهید تمرکز بر روی تنها HTML. در اینجا نیمه پایین DOM-0.html است. و توجه کنید که آن را به یک عنوان، برچسب سر، تگ body، یک تگ فرم. اما آنچه بیرون می پرد به شما به عنوان مختلف، به خصوص اگر شما هرگز نوشته شده هر جاوا اسکریپت خود را. اجازه دهید من رفته کمی به حق در اینجا. ما یک ورودی کردم، ورودی دیگری برای ما ارسال کنید. من یک ID، است که نوع جدید کردم. اما ما با CSS دیدن این. چه چیز دیگری است که قطعا جدید؟ آره؟ خوب. خیلی خوب. تا جایی که آن را می گوید onsubmit، متوجه آنچه به نظر می رسد به دنبال دارد. این یک ویژگی است در نامگذاری HTML. ارزش خود را از این رشته به نقل از اینجا است. و این به نظر می رسد کمی عجیب و غریب در نگاه اول. این HTML نیست. این CSS نیست. این است، که شما ممکن است حدس بزنید، جاوا اسکریپت. بنابراین به نظر می رسد که به این ساخته شده است صفحه وب یک تابع به نام خوش آمد می گوید است. و من استنتاج که فقط یک کلمه است، خوش آمد می گوید. تو اون صفحه پرانتز باز، پرانتز بسته، نقطه و ویرگول. به نظر می رسد مانند یک تابع C، به نظر می رسد مانند یک تابع PHP. و در واقع، آن را به یک تابع جاوا اسکریپت. پس از آن من از بازگشت نادرست است. ما به آمده که در یک لحظه. اما در آن است این تابع تعریف شده؟ خب به من اجازه حرکت به بالا به بالا از فایل. و حتی اگر آن را یک خط طولانی، آن نسبتا سر راست است. به من اجازه زوم از اینجا و تمرکز بر روی این چهار خط. بنابراین در جاوا اسکریپت، فقط مانند PHP، شما فقط می گویند، به معنای واقعی کلمه، کلمه "تابع" نام تابع، و پس از آن با هر پرانتز arguments-- بدون آرگومان در این مورد. و هیچ نوع بازگشت وجود دارد در جاوا اسکریپت، درست مثل PHP. بنابراین آن را کمی شل تر از C. آکولاد باز، آکولاد نزدیک است. ساخته شده را به یک تابع جاوا اسکریپت است یک تابع نیست توصیه می شود اما یک تابع به نام هشدار تنها هدف که در زندگی است به جلو و که بسیار زشت بی درنگ که ما شاهد یک لحظه پیش. در حال حاضر این نوع از یک لقمه است. اینجا چه خبره؟ بنابراین برای شروع اجازه دهید همه چیز در اینجا برجسته. که همین استدلال برای هشدار است. و چه خبر است؟ این درست مثل یک رشته به نظر می رسد. و معلوم است، بر خلاف PHP و بر خلاف C، آن را در جاوا اسکریپت مهم نیست اگر شما از نقل قول تکی یا به نقل از دو برابر شود. آنها خواهید بود معادل آن. و رک و پوست کنده، آن را فقط محبوب این روزها برای برنامه نویسان جاوا اسکریپت برای همیشه تک کتیشن استفاده برای برخی از دلیل. این تنها چیزی که به انجام است. اما ما می تواند به نقل از دو نیز استفاده کنید. بنابراین به علاوه یک شخصیت جدید است. اما کسانی از شما که این انجام قبل از این، چه به علاوه معنی است؟ آره. الحاق. بنابراین ما این در PHP را دیدم. فقط نقطه وجود دارد اپراتور در پی اچ پی که خواهد دو رشته با هم الحاق. C یک درد در گردن به انجام این کار. به یاد بیاورید از pset شش، که بود درد خاص در گردن، شما مجبور به استفاده از چیزی شبیه به strcat پس از تخصیص حافظه در پشته و یا پشته. شما تا به حال به پرش از طریق hoops فقط به الحاق دو رشته. در جاوا اسکریپت، آن را فوق العاده ساده است. فقط اپراتور به علاوه استفاده از بین آنها است. بنابراین این مجموعه، به دنبال چیزی به نظر می رسد این چرا که در پایان از طیف این رشته، من فقط الحاق علامت تعجب. بنابراین اگر چه ظاهر شد "سلام، دیوید"، "سلام، هانا،" "سلام، ماریا،" و غیره، به وضوح چیزی که در وسط بین دو علامت + باید به من دسترسی به آنچه به من بدهید؟ چه چیزی در وجود دارد برای مطمئن هستید؟ آره. بنابراین من در اینجا به شما وانمود نام و نام خانوادگی خود را پاسخ، درست است؟ بنابراین نام خود را تا در فینال ظهور نتیجه. پس چه معنی است؟ خوب، من پیش از آن در که پیشنهاد تصویری که به اصطلاح DOM این عنصر ریشه های ویژه راه را تا بالای سند به نام. و اکنون، که معلوم است، که رفتن به یک متغیر خاص جهانی در جاوا اسکریپت، ساخته شده را به که تمام دسته از قابلیت های مفید. در میان قابلیت های مفید است که توانایی در هر گره از نوادگان دریافت کنید. آن مربع یا مستطیل یا بیضی فقط در یک درخت گره، پس به صحبت می کنند. پس از آن معلوم است که به ساخته شده است شی سند جاوا اسکریپت یک تابع، در غیر این صورت به عنوان یک شناخته شده است روش، که به نام getElementById. نحو برای تماس یک تابع در جاوا اسکریپت که در داخل یک شیء یا یک متغیر فقط با نماد نقطه است. و ما این را در C دیدم چه نحو ساختار است. شما این را به در pset هفت، نوع، مرتب کردن بر اساس، هنگامی که شما CS50 :: پرس و جو را ببینید. روده بزرگ روده بزرگ در PHP است راه فراخوانی یک تابع که در داخل برخی از شیء. اما در حال حاضر در جاوا اسکریپت، آن را فقط یک نقطه است. و بنابراین این تابع، به سادگی به اندازه کافی، نوع گوید آنچه در آن does-- عنصر ID را دریافت کنید. یک عنصر تنها نام دیگری است برای یک برچسب یا گره در DOM. و پس از دریافت عنصر ID "نام" معنی this-- اینجا HTML من است. و بر این اساس HTML، چه گره یا چه تگ HTML من رفتن به برنامه نویسی تحویل داده می شود با تماس کد document.getElementById؟ بله دقیقا. من قصد دارم برای دریافت ورودی عنصر وجود دارد که ID "نام" است. بنابراین به طور خاص، شما می توانید از این تابع فکر می کنم، getElementById، به عنوان یک راه دادن یک اشاره گر به آن گره خاص در درخت. ما این کشیده شده است درخت، اما این یک راه است گرفتن دسترسی به آن مستطیل و یا مستطیل که توسط منحصر به فرد آن از طریق شناسایی ID آن است. حالا چرا این مفید است؟ خب، معلوم است که هنگامی که شما بدست آن گره، که از مستطیل تصویر، آن گره در داخل آن، به نوبه خود، یک دسته کامل از properties-- جفت کلید-مقدار و یا داده ها، که یکی از آنها است ارزش نامیده می شود. بنابراین به معنای واقعی کلمه، این نوع از لقمه برای توضیح همه چیز است. اما در پایان روز، تمام می کند این است که شما را یک رشته است که کاربر تایپ در این مد سلسله مراتبی. اما من دوست ندارم زن و شوهر از این چیزها. یا نه، برخی از کنجکاوی هنوز هم وجود دارد. همه از آن به نظر می رسید به کار است. چرا شما فکر می کنم من بازگشت پس از فراخوانی خوش آمد می گوید دروغ است؟ این به نظر می رسد کمی زشت، که من دو اظهارات وجود دارد از هم جدا و با نقطه. حدس بزن. اگر من حذف بازگشت کاذب، چه ممکن است رخ دهد، فقط به طور غریزی؟ با عرض پوزش، می گویند دوباره؟ باز کردن یک دسته از ویندوز. بنابراین به طور بالقوه شاید چیزی که اتفاق می افتد. چه چیز دیگری؟ ممکن است یک درخواست که در آن انتخاب؟ به همان صفحه. بنابراین، در واقع، این است که نزدیک تر در اینجا جواب، حتی اگر بر خلاف در گذشته، من نمی مشخص ویژگی اکشن، که به طور معمول ما باید انجام دهیم. معلوم به طور پیش فرض وجود دارد. اگر شما عمل مشخص نیست، آن را مانند گفت نقل قول است، تمام کردن و یا نام فایل خود را، که در این مورد مانند DOM-0.html باشد. آن را فقط نوع از استنباط، و یا به جای ضمنی است. و بنابراین اگر من این کار را نکنید، اجازه دهید اطلاع می دهد. اجازه بدهید من این را نجات دهد. و من غلط را حذف کردیم. اجازه دهید من به بازگشت به این به عنوان مثال و نیروی آن را بارگذاری کنید. و شما ممکن است دیده اند من پیشنهاد این در CS50 بحث یک دسته از بار. اگر هر چیزی را به حال اقدام بد بو و مرورگر رفتار نه به عنوان شما انتظار می رود، اغلب شما می خواهید به نگه Shift و سپس کلیک کنید بازنگری. است که هر فایل را مجبور به بازنگری و کش محلی مرورگر خود را استفاده نمی کند و یا کپی به طوری که در حال حاضر، اجازه دهید من پیش بروید و باز کردن بازرس من، تب شبکه. من قصد دارم به کلیک کنید حفظ چون من ورود نمی خواهید آن را به حذف ردیف یک بار من whisked دور در جای دیگر. اجازه دهید من جلو بروید اینجا و نوع در اندی، کلیک کنید و ثبت. خیلی خوب. که به نظر می رسد به عنوان انتظار می رود. این گزارش می گوید: "سلام، اندی." اجازه دهید من روی OK کلیک کنید. جالب هست. توجه داشته باشید که صفحه را تغییر، البته به صفحه اصلی. توجه داشته باشید که نوع URL از تغییر است. آن اضافه شده است یک علامت سوال، که معمولا به عنوان یک شاخص است که ما سعی به ارائه چیزی. و پس از آن در پایین، حتی بیشتر به صراحت، در اینجا به درخواست HTTP واقعی است، که یک پاسخ 200 که من به ارمغان آورد در اینجا. پس این است که که چه ما می خواهیم انجام، درست است؟ برای این که من نمی خواهم بارگذاری مجدد کل صفحه. من به جای می خواست برای بازگشت نادرست به طوری که برای اتصال کوتاه رفتار پیش فرض مرورگر، که بود، البته، به ارائه صفحه. بنابراین اجازه دهید یک نگاهی به به عنوان مثال در حاشیه بهتر است. این نسخه یک DOM است. و متوجه موارد زیر است. این خوب است اگر شما GROK نیست همه از خط کد. اما آنچه اساسا متفاوت در مورد این پیاده سازی؟ من آن را تصریح رفتار همان، همین کار را. چه من به وضوح متفاوت انجام می شود؟ آره؟ مخاطبان: [نامفهوم]. دیوید مالان: آره. بنابراین تابع تعریف شده است differently-- به عبارت دیگر، از فرم وجود ندارد، تا در خط 7-- یا نه، خط 8-- دیگر من ویژگی onsubmit داشته باشد. در مثال قبلی، من این بود. و بعد من به معنای واقعی کلمه کد نوشتم در اینجا. و سپس به من گفت بازگشت نادرست است. و اگر آن مالش نیست شما راه را اشتباه نشده است، آن را باید به آنجا شروع عنوان، درست مانند HTML، زمانی که ما شروع به همکاری ممزوج آن با CSS در ویژگی های سبک، آن را فقط شروع به کمی کثیف و یا احساس یک اشتباه کوچک. به طور مشابه در اینجا، اگر شما شروع به HTML، پس از آن شما به طور خودکار و با صدای تلپ کدهای جاوا اسکریپت در وسط یک رشته نقل، آن را رفتن به بسیار نگهداری. درست؟ این حتی در ابتدا آشکار نیست جایی که در آن کد جاوا اسکریپت است. پس از آن خواهد واقعا خوب به عنوان اصل طراحی بهتر، اجازه دهید به طور کامل حفظ HTML ما جدا از جاوا اسکریپت است. بنابراین برای انجام این کار، آنچه که ما انجام در اینجا شرح زیر است است ما به سادگی استفاده از HTML برای نشانه گذاری تنها. و به این ترتیب در نسخه یکی از این، همه من یک فرم با یک ID منحصر به فرد است. و سپس در اینجا، من با استفاده از ویژگی های خاص از جاوا اسکریپت به موجب آن من می تواند چه به نام یک تابع بی نام. پس از آن می رسد که اگر پاسخ من کد document.getElementById از نسخه ی نمایشی که مانند به من یک اشاره گر به این گره در درخت من، عنصر فرم، پس به صحبت. در حال حاضر، من فقط می دانم که از شناخت کمی از HTML در حال حاضر ما در حال پس از خواندن برخی آنلاین مرجع، که یک عنصر فرم از یک دسته کامل از رویداد listeners-- در به عبارت دیگر، لباس های شسته شده از رویداد لیست شنوندگان است که ما شاهد یک لحظه پیش. من از خواندن اسناد مطمئن شوید که onsubmit یک رویداد معتبر است شنونده برای یک عنصر فرم. پس یک بار من می دانم که، آن را بی خطر برای من برای انجام شرح زیر است که گره از درخت، عنصر فرم، و دسترسی به آن به اصطلاح اموال onsubmit. بنابراین نقطه فقط بدان معناست این یک ویژگی است، مثل یک ارزش ویژه داخل آن است. و چه نوع داده من اختصاص، ظاهرا، به onsubmit است که به طور موثر یک متغیر در داخل که گره در درخت؟ این درست است که در داخل ساختار است. نوع داده چیست؟ یک تابع، آره. پس از آن معلوم است که پی اچ پی دارای این. و حتی اگر ما آیا شما در مورد آن بگویید نه، C نیز دارای اشاره گر تابع، توانایی عبور و اختصاص توابع به عنوان ارزش های متغیر "خود را. و ما قصد داریم به عقب برگشت به C. اما در حال حاضر، معلوم است که در سمت راست در اینجا، حتی اگر آن را به نظر می رسد کمی بد بو، این بدان معنی، هی مرورگر من یک تابع است. من قصد ندارم به زحمت دادن حتی آن یک نام به خاطر من به معنای واقعی کلمه هستم رفتن به اختصاص اجازه دهید آن را آدرس این تابع بلافاصله به onsubmit. به عبارت دیگر، مرورگر شما لازم نیست بدانید که چه چیزی از این تابع نامیده می شود. شما فقط نیاز به دانستن که در آن در حافظه است. و پس از آن کافی است فقط به یک علامت مساوی وجود دارد و به زحمت نامگذاری این، مانند foo یا خوش آمد می گوید و یا هر کلمه دیگر. و در حال حاضر این فقط یک چیز سبکی. من می توانم این آکولاد حرکت بر روی the-- خط بعدی sorry-- مانند ما معمولا CS50. اما در جاوا اسکریپت، آن را در واقع سبک رایج به فقط نگه داشتن آکولاد، در یکی از اولین، که خط اول. اما آخرت، وجود دارد هیچ چیز جالبی وجود ندارد. که آکولاد باز فقط demarcates از شروع تابع من. این تابع این است در حال حاضر یکسان، به جز من شامل کاذب بازگشت در داخل این تابع. از آنجا که آن را تبدیل به out-- و شما تنها این را می دانم از خواندن documentation-- که اگر تابع که به شما اختصاص به کنترل onsubmit مقدار false برگرداند، مرورگر فقط می داند و با آن موافق برای ارسال فرم به سرور ندارد. اگر آن را می گرداند درست است، آن را انتخاب خواهد آن را به یک سرور به دلایل خواهیم دید در یک لحظه، مفید هستند. و پس از آن نقطه و ویرگول بعد از آکولاد وجود دارد فقط معنی است که من انجام می شود تعریف تابع. شما می دانید چه به عنوان به زودی پاسخ عنوان شما از شنیدن یک تسلیم است. خیلی خوب. این است که هنوز مسلما نوع زشت. پس چه بیشتر می توانیم بکنیم؟ خب، معلوم است پس از آن در نسخه دو است، که last-- و ما فقط نگاه در این. در معرض خطر ساخت آن را زشت، آن را تبدیل که یک کتابخانه در آن وجود دارد جهان به نام جی کوئری. و jQuery فوق العاده است کتابخانه جاوا اسکریپت محبوب که آنقدر محبوب است که بیشتر هر JavaScript-- آن را نادر برای مردم به اشتباه جی کوئری با جاوا اسکریپت. واسه چی؟ جاوا اسکریپت خود را بسیار راه طولانی انجام چیز کد document.getElementById، dadadadadada. شما را تا پایان داشتن بسیار خطوط طولانی کد. بنابراین یک شخص به نام جان زدایی، که در واقع برای راه اندازی این نسخهها کار میکند تا این روزها، بیرون آمد با این کتابخانه سال پیش که بسیاری از مردم کمک کرده اند به نام جی کوئری که تغییر نحو در صورت زیر است. و بنابراین شما می دیده ام این، چون شما همواره این اگر انجام یک دید پروژه نهایی مبتنی بر وب، این امر می تواند راه معادل اجرای که همان تابع با استفاده از این کتابخانه خاص است. در حال حاضر، به جای کسی را دست انداختن آن از هم جدا در تمامیت آن، اجازه دهید فقط در برخی از الگوهای نگاه کنید. این ترکیب به نظر می رسد چگونه بسیاری از توابع ناشناس و یا توابع بی نام و یا از توابع لامبدا AKA؟ دو، درست است؟ و شما می دانید که، حتی اگر شما فوق العاده راحت و نه با این، فقط با این واقعیت است که آن را می گوید تابع () دو بار. و معلوم است که این کد doing-- است و ما به منابع آنلاین مراجعه کنید، در نهایت، برای برخی از کمک با این. این فقط بدان معناست که وقتی سند آماده است، به جلو بروید و ثبت نام تابع زیر عنوان گرداننده انتخاب برای HTML عنصری که ایده منحصر به فرد نسخه ی نمایشی است. و سپس، هنگامی که اتفاق می افتد، این دو خط کد تماس بگیرید. و این است که، غم انگیز، بیشتر راه طولانی از گفتن بازگشت نادرست است. و ما این فقط به خاطر اینکه ذکر شما کد مثل این را آنلاین ببینید. و این چیز به ترسیده بودند می شود. اما نه، به خاطر داشته باشید که آنچه رفتن به مشترک در جاوا اسکریپت این پارادایم است. و به همین دلیل ما آن را در حال حاضر نشان می دهد. خیلی خوب. بنابراین بدون خانه بیش از حد از حد بر روی آن نحو، هستند هر گونه سوال در وجود دارد این مثال ها و یا ایده تا کنون؟ خیلی خوب. بنابراین اجازه دهید از این استفاده برای چیزی مفید است. ساخت یک صفحه وب که فقط می گوید: سلام، چنین و چنان است که همه جالب نیست، به underwhelm است. این یکی نمی شود زیبا، اما از آن است که برای انجام کاری مفید است. اجازه بدهید من به بازگشت به دایرکتوری من در اینجا و باز کردن، می گویند، فرم 0.html. بنابراین فرض کنید این دانشجوی سال اول است ورزشی داخل صفحه ثبت نام بدون هیچ CSS و یا هر حس طراحی. و من می خواهم به جلو بروید و ثبت نام اینجا را با رمز عبور. و من قصد دارم به توافق برسند به شرایط ثبت نام و شرایط و کلیک کنید. و در حال حاضر این سایت می گوید: "شما ثبت شده! (خوب، نه واقعا.) " که به نظر می رسد مانند آن کار می کرد، اما اجازه بدهید به جلو و نیروی بارگذاری. و اجازه دهید من می گویند، هیچ، شما نمی نیاز آدرس ایمیل واقعی است. یا شاید ما فقط می گویند ایمیل در آن وجود دارد. رمز عبور خواهد بود، مانند، 12345. و پس از آن، فقط به خاطر من ادم سفیه و احمق، در حال حاضر آن را 123456789. و من قصد دارم که برای بررسی جعبه خود را. مشکلی رخ. خیلی خوب. بنابراین فرصت های متعددی وجود دارد برای بهبود در اینجا. و شما می دانید، و یا در pset ببینید هفت، که شما می توانید ارسال code-- و شما باید به ارسال کد امنیتی را در PHP-- به دفاع در برابر این نوع از کاربر خطاهای چرا که کاربر به وضوح تا همکاری نکردند. و او به شما داده نه همه ارزش شما می خواستم و یا حتی در فرمت که شما آنها را می خواستم. بنابراین شما در pset هفت دید که ما قطعا می تواند برخی از آنها اگر شرایط است که می گویند اگر آدرس ایمیل یک username@something.edu نیست، ما فقط می تواند با عرض پوزش می گویند و عذر خواهی به کاربر خیلی، مانند شما ممکن است در pset هفت. و یا اگر آنها که جعبه باید بررسی نیست، معلوم است در پی اچ پی، شما می توانید تشخیص که هم. و قطعا اگر کلمه عبور به عنوان در register.php مطابقت ندارد برای pset هفت، شما می توانید تشخیص است. اما این درد در این گردن در حال حاضر آنها درخواست که ما را به رفتن تمام راه را به سرور. که کاربر از خطا آگاه است. و حداقل مگر اینکه شما با استفاده از برخی از تکنیک های خیال باف، در حال حاضر آنها را به کلیک بر روی پشت های arrow. آیا آن را نمی شود خوب است، مانند بسیاری از وب سایت امروز، اگر شما تا به حال فوری بازخورد، فورا؟ به عبارت دیگر، به من اجازه رفتن به نسخه یکی، که رفتن به هیچ زیباتر. اما آن را دارای این ویژگی. مالان، 12345، 123456789، نه رفتن به بررسی جعبه، ثبت نام. رمزهای ورود مطابقت ندارند. بنابراین حتی اگر این پاپ آپ ugly-- است ما می توانیم این در نهایت جایگزین با چیزی شبیه به بوت استرپ، که شما در pset هفت را ببینید library-- بسیار محبوب من است تشخیص آن است که کلمات عبور یکسان نیست. خیلی خوب. خوب، اجازه دهید من ثابت که به عنوان کاربر. اجازه بدهید به جلو و می گویند 12345، 12345. هنوز هم چک کردن شرایط است. شما باید به دیدن همه موارد شرایط و ضوابط. پس چرا؟ اگر ما در حال حاضر به فرض که یک راه وجود دارد، و ما به شما در مورد نیاز به pset هفت به تشخیص خطا شرایط مثل این سمت سرور، چرا باید من زحمت همچنین انجام این کار در جاوا اسکریپت؟ بحث در چه اضافه کردن به نفع چه شما در مورد به عنوان some-- را ببینید این پیچیدگی اضافی وجود دارد. شاید هیچ حرکت صعودی وجود دارد. چه می تواند باشد؟ مخاطبان: [نامفهوم]. دیوید مالان: اوه، جالب است. سوء استفاده بالقوه است. بنابراین مطمئن شوید که، اگر شما در حال دست زدن نیست ورودی کاربر اشتباه که بزرگ، شاید آن را همه بهتر اگر حتی نمی سرور خود برسد. من به عقب وجود دارد و فشار می گویند، شما احتمالا باید رفع هر دو از این مشکلات است. اما این منصفانه است. چه چیز دیگری؟ مخاطبان: [نامفهوم]. دیوید مالان: آره. این کد، همانطور که پیش از گفت، این است تفسیر در سمت سرویس گیرنده. آن سرور را خسته نکنید، که به معنی آن را نمی کند اثر بار سرور و یا ظرفیت. و در حال حاضر، برای من کمی قدیمی، این تاثیری معنادار چرا که من یک کاربر در حال حاضر. اما اگر شما هر گونه هستید وب سایت از اندازه مناسب و معقول، به خصوص بزرگترین، مانند فیس بوک، بیشتر شما می توانید مردم را حفظ سرور خود را بهتر چون سرور، البته، تنها دارای یک مقدار محدود از RAM، یک تعداد متناهی از گیگاهرتز، یک تعداد متناهی از همه چیز می توانید آن را در واحد زمان است. بنابراین اگر بیشتر مردم در آن وجود دارد جهان هدف قرار دادن سرور خود را، ورود به سیستم به طور تصادفی اشتباه، فقط و همچنین اگر شما می توانید که بار خاموش سرور خود را نگه دارید. به علاوه، به ویژه در تلفن همراه device-- اگر شما تا کنون ورود به my.harvard یا netid ییل یا مانند آن، است این تاخیر با تعداد زیادی از وجود دارد وب سایت های که به موجب آن طول می کشد، مانند، لعنتی دوم یا دو گاهی اوقات. و پس از آن، خدای من، اگر شما اشتباه تایپ، پس از آن شما را مجبور به آمار تماس و ازنو آن است. بنابراین تاخیر وجود دارد، به ویژه در اتصالات شبکه کندتر است. اما جاوا اسکریپت، به دلیل آن را بر روی سرویس گیرنده اجرا می شود و نیازی به رفتن به جلو و عقب در سراسر اینترنت به طور بالقوه آهسته اتصال، شما می توانید بازخورد تقریبا آنی. بنابراین اجازه دهید نگاهی به این. من اجازه باز کردن فرم و 0 در HTML اینجا نگاه کنید. و اجازه دهید فقط ببینید که چه خبر است. این یک فرم که است عمل register.php است. من فقط با استفاده طوری که من می تواند URL را ببینید. اما برای کلمات عبور، ما مطمئنا می خواهم می خواهم برای تغییر این ارسال در واقعیت است. در اینجا یک فیلد ورودی از نوع متن است. در اینجا یکی دیگر از ورودی درست از نوع رمز عبور. در اینجا این است، اگر شما دیده ام هرگز، یک ورودی از نوع علامت بزنید. اما هیچ جاوا اسکریپت وجود دارد در اینجا آنچه. این فقط HTML است که می رود به register.php. اما در نسخه یک، جایی که من آغاز شده به کسانی که پاپ آپ، بیایید ببینید که چه در واقع در اینجا اتفاق می افتد. در نسخه یک، چه من قصد دارم به see-- من فکر می کردم به اندازه کافی متوقف می با کلمات به اندازه کافی، اما من فرار از. در نسخه one-- وجود دارد و ما بروید. در نسخه یک، متوجه شرح زیر است و بهترین اجرای نیست، اما آن را برای اولین بار من. توجه داشته باشید که در زیر فرم، من یک تگ اسکریپت. و یک تگ اسکریپت معنی، با سلام، مرورگر، در اینجا می آید برخی از کد در، به طور معمول، جاوا اسکریپت. و در حال حاضر، متوجه چه من انجام است. در line-- من به سختی می توانید به عنوان خوانده شده it-- خط 32، آن را می گوید، VAR بنابراین form-- به من بدهد یک متغیر به نام فرم. و پس از دریافت document.getElementId "ثبت نام" این چیست؟ خوب، اجازه دهید من در اینجا عقب تا. و توجه، آه، من عنصر فرم داد یک ایده دلخواه اما توصیفی ثبت نام. بنابراین این به من می دهد که یک متغیر من اجازه می دهد برای گرفتن آن گره، که مستطیل در درخت به نام فرم. ابزار form.onsubmit، هی مرورگر ثبت نام کنید شنونده رویداد در این فرم. به عبارت دیگر، زمانی که این فرم است ارسال، کد زیر را اجرا کنید. این کار یک نام به خاطر نیاز چرا شما نیاز به دانستن نام؟ شما فقط نیاز به دانستن چه برای اجرای، بنابر آن یک تابع بی نام و یا لامبدا است. و آن تابع است همه از این خطوط در اینجا. و در حال حاضر، به صداقت، حتی اگر شما ممکن است تا کنون جاوا اسکریپت نوشته شده است قبل از آن تنها منطق C و PHP است. بنابراین اگر form.email.value == "" - بنابراین اگر زمینه ایمیل خالی است، فریاد زدن در کاربر با "شما باید آدرس ایمیل خود را فراهم می کند. " اگر دیگری form.password.value فریاد زدن خالی در کاربر است، "شما باید رمز عبور خود را فراهم می کند." بیشتر جالب توجه است منطقی، اگر form.password.value نیست form.confirmation.value-- برابر که در آن تایید از کجا آمده اند؟ اجازه دهید من عقب. خوب، من این ورودی به نام درست در اینجا رمز عبور. و من این یکی به نام اینجا تایید. من می توانم آن را به نام رمز عبور دو یا هر چیز دیگری. من فقط چک کردن منطقی که این دو یکسان هستند. Else-- که معلوم است این است آقای بول، again-- یک مقدار بولی، جعبه چک کنید. بنابراین اگر من می گویم، علامت تعجب point-- اگر form.agreement.checked نیست، فریاد زدن در کاربر است. بنابراین این نحو شما خواهید دید است در جاوا اسکریپت بسیار معمول است، که در آن شما باید این نماد نقطه چین. شما با یک شی در اینجا شروع می شود. شما در عمیق تر به یک به شیرجه رفتن یک ویژگی مانند رمز عبور. و سپس شما را در ارزش واقعی آن را دریافت کنید. و دوباره، در اینجا ورودی است. در اینجا نام رمز عبور است. و مقدار آن هر انسان در واقع در تایپ. بنابراین در تمام این موارد، من غلط بازگشت. اما اگر نه، من بازگشت واقعی است. و بنابراین در حال حاضر ما می بینیم استفاده فوتی و فوری از زمانی که شما نادرست به باز خواهد گشت متوقف کردن آنچه کاربر انجام و او را و یا خود را انتخاب کنید دوباره و یا دوباره بنویسید. در غیر این صورت، ما بازگشت واقعی است. و اجازه دهید یکی معرفی من نوع دیگر از این فقط به دانه برخی از درک آن. خب، در نسخه 2 از این، فرم 2-- من آن را با یک موج از یک دست. این است، برای کسانی که کنجکاو، نسخه جی کوئری، کسانی از شما که ممکن است بخواهید اب شلپ شلپ کردن در آن کتابخانه خاص است. اما اجازه دهید start-- و هر گونه سوال؟ اجازه دهید من برای لحظه ای به خاطر مکث که به سرعت و بسیاری بود. اما چیزی که خوب در اینجا این است که همه از کد است که تقریبا همان. چیزهای جدید چیزی است که DOM است؟ این مستطیل چیست؟ این گره ها چه هستند؟ یک تابع بی نام چیست؟ یک event handler چه خبر؟ اما خوشبختانه، بیشتر از آن است که فقط دایره کامل، می گویند، هفته صفر. خیلی خوب. بنابراین چیزی کمی جالب تر است؟ خب، اول از همه، به من اجازه رفتن جلو و باز کردن نقشه های گوگل. و شما متوجه خواهید شد که برای لحظه، در دوم تقسیم، متوجه چه اتفاقی می افتد زمانی من به اندازه کافی سریع را کلیک کنید. و این اتصال در دانشگاه هاروارد است، بنابراین سریع است که شما واقعا آن را اطلاع می دهد. اما چه چیزی شما نوع از دید اگر من کلیک کنید و کشیدن واقعا سریع؟ کسانی که از شما تماشای آنلاین، اگر شما این کاهش سرعت به سرعت 0.5X، شما می توانید این را بهتر ببینید. چه اتفاقی می افتد فقط قبل از من کلیک کرده و کشیده میشوند؟ اجازه دهید من می here-- سعی کنید به من اجازه انجام چیز دیگری، مانند 90210. اجازه دهید به دور. که واقعا سریع بود. چگونه در مورد دیزنی جهانی؟ ما میرویم آنجا. باشه. آنچه شما برای یک دوم تقسیم دیدی؟ فقط، مانند، مربع، درست است؟ متغیرهایی برای کاشی؟ خب، چه خبر است اینجا؟ نقشه های گوگل یک مثال خوب است این تکنولوژی که به نام AJAX. و این جایی است که ما شروع به استفاده از جاوا اسکریپت در یک ویژه راه جذب می کند. در این روز وجود دارد، این وب سایت به نام MapQuest در. و من باید گرفته اند یک تصویر از این از 1990s، که در آن اگر شما به خواست نگاه کردن در اینجا بر روی نقشه، شما به معنای واقعی کلمه یک فلش کلیک کنید تا در بالای صفحه به شما نشان داد که یک مربع مختلف از نقشه است. اگر شما می خواهید به حرکت چپ، شما می کلیک یک فلش است که به شما نشان داد یک مربع مختلف از نقشه است. و برخی از وب سایت هنوز هم انجام این کار امروز. اما حتی MapQuest در بدست بهتر است، مانند نقشه های گوگل. در عوض، چه بهتر این روز وب سایت های که با استفاده از AJAX است. AJAX-- در غیر این صورت به عنوان شناخته شده آسنکرون جاوا اسکریپت و XML، که فقط یک راه فانتزی گفتن است یک تکنولوژی و یا روش که اجازه می دهد تا با استفاده از یک مرورگر جاوا اسکریپت را به درخواست HTTP اضافی بعد از صفحه لود شده است. پس چه معنی است؟ خوب، آن نوع خواهد بود از در Gmail آزار دهنده اگر هر بار که شما می خواهید برای بررسی ایمیل خود، شما به معنای واقعی کلمه برخورد کرده بود کنترل-R و یا دستور-R و یا کلیک بر روی دکمه بازنگری و کل صفحه را رفو می بازنگری. درست؟ آن فلش سفید احتمالا برای دوم. شما می توانید نوار پیشرفت احمقانه را ببینید. و فقط برای دیدن اگر شما جدید ایمیل، کل صفحه وب و URL شما باید در به بازنگری. اما این چیزی است که در Gmail اتفاق می افتد. درست؟ هنگامی که شما یک ایمیل جدید در گرفتن جیمیل، چه بر روی صفحه نمایش اتفاقی می افتد؟ این فقط نشان می دهد تا، درست است؟ این فقط به نظر می رسد به طرزی جادویی به عنوان یک ردیف جدید در جدول است. که در واقع شامل یک مقدار مناسبی از پیچیدگی است. در واقع، اگر شما در مورد این درخت فکر می کنم، که حتی اگر یک ساده در اینجا این است، Gmail-- و من می خواهم به نگاه در کد به sure-- احتمالا یک جدول HTML و یا شاید یک لیست نامرتب که در آن ارائه هر یک از ایمیل های صندوق پستی خود را به عنوان. و بنابراین اگر شما این تصور وجود دارد یک درخت در حافظه زمانی که شما است با استفاده از Gmail که به نظر می رسد نوع مرتب کردن بر اساس مثل این، هنگامی که گوگل متوجه، آه، شما یک ایمیل جدید، آن را نمی کند می خواهم به بازسازی کل درخت. در عوض، آن را می خواهد برای پیدا کردن گره در درخت که نشان دهنده صندوق پستی خود را و فقط قرار دادن یک گره جدید. بنابراین بسیار شبیه به pset پنج، که در آن شما حال برای قرار دادن گره ها را به یک جدول هش، به طور مشابه گوگل، از طریق کد های جاوا اسکریپت است که آن را نوشته است، گذشتن از این درخت، شکل که در آن که بخشی صندوق از پنجره است، و سپس قرار دادن یک ردیف جدید. و یک ردیف جدید فقط یک معنی یا بیشتر گره های جدید در یک درخت. و به این ترتیب AJAX این روش این است که اجازه می دهد برای که دقیقا. هنگامی که یک URL که بازدید کرده اید، با این حال دیوانه مدت آن است، و یک بار صفحه پر شده است، شما می توانید هنوز هم گرفتن اطلاعات بیشتر از internet-- که آیا آن را یک ایمیل یا یک کاشی از یک map-- گرفتن آن در پشت صحنه و سپس آن را به صفحه به طوری که انسان واقعا نمی باید برای آن صبر کنید. فیس بوک مسنجر کار می کند به همان شیوه. هر تعداد از دیگر websites-- آه، در واقع، حتی این. منظورم این است، رک و پوست کنده، نوع آزار دهنده از ویژگی های این روز است. اگر من شروع به جستجو برای این cats-- نوع یک تجربه وحشتناک برای کاربران است. این فقط شروع به جستجو برای من. خب چه چیزی است که انجام می دهند؟ نشانی اینترنتی واقعا تغییر کرده است از تایپ کردن را شروع کردم. اما چه خبر در سراسر wire-- OK، HMM جالب است. چه خبر است در سراسر سیم در اینجا فقط عجیب و غریبتر می شود. باشه. بنابراین اجازه دهید من به جلو و بازرسی عنصر و رفتن به تب شبکه و سعی کنید به این فنی و کمتر در مورد گربه ها. به عنوان نوع I، به معنای واقعی کلمه، گربه and-- آنچه اتفاق می افتد per-- من قصد ندارم به کلیک کنید که. خیلی خوب. بنابراین در اینجا، آنچه اتفاق می افتد در هر زمان من یک نوع شخصیت، ظاهرا؟ مانند، سطح پایین؟ چه خبر با هر یک از این اتفاق می افتد شخصیت من در صفحه کلید تایپ کردن من؟ آره؟ مخاطبان: [نامفهوم]. دیوید مالان: دقیقا. هر یک از این شخصیت است رفتن به گوگل، یکی در یک زمان. آنها در حال ایجاد یک رشته بر روی سرور خود است که نشان دهنده همه چیز من در تایپ ام تا کنون. و هر بار که من از نوع یکی دیگر از شخصیت، آنها استفاده از سس مخفی خود را از یک الگوریتم جستجو و کشف کردن، منظورش این صفحه گربه یا این صفحه گربه و یا مانند؟ بنابراین در بعضی جهات، آن را به من فراهم می کند با تجربه بهتر در من حتی نمی نیاز به تکمیل فکر من. و در واقع، آن را یک مفید چیزی، تکمیل خودکار به طور کلی. اگر الگوریتم های خود را به اندازه کافی خوب و اگر من به اندازه کافی جستجو آشکار است، من لازم نیست به نوع تمام کلمه. آنها در حال رفتن به من بگویید چه آن است من در واقع برای جستجو. پس چه از طریق مسنجر گوگل خواستار جستجو تنها با استفاده از AJAX، با استفاده از کد که اجازه می دهد تا آنها را به درخواست محتوای اضافی از طریق یک مرورگر وب در پشت صحنه با استفاده از این زبان جدید، جاوا اسکریپت. بنابراین ما باید یک دقیقه چند باقی مانده است. و اجازه دهید من تماس بگیرید تا دوستان من کولتون تا بر روی صحنه، از آن به نظر می رسید به خصوص پاپ زمان آخرین برای معرفی یک تکنولوژی که برخی از شما علاقه ابراز کرده اند در برای پروژه نهایی. ما فکر کردیم که آن را می خواهم سرگرم کننده را به تا یک داوطلب، هر چند، امروز به شما علاوه بر نشان دادن این که اجازه می دهد تا you-- آره، من این دست را دیدم برای اولین بار. بیا بالا. خیلی خوب انجام شده. افرین. من قصد دارم به این پروژه در صفحه نمایش در یک لحظه. نام و نام خانوادگی خود را برای همه چه خبر؟ EFA: من ها Efa هستم. دیوید مالان: عیثه؟ EFA: ها Efa. دیوید مالان: ها Efa؟ EFA: آره. دیوید مالان: خوشحالم که می بینید. خیلی خوب. اجازه دهید من این آماده شده است. بیا در را به وسط با کولتون در اینجا. چه کولتون است در دست او امروز کنترل از راه دور است. بنابراین به جای فقط آنجا ایستاده در یک جهان سه بعدی نگاه کردن به اطراف به عنوان کولتون، در حال حاضر می توانید ها Efa در واقع راه رفتن در اطراف با رفتن، پایین، چپ، و راست مثل نینتندو یا ایکس باکس کنترل. EFA: من قصد دارم به سقوط کردن مرحله. دیوید مالان: من ایستاده تقریبا بیش از اینجا. اما این یک خطر است. باشه. پس پیش بروید و قرار دادن آن در. اجازه دهید من پیش بروید و تغییر به صفحه در اینجا. اجازه دهید من کم نور چراغ. و Colton، به من اجازه آمده ایستاده در کنار شما. آیا شما می خواهید به توضیح در اینجا با میکروفون آنچه ما انجام می؟ در اینجا شما بروید. COLTON: حتما. بنابراین در حال حاضر ما بارگذاری تا از Oculus، من حدس می زنم operating-- عامل نیست سیستم است، اما برنامه اصلی، که در آن شما می توانید تمام بازی های دسترسی و برنامه های که در کتابخانه خود هستند. بنابراین در حال حاضر، آن را باید می گویند شیر صفحه لمسی برای آغاز خواهد شد. پد لمسی را به در می شود سمت راست از هدست. پس پیش بروید و tap-- EFA: اوه، مرد. دیوید مالان: بله، شما بروید. کیفیت ها Efa شاهد با کیفیت بسیار بالاتر است. این فقط Wi-Fi را در اینجا. COLTON: پس چیزی که شما رفتن به می خواهم به انجام است به سمت بالا نگاه راست از روی صفحه نمایش. بله، این بازی در سمت راست بسیار بالا. و پس از آن زمانی که شما انتخاب آن، شیر دوباره صفحه لمسی. من فکر می کنم Dreadhalls آن است. و پس از آن در اینجا a-- اینجا، اجازه دهید من عینک خود را برای شما نگه دارید. بنابراین من فقط به او یک کنترل. بنابراین در حال حاضر او می تواند بازی را کنترل کنید. او می تواند در اطراف و چیزهای که حرکت می کند. پس پیش بروید و نگاه کردن به بالا. شما باید بازی جدید را مشاهده کنید. پس پیش بروید و شما می توانید انجام دهید. در حال حاضر، شما باید قادر به کنترل خود را با کنترل کننده، همچنین، به عنوان به زودی به عنوان بازی لود تا اینجا. این ممکن است یک کمی ترسناک است. EFA: در حال حاضر شما به من بگویید. باشه. COLTON: بسیار خوب. بنابراین منظور که شما می توانید حرکت در اطراف. باشه. شما می توانید حرکت در اطراف. کامل. بنابراین اگر شما نگاه کردن، شما باید یک نقشه. نقشه نشان می دهد که در آن شما می باشد. شما می توانید در اطراف اتاق نگاه کنید. شما به طور کامل می توانید در اطراف تبدیل شود. بله دقیقا. بچرخ. بنابراین به سمت چپ خود را نگاه کنید. من فکر می کنم چیزی وجود دارد شما می توانید انتخاب کنید تا در هر بشکه در اتاق. EFA: چگونه می توانم نقشه از راه؟ COLTON: نگاه کردن. فقط نگاه کردن. خیلی خوب. وجود دارد که شما بروید. در حال حاضر پیش بروید و فقط در اطراف تبدیل شود. بنابراین نگاه دورتر به سمت چپ خود را. نگه دارید در حال حرکت به سمت چپ. به دنبال حفظ باقی مانده است. رفتن ادامه دهید. آره. EFA: اوه، که راه. COLTON: آره. راه رفتن به سوی آن با کنترل. وجود دارد که شما بروید. در حال حاضر آن باید بگویم آن را انتخاب کنید. وجود دارد که شما بروید. آن را بلند کن. خیلی خوب. در حال حاضر، اجازه دهید از این اتاق است. برو جلو و راه رفتن به درب. بنابراین شما در حال رفتن به hold-- آن را می گوید دکمه به زور آن را باز نگه دارید. پس پیش بروید و دکمه را نگه دارید. بله، مجبور آن را باز کنید. خیلی خوب. افرین. در حال حاضر ما در حال راه رفتن به بیرون از اتاق. بنابراین من قصد دارم به ترک بقیه تا به شما و ببینید چه چیزی شما را پیدا کردن. EFA: من در اتاق تاریک نیست. صبر کن. در حال حاضر من به پایین سالن تاریک است؟ OK، من قصد دارم تماس [نامفهوم]. COLTON: بسیار خوب. برخی از موارد بیشتری انتخاب کنید تا. به نظر می رسد برخی از سکه ها. که انتخاب قفل است. بنابراین اگر شما پیدا کردن یک قفل شده درب، شما می توانید استفاده کنید. آیا تو ترسیدی؟ EFA: نه هنوز. COLTON: OK. Pretend-- آره. فقط وانمود شما در واقع ایستاده وجود دارد. و اگر شما به نوبه خود around-- شما رو برای رسیدن به آن استفاده می شود. اما آن را حس. دیوید مالان: و در حالی که همچنان به ها Efa بازی، از ما می تواند این همه روز انجام دهید، ما می توانیم تمام نوک پا را اینجا ببینید. اما ما دو جفت دیگر، اگر شما می خواهم برای آمدن و بازی. در غیر این صورت، خواهیم دید شما در کنار در روز چهارشنبه. با تشکر از شما برای داوطلب ما امروز. [تشویق حضار] [MUSIC - "تم ساینفیلد"] SPEAKER 1: خوب، من قرار دادن یک PL جدید را سوار بر روی. من فقط تغییر OLPF-- SPEAKER 2: پس چه دقیقا کار می کنی؟ SPEAKER 1: خوب، هر یک از these-- در اینجا، من شما این یکی را در اینجا نشان می دهد. شما می توانید آن را در اینجا ببینید. SPEAKER 3: من فکر می کنم خوب با این است. کمی بیشتر میخواهی؟ اسپیکر 4: نه، من خوب هستم. [نامفهوم]. SPEAKER 3: نه، [نامفهوم]. بفرمائید. SPEAKER 1: رنگ های مختلف. SPEAKER 2: OK. SPEAKER 1: پس در نهایت آنچه در آن کند این است که آن رنگ را تنظیم می of--