1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [هفته 9] 2 00:00:02,570 --> 00:00:04,740 [دیوید J. مالان - دانشگاه هاروارد] 3 00:00:04,740 --> 00:00:07,170 [این CS50 است. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 بسیار خوب. خوش آمدید. این CS50 است، و این است که شروع هفته 9. 5 00:00:12,350 --> 00:00:16,600 امروز ما به طور خاص در طراحی، دیگر تمرکز در زمینه C 6 00:00:16,600 --> 00:00:20,010 اما در زمینه PHP و کمی از SQL و کمی از جاوا اسکریپت، 7 00:00:20,010 --> 00:00:23,730 به خصوص نسبت به پایان از هر دو pset 7 و همچنین پروژه نهایی خود را. 8 00:00:23,730 --> 00:00:26,310 در واقع، اگر شما در پروژه نهایی خود را در آن نقطه است 9 00:00:26,310 --> 00:00:30,100 که احتمالا به عنوان حداقل از یک ساعت و یا تا پیش آغاز شده است به برخی از اندیشه 10 00:00:30,100 --> 00:00:33,730 به طرح نهایی شما و شما به فکر شما می خواهم برای همکاری با 1 یا 2 همکلاسی، 11 00:00:33,730 --> 00:00:36,150 اگر شما مشکلی در اتصال با گفت همکلاسی 12 00:00:36,150 --> 00:00:40,570 احساس رایگان برای پر کردن فرم در cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 این فقط شما می پرسد که شما چه نوع پروژه شما در حال فکر کردن در مورد، 14 00:00:42,880 --> 00:00:44,870 جایی که شما فقط به دلایل لجستیکی زندگی می کنند. 15 00:00:44,870 --> 00:00:49,510 و سپس اگر می خواهید به نگه داشتن چشم در طی هفته آینده و یا تا URL گسترده وجود دارد، 16 00:00:49,510 --> 00:00:53,520 بعد از آن شما می توانید یک نسخه فقط خواندنی از توضیحات گوگل را ببینید 17 00:00:53,520 --> 00:00:56,010 که در آن ما در حال جمع آوری این اطلاعات. 18 00:00:56,010 --> 00:00:58,930 بنابراین اگر شما می خواهید با کسی کار می کنند، همه به معنی احساس رایگان برای رسیدن به مردم 19 00:00:58,930 --> 00:01:00,480 از طریق که مکانیسم. 20 00:01:00,480 --> 00:01:02,690 اما اکثریت مردمی انجام انفرادی کار. این کاملا خوب است. 21 00:01:02,690 --> 00:01:06,120 پس وقت را احساس نمی کند، این است که به هیچ وجه واجب است. 22 00:01:06,120 --> 00:01:09,680 روز جمعه بود فقط من و چند تیم در اینجا، 23 00:01:09,680 --> 00:01:11,100 تئاتر خالی در بیشتر قسمت ها. 24 00:01:11,100 --> 00:01:14,600 3 گردشگران وجود دارد نشستن وجود دارد، به طوری که کمی بی دست و پا بود. 25 00:01:14,600 --> 00:01:18,970 آنچه که ما در مورد صحبت پایگاه داده بود و ما در مورد pset 7 کمی صحبت کردیم. 26 00:01:18,970 --> 00:01:22,200 و اگر شما هم اتفاق نمی افتد برای گرفتن آن بر روی ویدیو فقط رتبهدهی نشده است، که خوب است. 27 00:01:22,200 --> 00:01:26,770 من سعی خواهم کرد به تعریف هر واژه ای که ما در غیر این صورت را اعطا 28 00:01:26,770 --> 00:01:28,840 بر اساس سخنرانی روز جمعه. 29 00:01:28,840 --> 00:01:32,550 >> اما امروز ما قصد داریم به تلاش شما را به نقطه 30 00:01:32,550 --> 00:01:34,990 نه تنها قادر به انجام کاری مثل pset 7 31 00:01:34,990 --> 00:01:37,360 اما واقعا درک آنچه که در زیر هود، 32 00:01:37,360 --> 00:01:41,910 به ویژه برخی از انتزاعی که ما در محل را در فایل functions.php قرار 33 00:01:41,910 --> 00:01:45,780 زندگی خود را کمی آسانتر می کند، اما به طوری که شما در نهایت درک 34 00:01:45,780 --> 00:01:48,760 به طوری که زمانی که چرخ های آموزشی در چند هفته شما هنوز هم می تواند زنده بماند 35 00:01:48,760 --> 00:01:53,750 در دنیای واقعی و این مسائل بدون هیچ گونه چارچوب CS50 زیر شما. 36 00:01:53,750 --> 00:01:57,500 این _SESSION دلار، برای کسانی از شما که آشنا هستند 37 00:01:57,500 --> 00:02:01,960 یا کسانی که در حال حاضر این ویدئو را در روز جمعه گرفتار، چه جلسه اجازه دهید ما انجام می دهید 38 00:02:01,960 --> 00:02:04,330 در یک برنامه وب مبتنی بر PHP-؟ 39 00:02:04,330 --> 00:02:09,650 این یک متغیر superglobal، که به معنی آن را در روح شبیه به GET و POST 40 00:02:09,650 --> 00:02:13,970 و چند دیگران، اما آنچه در این است که کاری مفید است؟ 41 00:02:13,970 --> 00:02:18,320 >> چیست SESSION استفاده می شود؟ آره. [دانشجو] به سیستم وارد شوید 42 00:02:18,320 --> 00:02:21,040 ببخشید؟ [دانشجو] به سیستم وارد شوید به سیستم وارد شوید در واقع. 43 00:02:21,040 --> 00:02:25,100 در pset 7 ما با استفاده از این superglobal جلسه به منظور تسهیل در سیستم وارد شوید. 44 00:02:25,100 --> 00:02:28,600 و چه خوب در مورد این superglobal است که آن را به یک آرایه انجمنی است. 45 00:02:28,600 --> 00:02:33,190 آرایه های انجمنی، فراخوان، فقط یک آرایه که شاخصهای دیگر باید اعداد 46 00:02:33,190 --> 00:02:37,670 مانند 012. آنها می توانند اعداد و یا می توان آنها را حتی رشته. 47 00:02:37,670 --> 00:02:44,890 و به این ترتیب اگر شما به pset 7 شیرجه در عین حال، شما ممکن است به یاد آورید که ما در حال ذخیره کردن یک کلید به نام ID 48 00:02:44,890 --> 00:02:50,330 در داخل این آرایه انجمنی است که ارزش آن چیزی شبیه به 123 - 49 00:02:50,330 --> 00:02:53,780 هر آنچه را که در حال حاضر در ID کاربر وارد شده است. 50 00:02:53,780 --> 00:02:59,470 انگیزه این است که حتی پس از آنکه کاربر بازدید کرده است در localhost 51 00:02:59,470 --> 00:03:02,720 و یا وب سایت من به طور کلی و پس از آن، آنها که در سیستم وارد شده، 52 00:03:02,720 --> 00:03:07,320 حتی اگر یک لینک کلیک کنید و یا بازگشت به وب سایت من برای 5 دقیقه 53 00:03:07,320 --> 00:03:10,730 و یا حتی یک ساعت و یا حتی برای یک روز، اما آنها را ترک پنجره مرورگر خود را باز کرده، 54 00:03:10,730 --> 00:03:14,370 از طریق این superglobal می تواند من را به یاد داشته باشید که آنها وارد سایت شوید. 55 00:03:14,370 --> 00:03:21,140 >> به عبارت دیگر، آن را به من اجازه می دهد تا برای ذخیره هر چیزی کمی در دراز مدت من می خواهم در مورد یک کاربر. 56 00:03:21,140 --> 00:03:24,390 و شما می توانید از آن فکر می کنم واقعا به عنوان تجسم سبد خرید. 57 00:03:24,390 --> 00:03:27,740 مکان هایی مانند آمازون بدیهی است که شما اجازه می دهد چیزهایی را به سبد خرید قرار داده است، 58 00:03:27,740 --> 00:03:32,230 اما HTTP، پروتکل است که قدرت وب است، بی 59 00:03:32,230 --> 00:03:34,230 به این معنا که در هنگام مراجعه به یک وب سایت، 60 00:03:34,230 --> 00:03:37,290 در بیشتر قسمت ها شما برخی از اتصال به شبکه ثابت داشته 61 00:03:37,290 --> 00:03:39,270 بین مرورگر شما و سرور است. 62 00:03:39,270 --> 00:03:42,190 به محض HTML و عکس JPEG و فایل های gif را دانلود کرده اید و تمام آن، 63 00:03:42,190 --> 00:03:48,200 اتصال از بین می رود و شما فقط باید یک نسخه از HTML و فلان چیز را از سرور. 64 00:03:48,200 --> 00:03:53,000 اما در صورتی که سرور می خواهد به یاد داشته باشید چیزی در مورد شما، 65 00:03:53,000 --> 00:03:57,580 بار بر روی سرور در واقع به سابقه است که اطلاعات می باشد. 66 00:03:57,580 --> 00:04:00,130 و بنابراین شما برنامه نویس که کنترل سرور 67 00:04:00,130 --> 00:04:04,400 می توانید هر چیزی که شما می خواهید در داخل این آرایه انجمنی superglobal قرار داده است 68 00:04:04,400 --> 00:04:06,850 و آن را در آنجا خواهد بود دفعه بعد که کاربر می آید به عقب، 69 00:04:06,850 --> 00:04:12,070 که آیا آن دقیقه یا حتی چند روز بعد از آن، مگر آنکه پنجره مرورگر خود را ببندید، 70 00:04:12,070 --> 00:04:14,360 که در آن جلسه نقطه ناپدید می شود. 71 00:04:14,360 --> 00:04:17,779 پس از آن ذخیره سازی زودگذر، غیر مداوم است، و این به معنای از بین برود 72 00:04:17,779 --> 00:04:22,360 به محض آن که کاربر مرورگر خود را میبندد - که فقط تب، اغلب تمام مرورگر، 73 00:04:22,360 --> 00:04:24,930 در نتیجه به طور موثر ورود کاربر. 74 00:04:24,930 --> 00:04:28,000 پس چگونه است که این چیزی که در واقع اجرا شده است؟ 75 00:04:28,000 --> 00:04:31,360 اجازه دهید نگاهی سریع در یک مثال ساده ما در روز جمعه نگاه کرد. 76 00:04:31,360 --> 00:04:33,340 برای کسانی که ناآشنا، آن را به عنوان ساده به عنوان این است. 77 00:04:33,340 --> 00:04:35,910 این یک صفحه وب است که تنها هدف در زندگی است، به من بگویید 78 00:04:35,910 --> 00:04:38,000 چند بار من این صفحه سفر کرده اند. 79 00:04:38,000 --> 00:04:41,670 این ساعت هم برای اولین بار در روز دوشنبه که من آن را بازدید است، بنابراین آن را می گوید 0 بار. 80 00:04:41,670 --> 00:04:46,940 >> اما اگر من شروع مجدد این صفحه، آن را می گوید 1 بار، 2، 3، 4، 5، 81 00:04:46,940 --> 00:04:49,800 و در نهایت فقط در شمارش نگه دارید، تا، تا، تا، تا 82 00:04:49,800 --> 00:04:53,130 برای هر زمانی که من در واقع با کلیک بر روی آن بارگذاری. 83 00:04:53,130 --> 00:04:58,830 پس چگونه است که این کار؟ اجازه دهید من به داخل این فایل به نام counter.php. 84 00:04:58,830 --> 00:05:02,490 قسمت بالای آن تمام نظرات آبی است، اما بخش جالب توجه اینجا است. 85 00:05:02,490 --> 00:05:06,670 در خط 13 ما تماس بگیرید این session_start تابع، 86 00:05:06,670 --> 00:05:09,600 و است که به معنای واقعی کلمه همه شما باید انجام دهید اگر شما می خواهید دسترسی داشته باشند 87 00:05:09,600 --> 00:05:13,610 به این superglobal خاص به نام $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 این باعث می شود آن را همه ممکن است، و ما در یک لحظه که چگونه است که همه ممکن است. 89 00:05:17,430 --> 00:05:20,350 در خط 16 اطلاعیه آنچه که من انجام می دهند. 90 00:05:20,350 --> 00:05:25,960 اگر کلید، به نام مبارزه - به عبارت دیگر، ارزش شاخص - "" 91 00:05:25,960 --> 00:05:32,310 وجود دارد داخل این آرایه به نام جلسه، پس از آن چه من آن را در خط زیر را انجام؟ 92 00:05:32,310 --> 00:05:36,650 خط 18 انجام شده است؟ 93 00:05:36,650 --> 00:05:40,360 >> [پاسخ دانش آموز نامفهوم] که چه؟ [دانشجو] ذخیره سازی مقدار است. خوب است. 94 00:05:40,360 --> 00:05:45,800 این ذخیره ارزش است که در جلسه در حال حاضر در یک متغیر موقت محلی، 95 00:05:45,800 --> 00:05:48,250 $ کانتر در تمام حروف کوچک. 96 00:05:48,250 --> 00:05:50,770 توجه کنید که PHP در حال حاضر کمی تنبل. 97 00:05:50,770 --> 00:05:55,550 توجه داشته باشید که ما هیچ اشاره ای بین المللی و یا شناور و یا رشته یا هر چیزی شبیه به این نیست که 98 00:05:55,550 --> 00:06:00,480 چرا که PHP است ضعیف تایپ، به موجب آن شما را ندارد برای مشخص کردن نوع متغیر، 99 00:06:00,480 --> 00:06:03,310 و در این مورد در اینجا من حتی نمی آن اعلام نشده است. 100 00:06:03,310 --> 00:06:08,980 من آن را اعلام داخل این آکولاد و بر خلاف C، این است که در واقع درست است. 101 00:06:08,980 --> 00:06:13,800 مهم نیست که چقدر عمیقا تو در تو اعلامیه یک متغیر در PHP - 102 00:06:13,800 --> 00:06:16,650 در داخل از بریس فرفری، در داخل بریس فرفری و مانند - 103 00:06:16,650 --> 00:06:21,230 آن را در آن لحظه در زمان باقی مانده از این برنامه وجود داشته باشد، 104 00:06:21,230 --> 00:06:22,680 برای بهتر شدن یا بدتر شدن. 105 00:06:22,680 --> 00:06:26,930 پس از آن بلافاصله تبدیل به جهانی در اسرع وقت آن تعریف می کنید همانطور که ما در حال انجام است. 106 00:06:26,930 --> 00:06:31,620 >> در غیر این صورت، اگر من را پیدا کند که هر چیزی در superglobal جلسه وجود دارد، 107 00:06:31,620 --> 00:06:34,680 من ظاهرا این شمارنده متغیر مقدار دهی اولیه تا 0، 108 00:06:34,680 --> 00:06:37,580 در نتیجه فقط با فرض کاربر بوده است هرگز در اینجا قبل از. 109 00:06:37,580 --> 00:06:40,030 و پس از این دوره افزایش متقابل چگونه است؟ 110 00:06:40,030 --> 00:06:44,480 من به روز رسانی ارزش است که در داخل این آرایه انجمنی 111 00:06:44,480 --> 00:06:49,530 تنظیم آن را به هر آنچه که شمارنده در حال حاضر + 1 برابر است. 112 00:06:49,530 --> 00:06:53,520 اگر من در پایین حرکت به HTML صفحه، آن را در واقع بسیار ساده است. 113 00:06:53,520 --> 00:06:58,920 من در بدن از این صفحه است، "شما این سایت را بنابراین، و به طوری که بار سفر کرده بود." 114 00:06:58,920 --> 00:07:00,350 و این ساختار PHP است. 115 00:07:00,350 --> 00:07:06,080 اگر شما <؟، این به طور موثر به آنچه تابع برابر است با؟ 116 00:07:07,920 --> 00:07:12,600 این واقعا معادل را به چیزی مانند printf، که ایم چند بار در C دیده می شود، 117 00:07:12,600 --> 00:07:15,940 اگر چه شما در حال حاضر ممکن است که از تنظیمات در pset 7، 118 00:07:15,940 --> 00:07:20,160 چاپ شده است نیز یک تابع است که فقط چاپ خارج، آن را در واقع نه با استفاده از کدهای قالب، 119 00:07:20,160 --> 00:07:23,270 و شما در واقع می تواند اکو و همچنین می گویند. 120 00:07:23,270 --> 00:07:27,460 همه آنها تا کنون کمی متفاوت است حتی اگر اثر خالص در نهایت همان است. 121 00:07:27,460 --> 00:07:31,270 بنابراین استفاده از این علامت مساوی تنها مرتب کردن بر اساس یک راه ظریف از انجام آن است 122 00:07:31,270 --> 00:07:34,910 بیشتر موجز از شما در غیر این صورت ممکن است قادر به. 123 00:07:34,910 --> 00:07:38,370 به طوری که این سایت هم اینکار را در مورد شما نمی کنند. چاپ این مقدار شمارنده است. 124 00:07:38,370 --> 00:07:40,550 چگونه است که این همه در واقع اتفاق می افتد؟ 125 00:07:40,550 --> 00:07:43,250 شما ممکن است یک هفته یا بیشتر به یاد پیش ما شروع به دنبال زیر هود 126 00:07:43,250 --> 00:07:47,910 چگونه یک صفحه وب با استفاده از این برگه بازرس کار می کند. 127 00:07:47,910 --> 00:07:51,900 >> کروم تا به این هر دو در نسخه مکینتاش، نسخه ویندوز و حتی نسخه های لینوکس، 128 00:07:51,900 --> 00:07:59,510 و Firefox و IE مکانیسم مشابه به موجب آن شما باید این دیباگر ساخته شده است در 129 00:07:59,510 --> 00:08:01,400 در داخل مرورگر است. 130 00:08:01,400 --> 00:08:03,040 بیایید یک نگاهی به زیر. 131 00:08:03,040 --> 00:08:06,960 ما باید یک دسته کامل از زبانه ها در اینجا، و به یاد بیاورید که یکی از سمت چپ است عناصر، 132 00:08:06,960 --> 00:08:10,700 و بدون توجه به چه godawful HTML و جاوا اسکریپت در یک صفحه، 133 00:08:10,700 --> 00:08:15,710 به یاد که با تب عناصر به شما در واقع می تواند حرکت HTML سلسله مراتبی 134 00:08:15,710 --> 00:08:17,050 و خوب و منظمی است. 135 00:08:17,050 --> 00:08:19,370 بنابراین اگر شما در حال تلاش برای یادگیری از یک وب سایت مانند گوگل و فیس بوک 136 00:08:19,370 --> 00:08:22,370 و یا در واقع هر وب سایت، درک کنند که شما احتمالا بهتر 137 00:08:22,370 --> 00:08:26,360 با نگاه کردن به کد منبع این روش به عنوان به مشاهده منبع خام مخالف، 138 00:08:26,360 --> 00:08:29,580 که می تواند یک ظرف غذا، به خصوص در سایت گوگل دیده می شود ایم. 139 00:08:29,580 --> 00:08:32,220 بنابراین اگر من به جای آن بر روی تب شبکه اینجا را کلیک کنید. 140 00:08:32,220 --> 00:08:34,830 بیایید ببینید چه خبر است در زمانی که من در بازدید از این صفحه. 141 00:08:34,830 --> 00:08:38,669 اول پاک کردن کش من به من اجازه بده. 142 00:08:38,669 --> 00:08:43,570 من قصد دارم به تنظیمات در کروم بروید و سپس به تاریخ 143 00:08:43,570 --> 00:08:46,420 و سپس به پاک کردن همه داده های مرور. 144 00:08:46,420 --> 00:08:48,170 شما ممکن است برای انجام این کار برای مقاصد دیگر استفاده می شود، [خنده] 145 00:08:48,170 --> 00:08:51,990 اما زمانی که آن را به وب سایت های در حال توسعه می آید، آن را در واقع مفید - 146 00:08:51,990 --> 00:08:55,980 اگر شما در حال خنده می دانید. [خنده] 147 00:08:55,980 --> 00:08:59,310 در واقع واقعا مفید است که در حال توسعه وب سایت ها به دلیل واقعیت این است 148 00:08:59,310 --> 00:09:04,100 چیزهایی مثل کوکی ها و چیزهایی مانند کش فایل های HTML، فایل های کش جاوا اسکریپت 149 00:09:04,100 --> 00:09:06,390 در واقع می تواند تبدیل به یک سردرد بزرگ، چرا که اگر به هر دلیلی 150 00:09:06,390 --> 00:09:11,500 مرورگر تصمیم می گیرد به کش و در عین حال برخی از فایل شما به آن فایل بر روی سرور ساخته شده 151 00:09:11,500 --> 00:09:14,670 اما مرورگر واقعا متوجه شدم که فایل تغییر کرده است 152 00:09:14,670 --> 00:09:19,060 و در نتیجه در واقع نه آن را دوباره دانلود حتی زمانی که شما با کلیک بر روی دکمه Reload، 153 00:09:19,060 --> 00:09:23,210 یکی از مطمئن ترین راه فقط مطمئن شوید که خطا با کد شما نیست، 154 00:09:23,210 --> 00:09:26,480 آن را با رفتار مرورگر، این است که در اینجا در مرورگر شما 155 00:09:26,480 --> 00:09:29,950 و در تمام تاریخ به طوری که هیچ سردرگمی وجود دارد روشن است. 156 00:09:29,950 --> 00:09:33,210 >> و پس از آن اگر شما واقعا می خواهید به پارانویا، خروج از مرورگر، آن را راه اندازی مجدد، 157 00:09:33,210 --> 00:09:35,660 و پس از آن مطمئن شوید که تمام کار به عنوان انتظار می رود. 158 00:09:35,660 --> 00:09:38,820 بنابراین در کوتاه مدت، پاکسازی کش خوب است هنگام انجام توسعه است. 159 00:09:38,820 --> 00:09:40,690 بنابراین در اینجا ما باید شبکه زبانه. 160 00:09:40,690 --> 00:09:46,020 من پیش از این سایت بازدید به حال 9 بار، اما اجازه دهید من به جلو بروید و روی Reload کلیک کنید. 161 00:09:46,020 --> 00:09:47,500 و من را به 0. 162 00:09:47,500 --> 00:09:52,100 اجازه دهید در واقع ببینید که چگونه آن این است که این superglobal جلسه در حال اجرا است. 163 00:09:52,100 --> 00:09:55,990 من قصد دارم تا با کلیک بر روی 1 درخواست HTTP است که ساخته شده بود، 164 00:09:55,990 --> 00:09:58,810 و این پنجره اشکال زدایی به شما اجازه می دهد تا من در داخل آن نگاه کنید. 165 00:09:58,810 --> 00:10:01,970 در اینجا من فقط پاسخ از سرور، است که جالب نیست. 166 00:10:01,970 --> 00:10:04,030 من این کار را در هر تعداد از راه دیده می شود. 167 00:10:04,030 --> 00:10:06,350 اما آنچه از لحاظ فنی جالب هدر. 168 00:10:06,350 --> 00:10:11,770 اگر من در پایین حرکت اینجا و تمرکز بر روی هدر درخواست کلیک کنید و مشخصات منبع، 169 00:10:11,770 --> 00:10:14,400 آنچه من قصد دارم برای دیدن به معنای واقعی کلمه به درخواست HTTP است 170 00:10:14,400 --> 00:10:17,250 که فقط از مرورگر به سرور رفت، 171 00:10:17,250 --> 00:10:21,400 کلمه از عمل و پس از آن / counter.php نام فایل 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 فقط نسخه ای از HTTP که مرورگر من این است که با استفاده از. 173 00:10:25,670 --> 00:10:31,070 این خط در اینجا یک یادآوری کوچک از مرورگر به سرور نام سرور است 174 00:10:31,070 --> 00:10:33,020 که آن را می خواهد به صحبت. 175 00:10:33,020 --> 00:10:38,200 و سپس بقیه این است که گاهی اوقات اما نه مربوطه در حال حاضر. 176 00:10:38,200 --> 00:10:40,090 >> این نوع کنجکاوی است. 177 00:10:40,090 --> 00:10:43,530 مرموز اگر این رشته است، در هر زمان، مرورگر شما بازدیدکننده داشته است یک وب سایت 178 00:10:43,530 --> 00:10:47,110 اطلاع رسانی سرور از چه مرورگری که شما با استفاده از 179 00:10:47,110 --> 00:10:50,040 و چه سیستم عامل شما و با استفاده از چه نسخه ای از آن است. 180 00:10:50,040 --> 00:10:52,650 بنابراین اگر شما همیشه تعجب که چگونه وب سایت ها مانند CNN و فلان چیز 181 00:10:52,650 --> 00:10:56,860 می دانم چه درصد از کاربران مکینتاش بر روی وب سایت کاربران PC،، 182 00:10:56,860 --> 00:11:00,820 کاربران اینترنت اکسپلورر، کاربران کروم و مانند آن، به این دلیل است که همه از مرورگرهای ما 183 00:11:00,820 --> 00:11:04,300 در حال گفتن هر وب سایت تک خارج وجود دارد چیزی است که ما هستند. 184 00:11:04,300 --> 00:11:07,410 آن را لزوما حاوی اطلاعات شناسایی شخصی، 185 00:11:07,410 --> 00:11:13,060 اما آن را به سرور آدرس IP خود است و چه مرورگر و سیستم عامل شما در حال استفاده است. 186 00:11:13,060 --> 00:11:14,720 به طوری که که در آن از این اطلاعات است. 187 00:11:14,720 --> 00:11:19,960 اما آنچه جالب توجه تر در حال حاضر زمانی که آن را به این جلسات می آید هدر پاسخ. 188 00:11:19,960 --> 00:11:22,530 اجازه دهید کلیک کنید منبع پاسخ مشاهده. 189 00:11:22,530 --> 00:11:24,590 چه جالب اینجا چند چیز است. 190 00:11:24,590 --> 00:11:27,580 1، ما یک کد وضعیت 200. 191 00:11:27,580 --> 00:11:29,840 ما هرگز این کد وضعیت را ببینید چرا که این بدان معناست که همه خوب است. 192 00:11:29,840 --> 00:11:32,920 به معنای درست در مقابل چیز دیگری است. 193 00:11:32,920 --> 00:11:36,380 شماره ما گاهی اوقات می بینم که بد چه خبر؟ [دانشجو] 404. 194 00:11:36,380 --> 00:11:39,860 404، فایل یافت نشد 403 شما ممکن است تلو تلو خوردن بر در حال حاضر، 195 00:11:39,860 --> 00:11:43,660 که ممنوع است، که به معنی است که شما را به چیزی سطح دسترسی، به احتمال زیاد خود را فراموش کرده است. 196 00:11:43,660 --> 00:11:45,190 و یک دسته از دیگران وجود دارد. 197 00:11:45,190 --> 00:11:47,760 >> را در اینجا، این است که کمی دیوانه است. 198 00:11:47,760 --> 00:11:52,340 من واقعا فقط چند دقیقه پیش نوشت: این فایل با چسباندن آن را به gedit. 199 00:11:52,340 --> 00:11:57,100 چرا این صفحه در سال 1981 منقضی واقعا قبل از وب وجود دارد؟ 200 00:11:58,010 --> 00:12:00,730 چه در رفتن وجود دارد؟ 201 00:12:00,730 --> 00:12:04,390 >> [پاسخ دانش آموز نامفهوم] مهر زمان. اما چرا؟ 202 00:12:06,110 --> 00:12:09,120 این تا حدودی خودسرانه، اما در واقع مفید است. 203 00:12:09,120 --> 00:12:15,500 این است که گفت: به مرورگر من این فایل PHP شما فقط درخواست منقضی شده است. 204 00:12:15,500 --> 00:12:18,580 در واقع، آن را 30 سال پیش منقضی شده است. 205 00:12:18,580 --> 00:12:20,260 اما چیزی که می کند که واقعا چیست؟ 206 00:12:20,260 --> 00:12:22,500 این فقط بدان معناست که کاربر بازدید این صفحه: 207 00:12:22,500 --> 00:12:25,540 چه با بارگیری مجدد و یا تایپ URL در نوار آدرس، 208 00:12:25,540 --> 00:12:28,010 مطمئن شوید که شما بروید و واکشی یک نسخه جدید از آن. 209 00:12:28,010 --> 00:12:30,840 این نوع یک مثال از متلاشیکننده کش است، 210 00:12:30,840 --> 00:12:33,790 یک کلمه احمقانه است که فقط به معنای تلاش برای تضعیف مرورگرها 211 00:12:33,790 --> 00:12:37,260 واقعا از HTML ذخیره شده است که از سرور فرستاده می شود 212 00:12:37,260 --> 00:12:41,490 به طوری که شما به طور تصادفی نمی رسید بازنگری و پس از آن دیدن نسخه های مشابه از فایل است. 213 00:12:41,490 --> 00:12:43,730 در واقع شما می خواهید سرور برای ارسال یک نسخه جدید است. 214 00:12:43,730 --> 00:12:47,440 بنابراین این واقعیت است که آن را در سال 1981 فقط بدان معنی است که این چیزی است که دستگاه انتخاب 215 00:12:47,440 --> 00:12:50,280 به عنوان تاریخ دلخواه در گذشته است. 216 00:12:50,280 --> 00:12:53,380 اما خط واقعی آبدار است که در حال حاضر این یکی. 217 00:12:53,380 --> 00:12:57,550 حتی قبل از 50 شما احتمالا مبهم با کوکی ها آشنا است. 218 00:12:57,550 --> 00:13:01,820 که از سمت راست در حال حاضر، به ویژه در میان کسانی که کمتر و راحت و یا در میان، 219 00:13:01,820 --> 00:13:04,120 چه چیزی است که یک کوکی در درک و فهم خود را در حال حاضر 220 00:13:04,120 --> 00:13:06,980 حتی اگر ما را به درک خود را فنی تر هستید؟ 221 00:13:08,150 --> 00:13:10,070 کوکی چیست؟ آره. 222 00:13:10,070 --> 00:13:13,890 [دانشجوی] اطلاعات در مورد کاربر، می خواهم اگر آنها از نام کاربری و یا چیزی نوشته ام. 223 00:13:13,890 --> 00:13:17,370 >> خوب است. این اطلاعات مربوط به کاربر است، که آیا آنها در نام کاربری خود را تایپ کرده اید در حال حاضر است. 224 00:13:17,370 --> 00:13:21,190 کوکی یک راه است که در آن سرور می تواند به یاد داشته باشید چیزی در مورد یک کاربر. 225 00:13:21,190 --> 00:13:25,810 و آنچه واقعا یک کوکی یک فایل متنی و یا برخی از دنباله ای از بایت ها است 226 00:13:25,810 --> 00:13:28,340 که توسط سرور های اختصاصی در داخل مرورگر شما کاشته شده است، 227 00:13:28,340 --> 00:13:31,960 و در داخل آن فایل و یا در میان کسانی که به نوعی از شناسه بایت است. 228 00:13:31,960 --> 00:13:35,640 شاید آن را به معنای واقعی کلمه نام کاربری خود را، اما اغلب بیشتر از آن چیزی بیش از مرموز، به دنبال 229 00:13:35,640 --> 00:13:43,700 مثل این چیز در اینجا - bo8dal3ct و غیره - این واقعا بزرگ رشته الفبایی 230 00:13:43,700 --> 00:13:47,050 که واقعا فقط به معنای به یک شناسه منحصر به فرد برای شما. 231 00:13:47,050 --> 00:13:49,790 یا شما می توانید از آن به عنوان نوعی از یک تمبر دست مجازی فکر می کنم. 232 00:13:49,790 --> 00:13:53,020 اگر شما به برخی از باشگاه و یا یک پارک تفریحی بروید، به یاد داشته باشید که شما در واقع پرداخت می شود 233 00:13:53,020 --> 00:13:55,850 و رفته، آنها به یک دشنه کوچک قرمز رنگ بر روی دست خود را از برخی از مرتب کردن بر اساس قرار داده است، 234 00:13:55,850 --> 00:13:59,270 و این که به یاد مردم در مقابله که در آن شما در حال حاضر پرداخت می شود 235 00:13:59,270 --> 00:14:01,340 و شما می توانید آیند و می روند به عنوان شما لطفا. 236 00:14:01,340 --> 00:14:04,250 کوکی ها کمی در روح شبیه به آن است. 237 00:14:04,250 --> 00:14:08,070 اولین بار من در بازدید از این وب سایت، من فقط پس از پاک کردن حافظه پنهان من، 238 00:14:08,070 --> 00:14:11,620 سرویس دهنده وب، لوازم خانگی در این مورد، یک تمبر را در دست من قرار داده است 239 00:14:11,620 --> 00:14:15,030 که نام PHPSESSID، جلسه ID، 240 00:14:15,030 --> 00:14:18,260 که مقدار این واقعا بلند رشته الفبایی است. 241 00:14:18,260 --> 00:14:22,470 >> به طوری که در حال حاضر مرتب کردن بر اساس مزین در دست من به طوری که بعد من ضربه بازنگری 242 00:14:22,470 --> 00:14:25,230 یا به صورت دستی این URL در مرورگر مراجعه کنید. 243 00:14:25,230 --> 00:14:29,230 مرورگر من تعریف HTTP به ارائه تمبر دست 244 00:14:29,230 --> 00:14:31,940 دوباره و دوباره و دوباره. 245 00:14:31,940 --> 00:14:34,550 بنابراین حتی اگر سرور لزوما نمی دانند که من هستم، 246 00:14:34,550 --> 00:14:39,610 آنها به حداقل می دانم که من همان کاربر و یا حداقل، به طور خاص، همان مرورگر است. 247 00:14:39,610 --> 00:14:45,660 و بنابراین این در نهایت چگونه superglobal جلسه اجرا می شود. 248 00:14:45,660 --> 00:14:51,200 سرور هیچ ایده که شما هنگامی که یک وب سایت برای بار دوم یا بار سوم شما را دوباره 249 00:14:51,200 --> 00:14:53,410 مگر اینکه شما در حال حاضر این تمبر دست. 250 00:14:53,410 --> 00:14:55,530 و به محض اینکه شما در حال حاضر است که مهر و موم دست، 251 00:14:55,530 --> 00:14:59,370 وب سرور در اصل به یک پایگاه داده کوچک از خود را می رود 252 00:14:59,370 --> 00:15:06,040 و چک، بسیار خوب، من فقط دیده می شود مهر دست bo8dal3ct کاربر و غیره. 253 00:15:06,040 --> 00:15:09,850 به من اجازه دهید ببینید که چه اطلاعاتی را برنامه نویس ذخیره می شود 254 00:15:09,850 --> 00:15:12,380 در داخل superglobal در مورد این کاربر نقل قول این ارسال در پاسخ 255 00:15:12,380 --> 00:15:17,000 و پس از آن اجازه دهید من مطمئن شوید که آن داده است دوباره به داخل جلسه superglobal 256 00:15:17,000 --> 00:15:19,830 به طوری که برنامه نویس می تواند دوباره برای دسترسی به داده ها 257 00:15:19,830 --> 00:15:23,360 حتی اگر آن را چند دقیقه یا چند ساعت قبل راه اندازی شد. 258 00:15:23,360 --> 00:15:26,150 بنابراین در به عبارت دیگر، کوکی ها، که به رپ بد برای برخی از زمان 259 00:15:26,150 --> 00:15:29,990 به دلیل ناامنی در مرورگرها و آنها واقعا می تواند نقض حریم خصوصی ما و این همه، 260 00:15:29,990 --> 00:15:31,900 آنها در واقع ابزار بزرگ است زیرا بدون آنها 261 00:15:31,900 --> 00:15:36,110 شما دائما ورود به هر صفحه فیس بوک شما بازدید 262 00:15:36,110 --> 00:15:40,680 و یا هر ایمیل جیمیل به عنوان خوانده شده | اگر مرورگر به برخی از راه های به خاطر سپردن ندارد 263 00:15:40,680 --> 00:15:43,320 که در آن شما در حال حاضر تصدیق شده است. 264 00:15:43,320 --> 00:15:46,640 >> بنابراین در این راه کوکی ها به جلو و عقب در سراسر سیم فرستاده می شود. 265 00:15:46,640 --> 00:15:52,470 یکی دیگر از کنجکاوی در مورد کوکی ها، به خصوص در اینجا، این است که این است که به طور کامل در cleartext. 266 00:15:52,470 --> 00:15:54,930 بدون رمزنگاری در اینجا آنچه وجود دارد، 267 00:15:54,930 --> 00:15:57,240 و در واقع من در حال حاضر با استفاده از HTTP است. 268 00:15:57,240 --> 00:16:00,890 یکی از مورد علاقه های شما لحظه ما در CS50، که در حال حاضر 2 سال پیش 269 00:16:00,890 --> 00:16:04,750 در سراسر زمان یک ابزار به نام Firesheep بیرون آمد. 270 00:16:04,750 --> 00:16:08,320 این یک تکه از نرم افزار که توسط یک محقق امنیتی ساخته شده بود 271 00:16:08,320 --> 00:16:13,250 به عنوان یک زنگ خطر برای جامعه چقدر atrociously اجرا 272 00:16:13,250 --> 00:16:17,900 برخی از مکانیسم های تأیید هویت در وب سایت بود. 273 00:16:17,900 --> 00:16:22,880 بنابراین برای برخی از زمان، فیس بوک تقریبا به طور کامل بر روی HTTP، هیچ HTTPS بود. 274 00:16:22,880 --> 00:16:25,640 و حتی اگر شما هیچ ایده رمزنگاری چگونه کار می کند، S امن است 275 00:16:25,640 --> 00:16:27,950 پس از آن به معنای حداقل برخی از رمزگذاری درگیر وجود دارد. 276 00:16:27,950 --> 00:16:30,610 فیس بوک به رمز در آوردن نام کاربری و کلمه عبور استفاده می شود انجام داد، 277 00:16:30,610 --> 00:16:33,560 اما به محض این که شما خود را در نگاه pokes و یا پیام های خود و یا خبر خود را، 278 00:16:33,560 --> 00:16:35,360 تمام که شد تکه تکه کردن. 279 00:16:35,360 --> 00:16:37,870 تا جیمیل تا زمانی که فقط یک یا 2 سال پیش بود. 280 00:16:37,870 --> 00:16:41,100 هر بار که شما وارد سایت نشده اید، بله، آنها با استفاده از رمزگذاری امن، 281 00:16:41,100 --> 00:16:44,300 اما پس از آن آنها نیست. و به همین دلیل ممکن است که خواهد بود؟ 282 00:16:44,300 --> 00:16:49,210 چرا نه فقط استفاده از رمزنگاری از آن زمان در مورد استفاده شبیه به این؟ 283 00:16:49,210 --> 00:16:53,700 که چیست؟ من فکر می کنم که من شنیده ام چیزی. [دانشجو] سرعت. 284 00:16:53,700 --> 00:16:56,250 سرعت، درست است؟ در اطراف این راه وجود دارد. 285 00:16:56,250 --> 00:16:59,610 اما اگر شما فقط به نوعی در مورد آن فکر می کنم منطقی، اگر چیزی است که شما رمزگذاری، 286 00:16:59,610 --> 00:17:01,820 شما را مجبور به انجام حداقل یک کمی بیشتر کار. 287 00:17:01,820 --> 00:17:05,460 در pset 2 هنگامی که شما اجرا سزار یا Vigenere و یا حتی کرک 288 00:17:05,460 --> 00:17:07,760 فقط چاپ یک رشته نسبتا آسان است. 289 00:17:07,760 --> 00:17:12,040 رمزگذاری و پس از آن چاپ یک رشته با حداقل نیاز به کار کمی بیشتر است. 290 00:17:12,040 --> 00:17:14,520 >>  برای وب سایت های فوق العاده محبوب مانند گوگل و فیس بوک، 291 00:17:14,520 --> 00:17:18,839 اگر شما را مجبور به انجام کار بیشتر برای هر کاربر برای هر صفحه وب آنها مراجعه کنید، 292 00:17:18,839 --> 00:17:20,520 که فقط طول می کشد زمان بیشتری CPU. 293 00:17:20,520 --> 00:17:22,920 و اگر شما نیاز به زمان بیشتری CPU، شما ممکن است سرور بیشتری نیاز دارند، 294 00:17:22,920 --> 00:17:24,270 به این معنی است که شما ممکن است به پول بیشتری نیاز دارند. 295 00:17:24,270 --> 00:17:27,579 و به این ترتیب برای سالهای زیادی این واقعا بهترین شیوه نیست. 296 00:17:27,579 --> 00:17:31,440 مردم رمزگذاری SSL تنها زمانی که آنها نیاز به استفاده کنید. 297 00:17:31,440 --> 00:17:34,960 اما معلوم شد که این شخص با Firesheep فوق العاده روشن، 298 00:17:34,960 --> 00:17:37,920 زمانی که شما بچه ها که در حال حاضر در فیس بوک در حال حاضر - 299 00:17:37,920 --> 00:17:39,880 از روی کنجکاوی، بیایید ببینید که اگر شما می خواهید FESS. 300 00:17:39,880 --> 00:17:42,620 اگر شما را در فیس بوک در حال حاضر در برخی از تب، حتی اگر آن را foregrounded نیست، 301 00:17:42,620 --> 00:17:46,610 URL HTTP یا HTTPS شما است؟ 302 00:17:46,610 --> 00:17:50,560 [چندگانه دانش آموزان] S. S؟ [خنده] 303 00:17:50,560 --> 00:17:55,510 باشه. هر HTTP؟ فقط 1؟ باشه. 304 00:17:55,510 --> 00:17:58,940 پس همه ما می توانید حساب کاربری در فیس بوک است که مرد در حال حاضر هک. 305 00:17:58,940 --> 00:18:04,100 در اکثر موارد این تبدیل شده است به طور پیش فرض بر روی تبدیل شده است، حداقل در برخی از وب سایت ها است. 306 00:18:04,100 --> 00:18:08,120 داستان کوتاه و بلند مدت، اگر ترافیک وب سایت خود را رمزگذاری نمی کند، 307 00:18:08,120 --> 00:18:12,960 نه تنها HTML به عقب و جلو در سراسر WiFis تکه تکه کردن، 308 00:18:12,960 --> 00:18:16,760 بنابراین چیزهایی مانند کوکی ها را به عقب و جلو در سراسر هوا 309 00:18:16,760 --> 00:18:18,940 بدون هر نوع از رمزنگاری. 310 00:18:18,940 --> 00:18:23,540 بنابراین اگر شما فقط یک کمی زرنگ و دانا به برنامه نویسی یا یک بیت از گوگلینگ مهارت 311 00:18:23,540 --> 00:18:27,410 برای پیدا کردن نرم افزار رایگان است که این، همه شما باید انجام دهید این است که در استارباکس نشسته 312 00:18:27,410 --> 00:18:30,680 و یا نشستن در یک فرودگاه که در آن به طور کلی وجود دارد تکه تکه کردن فای 313 00:18:30,680 --> 00:18:36,070 یا PHPSESSID: و فقط برای تماشای کلمات کلیدی مثل کوکی 314 00:18:36,070 --> 00:18:39,300 چرا که اگر شما زرنگ و دانا فنی به تماشای فای 315 00:18:39,300 --> 00:18:43,010 برای همه بیت که جریان در سراسر هوا برای این الگو، 316 00:18:43,010 --> 00:18:50,840 بعد از آن شما می توانید که PHPSESSID مرد اتفاق می افتد، به bo8dal و غیره می گویند. 317 00:18:50,840 --> 00:18:53,890 و سپس دوباره اگر شما به اندازه کافی از لحاظ تکنیکی زرنگ و دانا و یا از ابزار مناسب، 318 00:18:53,890 --> 00:18:58,890 بعد از آن شما می توانید پیکربندی مرورگر خود را برای شروع ارائه است که مهر و موم دست 319 00:18:58,890 --> 00:19:05,030 Facebook.com، و فیس بوک رفتن به فرض که شما این است که مرد 320 00:19:05,030 --> 00:19:09,880 چرا که همه آنها می دانند این است که به شما نیست بلکه به این است که شما باید این شناسه منحصر به فرد است. 321 00:19:09,880 --> 00:19:14,650 بنابراین اگر شما سرقت که شناسه منحصر به فرد است و در حال حاضر آن را به وب سرور را آن گونه که مایلید تغییر دهید، 322 00:19:14,650 --> 00:19:16,860 آنها فقط می خواهم به شما خبر آن شخص را نشان می دهد 323 00:19:16,860 --> 00:19:18,980 و یا پیام آن شخص و یا pokes. 324 00:19:18,980 --> 00:19:23,190 >> و من در حال حاضر گوگل چگونه به فعال کردن HTTPS برای فیس بوک شاید. 325 00:19:23,190 --> 00:19:25,150 اما واقعا به همین سادگی است. 326 00:19:25,150 --> 00:19:27,660 و به این ترتیب فیس بوک و گوگل و مانند آن واقعا خوب است در این بدست، 327 00:19:27,660 --> 00:19:31,870 اما نگه داشتن چشم از همه بیشتر برای هر وب سایت شما بازدید هایی که HTTP استفاده نمی 328 00:19:31,870 --> 00:19:35,020 و نوعی از اطلاعات حساس بر روی آنها، 329 00:19:35,020 --> 00:19:37,490 که آیا آن را مالی یا شخصی و یا می خواهم. 330 00:19:37,490 --> 00:19:43,180 اگر آنها استفاده نمی کنید، کاملا احتمالا می تواند کوکی ها شبیه به این باشد به راحتی به سرقت رفته 331 00:19:43,180 --> 00:19:46,270 و پس از آن جعلی است، و این دقیقا همان چیزی است که Firesheep انجام شده است. 332 00:19:46,270 --> 00:19:48,250 شما به یک برنامه نویس نیست. 333 00:19:48,250 --> 00:19:51,680 همه شما تا به حال برای انجام یک اتصال به اینترنت، دریافت این ابزار رایگان، 334 00:19:51,680 --> 00:19:56,490 و آنچه که آن را انجام دهید این است که شما وارد سیستم شده و سپس آن را به شما نام فیس بوک نشان می دهد 335 00:19:56,490 --> 00:20:00,170 هر کس در ساندرز، در این تظاهرات خاص، در اطراف شما 336 00:20:00,170 --> 00:20:03,260 و همه شما تا به حال برای انجام این کار با کلیک بر روی نام خود و نرم افزار خودکار این روند 337 00:20:03,260 --> 00:20:05,970 خرناس که کوکی، ارائه آن را به فیس بوک را آن گونه که مایلید تغییر دهید، 338 00:20:05,970 --> 00:20:07,990 voila، شما وارد سایت شوید. 339 00:20:07,990 --> 00:20:11,190 پس این یکی دیگر از کسانی که رسما "این کار را انجام نمی کنند." 340 00:20:11,190 --> 00:20:14,660 اگر شما از شبکه خانگی خود را و شما می خواهید به سرهم بندی کردن، با تمام معنی، 341 00:20:14,660 --> 00:20:17,530 اما تحقق این عبور از خط در محیط دانشگاه. 342 00:20:17,530 --> 00:20:20,030 >> اما هدف در اینجا این است که واقعا به تاکید چگونه به انجام این کار 343 00:20:20,030 --> 00:20:22,320 اما چگونه می توان به دفاع در برابر این نوع از همه چیز. 344 00:20:22,320 --> 00:20:26,180 و راه حل بی اهمیت در اینجا، حتی اگر آن را به خودی خود ناقص است، 345 00:20:26,180 --> 00:20:31,360 است واقعا کاهش استفاده از سایتهایی را که به HTTPS استفاده نمی دائما در. 346 00:20:31,360 --> 00:20:34,520 بنابراین سایت هایی مانند فیس بوک و گوگل به طور فزاینده ای checkbox را انتخاب 347 00:20:34,520 --> 00:20:36,200 که در آن شما می توانید انتخاب کردن به این نوع از چیزی، 348 00:20:36,200 --> 00:20:40,000 و بانک ها در این سال به دلایل مشابه داشته است. 349 00:20:40,000 --> 00:20:43,580 پس فقط کمی از عامل ترس اگر ما می توانیم. اما آن را به طور خلاصه. 350 00:20:43,580 --> 00:20:46,420 این است که چگونه یک سرور که به یاد شما. 351 00:20:46,420 --> 00:20:50,760 و به محض این که آنها می توانند به یاد داشته باشید که شما، آنها می توانند هر چیزی را در مورد شما به یاد داشته باشید 352 00:20:50,760 --> 00:20:56,140 که برنامه نویس در داخل این superglobal خاص به نام $ _SESSION ذخیره می شود. 353 00:20:56,140 --> 00:20:59,750 و برای pset 7 ما آن را با استفاده از جزئیات فقط به یاد داشته باشید بین المللی، 354 00:20:59,750 --> 00:21:02,260 یعنی ID منحصر به فرد از کاربر که در سیستم وارد شده، 355 00:21:02,260 --> 00:21:05,880 به طوری که ما می دانیم آنها رو شده است وجود دارد. 356 00:21:05,880 --> 00:21:12,450 هر گونه سؤال و سپس در جلسه ها یا کوکی ها و یا مانند؟ 357 00:21:12,450 --> 00:21:15,130 Firesheep کار نمی کند و همچنین دیگر، 358 00:21:15,130 --> 00:21:18,310 و شما را مجبور به قرار دادن کامپیوتر شما را به یک حالت بی قاعده خاص 359 00:21:18,310 --> 00:21:20,700 بنابراین شما در واقع برای ترافیک علاوه بر خودتان گوش دادن. 360 00:21:20,700 --> 00:21:23,940 بنابراین اگر شما در حال دانلود Firesheep، تحقق بخشیدن به آن را کاملا به عنوان آسان 361 00:21:23,940 --> 00:21:26,850 آن را به عنوان یک بار بود برای نشان دادن. 362 00:21:26,850 --> 00:21:29,070 بسیار خوب. و آن را در سندرز نمی کنند. انجام این کار در صفحه اصلی است. 363 00:21:29,070 --> 00:21:30,890 پایگاه داده ها. 364 00:21:30,890 --> 00:21:33,580 یکی از چیزهایی که ما در pset 7 خیلی به عمد 365 00:21:33,580 --> 00:21:37,780 ما به شما یک نمونه جدول پایگاه داده را برای کاربران است که برخی از شناسه کاربر، 366 00:21:37,780 --> 00:21:41,020 برخی از نام کاربر، و برخی از کلمات عبور رمز شده در آن. 367 00:21:41,020 --> 00:21:44,520 و همانطور که خواهید دید، اگر شما در حال حاضر نیست، شما در حال رفتن به جدول به تغییر کمی است. 368 00:21:44,520 --> 00:21:47,710 شما در حال رفتن به برخی از Cache را به منظور اضافه کردن به هر یک از کاربران در آن جدول، 369 00:21:47,710 --> 00:21:51,130 و شما در حال رفتن به یکی دیگر از جدول تاریخ، برای اضافه کردن یک جدول پرتفوی، 370 00:21:51,130 --> 00:21:53,310 یا شاید چیز دیگری تماس بگیرید. 371 00:21:53,310 --> 00:21:56,740 اما در فکر کردن در مورد چگونه به انجام این کار، اجازه باز کردن این ابزار 372 00:21:56,740 --> 00:22:00,570 که ما آن را در روز جمعه استفاده می شود، اما اگر ناآشنا باشند، این دستگاه همراه با یک ابزار 373 00:22:00,570 --> 00:22:04,680 به نام phpMyAdmin به است که اتفاقا در پی اچ پی نوشته شده است، 374 00:22:04,680 --> 00:22:07,950 اما هدف خود را در زندگی، پس از من در اینجا به عنوان jharvard ورود به سیستم با زرشکی، 375 00:22:07,950 --> 00:22:15,160 کاربر پسند از راه مشاهده و تغییر پایگاه داده من به من می دهد. 376 00:22:15,160 --> 00:22:18,040 >> پایگاه داده است که من در حال اجرا بر روی دستگاه خروجی زیر نامیده می شود. 377 00:22:18,040 --> 00:22:23,420 این بسیار محبوب است، و آن را رایگان پایگاه داده منبع باز است که زیبا و آسان برای استفاده است، 378 00:22:23,420 --> 00:22:25,620 به خصوص با جلو به پایان می رسد مثل این. 379 00:22:25,620 --> 00:22:29,350 چه این ابزار به من اجازه می دهد برای انجام این کار، به عنوان مثال، فشار با نوک انگشت اطراف جداول. 380 00:22:29,350 --> 00:22:30,890 اجازه بدهید من به جلو بروید و این کار. 381 00:22:30,890 --> 00:22:36,580 روز جمعه ما ایجاد یک جدول به نام دانش آموزانی که ساده و فوق العاده بود. 382 00:22:36,580 --> 00:22:41,680 این 3 ستون - شناسه، نام، ایمیل و ها - و من دستی قرار داده شده یک زن و شوهر از ردیف 383 00:22:41,680 --> 00:22:44,420 مانند دیوید و مایک در این مثال خاص است. 384 00:22:44,420 --> 00:22:47,290 بیایید این بیت بیشتر، و اجازه دهید فرض کنیم که ما می خواهیم به خاطر داشته باشید 385 00:22:47,290 --> 00:22:49,660 فقط نام و ایمیل در مورد یک کاربر. 386 00:22:49,660 --> 00:22:53,090 ساختار اینجا کلیک کنید تا در اینجا در بالای صفحه. 387 00:22:53,090 --> 00:22:55,440 و دوباره، pset شما را قدم به قدم از طریق مراحل لازمه در اینجا، 388 00:22:55,440 --> 00:22:58,150 پس نگران نباشید اگر مقداری از این است که کمی سریع است. 389 00:22:58,150 --> 00:22:59,690 سپس من قصد دارم با کلیک بر روی اینجا. 390 00:22:59,690 --> 00:23:02,270 من قصد دارم به اضافه کردن برخی از تعداد ستون ها بعد از ایمیل 391 00:23:02,270 --> 00:23:04,130 چون من می خواهم برای اضافه کردن به چیزی شبیه به خانه. 392 00:23:04,130 --> 00:23:06,640 من را فراموش کرده به ضبط خانه یک دانش آموز است. 393 00:23:06,640 --> 00:23:11,400 اجازه دهید کلیک کنید، و در حال حاضر ما به این شکل است که متاسفانه کمی گسترده ای از چپ به راست، 394 00:23:11,400 --> 00:23:13,710 اما من قصد دارم به نام از خانه این زمینه تماس بگیرید. 395 00:23:13,710 --> 00:23:16,050 و پس از آن نوع را انتخاب کنید. 396 00:23:16,050 --> 00:23:18,870 پس اجازه چت مختصری در مورد انواع مختلف در MySQL 397 00:23:18,870 --> 00:23:24,590 زیرا در حالی که PHP است ضعیف تایپ و آن را مرتب سازی بر اساس نمایشنامه های سریع و با انواع شل، 398 00:23:24,590 --> 00:23:29,430 در یک پایگاه داده به خصوص این مهم است که فوق العاده در واقع استفاده از تایپ کردن را به نفع خود 399 00:23:29,430 --> 00:23:33,260 چرا که یکی از خروجی زیر همه چیز و دیگر موتورهای پایگاه داده می تواند برای شما انجام دهد 400 00:23:33,260 --> 00:23:37,910 اطمینان حاصل شود که شما داده های ساختگی را به پایگاه داده خود قرار داده است. 401 00:23:37,910 --> 00:23:41,850 این نوع از خطا چک کردن در دسترس شما است. 402 00:23:41,850 --> 00:23:46,250 >> خانه ما بدیهی است که نمی خواهید آن بین المللی است، که یک مقدار 32 بیتی در MySQL به. 403 00:23:46,250 --> 00:23:49,810 آیا این بحث به طور خلاصه در روز جمعه در مورد VARCHAR، که مخفف طول متغیر کاراکتر. 404 00:23:49,810 --> 00:23:54,720 این چیست؟ این به شما اجازه می دهد تا مشخص کنید که می خواهید این را به رشته ای از برخی از مرتب کردن بر اساس. 405 00:23:54,720 --> 00:23:56,840 شما در پیشبرد چه مدت آن است که واقعا نمی دانند، 406 00:23:56,840 --> 00:24:00,100 بنابراین ما خودسرانه به نام خانه می تواند 255 حرف می گویند. 407 00:24:00,100 --> 00:24:04,190 اما شما می توانید با 32، 64 - واقعا هر تعداد. 408 00:24:04,190 --> 00:24:10,700 اما مزیت استفاده از VARCHAR بیش از یک فیلد به نام کاراکتر چیست؟ 409 00:24:10,700 --> 00:24:15,110 اگر من فقط به طور مستقیم در پایین حرکت کنید در اینجا، توجه داشته باشید که کاراکتر وجود دارد و VARCHAR وجود دارد. 410 00:24:15,110 --> 00:24:19,520 VARCHAR طول متغیر کاراکتر، کاراکتر یک طول ثابت کاراکتر است. 411 00:24:19,520 --> 00:24:24,730 بنابراین تنها در آن تعریف شده است، مزیت یا ضرر هر یک از این چه؟ 412 00:24:24,730 --> 00:24:30,490 به عبارت دیگر، که مراقبت در مورد تمایز، و یا چرا باید از شما مراقبت؟ 413 00:24:31,660 --> 00:24:35,750 >> آره. [دانشجوی] VARCHAR دارای انعطاف پذیری بیشتری است اما طول می کشد تا حافظه بیشتر است. 414 00:24:35,750 --> 00:24:40,730 خوب است. VARCHAR طول می کشد تا - اجازه دهید را ببینید. من مطمئن هستم که اگر من شنیده ام که حق نیست. 415 00:24:40,730 --> 00:24:42,360 که یک بار دیگر به شما می گویند؟ 416 00:24:42,360 --> 00:24:45,850 [دانشجو] من گفت VARCHAR احتمالا دارای انعطاف پذیری بیشتری است، اما طول می کشد تا حافظه بیشتر است. 417 00:24:45,850 --> 00:24:51,170 جالب است. باشه. VARCHAR احتمالا به شما انعطاف پذیری بیشتری می دهد، اما طول می کشد تا به حافظه بیشتری است. 418 00:24:51,170 --> 00:24:53,220 دومی لزوما درست نیست. 419 00:24:53,220 --> 00:24:56,290 آن را در چهار چوب بستگی دارد، اما اجازه دهید به دست می آید به آن است. 420 00:24:56,290 --> 00:25:03,230 >> [پاسخ دانش آموز نامفهوم] دقیقا. 421 00:25:03,230 --> 00:25:06,900 در واقع این مورد که کاراکتر به طور معمول استفاده از حافظه بیشتر 422 00:25:06,900 --> 00:25:10,950 زیرا یک کاراکتر، مانند C، است، آن را مانند یک رشته آرایه ای از کاراکتر ها است. 423 00:25:10,950 --> 00:25:13,690 بنابراین اگر شما می گویند که یک رشته کاراکتر طول 255، 424 00:25:13,690 --> 00:25:16,910 پایگاه داده است که به معنای واقعی کلمه به شما 255 کاراکتر را. 425 00:25:16,910 --> 00:25:22,290 و اگر خانه به پایان می رسد تا مدر و 6 کاراکتر در کل، 426 00:25:22,290 --> 00:25:25,090 شما در حال هدر رفتن بیش از 200 کاراکتر است. 427 00:25:25,090 --> 00:25:29,640 >> بنابراین VARCHAR به طور موثر تنها به عنوان شخصیت های بسیاری استفاده می کند که لازم است 428 00:25:29,640 --> 00:25:31,590 به یک مقدار حداکثر است. 429 00:25:31,590 --> 00:25:35,470 اما قیمت به شما پرداخت شده است که در واقع عملکرد، به طور بالقوه است. 430 00:25:35,470 --> 00:25:39,740 اگر شما در پیشبرد دانم که تمام رشته های خود را در حال رفتن به 8 کاراکتر - 431 00:25:39,740 --> 00:25:43,090 به عنوان مثال، فرض کنید که شما نیاز به کلمه عبور در طول 8 - 432 00:25:43,090 --> 00:25:47,350 حرکت صعودی با استفاده از یک رشته کاراکتر در مناسبت، هر چند اغلب، 433 00:25:47,350 --> 00:25:51,100 برای تعیین طول ثابت برای چیزی شبیه به یک رمز عبور 434 00:25:51,100 --> 00:25:53,300 زیرا در حال حاضر این بانک اطلاعاتی می تواند حتی دقیق. 435 00:25:53,300 --> 00:25:58,160 اگر آن را می داند که هر رشته کاراکتر، هر رشته در یک ستون به طول یکسان است، 436 00:25:58,160 --> 00:26:00,780 شما می توانید از ویژگی های با دسترسی تصادفی است. 437 00:26:00,780 --> 00:26:05,110 پرش در اطراف شما می توانید در زمینه های مختلف کاراکتر در جدول پایگاه داده خود را 438 00:26:05,110 --> 00:26:07,940 زیرا از یک پایگاه داده به عنوان سطر و ستون ها فکر می کنم. 439 00:26:07,940 --> 00:26:11,670 بنابراین اگر هر یک از رشته های با طول یکسان است، 440 00:26:11,670 --> 00:26:17,820 شما می دانید که یکی از اولین در BYTE 0، بعدی این است که در بایت 8 441 00:26:17,820 --> 00:26:20,240 و سپس به 16 و سپس 24 و غیره. 442 00:26:20,240 --> 00:26:24,500 بنابراین اگر تمام رشته ها با طول یکسان هستند، شما می توانید پرش در اطراف خیلی بیشتر موثر است. 443 00:26:24,500 --> 00:26:26,710 طوری که می تواند سود از نظر عملکرد، 444 00:26:26,710 --> 00:26:29,420 اما به طور معمول شما لوکس دانستن در پیش ندارد، 445 00:26:29,420 --> 00:26:32,170 بنابراین VARCHAR راه رفتن است. 446 00:26:32,170 --> 00:26:36,030 در اینجا یکی دیگر از جزئیات است که حتی فیس بوک را به سرانجام فرار. 447 00:26:36,030 --> 00:26:39,670 نوع داده int هستند، و ما مرتب کردن بر اساس استفاده از آنها به طور پیش فرض هر زمان که ما می خواهیم یک عدد، 448 00:26:39,670 --> 00:26:41,750 اما آن را فقط 32 بیت است. 449 00:26:41,750 --> 00:26:46,210 >> حتی اگر فیس بوک کاملا 4 میلیارد کاربر در حال حاضر، 450 00:26:46,210 --> 00:26:48,680 قطعا برخی از مردم خارج وجود دارد وجود دارد با چندین حساب 451 00:26:48,680 --> 00:26:50,960 یا حساب هایی که باز شده است و پس از آن بسته است، 452 00:26:50,960 --> 00:26:55,130 و به همین ترتیب فیس بوک خود من اعتقاد دارم که چند سال پیش برای انتقال از نوع int 453 00:26:55,130 --> 00:27:00,010 به، آنگونه که نامیده می شود، bigint است که تنها 64 بیت به جای. 454 00:27:00,010 --> 00:27:02,230 پس این هم یک تصمیم گیری طراحی شده است. 455 00:27:02,230 --> 00:27:06,570 شما شگفت آور خوش شانس خواهد بود اگر پروژه نهایی خود را راه اندازی تبدیل می شود، 456 00:27:06,570 --> 00:27:10,010 4 میلیارد و 1 کاربر، دادن و یا گرفتن، 457 00:27:10,010 --> 00:27:13,200 که در این صورت با استفاده از نوع داده int ممکن است کمی کوته بینانه است. 458 00:27:13,200 --> 00:27:16,230 اما در واقعیت، جدول کاربران شما احتمالا خوب با نوع داده int است. 459 00:27:16,230 --> 00:27:19,340 اما برای چیزی مانند pset 7، مانند جدول تاریخ خود را، 460 00:27:19,340 --> 00:27:23,700 شما ممکن است هزاران، میلیون ها نفر از کاربران اگر شما به etrade.com تکامل داشته باشد. 461 00:27:23,700 --> 00:27:26,020 بنابراین در حالی که شما ممکن است بیش از 4 میلیارد کاربر را نداشته باشند، 462 00:27:26,020 --> 00:27:30,070 آن دسته از کاربران دارید، ممکن است بیش از 4 میلیارد معاملات در طول زمان - 463 00:27:30,070 --> 00:27:33,200 خرید و فروش و چیزهایی در تاریخ خود است. 464 00:27:33,200 --> 00:27:38,090 بنابراین اگر شما پیش بینی - باز هم، این مشکلات خوب است که اگر شما این اطلاعات بسیار - 465 00:27:38,090 --> 00:27:40,920 اگر شما پیش بینی داده ها بیش از اندازه از بین المللی، 466 00:27:40,920 --> 00:27:47,740 رفتن با چیزی شبیه به bigint جهت طراحان اغلب کافی نیست به تصویب رسید 467 00:27:47,740 --> 00:27:49,710 از آنجا که شکل مردم که نمی شود یک مشکل، 468 00:27:49,710 --> 00:27:51,930 اما این آسان است به چیزی بزرگتر از آن را انتخاب کنید. 469 00:27:51,930 --> 00:27:55,380 دهدهی ما در حال استفاده در pset 7، که دقت ثابت را مشخص می 470 00:27:55,380 --> 00:27:59,840 بنابراین شما می توانید مسائل مربوط به شناور و دو برابر و ترتیب reals و مانند آن اجتناب کنند. 471 00:27:59,840 --> 00:28:02,440 >> و پس از آن در برخی از زمینه های دیگر در اینجا وجود دارد. خواهیم دست خود را در آنها تا حدی موج. 472 00:28:02,440 --> 00:28:07,270 اما تاریخ، زمان فرمت مقرر در خروجی زیر، 473 00:28:07,270 --> 00:28:10,830 و استفاده از خرما ذخیره به عنوان تاریخ و نوع متغیر varchar نیست 474 00:28:10,830 --> 00:28:15,730 این بدان معنی است که پایگاه داده در واقع می توانید آنها را دوباره فرمت را به فرمت های مختلف، 475 00:28:15,730 --> 00:28:18,800 آیا یک فرمت و یا فرمت های اروپایی و یا مانند آن - با این حال شما آن را می خواهم - 476 00:28:18,800 --> 00:28:22,700 بسیار موثر تر از اگر آن را تنها برخی VARCHAR عمومی. 477 00:28:22,700 --> 00:28:25,150 و پس از آن برخی از باینری دیگر، VARBINARY، حباب وجود دارد. 478 00:28:25,150 --> 00:28:28,580 این دوتایی اشیاء بزرگ، و شما همچنین می توانید به ذخیره سازی داده های باینری 479 00:28:28,580 --> 00:28:30,750 و همچنین به عنوان داده های هندسی در یک پایگاه داده است. 480 00:28:30,750 --> 00:28:34,350 اما ما معمولا در مورد نوع داده int و نوع متغیر varchar و مانند مراقبت. 481 00:28:34,350 --> 00:28:36,230 اجازه بدهید پایان این مثال با خانه. 482 00:28:36,230 --> 00:28:40,030 خانه من قصد دارم به خودسرانه می گویند 255 کاراکتر. 483 00:28:40,030 --> 00:28:42,850 سپس مقدار پیش فرض ما می توانیم این کار را انجام دهند. 484 00:28:42,850 --> 00:28:47,440 ما می توانیم از هر کس که به طور پیش فرض در ماتر مجلس قرار داده است، به عنوان مثال. 485 00:28:47,440 --> 00:28:49,710 که چگونه ما می تواند مشخص است که پایگاه داده 486 00:28:49,710 --> 00:28:52,460 باید اطمینان حاصل شود که کسی که همواره یک ارزش است. اما من ترک می شود که. 487 00:28:52,460 --> 00:28:55,270 در واقع، برای افرادی که زندگی می کنند در خارج از محوطه دانشگاه، و نه در خانه، 488 00:28:55,270 --> 00:28:59,590 شاید من در واقع می خواهید مشخص کنید که مقدار پیش فرض برای خانه NULL، 489 00:28:59,590 --> 00:29:04,890 و پس از آن من نیاز به این جعبه و به پایگاه داده از آن اشکالی ندارد، اگر خانه کاربر NULL است. 490 00:29:04,890 --> 00:29:07,270 >> باز هم، این یکی دیگر از مکانیسم دفاعی شما می تواند در جای خود قرار داده است 491 00:29:07,270 --> 00:29:10,590 بنابراین شما حتی نمی باید آن را در کد PHP خود را قرار داده است لزوما. 492 00:29:10,590 --> 00:29:14,630 پایگاه داده اطمینان حاصل شود که همه چیز است و یا تهی نیست. 493 00:29:14,630 --> 00:29:17,310 و پس از آن در نهایت، ویژگی ها است. 494 00:29:17,310 --> 00:29:18,920 هیچ کدام از اینها واقعا مربوطه است. 495 00:29:18,920 --> 00:29:22,880 دودویی بدون علامت - هیچ یک از آن ها مربوط به VARCHAR. 496 00:29:22,880 --> 00:29:24,220 صفحه اول. 497 00:29:24,220 --> 00:29:27,320 آیا هر کسی می دانم و یا به یاد داشته باشید و یا حدس به عنوان شاخص 498 00:29:27,320 --> 00:29:29,510 چیزی شبیه به خانه؟ 499 00:29:29,510 --> 00:29:35,240 این نیز است که در واقع یک تصمیم مهم و نسبتا آسان طراحی. 500 00:29:35,240 --> 00:29:39,200 برای کسانی که هنوز رتبهدهی نشده است دیده می شود، در روز جمعه ما به طور خلاصه در مورد کلیدهای اصلی صحبت کردیم. 501 00:29:39,200 --> 00:29:43,240 کلید اصلی در یک جدول پایگاه داده، زمینه و یا ستون است 502 00:29:43,240 --> 00:29:46,270 که منحصر به فرد شناسایی ردیف در جدول. 503 00:29:46,270 --> 00:29:49,150 پس در جدول در حال حاضر ما باید شناسه، نام و ایمیل. 504 00:29:49,150 --> 00:29:52,050 کدام یک از کسانی که بهترین نامزد را به عنوان یک کلید اصلی است. 505 00:29:52,050 --> 00:29:55,810 نقش که منحصر به فرد شناسایی ردیف؟ 506 00:29:55,810 --> 00:29:57,530 احتمالا ID. 507 00:29:57,530 --> 00:29:59,930 مسلما، ما نیز که می تواند هر چند استفاده کنید؟ 508 00:29:59,930 --> 00:30:02,860 شاید شما می توانید ایمیل را به دلیل در تئوری آن را منحصر به فرد استفاده کنید 509 00:30:02,860 --> 00:30:05,380 مگر اینکه مردم به به اشتراک گذاری حساب های ایمیل. 510 00:30:05,380 --> 00:30:09,980 اما واقعیت این است که اگر شما در حال استفاده از یک ID عددی مانند 1234، 511 00:30:09,980 --> 00:30:14,170 که تنها 32 بیت، در حالی که یک آدرس ایمیل می تواند از این کلمه در ادامه متن و یا بسیاری از این بایت های بسیاری است. 512 00:30:14,170 --> 00:30:16,610 بنابراین از نظر بهره وری برای شناسههای منحصر به فرد، 513 00:30:16,610 --> 00:30:19,270 آن را به سمت عمل خوب بین المللی به استفاده از 514 00:30:19,270 --> 00:30:23,090 حتی اگر شما باید برخی از رشته نامزد که شما مسلما می تواند از آن استفاده کنید. 515 00:30:23,090 --> 00:30:26,760 >> برای چیزی شبیه به خانه، این نه باید یک کلید اصلی 516 00:30:26,760 --> 00:30:30,770 زیرا در این صورت تنها 1 نفر می تواند زندگی در ماتر و 1 نفر در چرخمساز و مانند آن. 517 00:30:30,770 --> 00:30:32,790 به همین ترتیب، این نباید منحصر به فرد. 518 00:30:32,790 --> 00:30:37,830 تفاوت بین اصلی و منحصر به فرد این است که در مورد جدول فعلی ما است، 519 00:30:37,830 --> 00:30:42,620 ID خواهد بود اولیه است اما ایمیل اولیه به این دلیل که ما تنها به ذکر نیست - 520 00:30:42,620 --> 00:30:44,740 عملکرد - اما آن را هنوز هم باید منحصر به فرد باشد. 521 00:30:44,740 --> 00:30:47,200 بنابراین شما هنوز هم می تواند منحصر به فرد بدون اینکه این ادعا اجرای 522 00:30:47,200 --> 00:30:49,520 که آن را فوق العاده مهم رشته اصلی است. 523 00:30:49,520 --> 00:30:52,610 اما این یکی بسیار مفید: شاخص است. 524 00:30:52,610 --> 00:30:56,180 اگر شما در پیشبرد پروژه نهایی خود را می دانید، برای pset 7، و یا به طور کلی، 525 00:30:56,180 --> 00:30:59,480 که این خانه مزرعه است برای رفتن به چیزی است که شما بر روی تعداد زیادی جستجو 526 00:30:59,480 --> 00:31:01,910 با استفاده از کلمه کلیدی انتخاب و یا چیز دیگری، 527 00:31:01,910 --> 00:31:05,180 پس از آن شما به preemptively می تواند بانک اطلاعاتی سحر و جادو خود را به کار بگویید 528 00:31:05,180 --> 00:31:10,510 و مطمئن شوید که آن را در حافظه ایجاد هر گونه ساختار داده فانتزی لازم 529 00:31:10,510 --> 00:31:13,770 برای تسریع جستجو بر اساس خانه. 530 00:31:13,770 --> 00:31:17,860 شاید آن را به یک جدول هش استفاده کنید، شاید آن را به یک لیست پیوندی استفاده کنید. 531 00:31:17,860 --> 00:31:21,260 در واقع، این امر منجر به استفاده از یک درخت، اغلب یک ساختار به نام درخت B - 532 00:31:21,260 --> 00:31:24,090 درخت اما درخت B - که یک درخت بسیار گسترده است 533 00:31:24,090 --> 00:31:27,370 که شما ممکن است در یک کلاس مانند CS124، کلاس ساختارهای داده را ببینید. 534 00:31:27,370 --> 00:31:31,800 اما در کوتاه مدت، شما لازم نیست که به نگرانی در مورد که در هنگام استفاده از نرم افزار پایگاه داده های هوشمند. 535 00:31:31,800 --> 00:31:35,890 شما فقط می توانید آن را بگویید، "شاخص این زمینه، بنابراین من می تواند بر روی آن بیشتر موثر است." 536 00:31:35,890 --> 00:31:40,250 >> اگر شما را ترک کردن و شما سعی می کنید برای هر کس که در پایگاه داده است که در ماتر زندگی می کند، 537 00:31:40,250 --> 00:31:42,710 آن را به جستجوی خطی واگذاردن. 538 00:31:42,710 --> 00:31:45,360 و اگر شما 6000 دانشجویان دوره لیسانس همه موجودات زنده در برخی از خانه، 539 00:31:45,360 --> 00:31:47,900 شما در حال رفتن به جستجوی کل جدول را برای پیدا کردن Matherites، 540 00:31:47,900 --> 00:31:52,190 در حالی که اگر به شما می گویند اول، امیدوارم از آن خواهد بود چیزی نزدیک به یک جستجوی لگاریتمی 541 00:31:52,190 --> 00:31:54,510 برای پیدا کردن این نوع از دانش آموزان است. 542 00:31:54,510 --> 00:31:56,750 این فقط یکی از ویژگی های آزاد به نوبه خود بر روی، 543 00:31:56,750 --> 00:31:59,530 حتی اگر در قیمت برخی از مقدار فضای آمده است. 544 00:31:59,530 --> 00:32:02,690 در نهایت، افزایش خودکار، این زمینه AI، 545 00:32:02,690 --> 00:32:05,830 که فقط به این معنی است که اگر آن را از نوع int است و شما نمی خواهید به مراقبت از آن را به خودتان افزایش 546 00:32:05,830 --> 00:32:07,570 هر بار یک کاربر جدید وجود دارد، بررسی کنید که 547 00:32:07,570 --> 00:32:11,910 و هر کاربر قرار داده می شود که به طور خودکار یک ID جدید را دریافت کنید. 548 00:32:11,910 --> 00:32:15,620 بیایید ذخیره را کلیک کنید، و در حال حاضر اجازه دهید پیدا کردن خطا و با این طرح است. 549 00:32:15,620 --> 00:32:20,200 اگر من به مرور، توجه کنید که هر دو مایک و خانه من است NULL بروید. 550 00:32:20,200 --> 00:32:22,420 من می توانم phpMyAdmin به ویرایش این دستی استفاده کنید. 551 00:32:22,420 --> 00:32:25,110 من می توانم در اینجا و به نوع در ماتر و سپس Enter را فشار دهید. 552 00:32:25,110 --> 00:32:27,740 و در حال حاضر در جدول متفاوت است اطلاع می دهد. 553 00:32:27,740 --> 00:32:29,270 اما متوجه می تواند چیز دیگری نیز هست. 554 00:32:29,270 --> 00:32:33,530 1 ID دیوید است، بنابراین phpMyAdmin به دوباره است فقط یک ابزار مدیریتی است؛ 555 00:32:33,530 --> 00:32:35,970 این چیزی است که کاربران خود را در حال رفتن به دیدن نمی باشد. 556 00:32:35,970 --> 00:32:38,810 بنابراین اگر من به جای زبانه SQL تا بالا کلیک کنید - 557 00:32:38,810 --> 00:32:41,450 و دوباره، pset 7 شما را به بیش از این نمایش داده شد معرفی - 558 00:32:41,450 --> 00:32:45,260 من دستی می تواند ساختار دستور زبان پرس و جو SQL اجرا 559 00:32:45,260 --> 00:32:56,410 کاربران تکمیلی خانه = 'Pfoho' WHERE ID = 1. 560 00:32:56,410 --> 00:33:00,830 این پرس و جو های SQL هستند، به سادگی به اندازه کافی، کاملا قابل خواندن از چپ به راست است. 561 00:33:00,830 --> 00:33:04,350 به روز رسانی جدول کاربران، مجموعه ای از میدان به نام خانه Pfoho 562 00:33:04,350 --> 00:33:06,830 که در آن ID کاربر 1 است. 563 00:33:06,830 --> 00:33:11,480 یا من حتی می تواند انجام دهد که در آن ایمیل = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 تا زمانی که منحصر به فرد من را شناسایی، که به کار نیز هست. 565 00:33:14,860 --> 00:33:18,810 اما ID گرایش به عملکرد بالاتر، به طوری که انجام این کار بگذارید. 566 00:33:18,810 --> 00:33:22,950 بیایید برو کلیک کنید. خوب، lecture.users وجود ندارد. خطای من چه خبر؟ 567 00:33:22,950 --> 00:33:26,220 جدول در واقع به نام اینجا چه خبر؟ 568 00:33:26,220 --> 00:33:28,770 آن را به نام دانش آموزان فقط به خاطر این است که آنچه که ما در اینجا در بالا سمت چپ. 569 00:33:28,770 --> 00:33:31,860 آن را به نام دانشجویان، کاربران نمی شده است. بنابراین در حال حاضر برو کلیک کنید. 570 00:33:31,860 --> 00:33:34,330 1 سطر متاثر می شود. پرس و جو و جو در زمان 0.01 ثانیه صورت گرفت. 571 00:33:34,330 --> 00:33:38,010 اگر من در حال حاضر مرور را کلیک کنید، در حال حاضر زندگی مالان در Pfoho. 572 00:33:38,010 --> 00:33:42,070 به طوری که یکی دیگر از طعم SQL، اما pset شما را از طریق یک کمی بیشتر از آن راه رفتن است. 573 00:33:42,070 --> 00:33:44,710 >> یک تصمیم احمقانه من در اینجا در حال حاضر ساخته شده است وجود دارد. 574 00:33:44,710 --> 00:33:47,820 من استدلال می کنند که این طراحی پایگاه داده ناکارآمد است 575 00:33:47,820 --> 00:33:51,650 زیرا مردم بیشتر اضافه کردن به جدول دانش آموزان، 576 00:33:51,650 --> 00:33:54,730 بیشتر از ما من شروع به اضافه کردن، بیشتر از TFS من شروع به اضافه کردن، 577 00:33:54,730 --> 00:33:58,320 ما در حال رفتن به شروع به دیدن آنچه در این جدول اضافی؟ 578 00:34:00,840 --> 00:34:06,020 >> آره. [دانشجو] دیدن است که آن را در دانش آموزان، ما با استفاده از همان [نامفهوم] 579 00:34:06,020 --> 00:34:07,360 همان - راست، دقیقا. 580 00:34:07,360 --> 00:34:10,400 بنابراین اگر 400 نفر را در ماتر زندگی می کنند، دادن و یا گرفتن، 581 00:34:10,400 --> 00:34:15,000 در نهایت این جدول به 400 ردیف است که می گویند: "مادر"، "ماتر" 582 00:34:15,000 --> 00:34:16,590 "ماتر"، "مادر"، "مادر". 583 00:34:16,590 --> 00:34:19,820 ما در حال هدر رفتن تمام از این بایت، و زن و شوهر از takeaways وجود دارد. 584 00:34:19,820 --> 00:34:23,080 1، در مورد گوشه ای دیوانه وجود دارد که در آن اگر کسی مقدار زیادی از پول را می پردازد 585 00:34:23,080 --> 00:34:25,949 و ماتر تغییر نام، ما در حال حاضر مجبور به تغییر جدول پایگاه داده ما تمام است. 586 00:34:25,949 --> 00:34:29,730 که قصد ندارم به اغلب اتفاق می افتد، هر چند Pfoho یک بار به نام خانه شمالی بود 15 سال پیش، 587 00:34:29,730 --> 00:34:32,310 پس از آن اتفاق می افتد. اما این همه که قانع کننده نیست. 588 00:34:32,310 --> 00:34:36,000 قانع کننده تر از مورد گوشه ای می خواهم که از نیاز به به روز رسانی داده ها را به صورت فله 589 00:34:36,000 --> 00:34:41,150 برای یک پایگاه داده است که چرا به شما ذخیره ماتر دوباره و دوباره و دوباره و دوباره؟ 590 00:34:41,150 --> 00:34:43,020 که تعداد زیادی از کاراکتر ها، 6 کاراکتر. 591 00:34:43,020 --> 00:34:45,500 نمی توانم کار می کنیم و حتی بهتر از آن، به ویژه برای Pforzheimer؟ 592 00:34:45,500 --> 00:34:48,320 مطمئنا ما می توانیم انجام دهیم بهتر از آن است که بسیاری از شخصیت های. 593 00:34:48,320 --> 00:34:51,790 چرا نه تنها یک شناسه منحصر به فرد با هر یک از این خانه ها مرتبط 594 00:34:51,790 --> 00:34:55,020 و ذخیره است که برای هر کاربر؟ بنابراین سعی کنید این اجازه. 595 00:34:55,020 --> 00:35:00,610 به جای اینکه فقط با استفاده از جدول دانش آموزان، به من اجازه رفتن را به پایگاه داده سخنرانی من در اینجا در بالا سمت چپ. 596 00:35:00,610 --> 00:35:02,600 توجه داشته باشید که در اینجا به آن می گوید: ایجاد جدول است. 597 00:35:02,600 --> 00:35:04,550 اجازه بدهید من یک جدول جدید به نام خانه ساخت. 598 00:35:04,550 --> 00:35:08,880 تعداد ستون ها می شود 2. را وارد کنید. 599 00:35:08,880 --> 00:35:11,200 حالا من 2 زمینه می باشد. 600 00:35:11,200 --> 00:35:14,600 من قصد دارم به این نام، و آن را برای رفتن به یک VARCHAR طول 255، 601 00:35:14,600 --> 00:35:18,770 >> اما این کاملا خودسرانه است. اجازه بدهید من قرار دادن این پایین اینجا کنوانسیون. 602 00:35:18,770 --> 00:35:22,840 بنابراین ID قرار داده تا در اینجا. اجازه دهید هر خانه یک شناسه منحصر به فرد است. 603 00:35:22,840 --> 00:35:25,360 اجازه دهید هر خانه، یک نام است. 604 00:35:25,360 --> 00:35:30,980 اجازه دهید مشخص کنید که شناسه بدون علامت فقط با کنوانسیون خواهد بود تنها با استفاده از اعداد مثبت. 605 00:35:30,980 --> 00:35:35,020 بیایید پیش بروید و این زمینه را برای افزایش خودکار. 606 00:35:35,020 --> 00:35:38,160 و هر چیز دیگری که ما نیاز داریم؟ 607 00:35:38,160 --> 00:35:41,010 اجازه دهید به جلو و ذخیره را کلیک کنید. 608 00:35:41,010 --> 00:35:42,480 حالا من یک جدول دوم است. 609 00:35:42,480 --> 00:35:45,860 توجه داشته باشید که به عنوان یک کنار گذاشته این است که کمی مرموز دستور SQL 610 00:35:45,860 --> 00:35:50,280 است که شما را مجبور به تایپ دستی اگر یک ابزار مدیریتی مثل phpMyAdmin به با استفاده از. 611 00:35:50,280 --> 00:35:51,990 بنابراین دلیل دیگری که ما از آن استفاده کنید. 612 00:35:51,990 --> 00:35:55,480 مرتب سازی بر زیبا و مفید آموزشی به این دلیل است که شما می توانید بر روی اطراف 613 00:35:55,480 --> 00:36:01,050 و بفهمند که چگونه همه چیز تنها با کپی و چسباندن چه phpMyAdmin به انجام کار می کنند. 614 00:36:01,050 --> 00:36:04,150 اما فرمان جدول ایجاد آن چیزی است که فقط به اعدام شد، و در اینجا جدول. 615 00:36:04,150 --> 00:36:11,370 اجازه بدهید من به جلو بروید در حال حاضر و با کلیک کردن بر روی زبانه Insert استفاده از SQL خام به جای ساده است. 616 00:36:11,370 --> 00:36:15,040 اجازه دهید به من را به خانه های درج، 617 00:36:15,040 --> 00:36:22,230 و من قصد دارم به نام از خانه، رفتن به یک مقدار "ماتر" می گویند. 618 00:36:22,230 --> 00:36:24,790 همین. این ترکیب نحوی است کمی بیشتر مرموز. 619 00:36:24,790 --> 00:36:26,660 این نام از زمینه ها ما می خواهیم برای وارد کردن است. 620 00:36:26,660 --> 00:36:30,390 اینها ارزش های ما می خواهیم به آن زمینه وارد است. اجازه دهید کلیک کنید. 621 00:36:30,390 --> 00:36:34,410 1 ردیف قرار داده و جو در زمان 0.02 ثانیه صورت گرفت. اجازه دهید من در حال حاضر مرور را کلیک کنید. 622 00:36:34,410 --> 00:36:42,020 >> توجه کنید اگر من مرور را کلیک کنید، مدر، که ID اتوماسیون شماره 1 وجود دارد. 623 00:36:42,020 --> 00:36:45,000 اجازه دهید من می توانم یکی دیگر. اجازه بدهید به تب SQL بروید. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO خانه. نام از خانه رفتن به یک مقدار Pfoho و غیره. 625 00:36:52,950 --> 00:36:56,350 برو. و من می توانم به انجام این کار دوباره و دوباره و دوباره. 626 00:36:56,350 --> 00:36:59,470 و یا اگر شما بی حوصله و استفاده از phpMyAdmin، شما فقط می توانید زبانه Insert استفاده کنید 627 00:36:59,470 --> 00:37:01,000 و نه SQL خام به نوع. 628 00:37:01,000 --> 00:37:04,690 به عنوان مثال، شما فقط می توانید آن را به صدای بلند یا محکم با سرعت بیشتری با تایپ چرخمساز، را وارد کنید، 629 00:37:04,690 --> 00:37:07,610 و در حال حاضر اگر ما با کلیک بر مرور، چرخمساز وجود دارد با ID 3. 630 00:37:07,610 --> 00:37:09,920 بنابراین این چیزی است که ما با خودکار افزایش معنی می باشد. 631 00:37:09,920 --> 00:37:12,280 اما در حال حاضر ما باید به حل چیزی در دانش آموزان است. 632 00:37:12,280 --> 00:37:16,240 در مورد دانش آموزان چه باید نوع داده از میدان خانه در حال حاضر؟ 633 00:37:16,240 --> 00:37:19,450 باید هوشمند، درست است؟ 634 00:37:19,450 --> 00:37:23,950 بنابراین هدف در اینجا این است به عامل، در غیر این صورت به عنوان عادی شناخته شده است، جداول 635 00:37:23,950 --> 00:37:27,940 به طوری که ما اطلاعات را ذخیره نمی redundantly در هر یک از جداول. 636 00:37:27,940 --> 00:37:31,130 و دوباره، راه ما در اینجا در حال رفتن به می گویند مدر، مدر، 637 00:37:31,130 --> 00:37:34,220 مدر، ماتر، Pfoho، Pfoho، Pfoho، Pfoho، که بسیار کار برکنار شده است 638 00:37:34,220 --> 00:37:36,240 در شرایط استفاده از اسراف از کاراکتر ها است. 639 00:37:36,240 --> 00:37:40,820 پس به من اجازه رفتن به جلو و تغییر این ساختار کلیک کردن، 640 00:37:40,820 --> 00:37:44,620 و به من اجازه رفتن به جلو و چک کردن زمینه خانه، کلیک کنید تغییر، 641 00:37:44,620 --> 00:37:46,990 و در حال حاضر من قصد دارم برای تغییر این بین المللی می شود. 642 00:37:46,990 --> 00:37:49,490 255 است دیگر موضوعیت ندارند. 643 00:37:49,490 --> 00:37:54,010 اجازه بدهید من بروم جلو و بگویم که خوب است اگر آن را هنوز هم NULL. ذخیره. 644 00:37:54,010 --> 00:37:55,870 در حال حاضر دانش آموزان جدول مخدوش شده است با موفقیت، 645 00:37:55,870 --> 00:37:59,090 و دوباره متوجه خانه بین المللی است. 646 00:37:59,090 --> 00:38:02,220 تا به کنار، چشم پوشی از شماره در داخل پرانتز زمانی که آن را به نوع داده int می آید. 647 00:38:02,220 --> 00:38:03,770 >> این است که به دلایل میراث است. 648 00:38:03,770 --> 00:38:06,920 بازگشت به روز هنگامی که شما رابط گرافیکی را نداشته باشند، شما به جای یک محیط خط فرمان، 649 00:38:06,920 --> 00:38:11,580 10 و 11 به ترتیب مشخص شده که چگونه بسیاری از کاراکتر شما باید نشان می دهد 650 00:38:11,580 --> 00:38:13,950 در پنجره ترمینال در واقع زمینه را نشان می دهد. 651 00:38:13,950 --> 00:38:19,150 تا به چیزی برای انجام با طول بیت زمینه واقعی، بنابراین ما فقط باید نادیده گرفت که در حال حاضر است. 652 00:38:19,150 --> 00:38:20,990 حالا من به این جدول است. 653 00:38:20,990 --> 00:38:24,610 و اگر دیوید در ماتر زندگی می کند، خانه اش نمی اندازد باید 0، 654 00:38:24,610 --> 00:38:27,350 که یک مقدار پیش فرض بین المللی نزدیک به NULL است. 655 00:38:27,350 --> 00:38:29,810 او باید در خانه 1 زندگی می کنند. 656 00:38:29,810 --> 00:38:36,870 بیایید خودسرانه می گویند که زندگی مایک در Pfoho، بنابراین خانه شماره 2 است. 657 00:38:36,870 --> 00:38:40,160 در حال حاضر جدول به نظر می رسد کمی بیشتر مرموز است. 658 00:38:40,160 --> 00:38:41,960 اما در نظر گرفتن بهره وری. 659 00:38:41,960 --> 00:38:44,860 من در حال حاضر با استفاده از 32 بیت برای شناسایی خانه، 660 00:38:44,860 --> 00:38:49,530 که به معنی تنها 1 تعریف استاندارد از خانه من ماتر و Pfoho وجود دارد 661 00:38:49,530 --> 00:38:52,090 و آن را در خانه های جدول. 662 00:38:52,090 --> 00:38:55,880 پس اگر من می خواهم به حال پاسخ گفتن این جداول، به این ترتیب فکر می کنم. 663 00:38:55,880 --> 00:39:01,980 من در اینجا جدول دانش آموزان، و در سمت راست این اعداد، 1 و 2 وجود دارد. 664 00:39:01,980 --> 00:39:04,180 1 است ماتر، 2 Pfoho است. 665 00:39:04,180 --> 00:39:08,580 ما باید کسانی که در این جدول است که به نام خانه، 666 00:39:08,580 --> 00:39:11,020 1 و 2 و 3 برای کسانی که 3 خانه است. 667 00:39:11,020 --> 00:39:14,990 چیزی که ما در حال حاضر می خواهم به انجام این کار این است که توانایی در کد، PHP و SQL، 668 00:39:14,990 --> 00:39:18,800 به گونه پاسخ گفتن این جداول، که در آن اگر این دانش آموزان هستند و این خانه ها، 669 00:39:18,800 --> 00:39:22,050 ما می خواهیم به نحوی آنها را ترکیب به طوری که 1 خط با 1، 670 00:39:22,050 --> 00:39:25,670 2 خط با 2، و به طوری که ما می توانیم از شکل که در آن دیوید 671 00:39:25,670 --> 00:39:28,000 و جایی که مایک و که در آن هر کس دیگری زندگی می کند. 672 00:39:28,000 --> 00:39:31,850 برای انجام این کار ما می توانیم یک پرس و جوی SQL مانند موارد زیر را اجرا کند. 673 00:39:31,850 --> 00:39:40,470 SELECT * از دانش آموزان خانه در - 674 00:39:40,470 --> 00:39:43,000 و در حال حاضر چه زمینه هایی را که ما می خواهیم برای پیوستن به در؟ 675 00:39:43,000 --> 00:39:49,520 بنابراین students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> کمی مرموز است، اما این بخش به معنای به معنای واقعی کلمه، یک میز جدید به طور موقت ایجاد 677 00:39:54,150 --> 00:39:56,690 که در نتیجه پیوستن به دانش آموزان و خانه است. 678 00:39:56,690 --> 00:40:00,340 و چگونه شما می خواهم به ترکیب راهنمایی از انگشتان دست من در اینجا؟ 679 00:40:00,340 --> 00:40:05,280 میدان خانه برابر به خانه دانش آموزان رشته ID تنظیم کنید. 680 00:40:05,280 --> 00:40:10,220 و اگر من در حال حاضر را کلیک کنید برو، من دقیقا همان چیزی است که من به امیدوار. 681 00:40:10,220 --> 00:40:15,890 دیوید در ماتر، مایک در Pfoho، و من هم دیدن شناسه منحصر به فرد است. 682 00:40:15,890 --> 00:40:18,640 اما نکته این است که در حال حاضر من یک جدول کامل. 683 00:40:18,640 --> 00:40:23,020 و به این ترتیب غذای آماده در اینجا برای pset 7 یا واقعا برای پروژه نهایی: 684 00:40:23,020 --> 00:40:25,830 اگر شما دریابید که شما در حال ذخیره سازی هر تکه از اطلاعات در redundantly، 685 00:40:25,830 --> 00:40:28,850 که آیا آن یک خانه، شاید این شهر، ایالتی، و ZIP است 686 00:40:28,850 --> 00:40:32,050 که ZIP معمولا اما نه همیشه می تواند به عنوان یک شناسه منحصر به فرد استفاده می شود، 687 00:40:32,050 --> 00:40:35,810 نرو از طریق تمرین ذهنی و پس از آن با چیزی شبیه به phpMyAdmin به 688 00:40:35,810 --> 00:40:40,660 مقاطعه می کند که داده های مشترک به دلیل به خصوص که وب سایت شما می شود، بیشتر به خوبی استفاده می شود 689 00:40:40,660 --> 00:40:45,440 و بیشتر محبوب، این است که چگونه شما می توانید اطمینان حاصل کنید که همه چیز فوق العاده سریع، 690 00:40:45,440 --> 00:40:51,930 با دادن پایگاه داده به عنوان بسیاری از نکات منحصر به فرد به عنوان ممکن است. 691 00:40:51,930 --> 00:40:53,860 این زیادی بود. 692 00:40:53,860 --> 00:40:59,010 هر گونه سؤال؟ بسیار خوب. بیایید نگاهی به یک استراحت 5 دقیقه ای وجود دارد و دوباره. 693 00:41:01,600 --> 00:41:03,540 بسیار خوب. 694 00:41:03,540 --> 00:41:08,680 در زیر یک مثال است که چند سال پیش مورد استفاده قرار گرفت و وقتی که من در زمان CS161، 695 00:41:08,680 --> 00:41:10,960 که سیستم عامل کلاس در کالج است 696 00:41:10,960 --> 00:41:15,160 که برای بودن شگفت انگیز شناخته شده است، اما مقدار دیوانه از کار، 697 00:41:15,160 --> 00:41:19,810 و آن را متمرکز است واقعا در برخی از مسائل سطح پایین که در سیستم عامل بوجود می آیند 698 00:41:19,810 --> 00:41:22,700 و حتی در جهان از پایگاه های داده. 699 00:41:22,700 --> 00:41:27,040 >> داستان که با استاد من، مارگو دار، گفته شد که در آن سال بود که به شرح زیر است. 700 00:41:27,040 --> 00:41:30,990 فرض کنید که شما یک یخچال خوابگاه کمی برای شما و هم اتاقی شما 701 00:41:30,990 --> 00:41:34,030 و هر دو از شما واقعا مثل شیر. 702 00:41:34,030 --> 00:41:36,360 بنابراین شما به خانه از کلاس یک روز، هم اتاقی شما هنوز وجود دارد، 703 00:41:36,360 --> 00:41:39,650 شما برای باز کردن در یخچال، و شما متوجه است، "آه، لعنتی، ما از شیر است." 704 00:41:39,650 --> 00:41:42,070 بنابراین یخچال را ببندید، شما را در سراسر خیابان راه رفتن به CVS 705 00:41:42,070 --> 00:41:45,830 و در خطوط طولانی به برخی از شیر به CVS خرید. 706 00:41:45,830 --> 00:41:48,470 در همین حال، هم اتاقی خود را به خانه می آید یا کلاس خود، 707 00:41:48,470 --> 00:41:51,690 می آید به اتاق باز می شود، یخچال واقعا مایل مقداری شیر، 708 00:41:51,690 --> 00:41:54,130 یخچال باز می شود، و "لعنتی، نه شیر." 709 00:41:54,130 --> 00:41:57,890 بنابراین او می بندد یخچال، پیاده می رود از در خارج بشی، و می رود به ABP 710 00:41:57,890 --> 00:42:00,910 و یا در جایی از CVS که در آن شما در حال رفتن به یکدیگر برخورد دیگر 711 00:42:00,910 --> 00:42:02,790 برای رفتن به گرفتن برخی از شیر. 712 00:42:02,790 --> 00:42:04,820 البته چند دقیقه بعد، هر دوی شما به عقب بر گردیم خانه 713 00:42:04,820 --> 00:42:07,740 و در حال حاضر شما باید شیر دو بار به همان اندازه که شما در واقع می خواستم. 714 00:42:07,740 --> 00:42:10,670 و بودن شیر، در حال حاضر آن را به رفتن به بد دلیل این که شما مثل شیر 715 00:42:10,670 --> 00:42:14,200 اما شما واقعا مثل شیر نیست، بنابراین در حال حاضر شما باید شیر بیش از حد، پس از آن رفتن به ترش. 716 00:42:14,200 --> 00:42:16,830 این وضعیت افتضاح است، افتضاح است. 717 00:42:16,830 --> 00:42:22,920 چه چیزی می تواند به حل این معضل اگر شما اولین خانه هم اتاقی بود؟ بله. 718 00:42:22,920 --> 00:42:25,970 [دانشجوی] شما باید توجه داشته باشید. [خنده] 719 00:42:25,970 --> 00:42:28,090 خوب است. شما باید توجه داشته باشید. 720 00:42:28,090 --> 00:42:32,320 شما باید توجه داشته باشید پس از آن یا مانند گفت، قرار داده است "رفته برای شیر، 721 00:42:32,320 --> 00:42:36,830 و پس از آن هم اتاقی خود را مفهومی می شده اند در واقع از انجام آن قفل شده است. 722 00:42:36,830 --> 00:42:38,010 یا شما می توانید به پله 1 بیشتر. 723 00:42:38,010 --> 00:42:41,060 شما به معنای واقعی کلمه می تواند یخچال و فریزر را با برخی از نوع قفل قفل، 724 00:42:41,060 --> 00:42:44,870 و در حال حاضر هم اتاقی خود را به معنای واقعی کلمه از یخچال قفل شده است. 725 00:42:44,870 --> 00:42:48,520 اگر ما تعمیم به برنامه نویسی، 726 00:42:48,520 --> 00:42:51,610 شما تقریبا می توانید از یخچال به عنوان نوعی از متغیر و یا یک struct فکر می کنم، 727 00:42:51,610 --> 00:42:53,500 نوع ظرف برای کسب اطلاعات است. 728 00:42:53,500 --> 00:42:58,290 مشکل اساسی در اینجا این است که هر دو شما را به بازرسی اجازه داده شد 729 00:42:58,290 --> 00:43:02,370 یا خواندن دولت از این ساختمان داده، 730 00:43:02,370 --> 00:43:08,050 اما شما آن را در زمان های مختلف مشاهده شده و در عین حال هر دو از شما، یک تصمیم 731 00:43:08,050 --> 00:43:11,920 در مورد وضعیت جهان در آن لحظات مختلف در زمان استوار است. 732 00:43:11,920 --> 00:43:15,570 بنابراین شما قفل شده بود یخچال و فریزر، شما می توانید حداقل اجتناب هم اتاقی خود را 733 00:43:15,570 --> 00:43:19,070 از داشتن شده است قادر به بازرسی دولت از جهان، 734 00:43:19,070 --> 00:43:22,530 بنابراین او نمی توانست این تصمیم همان است. 735 00:43:22,530 --> 00:43:25,780 بنابراین پایگاه داده، همانطور که معلوم است، این مشکل به طور مداوم. 736 00:43:25,780 --> 00:43:31,050 >> بیایید ببینیم که اگر ما می توانیم یک سناریو را ساخت. 737 00:43:31,050 --> 00:43:34,310 فرض کنید که شما در حال مرتب کردن بر اساس یک پسر بد و شما را به بانک مرکزی آمریکا 738 00:43:34,310 --> 00:43:37,950 یا یکی از جاهای دیگر در مربع که دارای یک زن و شوهر در کنار سمت دستگاههای خودپرداز، 739 00:43:37,950 --> 00:43:41,200 و به نوعی شما را نمیفهمد چگونه برای کپی کردن یک کارت ATM - که سخت نیست. 740 00:43:41,200 --> 00:43:42,730 این فقط یک نوار مغناطیسی است. 741 00:43:42,730 --> 00:43:45,180 و بنابراین، آنچه شما می خواهید سعی کنید برای انجام این بازی 742 00:43:45,180 --> 00:43:49,060 به موجب آن شما 1 کارت به 1 دستگاه قرار داده است، یکی دیگر از کارت به دستگاه های دیگر، 743 00:43:49,060 --> 00:43:51,980 و شما در اصل می خواهید امتحان کنید برای برداشت پول به طور همزمان، 744 00:43:51,980 --> 00:43:54,930 زیرا تصور کنید که می رود به شرح زیر است. 745 00:43:54,930 --> 00:43:57,350 دستگاه در سمت چپ طول می کشد کارت و PIN خود را، 746 00:43:57,350 --> 00:44:00,240 و پس از آن شما می گویند، "من 100 دلار میدهند." 747 00:44:00,240 --> 00:44:04,790 ATM است برنامه ریزی برای انجام یک را انتخاب کنید در پایگاه داده و یا معادل آن - 748 00:44:04,790 --> 00:44:10,780 هر پایگاه داده از آن با استفاده از - برای دیدن این کاربر نقل قول این ارسال در پاسخ حداقل 100 دلار در یا حساب خود را؟ 749 00:44:10,780 --> 00:44:16,180 اگر چنین است، پس از آن تف 100 دلاری و تفریق $ 100، از تعادل خود را. 750 00:44:16,180 --> 00:44:20,470 البته اگر دستگاه های متعدد در اینجا وجود دارد و یا راه های متعدد بازرسی 751 00:44:20,470 --> 00:44:23,560 دولت از آن جهان، بانک طاق، تا ببینید که چه مقدار پول دارید، 752 00:44:23,560 --> 00:44:26,780 فرض کنید که فقط با شانس دستگاه را در سمت چپ و راست 753 00:44:26,780 --> 00:44:30,140 هر دو از این سوال در تقریبا همان لحظه در زمان. 754 00:44:30,140 --> 00:44:34,160 >> و این قطعا می تواند رخ دهد. دستگاههای خودپرداز کامپیوتر این روزها. 755 00:44:34,160 --> 00:44:37,670 بنابراین اگر دستگاه در سمت چپ می گوید: "بله، شما باید حداقل 100 $ 756 00:44:37,670 --> 00:44:42,150 در عین حال دستگاه در سمت راست می گوید: "بله، شما باید حداقل 100 $ 757 00:44:42,150 --> 00:44:47,420 سپس هر دو از آنها ادامه برنامه های خود را به پایان برساند و در واقع تف 100 $ 758 00:44:47,420 --> 00:44:50,820 و می گویند: «پیش از شما تا به حال 200 دلار بود." 759 00:44:50,820 --> 00:44:54,890 "اجازه بده تا متغیر در حال حاضر $ 100 در سمت چپ حساب را به روز رسانی کنم." 760 00:44:54,890 --> 00:44:58,780 اما اگر هر دوی آنها دارای مانده حساب خود را بررسی کردند و دریافتند که آن 200 $ 761 00:44:58,780 --> 00:45:02,000 و هر دو از آنها و سپس انجام محاسبات ریاضی و می گویند 200 - 100، 762 00:45:02,000 --> 00:45:06,990 ماشین آلات بالقوه بیرون تف 2 100 $ صورتحساب در هر دستگاه، 763 00:45:06,990 --> 00:45:11,360 اما آنها فقط به روز شده در مجموع تعادل خود را به حساب 100 $ است. 764 00:45:11,360 --> 00:45:15,130 به عبارت دیگر، شما در خارج مبلغ 200 دالر بلکه به این دلیل که آنها بازرسی دولت از جهان 765 00:45:15,130 --> 00:45:18,840 همزمان و پس از آن تصمیم بر اساس که ارزش، 766 00:45:18,840 --> 00:45:21,930 آنها ممکن است ریاضی در نهایت به درستی انجام نمی. 767 00:45:21,930 --> 00:45:25,520 بنابراین در شرایط بانکی بیش از حد شما واقعا می خواهید به نوعی از تحریم 768 00:45:25,520 --> 00:45:28,450 به طوری که به محض اینکه شما را بررسی کردهاید و دولت برخی از متغیر 769 00:45:28,450 --> 00:45:31,220 که واقعا مهم است، مانند مانده حساب خود، 770 00:45:31,220 --> 00:45:36,070 اجازه ندهید که هر کس دیگری تصمیم گیری بر اساس آن تا زمانی که شما انجام می شود انجام می دهید، 771 00:45:36,070 --> 00:45:38,920 که در این صورت شما ATM در سمت چپ است. 772 00:45:38,920 --> 00:45:41,160 قفل هر کس دیگری. 773 00:45:41,160 --> 00:45:44,650 در واقع شما می توانید این اثر را در یک زن و شوهر از راه های مختلف دست یابد. 774 00:45:44,650 --> 00:45:48,660 >> ساده ترین راه در MySQL یک خط از SQL است که ما به شما داد 775 00:45:48,660 --> 00:45:52,030 در مشخصات مجموعه مشکل است که به نظر می رسد دقیقا مانند این است. 776 00:45:52,030 --> 00:45:57,420 درج جدول - هر چه آن را به نام - یک شناسه، یک نماد، و سهم، تعداد سهام، 777 00:45:57,420 --> 00:45:59,660 ارزشها، به عنوان مثال. 778 00:45:59,660 --> 00:46:03,370 اگر شما تنظیمات را خوانده نشده است، این یک نمونه مربوط به چگونه شما در مورد 779 00:46:03,370 --> 00:46:07,340 خرید 10 سهام این سهام پنی برای رئیس جمهور Skroob، 780 00:46:07,340 --> 00:46:10,340 شناسه کاربر که اتفاق می افتد و عدد 7 هست؟ 781 00:46:10,340 --> 00:46:14,070 این به این می گوید: INSERT INTO جدول زیر ID، علامت اختصاری، و تعداد سهام 782 00:46:14,070 --> 00:46:18,200 7، DVN.V '، و 10. 783 00:46:18,200 --> 00:46:21,510 اما - اما، اما، اما - خط دوم مهم است. 784 00:46:21,510 --> 00:46:26,310 سهام تکراری UPDATE KEY = سهام + VALUES (سهام). 785 00:46:26,310 --> 00:46:28,350 کاملا مرموز به دنبال در نگاه اول است. 786 00:46:28,350 --> 00:46:31,990 اما واقعیت این است که این پرس و جو SQL، حتی اگر آن را بر روی 2 خط پایان می رسد، 787 00:46:31,990 --> 00:46:35,920 1 پرسش طولانی است، به این معنی است که آن را اتمی 788 00:46:35,920 --> 00:46:41,000 به این معنا که این پرس و جو خواهد شد یا اعدام می شود همه با هم یا نه در همه. 789 00:46:41,000 --> 00:46:45,100 و با تعریف خروجی زیر، که چگونه آنها این پرسش را اجرا. 790 00:46:45,100 --> 00:46:51,010 تعریف در کتابچه راهنمای تضمین شده برای اجرای همه در یک بار یا نه در همه. 791 00:46:51,010 --> 00:46:54,020 انگیزه برای این کار این است که به شرح زیر است. 792 00:46:54,020 --> 00:46:58,540 اگر در این حالت شما در حال تلاش برای خرید 10 سهام، 793 00:46:58,540 --> 00:47:02,260 این نوع از داستان همان شیر است، آن نوع از داستان همان ATM است. 794 00:47:02,260 --> 00:47:04,970 >> اگر شما به اشتباه از این ترکیب نحوی با استفاده از 795 00:47:04,970 --> 00:47:09,610 اما به جای انتخاب از پایگاه داده برای دیدن چگونه بسیاری از سهام این سهام پنی 796 00:47:09,610 --> 00:47:13,750 رئیس جمهور Skroob داشته باشد، و فرض کنید او دارای 10 سهام، 797 00:47:13,750 --> 00:47:19,330 و پس از آن برخی از قسمتی از ثانیه پس از آن بعد از آن شما بیانیه تکمیلی، 798 00:47:19,330 --> 00:47:24,810 که یکی دیگر از بیانیه ای در SQL است که می گوید پیش بروید و برای اضافه کردن 10 بیشتر سهام است 799 00:47:24,810 --> 00:47:28,700 تا 10 فعلی خود را به طوری که در حالت ایده آل در کل 20 است، 800 00:47:28,700 --> 00:47:33,490 مشکل این است که چون در سیستم های بانک اطلاعاتی امروز و به دلیل در کامپیوترهای امروزی 801 00:47:33,490 --> 00:47:35,990 شما باید پردازنده های چندگانه، هسته های چندگانه - 802 00:47:35,990 --> 00:47:38,920 به عبارت دیگر، کامپیوتر به معنای واقعی کلمه می تواند انجام شود چیزهای متعدد در یک بار - 803 00:47:38,920 --> 00:47:44,270 هیچ تضمینی وجود ندارد که خود را انتخاب کنید و به روز رسانی خود را در این مورد 804 00:47:44,270 --> 00:47:46,150 اتفاق خواهد افتاد پشت به پشت. 805 00:47:46,150 --> 00:47:49,140 بنابراین یک سناریوی بد خواهد بود که شما باید انجام دهید را انتخاب کنید 806 00:47:49,140 --> 00:47:51,670 برای دیدن چگونه بسیاری از سهام این سهام پنی کند Skroob، 807 00:47:51,670 --> 00:47:54,710 و سپس فقط با شانس یکی دیگر از پایگاه داده پرس و جو اجرا شده است - 808 00:47:54,710 --> 00:47:57,740 شاید Skroob خود را در پنجره مرورگر دیگر تلاش برای خرید 10 سهام 809 00:47:57,740 --> 00:48:00,700 در پنجره دیگری در دسترس نباشد، بسیار شبیه به ATM - 810 00:48:00,700 --> 00:48:05,410 و فرض کنید که یکی دیگر از پرس و جو می شود در بین را انتخاب کنید و به روز رسانی است. 811 00:48:05,410 --> 00:48:10,210 این می تواند مورد که Skroob در حال حاضر برخی از تعدادی از سهام را از دست می دهد 812 00:48:10,210 --> 00:48:14,340 چرا که یکی دیگر از فرایند بازرسی دولت از جهان خود، 813 00:48:14,340 --> 00:48:17,800 یا او می شود سهام بیش از او باید. 814 00:48:17,800 --> 00:48:23,250 ما نمی خواهد به خاص دقیقا همان چیزی است که آن دسته از خطوط داستان خاص خواهد بود. 815 00:48:23,250 --> 00:48:28,380 اما نکته این است که اگر شما به بررسی مقدار متغیر و سپس اتخاذ یک تصمیم، 816 00:48:28,380 --> 00:48:32,500 اگر خطر از شخص دیگری انجام کاری در بین کسانی که 2 اظهارات وجود دارد، 817 00:48:32,500 --> 00:48:36,220 به عنوان می تواند در سیستم های چند اتفاق می افتد، در چند سیستم، 818 00:48:36,220 --> 00:48:41,220 کامپیوتر با توانایی به انجام کارهای متعدد در یک بار، همه چیز بد می تواند رخ دهد 819 00:48:41,220 --> 00:48:44,530 مثل حساب های بانکی که بدهکار اشتباه است، خرید شیر دوبرابر، 820 00:48:44,530 --> 00:48:46,730 و یا در این مورد اشتباه از سهام است. 821 00:48:46,730 --> 00:48:48,370 اما یک راه ساده تر به فکر می کنم در این مورد وجود دارد. 822 00:48:48,370 --> 00:48:53,290 >> معلوم می شود که SQL هم پشتیبانی کند، اگر جدول شما را پیکربندی درستی، 823 00:48:53,290 --> 00:48:56,920 در واقع چیزی به نام معاملات، که می خواهم بگویم این است حتی ساده تر به درک 824 00:48:56,920 --> 00:49:00,650 از این، اما آن را به 1-بوش نیست، به طوری که آن را در واقع کمی بیشتر درگیر. 825 00:49:00,650 --> 00:49:04,960 بیانیه ای در SQL به نام START معامله به معنای واقعی کلمه وجود دارد. 826 00:49:04,960 --> 00:49:08,300 درست مثل SELECT، UPDATE، INSERT، DELETE، و پیوستن به وجود دارد و یک دسته از دیگران، 827 00:49:08,300 --> 00:49:10,970 کلمات کلیدی مانند معامله START وجود دارد. 828 00:49:10,970 --> 00:49:13,560 و آنچه که بعد از آن شما در زمینه از pset 7 - 829 00:49:13,560 --> 00:49:17,270 شما لازم نیست که برای انجام این کار برای pset 7، آن ​​را به صراحت به عنوان ضروری نیست رد، 830 00:49:17,270 --> 00:49:18,830 اما برای پروژه نهایی می تواند مفید باشد - 831 00:49:18,830 --> 00:49:22,820 اگر شما به پرس و جو از معامله START و پس از آن دیگر پرس و جو 832 00:49:22,820 --> 00:49:25,620 و پس از آن دیگر پرس و جو و پس از آن دیگر، دیگری، و دیگری، 833 00:49:25,620 --> 00:49:31,860 کسانی که نمایش داده شد در واقع اعدام نخواهد شد تا زمانی که با شما تماس بیانیه SQL متعهد، 834 00:49:31,860 --> 00:49:37,220 که در آن نقطه، که آیا آن را به 2 بیانیه یا 20 اظهارات، آنها تمام خواهد اعدام شود در یک بار، 835 00:49:37,220 --> 00:49:42,770 که بدان معنی است که هیچ کس دیگری به طور تصادفی می تواند خرید شیر بیش از حد یا بیش از حد پول بدهی 836 00:49:42,770 --> 00:49:46,340 و یا خرید سهام بیش از حد بسیاری به خاطر پرس و جو خود را اجرا خواهد کرد 837 00:49:46,340 --> 00:49:48,410 پشت به پشت به پشت به پشت. 838 00:49:48,410 --> 00:49:51,580 و این فوق العاده مهم است، به ویژه هنگامی که شما در حال انجام چیزی شبیه به این. 839 00:49:51,580 --> 00:49:54,900 این یک نمونه خودسرانه است که می گوید: بیایید به روز رسانی حساب بانکی است 840 00:49:54,900 --> 00:50:00,200 با تنظیم یک تعادل به تعادل - 1000 $ که در آن شماره حساب 2 برابر است. 841 00:50:00,200 --> 00:50:04,260 و پس از آن بیانیه دوم در حال حاضر واریز که 1000 $ 842 00:50:04,260 --> 00:50:07,310 به شخص دیگری حساب بانکی که شماره حساب است: 1. 843 00:50:07,310 --> 00:50:10,400 >> به عبارت دیگر، این یک مثال کامل که در آن شما می خواهید مطمئن شوید که 844 00:50:10,400 --> 00:50:13,590 که هر دو از این اظهارات اتفاق می افتد یا نه در همه 845 00:50:13,590 --> 00:50:15,450 چرا که در غیر این صورت مشتری رفتن به پیچ 846 00:50:15,450 --> 00:50:17,670 و شما در حال رفتن به گرفتن پول خود را و رسوب آن در جاهای دیگر، 847 00:50:17,670 --> 00:50:20,470 و یا بانک در حال رفتن به پیچ که در آن شما در حال رفتن به واریز پول 848 00:50:20,470 --> 00:50:23,140 اما در واقع آن را تفریق از حساب کاربر. 849 00:50:23,140 --> 00:50:25,810 بنابراین شما می خواهید هر دو آنها را با هم به اجرا. 850 00:50:25,810 --> 00:50:29,140 بنابراین وارد معاملات جهان است. 851 00:50:29,140 --> 00:50:31,360 به طوری که چیزی در پشت ذهن خود را برای حفظ، 852 00:50:31,360 --> 00:50:34,710 نه چندان زیادی برای اهداف فقط یک پروژه نهایی، 853 00:50:34,710 --> 00:50:36,700 اما اگر شما می خواهید برای پروژه نهایی خود را در جایی، 854 00:50:36,700 --> 00:50:39,040 اگر شما می خواهید برای راه اندازی برخی از شرکت های اطراف آن، 855 00:50:39,040 --> 00:50:41,270 اگر شما می خواهید برای حل مشکل برخی از گروه دانشجویی در محوطه دانشگاه 856 00:50:41,270 --> 00:50:45,210 و در واقع، وب سایت فعال و زنده، این نوع از اشکالات ظریف است که می تواند بوجود می آیند 857 00:50:45,210 --> 00:50:49,480 اگر شما کاملا فکر می کنم از طریق چه اتفاق می افتاد اگر 2 نفر 858 00:50:49,480 --> 00:50:54,190 در حال تلاش برای دسترسی به وب سایت خود را به معنای واقعی کلمه در همان لحظه در زمان، 859 00:50:54,190 --> 00:50:56,890 در آن نمایش داده شد خود را در غیر این صورت ممکن است آمیخته دریافت کنید. 860 00:50:58,840 --> 00:51:01,420 >> آماده برای برخی از جاوا اسکریپت، یک تیزر آن؟ 861 00:51:01,420 --> 00:51:04,320 این زبان برای ترم است. بسیار خوب. 862 00:51:04,320 --> 00:51:09,940 خوشبختانه، جاوا اسکریپت به نظر می رسد بسیار، بسیار، بسیار شبیه به 2 زبان، C و PHP، 863 00:51:09,940 --> 00:51:11,140 ما تا کنون انجام داده ام. 864 00:51:11,140 --> 00:51:14,340 جاوا اسکریپت در pset 7 وجود دارد، اما آن را به یک ابزار فوق العاده مفید 865 00:51:14,340 --> 00:51:18,840 هنگامی که آن را به انجام پروژه های مبتنی بر وب نهایی و یا در واقع فقط وب سایت برنامه نویسی به طور کلی می آید. 866 00:51:18,840 --> 00:51:20,950 بنابراین یک مرور سریع از چیزی به نام DOM. 867 00:51:20,950 --> 00:51:23,600 اینجا است که یک صفحه وب فوق العاده ساده است که واقعا فقط می گوید: سلام، جهان 868 00:51:23,600 --> 00:51:25,970 هم در عنوان و هم در بدن است. 869 00:51:25,970 --> 00:51:29,270 به عنوان دندانه دار شده است نشان می دهد برای برخی از زمان، 870 00:51:29,270 --> 00:51:31,380 سلسله مراتب به صفحات وب است که در واقع وجود دارد. 871 00:51:31,380 --> 00:51:34,220 من می توانم این قطعه را از HTML به عنوان یک درخت رسم، 872 00:51:34,220 --> 00:51:37,470 فکر به گذشته و به بحث ما از ساختارهای داده ای در C، به شرح زیر است. 873 00:51:37,470 --> 00:51:40,710 من در برخی از گره خاص به نام گره سند، 874 00:51:40,710 --> 00:51:43,650 و ما آنالوگ از این در جاوا اسکریپت در یک لحظه را ببینید. 875 00:51:43,650 --> 00:51:48,330 فرزند اول و تنها فرزند که در این مورد تگ HTML است. 876 00:51:48,330 --> 00:51:49,880 نقشه برداری مستقیم از DOCTYPE وجود دارد. 877 00:51:49,880 --> 00:51:53,170 این یک چیز خاص است، بنابراین ما فقط باید آن را نادیده گرفت که آن را به این DOM می آید، 878 00:51:53,170 --> 00:51:55,810 این سند مدل شیء درخت. 879 00:51:55,810 --> 00:51:59,530 توجه داشته باشید که تگ HTML، که من خودسرانه به عنوان یک مستطیل نشان داده شده، 880 00:51:59,530 --> 00:52:02,890 دارای 2 فرزند: سر و بدن است. 881 00:52:02,890 --> 00:52:04,840 >> کسانی که به همین ترتیب به عنوان مستطیل کشیده شده است. 882 00:52:04,840 --> 00:52:08,970 این است معنی دار pictorially که سر به سمت چپ بدن است. 883 00:52:08,970 --> 00:52:11,960 مفهوم این است که سر می آید برای اولین بار در درخت است. 884 00:52:11,960 --> 00:52:14,910 بنابراین در واقع سفارش به یک درخت وجود دارد زمانی که شما آن را رسم مثل این، 885 00:52:14,910 --> 00:52:17,460 حتی اگر اشکال و فلان چیز کاملا خودسرانه است. 886 00:52:17,460 --> 00:52:20,360 سر در عین حال دارای یک فرزند به نام عنوان، 887 00:52:20,360 --> 00:52:25,170 و در واقع به عنوان فرزند خود را، که "سلام جهان" است، 888 00:52:25,170 --> 00:52:32,210 که من عمدا به عنوان یک بیضی در اینجا به آن را کمی متفاوت از مستطیل را به خود جلب کرد. 889 00:52:32,210 --> 00:52:37,420 این مستطیل، عناصری هستند، در حالی که سلام جهان است که در واقع یک گره متن است. 890 00:52:37,420 --> 00:52:39,850 پس از آن یک گره در درخت است، اما آن را یک نوع متفاوت از گره 891 00:52:39,850 --> 00:52:41,730 بنابراین من آن را کشید خودسرانه متفاوت است. 892 00:52:41,730 --> 00:52:45,000 به همین ترتیب بدن یک کودک به نام سلام، جهان و، 893 00:52:45,000 --> 00:52:47,910 خیلی متفاوت گره حتی اگر آنها تصادفا همان متن، 894 00:52:47,910 --> 00:52:52,100 اما من آن را با استفاده از همان شکل کشیده شده است. پس چه کسی اهمیت میدهد؟ 895 00:52:52,100 --> 00:52:56,820 خوب، چه خوب در مورد HTML این است که آیا این ماهیت سلسله مراتبی است. 896 00:52:56,820 --> 00:53:01,010 و چه خوب در مورد جاوا اسکریپت و به ویژه کتابخانه ها که آزادانه در دسترس 897 00:53:01,010 --> 00:53:07,120 و محبوب مانند jQuery را، شما می توانید ساختار درختی بطرز شگفت انگیزی آسان حرکت. 898 00:53:07,120 --> 00:53:11,790 هر یک از این مسائل ما در C با اشاره گرها و درختان عبور و recursing در گره 899 00:53:11,790 --> 00:53:15,300 کودک سمت چپ به فرزند راست، همه به طور ناگهانی ما می توانیم از مرتب کردن را اعطا 900 00:53:15,300 --> 00:53:19,450 به عنوان تعالی بخش بودن شگفت آور اگر کمی خسته کننده 901 00:53:19,450 --> 00:53:22,470 اما تقریبا کارآمد راه برای رفتن در مورد برنامه نویسی. 902 00:53:22,470 --> 00:53:24,470 و به این ترتیب با این زبان سطح بالاتر مانند جاوا اسکریپت 903 00:53:24,470 --> 00:53:28,340 ما قادر خواهیم بود برای حرکت این درخت خیلی بیشتر به طور مستقیم. 904 00:53:28,340 --> 00:53:30,430 >> و در واقع شکل است به صورت کاملا آشنا است. 905 00:53:30,430 --> 00:53:32,950 اگر شما جاوا اسکریپت را ندیده، این مرجع واقعا خوب است 906 00:53:32,950 --> 00:53:35,910 از مردمی موزیلا، کسانی که فایرفاکس، 907 00:53:35,910 --> 00:53:38,370 بنابراین احساس رایگان به فهرست آن را در راحتی شما. 908 00:53:38,370 --> 00:53:41,590 چه شما - پیدا کردن و این اسلاید یکسان هستند به آنچه که ما با استفاده از روز دیگر - 909 00:53:41,590 --> 00:53:44,030 به طور مشابه، اصلی از بین رفته است. 910 00:53:44,030 --> 00:53:47,010 بنابراین، هنگامی که شما در نوشتن یک برنامه در جاوا اسکریپت است، هیچ عملکرد اصلی وجود دارد. 911 00:53:47,010 --> 00:53:48,690 شما فقط شروع به نوشتن کد. 912 00:53:48,690 --> 00:53:51,660 اما یک تفاوت کلیدی بین جاوا و C و PHP 913 00:53:51,660 --> 00:53:55,890 این است که در حالی که C و PHP تا کنون اعدام شده اند سمت سرور 914 00:53:55,890 --> 00:53:59,180 لوازم خانگی در این مورد و یا به طور کلی از طریق یک سرور، 915 00:53:59,180 --> 00:54:04,270 جاوا اسکریپت توسط طراحی است که معمولا توسط یک مرورگر اجرا شده است. 916 00:54:04,270 --> 00:54:08,440 به عبارت دیگر، شما ممکن است کد جاوا اسکریپت، نوشتن به عنوان ما در مورد، 917 00:54:08,440 --> 00:54:13,080 بر روی یک سرور در دستگاه است، اما شما آن را نیز در میان HTML خود را، در میان CSS خود را، 918 00:54:13,080 --> 00:54:16,100 در میان های gif و PNGs و عکس JPEG شما 919 00:54:16,100 --> 00:54:19,170 به طوری که زمانی که کاربر صفحه وب خود را بار مشاهده شده است، اگر شما با استفاده از جاوا اسکریپت، 920 00:54:19,170 --> 00:54:21,770 که کد جاوا اسکریپت از سرور به مرورگر می آید، 921 00:54:21,770 --> 00:54:24,540 و آن را به مرورگر است که به واقع آن را اجرا. 922 00:54:24,540 --> 00:54:27,960 بنابراین این نتایج معنی دار برای اموال حتی معنوی است. 923 00:54:27,960 --> 00:54:32,600 این نوع احمقانه است که حتی در مورد حفاظت از آی پی شما فکر می کنم که آن را به کد جاوا اسکریپت می آید 924 00:54:32,600 --> 00:54:37,560 به دلیل ماهیت زبان می شود اعدام معمولا سمت مرورگر است. 925 00:54:37,560 --> 00:54:40,360 >> شما می توانید آن را مبهم و تاریک کردن به این معنی است که شما می توانید آن را نگاه دیوانه و زشت 926 00:54:40,360 --> 00:54:45,400 با هیچ فضای خالی، وحشتناک متغیر نام، آن را به سخت تر برای مردم را به سرقت IP خود را، 927 00:54:45,400 --> 00:54:48,120 اما مهم این است که آن را به طرف مرورگر اجرا شده است. 928 00:54:48,120 --> 00:54:51,790 حتی اگر به عنوان یک سمت سرور را کنار گذاشته جاوا اسکریپت را می توان مورد استفاده قرار گیرد، 929 00:54:51,790 --> 00:54:54,480 رایج ترین مورد استفاده از حق در حال حاضر هنوز هم بر روی مرورگر است. 930 00:54:54,480 --> 00:54:59,800 و در اینجا چیزی است که آن را مانند به نظر می رسد. در اینجا است که اگر اگر دیگری دیگری درست مانند C ساخت، درست مثل PHP. 931 00:54:59,800 --> 00:55:02,420 در اینجا است که یک عبارت بولی زمانی که شما "و یا" 2 چیز با هم. 932 00:55:02,420 --> 00:55:04,330 در اینجا این است که هنگامی که شما "و" 2 چیز با هم. 933 00:55:04,330 --> 00:55:08,300 در اینجا است که یک بیانیه سوئیچ، که شبیه به PHP 934 00:55:08,300 --> 00:55:10,810 که در آن شما می توانید بر روی انواع مختلف از ارزش ها را تغییر دهید. 935 00:55:10,810 --> 00:55:15,180 حلقه ها به همین ترتیب برای حلقه ها را در اینجا، که عینا چیزی است که ما را دیده ام قبل از ساختار است. 936 00:55:15,180 --> 00:55:18,110 در حالی که حلقه ایم در حالی که حلقه را کردم. 937 00:55:18,110 --> 00:55:20,290 متغیرها، همیشه کمی متفاوت است. 938 00:55:20,290 --> 00:55:24,560 شما اعلام متغیر مانند شما در PHP و C انجام می دهید، 939 00:55:24,560 --> 00:55:27,860 اما به طور مشابه جاوا اسکریپت تایپ ضعیف است. 940 00:55:27,860 --> 00:55:32,730 شما بین المللی و یا شناور و یا رشته یا هر چیزی که معمولا مشخص نیست. 941 00:55:32,730 --> 00:55:34,240 شما می توانید مشخص کنید VAR. 942 00:55:34,240 --> 00:55:38,040 شما لازم نیست که برای مشخص VAR، اما آن را تا به پیامدهای اگر اینکار را نکنید. 943 00:55:38,040 --> 00:55:42,000 معمولا اگر شما حذف VAR، شما به طور تصادفی یک متغیر جهانی به جای محلی را ایجاد کنید. 944 00:55:42,000 --> 00:55:46,420 بنابراین من پیشنهاد اجازه دهید که شما تقریبا همیشه فقط می گویند VAR و سپس نام متغیر است. 945 00:55:46,420 --> 00:55:48,740 این یک نوع نیست، آن را فقط برای متغیر VAR. 946 00:55:48,740 --> 00:55:52,930 این امر می تواند به عنوان مثال، که آیا آن را به 123 یا "سلام جهان" است. 947 00:55:52,930 --> 00:55:58,910 آرایه ها در حال حاضر و به نحوی شبیه به PHP است. 948 00:55:58,910 --> 00:56:03,690 من شماره های VAR و می گویند و سپس براکت دوباره من با استفاده از یک متغیر برای اعلام 949 00:56:03,690 --> 00:56:08,870 که نوع آرایه است که این اعداد خاص در آن از هم جدا شده توسط کاما. 950 00:56:08,870 --> 00:56:11,740 و پس از آن در نهایت، این یکی که واقعا به نظر می رسد متفاوت است. 951 00:56:11,740 --> 00:56:16,700 به یاد بیاورید که در PHP آرایه ای انجمنی برای یک دانش آموز اجرا 952 00:56:16,700 --> 00:56:20,220 مانند Zamyla که ممکن است شبیه به این، که متغیر نامیده می شود دانش آموز است. 953 00:56:20,220 --> 00:56:23,370 براکت در اینجا یک آرایه می آید. 954 00:56:23,370 --> 00:56:28,500 >> واقعیت این است که من شاخص ها اما رشته های عددی با استفاده از - آیدی، خانه، و نام - 955 00:56:28,500 --> 00:56:30,990 این بدان معنی است که این یک آرایه انجمنی، 956 00:56:30,990 --> 00:56:34,490 و این پیکان با علامت مساوی و براکت زاویه دار 957 00:56:34,490 --> 00:56:37,310 این بدان معنی است که مهم این است که "ID"، مقدار 1 است؛ 958 00:56:37,310 --> 00:56:39,310 مهم این است که "خانه"، ارزش وینتروپ خانه است؛ 959 00:56:39,310 --> 00:56:41,800 مهم این است که "نام"، مقدار Zamyla چان است. 960 00:56:41,800 --> 00:56:47,110 بنابراین این 3 کلید را داخل این آرایه های انجمنی، که هر کدام دارای ارزش خاص خود را وجود دارد. 961 00:56:47,110 --> 00:56:52,880 ما که در pset 7، و یا شما به زودی، در ایده جاوا اسکریپت مشابه، دیده می شود 962 00:56:52,880 --> 00:56:55,220 اما آن را شبیه به این. 963 00:56:55,220 --> 00:57:00,070 تا دانش آموز VAR - هیچ نشانه دلار و هیچ اشاره ای به نوع هنوز اما VAR - 964 00:57:00,070 --> 00:57:05,860 برابر و سپس باز کردن آکولاد به دلیل در جاوا اسکریپت زمانی که شما جفت ارزش کلیدی، 965 00:57:05,860 --> 00:57:08,900 شما در واقع چیزی به نام یک شی استفاده کنید. 966 00:57:08,900 --> 00:57:13,490 و کسانی از شما که را APCS یا ممکن است اشیاء از جاوا به یاد 967 00:57:13,490 --> 00:57:15,140 یا مشابه آن زبان است. 968 00:57:15,140 --> 00:57:17,880 جاوا اسکریپت جاوا، اول از همه. 969 00:57:17,880 --> 00:57:21,600 این بود که سال پیش تصمیم آگاهانه برای دست کشیدن چیز دیگری بود که محبوب، 970 00:57:21,600 --> 00:57:25,640 نام خود را، حتی اگر هیچ رابطه اساسی را به خود جاوا است. 971 00:57:25,640 --> 00:57:31,490 جاوا اسکریپت اشیاء، و شما آنها را ایجاد راه نماد بریس فرفری. 972 00:57:31,490 --> 00:57:36,710 اشیا در جاوا اسکریپت، تقریبا به آرایه های انجمنی در PHP معادل 973 00:57:36,710 --> 00:57:40,030 زمانی که آن را به ذخیره سازی داده ها در داخل از آنها می آید. 974 00:57:40,030 --> 00:57:44,100 >> اما حتی با قدرت در جاوا اسکریپت می تواند شما را مرتبط به راحتی توابع 975 00:57:44,100 --> 00:57:48,040 در داخل یک شی، و اگر چه شما می توانید این کار را در زبان های دیگر انجام دهید، 976 00:57:48,040 --> 00:57:50,040 این کاملا یک الگوی مشترک است، که خواهیم دید. 977 00:57:50,040 --> 00:57:54,380 به طور خلاصه، این شیء نشان دهنده یک دانش آموز، که خصوص Zamyla است، 978 00:57:54,380 --> 00:58:00,380 و این شبیه مفهومی، به نحوی متفاوت از این است. 979 00:58:00,380 --> 00:58:03,840 اجازه دهید در واقع استفاده از جاوا اسکریپت در یک فایل. 980 00:58:03,840 --> 00:58:05,570 به نظر می رسد از یک تگ اسکریپت وجود دارد. 981 00:58:05,570 --> 00:58:08,180 برچسب سبک ما دیده ایم و دیده ایم تگ های دیگر HTML است. 982 00:58:08,180 --> 00:58:11,510 تگ اسکریپت در واقع برخی از کد جاوا اسکریپت باشد. 983 00:58:11,510 --> 00:58:15,500 اجازه بدهید من به لوازم خانگی که در آن ما برخی از کد منبع از پیش ساخته شده. 984 00:58:15,500 --> 00:58:18,700 من آن را ارسال شده نشده است در وب سایت، اما من بعد از کلاس انجام دهد. 985 00:58:18,700 --> 00:58:21,770 اجازه دهید باز کردن این یکی، blink.html. 986 00:58:21,770 --> 00:58:27,560 در 1990s، به معنای واقعی کلمه وجود دارد یک تگ HTML به نام تگ چشمک زدن، 987 00:58:27,560 --> 00:58:30,340 و این یکی از زیبا بیش از حد مورد استفاده ترین برچسب ها را بر روی اینترنت 988 00:58:30,340 --> 00:58:36,140 به موجب آن شما می خواهم برخی از سال 1990s سبک صفحه وب و مشاهده شروع به دیدن متن چشمک زن شما مثل این، 989 00:58:36,140 --> 00:58:39,810 برچسب مارکی که متن مثل این رفتن بود. 990 00:58:39,810 --> 00:58:45,070 یکی از چند بار که در آن جهان است در واقع توافق بر روی یک استاندارد وب، 991 00:58:45,070 --> 00:58:48,250 هر کس در سراسر هیئت مدیره کشته تگ چشمک زدن چند سال پیش. 992 00:58:48,250 --> 00:58:52,860 اما ما می توانیم آن را با جاوا به عنوان نمایشی از قدرت شما احیا 993 00:58:52,860 --> 00:58:56,660 زمانی که شما می توانید یک برنامه را در داخل یک صفحه وب بنویسید. 994 00:58:56,660 --> 00:59:00,240 اول صفحه بر روی چیزهای جدید و تمرکز تنها بر روی قدیمی بگذارید. 995 00:59:00,240 --> 00:59:01,780 >> در اینجا این است که چیزهای قدیمی در این مثال است. 996 00:59:01,780 --> 00:59:06,350 من یک تگ HTML، تگ head، و یک تگ عنوان. 997 00:59:06,350 --> 00:59:11,210 پس من باید یک تگ body در اینجا با یک دیو، که فراخوان فقط یک بخش مستطیل شکل صفحه 998 00:59:11,210 --> 00:59:14,720 که من خودسرانه ID منحصر به فرد از "تبریک" را به داده، 999 00:59:14,720 --> 00:59:18,320 فقط تا من یک راه منحصر به فرد با اشاره به آن است که برخی از متن بسیار ساده است: 1000 00:59:18,320 --> 00:59:20,220 خوش آمدید، جهان. 1001 00:59:20,220 --> 00:59:23,940 در حال حاضر من رفته تا به بالای این فایل و اجازه دهید ببینیم که چه چیزی جدید. 1002 00:59:23,940 --> 00:59:27,710 اولین چیزی که بالا تا جدید تگ اسکریپت، 1003 00:59:27,710 --> 00:59:31,280 و به داخل اطلاع اسکریپت برچسب من اعلام یک تابع است. 1004 00:59:31,280 --> 00:59:34,610 برای تعریف یک تابع در جاوا اسکریپت، خیلی شبیه به PHP، 1005 00:59:34,610 --> 00:59:37,930 شما به معنای واقعی کلمه تابع ارسال سپس نام تابع، پرانتز، 1006 00:59:37,930 --> 00:59:40,400 و شاید برخی استدلال اگر آن طول می کشد هر. 1007 00:59:40,400 --> 00:59:43,510 سپس من به بریس فرفری من به طور معمول، و در حال حاضر ما برخی از کد کمی جدید، 1008 00:59:43,510 --> 00:59:45,230 اما اجازه دهید ببینیم که چه چیزی این به این معنی است. 1009 00:59:45,230 --> 00:59:48,670 بنابراین DIV VAR، این حالت فقط بدان معناست که من یک div متغیر نامیده می شود بدهد. 1010 00:59:48,670 --> 00:59:50,530 من می توانستم آن را به نام صنایع غذایی، اما من می خواستم آن را به نام دیو 1011 00:59:50,530 --> 00:59:52,620 دلایلی که در یک ثانیه روشن خواهد شد. 1012 00:59:52,620 --> 00:59:57,480 سپس آن را معلوم در جاوا اسکریپت - و این کد جاوا اسکریپت جاسازی شده در صفحه وب من است - 1013 00:59:57,480 --> 01:00:01,760 یک متغیر جهانی و خاص از انواع به نام سند وجود دارد. 1014 01:00:01,760 --> 01:00:04,780 جاوا اسکریپت است که در واقع یک زبان شی گرا است. 1015 01:00:04,780 --> 01:00:07,230 ما نمی خواهد به جزئیات در سال 50 به چه معنی می دهد، 1016 01:00:07,230 --> 01:00:11,180 اما در حال حاضر می دانیم که یک جسم بسیار بسیار شبیه به ساختار است. 1017 01:00:11,180 --> 01:00:14,740 ما را دیدم راه برگشت وقتی در یکی از اولین مشکل این مجموعه 1018 01:00:14,740 --> 01:00:17,150 جایی که ما مقدار زیادی از اطلاعات در یک ساختار قرار داده است، 1019 01:00:17,150 --> 01:00:21,330 به همین ترتیب سند یک ساختار ویژه ای است که می آید با مرورگر، 1020 01:00:21,330 --> 01:00:24,810 همراه با هر صفحه وب. این چیزی است که من ایجاد نمی شود. 1021 01:00:24,810 --> 01:00:28,210 در داخل این ساختار سند، هر چند، شما باید نه تنها داده ها 1022 01:00:28,210 --> 01:00:30,010 اما همچنین شما می توانید توابع. 1023 01:00:30,010 --> 01:00:34,090 >> و در هر زمان به شما یک تابع در داخل یک ساختار، در داخل یک شی، 1024 01:00:34,090 --> 01:00:36,490 آن را به نام یک روش است. اما این همان چیزی است. 1025 01:00:36,490 --> 01:00:40,110 روش یک تابع است که خیلی اتفاق می افتد به داخل چیز دیگری باشد. 1026 01:00:40,110 --> 01:00:42,990 بنابراین این بدان معنی است که این متغیر خاص جهانی به نام سند 1027 01:00:42,990 --> 01:00:47,690 یک تابع به نام getElementById که به معنای واقعی کلمه می کند که. 1028 01:00:47,690 --> 01:00:52,460 این به شما یک عنصر از DOM، مدل شیئی سند درخت، 1029 01:00:52,460 --> 01:00:55,520 که ID در تبریک این مورد است. 1030 01:00:55,520 --> 01:00:59,200 به عبارت دیگر، همه آن زمان ما در ساختارهای داده ای صرف می آید را به بازی اینجا کلیک کنید. 1031 01:00:59,200 --> 01:01:01,400 این تصویر از DOM است که ما تا به حال یک لحظه قبل، 1032 01:01:01,400 --> 01:01:06,100 حتی اگر صفحه کمی متفاوت است، اگر من یک div را در این تصویر، 1033 01:01:06,100 --> 01:01:11,180 چه document.getElementById را به من به طور موثر اشاره گر 1034 01:01:11,180 --> 01:01:15,440 تا مستطیل در درخت، یک مرجع به مستطیل در درخت است. 1035 01:01:15,440 --> 01:01:18,410 بنابراین این چیزی است که به این معنی است که در واقع به تماس با یکی از آن دسته از توابع است. 1036 01:01:18,410 --> 01:01:21,960 در این مورد دوباره آن دیو است. این یک جسم و یا یک عنوان نیست. 1037 01:01:21,960 --> 01:01:26,480 پس اجازه دهید ببینیم که چه چیزی من و سپس با این دیو در حال حاضر که من آن را در داخل از این دیو متغیر به نام. 1038 01:01:26,480 --> 01:01:32,580 به نظر می رسد با جاوا اسکریپت شما توانایی به نیشگون گرفتن و کشیدن CSS صفحه خود را به صورت پویا. 1039 01:01:32,580 --> 01:01:39,060 تا در حال حاضر، همه از CSS ایم، البته محدود انجام شده است در ویژگی های سبک، 1040 01:01:39,060 --> 01:01:41,730 و یا که در آن دیگری CSS ما را؟ 1041 01:01:42,730 --> 01:01:45,810 من خراب شده که یکی از نوع. در برچسب سبک در بالای صفحه از فایل. 1042 01:01:45,810 --> 01:01:49,180 یا مکان سوم قرار داشته است؟ 1043 01:01:50,710 --> 01:01:54,590 >> یک فایل خارجی، چیزی CSS. 1044 01:01:54,590 --> 01:01:56,730 بنابراین کسانی که در 3 مکان ما CSS تا کنون انجام داده ام، 1045 01:01:56,730 --> 01:01:59,310 اما گرفتن این است که ما به سختی رمزی از آن همه است. 1046 01:01:59,310 --> 01:02:04,060 شما تصمیم گرفته اید که شما را به pset 7 کبوتر، ما تصمیم گرفت قبل از سخنرانی CSS ما خواهد بود. 1047 01:02:04,060 --> 01:02:07,380 اما اگر شما می خواهید به تغییر CSS خود را، شما در واقع می توانید که انجام 1048 01:02:07,380 --> 01:02:09,370 هنگامی که شما یک زبان برنامه نویسی واقعی است. 1049 01:02:09,370 --> 01:02:13,910 CSS، HTML - برنامه نویسی نه زبان. جاوا اسکریپت است. 1050 01:02:13,910 --> 01:02:18,200 بنابراین به نظر می رسد که به زودی به شما به عنوان یکی از کسانی که مستطیل از درخت 1051 01:02:18,200 --> 01:02:23,050 به نام DOM، آن را به برخی از داده ها در داخل آن است. 1052 01:02:23,050 --> 01:02:27,820 بنابراین دیو که من فقط از درخت برداشت چیزی است که ما به مالکیت در داخل آن تماس بگیرید 1053 01:02:27,820 --> 01:02:34,390 به نام سبک و ویژگی سبک خود را یک ویژگی به نام دید. 1054 01:02:34,390 --> 01:02:37,330 من می خواهم این کار را تنها به دنبال کتابچه راهنمای کاربر CSS می دانم. 1055 01:02:37,330 --> 01:02:41,160 به نظر می رسد از دید ملک CSS وجود دارد که نشانی از آن را می گوید. 1056 01:02:41,160 --> 01:02:44,530 این باعث می شود چیزی قابل مشاهده است یا نه، قابل مشاهده است یا نه. 1057 01:02:44,530 --> 01:02:46,810 و چگونه انجام این کار این است. 1058 01:02:46,810 --> 01:02:50,510 من از برنامه نویسی در صورتی که دید از این دیو پنهان است، 1059 01:02:50,510 --> 01:02:53,390 آنچه را می توانم آن را تغییر دهید؟ قابل مشاهده است. 1060 01:02:53,390 --> 01:02:58,840 اگر دیگری دید از این صفحه پنهان است، منطقی من آن را پنهان. 1061 01:02:58,840 --> 01:03:04,070 من هیچ نظری ندارم که چرا از آن قابل مشاهده است و پنهان و قابل مشاهده نیست و نامرئی است. 1062 01:03:04,070 --> 01:03:06,000 این یک تصمیم طراحی ضعیف در طول راه بود. 1063 01:03:06,000 --> 01:03:09,530 ولی برای کسانی که در واقع متضاد در CSS: آشکار و پنهان. 1064 01:03:09,530 --> 01:03:15,520 همه می کند این است به این معنی تغییر CSS فایل من روشن و خاموش کردن، روشن و خاموش 1065 01:03:15,520 --> 01:03:16,870 که دیو خاص. 1066 01:03:16,870 --> 01:03:20,630 اما باز هم، این یک تابع به نام چشمک زدن است. هنگامی که تابع چشمک زدن نامیده می شود؟ 1067 01:03:20,630 --> 01:03:24,080 به نظر می رسد که یکی دیگر از ویژه جهانی متغیر به نام پنجره وجود دارد، 1068 01:03:24,080 --> 01:03:28,220 مشابه در روح به سند، اما در حالی که سند اشاره به صفحه وب خود، 1069 01:03:28,220 --> 01:03:31,700 مانند درخت DOM، HTML شما فرستاده شده از سرور، 1070 01:03:31,700 --> 01:03:35,250 پنجره اشاره به کروم در اطراف آن، در نوار آدرس، نوار عنوان، 1071 01:03:35,250 --> 01:03:37,880 و همه از آن چیزهای اطراف صفحه وب خود را. 1072 01:03:37,880 --> 01:03:42,800 >> و معلوم است که شی پنجره در داخل تابع خاص از آن را به نام setInterval 1073 01:03:42,800 --> 01:03:44,360 که نشانی از آن را می گوید. 1074 01:03:44,360 --> 01:03:48,600 این فاصله را تنظیم کنید - در این مورد، هر 500 میلی ثانیه - 1075 01:03:48,600 --> 01:03:52,270 و، را حدس می زنم، چه آن را به انجام هر 500 میلی ثانیه؟ 1076 01:03:52,270 --> 01:03:55,240 رفتن به اجرا است که چشمک زدن تابع. 1077 01:03:55,240 --> 01:03:58,560 و چه خوب در اینجا این است که ما می توانیم این کار را در C انجام می شود حتی اگر ما هرگز. 1078 01:03:58,560 --> 01:04:01,580 C چیزی به نام اشاره گر تابع که در آن شما می توانید توابع را در اطراف عبور 1079 01:04:01,580 --> 01:04:03,140 به عنوان آرگومان. 1080 01:04:03,140 --> 01:04:07,620 به طور مشابه در جاوا اسکریپت می تواند به نام یک تابع را به یک تابع دیگر را به شما منتقل می کند. 1081 01:04:07,620 --> 01:04:10,630 و متوجه آنچه که من انجام می دهند. من این انجام نمی دهد. 1082 01:04:10,630 --> 01:04:14,380 اگر من پرانتز پس از هم زدن قرار داده است، که به این معنی است که فراخوانی تابع چشمک زدن. 1083 01:04:14,380 --> 01:04:17,430 اگر من آنها را حذف، این بدان معناست که در اینجا تابع چشمک 1084 01:04:17,430 --> 01:04:21,330 به طوری که setInterval هر 500 میلی ثانیه می توانید تماس بگیرید. 1085 01:04:21,330 --> 01:04:28,200 بنابراین نتیجه نهایی، همین هر چند از آن است، این است که اگر من به localhost را و رفتن به blink.html، 1086 01:04:28,200 --> 01:04:32,120 من در حال حاضر این اتفاق می افتد دوباره و دوباره. 1087 01:04:32,120 --> 01:04:34,950 و اگر من در واقع عنصر بازرسی، بیایید ببینید که اگر ما می توانیم این را ببینید. 1088 01:04:34,950 --> 01:04:38,550 عنصر بازرسی من، به من اجازه حرکت کردن فقط کمی، 1089 01:04:38,550 --> 01:04:44,320 اجازه دهید عناصر اینجا را انتخاب کنید، و متوجه داخل DOM بازرس کروم است. 1090 01:04:44,320 --> 01:04:48,840 این به معنای واقعی کلمه در حال تغییر به عقب و جلو هر 500 میلی ثانیه است. 1091 01:04:48,840 --> 01:04:55,660 اگر ما به دوست ما مقابله، 1092 01:04:55,660 --> 01:05:00,020 اگر شما تا کنون چگونه این کار می کند، ایده مشابه با فاصله تعجب، 1093 01:05:00,020 --> 01:05:04,810 اما مقابله است که در واقع استفاده بسیار موثر از رنگ در این مورد خاص در اینجا. 1094 01:05:04,810 --> 01:05:07,350 پس چه بیشتر می تواند ما در واقع با این کار؟ 1095 01:05:07,350 --> 01:05:09,990 بیایید باز کردن یک مثال دیگر کنید و سعی کنید به چیزی 1096 01:05:09,990 --> 01:05:12,940 که برنامه نویسی حتی مفید تر از هم زدن همه چیز است. 1097 01:05:12,940 --> 01:05:17,990 اجازه دهید من را در دایرکتوری ما به اشکال و به form0. 1098 01:05:17,990 --> 01:05:20,820 این زشت ترین شکل ممکن بود که من می توانم آمد تا با 1099 01:05:20,820 --> 01:05:23,290 و اجازه دهید من فقط به شما نشان می دهد آنچه که آن را در مرورگر به نظر می رسد. 1100 01:05:23,290 --> 01:05:28,960 >> اجازه بدهید من به اشکال / localhost را، و این form0. 1101 01:05:28,960 --> 01:05:33,400 این فوق العاده زشت فرم HTML است که زمینه برای ایمیل، رمز عبور، 1102 01:05:33,400 --> 01:05:37,190 رمز عبور، و سپس چک باکس کوچک به توافق برسند به برخی از قوانین و مقررات و شرایط. 1103 01:05:37,190 --> 01:05:41,350 گرفتن است اگر بازدید از این فرم و من نمی خواهم به شما آدرس ایمیل من را، 1104 01:05:41,350 --> 01:05:44,730 من نمی خواهم به موافقت خود را با قوانین و مقررات و شرایط ممکن، من می توانم بر روی ثبت نام 1105 01:05:44,730 --> 01:05:46,920 و آن را به من اجازه می دهد تا از طریق هر حال. 1106 01:05:46,920 --> 01:05:50,800 این اتفاق می افتد برای ارسال به یک فایل احمقانه PHP به نام dump.php. 1107 01:05:50,800 --> 01:05:58,420 همه آن را نشانی نسخه قابل چاپ کردن مطالب از $ _GET فقط برای مقاصد تشخیصی. 1108 01:05:58,420 --> 01:06:01,580 که چیزی بود که توسط کاربر ارائه شد و فقط در حال حاضر. 1109 01:06:01,580 --> 01:06:05,010 اما فرض کنید ما در واقع می خواهم به اعتبار فرم ثبت نام کاربر. 1110 01:06:05,010 --> 01:06:06,530 اجازه بدهید من را به نسخه 1. 1111 01:06:06,530 --> 01:06:11,420 این form1.html. به نظر می رسد زیبا فقط به عنوان بد است، اما متوجه فانتزی آن است. 1112 01:06:11,420 --> 01:06:15,450 اگر من کلیک کنید ثبت نام بدون همکاری، من فریاد می زدند. 1113 01:06:15,450 --> 01:06:17,320 "شما باید آدرس ایمیل خود را فراهم کند." 1114 01:06:17,320 --> 01:06:21,670 بسیار خوب. بنابراین من سعی کنید که اجازه می دهد. بنابراین malan@harvard.edu. من می توانم یک رمز عبور نیاز ندارد. 1115 01:06:21,670 --> 01:06:25,100 ثبت نام کنید. "شما باید یک رمز عبور." بسیار خوب. 1116 01:06:25,100 --> 01:06:28,470 بنابراین من رمز عبور قرمز را فراهم خواهد کرد. ثبت نام کنید. 1117 01:06:28,470 --> 01:06:32,300 "رمزهای عبور با هم مطابقت ندارند." من در حال حاضر در اینجا قرمز تایپ کنید. 1118 01:06:32,300 --> 01:06:35,710 من به طور تصادفی چک که. ثبت نام کنید. 1119 01:06:35,710 --> 01:06:39,860 "شما باید به قوانین و مقررات و شرایط به توافق برسند." بسیار خوب. موافق نخواهند بود. ثبت نام کنید. 1120 01:06:39,860 --> 01:06:43,700 و در حال حاضر آن را نشان می دهد به من خروجی تشخیصی بیش از وجود دارد. 1121 01:06:43,700 --> 01:06:45,630 >> پس چه چیزی اتفاق افتاده است؟ 1122 01:06:45,630 --> 01:06:48,330 ما تا به حال این توانایی به اعتبار فرم ارسالی. 1123 01:06:48,330 --> 01:06:51,420 در واقع، اگر شما شیرجه رفتن به pset 7 انجام داد، یک تابع عذرخواهی وجود دارد 1124 01:06:51,420 --> 01:06:54,620 که باعث می شود آن را بسیار آسان به کاربر با یک پیام بر روی صفحه نمایش داد. 1125 01:06:54,620 --> 01:06:57,580 من با استفاده از یک مکانیسم کمی متفاوت، عملکرد هشدار، 1126 01:06:57,580 --> 01:07:03,690 که یک تابع که لبخند زد بر از آن را می سازد پیام کاربر بسیار زشت نمی باشد. 1127 01:07:03,690 --> 01:07:05,710 اما اجازه دهید ببینیم که چه چیزی من انجام می دهند در اینجا. 1128 01:07:05,710 --> 01:07:09,620 این form1.html، و توجه کنید که من به برخی از نحو کاملا آشنا: 1129 01:07:09,620 --> 01:07:12,920 تگ body تگ فرم، صفت، صفت روش. 1130 01:07:12,920 --> 01:07:17,050 اما متوجه من شکل من یک ID منحصر به فرد برای راحتی. 1131 01:07:17,050 --> 01:07:19,190 سپس من یک فیلد ایمیل که نوع متن، 1132 01:07:19,190 --> 01:07:23,780 رمز عبور زمینه است که نوع رمز عبور، زمینه تایید که نوع رمز عبور، 1133 01:07:23,780 --> 01:07:28,070 و سپس چک باکس که نام توافق در اینجا، نوع چک باکس است. 1134 01:07:28,070 --> 01:07:30,380 و بعد من یک دکمه ارسال. 1135 01:07:30,380 --> 01:07:33,050 اما متوجه بالا چه بیشتر داشته باشم. 1136 01:07:33,050 --> 01:07:35,810 اول از همه، یکی دیگر از استفاده از تگ اسکریپت وجود دارد. 1137 01:07:35,810 --> 01:07:40,520 اگر شما از برخی از کدهای جاوا اسکریپت در یک فایل دیگر، درست مثل با CSS شما می توانید از آن باشد. 1138 01:07:40,520 --> 01:07:44,530 و شما که با منبع اسکریپت، و سپس متوجه من اتصال ظاهرا 1139 01:07:44,530 --> 01:07:50,349 به googleapis.com به یک مسیر بسیار طولانی است اما نام فایل که به پایان می رسد در jquery.min 1140 01:07:50,349 --> 01:07:52,420 برای به حداقل رساندن JS. 1141 01:07:52,420 --> 01:07:55,969 ذکر کرد که jQuery یک کتابخانه عمومی فوق العاده برای جاوا اسکریپت است که فقط باعث می شود جاوا اسکریپت 1142 01:07:55,969 --> 01:07:58,230 همه بیشتر کاربر پسند استفاده کنید. 1143 01:07:58,230 --> 01:08:00,610 این منجر به تبدیل شدن به یک استاندارد بالفعل است. 1144 01:08:00,610 --> 01:08:04,090 بنابراین حتی اگر شما برای دیدن خالص جاوا اسکریپت در SE نیست، 1145 01:08:04,090 --> 01:08:09,340 آن است که یک کتابخانه در جاوا بسیار شبیه به کتابخانه CS50 یک لایه 1146 01:08:09,340 --> 01:08:13,670 در بالا از سطح پایین کد C، واقعیت این است که تقریبا هر کسی در اینترنت از آن استفاده می کند. 1147 01:08:13,670 --> 01:08:18,030 بنابراین این چرخ آموزش. این است که فقط به بهترین شیوه این روزها. 1148 01:08:18,030 --> 01:08:22,830 در حال حاضر زیر توجه داشته باشید که تگ اسکریپت خود من، و متوجه آنچه که من انجام داده ام. 1149 01:08:22,830 --> 01:08:27,450 به نظر می رسد که jQuery هیچ چیزی که کمی فانتزی است. 1150 01:08:27,450 --> 01:08:29,660 جاوا اسکریپت علائم دلار، اما آنها بی معنی است. 1151 01:08:29,660 --> 01:08:32,870 >> آنها مانند حرف A یا B یا C. 1152 01:08:32,870 --> 01:08:36,670 jQuery را به سادگی کنوانسیون یا مرتب کردن بر اساس ادعای گذاشته به این واقعیت به تصویب رسید 1153 01:08:36,670 --> 01:08:40,280 دلار خواهد بود نماد خاص خود را. 1154 01:08:40,280 --> 01:08:44,950 بنابراین به محض این که این فایل جاوا اسکریپت جهانی شما بار تا اینجا با برچسب اسکریپت، 1155 01:08:44,950 --> 01:08:49,080 شما دسترسی به یک متغیر خاص جهانی که به نام دلار است. 1156 01:08:49,080 --> 01:08:53,009 این بیشتر به درستی به نام jQuery را، اما که به نظر نمیرسد تقریبا به عنوان به عنوان دلار سکسی. 1157 01:08:53,009 --> 01:08:56,250 اما دلار هیچ معنا و مفهوم خاصی دارد. در PHP آن را تا به حال به معنی خاص است. 1158 01:08:56,250 --> 01:08:58,440 شما تا به حال به آن را در مقابل یک متغیر داشته باشد. 1159 01:08:58,440 --> 01:09:01,670 این است که فقط به یک چیز مورد علاقه ای که آنها در گرفت. 1160 01:09:01,670 --> 01:09:03,389 چه خبره اینجا؟ 1161 01:09:03,389 --> 01:09:08,830 توجه داشته باشید که من عبور به تابع jQuery سند متغیر جهانی من 1162 01:09:08,830 --> 01:09:10,860 و پس از آن من خواستار آماده شده است. 1163 01:09:10,860 --> 01:09:15,480 چه jQuery را در اصل آن است که اجازه می دهد تا شما را به برخی از چیزهایی جاوا اسکریپت وانیلی 1164 01:09:15,480 --> 01:09:17,889 مانند شی سند، شی پنجره، 1165 01:09:17,889 --> 01:09:20,790 و اگر آن را به شما منتقل می کند به تابع jQuery - 1166 01:09:20,790 --> 01:09:24,429 و دوباره روشن می شود، این یک تابع به نام جی کوئری - 1167 01:09:24,429 --> 01:09:28,240 آنچه در آن است آن را به شما یک نسخه خاص از سند را بر می گرداند 1168 01:09:28,240 --> 01:09:30,700 است که دارای قابلیت های بیشتری را در ارتباط با آن است. 1169 01:09:30,700 --> 01:09:34,760 بنابراین در جاوا اسکریپت خام تابع آماده وجود دارد، 1170 01:09:34,760 --> 01:09:37,810 اما اگر شما تصویب سند به تابع jQuery اول، 1171 01:09:37,810 --> 01:09:40,960 آن را به شما برمی گرداند نسخه ویژه ای از شی سند 1172 01:09:40,960 --> 01:09:43,030 که دارای ویژگی های بیشتری فانتزی. 1173 01:09:43,030 --> 01:09:48,230 و به همین دلیل است که مردم آن را دوست دارم. این فقط باعث می شود همه چیز آسان تر برای انجام این کار، همانطور که ما در مورد برای دیدن هستید. 1174 01:09:48,230 --> 01:09:49,820 پس چه این خط از کد چیست؟ 1175 01:09:49,820 --> 01:09:52,690 این خط از کد را در اینجا به معنای زمانی که سند آماده است - 1176 01:09:52,690 --> 01:09:56,830 به عبارت دیگر، هنگامی که مرورگر به خواندن این فایل بالا به پایین انجام می شود - 1177 01:09:56,830 --> 01:09:59,200 برو جلو و تابع زیر را اجرا کنید. 1178 01:09:59,200 --> 01:10:03,540 آنچه که واقعا جالب در جاوا اسکریپت - و PHP است و همچنین - 1179 01:10:03,540 --> 01:10:05,450 توابع بی نام است. 1180 01:10:05,450 --> 01:10:10,560 در جاوا اسکریپت شما می توانید توابع است که بدون نام، اما آنها مجبور به بدن اعلام می دارد. 1181 01:10:10,560 --> 01:10:12,570 توجه داشته باشید که چه چیزی اتفاق می افتد در اینجا. 1182 01:10:12,570 --> 01:10:16,220 >> این یک تابع به نام آماده است، و این حالت فقط بدان معناست زیر را انجام دهید 1183 01:10:16,220 --> 01:10:20,220 هنگامی که کل صفحه وب آماده است، هنگامی که آن را تمام شده است را از سرور خوانده شود. 1184 01:10:20,220 --> 01:10:23,090 چه چیزی را می خواهید انجام دهید؟ من می خواهم برای اجرای یک تکه کد. 1185 01:10:23,090 --> 01:10:27,120 توجه داشته باشید که ما نمی خواهیم از این کد برای اجرای حق دور. 1186 01:10:27,120 --> 01:10:34,350 اگر من حذف شده، بلافاصله این به این معنی است که شروع به اجرای این خط از کد. 1187 01:10:34,350 --> 01:10:39,040 اما حقیقت این است که من و گفت نه، نه، نه، بسته بندی کردن این کار را در یک تابع بی نام شبیه به این 1188 01:10:39,040 --> 01:10:43,000 معنایش این است آن را اجرا نشده است، آن را در نهایت. 1189 01:10:43,000 --> 01:10:45,430 ما شاهد این یک لحظه پیش در مثال شکل قبلی ما است. 1190 01:10:45,430 --> 01:10:49,990 چه تابع ما تماس بگیرید در نهایت، 500 میلی ثانیه بعد؟ چشمک زدن. 1191 01:10:49,990 --> 01:10:51,480 بنابراین همان ایده است. 1192 01:10:51,480 --> 01:10:53,950 باز هم، حتی اگر این به نظر می رسد کمی عجیب و غریب است، فقط در حال حاضر در ایمان 1193 01:10:53,950 --> 01:10:57,060 که برای اعلام یک تابع بی نام که به نام سرانجام 1194 01:10:57,060 --> 01:11:01,720 شما به سادگی تابع () ارسال { 1195 01:11:01,720 --> 01:11:05,380 پس چه کد می خواهیم به اجرا در نهایت؟ شرح زیر است. 1196 01:11:05,380 --> 01:11:10,460 این نیز کمی جدید به نظر می رسد، اما این به این معنی در اینجا تابع جی کوئری، 1197 01:11:10,460 --> 01:11:13,430 و این اکنون یک میانبر است. 1198 01:11:13,430 --> 01:11:18,830 این قطعه از HTML را در پایین صفحه نمایش البته تا به برخی از نمایندگی درخت. 1199 01:11:18,830 --> 01:11:21,730 این نیست. این صفحه جالب تر است از این میهمان گرامی، به عنوان مثال. 1200 01:11:21,730 --> 01:11:25,210 اما برخی از درختی که مربوط به این HTML وجود دارد. 1201 01:11:25,210 --> 01:11:28,910 این امر می تواند درد در گردن به نوعی از تابع بازگشتی به پیاده سازی 1202 01:11:28,910 --> 01:11:34,380 برای شروع در گره ریشه و سپس پیدا کردن گره که ID ثبت نام است. 1203 01:11:34,380 --> 01:11:38,340 پس چه jQuery را فوق العاده آسان می سازد برای ما به معنای واقعی کلمه این است. 1204 01:11:38,340 --> 01:11:43,000 برو جلو و به من هر شکل دیو و یا هر چیز دیگری، هر عنصر HTML 1205 01:11:43,000 --> 01:11:45,820 ID از ثبت نام. 1206 01:11:45,820 --> 01:11:52,440 این معادل است به document.getElementById ('ثبت نام'). 1207 01:11:52,440 --> 01:11:54,170 >> چرا افرادی مانند jQuery را؟ 1208 01:11:54,170 --> 01:12:00,110 از آنجا که آن را کوتاه تر تایپ کنید. اما این تمام آن است. این همان ایده است. 1209 01:12:00,110 --> 01:12:02,630 تگ ID است که ثبت نام کنید. 1210 01:12:02,630 --> 01:12:06,300 و هنگامی که آن برچسب، که اتفاق می افتد به یک فرم، ارائه، 1211 01:12:06,300 --> 01:12:08,300 پیش بروید و این کد را اجرا. 1212 01:12:08,300 --> 01:12:11,320 پس گرفتن اجازه دهید یک نگاه در حال حاضر ما در حال انجام اعتبار سنجی فرم. 1213 01:12:11,320 --> 01:12:15,950 این نحو است مسلما های مرموز در ابتدا، اما چه خبر است؟ 1214 01:12:15,950 --> 01:12:21,050 اگر این خط از کد درست است، من قصد دارم به کاربر داد به ارائه آدرس خود را به ایمیل. 1215 01:12:21,050 --> 01:12:22,970 پس چه شده است این خط از کد؟ 1216 01:12:22,970 --> 01:12:25,560 دلار به معنای JQuery می کنند. در حال حاضر این اطلاع می دهد. 1217 01:12:25,560 --> 01:12:27,920 این نوع مانند CSS است. 1218 01:12:27,920 --> 01:12:33,370 اگر شما به CSS شیرجه با این حال، شما می دانم که این به معنی عنصر که ID ثبت نام است. 1219 01:12:33,370 --> 01:12:39,840 فضا به معنای پیدا کردن یک فرزند و یا از نوادگان ثبت نام که نام ورودی است. 1220 01:12:39,840 --> 01:12:42,970 و پس از این چیزی که در میدان براکت یک فیلتر کوچک است. 1221 01:12:42,970 --> 01:12:47,010 و حتی اگر این به نظر می رسد مرموز، این حالت فقط بدان معناست رفتن به فرم ID است که ثبت نام، 1222 01:12:47,010 --> 01:12:51,230 رفتن به داخل ورودی عنصر که که نام ایمیل، 1223 01:12:51,230 --> 01:12:55,440 و پس از آن ارزش خود را، هر چه مقدار آن اتفاق می افتد - 1224 01:12:55,440 --> 01:12:59,670 asdf در صورتی که من تایپ یا malan@harvard.edu اگر این چیزی است که من تایپ. 1225 01:12:59,670 --> 01:13:05,250 بنابراین اگر ارزش زمینه ایمیل فرم == هیچ چیز، در به کاربر داد. 1226 01:13:05,250 --> 01:13:09,700 اگر دیگری ارزش == هیچ چیز، از فیلد رمز عبور به کاربر داد. 1227 01:13:09,700 --> 01:13:19,520 >> اگر دیگری ارزش از فیلد رمز عبور ارزش این زمینه تایید می کند برابر نیست، 1228 01:13:19,520 --> 01:13:22,850 که عنصر شکل دیگری بود، در کاربر داد. 1229 01:13:22,850 --> 01:13:25,680 و سپس در نهایت - و این یکی بیش از حد برخی از نحو خاص خود را دارد، 1230 01:13:25,680 --> 01:13:29,270 اما هنگامی که شما آن را دیده، آن را حداقل کمی معقول تر است - 1231 01:13:29,270 --> 01:13:34,060 دیگر در صورتی که ID است که ثبت نام یک عنصر ورودی است که نام توافق 1232 01:13:34,060 --> 01:13:39,720 و از آن است که بررسی می شود، به جلو و داد در کاربر. 1233 01:13:39,720 --> 01:13:42,520 بنابراین من کاملا این است که به طور کامل در مورد قریب به اتفاق در نگاه اول بپذیرد. 1234 01:13:42,520 --> 01:13:46,530 بسیاری از تگ های جدید است. اما همه از jQuery به دنبال این نوع از الگوها است. 1235 01:13:46,530 --> 01:13:49,880 و صادقانه، من حتی نمی دانند این موجود تا چند دقیقه پیش. 1236 01:13:49,880 --> 01:13:53,640 من گوگل،: "چگونه می توانم شما بررسی کنید اگر یک چک باکس در jQuery بررسی می شود؟" 1237 01:13:53,640 --> 01:13:55,680 و این نحو است، چرا که شیوه های متفاوتی برای انجام آن وجود دارد 1238 01:13:55,680 --> 01:13:58,010 با واقعی کد جاوا اسکریپت خام. 1239 01:13:58,010 --> 01:14:01,030 بنابراین به عنوان اولین صفحه از مجموعه مشکل 7 بر، 1240 01:14:01,030 --> 01:14:04,500 pset است 7 بسیار ورزش در bootstrapping خودتان 1241 01:14:04,500 --> 01:14:08,650 جایی که ما ارائه کرده ایم، امیدوارم، یک چارچوب مفهومی که با آن به مقابله با pset. 1242 01:14:08,650 --> 01:14:12,280 >> اما اغلب به عنوان مورد با طراحی وب سایت، آن را به شما واقعا به بهم زدن در اطراف، 1243 01:14:12,280 --> 01:14:16,680 ترکیب قطعه از کد ها و نمونه هایی از وب سایت تا زمانی که شما به آنها استناد 1244 01:14:16,680 --> 01:14:17,960 در هر شرایط که در آن جدول اول، 1245 01:14:17,960 --> 01:14:21,460 و درک کنند که یادگیری HTML، CSS، JavaScript در مرورگر و حتی SQL 1246 01:14:21,460 --> 01:14:26,020 واقعا به معنای به این ورزش در خانه ما شروع به گرفتن این چرخ آموزش. 1247 01:14:26,020 --> 01:14:29,150 و ببینی که بیش از حد بسیاری از بیشتر چیزهایی که شما می توانید با یک مرورگر انجام دهید وجود دارد. 1248 01:14:29,150 --> 01:14:33,790 در داخل بسیاری از این عناصر، چیزهای دیگری هستند که به نام گرداننده رویداد وجود دارد. 1249 01:14:33,790 --> 01:14:37,140 و حتی اگر ما فقط در آنهایی که نگاه به نام onsubmit و onready 1250 01:14:37,140 --> 01:14:40,310 شما می توانید همه چیز را انجام دهد، مانند onkeydown، هم OnKeyUp 1251 01:14:40,310 --> 01:14:43,410 دوست دارم زمانی که کاربر در لمس یک کلید، شما می توانید برای آن کلید را گوش دهید. 1252 01:14:43,410 --> 01:14:45,940 جیمیل دارای میانبرهای صفحه کلید می باشد. 1253 01:14:45,940 --> 01:14:49,490 چگونه گوگل پیاده سازی میانبرهای صفحه کلید مانند C برای نوشتن؟ 1254 01:14:49,490 --> 01:14:54,120 آنها برای رویدادها گوش، به عنوان آنها نامیده می شود، مانند onkeypress یا هم OnKeyUp و onkeydown. 1255 01:14:54,120 --> 01:14:56,360 اگر تا کنون موس خود را بر روی برخی از گزینه منو نورانی کردن 1256 01:14:56,360 --> 01:15:00,180 و همه به طور ناگهانی، voila، یک منو ظاهر می شود و یا گرافیک تغییر رنگ، 1257 01:15:00,180 --> 01:15:01,920 چگونه انجام این کار؟ 1258 01:15:01,920 --> 01:15:06,940 به جای گوش دادن برای onready یا onsubmit، شما برای onmouseover و onmouseout گوش. 1259 01:15:06,940 --> 01:15:10,920 >> بنابراین در کوتاه مدت، با این اصول بسیار ساده است که ما کرده ایم شروع به خراش سطح از امروز 1260 01:15:10,920 --> 01:15:13,940 و ما بیشتر به روز چهارشنبه فرو رفتن، شما داشته باشد، به طور فزاینده ای، 1261 01:15:13,940 --> 01:15:17,530 قدرت برای پیاده سازی انواع چیزهایی که شما در حال حاضر با آن آشنا است. 1262 01:15:17,530 --> 01:15:21,620 بنابراین پایان دادن وجود دارد، و ما این کار را در روز چهارشنبه ادامه خواهد داد. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]