DAVID مالان: بسیار خوب. این CS50 است، و این است پایان هفته نه. این گردباد بیش بوده است در چند روز گذشته. و مشکل مجموعه هفت، اگر شما زانو هستید عمیق به آن، درک کاملا وجود دارد بیت جدید است که در آن وجود دارد است. اما اجازه دهید ببینیم که اگر ما نمی توانیم قطعه همه چیز با هم در اینجا به طور خلاصه قبل از آن veering کردن در هنوز جهت دیگر و دیدن که در آن دیگری ما می توانیم به. پس تا کنون، ما در مورد HTML صحبت کردیم. ما در مورد CSS صحبت کردیم. ما در مورد PHP صحبت کردیم. شما به تجربه SQL آغاز شده ام. امروز، ما کمی صحبت درباره جاوا اسکریپت. اما چگونه همه این متفاوت انجام زبان متناسب با هم؟ بنابراین ما در هفته گذشته در مورد صحبت مفهوم داشتن یک سرور. بنابراین اجازه دهید فقط به رسم این مستطیل به عنوان یک وب سرور است. و یک وب سرور عمل می کند مطمئنا فایل های. و برخی از آن فایل ها می تواند فایل های HTML. بنابراین یکی از چیزهایی است که یک وب سرور می توانید تف ممکن است یک فایل که ما فقط مثل این رسم شامل HTML. پس از نظر شخص غیر روحانی است، چه نمی HTML به شما اجازه انجام دهید؟ رسید آرزومندیم صفحه نگاه کنید. DAVID مالان: OK، ایجاد یک صفحه نگاه زیبا، اگر چه من فکر می کنم من ثابت شده که در غیر این صورت. بنابراین HTML اجازه شما پخش کردن صفحات از لحاظ ساختاری، و آن را به شما اجازه می دهد تا به مرتب کردن بر اساس زیبایی نشانه گذاری یک صفحه، علامتگذاری محتوای استاتیک، به طوری که شما پس از آن میتوانید آن را با یک مرورگر وب است. اما این کلید است. این مطالب ایستا است. شما آن را ارسال، شما آن را ذخیره کنید، و سپس شما آن را کشتی. و وب سرور پس از آن خدمت می کند آن را به بازدید کنندگان خود را. اما ما سبک خاصی دراوردن چیز با استفاده از یک مختلف زبان در دسترس نباشد. ما شروع به استفاده از ویژگی سبک در تگ های خاص. و ویژگی style به ما اجازه تنظیم چیزهایی مانند اندازه فونت و رنگ. و شما احتمالا شروع به کشف، و یا شما به زودی برای نهایی پروژه های بالقوه، با این حال دیگر خواص است که شما می توانید در CSS استفاده کنید. و به این ترتیب در نظر شخص غیر روحانی است، چه واقعا پس از آن می کند CSS انجام دهید؟ این تنها نمونه هایی از آن هستند. چه آن را به شما اجازه انجام این کار HTML به از آنچه به نظر نمی رسد ما را دیده ام تا کنون؟ یک مدعو: سبک های تعریف شده توسط خودتان. DAVID مالان: سبک های تعریف توسط خودتان. بنابراین چیزهایی مانند کلاس که شما تعریف ممکن است مواجه می شوند، و یا منحصر به فرد شناسایی گره ها در یک سند تا که شما می توانید آنها را به سبک خاصی دراوردن. اما به طور خاص، من می خواهم بگویم که CSS واقعا اجازه می دهد تا شما را به همه چیز آخرین مایل و اجازه می دهد تا به شما برای مشخص کردن بسیار دقیق تر از زیبایی شناسی، در حالی که HTML در بیشتر قسمت ها امکان می دهد شما ساختار صفحات شما. و حتی اگر برخی از پیش فرض وجود دارد، مانند ما برچسب برای اره برچسب عنوان، که به طور کلی ساخته شده چیزهای بزرگ و تیره می کند. این تعریف بسیار کلی است برچسب - بزرگ و تیره می کند. چه اندازه فونت ها این است که؟ چه رنگی است؟ چگونه جسورانه است که؟ و CSS به شما اجازه می دهد تا بیشتر ریز همه چیز تنظیم است که می خواهم. و همچنین طرح، به عنوان برخی از از شما را دیده اند. و رک و پوست کنده، CSS کمی است از زبان کثیف. این بسیار قدرتمند است که در آن شما می توانید به معنای واقعی کلمه هر وب سایت که شما امروز با آن دیده می شود بر روی وب، اما این نوع از درد در گردن است. و برخی از شما سر خود را ضرب دیده اند در مقابل دیوار در حال حاضر فقط به انجام کاری احمقانه مانند مرکز یک منو در مشکل تنظیم هفت اگر شما به بدست آن نقطه در حال حاضر. اما درک، کسانی که همه چیز ساده تر در طول زمان. شما شروع به متوجه الگوهای. و دوباره، گوگل خواهد بود دوست شما برای شیوه های مختلف است که در آن شما می توانید حل این نوع مشکلات. و من به جرات با CSS می گویند، و HTML تر به طور کلی، شما می توانید مشکلات در حل بسیاری از راه های دیگر، همه از آن بسیار ممکن است به خوبی می شود درست است، از شما می تواند در چیزی شبیه به C، حتی اکنون PHP یا جاوا اسکریپت. تنها بسیاری مختلف وجود دارد راه هایی برای ذخیره کردن مسائل را. اما این شروع به دریافت کنید کثیف، ما گفت. فقط نوع از درآمیختن HTML خود را و CSS خود را با ویژگی style بود کمی درهم و برهم. و بنابراین ما به جای گفت، نوع انتزاعی صحبت کردن، که شما باید حداقل شروع به عامل از CSS شما احتمالا. ویژگی های نه سبک خود را، اما حداقل استفاده از تگ سبک در داخل چه بخشی از صفحه وب؟ رسید سر. DAVID مالان: در سر. تا در حال حاضر، ما فقط به حال عنوان کردن وجود دارد، اما شما همچنین می توانید یک سبک اضافه کنید برچسب، و شما می توانید CSS خود را تقریبا قرار داده صحبت کردن به سمت بالای صفحه. اما پس از آن ما همه چیز در زمان یک گام به جلو و ما عامل است که بیشتر به یک فایل جداگانه است. و به این ترتیب این دو فایل بود به نحوی در حال حاضر در ارتباط است. و در واقع از آن بود که برچسب که کار را انجام داد. و چیزی که یکی از فراگیر بود انگیزه برای فاکتور از CSS ما همه بیشتر؟ یک مدعو: قابلیت استفاده مجدد. DAVID مالان: قابلیت استفاده مجدد. درست است؟ شما ممکن است در دیده-P مجموعه هفت در حال حاضر که بسیاری از این صفحات، صفحه خرید، صفحه فروش، صفحه نمونه کارها، احتمالا ساختار تا حدودی به همین ترتیب. یک آرم امور مالی CS50 در بالای صفحه وجود دارد مگر اینکه شما تصمیم به آن را تغییر دهید. یک بالا و پایین صفحه در وجود دارد پایین صفحات. و CSS شما اجازه می دهد پس از آن به آن عامل از آن را به یک فایل جداگانه به طوری که اگر شما می خواهید به تغییر چیزی در سطح جهان در سراسر کل سایت خود، شما واقعا می تواند در فقط آن را در یک مکان تغییر دهید. اما قیمت شما به طور بالقوه پرداخت وجود دارد با داشتن عامل از CSS از فایل HTML ام را به یک جداگانه فایل اشاره به آن با برچسب، که ما در روز دوشنبه دیدم. چه ممکن است این حرکت نزولی خواهد بود؟ فکر به یک هفته پیش به هنگامی که ما صحبت کردن در مورد HTTP و TCP / IP و چگونه اینترنت کار می کند. چیزی بیش از اینجا؟ مخاطبان: زمان بیشتری طول می کشد. دیوید مالان: زمان بیشتری طول می کشد. چرا؟ مخاطب: [نامفهوم]. دیوید مالان بله. پس از آن مسلما زمان کمی بیشتر طول می کشد. از آنجا که یکی از CSS است که به وضوح در همان فایل نیست. بنابراین در حال حاضر شما را نمی ، اما دو درخواست. و هر یک از این درخواست به عنوان ما در بود کروم در اصطلاح بازرس، و ما در تب شبکه نگاه، هر از این فایل نیاز به یک HTTP درخواست، که ما دیدیم طول می کشد مقداری از زمان. در حال حاضر، شاید خیلی نیست. شاید آن تنها 20 میلی ثانیه است. شاید آن 200 میلی ثانیه است. اما فکر می کنم در مورد یک صفحه مانند فیس بوک، یا سی ان ان، گوگل، که بسیار بزرگتر از نمونه ایم تا کنون به نظر می رسید. این صفحات ممکن است ده ها تن از فایل ها را داشته باشد، که هر یک از آنها ممکن است نیاز به دانلود یک فایل. بنابراین همه چیز به طور بالقوه می تواند شروع به کم کردن سرعت. و به خصوص این روزها که همه ما گوشی های تلفن همراه در جیب ما و قابلیت اتصال به اینترنت آهسته تر، نیاز به چند میلی ثانیه صبر کنید، چند میلی ثانیه بیشتر اضافی فایل ها در واقع می تواند آهسته باشد. تاخیر کلمه که توصیف است نوع انتظار است که شما را که شما تجربه در هنگام انتظار برای برخی از قطعه ای از اطلاعات است. اما حرکت صعودی وجود دارد. پس از آن همه نوع - آن را در واقع یک کمی از بالا و پایین رفتن در اینجا است. مرورگرهای حرکت نزولی در حال حاضر، اما آنچه می تواند انجام دهد اگر آنها به منظور اجتناب از باهوش نیاز به درخواست همان styles.css را فایل را مجددا می تواند برای انجام چه؟ کش. بنابراین ذخیره - C-A-C-H-E - به طور کلی در اینجا به معنای فقط به نجات اولین بار فایل درخواست شما، و سپس چک کردن کش خود را برای ایجاد آن بنویسید. چک کردن تو نوع ظرف ذخیره سازی، و اگر شما در حال حاضر کپی از styles.css را، حتی اگر برخی دیگر صفحه P-تنظیم شده، یا هر وب سایت، درخواست دوباره آن را، فقط به دادن کاربر است که نسخه های cache شده مشابه. آیا زحمت نیست با درخواست آن است. حرکت نزولی وجود دارد، هر چند، به عنوان برخی از شما بیش از P-مجموعه ای افتاد. اگر شما بر روی سرور و شما برگردید به مرورگر و شما بارگذاری مجدد، گاهی اوقات مرورگر می کند شما را به نفع و زحمت ندارد دوباره دانلود فایل CSS خود را چون، می آیند، شانس چه هستند که این سبک که فیس بوک با استفاده از می رویم به تغییر ساعت به ساعت و یا روز به روز؟ این بسیار کم است. آنها ممکن است در طول زمان تغییر می کند، اما نه دقیقه و یا ساعت. بنابراین یک ترفند، فقط FYI هنگام انجام وب توسعه، اغلب پایین نگه دارید کلید برای مثال تغییر کرده و سپس کلیک کنید بارگذاری مجدد در مرورگر خود، و آن را به طور معمول بارگذاری مرورگر بگویید همه چیز، حتی اگر شما در حال حاضر آن را در حافظه پنهان. تا دوباره، شاهد رشد آمارهای ها و جنبه های منفی، اما همه آنها در نهایت تصمیم گیری های طراحی. بنابراین در حال حاضر، ما نه تنها برای پایان دادن به داستان اینجا را کلیک کنید. اگر من در حال حاضر به عقب بروید و به عقب و عقب و به عقب، ما شروع به معرفی نه تنها HTML، اما پی اچ پی. بنابراین در شرایط خارج از حرفه یا فن خاصی است، چه آیا پی اچ پی اجازه ما انجام می دهید؟ مخاطب: [نامفهوم]. دیوید مالان: چه خبر؟ مخاطبان: معرفی منطق به کد. دیوید مالان: آره، معرفی منطق به کد شما. پس از آن یک زبان برنامه نویسی واقعی با حلقه ها، و متغیرها، و توابع، و شرایط، و تمام چیزهایی که ما شده ایم با استفاده از راه برگشت زمانی که از ابتدا. و پی اچ پی، ما دیده ایم، می تواند مورد استفاده قرار گیرد یا در خط فرمان - ندارد به چیزی برای انجام با وب، حتی اگر که واقعا ریشه های خود را و آنچه در آن تمایل دارد به خوبی در و منجر به - اما شما می توانید PHP را صرفا با استفاده از طبیعت از این واقعیت است که آن را چاپ () تابع، و چون printf () تابع، یا اکو تابع (). مجموعه ای از راه شما وجود دارد می توانید متن را با پی اچ پی نسخه قابل چاپ. بنابراین، شما می توانید از این برنامه استفاده نمایید. زبان به خروجی دقیقا آنچه ما در مورد قبل از صحبت می کردند. شما به صورت پویا می تواند تولید HTML خود را. شاید نه همه آن. شاید شما سخت از چیزهای کد، مانند سرصفحه و پاصفحه و آرم، و ورق های سبک خود را، و همه از آن. اما برای چیزی شبیه به P-مجموعه هفت، که در آن شما در حال دستکاری سهام و کاربر نمونه کارها، که نشان رفتن به صورت پویا تغییر کند، شما می توانید قطعا استفاده از پی اچ پی و منطق آن را می دهد شما به عنوان یک زبان برنامه نویسی به خروجی به صورت پویا زیر مجموعه صفحه. بنابراین، هنگامی که شما در مورد وب سایت های پویا، یا برنامه نویسی وب، که آنچه شما واقعا صحبت کردن در مورد. با استفاده از یک زبان مانند پی اچ پی، و یا چیزهای اصطلاح پایتون، روبی، جاوا، و یا هنوز زبان های دیگر، به پرس و جو از پایگاه داده اغلب، و یا دیگر سرور، و پس از آن به صورت پویا تف HTML. نتیجه نهایی، به عنوان یک کنار، که HTML از بسیاری از وب سایت های، از جمله P-مجموعه هفت، است که احتمالا رفتن به ظروف سرباز یا مسافر بزرگ اگر شما در منبع نگاه کد را در یک مرورگر. این یک معامله بزرگ نیست. در این نقطه، زمانی که ما در مورد مراقبت از سبک، ما در مورد مراقبت از مطالبی که تو می نویسم. ما نمی خواهد در مورد مسائل مراقبت که چه خروجی کد های خود استفاده کنید. پس وقت را در مورد دندانه نگران نباشید در اینجا اگر آن را به پی اچ پی که در واقع خروجی چیزهای. پس از همه، مرورگر خواهد شد مراقبت، و انسان نمی خواهد به دنبال در منبع هر حال. ما کارکنان، به عنوان مثال، به دنبال در پی اچ پی خود را. پس اجازه بدهید من یک مثال سریع شرکت چرا دیگری این ممکن است مفید باشد. رک و پوست کنده، من نمی توانم به یاد داشته باشید آخرین زمانی که من استفاده از C برای حل یک مشکل در جهان واقعی است. این احتمالا در مقطع فوق لیسانس بود که من نیاز به استفاده از یک زبان است که نسبتا سطح پایین بود و به من داد فرصت برای انجام کاری بسیار بالا اجرای واقعا به عنوان بسیاری از CPU را نجات دهد چرخه به عنوان من می توانم، در بخش بزرگ چون من با استفاده از مجموعه داده های بزرگ، و هر CPU چرخه محسوب می شود. و رک و پوست کنده، حتی در چیزهایی مانند تلفن های این روز ها و دستگاه های دیگر که در آن شما نه کاملا به همان اندازه حافظه و شما را کاملا به عنوان CPU زیاد است، با استفاده از زبان های سریعتر هنوز هم جذاب است. اما در دنیای واقعی، زمانی که شما فقط می خواهم به پرتاب برخی از برنامه های با هم به تجزیه و تحلیل برخی از داده ها، و یا شما جمع آوری شده یک دسته کامل از ثبت نام برای برخی از گروه های دانشجویی و شما می خواهید به بسیار سرعت به طور خودکار ارسال ایمیل یک به یک به هر یک از آن ثبت نام، شما را برای رسیدن به یک زبان سطح بالاتر از C پس به صحبت می کنند. یه چیزی مثل پی اچ پی یا پایتون یا روبی، و یا یک نیم دوجین دیگران است که وجود دارد این روزها. اما آن سه احتمالا مرسوم، مد روز ترین حق در حال حاضر. و این بدان معنی است که شما می توانید باز تا یک ویرایشگر متن مانند نرمافزاری gedit یا بیشتر از هر چیز دیگری و پس از آن فقط شروع نوشتن کد بدون نیاز به نگران در مورد کامپایل، بدون نیاز به واقعا در مورد مدیریت حافظه نگران باشید، با در نظر گرفتن هر چند که کمی sloppiness در نهایت دوباره خواهد شد به شما نیش می زنند اگر مجموعه داده می شود بزرگتر و یا مشکل بزرگ می شود. اما آنچه این به این معنی ما شرح زیر است. اجازه دهید من به جلو و اجرا هجی از مشکل مجموعه شش. بنابراین این پیاده سازی مبتنی بر درخت من است که من در بزرگ استفاده می شود هیئت مدیره جایی که من تا به خوبی انجام نمی. ما را دوباره در زمان یک هفته و دوباره کسانی که در بالای پایان بود هیئت مدیره بزرگ در آخرین سخنرانی ماست. اما در حال حاضر، اجازه دهید من جلو بروید و فقط اجرای راه حل من در متن، و ما می خواهیم انجام شاه جیمز کتاب مقدس، و در اینجا ما. بنابراین کسانی که همه ظاهرا کلمات اشتباه از پادشاه جیمز کتاب مقدس است. و در زمان اجرای من نیم ثانیه در کل. بنابراین بیش از حد بد نیست در این مورد کامپیوتر خاص است. اما فکر می کنم چقدر کد من مجبور به نوشتن. فکر می کنم که چقدر کد شما مجبور به نوشتن. فکر می کنم چند ساعت شما را در به سر برد D-سالن و یا خوابگاه خود را و یا هر کجا که در واقع برنامه نویسی که راه حل. خب، اگر من در واقع یک سطح بالاتر زبان مانند پی اچ پی، یادداشت بردارد، آنچه که من در اینجا می توانید انجام دهید. اول، فرض کنید که این است که به جای کد توزیع خود را. این یک فایل به نام هجی است. به عنوان بخشی از امروز در دسترس کد توزیع. و من قصد دارم به موج دست من در اکثر از جزئیات، اما این است که در واقع مثال جالبی از چگونگی شما ممکن است یک زبان پورت مانند C را به پی اچ پی. من به معنای واقعی کلمه دو پنجره متن باز، یکی با نسخه C speller.c، و من فقط شروع به ترجمه آن در من سر به پی اچ پی و تایپ کردن آن را با استفاده از نزدیکترین تابع. بنابراین برخی از این چیزها متفاوت است. ما آخرین بار که پی اچ پی استفاده نمی دیدم شامل کاملا به همان شیوه. آن استفاده می کند نیاز به طور معمول، هر چند شامل وجود دارد. تعریف کمی متفاوت از در C # تعریف، اما این ما چگونه ثابت را. $ تعداد آنها آن را معلوم وجود دارد در پی اچ پی، بنابراین ما دیده می شود که قبل از. این فقط متغیر های، همه که با شروع علائم دلار. به یاد بیاورید این فقط یک دسته از نقاط شناور. بنابراین داستان کوتاه مدت، شما به خوش آمدید تلنگر از طریق این اگر کنجکاو، این است که تقریبا یک تبدیل خط به خط نسخه C speller.c به پی اچ پی. و شما می توانید این دیگر برای انجام نیم دوجین زبان های دیگر. اما آنچه جالب است این است. یا آنچه که رک و پوست کنده بسیار مأیوس کننده این است. اجازه دهید من جلو بروید و تایپ کنید در مورد dictionary.php، و ادعا کند که من هستم رفتن به جلو بروید و دوباره اجرا مشکل مجموعه شش اینجا. بنابراین پیشنهاد می کنیم برای اولین بار است که در این فایل، خواهد شد که در اجرا پی اچ پی، بنابراین اجازه دهید من باز برچسب های من است که می خواهم. اجازه دهید من خودم را جهانی متغیر، $ اندازه صفر می شود. و من قصد دارم به من بدهید خودم یک جدول هش. من یک جدول هش برای این چیزی استفاده کنید. چگونه یک جدول هش اعلام من در پی اچ پی؟ انجام می شود. OK را بزنید. تا باز براکت براکت نزدیک نشان دهنده آنچه در پی اچ پی، همانطور که می بینیم؟ آرایه، اما یک آرایه است که می تواند می شود یک آرایه انجمنی است. آرایه انجمنی است ساختار داده ها است که کلید های با ارزش است. در حال حاضر در ساده ترین نمایه عددی آرایه، این کلید چه؟ صفر، یک، دو، سه، درست است؟ مسائل مدرسه قدیمی پشت از C. اما می تواند همچنین رشته مانند تولی و نوار، و یا ماکسول، و یا هر رشته مانند. بنابراین من می تواند اهرم است که فقط یک لحظه. بگذار بروم جلو و اعلام یک تابع مانند - اجازه دهید اولین بار (). بنابراین بار تابع (). و پی اچ پی کمی در آن متفاوت است شما به معنای واقعی کلمه نوع تابع، اما شما یک نوع بازگشت به تایپ نیست. من قصد دارم به جلو بروید و می گویند که بار () تابع باید در را استدلال $ فرهنگ لغت، فقط مانند نسخه C انجام داد. من انجام این کار از حافظه است. و پیشنهاد می کنم که من رفتن به انجام این کار. من فقط می خواهم برای انجام حلقه foreach. من قصد دارم به فراخوانی یک تابع به نام فایل ()، عبور در نام آن فایل است که متغیر $ فرهنگ لغت به عنوان $ کلمه. و سپس در داخل از من برای حلقه در اینجا، من هستم رفتن به جلو بروید و ذخیره در من $ جدول که $ کلمه درست می شود. انجام می شود. اوه، صبر کنید. انجام می شود. OK را بزنید. این تابع بار () است می گویند در پی اچ پی. در حال حاضر، چرا که کار می کند؟ و من نوع تقلب اینجا هستم. بنابراین، یک، حلقه foreach ما دیدیم به طور خلاصه آخرین بار. این فقط بدان معناست که شما می توانید بیش از تکرار یک آرایه بدون مزاحم با من و n و به علاوه به علاوه، و همه از آن. فرهنگ لغت است که البته نام فایل، چیزی شبیه به بزرگ یا کوچک، دو واژه نامه ها در زمان گذشته استفاده می شود. فایل یک تابع که باز می شود تا متن فایل، آن را بار خوانده شده در خط به خط، و دست شما را به یک آرایه بزرگ، هر یک از عناصر که یک خط از آن فایل. به طوری که ترکیبی از fopen، و fread، و در حالی که حلقه، و fclose، و همه از آن. در نهایت، به عنوان کلمه فقط بدان معناست که متغیر من قصد دارم به دسترسی به در هر تکرار در این حلقه است. بنابراین در کوتاه مدت، این یکی بوش در اینجا به معنای باز کردن فایل است که نامش در فرهنگ لغت، متغیر، تکرار بیش از آن را خط به خط، و هر زمان که شما می توانید یک خط، ذخیره شده در یک متغیر به نام کلمه، و پس از آن انجام چیزی با کلمه. چه من می خواهم کاری انجام دهید؟ من می خواهم برای قرار دادن کلمه به جدول هش من. خوب، من می توانم چیزی در من قرار داده است جدول هش درست مثل C با استفاده از براکت مربع. این نام برای جدول هش من است. من قصد دارم به آن مخلوط به صفحه اول جدول در این مکان. بنابراین براکت صفر، براکت یکی نیست. براکت نقل قول نقل قول را تمام کردن چیزی، هر چه آن کلمه است. و درست مثل شما ممکن است خود را در جدول هش درخت کار، شما فقط ذخیره به طور موثر بولی، به طور ضمنی و یا به صراحت. انجام می شود. من ذخیره سازی ارزش واقعی است. در حال حاضر یک زن و شوهر از چیزهایی وجود دارد من برش گوشه ها در اینجا. با مشخصات فنی، رفتن به یک وجود دارد خط جدید مزاحم، / N در پایان هر یک از این کلمات. بنابراین من احتمالا باید یک تابع پی اچ پی تماس بگیرید ریز ریز کردن نامیده می شود ()، که کاملا به معنای واقعی کلمه ریز ریز کردن که خاموش. و من در واقع نیاز به یک چیز دیگر. من احتمالا باید افزایش حجم در هر یک از تکرار، بنابراین من پیگیری در سطح جهانی از آنچه در آن است. و رک و پوست کنده، و این یکی از جنبه های stupider از پی اچ پی، اگر شما با استفاده از یک متغیر جهانی، شما نیاز دارید به صراحت می گویند که شما می باشد. بنابراین من قصد دارم در واقع در جهانی نوع $ اندازه، جهانی $ جدول، و در حال حاضر تابع من کامل است. بنابراین کاملا به عنوان ساده به عنوان قبل از، اما احتمالا زمان کمتر از C نسخه، شاید؟ OK را بزنید. بنابراین در حال حاضر اجازه انجام بررسی تابع (). بیایید ببینیم که اگر این حداقل زمان ساعت ها در پایان که ما در C و جو در زمان پس اجازه دهید من جلو بروید و اعلام عنوان یک تابع را بررسی کنید. طول می کشد تا در بحث به کلمه، که رفتن از هجی آمده است. و من فقط جهت چک کردن و رفتن! پس از Isset متغیر، جدول strtolower براکت کلمه - بیایید تعادل همه از پرانتز من - سپس بازگشت درست است. دیگری - که واقعا سخت بود بخشی از این برنامه است. دیگری، بازگشت کاذب. انجام می شود. این چک () است. در حال حاضر، به همین دلیل این کار می کند؟ خوب، من در یک کلمه رفت، که یک رشته است. دو، من دارم داخل مخلوط میز، که در جدول نامیده می شود. من مجبور به کوچک خواستار یک تابع tolower کاملا مشابه () گراد، اما این به معنی تمام کلمه، نه یک شخصیت واحد است. و در صورتی که قرار است، به عبارت دیگر وجود دارد است ارزش مجموعه، به عبارت دیگر، اگر این درست است، پس بله، این یک کلمه است. از آنجا که من آن وجود دارد با بار () قرار داده است. و اگر نه، من قصد دارم به بازگشت کاذب. در حال حاضر از دیگران آسان است. اندازه تابع ()، چگونه می توانم این کار؟ من اساسا نمی گرداند $ اندازه. اما من از لحاظ فنی نیاز به آیا این چیزی که آزار دهنده است. و در واقع می شنوید، من برش یک گوشه بیش از حد بسیاری از. من واقعا نیاز به انجام جهانی $ جدول. اما که گفته می شود، خالی کردن). خالی کردن () شگفت انگیز است. عمل تخلیه (). چگونه می توانم من می خواهم برای پیاده سازی خالی کردن ()؟ انجام می شود. OK را بزنید. پس خالی ()، مدیریت حافظه است مراقبت به طور کامل گرفته شده را برای شما در چیزی شبیه به پی اچ پی و بسیاری زبان های سطح بالاتر. بنابراین این شگفت انگیز است. مانند چرا جهنم ما صرف گذشته هشت هفته علاوه بر نوشتن C ظاهرا واقعا آرام، واقعا زمان مشکلات مصرف با ده ها ساعت کار زیر کمربند ما؟ خوب، برای یک چیز، این کار ممکن است خوب برای برنامه های کوچک. آن را قطعا و توپ رو من زمان توسعه. اما بیایید ببینید که چه اتفاقی می افتد در جهان واقعی است. اجازه بدهید من به این شاخه بروید در یک پنجره ترمینال. هجی وجود دارد. و اطلاع به عنوان یک کنار، و شما ممکن این مجموعه مشکل مواجه اند شش یا مشکل مجموعه هفت. شما به شدت به پایان دادن به فایل های پی اچ پی با پی اچ پی. اگر شما یک خط مانند که برای اولین بار یک در قرار داده است بسیار بالا، که یک خط ویژه نحو که اساسا به معنی پیدا کردن برنامه ای به نام پی اچ پی و استفاده از آن تفسیر این فایل. بنابراین در حال حاضر هیچ کس واقعا نمی داند که من در حال اجرا یک برنامه پی اچ پی. من می توانم آن را اجرا کنید فقط به عنوان اینکه آن را چیزی در C. وارد شده بودند اما در اینجا چیزی نیست. در واقع، اجازه دهید این کار را دوباره. Dropbox/pset6 /. هجی وجود دارد. خوب، 0.44 ثانیه انجام گرفته است. این سرعت این زمان. حالا اجازه دهید به نسخه پی اچ پی. لمس نیس. اما فقط فکر می کنم که چقدر زمان من در ساعات اداری نجات داد. OK را بزنید. بنابراین 3.59 ثانیه، که در واقع صدا دقیق یا. اما این به دلیل داستان کوتاه مدت، هنگامی که شما در حال چاپ کردن مقدار زیادی از مسائل به صفحه نمایش، که خود همه چیز را کند میکند. آنچه در آن واقعا CPU در زمان لوازم خانگی 3.59 ثانیه صورت گرفت، در بود خلاف C، که در زمان 0.44 ثانیه اخیرا. که واقعا منظور از قدر متفاوت است. بنابراین که در آن است که در قیمت که از؟ چرا از آن است که بسیار آهسته تر؟ چرا PHP انجام آنقدر ضعیف؟ دانیل؟ یک مدعو: شما واقعا نمی استفاده از یک جدول هش. DAVID مالان: من واقعا نمی استفاده از یک جدول هش. بنابراین من از نوع بود. پس از آن یک آرایه انجمنی است. به احتمال زیاد اگر مردم در PHP می باشد واقعا باهوش، آنها زیر استفاده می شود هود جدول هش واقعی اجرا در چیزی شبیه به C یا C + +. اما. آره. یک مدعو: [نامفهوم]. DAVID مالان: آره. بنابراین هر یک از توابع من در حال حاضر نوشت - در واقع، می تواند به شما می گویند که یک بار دیگر بلندتر کمی؟ یک مدعو: هر یک از توابع است که شما گنجانده شده است تا به مقدار زیادی بیشتر کامل ظرفیت از - DAVID مالان: پس این کاملا درست است. در بالای سر بسیار بیشتری که ما وجود دارد واقعا دیدن نیست با تمرکز تنها بر روی dictionary.php که من فقط نوشتم. در مقابل، یک مترجم کامل وجود دارد که در پس زمینه. در واقع، زمانی که من این برنامه را، آن شد صفر وارد شده و آنهایی که در حال اجرا نیست برای CPU اینتل من طراحی شده است. در عوض، آن را در حال اجرا خط به خط کد PHP که به نظر می رسد دقیقا مثل ما آن را تایپ. و به این ترتیب هر زمان که شما از یک تفسیر زبان، شما در واقع پرداخت این قیمت می باشد. این رفتن را به برخی از زمان به عنوان خوانده شده بالا فایل های خود را به پایین، از چپ به راست، و سپس اجرای هر خط دوباره و دوباره. در حال حاضر در واقعیت، به خصوص در وب، شما در واقع می تواند این فرایند را تسریع توسط ذخیره نتایج حاصل از این کد PHP که تفسیر شده است. و این را حس می کند بر روی وب، به دلیل اگر شما یک کاربر نمی من در اینجا، اما 1000 یا 10000 کاربران و پس از آن شاید اولین بار فایل دیده آن را کند، اما پس از آن آن را بسیار سریعتر. اما این خیلی، دوباره، کردن تجارت است. و برای چیزی شبیه به داده های پژوهشی تعیین می کنند، و یا حتی چیزی بزرگ مانند این، کاربران خود را در نهایت خواهد شد شروع به احساس می کنید که کاهش سرعت. بنابراین در کوتاه مدت، تفسیر زبان می باشد بسیار در رواج، بسیار محبوب است، و رک و پوست کنده به زبان شما احتمالا باید برای زمانی که حل مشکلات رسیدن پس از آن به CS50. اما متوجه چه مقدار شما واقعا در گرفتن برای مسلم است در زیر هود واقعا کسانی که چند هفته گذشته در مخلوط جداول، و درختان، و تلاش می کند، استفاده می شود که در نهایت به واقع پیاده سازی چیزهایی مانند براکت باز، براکت، که ما در حال حاضر می توانید سپاسگزاری را برای مسلم است. بنابراین اجازه دهید نگاهی کن در این زمینه وب است. و من آخرین بار وجود دارد که اشاره شد یک دسته از superglobals در PHP که واقعا مربوط نیست در خط فرمان. آنها در متن مربوط تر هستند استفاده از PHP در زمینه وب است. بنابراین در حال اجرا PHP در سرور وب به منظور برای تولید چیزهای مانند HTML. و ما در $ _GET و $ _POST انداخت، و که در آن به طور خودکار به کاربران ورودی پایان می رسد تا به سادگی اگر شما ارائه را تشکیل می دهند در یک فایل با پسوند. پی اچ پی در وب سرور مانند لوازم خانگی. اما اجازه دهید نگاه مختصری در $ _COOKIE و $ _SESSION. در عبارت، چه یک کوکی را به عنوان است شما آن را درک کنند در متن با استفاده از وب؟ یک مدعو: فایل در کامپیوتر است. DAVID مالان: آره. این فایل را بر روی کامپیوتر کاربر است کاشته شده توسط هر وب سایت شما اتفاق می افتد را ببینید. بنابراین، هنگامی که شما را به فیس بوک، زمانی که شما به به به bankofamerica.com، زمانی که شما به به google.com، هنگامی که شما را به تقریبا هر وب سایت در جهان این روز را، از جمله cs50.net، یک کوکی کاشته است بر روی کامپیوتر شما، که است یا یک مقدار در RAM در ذخیره شده خود را کامپیوتر در حافظه مرورگر خود را، و یا گاهی اوقات در واقع یک فایل ذخیره می شود در هارد دیسک شما. و چیزی که به طور معمول در آن فایل ذخیره می شود است نام کاربری خود را، نه شما و نه رمز عبور، به طور معمول چیزی نیست حساس مگر این که وب سایت این گونه نیست خوب با امنیت آنها، بلکه آن یک شناسه منحصر به فرد بزرگ در میان است چیزهای دیگر. این یک عدد بزرگ تصادفی کاشته شده است خود را کامپیوتر، اما شما می توانید از فکر می کنم به عنوان مرتب سازی بر یک تمبر دست مجازی مانند از یک باشگاه و یا برخی از پارک تفریحی که اجازه می دهد تا کارکنان، صاحبان که خدمات، به یاد داشته باشید که شما می شوند. بنابراین اگر عدد تصادفی بزرگ مانند 12345678، هر چند که به وضوح بیش از حد تصادفی نیست، فکر می کنم از آن به عنوان تمبر دست است که در هنگام مراجعه facebook.com برای اولین بار، آنها مهر که تعدادی در دست شما. و پس از آن به خاطر اینکه شما صحبت می کنند HTTP، شما بودن یک مرورگر، و به خاطر فیس بوک بدیهی است که صحبت می کند همان است که در وب سرور، HTTP پروتکل می گوید که در هر زمان شما پس از آن بازدید facebook.com، که آیا آن را یک ثانیه بعد، یک ساعت بعد، حتی در روز بعد، تا زمانی که شما به صراحت ندارد خارج، که به طور موثر مانند شستن دست های خود را. HTTP می گوید: شما باید در حال حاضر شما تمبر سوی هر بار که شما بازگشت به آن وب سایت. چه فیس بوک پس از آن می کند آنها است در آن مهر و موم دست نگاه کنید و آنها می گویند، آه، 123456789. من در نگاه اول نمی دانند که این دیوید مالان در کمبریج است، ماساچوست، اما آنها می توانند در بررسی خود پایگاه داده و می گویند، آه، فرد در که کامپیوتر ما کاشته 123456789 دیوید مالان از کمبریج است، ماساچوست. اجازه دهید نشان می دهد که کاربر پس از آن مشخصات خود را صفحه و یا اخبار خود را. اما یک مشکل در اینجا وجود دارد در صورتی که این است چگونه وب در واقع کار می کند. بیایید نگاهی به یک مثال سریع. اجازه دهید در واقع رفتن به می گویند facebook.com. اما قبل از ما وجود دارد می تواند برود، اجازه دهید من به جلو و باز کردن کروم بازرس کردن در اینجا. اجازه دهید من در تب شبکه نگاه کنید. و در حال حاضر اجازه دهید به جلو و نوع در https://facebook.com. و من انجام این کار به طوری که ما نمی بینیم همه از آن تغییرمسیر و زباله زمان به دنبال از طریق آن. اجازه دهید به من ضربه را وارد کنید. بسیار خوب. ما می بینیم یک دسته کامل از درخواست. می آید فیس بوک وجود دارد. یک دسته کامل از فایل ها وجود دارد. و در اینجا، در یاد من آخرین باری که پوشیدگی، که بسیاری از درخواست های HTTP. اما برای اولین بار است که احتمالا جالب ترین. بنابراین در اینجا پایین حرکت دهید، و من در یک ثانیه زوم در. این است که به نوع ظروف سرباز یا مسافر، اما اجازه دهید را ببینید. فیس بوک به ما ارسال تمام دسته از مسائل. اما ایست، جالب است. آنها کاشت نیست، اما چهار تمبر دست بر روی دست من در اینجا. تنظیم کوکی، کوکی تنظیم، تنظیم کوکی، مجموعه کوکی. و چند ویژگی در اینجا وجود دارد. همه آنها ذکر برخی از نوع انقضا. و به نظر می رسد مانند فیس بوک امیدوار است من تا سال 2015 به یاد داشته باشید. به طوری که احتمالا زمان با آن من باید از سیستم خارج شوید و یا آنها فقط به طور خودکار فرض من بر نمی گردم. به طوری که در واقع مناسب و معقول مقدار از زمان. و برخی دیگر وجود دارد همه چیز در اینجا. این کوکی به نظر می رسد به زور حذف با گفتن آن در سال 1970 منقضی شده قبل از کوکی ها وجود داشته است. بنابراین مرورگر فقط رفتن به فرض خوب، که مانند شستن دست تمبر. اما در حال حاضر زمانی که مرورگر من می سازد درخواست پس از آن - اجازه دهید من جلو بروید و این کار را انجام دوباره و مجدد بارگذاری نمایید. حالا اجازه دهید من حرکت بازگشت به درخواست بالا و پایین رفتن در اینجا، درخواست هدر. توجه داشته باشید این. بنابراین در حال حاضر من تحت هدرهای نیستم، اما متوجه آن می گوید هدر درخواست. و توجه کنید که مرورگر من به عنوان بخشی از درخواست خود را پس از ضربه بارگذاری است فرستاده شده حداقل به شرح زیر است اطلاعات. مجموعه کوکی، کوکی. بنابراین این خط است، هدر HTTP تا به صحبت می کنند، جایی که مرورگر من مرتب سازی بر است بدون دانستن آن ارائه طرف برای بازرسی فیس بوک. بنابراین این کوکی ها می تواند پس از آن برای چه استفاده می شود؟ به یاد داشته باشید که شما می شوند، و یا به یاد داشته باشید چگونه چند بار شما بوده ام وجود دارد، یا واقعا هر چیزی. بنابراین در اینجا counter.php های است. و اجازه من در فونت زوم. و هر بار من این صفحه را مجدد بارگذاری، توجه آن را به یاد داشته باشید که چند بار من هم اونجا بودم. خب، این که قابل توجه نیست. بیایید فقط بستن آن تب، و در حال حاضر اجازه بازگشت به http://localhost/counter.php. آه، که جالب است. آن را هنوز هم به یاد، حتی اگر من زبانه بسته. و رک و پوست کنده، اگر من مرورگر را ببندید، اگر در راه حق اجرا، من هنوز هم می تواند به یاد داشته باشید که این کاربر که او اولین بار بود، و تنها یک بار من به منوی کروم بروید، که بیش از اینجا است که در اینجا و به تاریخ، کلیک کنید و پاک کردن داده های مرور، به عنوان برخی از شما ممکن است در گذشته، تنها خواهد شد و سپس کوکی های خود را در واقع در طول وب سایت حذف می شود توسعه است. بنابراین، اگر ما - اجازه نزدیک کردن نرمافزاری gedit در اینجا. و اگر ما در حال حاضر به این فایل. اجازه بدهید من به ما vhosts / localhost را / عموم مردم، و به من اجازه انجام counter.php. توجه کنید که این یک زیبا برنامه ساده است. این یک وب سایت بسیار ساده است. بنابراین بالای فایل فقط نظر است. اما در اینجا یک خط جدید است که شما ممکن است در حال حاضر در P-مجموعه هفت، دیده می شود خوانی کنیم session_start (). این یک خط کد پی اچ پی است که اساسا می گوید وب سرور، مطمئن شوید که برای تمبر دست و مطمئن شوید که به بررسی تمبر دست. که تمام آن خط می کند، و آن را تمام این فرآیند برای ما. سپس متوجه من فقط میخوام دو شاخه در اینجا. اگر داخل کلید مقابله با این متغیر جهانی خاص به نام $ _SESSION تنظیم شده است - به عبارت دیگر، اگر برخی از ارزش وجود دارد وجود دارد - اجازه دهید آن را دریافت و ذخیره آن را در محلی متغیر به نام $ ضد. دیگری، اجازه دلار اختصاص مقابله مقدار پیش فرض 0 است. حالا در اینجا یکی از جنبه های پی اچ پی که هر دو برکت و لعنت. پی اچ پی کمی درهم و برهم است. بنابراین در حالی که در C، چه خواهد دامنه مبارزه شده اند یا اینجا یا اینجا؟ آن را محدود شده است به کسانی که آکولاد. حدس بزنید چه؟ در پی اچ پی، آن وجود دارد و حتی در خارج از آن آکولاد، در اینجا، و در اینجا، و در اینجا، و اینجا، و حتی پایین. بنابراین من می گویم برکت به این معنا است که شما لازم نیست که به عنوان فکر می کنم سخت همانطور که ما هفته پیش بود. اما آن را نیز یک بیت از لعنت در آن بدون توجه به جایی که شما استفاده از یک متغیر در پی اچ پی، حداقل در یک برنامه مثل این، آن در سراسر جهان در دسترس برای بهتر شدن یا بدتر شدن. بنابراین شما باید در ذهن داشته باشیم که در حال حاضر متغیرهای شما ممکن است تعریف نشده است. شما ممکن است آنها را در جای دیگر تعریف شده است. اما آنچه من می خواهم به انجام این کار در نهایت؟ من قصد دارم برای ذخیره در داخل آن جهانی متغیر به عنوان یک ارزش کلید ضد نتیجه انجام مقابله به علاوه 1. پس این است که فقط حساب که نمی incrementation آن پیشخوان. و این واقعیت که من ذخیره سازی است که ارزش در اینجا وسیله ای برای اساسا به روز رسانی پایگاه داده به به یاد داشته باشید که کاربر 123456789 بوده است در اینجا دو بار. و وقتی که من این کار را دوباره دفعه بعد من بارگذاری مجدد صفحه، آن را برای بررسی دست من مهر و اید فقط به این خاطر که به او بگویید: دوست من، آه، کاربر 123456789 در حال حاضر در اینجا سه ​​برابر شده است. و بنابراین، آنچه زبان پی اچ پی و مشابه برای ما انجام می دهند این است که آنها بدانند خارج چگونه و در کجا و برای چه مدت برای ذخیره مقادیر در این ویژه superglobal در. و این superglobal در دفعه بعد من بازدید از صفحه مرتب کردن بر اساس جادویی پیش جمعیت، پر از ارزش هایی که آخرین زمان بازدید شما وجود دارد، که آیا آن یک دوم پیش بود، یک هفته پیش، و یا در سال 2013 و ما در حال صحبت کردن در مورد سال 2015. پی اچ پی و وب سرور مراقبت از همه که برای شما. مخاطب: [نامفهوم]. دیوید مالان: متغیرها در پی اچ پی اساسا مگر اینکه شما همیشه جهانی اعلام آنها را در داخل یک تابع، و سپس آنها را به محلی تابع فقط. اما از آنجا که من هر نوشته ام توابع، آنها در حال حاضر به طور موثر جهانی در کل فایل من در اینجا. مخاطبان: آیا راهی وجود دارد آنها را به محلی؟ دیوید مالان: آیا راه به محلی آنها را به؟ تنها با پیچیدن آنها را به توابع. که در آخرین نسخه از پی اچ پی، شما می توانید این کار را با انجام یک تابع بی نام. اما بیشتر در مورد که در زمینه جاوا اسکریپت. اما پاسخ کوتاه است. دیگر پاسخ مثبت است. خوب است. سوال مسابقه خوب است. بسیار خوب. تا آخر، خود صفحه است در واقع خیلی ساده است. توجه داشته باشید که یک بار من پی اچ پی حالت خارج شوید، به یاد که همه این مسائل را در پایین در زیر فقط رفتن به تف از خام به مرورگر. کدام خوب است، چرا که من می خواهم به ارسال کاربر برخی از HTML است، اما من نمی خواهم به صورت پویا به روز رسانی که HTML. و یکی از راه من می توانم این کار این است که به مرتب کردن بر اساس بسیار به سرعت رها به پی اچ پی حالت، استفاده از علامت سوال براکت باز علامت مساوی، و سپس خروجی ارزش ضد. یا در صورتی که این به نظر می رسد کمی مرموز است، این علامت تساوی است که در واقع فقط برخی از قند نحوی برای این چون printf (ضد). اما رک و پوست کنده، که فقط یک کمی زشت و کمی آزار دهنده به تایپ کنید. بنابراین پی اچ پی بسیار خوبی ارائه می دهد این ویژگی که در آن شما فقط می توانید آن را بیشتر می گویند موجز در به همان شیوه. بنابراین آنچه در زیر رفتن هود؟ اجازه دهید به سرعت نگاهی به شبکه زبانه برای counter.php. و اجازه دهید من به جلو و برای اولین بار در اجازه دهید روشن کوکی های خود را. داده های مرور روشن بیایید از آغاز زمان. حالا اجازه دهید به عقب برویم بیش از اینجا. در حال حاضر اجازه دهید این صفحه را مجدد بارگذاری. و من برگشتم در صفر. از آنجا که مهر دست من شسته شده، من در حال حاضر یک کوکی جدید را دریافت کنید. در واقع اگر من در تب شبکه نگاه کنید و نگاهی به هدرهای، متوجه که دستگاه من ارسال کوکی که نام آن تا حدودی خودسرانه، اما نوع منطقی، PHPSESSID. و آن را به من ارسال این واقعا عدد تصادفی بزرگ. این کاملا یک عدد نیست. این کاملا هگزادسیمال نیست. این نوعی از رشته عدد و الفبایی، اما احتمالا آن را تصادفی می باشد. و این مهر و موم دست تا به که من با اشاره به صحبت می کنند. در همین حال اگر من روی Reload کلیک کنید و سپس نگاهی به این خط دوم برای دوم من درخواست، توجه کنید در حال حاضر که درخواست من هدر شامل PHPSESSID برابر، مجموعه کوکی، اما فقط کوکی. و ارائه مرورگر من تمبر دست من. بنابراین در حال حاضر به عنوان یک تیزر، و خواهیم صحبت در مورد این در یک هفته یا بیشتر، اما آنچه در راه این شما را آسیب پذیر، به حساب فیس بوک خود را آسیب پذیر، و دیگر چنین حساب های آسیب پذیر؟ مخاطب: اگر کسی تا به کوکی خود را. دیوید مالان: بله، اگر کسی کوکی خود را دارد. منظورم این است که واقعا، بسیار شبیه به برخی از شما ممکن است در یک باشگاه یا یک محاکمه پارک تفریحی، اگر شما سعی می کنید چیزی مثل این برای کپی کردن این تمبر، که البته به عقب بر روی دست فرد دیگری، و سپس او آن را به عنوان خود، اگر آن را در واقع به نظر نمیرسد یکسان است، 123456789، سپس وب سرور ظاهرا فقط رفتن به اعتماد که که کاربر شما. و این است که در واقع اساسی تهدید هر زمان شما از کوکی استفاده میکنیم چون اگر کسی فقط spoofs تا به صحبت کوکی، چهره خود را از آنچه در آن است، یا واقعا آن را کپی با نگاه کردن در کامپیوتر شما و مانند، OK. کوکی دیوید JJ3JIK است و غیره، و سپس آنها به اندازه کافی هوشمند می دانم چگونه برای مرتب کردن دستی ارسال آن کوکی برای نگهداری اطلاعات استفاده از یک مرورگر و یا از یک برنامه که نوشتن، آنها می توانند کاملا ورود به یک وب سایت به عنوان شما. این است که سخت به تظاهر به شخص دیگری مگر اینکه ما دوباره P-مجموعه دو، که معرفی چه؟ مخاطب: رمزنگاری. دیوید مالان: کمی کمی از رمزنگاری. رمزنگاری ساده، حداقل در نسخه استاندارد است، اما سازمانهای سری ومخفی با این وجود. کمتر است. پس از آن معلوم است اگر همه شما را رمزگذاری این هدر با استفاده از چیزی است که شما در حال حاضر ممکن است بدانید آشنا تر به عنوان SSL، لایه سوکت ایمن، یا URL های احتمالی https://، سپس همه این چیزها ما بوده ام نظر اجمالی در واقع رمزگذاری شده هستند، که بدان معنی است که آن را مانند شما می توانید مهر و موم دست را نمی خواند. تنها facebook.com می تواند، یا google.com، یا در این مورد، دستگاه می تواند که مهر و موم دست را بخوانید. غم انگیز هر چند، و دوباره، این است که بیش از حد مناسب با مسائل NSA از اواخر سال، حتی SSL شکستنی است. و این در واقع که سخت نیست حتی به شکستن آن رمزگذاری. نه زیاد با شکستن رمزنگاری، اما با فریب مرورگر به رمزگشایی داده ها قبل از موعد مقرر. اما باز هم، ما به شما کسی را دست انداختن با که قبل از بلند. در حال حاضر، فقط ترس. این غم انگیز مهربان واقعی است. بسیار خوب. بنابراین، جایی که این در حال حاضر ما را ترک کند؟ خوب، اجازه دهید این کار را. اجازه دهید به جلو و سریع تیزر قبل از یک استراحت ما را. و من فکر می کنم ما کمی دیگر معطل خواهیم کرد امروز، اما ما قصد داریم به شیرجه رفتن به چیزی با نام تجاری جدید و سکسی، که اشتهای شما را تحریک و حتی بیشتر. به طوری که تیزر است. بنابراین SQL، ما شروع به صحبت کردن در مورد تا کنون به طور خلاصه آخرین بار. شما واقعا می خواهید دست خود را کثیف با برخی از آن را در P-مجموعه هفت. و در شرایط خارج از حرفه یا فن خاصی است، چه SQL - S-Q-L - برای شما انجام دهد؟ آنچه در آن است؟ آره. مخاطب: به شما اجازه دسترسی به داده ها. دیوید مالان بله. این به شما اجازه دسترسی به داده ها در یک پایگاه داده. زبان پرس و جو ساخت یافته. و این است که اساسا زبان های برنامه نویسی. ویژگی های آن وجود دارد که ما حتی نمی خواهد در کلاس استفاده کنید. اما شما می توانید به طور موثر تعریف توابع. آنها نامیده می شود ذخیره می شود روش در SQL. اما ما آن را نسبتا ساده و فقط می خواهید نگه دارید استفاده از آن را برای برخی از عملیات اصلی مثل انتخاب داده ها، قرار دادن داده ها، به روز رسانی داده ها و حذف داده ها. و شما می توانید از یک پایگاه داده فکر می کنم، مانند یک پایگاه داده SQL، به عنوان تنها مایکروسافت اکسل. از آنجا که SQL اشاره به رابطه پایگاه داده، که در آن ارتباط فقط بدان معناست جداول. سطر و ستون. بنابراین هر چیزی که شما می توانید در یک صفحه گسترده قرار داده است مثل این یا Google Docs، شما می توانید به پایگاه داده SQL قرار داده با اعلام یک جدول. در حال حاضر، چگونه می توانم به شما در واقع دسترسی که اطلاعات؟ خب، با دستورات و یا نمایش داده شد شبیه به این. SELECT، INSERT، UPDATE، و DELETE. و در اکثر موارد، کسانی هستند که چهار تنها مواد تشکیل دهنده شما نیاز به انجام کاری کاملا قدرت در مجموعه مشکل هفت. در حال حاضر به پشت در روز، شما می توانید در واقع تعامل با یک پایگاه داده را در پنجره ترمینال سیاه و سفید در سریع چشمک می زند این را دوست دارند. و پایگاه داده ما در حال اجرا بر روی لوازم خانگی نامیده می شود خروجی زیر است که موتور پایگاه داده منبع باز و رایگان است. اگر شما گوگل و ویکیپدیا به عنوان خوانده شده مقاله، شما می دانیم که نام یک بیت از انتقال برای برخی نسخه از لینوکس است. پایگاه داده ماریا است که در واقع چنگال طوری به خروجی زیر صحبت می کنند. داستان کوتاه مدت، اوراکل خریداری خروجی زیر است. اوراکل یک شرکت بزرگ است. مردم نگران شده اند که آن را دیگر کاملا به عنوان منبع باز باقی می ماند، پس این فقط یک کپی از خروجی زیر که هنوز آزاد است، منبع هنوز باز است، و در فدورا لینوکس به طور پیش فرض نصب شده است. اما این نوع درد در است گردن با یک آشنا پایگاه داده این راه است. بنابراین ما در دستگاه CS50 شامل یک ابزار رایگان منبع باز به نام از phpMyAdmin. فقط یک تصادف است که آن را در پی اچ پی نوشته شده است. هیچ بنیادی وجود دارد در اینجا نیاز به پی اچ پی. اما این فقط یک ابزار مبتنی بر وب است که ما به صورت رایگان دریافت، نصب شده در لوازم خانگی، که اجازه می دهد تا ما را به یک رابط کاربر گرافیکی است که با آن برای کشف P-مجموعه هفت پایگاه داده با که برای ایجاد پایگاه داده های جدید، می گویند برای پروژه نهایی خود را اگر شما می خواهم مانند، و در نهایت ایجاد وب سایت های پویا مانند CS50 مالی که به شما اجازه می دهد به پرس و جو از داده ها و به صورت پویا به روز رسانی داده ها. شما نمی خواهید مجبور به استفاده از فقط یک فایل متنی ساده و یا CSV. شما در واقع می تواند استفاده از یک پایگاه داده های هوشمند برنامه ای است به طوری که شما می توانید اطلاعات بیشتری در اجرا نمایش داده شد پیچیده تر از فقط خواندن از طریق همه چیز خطی. بنابراین برای مثال، این همان چیزی است که ما به شما از جعبه برای P-مجموعه هفت. این یک جدول با ظاهرا حداقل است سه ستون، یکی از آنها است نام کاربری، یکی از آن مخلوط است، و از سوی دیگر از آن شناسه است. اما چیزی که جالب توجه است، و فقط به کسی را دست انداختن از یک فکر در اینجا، نام کاربری است که احتمالا در حال حاضر منحصر به فرد است، درست است؟ منظورم اینه، بیشتر از هر وب سایت، اگر شما باید یک نام کاربری، نمی تواند دو سزار. تواند وجود داشته باشد دو malans نه. تواند وجود داشته باشد دو jharvards نه. منحصر به فرد آن است. در غیر این صورت، آنها نمی دانند که jharvard آن واقع شده است. پس چه ممکن است انگیزه برای همچنین داشتن یک ستون سوم سمت چپ به نام ID وجود دارد، که به نظر می رسد مثل یک تعداد که به طور مشابه منحصر به فرد است؟ این احساس کمی کار برکنار شده به من در نگاه اول. چرا ممکن است آن را قانع کننده داشته باشد نه تنها نام کاربری منحصر به فرد، بلکه اعداد منحصر به فرد؟ مخاطبان: آنها می توانستند رمز عبور همان. دیوید مالان: مردم ممکن است از کلمه عبور یکسان، مطمئن. که کاملا می تواند رخ دهد. اما در صورتی که این نام کاربری منحصر به فرد، من استدلال می کنند که واقعا نیست ماده، زیرا اگر آنها خود را تایپ کنید ورود نام کاربری و من فقط نیاز به بررسی خود رمز عبور، آن هش خود را. چرا دیگری؟ مخاطبان: جستجوی سریع تر است. دیوید مالان: جستجوی سریع تر است. چرا؟ مخاطب: ID تنها یکی. دیوید مالان: ID تنها یک شخصیت است، یا به عبارت دقیق تر، آن است که یک عدد، پس از آن احتمالا 32 بیت یا چیزی شبیه به آن. در حالی که نام کاربری، ظاهرا جیسون Hirschhorn تا که مرتب سازی بر اساس وجود دارد مسخره طولانی، و آن را به من را زمان بسیار بیشتری به رشته مقایسه H-R-S-C-H-H-O-R-N، و شاید 0 یا چیزی شبیه به آن /، به منظور فقط برای نگاه کردن به جیسون، به عنوان مخالف گفت: من شماره کاربر دو را. این 32 بیت است. این یک INT واحد که شما باید برای مقایسه ندارید. و در واقع، که دقیقا به همین دلیل پایگاه داده تمایل به اختصاص شناسه منحصر به فرد ردیف در آنها. در حال حاضر چه دیگر انواع داده وجود دارد علاوه بر INT و ظاهرا رشته شبیه به این؟ خوب، مناسب تر، پایگاه های داده SQL، مانند خروجی زیر، زمینه های CHAR. و چهار کمی گمراه کننده یک CHAR تنها نیست. درست است CHAR در یک پایگاه داده MySQL است یک یا چند کاراکتر است، اما آن را تعداد ثابتی از شخصیت های. بنابراین برای مثال، اگر من بیش از رفتن به phpMyAdmin به عنوان شما در حال حاضر ممکن است و یا به زودی مشکل مجموعه هفت، و من به به پایگاه داده ام، و فقط برای تفریح، اجازه دهید به ایجاد یک جدول جدید به نام تست تنها با دو ستون. من پس از آن برو کلیک کنید. و این تبدیل خواهد شد نسبتا آشنا، به خصوص که شما سرهم بندی کردن در اطراف خود تغییر دهید. در اینجا من ممکن است ID تایپ برای ایجاد یک میز جدید از نوع INT. اما در اینجا من ممکن است نام کاربری به نوع از نو خلق که در جدول قبل است. و متوجه من یک دسته کامل از نوع را انتخاب کنید. و این بیش از حد است که چرا از phpMyAdmin نوع خوب. این نوع از خود آموزش است که در آن شما فقط می توانید نوع از نقطه و کلیک کنید، و در منو ها نگاه کنید، و استنباط از که آنچه قدرت های SQL به شما می دهد. و در واقع، اگر من CHAR را انتخاب کنید، سپس مجبور به مشخص کردن طول، و یا چگونه ارزش بسیاری، که چگونه بسیاری از کاراکتر. مقادیر بسیار معمول چیزهایی مانند است 255، اما کمی طولانی است. معمولا هشت برای یک نام کاربری است. اما این کمی کوچک این روزها. بنابراین این تصمیم گیری طراحی شده است. آیا آن را به 8 کاراکتر و حداکثر، 32، 255، 1000؟ این واقعا به شما. اما یک میدان CHAR یک عدد ثابت است. بنابراین انتخاب کنید بیش از حد چند و شما نوع است پیچ اگر شما می خواهید یک نام کاربری دیگر. را انتخاب کنید بیش از حد بسیاری و چه حرکت نزولی؟ یک مدعو: [نامفهوم]. DAVID مالان: این بی فایده است. درست مانند C، اگر شما یک بزرگتر تکه از حافظه از شما نیاز دارید، شما فقط اتلاف وقت و به هدر رفتن فضا. بنابراین به عنوان یک جایگزین، وجود دارد VARCHAR، که با حل این مشکل درمان طول به عنوان یک طول ثابت نیست، اما به عنوان یک حداکثر طول، و با استفاده از تعداد متغیر از کاراکتر، که پس از آن تمایل به استفاده از تنها به عنوان بسیاری از کاراکتر که شما در واقع نیاز دارید. به نظر کامل است. چرا ما را از شر نوع داده ها CHAR؟ چه ممکن است این حرکت نزولی با استفاده از نوع متغیر varchar، که برای تلفن های موبایل مانند آن را به یک پیروزی خوب است؟ آره؟ یک مدعو: [نامفهوم]. DAVID مالان: OK، خوب است. بنابراین اگر تمام اطلاعات خود را در همان است طول، چه نگرانی؟ یک مدعو: از آنجا که شما به هدر رفتن داده ها با گفتن همه آنها را. DAVID مالان: بنابراین اگر تمام اطلاعات خود را است همان طول، هر چند، می خواهم بگویم که تعیین حداکثر طول در VARCHAR است هیچ تفاوتی ندارد تعیین طول ثابت در CHAR اگر شما می دانید که تعداد در پیش است. اما در واقع وجود دارد، و من مرتب از استخراج از آن پاسخ واقعیت که هنوز هم حداکثر وجود دارد، که می تواند آزار دهنده، به خصوص اگر شما نام و نام خانوادگی یک شخص روبرو می شوند که غیر منتظره ای طولانی است که شما نمی پیش بینی. و آن را نیز کمی کمتر کارآمد در واقع در نوع متغیر varchar جستجو به عنوان مخالف کاراکتر جستجو، به خصوص برای جداول طولانی است که تعداد زیادی و مقدار زیادی از داده ها. بنابراین در اینجا بیش از حد، موضوعی است دوباره هیچ چاره ای آشکار است. پس فقط به شما یک حس دیگر را انواع داده هایی را که ممکن است مورد علاقه یا برای-p مجموعه هفت یا در در آینده، این INT وجود دارد. این BIGINT، وجود دارد که مثل این است که طولانی مدت. این گرایش به 64 بیت. به دهدهی، که شما در دیدن وجود دارد مجموعه ای مشکل است که بسیار پاسخ تمیز کننده به مشکلات ما مواجه با شناور و شناور اشاره عدم دقت. و پس از آن DATETIME وجود دارد. به معنای واقعی کلمه یک نوع داده است که وجود دارد به مانند یک سال نگاه کنید، یک ماه، یک روز، و ساعت، دقیقه و ثانیه. اما پایگاه داده SQL نیز چیزهایی که ما را شاخص تماس بگیرید. و شاخص چیزی است که شما می باشد مشخص در هنگام ایجاد جدول به را جستجو و عملیات دیگر کارآمد تر. به طور خاص، چیزی به نام وجود دارد شاخص اولیه که شما می توانید اعلام به شرح زیر است. ما این کار را برای شما با انجام کاربران جدول ما به شما بدهد. اما توجه کنید اگر من دستی بازآفرینی شد جدول کاربران در اینجا دادن آن را به نام از کاربران. من در حال حاضر مشخص شده ID. I INT مشخص شده است. من نام کاربری با تعیین حداکثر 32 حرف می باشد. اما اگر ما را پیمایش در این نسبتا پنجره گسترده، متوجه یک وجود دارد دسته چیزهای دیگر را من می توانید مشخص کنید. یکی، من می تواند ویژگی های مشخص مانند، می دانید، این INT باید UNSIGNED باشد. من اعداد منفی می خواهید نیست، بنابراین اجازه دهید آن را UNSIGNED را. نول است که در اینجا مربوط نیست چرا که من نمی خواهم هر کاربر به یک شماره منحصر به فرد. من نمی خواهم آن را به تهی باشد. اما این جالب است. I توانید مشخص کنید که ID است یا کلید اصلی از این پایگاه داده، یا آن را منحصر به فرد، و یا آن را نمایه، و یا متن کامل. بنابراین برای مقاصد امروز، داستان بلند کوتاه، PRIMARY بدان معنی است که این مورد هر دو مفهومی و فنی درست است که ما منحصر به فرد استفاده شناسایی کاربران. بنابراین، هنگامی که ما نگاه کردن کاربران، این است که مرتب سازی بر از وعده به آنها نگاه کردن عمدتا توسط که شناسه منحصر به فرد. و پایگاه داده تضمین خواهد کرد که اگر شما یک کاربر شماره 3، شما می توانید نیست از لحاظ فیزیکی قرار دادن یک کاربر دیگر با همان شماره 3. پایگاه داده ها فقط رد خواهد کرد تغییرات را ذخیره کنید. که چیز خوبی است، چرا که شما می توانید از خودتان محافظت از خود. خود روش دیگر، برای نام کاربری. بنابراین ردیف دوم، به یاد بیاورید، فیلد نام کاربری است. بنابراین ردیف دوم در اینجا نام کاربری است، همانطور که ما در سمت چپ وجود دارد. پس چه چیز دیگری ممکن است من می خواهم برای مشخص؟ من اجازه ندارم، با توجه به SQL، برای مشخص کردن دو کلید اولیه. شما می توانید یک کلید مشترک که در آن شما را مشخص در هر دو زمینه نگاه کنید، اما آنها نمی توانند به صورت جداگانه کلید اولیه باشد. به طوری که خارج از بحث است. بنابراین که ممکن است من می خواهم به انتخاب می کنید؟ خوب، منحصر به فرد در روح شبیه به یک است کلید اصلی که در آن شما در این مشخص درست است باید منحصر به فرد باشد، اما آن را برای رفتن به یک من استفاده از تمامی هم. و ما قصد داریم به استفاده از این همه زمان به چه دلیلی دوباره؟ این کندتر به طور بالقوه اگر آن یک نام کاربری طولانی است. این یک اتلاف وقت فقط. INDEX، در عین حال، مشخص است که آن را برای رفتن به منحصر به فرد، اما من می خواهم شما را به کار سحر و جادو خود را در زیر هود به آن را سریع تر برای من جستجو در این زمینه. پس این احتمالا مربوط نیست در اینجا. برای نام کاربری، من می خواهم استدلال می کنند که UNIQUE پاسخ خوب است. اما فرض کنید که ما کاربران ساخته شده است تر جالب از نام های کاربری، رشته هش را، و شماره ID. چه می شود اگر ما اسم کامل به مردم؟ چه می شود اگر ما به آنها آدرس داد و اطلاعات دیگر در مورد آنها؟ خوب، اگر شما مشخص است که یک ستون در پایگاه داده نمایه شده است، که بدان معنی است که خروجی زیر و یا اوراکل، و یا هر پایگاه داده شما با استفاده از، باید سحر و جادو خود کار و استفاده از برخی از نوع داده های فانتزی ساختار مانند یک درخت و یا یک درخت پیشوندی، یا جدول هش، و یا چیزی برای تضمین که زمانی که شما برای اطلاعات با استفاده از جستجو را انتخاب کنید که در آن زمینه خاص - مانند هر کس به من نشان می دهد که زندگی در خیابان آکسفورد. پرس و جو که می خواهم. اگر شما در پیش مشخص شده است که شما می خواهید یک شاخص در این زمینه، جستجو بسیار خواهد بود، بسیار سریعتر. اگر شما یک شاخص، بهترین مشخص نیست شما می توانید یک جستجوی خطی اگر آن طبقه بندی شده اند نیست. اما اگر شما INDEX، هوشمند مشخص افرادی که پایگاه داده ساخته شده است - افرادی مانند شما که در حال حاضر می دانیم درختان و تلاش می کند و جداول هش - به طور خودکار ساخت چنین اطلاعات ساختار در RAM مطمئن شوید که کسانی که جستجو می کنید بسیار سریعتر. FULLTEXT در عین حال در روح شبیه است، اما اجازه می دهد تا شما را به انجام کلمات جستجو، مثل من همه نشان می دهد که زندگی در خیابان ها که با شروع حرف O به هر دلیلی. شما می توانید جستجو کلمات انجام مانند آن. یا چیز قانع کننده تر مانند نشان می دهد من هر کسی که دارای کلمه - هر کس که نام شروع می شود به من نشان بده با یک حرف خاص. شما می توانید برای کلمات کلیدی جستجو در این راه. بسیار خوب. بنابراین، فرصت های طراحی وجود دارد به طور بالقوه. دیگران وجود دارد که من موج تو دست من در. به نظر می رسد که شما می توانید موتور ذخیره سازی متفاوت است. و این است که پیچیده تر از ما نیاز قطعا برای مشکل مجموعه هفت. به طور پیش فرض، شما بچه ها با استفاده از چیزی به نام INNODB. شما اشاره ای به این در جایی ببینید رابط از phpMyAdmin به احتمال زیاد. اما می دانیم که طراحی دیگر وجود دارد تصمیماتی که بالقوه می باشد علاقه آمده پروژه های نهایی اگر شما چیزی مبتنی بر وب. اما اجازه دهید این کار را. اجازه دهید به جلو قرار داده و این در صفحه نمایش به عنوان یک تیزر برای یک داستان مربوط به شما، هم اتاقی، و یک لیوان شیر. اجازه دهید یک دقیقه دو را و یا بنابراین در اینجا شکستن. و اگر شما می توانید در اطراف چوب، اجازه دهید به دست می آید برگشت، نگاه کنید کمی بیشتر در SQL، و پس از آن یک بیت از جاوا اسکریپت با -p مجموعه هشت در ذهن داشته باشند. بسیار خوب. بنابراین، اجازه دهید شما را به فکر کردن در مورد یک مورد گوشه ای است که به راحتی می تواند بوجود می آیند در متن با استفاده از یک پایگاه داده، یا رک و پوست کنده، حتی با استفاده از چیزهای دنیای واقعی مانند دستگاههای خودپرداز برای دریافت پول است. بنابراین در اینجا یک یخچال است. فرض کنید که شما بیش از حد در که داری خوابگاه خود و یا خانه خود را. و شما یک هم اتاقی، و هر دو رو شما واقعا دوست دارم شیر به عنوان مثال. بنابراین شما به خانه یک روز آمده از کلاس. او هنوز نمی. شما برای باز کردن در یخچال. شما واقعا می خواهید یک لیوان بزرگ شیر. هیچ شیر وجود دارد. پس چه باید بکنید؟ به شما نزدیک یخچال. شما کلیدهای خود را گرفتن. شما رفتن به خارج از مربع است. و شما در خط در CVS دریافت در آن همه چیز از خود پرداخت، که همیشه را بیش از واقع داشتن صندوق داران. به هر حال. بنابراین پس از آن، در عین حال، نقطه نقطه نقطه، خود را هم اتاقی به خانه می آید و او به طور مشابه یک اشتیاق برای برخی از شیر است. بنابراین او باز یخچال، به نظر می رسد در داخل، و آه، لعنتی. بدون شیر است. پس او سر از، اتفاق می افتد به به CVS دیگر، که تنها بود جلوگیری از دور به دلایلی، و او و یا او در خط می شود برای خرید برخی از شیر است. در همین حال، شما به خانه، او و یا او به خانه می آید، و چه شما در نهایت باید؟ شیر دو برابر. اما شما واقعا نمی خواهم شیر که بسیار. بنابراین در حال حاضر شما باید شیر بسیار که در حال حاضر یکی از آنها فقط رفتن به ترش در نهایت. بنابراین این یک مشکل واقعا بد است. درست است؟ پس چه اتفاقی افتاده است؟ بنابراین اساسا، این نوع است یک مثال مسخره است. اما در زیر کاپوت، آنچه که ما تا به حال اتفاق می افتد در اینجا این است که هر دو از شما بررسی می شود دولت از برخی از قطعه ای از حافظه، یخچال و فریزر. هر دو از شما چک دولت برخی از متغیر. شما هر دو یک نتیجه گیری به خود جلب کرد که شما پس از عمل در. اما متاسفانه، در حالی که هم اتاقی خود را در فروشگاه بود، دولت از آن متغیر تغییر، او آمد و در حال حاضر می خواهد به تغییر دولت است، اما آن را در حال حاضر تغییر کرده است در او و یا او. و البته، او نمی خواهد که رفته به فروشگاه اگر آنها می دانستند که شما در حال حاضر در مسیر بودند. بنابراین در دنیای واقعی، چگونه می تواند شما اجتناب از این مشکل، فرض کنید شما یخچال، شما یک هم اتاقی، و شما در واقع شیر را دوست دارم؟ یک مدعو: برقراری ارتباط. دیوید مالان: ارتباط. OK را بزنید. اما چگونه ممکن است شما ارتباط برقرار؟ حضار: ترک توجه داشته باشید. دیوید مالان: مرخصی توجه داشته باشید، درست است؟ همیشه توجه داشته باشید ترک، طرفداران نشان می دهد. همه حق است، پس همیشه ترک توجه داشته باشید، یا قرار دادن واقعا مثل یک قفل و یا چیزی در یخچال نگه می دارد که خود را هم اتاقی از بازرسی دولت که متغیر است. در حال حاضر، به همین دلیل ممکن است این باشد وابسته به مجموعه مشکل هفت، و یا به دستگاههای خودپرداز. خب، تصور کنید یک جهان در یک دستگاه خودپرداز که در آن شما ممکن است قادر به بالا رفتن به یک دستگاه خودپرداز ماشین در اینجا، و یکی دیگر از دستگاه های خودپرداز در اینجا. و این اغلب اتفاق می افتد. و فرض کنید شما تا به حال دو کارت ATM، که ممکن است برای به دست آوردن. و شما را به هر دو دستگاه وارد بخش مدیریت شوید، به طور موثر به طور همزمان، امیدوارم در حالی که هیچ کس به دنبال. و سپس شما را در PIN خود را تایپ کنید تقریبا به طور همزمان. و سپس شما انجام پرس و جو تعادل برای دیدن چقدر پول نقد شما. و اجازه دهید می گویند شما باید 100 دلار در حساب خود باقی مانده است. بنابراین اساسا به طور همزمان، شما می گویند یک، صفر، صفر، را وارد کنید. و امیدوارم شما به عقب بر گردیم مقداری پول. اما چقدر پول ممکن است شما را به عقب بر گردیم؟ در حال حاضر کامپیوتر در پایان روز، به خصوص اگر آنها در حال صحبت کردن سرورها، لزوما انجام کارهای را ندارید در نظم است که انتظار می رود. بنابراین فرض کنید که چه چیزی اتفاق می افتد، به دلیل مسائل هر چه سرعت شبکه وجود دارد هستند، و یا مسائل مربوط به CPU وجود دارد، یا هر چیزی شبیه به آن، فرض کنید که اولین دستگاه خودپرداز چک تعادل و خود را می بیند، آه، این شخص 100 دلار. اما پس از آن منحرف می شود چرا که شاید یک نسخه پشتیبان تهیه می باشد اتفاق می افتد و پس از آن کم کردن سرعت. یا شاید در حالی که چک کردن، شبکه ارتباط کمی کندتر است، چرا که با این فقط اتفاق می افتد. آنها دستگاه های فیزیکی هستیم. بنابراین در عین حال، دستگاه های خودپرداز دوم پرسیدن همین سوال. چقدر پول دیوید می کند؟ 100 دلار پاسخ است. اما از آنجا که اولین دستگاه های خودپرداز هنوز رتبهدهی نشده است ارسال پیام تفریق 100 دلار، هر دو دستگاههای خودپرداز بازرسی طاق بانک، دیدن 100 دلار وجود دارد، و در حال حاضر هر دو ماشین به طور بالقوه می باشد رفتن به تف جواب. در حال حاضر، این فوق العاده است برای شما می باشد در برخی از حس اگر چه بانک می کند در نهایت تغییر مقدار به منهای 100 تنظیم مقدار متغیر برابر خود را به حساب بانکی برابر با 0 است، به عنوان مخالف به انجام منهای 100. در حال حاضر در بدترین حالت برای بانک - یا در بهترین راه حل برای این بانک، در عین حال، آنها به شما 200 دلار بدهد، و حساب بانکی خود را در حال حاضر نشان می دهد منفی 100 دلار، که واقعا نمی در همه به نفع شما. اما نکته این است که این مسابقه شرایط برای گرفتن دو هم اتاقی شیر، یا برای دو نفر تلاش دستگاههای خودپرداز برای دریافت پول نقد و تغییر حالت از یک طاق در همان زمان وجود دارد هر زمانی که شما یک پایگاه داده. در حال حاضر در مجموعه مشکل هفت، این موضوع ناشی می شود به این معنا که اگر شما خرید سهم از سهام فیس بوک، و سپس برای به عنوان مثال شما خرید یک سهم دوم سهام فیس بوک، شما نیاز به ایجاد تصمیم گیری به عنوان برنامه نویس. به منظور تصمیم می گیرید که چگونه برای به روز رسانی پایگاه داده، شانس شما در حال رفتن به یک ردیف برای آن سهام، و این یک راه برای پیاده سازی آن است. و شما در حال رفتن به یک سهم از FB، که خود سهام نماد دارای صدای تیک تیک برای ورود نام کاربری و یا این کاربر ID، شناسه منحصر به فرد است. اما همان مطلب را می توانید در اینجا اتفاق می افتد. اگر شما یک SELECT در SQL، همانطور که شما خواهید دید در مشکل مجموعه هفت زمانی که می بینید، آه، دیوید یک سهم از سهام فیس بوک است. اجازه دهید من در حال حاضر این تغییر به دو سهام، زیرا او می خواهد برای خرید سهم دوم. اما فرض کنید دیوید در واقع دو نفر مرورگر پنجره های باز، یا فرض کنید که این یک حساب مشترک با دو زن و شوهر، و هر دو آنها را در حال تلاش برای انجام عملیات مشابه، وجود دارد، بیش از حد، پتانسیل برای تصمیم گیری به وجود دارد بر اساس قبلی ساخته شده است دولت جهان - حساب دارای یک سهم - و هر دو نفر، یا هر دو سرویس دهنده ها، در حال حاضر سعی کنید به گفتن افزایش آن را به دو سهم. اما در این مورد، شما ممکن است به اتهام من پول برای هر دو سهام، اما افزایش می یابد که فقط یک بار. بنابراین در کوتاه مدت، مشکل اساسی در اینجا، با شوخی در مورد ترک توجه داشته باشید، و یا قرار دادن قفل بر روی آن است، اگر دو نفر، یا دو موضوعات - فکر می کنم به خراش - می تواند دولت برخی از متغیر بازرسی و سپس سعی کنید به تغییر که متغیر، اما آن دو چیز اتفاق نمی افتد همان زمان، اما می توانید قطع با چیزهای دیگر اتفاق می افتد، داده ها می تواند به دولت بسیار عجیب و غریب دریافت کنید. و شما می توانید بهره مند شوند و یا شما می توانید رنج می برند در این معنا به عنوان مثال پول. بنابراین در مجموعه ای مشکل هفت، ما به شما این یک خط کد، که مدتها داستان کوتاه، حل این مشکل در MySQL. این آموزش بسیار طولانی است که نمی حتی بر روی یک خط در جا صفحه نمایش در اینجا تضمین می کند که عملیات خود را این است آنچه اتمی نامیده می شود. این همه در یک بار اتفاق می افتد، یا آن اصلا اتفاق نمی افتد. این عبارت خیلی طولانی نمی تواند دریافت تا حدی قطع شده است. و چه چیزهایی است که به معنای واقعی کلمه آنچه در آن می گوید. قرار دادن به برخی از جدول زیر سه حوزه کسانی که ارزش های خاص، اما در کلید های تکراری، درج نمی کنند. آیا به روز رسانی. پس این است که مانند انجام یک انتخاب و درج به طوری که در همان زمان صحبت می کنند. و آنچه کلیدی است که احتمالا مراجعه به اینجا؟ به نظر می رسد، و شما این را ببینید مشکل در تنظیم تنظیمات هفت، زیرا ما اعلام کرده ایم به یک کلید منحصر به فرد در این جدول خاص به طوری که شما می توانید ردیف های مختلف ندارد برای همان کاربر با همان پنی نماد سهام - در این مثال در اینجا، DVN.V سهام پنی احمقانه است که ما در تنظیمات مراجعه کنید. از آنجا که ما اعلام کرده ایم آن را به صورت منحصر به فرد، این بدان معنی است که اگر شما سعی کنید برای قرار دادن یک ردیف تکراری، شما به جای رفتن به آن را بروز رسانی بدون هر کس دیگری با یک شانس برای تغییر دولت جهان یا. بنابراین در کوتاه مدت، این تضمین چیزهای اتمی هستند. به طور کلی هر چند، پایگاه های داده هایی همچون MySQL - و شما این ویژگی را برای نیاز ندارد P-مجموعه هفت، اما نگه داشتن آن را در ذهن آینده - حمایت از معاملات به نام چه هستند، که در آن شما می توانید می گویند START TRANSACTION به معنای واقعی کلمه. بعد از آن شما می توانید اجرا دو بیانیه SQL. و بیانیه SQL، شما خواهید دید در P-مجموعه هفت، به نظر می رسد کمی چیزی شبیه به این. بروز یک جدول به نام حساب. تنظیم ستون تعادل برابر به هر ستون تعادل در حال حاضر منهای 1،000 که در آن تعداد، شماره حساب، مانند شناسه کاربر، برابر 2، و پس از آن به روز رسانی حساب نقطه نقطه نقطه. بنابراین در شرایط خارج از حرفه یا فن خاصی است، چه این دو نمایش داده شد به نظر می رسد در انجام می شود حس دنیای واقعی بانکی است؟ مخاطبان: انتقال به پس انداز. دیوید مالان: دقیقا. انتقال وجوه از یک حساب به دیگری. و این یک مثال دیگر است که در آن شما واقعا می خواهید این دو چیز اتفاق می افتد یا اتفاق نمی افتد. شما چیزی در می خواهم وسط آنها و به طور بالقوه ظروف سرباز یا مسافر تا ریاضی و یا ظروف سرباز یا مسافر تا چقدر پول دارید، و یا چه مقدار پول بانک. پس چه چیزی واقعا در مورد معاملات خوب در MySQL است که و پایگاه داده به طور کلی، این است که آنها و افراد هوشمند که اجرا کرده ام این ویژگی کشف کردن چگونه مطمئن شوید که هر دو از کسانی که همه چیز اتفاق می افتد و یا در همه چیز نیست. و اگر شما واقعا مشتاق را به یک وب سایت است که توسط مردم در مورد استفاده قرار می گیرد پردیس، مردم در دنیای واقعی، انجام چیزی در حس راه اندازی، این نوع از تصمیمات طراحی است که تبدیل شدن بسیار مهم است. در غیر این صورت، شما شروع به از دست دادن داده ها، از دست دادن کاربران، و یا در بدترین حالت به عنوان ما در اینجا دیده می شود، به طور بالقوه از دست دادن پول. تا دوباره، بیشتر در مورد آن در مشکل هفت، و همچنین شاید برای برخی از شما را در پروژه نهایی. بنابراین تغییر آن تصویر ما تا به حال اجازه یک لحظه پیش فقط در یک راه بیشتر است. بنابراین اجازه دهید در واقع من اگر من می توانید ببینید - جواب منفی، که رفته است. وجود دارد آن است. بنابراین این جایی است که ما در زمان گذشته را ترک کرد. و معلوم است که ما قصد داریم به بازی شیر یا خط یک چیز بیشتر به ترکیبی در اینجا - یک زبان به نام جاوا اسکریپت. بنابراین جاوا اسکریپت در واقع متناسب با به این قطعه - و من کاملا ترک اتاق به اندازه کافی، پس از این است که در حال حاضر نه به مقیاس. خوب، این است که واقعا احساساتی است. خوب، به طوری که جاوا اسکریپت است. بسیار خوب. من واقعا آن را زیانی انجام می دهند. بسیار خوب. بنابراین برنامه نویسی جاوا اسکریپت دیگری است زبان، و ما گذشته، اگر که کمک می کند تا اطمینان دهد که خیلی بیشتر وجود ندارد شیرهای آتش نشانی در اینجا. جاوا اسکریپت نیز تفسیر زبان، که به معنی شما نمی کنند کامپایل آن را به صفر و آنهایی که. شما فقط آن را اجرا کنید. اما آنچه اساسا با متفاوت جاوا اسکریپت معمولا این است که شما آن را بر روی وب سرور خود اجرا کنید. این کار در اجرا نمی لوازم خانگی فی نفسه. در عوض، آن می شود توسط یک کاربر دریافت کنید از طریق HTTP به مرورگر خود را - کروم، سافاری، اینترنت اکسپلورر، فایرفاکس، هر - و این مرورگر است که اجرا این زبان برنامه نویسی خاص. بنابراین برای روشن، پی اچ پی تا کنون بوده است یا در خط فرمان اجرا سیاه و سفید پنجره، بر روی یک سرور مانند لوازم خانگی، کامپیوتر مانند لوازم خانگی، یا آن بوده است اجرا شده توسط وب سرور در حال اجرا بر روی یک کامپیوتر. اما موضوع در اینجا این است که پی اچ پی تا کنون اعدام شده در سمت سرور است، بنابراین کاربر و مرورگر کاربر هرگز یک خط کد پی اچ پی می بیند. در واقع، اگر شما تا به حال یک مرورگر برای باز کردن وب سایت خود و یا دیگر و شما در واقع کد پی اچ پی در پنجره خود را، کسی تا به پیچ. از آنجا که آن را به معنای مستقیما به مرورگر فرستاده می شود. را که قرار است اجرا شود و تبدیل به چیزی شبیه به HTML است. اما جاوا اسکریپت است که اساسا مخالف است. این به معنای به طور معمول در داخل اجرا از پنجره مرورگر کاربر. و چه نوع از وب سایت ها با استفاده از جاوا اسکریپت پس از آن این روزها؟ دوست به معنای واقعی کلمه در هر وب سایت محبوب. هر وب سایت است که شما احتمالا استفاده روزانه استفاده از جاوا اسکریپت برای ساده ترین و حتی سکسی امکانات. بنابراین چیزی شبیه به فیس بوک چت اگر شما استفاده از آن. چگونه است که در واقع کار می کند؟ خوب تا کنون، تمام این مسائل ایم انجام شده با HTML و PHP فرض می شود که شما را بکشد تا یک URL، و به شما ضربه وارد کنید، و شما برخی از محتوای HTML را ببینید. و پیوند، که تغییرات کلیک کنید URL، تغییر صفحه، و بارگذاری مجدد برخی از مطالب جدید. با کلیک بر روی URL و یا تسلیم یک فرم، شما رسیدن به یک صفحه دیگر و whisked شما برخی از مطالب جدید را ببینید. اما با استفاده از چیزی شبیه به فیس بوک چت، و یا Gchat، و یا نقشه های گوگل، به ندرت تمام صفحه تازه کردن به طوری که شما می بینید یک صفحه سفید لحظه ای و سپس محتوای جدید. در عوض، صفحات وب امروز به صورت پویا به روز دوباره و همه نوع دوباره و دوباره از پشت صحنه. و معلوم است که هنگامی که شما به چیزی شبیه به فیس بوک، و یا Gchat، و یا جی میل، و به روز رسانی صفحه به صورت خودکار بدون بارگذاری مجدد کل صفحه نمایش، آنچه اتفاق افتاده، این است که مرورگر شما ساخته شده است نوع مخفیانه درخواست HTTP اضافی - نه برای صفحات وب تمام است، اما فقط برای تکه های کوچک داده، مثل پیغام از طریق مسنجر است که دوستان خود را فقط شما، یا به روز رسانی وضعیت ارسال می شود که کسی که فقط شما و یا صدای جیر جیر ارسال که کسی فقط ارسال می شود. شما تنها درخواست کمی برای داده، و پس از آن با استفاده از جاوا اسکریپت، این زبان های برنامه نویسی، برای تغییر آنچه صفحه وب به نظر می رسد بدون سرور کمک می کند، بدون سرور تولید که HTML. بنابراین در کوتاه مدت، جاوا اسکریپت می تواند مورد استفاده قرار گیرد و سپس نه تنها واکشی داده های جدید را از سرور بدون بارگذاری مجدد کل صفحه و یا ارسال فرم. همچنین می تواند به تغییر استفاده می شود DOM به اصطلاح - مدل شیء سند - که تنها راه را برای علاقه داشتن است گفت: درخت HTML که ما آخرین بار دیدم. بنابراین برای اطمینان بخشیدن به، جاوا اسکریپت است نحوی خیلی شبیه به C نیز هست. هیچ تابع اصلی وجود دارد. شما فقط شروع به نوشتن کد و آن را اجرا کنید، و یا بیشتر به درستی تفسیر شده است. شرایط شبیه به این خواهد. بدون مختلف از C و یا PHP که برای ماده. عبارات بولی یا اد با هم شبیه این خواهد شد. Anded با هم شبیه به این. سوئیچ خواهد شد شبیه به این. برای حلقه شبیه به این خواهد. در حالی که حلقه ها را شبیه به این. آیا در حالی که حلقه ها را شبیه به این. این جدید است. بنابراین جاوا اسکریپت دارای یک حلقه foreach نمی ساخت فی نفسه است، اما این ساختار برای متغیر i در آرایه، و من در این مورد ارزش شاخص می شود. پس از آن کمی متفاوت از آن حلقه foreach، هر چند نسخه های جدید جاوا اسکریپت بیرون می آید در همه زمان ها، بنابراین حتی این ویژگی های زبان در حال تحول. و به عنوان یک کنار، جاوا اسکریپت این روزها همچنین می تواند بر روی یک سرور درست مثل استفاده PHP با استفاده از یک چارچوب به نام Node.js. یکی از TFS CS50 را، کوین، باعث شده است که سمینار Node.js که در دسترس در cs50.net/seminars. بنابراین اگر شما کنجکاو هستید، می دانم که شما می توانید این در سمت سرور به عنوان استفاده از خوب، اما این روند نسبتا جدید است، اما یکی از قدرتمند در آن. این است که کمی متفاوت است. این یک آرایه در جاوا اسکریپت می باشد. و چه برخورد شما به عنوان های مختلف در مقابل C یا PHP؟ چند داستان سریع وجود دارد ما در اینجا می توانید بگویید. چه در مقابل PHP از دست رفته؟ یک مدعو: [نامفهوم]. DAVID مالان: بله؟ با عرض پوزش، دوباره می گویند؟ یک مدعو: اعلام نشده نوع متغیر. DAVID مالان: ما اعلام نشده نوع متغیر. پس در واقع کاملا مانند PHP، ما نه مشخص کردن نوع این متغیر. در عوض، ما عام تر است گفت ور برای متغیر. ما مزاحمت PHP از ندارد علامت دلار، که در حالی که خسته کننده به نوع، باعث روشن تر است که چیزی یک متغیر است. در حالی که در اینجا، ما به نوعی بازگشت به هستی روش C را با فقط تماس متغیر به نام ما می خواهیم به آن را، مانند اعداد. و نیز مانند PHP، ما براکت برای ارزش ها در داخل است که آرایه. بنابراین متغیرها در جاوا اسکریپت هم ممکن است شبیه به این. توجه در اینجا این است که یک رشته به نام است، اما به طور مشابه دارند ما مشخص نشده است که آن را به یک رشته است. در اینجا هر چند یکی از ویژگی های است که می کند نمی باشد. در دقیقا به همان شیوه در PHP وجود داشته باشد، اما کمی به همین ترتیب. این یک شی در جاوا اسکریپت می باشد. و اشیاء نوع ارتش سوئیس چاقو از یک ساختار اطلاعات در آن شما می توانید آنها را برای هر تعداد از چیزها استفاده کنید. در اینجا، به عنوان مثال، ما اعلام یک متغیر به نام اعلان. نوع متغیر یک شی است. شما می توانید از این به عنوان یک ساختار C فکر می کنم است که کلید ها و ارزش ها. نماد یک کلید است. FB ارزش است، ظاهرا نماد سهام. کاما. قیمت کلید دیگر است، و ارزش آن است ظاهرا نقطه شناور، و یا یک تعداد به طور کلی در جاوا اسکریپت، از $ 49.26. بنابراین PHP اختصاص ندارد - ما در اشیاء PHP دیده می شود نه کاملا مثل این، اما ما دیدن آنالوگ، که چی بود؟ یک مدعو: [نامفهوم]. DAVID مالان: آرایه های انجمنی. بنابراین در حالی که PHP است آرایه های انجمنی که سینتکس است همیشه کمی تا مختلف - ما براکت دیدم. ما از نمادهای فلش عجیب و غریب دیدم. جاوا اسکریپت است اشیاء، اما این بیشتر تفاوت معنایی و مترادف های مختلف در حال حاضر. با این حال، به عنوان یک کنار، PHP همچنین دارای اشیاء در راه است که جاوا و دیگر زبان اشیاء در برنامه نویسی شی گرا. اما ما به این استفاده کنید برای انواع داده در حال حاضر. اشیاء و آرایه های انجمنی. این یکی ممکن است آن را کمی روشن تر است. در اینجا به همین دلیل یک شی مفید است. هنگامی که شما می خواهید به اعلام یک دانش آموز، مانند Zamyla، ما در واقع می تواند در محفظهای قرار دادن تا به داخل آن صحبت می کنند شی با استفاده از کروشه درست مثل قبل از یک دسته کامل از کلیدهای و ارزش ها در اینجا. ما یک ID، یک خانه و یک نام برای Zamyla، به دنبال یک نقطه و ویرگول به عنوان معمول در پایان. در اینجا بیش از حد، این است که کمی مختلف، بلکه بسیار قدرتمند این روزها. در اینجا یک آرایه است، و من می دانم که به دلیل یک براکت وجود دارد بالا و براکت در پایین. و این مجموعه ای از آنچه داده است ظاهرا از نوع در جاوا اسکریپت؟ این مجموعه ای از آن به نظر می رسد مانند سه اشیاء. و من می دانم آن است که یک شی تنها به دلیل آکولاد. و متوجه آکولاد باز وجود دارد، برخی از مسائل، نزدیک آکولاد، کاما، پس از آن برخی، کاما، و سپس برخی بیشتر. به طوری که سه آرگومان از هم جدا شده توسط دو کاما. بنابراین این مجموعه ای از سه اشیاء است. و هر یک از کسانی که اشیاء به نظر می رسد یک دانش آموز یا عضو هیات برخی مرتب کردن، هر کدام با یک ID، خانه، و نام. اما من از این چیزی به نام ام به نام JSON - جاوا اسکریپت شی علامت گذاری. و این یک قالب داده است که در واقع بسیار محبوب و در رواج این روزها که اگر شما بنویسید برنامه ای که با استفاده از فیس بوک API، API توییتر، واقعا تقریبا هر API این روزها خارج وجود دارد، از جمله برخی از CS50، اطلاعات شما به عقب بر گردیم در فرمت CSV مدرسه قدیمی. از آنجا که به یاد می آورند که CSV ساده فوق العاده است. این فقط ستون ها از هم جدا توسط کاما. داده های JSON به شما می دهد ابرداده بیشتر است. این همکاران یک کلید با هر مقدار تا آنها لازم نیست که به فرض که ستون صفر یک مقدار، ستون یکی دیگر، ستون دو دیگر است. همه چیز در یک شی JSON در اینجا مرتب سازی بر از خود توصیف، زیرا هر یکی از اسامی در این فایل به معنای واقعی کلمه نام در مقابل آن را به عنوان به نقل از رشته است. خب بیایید یک نگاهی به اجازه چند نمونه در اینجا. اجازه بدهید من به دستگاه. و اجازه دهید مرا به vhost ما دایرکتوری را به عموم مردم. و اجازه دهید من به جاوا اسکریپت دایرکتوری. و اجازه دهید به جلو و باز کردن DOM-0.html، که در آن DOM حالت فقط بدان معناست سند مدل شیء. این چیزهای درخت که من به آن اشاره پیش از آن. و اجازه دهید من به شرح زیر پیشنهاد. در اینجا یک صفحه وب است که بدن خیلی ساده است. بنابراین در اینجا در پایین، متوجه من یک فرم. ما دیده ایم کسانی که قبل از. این دارای دو ورودی، یکی از آنها ID نام، که یکی از آنها یک نوع از ارسال، و برای اولین بار نوع متن است. بنابراین این در واقع برای تلفن های موبایل بسیار ساده است. اجازه دهید در اینجا بروید. اجازه بازگشت به این صفحه اینجا. بیایید رفتن به localhost را، و رفتن به دایرکتوری جاوا اسکریپت ما و به DOM-0، و در اینجا ما باید این فرم. به طوری که ظاهرا تمام این صفحه می کند. این نام یک میدان با یک کلید ثبت کردن. اما من قصد ندارم به استفاده از پی اچ پی در اینجا. من قصد دارم به انجام همه چیز را سمت سرویس گیرنده به طوری که در جاوا اسکریپت به شرح زیر است صحبت می کنند. توجه داشته باشید که من در واقع با توجه به نام زمینه این ورودی منحصر به فرد شناسه، که واقع خواهد شد کن (Wake me up) مرا بیدار کن برخی از زمان در یک لحظه. و متوجه من تگ دیگری معرفی کرده ام در سر صفحه وب من،  برچسب. پس از آن در این معنا که جاوا اسکریپت یک زبان برنامه نویسی سمت سرویس گیرنده است. در این مورد، درست مثل CSS، من را به آن را مستقیما داخل HTML من. اما متوجه من اعلام کرده ام یک تابع است که به نظر می رسد کمی مانند پی اچ پی نحوی، اما این است که در واقع جاوا اسکریپت، چرا که دوباره آن را سمت سرویس گیرنده در مرورگر. و حدس بزنید چه این است که رفتن به انجام دهید، حتی اگر برخی از نحو در اینجا جدید است. مخاطب: بگو سلام به هر کس. دیوید مالان: این رفتن برای گفتن سلام به هر کس از این صفحه داشته است. پس چگونه؟ بنابراین اطلاع قبلی، معلوم می شود در جاوا اسکریپت هشدار یک تابع () وجود دارد. این یک نوع بسیار از تابع غم انگیز است که واقعا فقط تمایل به آزار کاربران. این یکی نیست که شما واقعا باید از آن استفاده به طور معمول، اما آن را سریع و کثیف راه مرتب کردن بر اساس چیزی چاپ کاربر گرافیکی رابط کاربری، به مانند یک مرورگر است. توجه کنید که در اینجا من یک رشته در نقل قول تکی. به نظر می رسد که بر خلاف C، JavaScript در مرورگر شما در واقع می تواند به شما استفاده از تنها به نقل از، و رک و پوست کنده آن را فقط مهربان از کنوانسیون سبک در میان برنامه نویسان جاوا اسکریپت تک کتیشن استفاده کنیم. پی اچ پی، آنها در واقع کمی معنی متفاوت است. اما در حال حاضر، فقط می دانم که که تنها دلیل است. کنوانسیون در جاوا اسکریپت است که اغلب تک کتیشن استفاده کنیم، اما ما می تواند استفاده به نقل از دو برابر در هر دو مکان نیز هست. بنابراین این جالب است. به یاد بیاورید آخرین باری که ما این بود که تصویر بر روی صفحه نمایش که یک درخت را به خود جلب کرد که در آن شما گره HTML و گره سر و گره های بدن، و سپس برخی از متن. اما یک گره خاص در وجود دارد بسیار بالا که من به نام سند. خوب، آن را معلوم در جاوا اسکریپت، هر زمانی که شما نوشتن یک برنامه در جاوا اسکریپت در مرورگر شما، دسترسی به شما یک متغیر خاص جهانی است. مشابه در روح به superglobals پی اچ پی، این یکی به نام تمام سند حروف کوچک. آن را مانند یک ساختار است، اما این ساختار همچنین دارای توابع در داخل آن است. بنابراین ساختار C فقط داده ها به طور معمول. اما یک شی جاوا اسکریپت را به عنوان این به لحاظ فنی نیز دارای توابع، در غیر این صورت به عنوان روش های شناخته شده، در داخل آن است. و شما می توانید یک تابع در داخل تماس بگیرید این شیء کاملا به معنای واقعی کلمه انجام آن نام، نقطه، و پس از آن به نام تابع، و یا دوباره روش. این فقط یک مترادف است، واقعا. و چه این تابع انجام دهید؟ شما می توانید نوع حدس می زنم از نام آن. دریافت عنصر توسط ID. پس این است که رفتن به صفحه جستجو وب، جستجو آن درخت، به دنبال هر گره، عنصر AKA، شناسه منحصر به فرد از اعلان نام نقل قول را تمام کردن. و پس از آن چه من می خواهم کاری انجام دهید؟ من قصد دارم برای بدست آوردن مقدار داخل که گره در درخت، و من قصد دارم به نحوی سلام گفتن به نام. بنابراین یک حدس را، حتی اگر ما را نمی گرفتم مشاهده این حال، چه به علاوه کاراکتر در اینجا و اینجا احتمالا چیست؟ رسید الحاق. DAVID مالان: الحاق. راست، و این ها فقط مرتب کردن بر اساس تصمیم گیری های طراحی مردم سال پیش ساخته شده است. در PHP، شما الحاق همه چیز با نقطه. در C، شما را از طریق چند hoops پرش و توابع مانند strcopy () و یا تماس بگیرید strcat () و یا دیگری مانند توابع. اما در جاوا اسکریپت، شما با استفاده از علامت +. پس این است که فقط الحاق سه رشته - سلام، نام، و پس از آن به علامت تعجب. بنابراین، هنگامی که و به همین دلیل این تابع این است به نام چند؟ خب، یک حدس از HTML در پایین. چرا خوش آمد می گوید است () نامیده می شود، و یا زمانی که؟ ظاهرا، به عنوان بهترین من می توانم بگویم، در ارسال کنید، در زمانی که این فرم است را مشاهده کنید، من قصد دارم به انجام هر کاری است در داخل این نقل قول ها. و به طور خاص، من قصد دارم به تماس خوش آمد می گوید () و سپس بازگشت نادرست است. خوب، اجازه دهید ببینیم که چه چیزی خالص اثر در اینجا این است اول است. بنابراین، اجازه دهید پیش بروید و نوع در، می گویند، لورن، ثبت کردن. خوش لورن. بیایید ببینیم که اگر شاید این تنها بود پیاده سازی خوش شانس. نه. پس از آن به تایپ کردن از هر نام من در واقع می شود وجود دارد. اما توجه کنید که چه چیزی در حال تغییر است. URL هنوز DOM-0.html. هیچ register.php وجود دارد. هیچ فایل دوم وجود دارد. هیچ صفت وجود دارد. پس چه این غلط بازگشت است احتمالا انجام می دهند؟ چرا من خواستار خوش آمد می گوید () و پس از آن بازگشت کاذب احتمالا؟ چه به طور معمول هنگامی که شما کلیک کنید اتفاق می افتد ثبت کردن بر روی یک فرم است که حتی ما در هفته گذشته دیده می شود؟ یک مدعو: [نامفهوم]. DAVID مالان: این در جایی می رود، درست است؟ آن را به برخی URL مقصد می رود. اما من نمی خواهم که در اینجا اتفاق می افتد. من می خواهم صفحه وب خود را به طور کامل می شود پویا مانند جیمیل، که در آن یک بار شما وجود دارد، شما در آنجا بمانند. URL در راه است که تغییر نمی کند نشان می دهد که تمام صفحه می باشد مجدد. در عوض، من فقط می خواهم به تغییر چیزی مانند چاپ کردن چیزی در اینجا بر روی صفحه نمایش. خوب اجازه دهید من این تمیز تا کمی. اجازه بدهید من باز نمی DOM-0، اما به من اجازه باز کردن DOM-2. فقط این کار شما را دیده ام برخی از نحو در اینجا. به نظر می رسد که آنچه که ما فقط را با استفاده از جاوا اسکریپت خام. بنابراین این واقعا زبان جاوا اسکریپت. برخی از شما ممکن است می دانم یک کتابخانه به نام از jQuery. پس از jQuery است همان نیست چیزی به عنوان جاوا اسکریپت. این فقط یک کتابخانه که واقعا باهوش است پسر می نوشت و معروف و مشهور مانند که تقریبا همه در جهان در حال حاضر استفاده از jQuery در هنگام استفاده از جاوا اسکریپت. و در نگاه اول، صادقانه، آن به نظر می رسد کمی مرموز تر. اما پیدا خواهید کرد، به خصوص اگر شما به وجود دارد برای پروژه نهایی خود را با وب سایت توسعه، پیدا خواهید کرد که این پاک کردن کارها و موجب صرفه جویی شما کاملا چند خط کد. بنابراین اجازه دهید فقط نگاه چگونه این فرم کار است. توجه کنید چه من به ظاهر حذف از HTML من؟ هیچ در ارائه برنامه کنترل وجود دارد پس به صحبت می کنند. هیچ ویژگی وجود دارد. از آنجا که شما می دانید، چه من واقعا نمی خواهم؟ من احساس مانند ما در حال سقوط بود به عادات قدیمی وجود دارد. فقط مثل این است که شروع به احساس درهم و برهم به هم مخلوط هر دو CSS با HTML، چرا که شما نوع پرتاب زبان های مختلف در سراسر محل، به طور مشابه این شروع به احساس مثل یک جاده بد به پایین که در آن من قرار دادن کد جاوا اسکریپت در داخل از من HTML به جای فاکتور آن را. به طوری که درس در اینجا. در DOM-2.html، من آن را عاملی است. و من انجام کار کمی متفاوت است. در حال حاضر، من قصد دارم به موج دست های من در چه این واقعا در زیر هود. اما فقط در حال حاضر فرض کنیم که که برای اولین بار از خط از کد را در این کتابخانه به نام جی کوئری فقط بدان معناست که سند آماده است، آیا پس از. از آنجا که صفحات وب می توانید برخی از زمان برای بارگذاری. شما ممکن است در اینترنت کند است اتصال، و آن را ممکن است چرخش و نخ ریسی، و در نهایت آن را لود می شود. این خط از کد، فقط می گوید: صبر کنید تا تمام صفحه آماده است، سند آماده است، قبل از اعدام این کد. و در حال حاضر توجه، این است که احتمالا مفید ترین اول به دور از jQuery. این خط در اینجا بسیار شبیه است در روح به این خط بسیار طولانی در اینجا. در حالی که در کد جاوا اسکریپت خام، وجود دارد وجود دارد یک شی جهانی سند یک تابع به نام getElementById ()، افرادی که نوشت: جی کوئری ساده که به فقط می گویند علامت دلار، و سپس داخل پرانتز قرار دادن دو علامت نقل قول، و پس از آن قرار دادن یک نماد مخلوط و پس از آن ID منحصر به فرد که شما می خواهید را به چنگ. بنابراین این معادل است document.getElementById. در همین حال،. ارسال فقط به معنی در ارسال به هر صورت شما با اشاره به در سمت چپ، به جلو و اجرای این. اما این در حال حاضر کنجکاوی بیش از حد. چه عجیب و غریب در مورد آنچه من در اینجا پر رنگ کرده اید؟ نه تنها آن نوع از قواعد جدید است، نیز چیزی از دست رفته وجود دارد. یک مدعو: این فقط تابع نامیده می شود؟ این هشدار به نام نه؟ DAVID مالان: آره. خوب، پس آماده باش () است به پایین در اینجا، به عادلانه باشد. اما هیچ اشاره ای به وجود نام، مانند شما می دانید، تولی و یا چیزی در اینجا. و در واقع، این یکی از ویژگی های است از جاوا اسکریپت که کاملا قدرتمند، بلکه کاملا جدید است. و PHP در واقع تا به این عنوان است. به من اجازه دهید به جلو و انجام چیزی واقعی سریع است. اجازه بدهید من به جلو قرار داده و این را اینجا ببینید. به من اجازه انجام این کار. عملکرد. اجازه دهید به این اداره (). عملکرد کنترل پس به صحبت می کنند. چیزی که دسته برخی از عملیات. به من اجازه پاک کردن دندانه من. و این قرار در اینجا. و قرار است که در اینجا. بله. OK. بنابراین در حال حاضر من یک تابع به نام کنترل () که من واقعا نمی دانم آنچه در آن هنوز. این فقط هنوز چیزهای که. اوه. بیش از حد در زمان. بیایید این کار را. بسیار خوب. متأسفم. بسیار خوب. به من اجازه انجام این کار. OK. که به نظر می رسد خوب و مستقیم اکنون به جلو. به من اجازه انجام این کار. این کار را. و OK. بنابراین در حال حاضر، اجازه دهید بیش از این در اینجا قرار داده است. برنامه نویسی دیگر در پرواز. OK. بنابراین در حال حاضر، اجازه بازگشت به که در آن داستان آغاز شد. پیش از این، من گفتم که این خط در اینجا یعنی زمانی که سند آماده است، به جلو و این کار را. چه من می خواهم کاری انجام دهید؟ خوب به طور خاص، من می خواهم به پیش رو و زیر را انجام دهید. اجرای این خط از کد، و پس از آن چه من می خواهم شما را به انجام است به این عملکرد هنگامی که فرم ارسال می شود. در حال حاضر این چیزی است که جالب است. این خود یک تابع است. توجه من قرار دادن پرانتز ندارد در اینجا در راه طبیعی است. من به معنای واقعی کلمه عبور یک تابع به نام کنترل () به تابع دیگر به نام را () به عنوان آرگومان به عنوان هر چند آن را مانند یک متغیر است. و این یکی از ویژگی های است جاوا اسکریپت، توابع خود است واقعا فقط اشیاء. در واقع، آنها واقعا فقط هستید متغیر از نوعی. و اگر نام تابع است کنترل ()، هیچ دلیلی نمی توانم وجود دارد عبور از آن به عنوان یک بحث در اینجا. و این بدان معنی است که فرم با ID از نسخه ی نمایشی است را مشاهده کنید، به این تابع. اما در حال حاضر اگر من خنثیسازی همه از این، پس چرا من شاید انجام این یک لحظه پیش؟ خوب، این یک تابع بی نام است. از آنجا که رک و پوست کنده، من متوجه شدم که چرا من هستم آزار به اتلاف وقت اعلام تابع به نام کنترل () فقط تماس بگیرید آن را در یک و تنها یک مکان؟ اگر من به نام نیاز ندارد، و من نه نیاز به آن را بیش از یک محل، اجازه دهید فقط اجرای تابع سمت راست جایی که من به آن نیاز دارید. و به این ترتیب جاوا اسکریپت و PHP پشتیبانی چه ها توابع بی نام که من اجازه می دهد برای انجام این کار دقیقا همان است که در اینجا. اما ما تنها سطح. بیایید تنها با چند کسی را دست انداختن نمونه نهایی در اینجا. اگر من به quote.php بروید. توجه داشته باشید که این در واقع PHP تابع، برنامه پی اچ پی، که من نوشتم که انتظار دارد پارامتر HTTP نام نماد، و من می توانم عبور در ارزش مانند FB. و اگر ما در واقع در منبع نگاه کد، این است که پرس و جو یک وب سایت رایگان به نام یاهو امور مالی، درست مانند p-مجموعه هفت، و آن را بازگشت به من چیزی در ظاهرا فرمت شناخته شده JSON است - جاوا اسکریپت نشانه گذاری شی. این فقط یک شی است. توجه آکولاد، به نقل از، روده بزرگ، و کاما. در حال حاضر در عین حال، این است که بسیار سرد است. از آنجا که من احتمالا می تواند با استفاده از برنامه نویسی زبان به URL های که مثل این به صورت پویا نگاه کنید، درست است؟ من می توانم این را به گوگل تغییر و به عقب بر گردیم در گوگل قیمت سهام از $ 1،017.55. بنابراین اجازه دهید ببینیم آیا می توانیم این در حال حاضر استفاده نمی کنند. اجازه بدهید من برای آژاکس-0 به اینجا، که به نظر می رسد مانند زیر است. این فقط یک وب سایت است که در یک فرم با یک دکمه. اجازه بدهید به اینجا بروید و نوع در YHOO برای یاهو نماد سهام، کلیک کنید دریافت نقل قول، و در حال حاضر متوجه I بدست هشدار با 32.86. اجازه بدهید من در واقع به نسخه رویایی بروید از این صفحه، نسخه دو، و تایپ در بیایید می گویند مایکروسافت، MSFT. دریافت نقل قول. و در حال حاضر متوجه، بدون هشدار. توجه کنید که در آن می گوید قیمت مشخص می شود؟ است ساده ترین نمونه هایی وجود دارد که نکات در چه Gchat و فیس بوک چت، و جی میل، و دیگر وب سایت ها انجام می دهند در واقع تغییر صفحه وب. توجه داشته باشید این. اجازه بدهید من در صفحه را مجدد بارگذاری. به من اجازه باز کردن بازرس کروم. اجازه بدهید من به عناصر بروید تب در اینجا. حالا متوجه اگر من زوم کردن در اینجا و باز این رو، توجه کنید که این است من HTML DOM - مدل شی سند من. این HTML من است. اما در حال حاضر متوجه، حتی اگر آن را که کمی سخت به آن را ببینید در هر دو مکان در یک بار، اگر در FB نوع I تا اینجا، تماشای پایین از صفحه نمایش تنها. این در واقع در حال تغییر HTML من در پرواز. و آن را به انجام این کار کاملا به سادگی با انجام این کار چیزی شبیه به این. اگر I باز کردن آژاکس 2، متوجه اجرای چیزی به عنوان علاقه به عنوان که، حتی اگر آن را بسیار زشت، اما به عنوان پیچیده است که عملکرد، آن را تا به برخی از HTML در پایین. اما توجه من استفاده می شود به برچسب. ما پیش از این استفاده نمی شود، اما این است مانند، اما مجبور همه چیز را بر روی یک خط جدید است. این فقط باعث می شود یک منطقه مستطیلی در همان خط در اصل. توجه کنید که من به آن ID از قیمت می باشد. و معلوم است با استفاده از همان کتابخانه جاوا اسکریپت، من یک تابع باید به نام اعلان () که به نام هر زمان که فرم ارسال می شود. و آنچه که من انجام این کار است. من اعلام یک متغیر در جاوا اسکریپت نام آدرس، صرفه جویی در مقدار quote.php؟ نماد =. به عبارت دیگر، من خودم شروع می کنم برای آماده سازی یک درخواست HTTP، و پس از آن من الحاق بر روی که با یک به علاوه هر عنصر با ID از نماد است، که توجه این است که درست است متن سمت راست را در اینجا. بنابراین درست مانند ما اشکال در گذشته به حال. و پس از آن که معلوم است در jQuery، اگر شما تماس بگیرید. وال ()، که خواستار یک وال تابع، یک تابع ارزش، که می شود هر کاربر تا به تایپ شوید و پس از آن همه ترافیک شبکه که اتفاق می افتد این است. $. getJSON. و به عنوان یک کنار، علامت دلار است فقط یک نماد تند نویسی. این واقعا jQuery.getJSON. من به JSON از این URL، و هنگامی که درخواست برگشت، به این تابع و ارسال به عنوان آرگومان هر آنچه از سرور آمد. بنابراین به عبارت دیگر، اگر من به بازگشت به مرورگر، و من به بازگشت به quote.php، آنچه که مرورگر در حال انجام شدن است این تکه از داده ها. و وقتی به این صفحه وب در اینجا، توجه اگر ما به جای به شبکه بروید تب و روشن آن را، و سپس در چیزی شبیه به GOOG برای گوگل و دریافت نقل قول، متوجه صفحه را تغییر دهید. اما یک درخواست HTTP، ساخته شده بود و چه برگشتم اینجا اگر ما در نگاه پاسخ یک دسته کامل از JSON است که ما در نهایت با دیده این خط ساده در اینجا. اطلاعات آن چیزی است که بدست شد از سرور. قیمت نام است کلید I در مورد مراقبت. بنابراین data.price به من می دهد که. در حال حاضر در عین حال، و این آخرین نمونه است. شما می توانید در عین حال با صفحه انجام دهد. یکی در واقع، به خوبی دو. ما می توانیم بازگرداندن برچسب، اگر شما این به یاد داشته باشید. که جاوا اسکریپت است. ما می توانیم انجام این کار. بسیار هیجان انگیز است. ما به عنوان یک مطلب یا داستان جالب ترک که. اما excitingly بیشتر، شما می توانید انجام کارهای شبیه به این. اگر من به منطقه جغرافیایی-1 بروید، آن را تبدیل که کروم می داند که ما در می عرض جغرافیایی طول جغرافیایی 42.37. -71.10. بنابراین حتی بیشتر وجود دارد در اختیار شما. اما بیشتر در هفته آینده. دوشنبه مشاهده شما.