1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> هانا بلومبرگ: سلام به همگی. 3 00:00:07,030 --> 00:00:09,530 ما قصد داریم برای شروع فقط چند دقیقه زودتر 4 00:00:09,530 --> 00:00:11,738 از آنجایی که ما یک کل از مواد به نفوذ کنه. 5 00:00:11,738 --> 00:00:12,790 من هانا هستم. 6 00:00:12,790 --> 00:00:13,865 من یک TF هستم. 7 00:00:13,865 --> 00:00:16,239 ماریا در حال رفتن به پیوستن شود ما فقط در چند دقیقه. 8 00:00:16,239 --> 00:00:17,560 او درست قبل از بخش می آموزد. 9 00:00:17,560 --> 00:00:19,351 من بخش سمت راست آموزش پس از آن، بنابراین ما قصد داریم 10 00:00:19,351 --> 00:00:21,200 آن را نگه دارید به یک ساعت و نیم. 11 00:00:21,200 --> 00:00:25,490 >> بنابراین به عنوان شما را در اینجا ببینید، ما باید کاملا چند موضوع ما نیاز به از طریق دریافت، 12 00:00:25,490 --> 00:00:27,200 بنابراین خواهیم رفتن کمی سریع می باشد. 13 00:00:27,200 --> 00:00:31,140 اما اگر در هر نقطه که ما چیزی می گویند سرعت بیش از حد و یا شما را نمی فهمید، 14 00:00:31,140 --> 00:00:33,170 در صورت تمایل به قطع با سوالات. 15 00:00:33,170 --> 00:00:36,610 ما می خواهم که قادر به این بررسی جلسه به عنوان مفید به همه شما 16 00:00:36,610 --> 00:00:37,973 تا جایی که ممکن است. 17 00:00:37,973 --> 00:00:38,920 عالی. 18 00:00:38,920 --> 00:00:41,650 >> بنابراین اجازه دهید پرش به سمت راست با برخی از موضوعات که ما در واقع 19 00:00:41,650 --> 00:00:46,980 بسیار بسیار کوتاهی برای تحت پوشش مسابقه 0 در مسابقه 0 را وارد نمایید. 20 00:00:46,980 --> 00:00:48,840 بنابراین با لیست های پیوندی شروع. 21 00:00:48,840 --> 00:00:52,090 بنابراین فقط مطمئن شوید که شما باید برخی از دانش پایه در مورد لیست های پیوندی 22 00:00:52,090 --> 00:00:55,110 و راحت انجام می دهند برخی از عملیات اساسی است. 23 00:00:55,110 --> 00:00:58,560 >> پس فقط به بررسی، مرتبط لیست بهتر از آرایه ها 24 00:00:58,560 --> 00:01:01,020 چرا که آنها به صورت پویا می تواند رشد کند. 25 00:01:01,020 --> 00:01:03,300 پس ما که مزیت بزرگ است. 26 00:01:03,300 --> 00:01:06,031 ما را دیده ام آنها استفاده می شود در جداول هش هنگامی که ما 27 00:01:06,031 --> 00:01:08,280 دقیقا نمی دانند که چگونه بسیاری از چیزهایی که ما به خواهید 28 00:01:08,280 --> 00:01:10,900 برای وارد کردن به ساختار داده است. 29 00:01:10,900 --> 00:01:15,700 متاسفانه، ما باید قطعه از لیست پیوندی در سراسر حافظه، 30 00:01:15,700 --> 00:01:20,820 بنابراین ما لزوما قادر به دسترسی زمان ثابت 31 00:01:20,820 --> 00:01:22,502 به هر عنصر در لیست پیوندی. 32 00:01:22,502 --> 00:01:24,210 به منظور پیدا کردن یک عنصر خاص، ما 33 00:01:24,210 --> 00:01:26,510 مجبور به تکرار همه راه را از اول شروع کنید. 34 00:01:26,510 --> 00:01:30,610 بنابراین به خاطر داشته باشید که بسیاری از عملیات اساسی امگا، از مجموع 1 می باشد. 35 00:01:30,610 --> 00:01:32,130 بنابراین درج فقط رفتن را به 1. 36 00:01:32,130 --> 00:01:37,520 حذف می گذرد را به N از آنجایی که ما باید برای رفتن پیدا کردن آن را از لیست. 37 00:01:37,520 --> 00:01:39,260 و جستجو می تواند را، در بدترین حالت، N. 38 00:01:39,260 --> 00:01:42,330 ما می توانید چیزی شبیه نیست جستجوی دودویی در یک لیست پیوندی 39 00:01:42,330 --> 00:01:45,101 از آنجایی که ما فقط می توانید به طور تصادفی به وسط پرش. 40 00:01:45,101 --> 00:01:45,600 خنک. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 عالی. 43 00:01:48,960 --> 00:01:50,270 >> کمی از پشته. 44 00:01:50,270 --> 00:01:53,980 این، دوباره، آمد در امتحان 0، بنابراین شما باید فوق العاده با آن راحت باشد. 45 00:01:53,980 --> 00:01:57,210 اما آمدن، ما از شما درخواست به یاد داشته باشید یک پشته از سینی. 46 00:01:57,210 --> 00:01:59,940 و آن را برای اولین بار در می شود، گذشته. 47 00:01:59,940 --> 00:02:02,272 بنابراین ما پشته تا چیز در پشته، و پس از آن 48 00:02:02,272 --> 00:02:04,980 اگر ما در حال تلاش برای گرفتن چیزی off-- که ما ظاهر کردن 49 00:02:04,980 --> 00:02:06,581 stack-- ما آمده ایم از بالا. 50 00:02:06,581 --> 00:02:09,289 و اگر ما می خواهیم برای قرار دادن چیزی در پشته، ما پاسخ آن را هل دادن. 51 00:02:09,289 --> 00:02:13,170 پس از آن همیشه رفتن به در حال رشد از پایین مانند یک پشته از سینی. 52 00:02:13,170 --> 00:02:14,540 عالی. 53 00:02:14,540 --> 00:02:17,607 >> ما پشته دیده ام اجرا با هر دو لیست های پیوندی و آرایه ها. 54 00:02:17,607 --> 00:02:19,440 اگر شما در حال اجرای با آرایه، شما می خواهید 55 00:02:19,440 --> 00:02:22,350 مطمئن شوید برای پیگیری هر دو اندازه و ظرفیت. 56 00:02:22,350 --> 00:02:27,540 بنابراین اندازه است برای رفتن به جریان تعدادی از چیزهایی در پشته خود را، 57 00:02:27,540 --> 00:02:32,900 در حالی که ظرفیت تعداد کل است از چیزهایی که شما می توانید در پشته را ذخیره کنید. 58 00:02:32,900 --> 00:02:34,220 خنک. 59 00:02:34,220 --> 00:02:35,767 >> بسیار مشابه، ما باید صف. 60 00:02:35,767 --> 00:02:38,850 در این مورد، به جای فکر کردن در مورد یک پشته از سینی، از یک خط فکر می کنم. 61 00:02:38,850 --> 00:02:40,697 این است که رفتن به اولین بار در سال، از اول. 62 00:02:40,697 --> 00:02:42,780 بنابراین اگر شما به پوشش برای چیزی در فروشگاه، 63 00:02:42,780 --> 00:02:46,920 ما امیدواریم که که فرد برای اولین بار در خط به اول کمک کرد. 64 00:02:46,920 --> 00:02:49,350 >> به جای گفتن فشار و پاپ مانند ما برای پشته انجام دهید، 65 00:02:49,350 --> 00:02:52,000 ما فقط می گویند در نوبت قراردادن و dequeue. 66 00:02:52,000 --> 00:02:54,970 و دوباره، اگر شما اجرای این با یک آرایه، 67 00:02:54,970 --> 00:02:56,720 ما نیاز به پیگیری نه تنها به اندازه 68 00:02:56,720 --> 00:03:02,390 و ظرفیت، بلکه سر، که در حال رفتن به جلوی صف ما. 69 00:03:02,390 --> 00:03:03,010 خنک. 70 00:03:03,010 --> 00:03:05,770 هر گونه سوال در هر یک از این؟ 71 00:03:05,770 --> 00:03:06,320 عالی. 72 00:03:06,320 --> 00:03:07,640 در حال حرکت حق همراه است. 73 00:03:07,640 --> 00:03:08,564 >> OK، جداول هش. 74 00:03:08,564 --> 00:03:10,605 اینجا جایی است که آن را به شروع می شود واقعا جالب است. 75 00:03:10,605 --> 00:03:14,150 بنابراین یک جدول هش یکی از پیاده سازی است از یک آرایه انجمنی. 76 00:03:14,150 --> 00:03:16,700 بنابراین اساسا چه اتفاقی افتاده است که همه ما از این ورودی، 77 00:03:16,700 --> 00:03:18,750 و ما آن را به یک رشته هش را تابع که می گوید، 78 00:03:18,750 --> 00:03:21,840 خوب، این است که در آن در جدول هش آن تعلق دارد. 79 00:03:21,840 --> 00:03:24,860 >> بنابراین ساده ترین تابع هش که ما دیده ایم فقط گفت، 80 00:03:24,860 --> 00:03:28,170 OK، فرض کنید ما خواهید برای قرار دادن رشته در جدول هش ما است. 81 00:03:28,170 --> 00:03:30,870 و یک ایده واقعا ساده ممکن است به گفتن نیست، OK، 82 00:03:30,870 --> 00:03:34,350 اجازه دهید فقط توسط مرتب سازی بر اساس حرف اول کلمه است. 83 00:03:34,350 --> 00:03:37,570 بنابراین شما می توانید در اینجا ببینید، ما را موز، ما آن را از طریق یک تابع هش قرار داده است، 84 00:03:37,570 --> 00:03:40,190 و آن را می گوید، هی، که باید در صفحه اول 1 است. 85 00:03:40,190 --> 00:03:45,120 >> بنابراین ما می تواند اساسا از هاش فکر می کنم جدول به عنوان یک دسته از سطل های مختلف. 86 00:03:45,120 --> 00:03:49,880 و هر یک از این سطل است که برای نگه داشتن سر از یک لیست پیوندی. 87 00:03:49,880 --> 00:03:55,030 و در آن لیست پیوندی است که در آن ما می توانیم در واقع قرار دادن قطعات مختلف از داده ها. 88 00:03:55,030 --> 00:03:57,820 >> بنابراین غواصی کمی بیشتر به یک تابع هش، در اینجا 89 00:03:57,820 --> 00:03:59,870 به عنوان مثال من فقط توصیف که در آن ما فقط می گویند، 90 00:03:59,870 --> 00:04:02,460 OK، را به حرف اول کلمه و ما 91 00:04:02,460 --> 00:04:03,990 رفتن به آن را مرتب به سطل. 92 00:04:03,990 --> 00:04:08,490 بنابراین احتمالا، آنجا خواهد بود 26 سطل، یکی برای هر حرف از حروف الفبا. 93 00:04:08,490 --> 00:04:10,090 چرا یک تابع هش بزرگ است نیست؟ 94 00:04:10,090 --> 00:04:13,461 چه می کند این غیر ایده آل؟ 95 00:04:13,461 --> 00:04:13,960 آره. 96 00:04:13,960 --> 00:04:15,790 >> مخاطبان: شما در حال رفتن به برخورد. 97 00:04:15,790 --> 00:04:16,390 >> هانا بلومبرگ: بله، دقیقا. 98 00:04:16,390 --> 00:04:18,000 شما در حال رفتن به برخورد. 99 00:04:18,000 --> 00:04:18,954 به طوری که یک چیز است. 100 00:04:18,954 --> 00:04:21,620 و ما بحث در مورد چگونه ما می توانیم تعمیر برخورد در یک ثانیه. 101 00:04:21,620 --> 00:04:23,980 مشکل دیگر با این تابع هش خاص 102 00:04:23,980 --> 00:04:25,980 این است که متفاوت ما سطل در حال رفتن به 103 00:04:25,980 --> 00:04:28,960 اندازه بسیار به شدت متفاوت است. 104 00:04:28,960 --> 00:04:33,840 >> ما می دانیم که در خیلی چیزها وجود دارد کلمات بیشتری است که با یک X از شروع، 105 00:04:33,840 --> 00:04:38,980 بنابراین ما در حال رفتن به بسیار سطل نامتعادل در جدول هش ما است. 106 00:04:38,980 --> 00:04:40,050 خنک. 107 00:04:40,050 --> 00:04:41,340 پس بله، اجازه دهید به تماس نقطه برخورد. 108 00:04:41,340 --> 00:04:42,900 چه کنیم اگر یک برخورد وجود دارد؟ 109 00:04:42,900 --> 00:04:44,490 >> ما دو گزینه های مختلف. 110 00:04:44,490 --> 00:04:47,600 بنابراین یکی، بنابراین فرض ما در حال تلاش برای قرار دادن انواع توت ها به جدول هش ما است. 111 00:04:47,600 --> 00:04:50,370 و ما می بینیم، آه، ما می خواهیم به آن را در صفحه اول 1، 112 00:04:50,370 --> 00:04:52,070 اما در حال حاضر زندگی می کند موز وجود دارد. 113 00:04:52,070 --> 00:04:53,110 چه می خواهیم کاری انجام دهید؟ 114 00:04:53,110 --> 00:04:54,560 ما دو گزینه اصلی است. 115 00:04:54,560 --> 00:04:58,050 >> شماره یک است می توان گفت، OK، هیچ جایی در شاخص 1 وجود دارد، 116 00:04:58,050 --> 00:05:03,210 اما اجازه دهید فقط به دنبال حفظ طریق تا زمانی که ما می توانید یکی دیگر از نقطه باز پیدا کنید. 117 00:05:03,210 --> 00:05:08,490 بنابراین ما می گویند، OK، اجازه دهید آن را در نقطه 3 قرار داده است. 118 00:05:08,490 --> 00:05:09,240 که یک گزینه است. 119 00:05:09,240 --> 00:05:11,470 که به نام کاوش خطی. 120 00:05:11,470 --> 00:05:15,500 >> و یک گزینه دوم می گوید، خوب، خوب، اجازه دهید فقط هر یک از این سطل را 121 00:05:15,500 --> 00:05:17,470 سرها از لیست های پیوندی. 122 00:05:17,470 --> 00:05:21,910 و آن را OK اگر بیشتر وجود دارد از یک چیز در یک سطل. 123 00:05:21,910 --> 00:05:23,820 ما فقط در حال رفتن به اضافه آن را بر روی جلو. 124 00:05:23,820 --> 00:05:26,032 بنابراین در اینجا شما می توانید ببینید، OK، هنگامی که ما توت درج شده است، ما 125 00:05:26,032 --> 00:05:28,240 فقط در زمان موز، نوع آن را بیش از یک کمی تحت فشار قرار دادند 126 00:05:28,240 --> 00:05:29,842 و یک توت در وجود دارد انداخت. 127 00:05:29,842 --> 00:05:31,050 و این هم کاملا خوب است. 128 00:05:31,050 --> 00:05:32,830 این زنجیره جداگانه به نام. 129 00:05:32,830 --> 00:05:38,100 شما می توانید از این به عنوان نوع مانند فکر می کنم آرایه ای از سر به لیست های پیوندی. 130 00:05:38,100 --> 00:05:41,950 هر گونه سوال در هش جداول، توابع هش؟ 131 00:05:41,950 --> 00:05:44,290 عالی. 132 00:05:44,290 --> 00:05:45,470 >> درختان و تلاش می کند. 133 00:05:45,470 --> 00:05:47,287 بنابراین یک درخت هر نوع است ساختمان داده 134 00:05:47,287 --> 00:05:49,453 که در آن نوعی وجود دارد سلسله مراتب و یا نوعی 135 00:05:49,453 --> 00:05:51,247 رتبه بندی به اشیاء مختلف خود را. 136 00:05:51,247 --> 00:05:53,580 و این تبدیل خواهد شد فوق العاده روشن هنگامی که ما یک مثال را ببینید. 137 00:05:53,580 --> 00:05:56,960 و ما دیدیم که تلاش می کند، همراه با جداول هش، در pset5-- 138 00:05:56,960 --> 00:06:00,700 که، دوباره، بازی کاملا عادلانه برای این quiz-- به عنوان داده های دیگر 139 00:06:00,700 --> 00:06:03,110 ساختار که ما می توانیم ذخیره چیزهای مختلف. 140 00:06:03,110 --> 00:06:06,782 در مورد فرهنگ لغت، ما ذخیره شده یک دسته از کلمات. 141 00:06:06,782 --> 00:06:08,240 بنابراین اجازه دهید نگاهی به برخی از درختان. 142 00:06:08,240 --> 00:06:10,190 بنابراین این یک نمونه از یک درخت است. 143 00:06:10,190 --> 00:06:13,105 از آن است که نوع ساختار، که ساختار سلسله مراتبی، 144 00:06:13,105 --> 00:06:15,920 که در آن شما می توانید ببینید که این گره در بالای 1 145 00:06:15,920 --> 00:06:20,750 دارای نوعی از رتبه بالا 2 و 3، که در بالای 4، 5، و 6 و 7، 146 00:06:20,750 --> 00:06:22,860 که در بالا 8 و 9 می باشد. 147 00:06:22,860 --> 00:06:25,210 به طوری که همه ما با میانگین درخت، بنابراین شما می توانید فقط نوع 148 00:06:25,210 --> 00:06:26,660 از این تصویر در سر خود را. 149 00:06:26,660 --> 00:06:29,050 >> در حال حاضر، ما باید یک زن و شوهر از درختان تخصصی تر است. 150 00:06:29,050 --> 00:06:31,070 بنابراین یکی از نمونه های یک درخت دودویی است. 151 00:06:31,070 --> 00:06:33,290 و یک درخت دودویی است، دوباره، فقط برای رفتن به 152 00:06:33,290 --> 00:06:37,040 ساختمان داده با نوعی از سلسله مراتب، اما هر یک از گره 153 00:06:37,040 --> 00:06:38,650 می توانید در بسیاری از دو بچه دارند. 154 00:06:38,650 --> 00:06:41,530 این جایی است که باینری کلمه می آید از. 155 00:06:41,530 --> 00:06:43,410 بنابراین این یک نمونه از یک درخت دودویی است. 156 00:06:43,410 --> 00:06:45,720 به طوری که یک دسته کوچکتر از درختان است. 157 00:06:45,720 --> 00:06:48,960 >> حالا اجازه دهید که اختصاصی تر بحث در مورد دودویی جستجوی دودویی trees-- 158 00:06:48,960 --> 00:06:51,310 درختان، نه. 159 00:06:51,310 --> 00:06:56,430 بنابراین در اینجا این ایده است که نه تنها هر گره حداکثر دو فرزند دارند، 160 00:06:56,430 --> 00:07:00,300 اما همه بچه ها را به سمت چپ در حال رفتن به کوچکتر 161 00:07:00,300 --> 00:07:03,450 و همه از بچه ها را به حق در حال رفتن به بزرگتر. 162 00:07:03,450 --> 00:07:05,890 بنابراین اطلاع فقط در ما درخت دودویی، وجود دارد 163 00:07:05,890 --> 00:07:08,650 هیچ رابطه ای بین اعداد. 164 00:07:08,650 --> 00:07:12,990 اما در جستجوی دودویی ما درخت، ما می بینیم، خوب، در اینجا 44 است. 165 00:07:12,990 --> 00:07:17,080 و هر عدد را به سمت چپ، از مجموع 44 است همه چیز را کوچکتر و به سمت راست 166 00:07:17,080 --> 00:07:17,920 بزرگتر است. 167 00:07:17,920 --> 00:07:20,130 >> و که در هر نگه می دارد سطح از درخت. 168 00:07:20,130 --> 00:07:24,810 بنابراین در اینجا، این است کوچکتر از 22 و این بزرگتر از 22 است. 169 00:07:24,810 --> 00:07:26,390 و درخت جستجوی دودویی است. 170 00:07:26,390 --> 00:07:28,900 چرا فکر می کنم ما آن را به نام یک درخت جستجوی دودویی؟ 171 00:07:28,900 --> 00:07:30,651 چه الگوریتم آن شما را به یاد؟ 172 00:07:30,651 --> 00:07:31,650 مخاطبان: جستجوی دودویی. 173 00:07:31,650 --> 00:07:32,480 هانا بلومبرگ: جستجوی دودویی. 174 00:07:32,480 --> 00:07:35,150 چرا که اگر شما به دنبال یک شماره خاص در این درخت، 175 00:07:35,150 --> 00:07:38,800 در هر نقطه، شما فقط می توانید دست کشیدن نیمی خاموش از درخت، که فوق العاده است. 176 00:07:38,800 --> 00:07:43,800 و به طوری که به ما چیزی را که به نظر می رسد بسیاری مانند جستجوی دودویی. 177 00:07:43,800 --> 00:07:45,870 هر گونه سؤال؟ 178 00:07:45,870 --> 00:07:47,570 همه حق است، سرد است. 179 00:07:47,570 --> 00:07:48,560 >> همه حق است، تلاش می کند. 180 00:07:48,560 --> 00:07:49,657 مورد علاقه هر کس. 181 00:07:49,657 --> 00:07:51,990 بنابراین این مثال این است که ما دیده ایم یک دسته در کلاس. 182 00:07:51,990 --> 00:07:54,710 و دوباره، این فقط یکی دیگر راه که ما می توانیم اطلاعات ذخیره کنند. 183 00:07:54,710 --> 00:07:57,530 در مورد فرهنگ لغت، دوباره، این فقط برای رفتن به رشته ها. 184 00:07:57,530 --> 00:08:00,870 بنابراین اجازه دهید این در واقع دیدن به نظر می رسد در یک سطح کمی پایین تر. 185 00:08:00,870 --> 00:08:03,690 >> بنابراین اجازه دهید یک نگاهی از در یک گره در یک درخت. 186 00:08:03,690 --> 00:08:07,532 و ما می بینیم، OK، رفتن وجود دارد به یک بولی و یک گره، 187 00:08:07,532 --> 00:08:09,170 یک اشاره گر به گره. 188 00:08:09,170 --> 00:08:11,400 و ما می بینیم که بولی است is_word نامیده می شود. 189 00:08:11,400 --> 00:08:13,490 بنابراین اساسا، که رفتن به مطابقت 190 00:08:13,490 --> 00:08:16,750 به این مثلث کوچک که می گوید، اگر شما در اینجا بدست، 191 00:08:16,750 --> 00:08:19,100 شما یک کلمه کامل در بر داشت. 192 00:08:19,100 --> 00:08:23,670 >> ما می دانیم که "تورینگ" بیش از در اینجا یک کلمه کامل است، 193 00:08:23,670 --> 00:08:28,030 در حالی که فقط T-U-R است نه یک کلمه چرا که ما آن دلتا کمی را نمی بینم. 194 00:08:28,030 --> 00:08:31,440 و دلتا کمی، دوباره، مربوط به این is_word، 195 00:08:31,440 --> 00:08:34,480 این is_word بولی. 196 00:08:34,480 --> 00:08:36,320 و بعد ما یک آرایه از کودکان. 197 00:08:36,320 --> 00:08:39,860 بنابراین در هر سطح، شما یک گره خاص، 198 00:08:39,860 --> 00:08:42,470 و گره به مجموعه ای از تمام حروف الفبا. 199 00:08:42,470 --> 00:08:44,346 >> بنابراین شما می توانید دوباره ببینید،، در این picture-- من 200 00:08:44,346 --> 00:08:48,170 رفتن به نگه داشتن پریدن و forth-- که آرایه در بالای 201 00:08:48,170 --> 00:08:51,640 دارای یک دسته از مختلف گره آینده خاموش از آن است. 202 00:08:51,640 --> 00:08:57,140 از آن است که 26 یا 27 اگر شما می خواهید که شامل یک شخصیت فوق العاده است. 203 00:08:57,140 --> 00:09:01,320 و این ما می دهد راه برای ذخیره داده های ما 204 00:09:01,320 --> 00:09:04,450 در راه است که می توان در نگاه که شما می توانید نگاه کردن فوق العاده سریع. 205 00:09:04,450 --> 00:09:06,650 زمان مراجعه برای یک درخت پیشوندی چیست؟ 206 00:09:06,650 --> 00:09:07,970 >> مخاطبان: [نامفهوم]. 207 00:09:07,970 --> 00:09:08,300 >> هانا بلومبرگ: آره. 208 00:09:08,300 --> 00:09:09,550 در تئوری، آن زمان ثابت است. 209 00:09:09,550 --> 00:09:13,230 آن را تنها رفتن به اندازه کلمه ای که شما می خواهید به نگاه کردن. 210 00:09:13,230 --> 00:09:15,950 حتی اگر ما اضافه کردن عدد بیانتها و معتنی کلمات بیشتر به درخت ما، 211 00:09:15,950 --> 00:09:18,160 آن را نمی ما را دیگر برای تعیین 212 00:09:18,160 --> 00:09:19,690 اگر یک کلمه داده شده در این درخت است. 213 00:09:19,690 --> 00:09:21,412 به طوری که واقعا خوب است. 214 00:09:21,412 --> 00:09:23,697 >> مخاطبان: آیا شما فقط مقداردهی اولیه که آرایه؟ 215 00:09:23,697 --> 00:09:24,780 شما از دست رفته یک یا دو نقطه است. 216 00:09:24,780 --> 00:09:26,130 آیا می توانید فقط صحبت در مورد که برای یک ثانیه. 217 00:09:26,130 --> 00:09:26,680 >> هانا بلومبرگ: مطمئنا، کاملا. 218 00:09:26,680 --> 00:09:27,590 سوال خوبی بود. 219 00:09:27,590 --> 00:09:31,140 سوال این بود که، ما یک آرایه که 220 00:09:31,140 --> 00:09:34,180 رفتن به گره به عنوان ستاره نه فقط گره، درست است؟ 221 00:09:34,180 --> 00:09:35,180 خنک. 222 00:09:35,180 --> 00:09:37,990 بنابراین در اینجا چیزی است که ما در حال گفت آرایه است ما تنها 223 00:09:37,990 --> 00:09:40,035 رفتن به اشاره گر به آرایه دیگر. 224 00:09:40,035 --> 00:09:42,910 پس از آن به آن essentially-- نوع احساس می کند مانند یک لیست پیوندی در این راه 225 00:09:42,910 --> 00:09:46,620 که در آن هر یک از این کودکان فقط به گره بعدی اشاره می کنند. 226 00:09:46,620 --> 00:09:49,030 >> و راه است که ما در واقع تعیین، هی، OK، 227 00:09:49,030 --> 00:09:52,320 ما از طریق یک کل را تکرار کلمه، این کلمه در فرهنگ لغت است، 228 00:09:52,320 --> 00:09:54,476 ما فقط بررسی این is_word. 229 00:09:54,476 --> 00:09:55,100 درخواست بزرگ است. 230 00:09:55,100 --> 00:09:55,675 آره. 231 00:09:55,675 --> 00:09:56,216 رسید OK. 232 00:09:56,216 --> 00:09:57,470 پس چه زمان اجرا برای این درخت بود؟ 233 00:09:57,470 --> 00:09:58,386 >> هانا بلومبرگ: حتما. 234 00:09:58,386 --> 00:10:01,852 بنابراین زمان اجرا برای یک درخت پیشوندی برای گرین کارت آمریکا در حال رفتن به زمان ثابت است. 235 00:10:01,852 --> 00:10:04,310 پس از آن فقط برای رفتن به تعداد حروف در کلمه است. 236 00:10:04,310 --> 00:10:06,310 آن را وابسته به نیست اندازه فرهنگ لغت 237 00:10:06,310 --> 00:10:09,510 یا به اندازه ساختار داده ها. 238 00:10:09,510 --> 00:10:12,170 بنابراین در اینجا یک مثال کمی ساده تر است. 239 00:10:12,170 --> 00:10:15,430 >> در این مورد، شما می توانید ببینید که خفاش کلمه در فرهنگ لغت 240 00:10:15,430 --> 00:10:18,900 و شما باید زوم، اما شما چیزی شبیه باغ وحش ندارد. 241 00:10:18,900 --> 00:10:20,050 چگونه ما را باغ وحش؟ 242 00:10:20,050 --> 00:10:24,276 چگونه ما باغ وحش به اضافه کردن ما فرهنگ لغت، به درخت به ما؟ 243 00:10:24,276 --> 00:10:24,776 آره. 244 00:10:24,776 --> 00:10:27,014 >> رسید را is_word درست است برای [نامفهوم]. 245 00:10:27,014 --> 00:10:27,930 هانا بلومبرگ: خوب. 246 00:10:27,930 --> 00:10:31,731 بنابراین ما می خواهم بگویم Z-O-O، و سپس ما می خواهم می خواهید برای بررسی کردن آن جعبه است. 247 00:10:31,731 --> 00:10:32,230 عالی. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 اجازه بدهید به اختصار مقایسه سعی می کند در مقابل جداول هش. 250 00:10:37,930 --> 00:10:39,770 تلاش می کند واقعا بزرگ هستند چون، به ما گفت، 251 00:10:39,770 --> 00:10:41,610 آنها را فراهم زمان ثابت مراجعه. 252 00:10:41,610 --> 00:10:44,285 اما نقطه ضعف بزرگ این است که آنها بسیار بزرگه است. 253 00:10:44,285 --> 00:10:46,160 شما می توانید حس کنید، حتی با نگاه کردن به آن، 254 00:10:46,160 --> 00:10:48,454 که آن را به مقدار زیادی از حافظه است. 255 00:10:48,454 --> 00:10:50,620 به طوری که آنها در حال رفتن به بسیار باشد بزرگتر از جداول هش، 256 00:10:50,620 --> 00:10:52,270 اما آنها در حال رفتن به ما بار مراجعه بسیار سریعتر. 257 00:10:52,270 --> 00:10:54,478 بنابراین این نوع از خود را معاوضه، آنچه شما در مورد مراقبت از خود، 258 00:10:54,478 --> 00:10:57,350 آن است که آیا سرعت و یا حافظه است. 259 00:10:57,350 --> 00:11:02,251 هر گونه سوال در هر یک از آن، همه از ساختمان داده C. 260 00:11:02,251 --> 00:11:02,750 خوشگل. 261 00:11:02,750 --> 00:11:03,250 باشه. 262 00:11:03,250 --> 00:11:07,322 ما قصد داریم به حرکت بر روی یک کمی از توسعه وب با ماریا. 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA: دوست داشتنی. 264 00:11:08,280 --> 00:11:09,036 باشه. 265 00:11:09,036 --> 00:11:10,380 >> هانا بلومبرگ: شما می توانید لپ تاپ من استفاده کنید. 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: خوب. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 باشه خوبه. 269 00:11:14,912 --> 00:11:17,120 همانطور که ما حرکت در حال حاضر به وب توسعه، ما صحبت کردیم کمی 270 00:11:17,120 --> 00:11:20,680 در مورد مجوز تغییر فایل ها و دایرکتوری 271 00:11:20,680 --> 00:11:24,190 به طوری که آنها می تواند در دسترس را به کاربران دیگر، به جهان، 272 00:11:24,190 --> 00:11:28,640 و به طوری که ما می توانید ببینید که چگونه اساسا ما می توانید آنها را انتقال 273 00:11:28,640 --> 00:11:32,600 هنگامی که ما توسعه وب سایت چیزهایی مانند که ما بیشتر انجام شده است. 274 00:11:32,600 --> 00:11:36,400 >> بنابراین ما شاهد دستور chmod، که است که تغییر حالت، اساسا. 275 00:11:36,400 --> 00:11:39,300 که یک فرمان لینوکس و آن را تغییر مجوزهای دسترسی 276 00:11:39,300 --> 00:11:40,410 از اشیاء سیستم فایل. 277 00:11:40,410 --> 00:11:43,370 و یک شی فایل سیستم است فقط یک دایرکتوری، یک فایل، 278 00:11:43,370 --> 00:11:46,810 هر چیزی را که شما می توانید مجوزهای تغییر دهید. 279 00:11:46,810 --> 00:11:53,750 >> بنابراین برای دیدن مجوز های دسترسی فایل، ما نوع از دستور ls، لیست، -l. 280 00:11:53,750 --> 00:11:56,500 و هنگامی که ما نوع آن، ما معمولا برخی از مجوز را ببینید 281 00:11:56,500 --> 00:11:59,660 که نگاه نوعی مانند این در مقابل یک نام پوشه. 282 00:11:59,660 --> 00:12:01,260 بنابراین D اشاره به دایرکتوری. 283 00:12:01,260 --> 00:12:05,930 و پس از آن ما سه Triad ها ملاقات میکند که اساسا 284 00:12:05,930 --> 00:12:11,675 به مجوز از هم مراجعه یک کاربر، یک گروه، یا جهان است. 285 00:12:11,675 --> 00:12:16,490 >> انواع مجوز که ما می توانیم برای این سه گروه از مردم 286 00:12:16,490 --> 00:12:20,830 یا R برای خواندن، w برای ارسال و x برای اجرا کند. 287 00:12:20,830 --> 00:12:23,650 و ما می توانیم آن را برای دارند گروه و جهان است. 288 00:12:23,650 --> 00:12:26,940 چیزی که مشکل این است که گاهی هنگامی که ما دستور chmod تایپ کنید، 289 00:12:26,940 --> 00:12:32,960 ما برخی از تعداد نوع که شامل سه بیت. 290 00:12:32,960 --> 00:12:36,990 بنابراین ما می تواند مانند انجام 777 و که اساسا 291 00:12:36,990 --> 00:12:40,450 با اشاره به ارزش افزوده هر یک از این عنصرها 292 00:12:40,450 --> 00:12:45,060 چون R به 4 مراجعه کنید، W را به 2 مراجعه کنید، و x به 1 مراجعه کنید، 293 00:12:45,060 --> 00:12:50,020 بنابراین، هنگامی که اضافه کردن، هر یک از اعداد به تعداد تجمعی پایین آمدن 294 00:12:50,020 --> 00:12:52,750 به ارزش تجمعی بین 0 و 7. 295 00:12:52,750 --> 00:12:55,150 بنابراین ما نیز می تواند 0 دارند برای هیچ مجوز در همه. 296 00:12:55,150 --> 00:12:58,200 و اساسا به ما بدهد مجوز برای هر دو کاربر، 297 00:12:58,200 --> 00:13:00,450 این گروه، و یا جهان. 298 00:13:00,450 --> 00:13:02,620 هر گونه سوال در این تا کنون؟ 299 00:13:02,620 --> 00:13:05,331 >> رسید شما را خوانده است گفت 4 بود؟ 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA: بله. 301 00:13:06,164 --> 00:13:07,568 مخاطبان: [نامفهوم]. 302 00:13:07,568 --> 00:13:08,504 هانا بلومبرگ: آره. 303 00:13:08,504 --> 00:13:11,790 رسید و پس از آن با اضافه کردن همه کسانی که دیگران شماره خود را نشان می دهد. 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA: آره. 305 00:13:12,665 --> 00:13:14,970 آره. 306 00:13:14,970 --> 00:13:17,810 این پرسش بزرگ هستند. 307 00:13:17,810 --> 00:13:20,490 دوست داشتني. 308 00:13:20,490 --> 00:13:25,340 بعد، ما به HTML و شروع به پریدن کرد کمی بیشتر در مورد توسعه وب است. 309 00:13:25,340 --> 00:13:27,990 بنابراین HTML فقط بدان معناست زبان نشانه گذاری ابرمتن. 310 00:13:27,990 --> 00:13:30,460 و نشانه گذاری زبان این است که یک استاندارد 311 00:13:30,460 --> 00:13:32,720 که آن را مورد استفاده برای ایجاد صفحات وب است. 312 00:13:32,720 --> 00:13:35,750 >> آن را یک زبان نشانه گذاری نامیده می شود دلیل آن در واقع کامپایل نشده است. 313 00:13:35,750 --> 00:13:40,310 آن را نمی گوید که چگونه برخی از کد باید اجرا شود و یا چیزی شبیه به آن. 314 00:13:40,310 --> 00:13:44,800 این فقط و ترسیم توضیح می دهد چگونه یک وب 315 00:13:44,800 --> 00:13:46,840 صفحه باید راه اندازی با هر یک از عناصر آن 316 00:13:46,840 --> 00:13:48,460 و چگونه باید به کاربران است. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> برخی از تگ های HTML است که ما رفت زیر هستند. 319 00:13:57,110 --> 00:14:00,500 همه اسناد HTML ما آغاز شده با HTML DOCTYPE است. 320 00:14:00,500 --> 00:14:02,550 پس از آن ما همیشه باید از تگ HTML. 321 00:14:02,550 --> 00:14:03,930 ما یک سر و یک بدن است. 322 00:14:03,930 --> 00:14:07,890 و این مهم است که HTML است این نوع از ساختار تو در تو 323 00:14:07,890 --> 00:14:09,280 چرا که آن را بسیار روشن است. 324 00:14:09,280 --> 00:14:13,200 و سپس آن را بسیار روشن هنگامی که ما نیاز به باز کردن و در واقع برچسب ها نزدیک است. 325 00:14:13,200 --> 00:14:18,400 و ما همیشه نیاز به بستن برچسب ها که ما را باز کرد. 326 00:14:18,400 --> 00:14:23,170 >> و در اینجا ما برخی از انواع از همه چیز پیش رو که ما می خواهیم به. 327 00:14:23,170 --> 00:14:26,580 بنابراین ما باید، برای مثال، عنوان CS50. 328 00:14:26,580 --> 00:14:31,980 و سپس ما در واقع می توانید یک شیوه پیوند 329 00:14:31,980 --> 00:14:34,030 که تعریف می کند که چگونه ما سبک وب سایت ما. 330 00:14:34,030 --> 00:14:35,650 که CSS است. 331 00:14:35,650 --> 00:14:39,320 ما قصد داریم به بیش از آن در زن و شوهر بعد از اسلاید و همچنین. 332 00:14:39,320 --> 00:14:42,580 >> در داخل بدن، ما مجموعه برخی از کلاس های و شناسه. 333 00:14:42,580 --> 00:14:45,860 و به عنوان یک یادآوری، دوباره، شناسه منحصر به فرد و کلاس ها 334 00:14:45,860 --> 00:14:47,390 را می توان به چند مورد اختصاص داده است. 335 00:14:47,390 --> 00:14:52,110 و این فقط بدان معنی است که ما می توانیم کلاس ها و شناسه استفاده 336 00:14:52,110 --> 00:14:55,860 در structures-- دیگر بنابراین، برای به عنوان مثال، در فایل های CSS یا سبک 337 00:14:55,860 --> 00:15:00,940 sheets-- برای اشاره به عناصر خاص و اساسا می گویند که ما می خواهیم به سبک 338 00:15:00,940 --> 00:15:03,280 و یا طراحی برخی از عنصر در برخی از راه خاص است. 339 00:15:03,280 --> 00:15:06,440 و ما به آنها اشاره شده توسط شناسه و کلاس خود. 340 00:15:06,440 --> 00:15:09,870 و ما نیز می توانید به مراجعه چیزهای مختلف با برچسب ها و همچنین، 341 00:15:09,870 --> 00:15:13,830 اما شناسه و کلاس فقط به ما برخی از دادن تطبیق پذیری و آنچه به طور خاص ما 342 00:15:13,830 --> 00:15:15,850 خواهید برای اشاره به. 343 00:15:15,850 --> 00:15:19,620 >> پس فقط یک مثال است. 344 00:15:19,620 --> 00:15:22,730 ما می توانیم، دوباره، در یک فایل CSS که در آن ما 345 00:15:22,730 --> 00:15:25,770 می خواهیم به تعریف برخی style-- بنابراین رنگ، فونت، 346 00:15:25,770 --> 00:15:30,340 و چیزهای that-- ما می توانیم تعریف سبک برای بدن است. 347 00:15:30,340 --> 00:15:32,640 به طوری که آن را تعریف برای تمام تگ body. 348 00:15:32,640 --> 00:15:36,160 اما پس از آن ما همچنین می توانید تعریف سبک برای #title. 349 00:15:36,160 --> 00:15:40,390 و دوباره، برچسب اشاره به ما ID و نقطه اشاره به کلاس ما. 350 00:15:40,390 --> 00:15:44,760 >> و سپس برای اطلاعات، ما همچنین می توانید برخی از ویژگی های تعیین شده است. 351 00:15:44,760 --> 00:15:49,750 و دوباره، زمانی که ما به عقب برویم، ما به حال ما کلاس به نام اطلاعات و عنوان ID ما است. 352 00:15:49,750 --> 00:15:53,422 و ما می توانید ببینید که ما مراجعه به آنها توسط #title و اطلاعات. 353 00:15:53,422 --> 00:15:55,380 مخاطبان: آیا می توان گفت برچسب [؟ من اتخاذ؟ ؟] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: با عرض پوزش. 355 00:15:55,725 --> 00:15:58,120 مخاطبان: آیا می توان گفت برچسب [؟ من اتخاذ؟ ؟] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: هشتگ معنی ID، بنابراین #title 357 00:16:01,400 --> 00:16:07,890 اشاره به هر عناصر این ID به نام عنوان. 358 00:16:07,890 --> 00:16:10,735 و پس از آن نقطه اشاره به یک کلاس. 359 00:16:10,735 --> 00:16:14,590 بنابراین گفتمان به این عنصر اشاره به دلیل آن است اطلاعات طبقاتی. 360 00:16:14,590 --> 00:16:15,090 آره. 361 00:16:15,090 --> 00:16:17,905 >> مخاطبان: چرا شما تشخیص آنها را در HTML؟ 362 00:16:17,905 --> 00:16:20,985 چرا شما چیزهای خاصی هستند شناسه و چیزهای خاصی هستند کلاس؟ 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA: که فقط تا you-- 364 00:16:22,610 --> 00:16:24,151 هانا بلومبرگ: تکرار سوال. 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA: اوه، ببخشید. 366 00:16:25,370 --> 00:16:29,480 چرا برخی از ما تشخیص عناصر به عنوان شناسه و عناصر دیگر به عنوان کلاس؟ 367 00:16:29,480 --> 00:16:34,760 که فقط به خاطر آن واقعا اغلب یک انتخاب طراحی. 368 00:16:34,760 --> 00:16:38,520 آن را به شما می دهد بسیاری از تطبیق پذیری در بودن 369 00:16:38,520 --> 00:16:43,250 قادر به گفتن من می خواهم این مورد خاص به این ID زیرا آنها می خواهند 370 00:16:43,250 --> 00:16:45,300 برای انجام بسیاری از چیزهایی با آن، و من فقط 371 00:16:45,300 --> 00:16:50,010 می خواهم به تعریف یک سبک، سبک خاص یا هر رنگی که در مورد. 372 00:16:50,010 --> 00:16:52,630 و راه برای انجام این فقط به آن ID. 373 00:16:52,630 --> 00:16:55,060 >> و سپس اگر من می خواهم به یک زن و شوهر از آیتم های مختلف 374 00:16:55,060 --> 00:16:58,940 داشتن که، به جای رفتن و راه their-- 375 00:16:58,940 --> 00:17:03,840 به جای انجام آن توسط برچسب زیرا برچسب را 376 00:17:03,840 --> 00:17:07,369 مجموعه ای از سلول برای تمام تگ برای هر زمانی که تگ استفاده می شود، 377 00:17:07,369 --> 00:17:09,740 شما می توانید یک کلاس به آیتم های متعدد تنظیم شده است. 378 00:17:09,740 --> 00:17:15,109 و پس از آن فقط دسترسی به کلاس و می گویند من می خواهم به سبک این کلاس که راه. 379 00:17:15,109 --> 00:17:17,579 >> و دوباره، کلاس می تواند شود چند آیتم های مختلف 380 00:17:17,579 --> 00:17:21,150 و ID باید منحصر به فرد. 381 00:17:21,150 --> 00:17:21,849 سوال بزرگ است. 382 00:17:21,849 --> 00:17:25,339 هر سوال دیگری؟ 383 00:17:25,339 --> 00:17:26,220 OK، بسیار جذاب است. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 باز هم، این است که چگونه این انتخابگرهای در CSS اشاره شده است، با برچسب، 386 00:17:35,330 --> 00:17:40,031 با نقطه، و یا بدون هیچ چیز را برای اختصاص به سبک برخی از تگ، 387 00:17:40,031 --> 00:17:40,530 مانند بدن. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 و در اینجا ما به طور کلی نحو چگونه این کار انجام شود. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> به تکرار برخی از بهترین شیوه برای HTML و CSS، 392 00:17:55,680 --> 00:17:59,170 ما نیاز به، دوباره، بستن همه تگ های HTML که باز می کنیم. 393 00:17:59,170 --> 00:18:03,950 و آنچه ما شما توصیه می شود برای پروژه نهایی خود را انجام دهید، 394 00:18:03,950 --> 00:18:10,560 و همچنین برای CS50 مالی، این است که مطمئن شوید که تمام HTML خود را تایید. 395 00:18:10,560 --> 00:18:12,920 و این با W3 اعتبار سنج انجام می شود. 396 00:18:12,920 --> 00:18:16,940 >> و پس از آن کاری که ما کردیم و توصیه می کنیم انجام 397 00:18:16,940 --> 00:18:19,790 جدا سبک، CSS از نشانه گذاری های HTML. 398 00:18:19,790 --> 00:18:24,210 بنابراین هر چیزی که مربوط به چگونه صفحه خود را در حال رفتن به بصری نگاه 399 00:18:24,210 --> 00:18:27,330 و چگونه آن را اصلاح شود باید به یک سند CSS است. 400 00:18:27,330 --> 00:18:33,880 و سپس نشانه گذاری خود گفت که چگونه همه چیز در ارتباط با یکدیگر هستند HTML غیر فعال است، 401 00:18:33,880 --> 00:18:37,550 و که در داخل باید به از اسناد HTML خود را. 402 00:18:37,550 --> 00:18:38,590 هر گونه سؤال؟ 403 00:18:38,590 --> 00:18:39,226 MHM. 404 00:18:39,226 --> 00:18:42,628 >> مخاطبان: دقیقا همان چیزی است در با اعتبار صفحه 405 00:18:42,628 --> 00:18:47,945 زمانی که ما اعتبار HTML که [نامفهوم] ایجاد شده است؟ 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA: پس what-- شما فکر می کنم. 407 00:18:49,850 --> 00:18:53,020 پس چه چیز است که در صفحه با اعتبار 408 00:18:53,020 --> 00:18:55,570 و چرا ما نیاز به انجام این کار؟ 409 00:18:55,570 --> 00:18:59,180 در واقع، ما نیاز به انجام این چرا که بسیاری از بار، مرورگر خود را، 410 00:18:59,180 --> 00:19:01,390 اگر شما یک تگ بسته نمی و یا چیزی شبیه به آن، 411 00:19:01,390 --> 00:19:05,680 مرورگر خود را هنوز هم به رفتن ارائه یک صفحه و ممکن است هنوز هم کار می کنند، 412 00:19:05,680 --> 00:19:10,840 اما آن را بهترین عمل مطمئن شوید که شما، دوباره، بسته تمام برچسب ها خود را، 413 00:19:10,840 --> 00:19:13,190 که همه عناصر خود را راه که آنها باید باشد، 414 00:19:13,190 --> 00:19:18,470 و اساسا آن توسط کنوانسیون که از پیش تعیین شده است. 415 00:19:18,470 --> 00:19:21,970 >> آن، دوباره، فقط یک چیزی که شما باید 416 00:19:21,970 --> 00:19:24,040 یادگیری انجام می شود، به عنوان مخالف به داشتن 417 00:19:24,040 --> 00:19:25,696 کد sloppier و چیزهای مانند آن. 418 00:19:25,696 --> 00:19:26,688 آره. 419 00:19:26,688 --> 00:19:27,680 آه ببخشید. 420 00:19:27,680 --> 00:19:29,221 من فکر کردم شما دست خود را بالا بردن. 421 00:19:29,221 --> 00:19:31,240 مخاطبان: نه، من فقط [نامفهوم]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> رسید با تشکر از شما. 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA: البته، از شما سپاسگزارم. 425 00:19:36,181 --> 00:19:41,680 پس دوباره، در رفتن به چگونه انتقال اطلاعات است 426 00:19:41,680 --> 00:19:44,630 و مدل های ارتباطی برای انتقال اطلاعات. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP فقط به معنی انتقال پروتکل کنترل و IP 429 00:19:48,600 --> 00:19:51,260 اشاره به پروتکل اینترنت. 430 00:19:51,260 --> 00:19:54,275 و این فقط به اشاره راه داده تحویل داده شده است. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> اگر ما به برخی داده ها است که نیاز به تحویل به you-- تا 433 00:20:02,710 --> 00:20:06,770 شما یک درخواست برای یک سرور خاص. 434 00:20:06,770 --> 00:20:09,800 به عنوان مثال، زمانی که ما سعی کنید برای دسترسی cs50.net، 435 00:20:09,800 --> 00:20:12,420 ما به یک درخواست به سرور CS50 و ما 436 00:20:12,420 --> 00:20:14,720 دید که ما می خواهیم به این نوع از اطلاعات است. 437 00:20:14,720 --> 00:20:19,294 و پس از آن در این پروتکل بر اساس برای چگونه این اطلاعات را تحویل داده است، 438 00:20:19,294 --> 00:20:21,460 سرور اطلاعات می دهد پشت به ما، مشتری. 439 00:20:21,460 --> 00:20:25,590 و سپس ما قادر به مشاهده هستید اطلاعات برای صفحه 440 00:20:25,590 --> 00:20:26,390 و سپس از آن استفاده کنید. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> بنابراین پس از آن پروتکل انتقال ابرمتن فقط یکی دیگر از پروتکل و یا مجموعه ای است 443 00:20:33,050 --> 00:20:37,470 از کنوانسیون است که مشخص می مرورگر وب و وب سرور 444 00:20:37,470 --> 00:20:38,890 باید ارتباط برقرار کند. 445 00:20:38,890 --> 00:20:43,730 و قرار دادن این همه با هم، HTTP، دوباره، 446 00:20:43,730 --> 00:20:50,960 فقط تعریف این تعریف ابرمتن توسط HTML که ما آن را به کار شده است، 447 00:20:50,960 --> 00:20:59,500 چگونه باید آن را به شما تحویل داده و چگونه است که داده است که به شما تحویل داده 448 00:20:59,500 --> 00:21:00,540 می شود به شما. 449 00:21:00,540 --> 00:21:05,990 >> و به همین دلیل، اگر شما بچه به یاد داشته باشید از یک کلاس، ما بسیاری از درخواست حال 450 00:21:05,990 --> 00:21:08,970 و ما بسیاری از نحو حال برای این درخواست است که ما 451 00:21:08,970 --> 00:21:10,250 رفتن به بیش از حال حاضر است. 452 00:21:10,250 --> 00:21:13,270 بنابراین دوباره، زمانی که ما ارسال یک درخواست به سرور، 453 00:21:13,270 --> 00:21:15,920 ما باید به تعریف یک زن و شوهر از چیزهایی است. 454 00:21:15,920 --> 00:21:18,520 بنابراین ما نیاز به پیدا کردن نوع درخواست که ما در حال تنظیم. 455 00:21:18,520 --> 00:21:22,180 و دوباره، ما، به عنوان مثال، یکی از نوع روش است 456 00:21:22,180 --> 00:21:25,290 که ما در درخواست ما داشته باشد. 457 00:21:25,290 --> 00:21:31,710 >> و سپس HTTP / 1.1 است فقط پروتکل که ما با استفاده حال حاضر. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 بیشتر از زمان، که رفتن به پروتکل که ما با استفاده از. 460 00:21:36,890 --> 00:21:40,290 بنابراین اگر شما یک سوال که در مسابقه خود را. 461 00:21:40,290 --> 00:21:43,120 که کنوانسیون را که ما تا کنون. 462 00:21:43,120 --> 00:21:46,580 >> بک اسلش اشاره به چه نوع از چیزهایی که ما درخواست. 463 00:21:46,580 --> 00:21:52,810 پس از آن، میزبان ما است، به عنوان مثال، در این مورد، ما در حال تلاش برای رفتن به google.com است. 464 00:21:52,810 --> 00:21:57,070 بنابراین این مقدار برای یک میزبان است. 465 00:21:57,070 --> 00:21:59,330 این یک نوع درخواست است که می تواند ارسال شود. 466 00:21:59,330 --> 00:22:02,890 >> و سپس یک نوع واکنش است که می تواند ارسال می شود، دوباره، بر اساس این پروتکل، 467 00:22:02,890 --> 00:22:05,190 دوباره، HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 به طوری که دوباره نسخه HTTP است. 469 00:22:07,150 --> 00:22:09,730 200 OK فقط کد وضعیت است. 470 00:22:09,730 --> 00:22:12,860 و OK فقط یک عبارت است بر اساس آن کد وضعیت. 471 00:22:12,860 --> 00:22:15,520 >> و پس از آن نوع محتوا اشاره به نوع 472 00:22:15,520 --> 00:22:20,295 است که به شما بازگردانده است برای آن صفحه وب که شما دریافت 473 00:22:20,295 --> 00:22:22,570 و که مرورگر خود را پس از آن می تواند رندر. 474 00:22:22,570 --> 00:22:24,401 و متن / HTML است. 475 00:22:24,401 --> 00:22:26,660 >> مخاطبان: چه 1.1 چیست؟ 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA: که فقط نسخه of-- آه، چه 1.1 چیست؟ 477 00:22:29,910 --> 00:22:37,075 این تنها نسخه، HTTP است نسخه یک پروتکل است که ما با استفاده از. 478 00:22:37,075 --> 00:22:37,700 درخواست بزرگ است. 479 00:22:37,700 --> 00:22:38,366 سوال دیگر؟ 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> رسید می توانید خلاصه نوع مطلب سریع واقعی است؟ 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA: به طوری که چه سرور است. 483 00:22:48,150 --> 00:22:51,020 نوع information-- چه چیزی است نوع محتوا سوال بود. 484 00:22:51,020 --> 00:22:53,400 به طوری که نوع بود اطلاعاتی که شما به عقب بر گردیم 485 00:22:53,400 --> 00:22:58,200 از سرور، نوع داده هایی را که پس از آن می توانید مرورگر 486 00:22:58,200 --> 00:23:00,604 ارائه که شما با استفاده از. 487 00:23:00,604 --> 00:23:03,020 رسید این است که آنچه این پروتکل است به شما بگویند کاری انجام دهید؟ 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA: با عرض پوزش. 489 00:23:03,390 --> 00:23:05,380 مخاطبان: این چیزی است که پروتکل می گویند؟ 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA ها: protocol-- 491 00:23:05,915 --> 00:23:07,940 مخاطبان: --What نوع محتوا یا what-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA: پروتکل بر اساس شماها چه پروتکل گفتن شما است؟ 493 00:23:12,040 --> 00:23:16,070 که تنها راه است که این اطلاعات 494 00:23:16,070 --> 00:23:18,610 بر اساس به شما تحویل داده شد اینکه از چه نوع پروتکل 495 00:23:18,610 --> 00:23:21,830 این اطلاعات رو شد برگشت به شما تحویل داده. 496 00:23:21,830 --> 00:23:23,500 آیا این را مرتب سازی بر حس؟ 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 هانا بلومبرگ: شما می توانید از پروتکل فکر می کنم 499 00:23:30,070 --> 00:23:33,300 به عنوان a-- من فکر می کنم استاد مالان آن را توصیف 500 00:23:33,300 --> 00:23:36,910 در کلاس به عنوان نوع مانند a-- آن را مانند معادل دست دادن انسان است. 501 00:23:36,910 --> 00:23:44,930 می گویند، مانند، هی، من یک درخواست و من می دانم که چگونه مسئولیت رسیدگی به HTTP از نسخه 1.1. 502 00:23:44,930 --> 00:23:48,770 و پس از آن سرور می گوید، آه، OK، I-- و هر دو وجود داشته باشد. 503 00:23:48,770 --> 00:23:51,337 من هم می دانم چگونه به مقابله با HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 و من قصد دارم به شما را به برخی از مطالب. 505 00:23:53,170 --> 00:23:56,230 در این مورد، آن را از نوع متن / html باشد. 506 00:23:56,230 --> 00:23:58,480 بنابراین این نوع از فقط یک راه از آنها برای communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: این فقط تایید که شما 508 00:24:00,480 --> 00:24:03,290 هر دو یکسان زیر پروتکل و هر دو 509 00:24:03,290 --> 00:24:06,620 مشتری و server-- تا مرورگر شما و server-- 510 00:24:06,620 --> 00:24:09,280 مرتب کردن بر اساس دانید آنچه شما صحبت کردن در مورد و 511 00:24:09,280 --> 00:24:12,557 کنوانسیون عبور در داده ها. 512 00:24:12,557 --> 00:24:17,022 >> مخاطبان: بنابراین نوع محتوا part-- متن نوع مطلب / html-- که 513 00:24:17,022 --> 00:24:18,521 یک بخش جداگانه از همین پیام؟ 514 00:24:18,521 --> 00:24:20,509 و یا بخشی از اجازه دهید بگویم، 200 است؟ 515 00:24:20,509 --> 00:24:22,010 آیا 200 به آنها بگویید که یا is-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA: 200 می گوید که تمام OK رفت. 517 00:24:23,770 --> 00:24:27,900 و پس از آن نوع محتوا مرتب کردن بر اساس است بخش جداگانه ای از همین پیام، 518 00:24:27,900 --> 00:24:34,274 و گفت که این چیزی که من بازگشته است این نوع از متن / HTML. 519 00:24:34,274 --> 00:24:35,690 آن را فقط به اطلاعات بیشتر. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 چیزی برای اضافه کنید؟ 522 00:24:39,995 --> 00:24:40,495 باشه. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> هر گونه سوال دیگر در این؟ 525 00:24:46,530 --> 00:24:48,370 عالی. 526 00:24:48,370 --> 00:24:54,070 بنابراین برخی از وضعیت های HTTP دیگر که ما می تواند علاوه بر 200 OK دریافت کنید، 527 00:24:54,070 --> 00:24:59,500 آنهایی که ما شاید دیده ام احتمالا بسیاری در فاصله 403 و 404. 528 00:24:59,500 --> 00:25:05,190 بنابراین 404، اگر شما در تلاش برای شد دسترسی به چیزی که وجود ندارد. 529 00:25:05,190 --> 00:25:10,460 بنابراین برای مثال، در خود psets CS50 امور مالی، 530 00:25:10,460 --> 00:25:15,640 اگر شما ارائه شده است quote.html و شما آن فایل را نداشته باشند، 531 00:25:15,640 --> 00:25:19,740 اما در عوض شما به حال quote.php، که در یک نتیجه یافت نشد 404 532 00:25:19,740 --> 00:25:21,600 به این دلیل که فایل ممکن وجود ندارد. 533 00:25:21,600 --> 00:25:25,690 >> برای 403 ممنوع است، که اشاره به مجوز. 534 00:25:25,690 --> 00:25:31,150 بنابراین اگر برخی از فایل توسط قابل خواندن نیست جهان، شما ممکن است یک 403 بازگشت. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 برخی دیگر ممکن است که شما get-- 301، انتقال دائم؛ 537 00:25:37,810 --> 00:25:41,300 302، یافت. 304، اصلاح. 400، درخواست بد؛ 538 00:25:41,300 --> 00:25:47,330 و پس از آن خطا در سرور داخلی برای 500 و 503، سرویس در دسترس نیست. 539 00:25:47,330 --> 00:25:48,140 بله. 540 00:25:48,140 --> 00:25:51,490 >> مخاطبان: آیا ما به انتظار حفظ تمام کسانی که وضعیت؟ 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA: من می خواهم که آنها را در بازی ورق خود را. 542 00:25:53,739 --> 00:25:55,146 [خنده حضار] 543 00:25:55,146 --> 00:25:59,954 مخاطبان: آیا ما به انتظار مطمئن شوید که چه باعث هر یک؟ 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA: آیا آنها؟ 545 00:26:00,995 --> 00:26:03,870 هانا بلومبرگ: برای آنهایی که ما را اجرا into-- بنابراین سوال این was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA: آیا آنها انتظار می رود به مطمئن شوید که چه هر یک از این وضعیت 547 00:26:08,010 --> 00:26:09,330 کد ممکن است توسط باعث؟ 548 00:26:09,330 --> 00:26:13,240 بنابراین برای آنهایی که ما استفاده کرده ایم و فرار را به من می گویند، بله. 549 00:26:13,240 --> 00:26:16,610 بنابراین ما قطعا دیده ام 200 OK و آن را در psets سخنرانی. 550 00:26:16,610 --> 00:26:19,071 ما را دیده ام 403، 404. 551 00:26:19,071 --> 00:26:20,550 برای آنهایی که دیگر؟ 552 00:26:20,550 --> 00:26:22,690 >> هانا بلومبرگ: من می گویند به نظر می رسد 500 بازی منصفانه است. 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500، آره. 554 00:26:23,330 --> 00:26:24,246 >> هانا بلومبرگ: آره. 555 00:26:24,246 --> 00:26:27,006 فقط یک مفهوم کلی دارند از آنچه به آنها باعث می شود. 556 00:26:27,006 --> 00:26:28,880 و همچنین فقط با این نام، شما می توانید نوع 557 00:26:28,880 --> 00:26:32,890 مانند را حدس عنوان به آنچه که آنها ایجاد می شود. 558 00:26:32,890 --> 00:26:36,919 به عنوان مثال، حرکت به طور دائم، احتمالا فایل به طور دائم منتقل شد. 559 00:26:36,919 --> 00:26:39,328 >> رسید اما در قبلی آزمون بود، به طوری که وجود دارد 560 00:26:39,328 --> 00:26:41,050 چگونه ما از شما انتظار برای پاسخ به این؟ 561 00:26:41,050 --> 00:26:42,883 >> هانا بلومبرگ: که ارزش صفر امتیاز بود. 562 00:26:42,883 --> 00:26:45,870 سوال در 418 در قوری از لحاظ فنی یک وضعیت HTTP است، 563 00:26:45,870 --> 00:26:47,090 اما ارزش صفر امتیاز بود. 564 00:26:47,090 --> 00:26:48,320 بدیهی است، شما نیست انتظار می رود که آنها را می دانیم. 565 00:26:48,320 --> 00:26:49,670 >> مخاطبان: آیا یک واقعی؟ 566 00:26:49,670 --> 00:26:51,970 >> هانا بلومبرگ: این یک واقعی است یکی است، اما آن چیزی نیست. 567 00:26:51,970 --> 00:26:52,700 این فقط یک شوخی است. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 افرادی که در اینترنت خنده دار هستند. 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA: سوال بزرگ، بچه ها. 571 00:26:59,680 --> 00:27:01,452 هر سوال دیگری؟ 572 00:27:01,452 --> 00:27:04,891 >> مخاطبان: خطای داخلی سرور چیست؟ 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA: داخلی خطای سرور فقط 574 00:27:06,640 --> 00:27:10,050 بدان معنی است که به شما شده است قادر به برقراری ارتباط 575 00:27:10,050 --> 00:27:13,400 با سرور برای برخی از دلیل. 576 00:27:13,400 --> 00:27:15,400 پس از آن لزوما چیزی است که به انجام 577 00:27:15,400 --> 00:27:19,170 با مشتری و یا چیزی شبیه به آن. 578 00:27:19,170 --> 00:27:22,170 من از هر مثال خاص نمی دانم که ما بیش از رفته به توضیح، 579 00:27:22,170 --> 00:27:23,000 اما آره. 580 00:27:23,000 --> 00:27:23,250 >> هانا بلومبرگ: حتما. 581 00:27:23,250 --> 00:27:25,625 بنابراین برای مثال، مانند اجازه دهید می گویند شما در ترکیب مشغول به کار بودند 582 00:27:25,625 --> 00:27:30,440 و سرور گوگل پایین برای برخی از رفت دلیل، قطع برق، اجازه دهید بگویم. 583 00:27:30,440 --> 00:27:33,400 این امر می تواند یک سرور داخلی خطا و یا نوعی of-- دوست دارید 584 00:27:33,400 --> 00:27:34,630 یک پاسخ می کنید تماس. 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA: آره. 586 00:27:35,260 --> 00:27:37,050 آن را فقط زمانی که شما قادر به برقراری ارتباط 587 00:27:37,050 --> 00:27:40,299 با سرور برای برخی از دلیل دلیل از آن پایین و یا رفتن به دلایل دیگر. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 بنابراین پریدن به PHP. 590 00:27:47,690 --> 00:27:49,930 پی اچ پی، بر خلاف HTML، یک زبان برنامه نویسی. 591 00:27:49,930 --> 00:27:54,820 و ما شروع به استفاده از آن به دلیل آن بسیار مفید برای توسعه وب است. 592 00:27:54,820 --> 00:27:56,940 >> ما برای اولین بار آن را در CS50 مالی استفاده می شود. 593 00:27:56,940 --> 00:28:02,240 و آن را اساسا کمک می کند تا ما را با هم این نشانه گذاری، طراحی، 594 00:28:02,240 --> 00:28:07,460 و چگونه ما در واقع با استفاده از اطلاعات برای نمایش چیز در یک صفحه وب. 595 00:28:07,460 --> 00:28:11,870 بنابراین PHP خودی خود به معنی PHP پیش پردازنده مافوق متن، 596 00:28:11,870 --> 00:28:15,360 پس از آن یک backnorym بازگشتی به خودی خود است. 597 00:28:15,360 --> 00:28:22,330 و باز کردن برچسب ها برای PHP ما در سمت چپ و راست فلش با علامت سوال 598 00:28:22,330 --> 00:28:23,060 و پی اچ پی. 599 00:28:23,060 --> 00:28:25,890 >> بنابراین ما در حال حاضر دیده یک دسته از آن. 600 00:28:25,890 --> 00:28:29,150 در حال حاضر، ما فقط رفتن به بیش از برخی از کارهای اساسی در مورد آن. 601 00:28:29,150 --> 00:28:32,280 بنابراین با پی اچ پی، متغیر نام ها را با علامت دلار شروع می شود. 602 00:28:32,280 --> 00:28:35,660 ما مشخص نیست، دوباره، یک متغیر از نوع دیگر. 603 00:28:35,660 --> 00:28:38,450 درست مثل ما با C انجام داد، ما لازم نیست برای انجام این کار. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> ما می توانیم یک دسته از مختلف انجام مسائل با متغیرهای. 606 00:28:44,490 --> 00:28:47,750 ما می توانیم آنها را با هم توسط الحاق آنها 607 00:28:47,750 --> 00:28:52,900 با نماد نقطه، که ما نمی تواند در C انجام دوباره. 608 00:28:52,900 --> 00:28:57,490 باز هم، ما یک کمی بیشتر تطبیق پذیری با پی اچ پی در شرایط متغیر. 609 00:28:57,490 --> 00:29:00,080 باز هم، ما یک تابع اصلی ندارد. 610 00:29:00,080 --> 00:29:03,370 >> و PHP تفسیر است به عنوان وارد مخالف، 611 00:29:03,370 --> 00:29:09,970 پس فقط ما چگونه برای فایل های C را انجام داد، ما لازم نیست برای انجام این کار برای پی اچ پی. 612 00:29:09,970 --> 00:29:15,440 اما نه، این راه است که به زبان را توسط خود اجرا کنید، آن تعبیر شده است. 613 00:29:15,440 --> 00:29:18,550 و پس از آن قاعده فقط به این معنی است که ما 614 00:29:18,550 --> 00:29:22,490 لازم نیست که برای مشخص کردن یک متغیر نوع و انواع متغیر 615 00:29:22,490 --> 00:29:25,415 در زمان اجرا قابل درک باشد. 616 00:29:25,415 --> 00:29:29,185 >> رسید اما آنچه شما انجام منظور الحاق نقطه؟ 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA: حتما. 618 00:29:30,060 --> 00:29:37,660 هنگامی که ما می خواهیم به قرار دادن همه چیز together-- بنابراین اگر ما برخی از متغیر بود که 619 00:29:37,660 --> 00:29:41,500 حال ارزش 3 و ما به حال یکی دیگر متغیر بود که ارزش رشته، 620 00:29:41,500 --> 00:29:45,920 ما می تواند متغیر را با هم با قرار دادن یک نقطه در بین آنها 621 00:29:45,920 --> 00:29:46,970 و آنها را الحاق. 622 00:29:46,970 --> 00:29:52,670 و یا ما می تواند یک ایجاد متغیر به نام نام 623 00:29:52,670 --> 00:29:56,900 و آن را با هم توسط الحاق دو رشته. 624 00:29:56,900 --> 00:30:00,680 >> بنابراین اگر ما یک رشته در دو حال نقل قول و ما یک نقطه را پس از آن، 625 00:30:00,680 --> 00:30:03,660 و پس از آن ما تا به حال یکی دیگر از رشته، که یک رشته در دسترس نباشد ایجاد کنید. 626 00:30:03,660 --> 00:30:05,242 >> رسید OK. 627 00:30:05,242 --> 00:30:06,450 MARIA لتونی: این بود که روشن است؟ 628 00:30:06,450 --> 00:30:07,099 مخاطبان: آره. 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA: OK. 630 00:30:07,890 --> 00:30:08,766 بله. 631 00:30:08,766 --> 00:30:11,146 >> مخاطبان: هنگامی که به شما می گویند تفسیر به جای وارد شده، 632 00:30:11,146 --> 00:30:14,160 شما در مورد شما صحبت نمی باید به عنوان خاص در زمانی که 633 00:30:14,160 --> 00:30:15,906 که می آید به پی اچ پی در مقابل C؟ 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA: وقتی می گوییم تفسیر به عنوان مخالف به وارد شده، 636 00:30:20,710 --> 00:30:21,850 چه چیزی ما؟ 637 00:30:21,850 --> 00:30:26,220 به طوری که بدان معنی است که ما لازم نیست فایل های اجرایی به اجرای پی اچ پی. 638 00:30:26,220 --> 00:30:29,870 این بدان معنی است که آن را اجرا به عنوان آن می رود. 639 00:30:29,870 --> 00:30:31,650 فرقی میکنه؟ 640 00:30:31,650 --> 00:30:32,495 کمی بیشتر. 641 00:30:32,495 --> 00:30:34,620 هانا بلومبرگ: بنابراین شما می توانید از یک مترجم فکر می کنم 642 00:30:34,620 --> 00:30:38,980 به عنوان یک برنامه دیگر است که مسئول برای رفتن خط به خط از طریق پی اچ پی 643 00:30:38,980 --> 00:30:42,745 و در واقع آن را اجرا، به عنوان مخالف به کامپایل کردن آن همه را به باینری است. 644 00:30:42,745 --> 00:30:46,050 این کار در واقع چیزی نیست در مورد چگونگی خاص ما نیاز به. 645 00:30:46,050 --> 00:30:49,470 ما هنوز هم باید دقیق، و نمی کنند فراموش نقطه و ویرگول خود را، و مطمئن شوید 646 00:30:49,470 --> 00:30:51,470 شما علامت دلار خود را، و مانند آن. 647 00:30:51,470 --> 00:30:52,240 سوال خوبی بود. 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA: آره. 649 00:30:53,115 --> 00:30:55,590 بنابراین خط به خط، به عنوان مخالف با فایل های C، 650 00:30:55,590 --> 00:30:59,100 ما را به طیف نهایی قبل از اینکه ما در واقع می تواند آن را اجرا کنید. 651 00:30:59,100 --> 00:31:00,360 که تفاوت اصلی است. 652 00:31:00,360 --> 00:31:02,655 اما باز هم، ما می توانیم واقعا کمتر خاص باشد. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 بنابراین آرایه ها در PHP نمایندگی حقیقت یک نقشه ترتیبی. 655 00:31:13,950 --> 00:31:17,550 >> بنابراین ارزش آرایه وابسته به کلید. 656 00:31:17,550 --> 00:31:23,350 دو راه برای اعلام یک آرایه، بر اساس این نحو، 657 00:31:23,350 --> 00:31:26,380 ما می تواند صریح تر در گفت ما یک آرایه 658 00:31:26,380 --> 00:31:31,010 و ما باید این نقشه ها به key1 که این value1 عدد، key2 که VALUE2 نقشه. 659 00:31:31,010 --> 00:31:34,660 یا ما فقط می توانید ایجاد یک آرایه که حاوی مقادیر خود را 660 00:31:34,660 --> 00:31:38,360 و سپس کلید می باشد درک در راه است. 661 00:31:38,360 --> 00:31:40,000 هر گونه سوال در مورد این؟ 662 00:31:40,000 --> 00:31:42,500 >> رسید چه که از کلید های در مثال دوم می شود؟ 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0، 1، 2، 3؟ 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA ZLATKOVA: به عنوان مثال، آن را فقط کلید ها در این لزوما 667 00:31:55,780 --> 00:31:56,550 یک تفاوت ایجاد کن. 668 00:31:56,550 --> 00:32:01,720 آنها فقط تعریف چگونه شما می توانید استفاده از مقادیر داخل آن است. 669 00:32:01,720 --> 00:32:08,660 بنابراین اگر ما حلقه foreach حال حلقه در پی اچ پی که می 670 00:32:08,660 --> 00:32:14,760 ما اجازه می دهد تا از طریق تمام ارزش بروید، ما می توانیم از طریق تمام ارزش بروید، 671 00:32:14,760 --> 00:32:19,570 حتی اگر ما به حال و یا تعریف نشده بود یک کلید خاص در سایت ها در 672 00:32:19,570 --> 00:32:20,820 نحو قبلی. 673 00:32:20,820 --> 00:32:23,460 >> بنابراین حتی با این نوع از آرایه، ما هنوز هم می تواند 674 00:32:23,460 --> 00:32:26,260 یک حلقه foreach که می رود از طریق هر یک 675 00:32:26,260 --> 00:32:31,240 از مقادیر موجود در کلید در آرایه. 676 00:32:31,240 --> 00:32:36,180 بنابراین نحو حلقه foreach حلقه، ما با مجموعه ای شروع می شود. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 این متغیر $ ARR آرایه واقعی ما است که ما در اسلاید قبلی تعریف 679 00:32:43,900 --> 00:32:47,550 به عنوان ارزش که به معنای واقعی کلمه می رود از طریق هر یک از ارزش ها، 680 00:32:47,550 --> 00:32:50,122 صرف نظر از اینکه ما یک کلید بود یا نه. 681 00:32:50,122 --> 00:32:53,080 و پس از آن ما می توانیم چیزی را با انجام ارزش داخل حلقه foreach. 682 00:32:53,080 --> 00:32:57,730 پس دوباره، اگر ما یک آرایه حال مثل این در اینجا created-- 683 00:32:57,730 --> 00:33:03,270 بنابراین ما باید کلید foo و ارزش نوار، کلید باز و ارزش qux-- 684 00:33:03,270 --> 00:33:09,730 ما می توانیم یک حلقه foreach که می رود از طریق آرایه به عنوان مقدار کلید 685 00:33:09,730 --> 00:33:11,900 و پس از آن انجام کاری با کلید و / یا مقدار است. 686 00:33:11,900 --> 00:33:15,980 اما ما لزوما همیشه باید به یک حلقه foreach حلقه که 687 00:33:15,980 --> 00:33:19,410 می رود از طریق آرایه به عنوان نقشه کلید به ارزش. 688 00:33:19,410 --> 00:33:26,060 ما می توانید از طریق رفتن آرایه حلقه foreach به عنوان ارزش. 689 00:33:26,060 --> 00:33:28,990 >> هانا بلومبرگ: من فکر می کنم سوال خود را، چه بود to-- 690 00:33:28,990 --> 00:33:31,229 شاخص ضمنی است؟ 691 00:33:31,229 --> 00:33:31,895 مخاطبان: نیمه. 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: اوه. 693 00:33:32,240 --> 00:33:33,406 هانا بلومبرگ: آره، آره. 694 00:33:33,406 --> 00:33:36,150 بنابراین در واقع، اگر شما مشخص نیست یک کلید، آن را به 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA: آره. 696 00:33:37,140 --> 00:33:41,718 درست مانند C، آن را صفر نمایه اگر شما یک کلید مشخص نمی کند. 697 00:33:41,718 --> 00:33:42,384 مخاطبان: با عرض پوزش. 698 00:33:42,384 --> 00:33:43,827 می تواند شما سعی می کنید صحبت کمی بلندتر؟ 699 00:33:43,827 --> 00:33:45,270 من با داشتن یک کمی از مشکل همه چیز شنیدن. 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA: خیلی متاسفم. 701 00:33:46,478 --> 00:33:48,439 آره، البته. 702 00:33:48,439 --> 00:33:50,230 به طوری که شما به من می خواهید به بیش از این دوباره؟ 703 00:33:50,230 --> 00:33:51,680 و یا this-- است 704 00:33:51,680 --> 00:33:54,930 مخاطبان: بنابراین در slide-- قبلی در صورت شما فقط می تواند به عقب برگردد برای یک ثانیه. 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA: البته، با عرض پوزش. 706 00:33:57,313 --> 00:33:59,237 مخاطبان: بنابراین دوم آرایه در اینجا نیست 707 00:33:59,237 --> 00:34:04,135 به نظر می رسد که یک مقدار به کلید، مرتب کردن بر اساس [؟ علیت. ؟] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA: راست، سمت راست. 709 00:34:05,343 --> 00:34:07,608 رسید پس چگونه است که کار می کند وقتی به شما می گویند آن را به همه یا هیچ کدام. 710 00:34:07,608 --> 00:34:08,969 به من، که به نظر می رسد یک [؟ تولی؟] در حال حاضر. 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA: آره، آره. 712 00:34:10,093 --> 00:34:12,969 پس دوباره، این است که نقشه دستور داد به این معنا 713 00:34:12,969 --> 00:34:15,639 که وجود دارد را درک می شوند، به عنوان مثال، شاخص 714 00:34:15,639 --> 00:34:20,159 در اینجا می توان به عنوان 0، 1، 2، 3 قابل درک باشد. 715 00:34:20,159 --> 00:34:25,929 دوباره، که داشتن آن شاخص معادل است 716 00:34:25,929 --> 00:34:28,980 داشتن کلید های نقشه برداری بر روی ارزش ها. 717 00:34:28,980 --> 00:34:34,710 بنابراین اگر کلیدی ما 0-- با عرض پوزش بود. 718 00:34:34,710 --> 00:34:36,524 >> هانا بلومبرگ: نه، در اینجا گچ وجود دارد. 719 00:34:36,524 --> 00:34:36,929 این در واقع واقعا خوب است. 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: بسیار عالی است. 721 00:34:37,460 --> 00:34:38,260 باشه. 722 00:34:38,260 --> 00:34:49,489 پس دوباره، $ ARR 0 می شود کلید برای ارزش 1. 723 00:34:49,489 --> 00:34:51,138 0 خواهد بود کلیدی برای ارزش 1. 724 00:34:51,138 --> 00:34:51,971 مخاطبان: من متاسفم. 725 00:34:51,971 --> 00:34:53,190 آن را نامرئی. 726 00:34:53,190 --> 00:34:53,659 >> هانا بلومبرگ: همه حق، بی خیال. 727 00:34:53,659 --> 00:34:54,980 گچ یک ایده بد بود. 728 00:34:54,980 --> 00:34:58,030 من آن را به عقب. 729 00:34:58,030 --> 00:35:01,425 شما می توانید از کلید فکر می کنم به عنوان نقشه 0 به مقدار 1. 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA: آره. 731 00:35:02,300 --> 00:35:04,630 بنابراین این 0 است، این 1، 2، 3 است. 732 00:35:04,630 --> 00:35:05,760 این می تواند کلید خود را. 733 00:35:05,760 --> 00:35:10,020 شما می توانید از آنها as-- فکر می کنم آره. 734 00:35:10,020 --> 00:35:12,740 بنابراین به جای داشتن کلید صریح و روشن، آنها 735 00:35:12,740 --> 00:35:17,180 مرتب کردن بر اساس عنوان درک شاخص از 0 شروع می. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 گچ کمک نمی کند. 738 00:35:24,820 --> 00:35:25,722 آره. 739 00:35:25,722 --> 00:35:30,914 >> رسید برای حلقه foreach، اگر ما می خواستیم برای مشاهده به عنوان ارزش، 740 00:35:30,914 --> 00:35:33,245 آن را فقط به طور خودکار به شاخص 0. 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: آره. 742 00:35:34,120 --> 00:35:35,745 آن را از طریق هر یک از مقادیر است. 743 00:35:35,745 --> 00:35:39,130 مخاطبان: [نامفهوم] عنوان 0 و یا می که فقط 0. 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA: شما باید به عنوان علامت دلار و بعد می گویند 745 00:35:43,710 --> 00:35:46,266 برخی از نام متغیر، مقدار. 746 00:35:46,266 --> 00:35:47,182 مخاطبان: [نامفهوم]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA: با عرض پوزش. 749 00:35:50,964 --> 00:35:52,839 مخاطبان: با عرض پوزش، من تنها در تلاش برای به یاد داشته باشید. 750 00:35:52,839 --> 00:35:57,190 چگونه کار می کنید که اگر شما می توانید آن را انجام دهید به طور خودکار نمایه سازی است که فقط از 0؟ 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVA: پس چگونه کار می کنید که اگر شما نام کلید خاص را نداشته باشند؟ 752 00:36:00,780 --> 00:36:01,710 >> مخاطبان: آره. 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA: شما فقط define-- فقط خودتان می گویید به عنوان برخی از نام. 754 00:36:07,820 --> 00:36:17,950 بنابراین در psets خود را، شما بچه ها ممکن است به یاد داشته باشید حلقه foreach $ $ ردیف به عنوان ردیف، 755 00:36:17,950 --> 00:36:24,610 ما خودمان این $ ردیف گفت ایجاد ما می خواهیم به طریق ردیف عنوان $ ردیف. 756 00:36:24,610 --> 00:36:28,360 حتی اگر ما ندارد این $ صریح و روشن ردیف تعریف شده است، 757 00:36:28,360 --> 00:36:31,990 ما فقط می تواند برود و می گویند این می تواند کلیدی ما، 758 00:36:31,990 --> 00:36:33,615 و فقط از طریق هر یک از مقادیر است. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> مخاطبان: بنابراین ارزش یک متغیر جدید است ما در حال ایجاد برای ذخیره [نامفهوم]؟ 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: پس از آن نه ذاتا یک متغیر جدید. 763 00:36:49,990 --> 00:37:00,310 این یک متغیر که به اشاره است داخل آرایه را به هر یک از آنها. 764 00:37:00,310 --> 00:37:02,060 هانا بلومبرگ: این یک نام جدید متغیر است. 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: آره، آن را یک نام متغیر جدید، 766 00:37:04,018 --> 00:37:06,680 اما آن را نمی inherently-- آره. 767 00:37:06,680 --> 00:37:08,950 این فقط یک متغیر جدید که شما می توانید انجام دهید. 768 00:37:08,950 --> 00:37:12,680 پس فقط ما چگونه بود $ $ به عنوان ردیف، ردیف ردیف 769 00:37:12,680 --> 00:37:17,980 نام یک متغیر جدید این بود که ما می تواند در حلقه foreach ما ایجاد کنید. 770 00:37:17,980 --> 00:37:22,065 آن را ندارد به قبل از آن preexist. 771 00:37:22,065 --> 00:37:25,777 >> رسید می توانید از طریق رفتن منطق برای هر یک، با استفاده از مثال وجود دارد؟ 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: MHM. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 آه ببخشید. 775 00:37:32,080 --> 00:37:33,780 در اینجا مثال است. 776 00:37:33,780 --> 00:37:34,280 به روی چشم. 777 00:37:34,280 --> 00:37:38,950 بنابراین برای هر آرایه تا این بدان معناست که به این آرایه 778 00:37:38,950 --> 00:37:43,930 به عنوان کلید value-- که رفتن از طریق این آرایه 779 00:37:43,930 --> 00:37:49,480 و برای اولین بار بروید و تولی است، صنایع غذایی کلیدی و نوار ارزش. 780 00:37:49,480 --> 00:37:51,570 و سپس در دوم تکرار از حلقه، 781 00:37:51,570 --> 00:37:55,090 آن را از طریق رفتن و باز کلیدی و qux ارزش. 782 00:37:55,090 --> 00:38:00,512 و پس از آن شما می توانید چیزی را با انجام هر کدام از آنها یا هر دو آنها. 783 00:38:00,512 --> 00:38:03,488 >> مخاطبان: بنابراین ایده پشت داشتن یک نکته کلیدی برای ارزش، 784 00:38:03,488 --> 00:38:07,470 چه چیزی شما را تا پایان دسترسی؟ 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA: این ایده است داشتن یک اشاره کلید ارزش است؟ 786 00:38:10,680 --> 00:38:16,400 این کنوانسیون فقط دیگر، یکی دیگر از راه رفتن را از طریق آرایه 787 00:38:16,400 --> 00:38:22,600 و قادر بودن برای دسترسی به هر یک از کلید یا مقدار و یا هر دو و استفاده از آنها. 788 00:38:22,600 --> 00:38:27,100 >> رسید چه نقش برای این سفارش که حلقه foreach اجرا می شود در؟ 789 00:38:27,100 --> 00:38:29,250 بنابراین اگر ما برای اضافه کردن عناصر به آرایه بعد، 790 00:38:29,250 --> 00:38:32,140 کسانی بود که اولین آنهایی که به نام در آرایه foreach را، 791 00:38:32,140 --> 00:38:33,750 و یا می شود آن را بعد از؟ 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA: پس چه شده است ترتیب که حلقه foreach 793 00:38:37,770 --> 00:38:39,210 حلقه می رود از طریق یک آرایه در؟ 794 00:38:39,210 --> 00:38:42,220 آن را از طریق اولین بار می رود عنصر به آخرین عنصر، 795 00:38:42,220 --> 00:38:43,400 به آخرین عنصر اضافه شده است. 796 00:38:43,400 --> 00:38:48,020 اگر شما اضافه کردن عناصر بعد از آن، آنها را شود accessed-- عناصر برای اولین بار می 797 00:38:48,020 --> 00:38:51,410 به عنوان اولین دیده عناصر آرایه، 798 00:38:51,410 --> 00:38:57,620 و پس از آن شما می خواهم از طریق هر یک به عناصر به عنوان نوعی از ordered-- 799 00:38:57,620 --> 00:39:02,930 منظم نیست، اما راهی که آنها را به آرایه قرار داده شده است. 800 00:39:02,930 --> 00:39:06,855 >> مخاطبان: عناصر جدید بعدها اضافه شده است؟ 801 00:39:06,855 --> 00:39:10,680 بنابراین آنها added-- آنها خواهید بود آنهایی که در گذشته [؟ تکرار. ؟] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA: عناصر جدید can-- اساسا، هنگامی که عناصر جدید اضافه می شوند، 803 00:39:14,280 --> 00:39:16,520 آنها به انتهای آرایه اضافه شده است؟ 804 00:39:16,520 --> 00:39:17,632 >> مخاطبان: آره. 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: به اعتقاد من است. 806 00:39:18,840 --> 00:39:20,850 بله. 807 00:39:20,850 --> 00:39:24,330 و سپس با حلقه foreach خود را، پس عناصر جدید شما اضافه شده است 808 00:39:24,330 --> 00:39:26,790 و شما از طریق آنها، عناصر جدید 809 00:39:26,790 --> 00:39:30,930 accessed-- این عنصر جدید را داشته باشد، اگر آن را اضافه گذشته، این امر می تواند آخرین قابل دسترسی است. 810 00:39:30,930 --> 00:39:34,416 >> مخاطبان: آیا می توانید فقط یک مثال بزنم از چیزی که [نامفهوم] 811 00:39:34,416 --> 00:39:37,404 با چیزی با ارزش مانند [نامفهوم] و یا ارزش، 812 00:39:37,404 --> 00:39:38,910 دوست دارم که چگونه شما می خواهم فرمت است که؟ 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA: حتما. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 آیا من می توانم یک نمونه از آنچه ما را با ارزش را انجام دهید؟ 816 00:39:46,410 --> 00:39:52,440 بنابراین آنچه که شما بچه ها ممکن است با آن آشنا این است که ما از طریق مجموعه ای رفته 817 00:39:52,440 --> 00:39:55,380 و اساسا چاپ هر یک از عناصر، 818 00:39:55,380 --> 00:40:00,910 برای مثال، به عنوان بخشی از لیست و یا چیزی است که دستور داد. 819 00:40:00,910 --> 00:40:02,674 آیا این را حس یا می خواهیم to-- 820 00:40:02,674 --> 00:40:04,340 مخاطبان: آیا ما می توانیم این ارزش ها را چاپ کنید؟ 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: آره، ما می تواند چاپ و سپس اساسا ارزش $ چرا که در 822 00:40:13,220 --> 00:40:16,570 که مقدار خاص، ما را چاپ ارزش داخل آن است. 823 00:40:16,570 --> 00:40:20,150 بنابراین اگر ما در اولین تکرار ما بودند از آن و ما چاپ $ ارزش، 824 00:40:20,150 --> 00:40:23,775 ما را چاپ نوار. 825 00:40:23,775 --> 00:40:27,020 >> رسید نیز برای وجود دارد حلقه ها در PHP و یا فقط حلقه حلقه foreach؟ 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: وجود دارد همچنین برای حلقه ها در PHP. 827 00:40:30,430 --> 00:40:33,399 و منطق خود است عمدتا همان چیزی است که شما شده است استفاده می شود. 828 00:40:33,399 --> 00:40:34,690 مخاطبان: بنابراین ارزش خود را تهی است. 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA: مثل همان است. 830 00:40:35,090 --> 00:40:35,590 آره. 831 00:40:35,590 --> 00:40:37,747 مخاطبان: من فقط رفتن به بپرسید. 832 00:40:37,747 --> 00:40:39,695 بنابراین، هنگامی که شما یک اعلام آرایه، شما لازم نیست 833 00:40:39,695 --> 00:40:42,617 به چه اندازه آن را به باشد، که بدان معنی است که شما فقط می توانید 834 00:40:42,617 --> 00:40:44,417 اضافه کردن و به دور عناصر [نامفهوم]. 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA: آره. 836 00:40:45,250 --> 00:40:45,750 آره. 837 00:40:45,750 --> 00:40:46,251 دقیقا. 838 00:40:46,251 --> 00:40:48,875 هنگامی که ما اعلام یک آرایه، ما لازم نیست به چه اندازه است، 839 00:40:48,875 --> 00:40:51,022 بنابراین ما فقط می توانید اضافه کردن عناصر بر روی آن بعد است. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 سوالات بیشتر؟ 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 بنابراین آوردن PHP و HTML با هم، چه ما به خوبی دیده می شود، 844 00:41:05,950 --> 00:41:15,130 برای مثال، در این مثال، ما یک فرم HTML است که دارای یک فیلد ورودی. 845 00:41:15,130 --> 00:41:18,830 >> و میدان ورودی نام تنها است و سپس آن را دارای یک دکمه ارسال. 846 00:41:18,830 --> 00:41:26,040 و هنگامی که شما فشار ارسال را فشار دهید، در فایل hello.php ما، 847 00:41:26,040 --> 00:41:32,130 از آنجا که روش برای فرم است ، ما می توانید دسترسی به آنچه در نام 848 00:41:32,130 --> 00:41:40,360 توسط این متغیر جهانی که is-- نحو برای آن $ _GET است. 849 00:41:40,360 --> 00:41:44,520 و پس از آن ما می توانیم هر دسترسی ورودی کاربر در داخل آن شکل برای نام 850 00:41:44,520 --> 00:41:47,410 با مشخص کردن نام از این میدان. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> هر گونه سوال و یا هر سوال در مورد این مثال خاص؟ 853 00:41:55,060 --> 00:41:58,275 >> مخاطبان: پی اچ پی کجاست؟ 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA: در اینجا. 855 00:41:59,150 --> 00:42:01,150 بنابراین این تگ باز ما را برای PHP است. 856 00:42:01,150 --> 00:42:01,530 >> مخاطبان: اوه، درست است. 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: بله. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> هانا بلومبرگ: این = مختصر است برای این پی اچ پی و اکو است. 860 00:42:09,609 --> 00:42:10,150 مخاطبان: اوه. 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: آره، ببخشید. 862 00:42:10,720 --> 00:42:12,040 من باید که روشن ساخته شده است. 863 00:42:12,040 --> 00:42:13,759 >> هانا بلومبرگ: چاپ. 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA: این فقط تابع که به ما اجازه چاپ چیزی. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 درخواست بزرگ است. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 بنابراین going-- بله. 869 00:42:25,495 --> 00:42:31,940 >> مخاطبان: وجود دارد رفتن به کاملا شود یک بیت از برنامه نویسی دست PHP و HTML 870 00:42:31,940 --> 00:42:33,450 در مسابقه 1؟ 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA: می تواند یک وجود دارد مقدار عادلانه از تفسیر 873 00:42:38,810 --> 00:42:43,330 از PHP و HTML، نه لزوما مانند مقدار زیادی از برنامه نویسی، 874 00:42:43,330 --> 00:42:46,960 هر چند شما ممکن است به ارسال حلقه foreach، هر چند، یک حلقه for. 875 00:42:46,960 --> 00:42:49,790 هر یک از حلقه که ما پوشش اینجا بازی منصفانه است. 876 00:42:49,790 --> 00:42:51,889 و آن را بیشتر. 877 00:42:51,889 --> 00:42:53,430 هانا بلومبرگ: من آماده می شود. 878 00:42:53,430 --> 00:42:57,010 در راه همان است که ما شما را به خواسته ارسال یک دسته از توابع C در امتحان 0، 879 00:42:57,010 --> 00:42:59,766 من خواهد بود آماده به کار یکسانی در PHP و جاوا اسکریپت. 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: آره. 881 00:43:00,640 --> 00:43:03,210 هانا بلومبرگ: به نظر من little-- مانند ما نیست 882 00:43:03,210 --> 00:43:06,251 رفتن به شما ارسال نامه HTML بزرگ صفحه فقط به خاطر اینکه که کمی است 883 00:43:06,251 --> 00:43:08,240 خسته کننده، اما شما ممکن است قطعات را داشته باشد. 884 00:43:08,240 --> 00:43:09,310 که بازی کاملا منصفانه است. 885 00:43:09,310 --> 00:43:11,082 مانند صفحه HTML کوچک، کاملا منصفانه است. 886 00:43:11,082 --> 00:43:11,623 رسید OK. 887 00:43:11,623 --> 00:43:13,814 چگونه در مورد در جاوا اسکریپت و همچنین؟ 888 00:43:13,814 --> 00:43:14,730 هانا بلومبرگ: آره. 889 00:43:14,730 --> 00:43:15,250 بازی منصفانه جاوا اسکریپت است. 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: آره. 891 00:43:15,635 --> 00:43:16,801 این بازی کاملا عادلانه است. 892 00:43:16,801 --> 00:43:19,280 هانا بلومبرگ: ما را دریافت کنید که در دقیقه 10 مانند. 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL، دوباره، زبان پرس و جو ساخت یافته. 894 00:43:23,750 --> 00:43:28,651 این اساسا ما اجازه می دهد برای مدیریت داده ها در مدیریت پایگاه داده رابطه 895 00:43:28,651 --> 00:43:29,150 سیستم. 896 00:43:29,150 --> 00:43:31,149 که فقط اساسا به معنی که ما جایی 897 00:43:31,149 --> 00:43:37,980 برای ذخیره برخی از داده ها که ما ممکن است بخواهید استفاده در وب سایت و یا در بعضی از فرم های دیگر است. 898 00:43:37,980 --> 00:43:42,190 و بعد ما نمایش داده شد به اطلاعات از پایگاه داده، 899 00:43:42,190 --> 00:43:44,320 یا برای وارد کردن اطلاعات در آنها است. 900 00:43:44,320 --> 00:43:47,560 بسیاری از آنهایی که مشترک UPDATE، INSERT، انتخاب، و حذف کنید. 901 00:43:47,560 --> 00:43:50,790 >> بنابراین برای به روز رسانی، این نحو است برای به روز رسانی داده ها در پایگاه داده است. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 به روز رسانی این جدول به نام جدول با گفتن SET، 904 00:43:57,340 --> 00:44:04,170 ما می توانیم برخی ارزش ها در تمام مجموعه ردیف به چیزی برابر دیگری. 905 00:44:04,170 --> 00:44:09,410 بنابراین ما نیز می توانید برخی از خاص را مشخص کنید نوشته های است که ما می خواهیم برای تغییر 906 00:44:09,410 --> 00:44:11,240 و است که می تواند با استفاده از WHERE. 907 00:44:11,240 --> 00:44:16,380 و ما می توانید مشخص کنید که ما فقط می خواهید تغییر برخی از ردیف که در آن خانه برای، 908 00:44:16,380 --> 00:44:19,830 اگر ما یک جدول از دانش آموزان و همه دانش آموزان خانه داشت، 909 00:44:19,830 --> 00:44:24,890 بنابراین ما فقط تغییر برخی از ارزش که در آن خانه برابر Currier را، 910 00:44:24,890 --> 00:44:25,430 برای مثال. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> برای INSERT، ما می توانید وارد برخی از ارزش ها به یک جدول. 913 00:44:31,800 --> 00:44:35,150 بنابراین به جدول قرار دادن، و پس از آن ارزش ها، 914 00:44:35,150 --> 00:44:39,080 و سپس در پرانتز، ما را مشخص که ارزش شما به قرار دادن. 915 00:44:39,080 --> 00:44:43,220 بنابراین به جدول، col1 INSERT و col2، ارزش val1 و val2 است. 916 00:44:43,220 --> 00:44:48,930 بنابراین این اساسا درج یک ردیف جدید به یک جدول حاوی ارزش های 1 و 2 917 00:44:48,930 --> 00:44:50,850 تحت ستون 1 و 2. 918 00:44:50,850 --> 00:44:54,760 >> و پس از آن ما قصد داریم تا بیش از یک مثال سریع از این به نظر می رسد 919 00:44:54,760 --> 00:44:56,310 مانند در بانک اطلاعاتی ما یک کمی. 920 00:44:56,310 --> 00:44:58,685 اما این پرسش نهایی که من فکر می کنم ما در حال رفتن به رفتن بیش از، 921 00:44:58,685 --> 00:45:01,450 انتخاب کنید، آن فقط به ما اجازه می دهد تا برای انتخاب داده ها از یک جدول 922 00:45:01,450 --> 00:45:03,080 احتمالا پس از آن استفاده کنید. 923 00:45:03,080 --> 00:45:05,830 و راه ما این کار ما است فقط آن را در برخی از متغیر ذخیره کنید. 924 00:45:05,830 --> 00:45:07,780 و پس از آن ما می توانیم احتمالا آن را دوباره استفاده کنید. 925 00:45:07,780 --> 00:45:10,260 >> بنابراین ستاره SELECT معنی انتخاب همه. 926 00:45:10,260 --> 00:45:13,280 که فقط یک مختصر برای انتخاب همه. 927 00:45:13,280 --> 00:45:19,760 از جدول که در آن، ما به دنبال برای برخی از شرایط خاص، 928 00:45:19,760 --> 00:45:22,290 طوری که در آن ستون برابر چیزی، به عنوان مثال. 929 00:45:22,290 --> 00:45:24,410 اگر ما فقط می خواستم از جدول انتخاب همه، 930 00:45:24,410 --> 00:45:28,400 این فقط انتخاب همه ستون ها و تمام ردیف از یک جدول. 931 00:45:28,400 --> 00:45:32,040 >> و سپس حذف از جدول مکانی که در آن ستون برابر است با چیزی، 932 00:45:32,040 --> 00:45:36,440 این فقط حذف برخی سطر از جدول ما 933 00:45:36,440 --> 00:45:38,860 که در آن ما باید برخی از شرایط خاص. 934 00:45:38,860 --> 00:45:41,870 در این مورد، شرایط ستون برابر است با چیزی. 935 00:45:41,870 --> 00:45:43,460 پس فقط یک مثال سریع از این. 936 00:45:43,460 --> 00:45:49,100 اگر ما این جدول سمت راست در اینجا و ما آن را وارد یک جدول، این ارزش ها، 937 00:45:49,100 --> 00:45:50,400 که یک ردیف جدید را وارد کنید. 938 00:45:50,400 --> 00:45:56,380 و اگر ما افزایش خودکار حال، این امر فقط افزایش ID ما را از 0 به 1 تا 2. 939 00:45:56,380 --> 00:46:00,010 >> اگر ما همه از دانش آموزان انتخاب آن، فقط تمام زمینه ها و تمام ردیف می گرداند. 940 00:46:00,010 --> 00:46:02,430 که در آن سال بیشتر است از یا برابر با سال 2016، 941 00:46:02,430 --> 00:46:04,390 که فقط بازگشت هانا و خودم. 942 00:46:04,390 --> 00:46:08,360 و پس از آن اگر ما فقط انتخاب شناسه سال جاری و سال از دانش آموزان 943 00:46:08,360 --> 00:46:11,710 که در آن خانه کابوت خانه است، که می، دوباره، بازگشت هانا و خودم. 944 00:46:11,710 --> 00:46:14,430 >> سپس اگر ما از دانش آموزان حذف که در آن نام به راب برابر است، 945 00:46:14,430 --> 00:46:16,760 که کل ردیف را حذف کنید. 946 00:46:16,760 --> 00:46:19,696 و سپس اگر ما مجموعه ای از نام و نام خانوادگی، دانش آموزان UPDATE 947 00:46:19,696 --> 00:46:21,570 نام مجموعه برابر است با Daven که در آن خانه برابر است 948 00:46:21,570 --> 00:46:27,010 کابوت خانه، که برای رفتن به آن ردیف و سپس نام به روز رسانی. 949 00:46:27,010 --> 00:46:31,470 >> و پس از آن چند نوع داده SQL هستند CHAR، VARCHAR، INT، و شناور. 950 00:46:31,470 --> 00:46:32,760 این بازی منصفانه است. 951 00:46:32,760 --> 00:46:36,740 من بیش از دوباره و مطمئن شوید که شما می دانید 952 00:46:36,740 --> 00:46:40,930 و آنها را در بازی ورق خود را، چه هر یک از کسانی که شخصیت 953 00:46:40,930 --> 00:46:44,140 برای استفاده شده است، چه شما آنها را در psets شما استفاده می شود، 954 00:46:44,140 --> 00:46:48,050 و مطمئن شوید که شما آشنا و با داشتن را انتخاب کنید 955 00:46:48,050 --> 00:46:51,450 از انواع داده های مختلف در pset خود را. 956 00:46:51,450 --> 00:46:51,950 بله. 957 00:46:51,950 --> 00:46:54,300 >> رسید چه که جدول ذخیره شده بود؟ 958 00:46:54,300 --> 00:46:57,119 آره، که در آن است این جدول ذخیره می شود؟ 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA: خوب، در حال حاضر، آن را ذخیره نمی شود. 960 00:46:59,160 --> 00:47:00,700 به هر حال، که در آن است این جدول ذخیره می شود؟ 961 00:47:00,700 --> 00:47:04,503 اما می توان آن را در یک پایگاه داده SQL ذخیره می شود. 962 00:47:04,503 --> 00:47:07,330 >> رسید و که در آن پایگاه داده SQL است؟ 963 00:47:07,330 --> 00:47:11,200 در کامپیوتر، آنلاین در جایی، سرور؟ 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA: این می تواند یک تعداد چیز متفاوت است. 965 00:47:15,000 --> 00:47:19,690 >> هانا بلومبرگ: ما با واسط ام جداول SQL عمدتا با phpMyAdmin به. 966 00:47:19,690 --> 00:47:22,060 بنابراین ما می تواند یک سرور بپرسید به آنها را ذخیره برای ما. 967 00:47:22,060 --> 00:47:23,830 ما می توانیم آنها را در کامپیوتر خود ما را ذخیره کنید. 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA: این فقط بستگی دارد چگونه می خواهید به آن را برای خودتان. 969 00:47:27,950 --> 00:47:30,075 اما ما ذخیره شده است آنها، به عنوان هانا اشاره شد، 970 00:47:30,075 --> 00:47:31,755 در از phpMyAdmin، که آنلاین. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 و پس از آن راه استفاده می کنیم PHP و SQL، ما آن را ذخیره 973 00:47:39,280 --> 00:47:43,450 به برخی از متغیر آنچه که ما برای تردید است. 974 00:47:43,450 --> 00:47:48,370 >> بنابراین اگر ما همه را انتخاب کنید از تاریخ که در آن USER_ID برابر ID جلسه، 975 00:47:48,370 --> 00:47:53,900 که تمام ردیف را انتخاب کنید برای فرد خاص که 976 00:47:53,900 --> 00:47:58,327 در از تاریخ به سیستم وارد جدول و مرتب کردن آنها را به ردیف. 977 00:47:58,327 --> 00:48:00,410 نکته جالب این است که بدانیم است که تابع پرس و جو CS50 را 978 00:48:00,410 --> 00:48:02,180 محافظت در برابر دستورات تزریق SQL. 979 00:48:02,180 --> 00:48:07,420 که فقط بدان معناست که اطمینان حاصل می کند ورودی است که وارد کرده اید درست است 980 00:48:07,420 --> 00:48:09,920 و کسی که در حال ورود به ورودی 981 00:48:09,920 --> 00:48:15,100 در تلاش است تا ورودی برخی از مخرب کد را به هم رها کردن جدول ما 982 00:48:15,100 --> 00:48:17,305 و یا حذف همه چیز داخل بانک اطلاعاتی ما. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> مروری سریع از مدل مدل نمایش کنترل، 985 00:48:23,400 --> 00:48:27,360 این فقط یک راه برای سازماندهی است و فکر کردن در مورد کد. 986 00:48:27,360 --> 00:48:29,100 آن را دوباره، یک الگوی طراحی است. 987 00:48:29,100 --> 00:48:33,380 که ما این بدان معناست can-- و این تمرین خوبی است 988 00:48:33,380 --> 00:48:37,790 برای جدا کردن بخش های مختلف کد ما و آنچه را که 989 00:48:37,790 --> 00:48:40,530 کنترل را به این سه نمونه. 990 00:48:40,530 --> 00:48:46,700 >> بنابراین نظر ما این است که اغلب ما قالب، طرح ما، راه 991 00:48:46,700 --> 00:48:48,260 که ما مجموعه ای که چگونه کد ما به نظر می رسد. 992 00:48:48,260 --> 00:48:55,190 که عمدتا فایل های CSS و راه که ما طراحی از کد ما تعریف شده است، 993 00:48:55,190 --> 00:48:55,710 اساسا. 994 00:48:55,710 --> 00:48:59,280 کنترل ما عمدتا آنچه که ما شده ایم با فایل های پی اچ پی انجام می دهند. 995 00:48:59,280 --> 00:49:03,030 پس دوباره، کار با اطلاعات که ما 996 00:49:03,030 --> 00:49:06,700 و تعریف که اطلاعات استفاده شده است، 997 00:49:06,700 --> 00:49:10,660 و سپس با عبور از آن اطلاعات هم بر روی این دیدگاه و یا مدل. 998 00:49:10,660 --> 00:49:13,880 و مدل، راهی است که ما را شده است با استفاده است شده است بانک اطلاعاتی ما، 999 00:49:13,880 --> 00:49:17,510 طوری که در آن اطلاعات ما ذخیره شده پس از آن تا جایی 1000 00:49:17,510 --> 00:49:21,490 برای زندگی، و هر یک از کد که مربوط به راه 1001 00:49:21,490 --> 00:49:25,410 که ما که اطلاعات یا راه است که ما که این اطلاعات را به روز رسانی. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> بنابراین در مدل MVC، HTTP درخواست ها به یک وب سرور ارسال می شود. 1004 00:49:33,200 --> 00:49:36,220 پس از آن، تفسیر کنترل درخواست از کاربران 1005 00:49:36,220 --> 00:49:38,260 و سپس تایید ورودی کاربر است. 1006 00:49:38,260 --> 00:49:41,580 آن را اختیاری که ما کنترل ارتباط برقرار 1007 00:49:41,580 --> 00:49:44,000 با یک مدل، بنابراین چیزی مانند پایگاه داده ما 1008 00:49:44,000 --> 00:49:47,500 و یا برخی از قابلیت های دیگر که اطلاعات رله. 1009 00:49:47,500 --> 00:49:50,340 و سپس در نهایت، کنترل عبور اطلاعات بر روی این دیدگاه 1010 00:49:50,340 --> 00:49:52,090 به طوری که می توان آن را ارائه و که می تواند 1011 00:49:52,090 --> 00:49:55,860 به هر شخص قابل مشاهده است دسترسی به صفحه وب. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> هر گونه سؤال؟ 1014 00:50:01,340 --> 00:50:01,840 عالی. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 پس دوباره، مدل، عملکرد آن، دوباره، 1017 00:50:08,469 --> 00:50:11,260 ذخیره سازی مداوم از اطلاعات است، مدیریت و سازماندهی داده ها. 1018 00:50:11,260 --> 00:50:13,890 و آنچه دیده ایم تا دور پایگاه داده MySQL است 1019 00:50:13,890 --> 00:50:16,200 و هر فایل داده که ممکن است استفاده کنید. 1020 00:50:16,200 --> 00:50:20,580 >> نمایش، ارائه اطلاعات به کاربر، UI، و یا رابط کاربر. 1021 00:50:20,580 --> 00:50:22,350 و نمونه ای از این HTML است. 1022 00:50:22,350 --> 00:50:23,950 و پس از آن ما ممکن است حداقل PHP را داشته باشد. 1023 00:50:23,950 --> 00:50:28,360 بنابراین یک حلقه for می کند که بیش از داده است که به چاپ کردن 1024 00:50:28,360 --> 00:50:30,720 بخشی از نمایش است، به عنوان مخالفت به کنترل. 1025 00:50:30,720 --> 00:50:35,660 و پس از آن بسیاری از فایل های پی اچ پی ما سقوط به دسته کنترل. 1026 00:50:35,660 --> 00:50:38,410 این فقط دسته درخواست کاربر و اطلاعات را از مدل. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> پریدن به داخل سند مدل شی، این فقط 1029 00:50:45,590 --> 00:50:47,700 اشاره به راه HTML اسناد سازمان یافته هستند. 1030 00:50:47,700 --> 00:50:51,600 و آنها را به یک درخت سازمان ساختار است که یک سلسله مراتب. 1031 00:50:51,600 --> 00:50:56,720 بنابراین اگر ما به اینترنت دسترسی دارند [نامفهوم] نمایندگی از سند، 1032 00:50:56,720 --> 00:51:02,750 ما می توانیم با سند کار می کنند، مانند ما دستکاری اشیاء اساسا. 1033 00:51:02,750 --> 00:51:06,630 >> و به این کمی واضح تر، هنگامی که 1034 00:51:06,630 --> 00:51:10,540 ما یک مقدار زیادی از ما برچسب ها مختلف پاسخ 1035 00:51:10,540 --> 00:51:12,590 به مسیرهای مختلف در درخت. 1036 00:51:12,590 --> 00:51:17,070 و سپس برای این مثال، ما اند گره سند شروع. 1037 00:51:17,070 --> 00:51:20,010 ما، پس از آن، گره HTML ما که تقسیم به سر و بدن. 1038 00:51:20,010 --> 00:51:22,810 سر تا عنوان و سپس عنوان شامل سلام جهان. 1039 00:51:22,810 --> 00:51:24,860 و بدن ما فقط شامل سلام جهان است. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> بنابراین هر گونه سوال در هر یک از چیزهایی که ما تحت پوشش تا کنون؟ 1042 00:51:31,900 --> 00:51:35,891 و اگر نه، هانا خواهد شد بیش از با جاوا اسکریپت. 1043 00:51:35,891 --> 00:51:36,390 عالی. 1044 00:51:36,390 --> 00:51:37,473 >> هانا بلومبرگ: OK، سرد است. 1045 00:51:37,473 --> 00:51:40,980 اگر هر چیزی می آید تا با HTML و PHP، یا هر یک از مسائل ماریا تحت پوشش، 1046 00:51:40,980 --> 00:51:42,700 ما همیشه می توانید مکث. 1047 00:51:42,700 --> 00:51:46,430 ما در حال انجام بهتر در زمان دوباره، به طوری که بسیار جذاب است. 1048 00:51:46,430 --> 00:51:48,770 و فقط برای رفتن به عقب واقعا به سرعت به این، 1049 00:51:48,770 --> 00:51:51,010 اگر شما در هر نگاه آزمون سال گذشته، این 1050 00:51:51,010 --> 00:51:54,120 می آید تا either-- در اینجا این است برخی از HTML، را در این نمودار. 1051 00:51:54,120 --> 00:51:58,380 و یا اینجا این نمودار، برخی را HTML، پس قطعا تمرین است که. 1052 00:51:58,380 --> 00:52:01,500 و پس از آن که یک تضمین درخواست که شما می توانید دریافت کنید. 1053 00:52:01,500 --> 00:52:02,000 خنک. 1054 00:52:02,000 --> 00:52:04,510 بنابراین اجازه دهید در مورد جاوا اسکریپت صحبت و چگونه آن را را کمی 1055 00:52:04,510 --> 00:52:09,130 از زبان هایی مانند PHP و C، دو زبان ما از قبل دیدم. 1056 00:52:09,130 --> 00:52:10,780 بنابراین شماره یک، آن را از نوع بی قاعده. 1057 00:52:10,780 --> 00:52:14,630 است که مانند PHP، اما بر خلاف C. 1058 00:52:14,630 --> 00:52:15,890 >> این یک زبان تفسیر شده است. 1059 00:52:15,890 --> 00:52:19,870 باز هم، که مانند PHP بر خلاف C. و این 1060 00:52:19,870 --> 00:52:24,630 در حال رفتن به ما اجازه می دهد به آن use-- کار می کند واقعا به خوبی با صفحات وب است. 1061 00:52:24,630 --> 00:52:28,350 آن را به ما اجازه می دهد به دستکاری محتوا و چگونه آن را به نظر می رسد 1062 00:52:28,350 --> 00:52:30,300 و آنچه در آن است. 1063 00:52:30,300 --> 00:52:32,330 >> ما در حال رفتن به یک کمی از آژاکس. 1064 00:52:32,330 --> 00:52:36,140 این اجازه می دهد ما برای برقراری ارتباط ناهمگام با سرور های مختلف 1065 00:52:36,140 --> 00:52:37,950 و دریافت اطلاعات. 1066 00:52:37,950 --> 00:52:42,820 و این چیزی است که واقعا جاوا اسکریپت PHP و C از هم جدا 1067 00:52:42,820 --> 00:52:45,590 این است که آن سمت سرویس گیرنده است. 1068 00:52:45,590 --> 00:52:49,860 PHP و C هستند معمولا در سمت سرور. 1069 00:52:49,860 --> 00:52:51,960 >> در بیشتر قسمت ها و تقریبا به طور کامل چه 1070 00:52:51,960 --> 00:52:53,900 ما دیده ایم، حداقل در این کلاس، جاوا اسکریپت 1071 00:52:53,900 --> 00:52:57,040 عمل می کند در سمت سرویس گیرنده، که به معنی که مرورگر است که در واقع 1072 00:52:57,040 --> 00:52:58,597 مسئول اجرای آن. 1073 00:52:58,597 --> 00:53:01,180 و این بدان معناست که ما نمی نیاز به تعامل با سرور. 1074 00:53:01,180 --> 00:53:04,380 پس به این معنی می توان آن را خیلی سریع تر دلیل آن در واقع فقط آن کروم، 1075 00:53:04,380 --> 00:53:10,420 آن را سافاری، آن را فایرفاکس، هر آنچه شما استفاده واقع اجرای جاوا اسکریپت خود را. 1076 00:53:10,420 --> 00:53:12,290 >> مخاطبان: چه معنی ناهمزمان؟ 1077 00:53:12,290 --> 00:53:13,620 >> هانا بلومبرگ: آه، چه ناهمگام کند چیست؟ 1078 00:53:13,620 --> 00:53:14,250 درخواست بزرگ است. 1079 00:53:14,250 --> 00:53:17,890 ناهمگام means-- خوب، که در آن محتوای 1080 00:53:17,890 --> 00:53:22,140 ما با استفاده از آن است، خوب، ما در حال ایجاد یک صفحه وب 1081 00:53:22,140 --> 00:53:23,860 و ما نیاز به آوردن برخی از اطلاعات. 1082 00:53:23,860 --> 00:53:28,250 بنابراین با نمونه ای از ترکیب، برخی از اطلاعاتی که ما ممکن است بخواهید 1083 00:53:28,250 --> 00:53:30,580 عنوان مقاله است. 1084 00:53:30,580 --> 00:53:33,330 در حال حاضر ما یک گزینه could-- است که آن را همزمان 1085 00:53:33,330 --> 00:53:37,940 و این بدان معناست اجازه متوقف، به دریافت این مقاله، 1086 00:53:37,940 --> 00:53:41,275 دریافت مقاله تماس، و پس از ارائه، اما این امر می تواند واقعا آهسته است. 1087 00:53:41,275 --> 00:53:44,150 که می تواند یک تجربه کاربر بد چرا که شما فقط می نشستن 1088 00:53:44,150 --> 00:53:46,630 انتظار برای چیزی واکنش نشان دهند. 1089 00:53:46,630 --> 00:53:50,020 >> ناهمگام بدان معناست که ما ادامه مورد کسب و کار ما، 1090 00:53:50,020 --> 00:53:52,529 صفحه ترجمه، و ما ارسال یک درخواست 1091 00:53:52,529 --> 00:53:54,570 این نوع از رفتن به اتفاق می افتد در پس زمینه. 1092 00:53:54,570 --> 00:53:57,610 من فکر می کنم ما با استفاده از به عنوان مثال در سخنرانی خواستار راب و گفت: 1093 00:53:57,610 --> 00:53:59,980 با سلام، می تواند به شما این نگاه کردن برای من و به عقب بر گردیم به من، 1094 00:53:59,980 --> 00:54:02,870 به عنوان مخالف فقط به من انتظار بر روی گوشی. 1095 00:54:02,870 --> 00:54:07,020 بنابراین غیر همزمان به معنی آن اتفاق می افتد در پس زمینه از ما دور 1096 00:54:07,020 --> 00:54:08,676 به موازات. 1097 00:54:08,676 --> 00:54:10,400 >> درخواست بزرگ است. 1098 00:54:10,400 --> 00:54:11,830 هر چیز دیگری؟ 1099 00:54:11,830 --> 00:54:12,330 عالی. 1100 00:54:12,330 --> 00:54:15,020 ما خیلی بیشتر پرش به درخواست ناهمزمان با آژاکس. 1101 00:54:15,020 --> 00:54:18,287 >> مخاطبان: آیا JavaScript-- که در آن می کند آن را با مدل نمایش کنترل قرار می گیرند؟ 1102 00:54:18,287 --> 00:54:19,620 هانا بلومبرگ: سوال بسیار خوبی. 1103 00:54:19,620 --> 00:54:23,320 از کجا سقوط جاوا اسکریپت با استفاده از مدل نمایش کنترل؟ 1104 00:54:23,320 --> 00:54:23,930 HM. 1105 00:54:23,930 --> 00:54:28,350 من حدس می زنم آن را می توانید fall-- بنابراین ما معمولا نمی 1106 00:54:28,350 --> 00:54:31,340 می خواهم به آن له به آن پارادایم، اما من حدس می زنم من می گفت، 1107 00:54:31,340 --> 00:54:34,280 خوب، پس جاوا اسکریپت در واقع است که اجازه می دهد تا 1108 00:54:34,280 --> 00:54:37,587 ما به جمع آوری داده ها، تفسیر داده ها، در واقع انجام 1109 00:54:37,587 --> 00:54:38,920 همه چیز معنی دار با داده ها. 1110 00:54:38,920 --> 00:54:41,100 در این راه، آن را بسیار کنترل مانند است. 1111 00:54:41,100 --> 00:54:43,900 >> اما آن را نیز به ما اجازه می دهد به نمایش همه چیز و همه چیز چاپ. 1112 00:54:43,900 --> 00:54:47,021 در این راه، آن را بسیار نظر مانند است. 1113 00:54:47,021 --> 00:54:47,520 آره. 1114 00:54:47,520 --> 00:54:51,710 پس از آن این نوع مانند PHP در که در آن به نوعی می تواند هر دو باشد. 1115 00:54:51,710 --> 00:54:53,330 سوال خوبی بود. 1116 00:54:53,330 --> 00:54:55,209 هر چیز دیگری؟ 1117 00:54:55,209 --> 00:54:56,000 همه حق است، بسیار جذاب است. 1118 00:54:56,000 --> 00:54:57,120 در حال حرکت حق همراه است. 1119 00:54:57,120 --> 00:54:59,110 >> بنابراین اجازه دهید یک مثال را ببینید از ما چگونه می توانید استفاده کنید 1120 00:54:59,110 --> 00:55:02,250 جاوا اسکریپت در یکی از برنامه وب سایت ما. 1121 00:55:02,250 --> 00:55:05,680 بنابراین من این نظر index.html را با یک دسته از HTML. 1122 00:55:05,680 --> 00:55:08,800 و چیزی که من می خواهید تمرکز بر روی این برچسب اسکریپت است. 1123 00:55:08,800 --> 00:55:13,280 و این می گوید، OK، من می خواهم به اجرای برخی از جاوا اسکریپت و در اینجا این است که در آن زندگی می کند. 1124 00:55:13,280 --> 00:55:15,400 آن را در hello.js زندگی می کند. 1125 00:55:15,400 --> 00:55:21,120 >> و خیلی دوست دارم CSS، ما می تواند جاوا اسکریپت در HTML قرار. 1126 00:55:21,120 --> 00:55:24,000 چرا ممکن است ما می خواهیم آن جدا کردن؟ 1127 00:55:24,000 --> 00:55:24,500 آره. 1128 00:55:24,500 --> 00:55:25,486 >> رسید راحت تر به بازنویسی؟ 1129 00:55:25,486 --> 00:55:26,402 >> هانا بلومبرگ: آره. 1130 00:55:26,402 --> 00:55:28,450 آن را آسان تر به استفاده از در سراسر صفحات وب مختلف. 1131 00:55:28,450 --> 00:55:29,980 این چیز پاک نگه می دارد. 1132 00:55:29,980 --> 00:55:32,090 این فقط عمل خوب است. 1133 00:55:32,090 --> 00:55:32,590 عالی. 1134 00:55:32,590 --> 00:55:33,930 جواب خوبی بود. 1135 00:55:33,930 --> 00:55:36,690 خیلی خوب، پس این است که رفتن به index.html را ما است. 1136 00:55:36,690 --> 00:55:39,430 و سپس در اینجا ما است کوچک فایل کمی جاوا اسکریپت. 1137 00:55:39,430 --> 00:55:42,410 >> و همه آن را می گوید هشدار جهان است سلام،. 1138 00:55:42,410 --> 00:55:46,040 بنابراین چه اتفاقی می افتد وقتی است که این صفحه renders-- 1139 00:55:46,040 --> 00:55:49,680 بنابراین اگر شما به هر آنچه که وب سایت بروید این is-- که اتفاق خواهد افتاد 1140 00:55:49,680 --> 00:55:53,330 است آن را به می گویند، خوب، من رفتن به اجرای این کد جاوا اسکریپت. 1141 00:55:53,330 --> 00:55:56,370 و این کد جاوا اسکریپت فقط می گوید: هشدار سلام جهان. 1142 00:55:56,370 --> 00:55:59,090 بنابراین من قصد دارم برای دریافت این دوستانه کمی پاپ آپ. 1143 00:55:59,090 --> 00:56:00,360 >> خنک؟ 1144 00:56:00,360 --> 00:56:04,746 که این نوع مانند ما اولین جاوا اسکریپت برنامه، خوش آمدید ما، جهان است. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 بیایید نگاه کمی بیشتر در مورد چه نحو جاوا اسکریپت به نظر می رسد. 1147 00:56:12,190 --> 00:56:16,330 و به طور خاص، اجازه دهید آن را به مقایسه C و PHP، که ما قبل از دیده می شود. 1148 00:56:16,330 --> 00:56:20,610 >> در جاوا اسکریپت، ما در حال رفتن به VAR، نام متغیر، و پس از آن 1149 00:56:20,610 --> 00:56:21,690 ارزش واقعی آن است. 1150 00:56:21,690 --> 00:56:26,170 و ما یک نوع مشخص نیست، فقط مانند PHP، اما بسیار بر خلاف C. 1151 00:56:26,170 --> 00:56:28,850 بنابراین برای مثال، اگر ما می خواستیم برای ذخیره ارزش 50، 1152 00:56:28,850 --> 00:56:32,490 در C، ما را به گفتن، با سلام، C، من می خواهم یک عدد صحیح، 1153 00:56:32,490 --> 00:56:35,076 من قصد دارم به آن پاسخ من، و ارزش آن 50 است. 1154 00:56:35,076 --> 00:56:36,450 در پی اچ پی، آن را کمی آسان تر است. 1155 00:56:36,450 --> 00:56:41,880 ما می گویند، با سلام، من می خواهم یک متغیر به نام من و مقدار آن 50 است. 1156 00:56:41,880 --> 00:56:45,890 بسیار مشابه، در جاوا اسکریپت، ما می گویند هی، من می خواهم یک متغیر به نام من، 1157 00:56:45,890 --> 00:56:47,080 ارزش خود را 50 است. 1158 00:56:47,080 --> 00:56:52,140 هر زمان پس از آن که من استفاده من، من لازم نیست به ارسال VAR. 1159 00:56:52,140 --> 00:56:53,810 این فقط من از آن نقطه. 1160 00:56:53,810 --> 00:56:58,660 در همان حال، در C، که در آن زمانی که ما اعضای هیات من می گویند، ما فقط من استفاده کنید. 1161 00:56:58,660 --> 00:57:00,340 خنک؟ 1162 00:57:00,340 --> 00:57:01,800 خیلی خوب. 1163 00:57:01,800 --> 00:57:03,710 >> در حال حرکت به حلقه، خوشبختانه، این تقریبا 1164 00:57:03,710 --> 00:57:06,720 نگاه exactly-- من فکر می کنم آنها دقیقا همان چیزی است که 1165 00:57:06,720 --> 00:57:09,799 حلقه در حال رفتن به مانند نگاه چیزی شبیه به C که در آن خود را برای حلقه 1166 00:57:09,799 --> 00:57:11,840 در حال رفتن به سه parts-- مقدار دهی اولیه، 1167 00:57:11,840 --> 00:57:13,640 وضعیت، و به روز رسانی. 1168 00:57:13,640 --> 00:57:15,340 یک حلقه در حالی که به نظر می رسد همان دقیق. 1169 00:57:15,340 --> 00:57:16,390 ما فقط آن را یک بیماری است. 1170 00:57:16,390 --> 00:57:18,264 >> و یک در حالی که حلقه، دوباره، دقیقا همان است. 1171 00:57:18,264 --> 00:57:20,190 ما آن را یک بیماری است. 1172 00:57:20,190 --> 00:57:24,510 بیایید می گویند من می خواستم به تکرار over-- من می خواستم برای انجام کاری پنج بار. 1173 00:57:24,510 --> 00:57:27,840 در C، ما ممکن است ارسال برای init انجام من برابر با 0. 1174 00:57:27,840 --> 00:57:30,480 من کمتر از 5 است، من + +. 1175 00:57:30,480 --> 00:57:34,240 تنها تفاوت، در جاوا اسکریپت، به جای گفتن INT من برابر با 0، 1176 00:57:34,240 --> 00:57:36,820 ما می گویند VAR من برابر با 0. 1177 00:57:36,820 --> 00:57:38,370 خوشگل. 1178 00:57:38,370 --> 00:57:41,320 این تنها تفاوت است. 1179 00:57:41,320 --> 00:57:43,200 هر گونه سوال در هر یک از این؟ 1180 00:57:43,200 --> 00:57:44,160 بله. 1181 00:57:44,160 --> 00:57:48,480 >> مخاطبان: بنابراین در پی اچ پی، آن را همان چیزی، به جز اما مانند یک متغیر؟ 1182 00:57:48,480 --> 00:57:49,564 و یا این بود که یک مثال var؟ 1183 00:57:49,564 --> 00:57:50,480 هانا بلومبرگ: آره. 1184 00:57:50,480 --> 00:57:52,310 بنابراین در پی اچ پی، آن را به یک علامت دلار. 1185 00:57:52,310 --> 00:57:59,450 بنابراین آن را به من برابر با $ 0، $ من کمتر از 5 باشد، $ من + +. 1186 00:57:59,450 --> 00:58:02,490 درخواست بزرگ است. 1187 00:58:02,490 --> 00:58:04,570 >> حالا اجازه دهید بحث در مورد اظهارات تابع. 1188 00:58:04,570 --> 00:58:07,010 در C، زمانی که ما اعلام کرد تابع، ما به آن نام 1189 00:58:07,010 --> 00:58:08,490 و ما آن را برخی از پارامترهای داد. 1190 00:58:08,490 --> 00:58:10,670 و در آغاز، ما نوع نوشت. 1191 00:58:10,670 --> 00:58:12,440 در جاوا اسکریپت، همه ما مجبور به انجام آن ارسال 1192 00:58:12,440 --> 00:58:15,080 تابع کلمه کلیدی که می گوید، هی، جاوا اسکریپت، 1193 00:58:15,080 --> 00:58:16,570 من در مورد به تعریف یک تابع است. 1194 00:58:16,570 --> 00:58:18,520 >> در این مورد، آن را تا نام مجموع. 1195 00:58:18,520 --> 00:58:20,820 و آن دو استدلال، x و y طول می کشد. 1196 00:58:20,820 --> 00:58:23,280 توجه داشته باشید که ما اهمیتی نمی در مورد انواع x و y. 1197 00:58:23,280 --> 00:58:26,280 و درست مثل C، ما باید این بازگشت کلمات کلیدی، 1198 00:58:26,280 --> 00:58:29,140 بنابراین ما می توانیم چیزی را انجام دهید مانند بازگشت x و y. 1199 00:58:29,140 --> 00:58:32,540 >> و در حال حاضر زمانی که ما اولین بار از این نوشته ام تابع، ما می توانیم در هر نقطه جمع استفاده کنید. 1200 00:58:32,540 --> 00:58:34,740 و این کاملا خوب است. 1201 00:58:34,740 --> 00:58:37,530 یک چیز واقعا جالب در مورد جاوا اسکریپت است که بسیار بر خلاف C 1202 00:58:37,530 --> 00:58:40,770 که توابع را می شود مانند ارزش درمان می شود. 1203 00:58:40,770 --> 00:58:43,895 بنابراین ما می توانیم چیزی شبیه به اینجا انجام جایی که من گمان می کنم این پوشش up-- 1204 00:58:43,895 --> 00:58:46,400 من تحت پوشش تا VAR مجموع part-- و ما فقط گفت 1205 00:58:46,400 --> 00:58:49,850 عملکرد XY برابر بازگشت به علاوه Y X. 1206 00:58:49,850 --> 00:58:52,140 >> این چیزی است که می شود به نام یک تابع بی نام. 1207 00:58:52,140 --> 00:58:53,920 این یک تابع بدون نام است. 1208 00:58:53,920 --> 00:58:56,290 در حالی که این تابع می گوید مجموع، اه، اه، اه، 1209 00:58:56,290 --> 00:58:59,340 این فقط می گویند تابع. 1210 00:58:59,340 --> 00:59:02,020 اما در حال حاضر حتی اگر من این تابع ناشناس، 1211 00:59:02,020 --> 00:59:03,630 که تابع است که واقعا فقط یک مقدار است. 1212 00:59:03,630 --> 00:59:05,160 ما می توانیم آن را مانند یک ارزش را درمان کنند. 1213 00:59:05,160 --> 00:59:10,180 >> بنابراین ما می توانیم آن را در یک متغیر ذخیره کنید همان راه ما می تواند 50 در یک متغیر ذخیره کنید. 1214 00:59:10,180 --> 00:59:13,870 بنابراین می توان گفت، OK، من می خواهم یک متغیر، آن را به نام مجموع، 1215 00:59:13,870 --> 00:59:16,011 و آن این تابع است. 1216 00:59:16,011 --> 00:59:18,760 لذا این دو چیز در واقع رفتن به انجام همان چیزی دقیق، 1217 00:59:18,760 --> 00:59:21,576 اما نحو کمی است مختلف و نوع توجه داشته باشید سرگرم کننده است. 1218 00:59:21,576 --> 00:59:22,076 آره. 1219 00:59:22,076 --> 00:59:25,548 >> رسید بنابراین شما می تواند یک تابع است که با گفتن ناشناس بود، 1220 00:59:25,548 --> 00:59:28,244 براکت مجموع 2، 5؟ 1221 00:59:28,244 --> 00:59:29,160 هانا بلومبرگ: آره. 1222 00:59:29,160 --> 00:59:32,280 شما می توانید این ناشناس پاسخ تابع در به همان شیوه. 1223 00:59:32,280 --> 00:59:33,350 شما می مجموع انجام (2، 5)؛ 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 این امر می تواند کاملا خوب است. 1226 00:59:38,200 --> 00:59:41,575 >> اگر این کار را نکردم VAR مجموع برابر تابع، اگر من فقط حذف 1227 00:59:41,575 --> 00:59:45,480 this-- من می دانم که آن را در دست من است، اما وانمود من this-- حذف و سپس 1228 00:59:45,480 --> 00:59:46,964 که تابع نوع فقط رفته است. 1229 00:59:46,964 --> 00:59:49,630 شما هرگز نمی توانید آن را بار دیگر به دلیل استفاده از شما یک نام برای آن ندارد. 1230 00:59:49,630 --> 00:59:53,497 این سخت است برای اشاره به چیزی شما نمی دانید که چه به تماس. 1231 00:59:53,497 --> 00:59:54,080 سوال خوبی بود. 1232 00:59:54,080 --> 00:59:54,580 آره. 1233 00:59:54,580 --> 00:59:59,580 >> رسید می توانید خلاصه شما مرجع در جاهای دیگر با مقدار x به علاوه Y؟ 1234 00:59:59,580 --> 01:00:01,940 >> هانا بلومبرگ: شما می توانید مجموع مرجع در جاهای دیگر 1235 01:00:01,940 --> 01:00:03,360 با X مقدار به اضافه Y؟ 1236 01:00:03,360 --> 01:00:05,130 من کاملا مطمئن منظور شما چیست نیست. 1237 01:00:05,130 --> 01:00:10,582 >> مخاطبان: بنابراین گذشته خود را نیمه ناشناس تابع است مجموع برای این برابر است با 1238 01:00:10,582 --> 01:00:14,452 تابع بی نام، به طوری که جمع شده است در حال حاضر یک متغیر است که شما can-- 1239 01:00:14,452 --> 01:00:15,410 هانا بلومبرگ: درست است. 1240 01:00:15,410 --> 01:00:18,980 بنابراین مجموع متغیر است، اما آن را actually-- 1241 01:00:18,980 --> 01:00:23,770 بنابراین مجموع یک متغیر است که است ارزش تابع است. 1242 01:00:23,770 --> 01:00:27,030 پس از آن یک تابع است که نوع است یک چیز عجیب و غریب برای بسته بندی کردن سر خود را در اطراف 1243 01:00:27,030 --> 01:00:29,880 از آنجایی که ما با بازی C و شما نمی توانید انجام دهید که در C. 1244 01:00:29,880 --> 01:00:32,679 اما در حال حاضر ما می توانید تماس بگیرید جمع همان روشی که ما می تواند مبلغ اینجا تماس بگیرید. 1245 01:00:32,679 --> 01:00:33,220 رسید OK. 1246 01:00:33,220 --> 01:00:33,970 هانا بلومبرگ: آره. 1247 01:00:33,970 --> 01:00:34,553 سوال خوبی بود. 1248 01:00:34,553 --> 01:00:35,438 آره. 1249 01:00:35,438 --> 01:00:39,862 >> مخاطبان: بنابراین ما استفاده نمی نمونه های اولیه در PHP یا جاوا اسکریپت؟ 1250 01:00:39,862 --> 01:00:42,070 هانا بلومبرگ: نه، ما لازم نیست به استفاده از نمونه های اولیه، 1251 01:00:42,070 --> 01:00:43,880 به خصوص در جاوا اسکریپت. 1252 01:00:43,880 --> 01:00:49,380 بنابراین یک چیز بد عمل که من رفتن به می گویند که شما باید انجام دهید 1253 01:00:49,380 --> 01:00:52,620 است که شما لازم نیست برای نوشتن VAR من = 50. 1254 01:00:52,620 --> 01:00:54,840 شما می توانید فقط شروع به انجام I = 50. 1255 01:00:54,840 --> 01:00:57,490 و فقط من یک متغیر جهانی است. 1256 01:00:57,490 --> 01:01:00,550 >> این عمل بسیار بد است به می گویند هرگز صراحت VAR من، 1257 01:01:00,550 --> 01:01:01,800 اما آن چیزی که میتوانید انجام دهید. 1258 01:01:01,800 --> 01:01:03,591 مترجم نیست رفتن به فریاد زدن در شما. 1259 01:01:03,591 --> 01:01:05,920 جاوا اسکریپت بسیار شبیه است، شما می توانید آنچه شما می خواهید. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 آه ببخشید. 1262 01:01:09,800 --> 01:01:10,300 این دو وجود دارد. 1263 01:01:10,300 --> 01:01:12,150 در شلوار نارنجی. 1264 01:01:12,150 --> 01:01:13,190 برو جلو. 1265 01:01:13,190 --> 01:01:14,390 >> مخاطبان: نه، شما برای اولین بار. 1266 01:01:14,390 --> 01:01:16,765 >> مخاطبان: نه، من فقط می گفت من دست به من ندارد. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 باشه. 1269 01:01:20,748 --> 01:01:26,604 بنابراین اگر شما به پاسخ که اولین بار، در حال حاضر خلاصه، 1270 01:01:26,604 --> 01:01:29,864 ما آن را به همان شیوه پاسخ، X، Y، مانند هر زمان تنها؟ 1271 01:01:29,864 --> 01:01:30,780 هانا بلومبرگ: آره. 1272 01:01:30,780 --> 01:01:32,572 بنابراین این دو اساسا همین کار را. 1273 01:01:32,572 --> 01:01:35,113 رسید و چه مزیت است استفاده از یکی یا دیگری؟ 1274 01:01:35,113 --> 01:01:37,500 هانا بلومبرگ: هیچ مزیت استفاده از یکی یا دیگری. 1275 01:01:37,500 --> 01:01:40,080 من فقط می خواستم به شما نشان می دهد دو تکه های مختلف از نحو. 1276 01:01:40,080 --> 01:01:42,770 بسیاری از اوقات که در آن ناشناس توابع انجام یک هدف 1277 01:01:42,770 --> 01:01:48,220 است اگر بحث را به دیگری تابع باید یک تابع باشد. 1278 01:01:48,220 --> 01:01:50,600 و خواهیم دید که در فقط یک ثانیه با آژاکس. 1279 01:01:50,600 --> 01:01:53,577 >> بنابراین در صورتی که به هیچ وجه احساس را ندارد، ذخیره آن را در پشت سر خود را. 1280 01:01:53,577 --> 01:01:55,660 این که در آن ناشناس تابع ممکن است مفید باشد 1281 01:01:55,660 --> 01:01:58,284 چرا که آن را واقعا ارزش به آن نام از ما فقط در حال 1282 01:01:58,284 --> 01:01:59,443 قصد استفاده از آن یک بار. 1283 01:01:59,443 --> 01:02:00,370 آره. 1284 01:02:00,370 --> 01:02:03,635 >> مخاطبان: اگر x و y را تغییر دهید در، مبلغ به تغییر به عنوان؟ 1285 01:02:03,635 --> 01:02:06,510 هانا بلومبرگ: اگر x و y را تغییر بعد از آن، مبلغ به تغییر به عنوان؟ 1286 01:02:06,510 --> 01:02:08,840 پس این است که در واقع من فکر می کنم چیزی که، 1287 01:02:08,840 --> 01:02:12,260 دوباره، آن را فقط احساس می کند بسیار متفاوت از C. این یک ارزش است. 1288 01:02:12,260 --> 01:02:13,620 این 5 است. 1289 01:02:13,620 --> 01:02:15,550 این فقط خود تابع است. 1290 01:02:15,550 --> 01:02:19,110 بنابراین به محض اینکه شما آن را پارامترها، پس از آن واقع شما می خواهید یک مقدار را محاسبه کند. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA: و پس از آن شما می توانید تابع پاسخ 1292 01:02:21,193 --> 01:02:23,272 و استفاده از آن برای به دست آوردن ارزش باشد. 1293 01:02:23,272 --> 01:02:24,230 هانا بلومبرگ: درست است. 1294 01:02:24,230 --> 01:02:25,250 دقیقا. 1295 01:02:25,250 --> 01:02:25,863 آره. 1296 01:02:25,863 --> 01:02:27,946 >> رسید بنابراین اگر شما فقط ذخیره آن را در متغیر، 1297 01:02:27,946 --> 01:02:31,430 مانند VAR x برابر مجموع دو values-- 1298 01:02:31,430 --> 01:02:32,420 >> هانا بلومبرگ: آره. 1299 01:02:32,420 --> 01:02:35,320 بنابراین شما فقط می تواند انجام VAR مجموع برابر مجموع دو مقدار است. 1300 01:02:35,320 --> 01:02:37,670 آره. 1301 01:02:37,670 --> 01:02:38,680 هر سوال دیگری؟ 1302 01:02:38,680 --> 01:02:39,642 آره. 1303 01:02:39,642 --> 01:02:42,047 >> رسید اما که مبلغ و در مجموع اشتباه؟ 1304 01:02:42,047 --> 01:02:45,062 مانند اگر شما مبلغ متغیر خود تماس بگیرید، می مجموع تابع با شما تماس؟ 1305 01:02:45,062 --> 01:02:45,895 هانا بلومبرگ: MM. 1306 01:02:45,895 --> 01:02:46,395 میلی متر. 1307 01:02:46,395 --> 01:02:51,253 اگر شما چیزی مانند، مجموع برابر مجموع 2، 5؟ 1308 01:02:51,253 --> 01:02:53,170 >> مخاطبان: آره. 1309 01:02:53,170 --> 01:02:56,465 >> هانا بلومبرگ: من معتقدم که به ارزش مجموع بازنویسی. 1310 01:02:56,465 --> 01:02:59,290 بنابراین یکی دیگر از جالب چیز در مورد جاوا اسکریپت 1311 01:02:59,290 --> 01:03:02,950 این است که یک متغیر تنها می تواند به در یک دسته از انواع مختلف. 1312 01:03:02,950 --> 01:03:03,790 عمل بد. 1313 01:03:03,790 --> 01:03:06,280 شما باید چیزی نیست مانند آنچه که شما فقط می گفت. 1314 01:03:06,280 --> 01:03:10,240 >> اما در C، اگر من قرار است به یک عدد صحیح برابر، 1315 01:03:10,240 --> 01:03:13,570 ما می دانیم که آن را هرگز رفتن به تبدیل شدن به یک رشته است. 1316 01:03:13,570 --> 01:03:15,670 این مورد در جاوا اسکریپت است. 1317 01:03:15,670 --> 01:03:17,770 آره، سوال خوب است. 1318 01:03:17,770 --> 01:03:20,151 هر چیز دیگری؟ 1319 01:03:20,151 --> 01:03:20,650 خیلی خوب. 1320 01:03:20,650 --> 01:03:21,850 انجام همه درست در زمان. 1321 01:03:21,850 --> 01:03:23,050 نگه داشتن رفتن. 1322 01:03:23,050 --> 01:03:25,200 خیلی خوب. 1323 01:03:25,200 --> 01:03:27,780 >> اگر ما در یک آرایه نگاه در جاوا اسکریپت، در اینجا 1324 01:03:27,780 --> 01:03:30,250 یک مثال سریع از آرایه ای از رشته. 1325 01:03:30,250 --> 01:03:31,967 و آرایه ها به صورت پویا می تواند رشد کند. 1326 01:03:31,967 --> 01:03:33,675 آنها یک ندارد اندازه ثابت به همان شیوه 1327 01:03:33,675 --> 01:03:37,990 که آنها در C. انجام ما می توانید دسترسی به عناصر تنها با براکت مربع است. 1328 01:03:37,990 --> 01:03:41,720 >> که به نظر می رسد بسیاری مانند PHP و بسیاری مانند C، که در آن می توان گفت، در این مورد، 1329 01:03:41,720 --> 01:03:48,360 اگر من می خواستم کلمه جاوا اسکریپت، من می خواهم انجام ARR براکت با 0، 1، 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 و پس از آن اگر شما در C به یاد داشته باشید هنگامی که ما می خواستم به طول یک آرایه، 1332 01:03:55,390 --> 01:03:56,820 آن را واقعا آزار دهنده بود. 1333 01:03:56,820 --> 01:03:58,460 اما در جاوا اسکریپت، فوق العاده آسان است. 1334 01:03:58,460 --> 01:03:59,910 همه ما، .length. 1335 01:03:59,910 --> 01:04:01,120 آن را می دهد طول. 1336 01:04:01,120 --> 01:04:01,892 خودشه. 1337 01:04:01,892 --> 01:04:03,140 >> رسید که ساده است. 1338 01:04:03,140 --> 01:04:05,306 >> هانا بلومبرگ: بله، باعث می شود زندگی شما را بسیار آسان تر است. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK، object-- وجود ندارد. 1341 01:04:11,560 --> 01:04:15,480 اشیاء در احساس جاوا اسکریپت بسیاری مانند ساختمانها در C 1342 01:04:15,480 --> 01:04:18,280 و آرایه های انجمنی در PHP. 1343 01:04:18,280 --> 01:04:20,270 بنابراین آنچه که ما را دیده ام بسیاری از JSON است که 1344 01:04:20,270 --> 01:04:23,150 مخفف JavaScript Object Notation انجام. 1345 01:04:23,150 --> 01:04:25,550 و آن را اساسا یک راه از ساختار داده های ما. 1346 01:04:25,550 --> 01:04:27,880 >> بنابراین اجازه دهید یک مثال را مشاهده کنید، احتمالا ساده ترین. 1347 01:04:27,880 --> 01:04:32,540 بنابراین در اینجا یک مثال از یک شی که در فروشگاه کلاس، CS50. 1348 01:04:32,540 --> 01:04:37,790 و وقتی که من می گویند کلاس، منظور من البته، like-- نمی آره، البته، CS50. 1349 01:04:37,790 --> 01:04:40,730 و شما خواهید دید که همه چیز را در شی 1350 01:04:40,730 --> 01:04:43,526 در حال رفتن به مهار شود در آکولاد. 1351 01:04:43,526 --> 01:04:48,260 >> و ما شروع به معاشرت نام فیلد و یا کلید های با مقادیر مختلف. 1352 01:04:48,260 --> 01:04:52,920 بنابراین شما می توانید شروع به دیدن چگونه این نوع از احساس می کند مانند یک آرایه انجمنی در PHP. 1353 01:04:52,920 --> 01:04:57,450 بنابراین ما قصد داریم به معاشرت این زمینه و یا نام کلید، البته، با رشته، 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> ما در حال رفتن به یک مربی. 1356 01:04:59,940 --> 01:05:00,940 ما در حال رفتن به TFS. 1357 01:05:00,940 --> 01:05:05,240 ما در حال رفتن به تعدادی از psets و ما قصد داریم به ثبت کرده اند. 1358 01:05:05,240 --> 01:05:10,720 و یک چیز سرد به توجه داشته باشید همه است این چیزها انواع مختلف، 1359 01:05:10,720 --> 01:05:12,020 و این کاملا خوب است. 1360 01:05:12,020 --> 01:05:15,330 >> این خوب است برای یک شی، در واقع، آن را احتمالا برای یک شی انتظار می رود 1361 01:05:15,330 --> 01:05:19,620 به ترکیبی از رشته و اعداد و booleans و آرایه 1362 01:05:19,620 --> 01:05:23,420 و هر چیز دیگری که شما ممکن است می خواهم به داخل جسم خود را داشته باشد. 1363 01:05:23,420 --> 01:05:28,570 و توجه داشته باشید که این در حال رفتن به نام و یا از کلید، و سپس ما فقط 1364 01:05:28,570 --> 01:05:30,300 تنظیم آن را با روده بزرگ کمی برابر است. 1365 01:05:30,300 --> 01:05:32,015 >> مخاطبان: دقیقا چه معنی JSON؟ 1366 01:05:32,015 --> 01:05:33,890 هانا بلومبرگ: چه دقیقا به این معنا JSON؟ 1367 01:05:33,890 --> 01:05:36,470 JSON فقط برای غرفه JavaScript Object Notation انجام. 1368 01:05:36,470 --> 01:05:38,430 این فقط یک راه قالب بندی است. 1369 01:05:38,430 --> 01:05:40,040 آره. 1370 01:05:40,040 --> 01:05:41,800 این یک راه قالب بندی داده های ما است. 1371 01:05:41,800 --> 01:05:43,620 >> در C، آن را ساختمانها. 1372 01:05:43,620 --> 01:05:45,800 در پی اچ پی، آن را آرایه های انجمنی. 1373 01:05:45,800 --> 01:05:47,120 در جاوا اسکریپت، ما باید اشیاء. 1374 01:05:47,120 --> 01:05:48,969 >> مخاطبان: بنابراین CS50 یک شی؟ 1375 01:05:48,969 --> 01:05:51,010 هانا بلومبرگ: CS50 است شی در این مورد. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 در حال حاضر، چگونه ما در واقع دسترسی این زمینه ها و یا تغییر این زمینه. 1378 01:05:57,880 --> 01:06:03,920 برای مثال، فرض ما تصمیم گرفت که شما می خواستم یکی کمتر pset این ترم. 1379 01:06:03,920 --> 01:06:06,300 به جای نه، ما فقط رفتن به هشت. 1380 01:06:06,300 --> 01:06:08,240 چگونه تغییر خواهد کرد که ما؟ 1381 01:06:08,240 --> 01:06:09,436 >> اوه، راه اشتباه است. 1382 01:06:09,436 --> 01:06:11,060 دو راه که ما می توانیم این کار را انجام وجود دارد. 1383 01:06:11,060 --> 01:06:13,490 شماره یک است با نقطه نماد و عدد دو 1384 01:06:13,490 --> 01:06:15,750 با علامت کروشه مربع است. 1385 01:06:15,750 --> 01:06:19,720 بنابراین، برای مثال، اگر من برای تغییر و یا دسترسی می خواستم 1386 01:06:19,720 --> 01:06:26,820 زمینه psets در جسم CS50 ما، آنچه من می خواهم انجام CS50.psets است، 1387 01:06:26,820 --> 01:06:30,770 پس به نام نقطه شی نام این زمینه و یا کلید. 1388 01:06:30,770 --> 01:06:37,120 >> بسیار مشابه، آن را دقیقا معادل به انجام CS50، و پس از آن 1389 01:06:37,120 --> 01:06:42,050 در پرانتز مربع، psets. 1390 01:06:42,050 --> 01:06:42,837 خنک؟ 1391 01:06:42,837 --> 01:06:44,298 آره. 1392 01:06:44,298 --> 01:06:47,707 >> مخاطبان: بنابراین JSON است از لحاظ فنی جاوا اسکریپت هنوز هم، 1393 01:06:47,707 --> 01:06:51,814 حتی اگر در psets ما آن جدا کردن [نامفهوم]؟ 1394 01:06:51,814 --> 01:06:52,730 هانا بلومبرگ: حتما. 1395 01:06:52,730 --> 01:06:56,290 بنابراین سوال این است، جاوا اسکریپت و JSON معادل؟ 1396 01:06:56,290 --> 01:07:00,750 بنابراین JSON نماد است، اساسا راه است که ما نوشتن 1397 01:07:00,750 --> 01:07:02,700 یک شی از جاوا اسکریپت. 1398 01:07:02,700 --> 01:07:05,190 به طوری که آنها همان دقیقا نمی کند. 1399 01:07:05,190 --> 01:07:08,950 >> من می خواهم بگویم جاوا اسکریپت، وجود دارد اشیاء در جاوا اسکریپت می باشد. 1400 01:07:08,950 --> 01:07:12,590 JSON کسانی که اشیاء را می گیرد و آنها را چاپ و نمایش آنها 1401 01:07:12,590 --> 01:07:15,160 و یا آنها را در یک راه خوب ذخیره می کند. 1402 01:07:15,160 --> 01:07:18,110 بنابراین JSON است برنامه نویسی زبان راه است که جاوا اسکریپت است. 1403 01:07:18,110 --> 01:07:20,900 این فقط نماد برای این اشیاء ما در جاوا اسکریپت. 1404 01:07:20,900 --> 01:07:21,400 آره. 1405 01:07:21,400 --> 01:07:24,144 >> مخاطبان: بنابراین آنچه که دقیقا [نامفهوم] کامل است؟ 1406 01:07:24,144 --> 01:07:25,060 هانا بلومبرگ: حتما. 1407 01:07:25,060 --> 01:07:27,727 بنابراین این در واقع هیچ کاری نمی کند. 1408 01:07:27,727 --> 01:07:28,935 این فقط یک راه برای دسترسی به. 1409 01:07:28,935 --> 01:07:31,393 بنابراین اجازه دهید می گویند که ما می خواست برای تغییر تعدادی از مجموعه های مشکل 1410 01:07:31,393 --> 01:07:32,450 9-8. 1411 01:07:32,450 --> 01:07:34,383 آنچه که ما انجام است انجام کاری مانند CS50.psets = 8؛. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> آره، سوال بزرگ. 1414 01:07:39,400 --> 01:07:40,733 این فقط نشان می دهد نحو شما. 1415 01:07:40,733 --> 01:07:43,620 در واقع انجام هر کاری مفید است. 1416 01:07:43,620 --> 01:07:46,085 هر گونه سؤال؟ 1417 01:07:46,085 --> 01:07:48,210 در حال حرکت حق همراه است. 1418 01:07:48,210 --> 01:07:51,960 >> بنابراین اجازه دهید یک مثال از نحوه نگاه جاوا اسکریپت کار می کند زیرا من به شما گفته آن 1419 01:07:51,960 --> 01:07:55,170 می کند تمام این کارهای جالب و اجازه می دهد تا ما را به تغییر صفحات وب است. 1420 01:07:55,170 --> 01:07:56,970 اجازه دهید در واقع آن را در عمل ببینید. 1421 01:07:56,970 --> 01:07:59,850 بنابراین، برای مثال، این فایل HTML. 1422 01:07:59,850 --> 01:08:04,350 >> و چیزی که من می خواهم شما را به تمرکز بر روی است این برچسب خاص، است که یک دکمه، 1423 01:08:04,350 --> 01:08:06,182 با این شناسه search_button. 1424 01:08:06,182 --> 01:08:08,670 فقط بر روی صفحه است. 1425 01:08:08,670 --> 01:08:10,690 بنابراین در حال حاضر بیایید ببینید که چه ما در واقع می توانید انجام دهید. 1426 01:08:10,690 --> 01:08:12,560 >> خب، فرض کنید وقتی شما با کلیک بر آن دکمه، 1427 01:08:12,560 --> 01:08:16,010 ما می خواهیم را به alert-- شما دکمه کلیک شده است. 1428 01:08:16,010 --> 01:08:17,840 بیایید ببینید که چگونه ما می توانیم این کار را انجام. 1429 01:08:17,840 --> 01:08:23,869 بنابراین window.onload-- این چیزی نیست که شما در کلاس دیده می شود، در نتیجه 1430 01:08:23,869 --> 01:08:26,180 نمی خواهد نیاز به آن را می دانم برای مسابقه. 1431 01:08:26,180 --> 01:08:33,660 اما این اساسا می گوید، OK، پاسخ این تابع هنگامی که بارهای پنجره. 1432 01:08:33,660 --> 01:08:35,080 >> به طوری که فقط نوع کد راه اندازی. 1433 01:08:35,080 --> 01:08:36,390 نگران نباشید خیلی در مورد آن. 1434 01:08:36,390 --> 01:08:39,170 چه من می خواهم شما را به تمرکز بر روی در اینجا است. 1435 01:08:39,170 --> 01:08:44,020 ما می گویند VAR searchButton برابر کد document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> به طوری که شما ممکن است حدس بزنید، چه می کند این است آن را می گوید، 1437 01:08:46,450 --> 01:08:50,920 OK، به پیدا کردن عنصر با search_button ID. 1438 01:08:50,920 --> 01:08:52,790 و در حال حاضر ما که عنصر واقعی و من 1439 01:08:52,790 --> 01:08:56,279 رفتن به ذخیره آن در یک searchButton متغیر است. 1440 01:08:56,279 --> 01:09:00,651 و در حال حاضر ما در واقع می توانید استفاده کنید که عنصر و آن را تغییر دهید، یا ارزش های آن دسترسی داشته باشید، 1441 01:09:00,651 --> 01:09:01,359 چیزهایی مثل آن. 1442 01:09:01,359 --> 01:09:04,649 ما در واقع می تواند به شروع تعامل با صفحه وب. 1443 01:09:04,649 --> 01:09:10,330 >> بنابراین در اینجا من می گویم، خوب، حالا که من آن را آن دکمه، زمانی که آن را کلیک، 1444 01:09:10,330 --> 01:09:12,859 این تابع ناشناس پاسخ. 1445 01:09:12,859 --> 01:09:16,811 پس این است که ناشناس توابع مفید است. 1446 01:09:16,811 --> 01:09:18,060 و چه تابع انجام دهد؟ 1447 01:09:18,060 --> 01:09:20,529 خوب، آن را فقط به این فرا می خواند تابع هشدار و می گوید، 1448 01:09:20,529 --> 01:09:22,910 شما دکمه جستجو کلیک. 1449 01:09:22,910 --> 01:09:29,670 >> بنابراین چه اتفاقی خواهد افتاد اگر من به هر کجا بروید این HTML زندگی می کند و من دکمه کلیک کنید، 1450 01:09:29,670 --> 01:09:33,729 من یک هشدار کمی فانتزی دریافت کنید که می گوید شما دکمه کلیک. 1451 01:09:33,729 --> 01:09:40,710 بنابراین همه چیز را به تمرکز بر روی here-- کد document.getElementById 1452 01:09:40,710 --> 01:09:44,960 می شود یک HTML خاص عنصر با ID داده شده است. 1453 01:09:44,960 --> 01:09:48,529 و در حال حاضر ما می توانیم راه وقتی چه اتفاقی می افتد 1454 01:09:48,529 --> 01:09:50,702 که عنصر خاص کلیک. 1455 01:09:50,702 --> 01:09:52,670 >> مخاطبان: ما برای قرار دادن همه که در؟ 1456 01:09:52,670 --> 01:09:53,162 >> هانا بلومبرگ: با عرض پوزش. 1457 01:09:53,162 --> 01:09:55,130 >> مخاطبان: آیا ما به از لحاظ جسمی کد همه از آن؟ 1458 01:09:55,130 --> 01:09:56,340 >> هانا بلومبرگ: آیا ما باید به از لحاظ جسمی کد همه از آن؟ 1459 01:09:56,340 --> 01:09:56,839 بله. 1460 01:09:56,839 --> 01:09:58,120 است این نوع از آزار دهنده نیست؟ 1461 01:09:58,120 --> 01:10:00,032 این تعداد زیادی از کد است. 1462 01:10:00,032 --> 01:10:01,574 >> مخاطبان: شما می توانید چیزی وارد کنید. 1463 01:10:01,574 --> 01:10:02,532 هانا بلومبرگ: درست است. 1464 01:10:02,532 --> 01:10:03,610 ما می تواند چیزی استفاده کنید. 1465 01:10:03,610 --> 01:10:08,140 و در particular-- آه، آن را به من گفتن من برای یاد بخش. 1466 01:10:08,140 --> 01:10:11,061 به طور خاص، اجازه دهید استفاده از کتابخانه جی کوئری، 1467 01:10:11,061 --> 01:10:13,060 چرا که واقعا بود طولانی و واقعا آزار دهنده است 1468 01:10:13,060 --> 01:10:16,860 و من می خواهم که قادر به آن را ساده و آن را کوتاه تر و آسان تر به نوشتن. 1469 01:10:16,860 --> 01:10:19,810 >> بنابراین jQuery یک کتابخانه جاوا اسکریپت است. 1470 01:10:19,810 --> 01:10:24,930 بنابراین جاوا اسکریپت برنامه نویسی است زبان؛ jQuery یک کتابخانه است. 1471 01:10:24,930 --> 01:10:27,190 و آن را می سازد یک دسته از چیزهای ساده تر است. 1472 01:10:27,190 --> 01:10:33,230 این باعث می شود در حال تغییر و رفتن در سراسر یک سند HTML بسیار ساده تر. 1473 01:10:33,230 --> 01:10:35,030 >> این باعث می شود دست زدن به حوادث آسان تر است. 1474 01:10:35,030 --> 01:10:37,580 این باعث می شود انیمیشن ساده تر و آن را می سازد آژاکس آسان تر است. 1475 01:10:37,580 --> 01:10:40,140 بنابراین اجازه دهید به دو پرش کسانی که همه چیز در حال حاضر. 1476 01:10:40,140 --> 01:10:40,900 ببخشید. 1477 01:10:40,900 --> 01:10:42,620 قبل از اینکه ما را انجام دهید، برخی از نحو اساسی است. 1478 01:10:42,620 --> 01:10:46,870 >> این چیزی است که بسیاری از تماس به کتابخانه جی کوئری شبیه. 1479 01:10:46,870 --> 01:10:50,520 ما با استفاده از این دلار sign-- هیچ نشانه اتصال به پی اچ پی، 1480 01:10:50,520 --> 01:10:56,030 فقط inconvenient-- نام یک انتخاب، نقطه، و پس از آن عمل است. 1481 01:10:56,030 --> 01:10:58,860 بنابراین اجازه دهید که برخی نمونه های بتن از آن. 1482 01:10:58,860 --> 01:11:02,980 >> بنابراین این در واقع همان است کد اسلاید از رویداد. 1483 01:11:02,980 --> 01:11:08,740 بنابراین این مدت، چیزی زشت می شود این بسیار بهتر، چیزی کوچکتر است. 1484 01:11:08,740 --> 01:11:10,370 بنابراین سعی کنید برای شکستن این پایین. 1485 01:11:10,370 --> 01:11:17,090 این می گوید، OK، jQuery-- این دلار sign-- جی کوئری، پنجره پیدا کردن من. 1486 01:11:17,090 --> 01:11:18,480 به طوری که انتخاب است. 1487 01:11:18,480 --> 01:11:21,800 >> آن بارهای، پاسخ این تابع. 1488 01:11:21,800 --> 01:11:23,880 طوری که همه چیز در داخل است. 1489 01:11:23,880 --> 01:11:24,380 باشه. 1490 01:11:24,380 --> 01:11:25,740 تا کنون خیلی خوب؟ 1491 01:11:25,740 --> 01:11:26,750 خیلی خوب. 1492 01:11:26,750 --> 01:11:32,970 >> در حال حاضر، جی کوئری، من پیدا چیزی که با search_button ID. 1493 01:11:32,970 --> 01:11:36,090 و آنچه در آن است کلیک، این تابع پاسخ. 1494 01:11:36,090 --> 01:11:37,900 و سپس این تابع دقیقا مثل هم. 1495 01:11:37,900 --> 01:11:41,052 فقط یک کمی از هشدار، شما دکمه جستجو کلیک. 1496 01:11:41,052 --> 01:11:42,650 >> پس از آن واقعا خوب است. 1497 01:11:42,650 --> 01:11:46,260 واقعا متراکم می شود و ساده کد ما. 1498 01:11:46,260 --> 01:11:49,030 چگونه نداشتم که آن search_button ID است 1499 01:11:49,030 --> 01:11:50,960 و search_button کلاس را دوست ندارد؟ 1500 01:11:50,960 --> 01:11:52,024 >> مخاطبان: هشتگ؟ 1501 01:11:52,024 --> 01:11:52,940 هانا بلومبرگ: آره. 1502 01:11:52,940 --> 01:11:56,450 این نماد هش، آن را درست مثل CSS. 1503 01:11:56,450 --> 01:12:00,080 بنابراین به یاد داشته باشید، با CSS، زمانی که ما می خواستم چیزی را انتخاب کنید با ID، 1504 01:12:00,080 --> 01:12:01,590 ما علامت پوند استفاده می شود. 1505 01:12:01,590 --> 01:12:05,400 و هنگامی که ما می خواستیم به انتخاب چیزی با کلاس، ما با استفاده از نقطه. 1506 01:12:05,400 --> 01:12:06,870 عالی. 1507 01:12:06,870 --> 01:12:08,230 را حس؟ 1508 01:12:08,230 --> 01:12:11,500 بنابراین جی کوئری است که به قرار فقط زندگی ما را آسان تر است. 1509 01:12:11,500 --> 01:12:12,000 آره. 1510 01:12:12,000 --> 01:12:15,660 >> مخاطبان: بنابراین من کمی گیج هستم به عنوان چگونه تابع ناشناس کار می کند. 1511 01:12:15,660 --> 01:12:19,027 آیا شما این anonymouse نام تابع، تابع؟ 1512 01:12:19,027 --> 01:12:20,594 چگونه آن را به نام است؟ 1513 01:12:20,594 --> 01:12:21,510 هانا بلومبرگ: حتما. 1514 01:12:21,510 --> 01:12:25,812 بنابراین تابع فقط یک کلمه کلیدی است که می گوید: من در مورد به تعریف یک تابع است. 1515 01:12:25,812 --> 01:12:26,520 مخاطبان: آه، باشد. 1516 01:12:26,520 --> 01:12:27,353 هانا بلومبرگ: OK؟ 1517 01:12:27,353 --> 01:12:32,120 و سپس ما آن را به عنوان یک رمز عبور بحث to-- اجازه دهید 1518 01:12:32,120 --> 01:12:37,040 این one-- داخلی به تابع را کلیک کنید. 1519 01:12:37,040 --> 01:12:39,420 پس بله، به طوری که تابع، این تابع ناشناس، 1520 01:12:39,420 --> 01:12:40,910 استدلال واقعی می گردد. 1521 01:12:40,910 --> 01:12:43,632 بنابراین در جاوا اسکریپت به یاد داشته باشید، ما می توانید توابع به عنوان مقادیر را درمان کنند. 1522 01:12:43,632 --> 01:12:44,340 مخاطبان: آه، باشد. 1523 01:12:44,340 --> 01:12:45,256 هانا بلومبرگ: آره. 1524 01:12:45,256 --> 01:12:46,035 من دوست دارم که "آه." 1525 01:12:46,035 --> 01:12:47,490 خوب. 1526 01:12:47,490 --> 01:12:49,915 سوال دیگر؟ 1527 01:12:49,915 --> 01:12:50,505 زمان؟ 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA: خوب. 1529 01:12:51,380 --> 01:12:52,760 خوب است. 1530 01:12:52,760 --> 01:12:54,210 >> هانا بلومبرگ: بسیار معروف است. 1531 01:12:54,210 --> 01:12:55,720 برخی از jQuery سریع مفید است. 1532 01:12:55,720 --> 01:12:57,559 من قصد ندارم به در تمام طول این. 1533 01:12:57,559 --> 01:12:59,350 این اسلاید خواهد بود تا آنلاین کمی 1534 01:12:59,350 --> 01:13:02,040 بعد، بنابراین شما می توانید آن را کمی بعد. 1535 01:13:02,040 --> 01:13:07,120 اما اساسا، به طور کلی الگوی نگه می دارد که در آن ما می گویند، 1536 01:13:07,120 --> 01:13:11,510 OK، هی، جی کوئری، در اینجا من انتخاب و پس از آن در اینجا یک عمل است. 1537 01:13:11,510 --> 01:13:15,940 و شما می توانید چیزهایی مانند دسترسی انجام ارزش یک فرم، دسترسی به برخی از HTML، 1538 01:13:15,940 --> 01:13:19,195 کنترل آنچه اتفاق می افتد زمانی که کاربر تسلیم فرم، مانند آن. 1539 01:13:19,195 --> 01:13:20,106 بله. 1540 01:13:20,106 --> 01:13:22,090 >> مخاطبان: بنابراین در آزمون، ما نیاز به رفتن به 1541 01:13:22,090 --> 01:13:25,066 می دانم که بسیاری از کاملا مستندات jQuery. 1542 01:13:25,066 --> 01:13:31,018 با توجه به این که ما کپی / چسباندن جی کوئری اسناد و مدارک به بازی ورق ما، 1543 01:13:31,018 --> 01:13:32,506 جایی که خط کشیده شده؟ 1544 01:13:32,506 --> 01:13:33,957 مانند چگونه بسیاری از ما نیاز به دانستن؟ 1545 01:13:33,957 --> 01:13:35,290 هانا بلومبرگ: سوال بسیار خوبی. 1546 01:13:35,290 --> 01:13:37,765 سوال این است که اساسا با توجه به اینکه شما 1547 01:13:37,765 --> 01:13:41,330 می توانید مستندات jQuery دسترسی پیدا کنید در طول آزمون، چقدر باید به شما 1548 01:13:41,330 --> 01:13:41,830 دانستن؟ 1549 01:13:41,830 --> 01:13:45,540 ما انتظار نداریم که شما می آیند تا با برخی از تابع تصادفی 1550 01:13:45,540 --> 01:13:47,240 که ما شما را به گوگل انتظار می رود. 1551 01:13:47,240 --> 01:13:52,930 >> چیزهایی که بازی منصفانه است من می گویند فقط نوع نحو به طور کلی، 1552 01:13:52,930 --> 01:13:58,310 قادر بودن به توسط ID را انتخاب کنید و توسط class-- بنابراین درست مانند CSS. 1553 01:13:58,310 --> 01:14:01,876 و سپس توابع واقعی خودش همیشه، ما به احتمال زیاد به شما بگویم. 1554 01:14:01,876 --> 01:14:02,376 آره. 1555 01:14:02,376 --> 01:14:05,591 >> مخاطبان: بنابراین زمانی که شما انتخاب توسط کلاس می نقطه باشد. 1556 01:14:05,591 --> 01:14:06,840 هانا بلومبرگ: بله، دقیقا. 1557 01:14:06,840 --> 01:14:07,340 خوب است. 1558 01:14:07,340 --> 01:14:10,461 زمانی که شما با کلاس را انتخاب کنید، آن را به جای علامت پوند نقطه است. 1559 01:14:10,461 --> 01:14:10,960 بله. 1560 01:14:10,960 --> 01:14:12,710 >> مخاطبان: آیا شما به بیش از تفاوت 1561 01:14:12,710 --> 01:14:14,310 بین انتخاب های ID و کلاس؟ 1562 01:14:14,310 --> 01:14:14,560 >> هانا بلومبرگ: حتما. 1563 01:14:14,560 --> 01:14:17,510 تفاوت بین انتخاب ID و انتخاب توسط کلاس. 1564 01:14:17,510 --> 01:14:20,685 بنابراین به عنوان ماریا گفت: کمی پیشتر، وجود دارد 1565 01:14:20,685 --> 01:14:26,280 تنها می توانید یک عنصر HTML شود با ID داده می شود، در حالی که کلاس، 1566 01:14:26,280 --> 01:14:29,740 آن را به ما اجازه می دهد تا به گروه یک دسته عناصر مختلف با هم، 1567 01:14:29,740 --> 01:14:34,300 بنابراین چیزهایی که مرتبط هستند، اما نه دقیقا همان است. 1568 01:14:34,300 --> 01:14:35,685 آیا این پاسخ به این سوال؟ 1569 01:14:35,685 --> 01:14:36,200 عالی. 1570 01:14:36,200 --> 01:14:37,194 بله. 1571 01:14:37,194 --> 01:14:40,680 >> رسید چه اگر شما چند چیزهایی که در همان کلاس است؟ 1572 01:14:40,680 --> 01:14:42,150 >> هانا بلومبرگ: چه اتفاقی می افتد اگر شما همه چیز های متعدد است که 1573 01:14:42,150 --> 01:14:43,280 هستند همان کلاس؟ 1574 01:14:43,280 --> 01:14:45,829 بنابراین، برای مثال، اگر ما فقط با استفاده از خالص جاوا اسکریپت، 1575 01:14:45,829 --> 01:14:48,120 ما که چیزی شبیه به انجام document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 و پس از آن چه که در واقع نشانی بازده آرایه ای از عناصر است. 1578 01:14:56,320 --> 01:14:59,517 >> و شما باید به هم تکرار بیش از آنها و یا پیدا کردن که شما می خواهید. 1579 01:14:59,517 --> 01:15:01,350 آن را به دادن شما یک عنصر واحد. 1580 01:15:01,350 --> 01:15:03,450 آن را به شما بدهد آرایه ای از عناصر. 1581 01:15:03,450 --> 01:15:05,280 درخواست بزرگ است. 1582 01:15:05,280 --> 01:15:07,700 هر چیز دیگری؟ 1583 01:15:07,700 --> 01:15:09,520 عالی. 1584 01:15:09,520 --> 01:15:12,860 >> بنابراین من فکر می کنم اگر شما با آن آشنا هستید هر جی کوئری شما را دیدم در pset، 1585 01:15:12,860 --> 01:15:15,600 شما باید خوب به آن بروید. 1586 01:15:15,600 --> 01:15:16,325 سوال؟ 1587 01:15:16,325 --> 01:15:17,610 اوه، نه. 1588 01:15:17,610 --> 01:15:18,859 من واقعا برای تدریس. 1589 01:15:18,859 --> 01:15:19,358 آروم باش. 1590 01:15:19,358 --> 01:15:20,035 آن را خوب می شود. 1591 01:15:20,035 --> 01:15:20,660 من وجود دارد را دریافت کنید. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> اجازه دهید در مورد آژاکس صحبت کنید. 1594 01:15:26,870 --> 01:15:31,350 بنابراین آژاکس است برای رفتن به a-- خوب، اجازه دهید با آنچه از آن می ایستد شروع می شود. 1595 01:15:31,350 --> 01:15:32,350 این مخفف است. 1596 01:15:32,350 --> 01:15:35,855 آن را برای آسنکرون می ایستد جاوا اسکریپت و XML. 1597 01:15:35,855 --> 01:15:39,800 و XML است که اساسا در حال رفتن به [نامفهوم] با یک نوع از داده های ما. 1598 01:15:39,800 --> 01:15:42,100 اما ما در واقع XML استفاده نمی شود. 1599 01:15:42,100 --> 01:15:43,430 در عوض، ما فقط استفاده از JSON. 1600 01:15:43,430 --> 01:15:48,350 >> بنابراین اساسا، آن را برخی از data-- ناهمزمان، جاوا اسکریپت، و داده ها، 1601 01:15:48,350 --> 01:15:50,040 در این مورد، JSON. 1602 01:15:50,040 --> 01:15:52,820 و هدف ما، همچنان که اشاره شد کمی قبل از آن، 1603 01:15:52,820 --> 01:15:56,880 است که قادر به ایجاد یک درخواست، درخواست کرده اند که انجام 1604 01:15:56,880 --> 01:16:00,700 چیزی خود را در پس زمینه، اما ادامه 1605 01:16:00,700 --> 01:16:02,550 انجام هر چه ما قصد داشتند برای انجام. 1606 01:16:02,550 --> 01:16:06,650 و سپس هنگامی که این اطلاعات می باشد آماده، سپس ما آن را ترکیب کنید. 1607 01:16:06,650 --> 01:16:08,470 >> بنابراین اجازه دهید این را ببینید در واقع به نظر می رسد. 1608 01:16:08,470 --> 01:16:11,210 و این، شما باید کمی آشنا 1609 01:16:11,210 --> 01:16:13,680 از pset8، فقط یکی از شما در تبدیل شده است. 1610 01:16:13,680 --> 01:16:16,200 بنابراین در اینجا یک جی کوئری معتبر تابع که ما ممکن است 1611 01:16:16,200 --> 01:16:18,250 می خواهم به about-- این علامت دلار مطمئن شوید. 1612 01:16:18,250 --> 01:16:21,500 بنابراین آن را می گوید تابع jQuery، .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> و آنچه از این تابع می کند آن است یک URL و برخی از parameters-- طول می کشد 1614 01:16:25,020 --> 01:16:28,000 بنابراین من فکر می کنم در مورد از pset8، آن را مانند، 1615 01:16:28,000 --> 01:16:33,520 آدرس URL articles.php بود و پارامترهای رفتن = برخی از کد پستی بود. 1616 01:16:33,520 --> 01:16:41,580 و آن را می گوید، OK، به یک درخواست به این URL با پارامترهای داده شده است. 1617 01:16:41,580 --> 01:16:43,480 و این فقط اتفاق می افتد. 1618 01:16:43,480 --> 01:16:47,730 >> هنگامی که آن را پس از اتمام، آن را هم رفتن به موفقیت کامل 1619 01:16:47,730 --> 01:16:49,370 و یا آن را به شکست است. 1620 01:16:49,370 --> 01:16:53,480 بنابراین این معادل است پاسخ راب و از او بخواهید برای انجام کاری. 1621 01:16:53,480 --> 01:17:00,260 و پس از آن هنگامی که او می خواند، او هم رفتن به می گویند من انجام می شود و یا من شکست خورده است. 1622 01:17:00,260 --> 01:17:04,030 >> بنابراین در مورد که در آن شما انجام می شود، به شما می گویند، OK، من انجام می شود. 1623 01:17:04,030 --> 01:17:05,980 و سپس شما این تابع پاسخ. 1624 01:17:05,980 --> 01:17:08,915 در این مورد، آن را به یک تابع طول می کشد که برخی از اطلاعات. 1625 01:17:08,915 --> 01:17:12,890 یکی از ما معمولا در مورد مراقبت داده است، داده هایی را که ما در واقع بازگردانده شدند 1626 01:17:12,890 --> 01:17:15,900 به عنوان یک نتیجه از تماس .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> و شما می توانید چیزی را با آن انجام دهید. 1628 01:17:17,470 --> 01:17:23,670 بنابراین در مورد pset8، ما آن را به عنوان یک لیست نمایش داده شود. 1629 01:17:23,670 --> 01:17:29,050 شکست است برای رفتن به یک تابع است که به نام اگر درخواست با شکست مواجه 1630 01:17:29,050 --> 01:17:30,450 به هر دلیلی. 1631 01:17:30,450 --> 01:17:35,104 و در مورد pset8، ما فقط آن را console.log. 1632 01:17:35,104 --> 01:17:36,020 هر گونه سوال در آن؟ 1633 01:17:36,020 --> 01:17:36,300 آره. 1634 01:17:36,300 --> 01:17:39,633 >> مخاطبان: آیا ما می توانیم فقط با استفاده از تابع تتا به جای تابع، textStatus، jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 هانا بلومبرگ: حتما. 1637 01:17:44,380 --> 01:17:46,713 بنابراین من در pset فکر می کنم، ما فقط دیدم تابع داده است. 1638 01:17:46,713 --> 01:17:48,700 بنابراین آن را فقط the-- بله، خوب. 1639 01:17:48,700 --> 01:17:50,510 این چیزی است که ما در pset دیدم. 1640 01:17:50,510 --> 01:17:51,480 این کاملا خوب است. 1641 01:17:51,480 --> 01:17:54,210 >> اینها فقط اگر شما می خواهید به جلو کردن اطلاعات بیشتر، 1642 01:17:54,210 --> 01:17:57,190 این چیزایی هستند که شما می توانید از .getJSON دریافت کنید. 1643 01:17:57,190 --> 01:17:59,040 سوال خوبی بود. 1644 01:17:59,040 --> 01:17:59,706 هر چیز دیگری؟ 1645 01:17:59,706 --> 01:18:00,206 آره. 1646 01:18:00,206 --> 01:18:01,787 >> مخاطبان: بنابراین .getJSON آژاکس است؟ 1647 01:18:01,787 --> 01:18:02,620 هانا بلومبرگ: OK. 1648 01:18:02,620 --> 01:18:05,700 بنابراین این نوع از بخشی از مشکل است. 1649 01:18:05,700 --> 01:18:12,390 این یک تابع جی کوئری است که اجازه می دهد تا است شما را به انجام تماس های ناهمزمان. 1650 01:18:12,390 --> 01:18:16,080 و کسانی که تماس موتورهای آسنکرون، برق که چه ما شده است با اشاره به عنوان آژاکس. 1651 01:18:16,080 --> 01:18:16,850 آره. 1652 01:18:16,850 --> 01:18:20,185 که واقعا زمان طولانی من در زمان به از هم جدا زمانی که من یک دانش آموز بود. 1653 01:18:20,185 --> 01:18:21,560 مخاطبان: می توانید بگویید که دوباره؟ 1654 01:18:21,560 --> 01:18:22,476 هانا بلومبرگ: آره. 1655 01:18:22,476 --> 01:18:23,630 می توانم بگویم که دوباره؟ 1656 01:18:23,630 --> 01:18:29,010 این تابع .getJSON، این یک تابع jQuery است. 1657 01:18:29,010 --> 01:18:31,970 و آن را به تماس ناهمزمان. 1658 01:18:31,970 --> 01:18:35,700 و این تماس آسنکرون، ما شده است با اشاره به کسانی که به عنوان آژاکس. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> هر سوال دیگری؟ 1661 01:18:41,872 --> 01:18:43,330 ما فقط یک دقیقه چند باقی مانده است. 1662 01:18:43,330 --> 01:18:45,080 و ماریا رفتن به بسته بندی با امنیت 1663 01:18:45,080 --> 01:18:47,464 و سپس ما در حال رفتن به توان فقط در مورد انجام شده است. 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: بسیار معروف، OK. 1665 01:18:48,630 --> 01:18:54,030 بنابراین این is-- فقط چند را از ثانیه به بیش از این است. 1666 01:18:54,030 --> 01:18:56,750 و این چیزی واقعا بزرگ است. 1667 01:18:56,750 --> 01:18:59,430 و کسی که می تواند به من بگو چرا؟ 1668 01:18:59,430 --> 01:19:05,650 آنچه در جریان است در foo و ممکن است می تواند به طور بالقوه در چیزی بد در نتیجه، 1669 01:19:05,650 --> 01:19:06,770 و آنچه که به نام؟ 1670 01:19:06,770 --> 01:19:07,270 آره. 1671 01:19:07,270 --> 01:19:10,391 مخاطبان: اگر این استدلال که این گذشت در بیش از 12 کاراکتر است، 1672 01:19:10,391 --> 01:19:11,454 آن می تواند سرریز است. 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA: درست است. 1674 01:19:12,370 --> 01:19:14,180 کامل. 1675 01:19:14,180 --> 01:19:15,384 به آن چه گفته می شود؟ 1676 01:19:15,384 --> 01:19:16,300 شما فقط آن را ذکر شده است. 1677 01:19:16,300 --> 01:19:16,840 >> مخاطبان: سرریز بافر. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: آره، سرریز بافر. 1679 01:19:18,381 --> 01:19:21,230 پس این چیزی است که ما به عنوان سرریز بافر مراجعه کنید. 1680 01:19:21,230 --> 01:19:25,500 و ما می بینیم که در داخل تولی، بافر ما، C تعریف، 1681 01:19:25,500 --> 01:19:27,240 با اندازه 12. 1682 01:19:27,240 --> 01:19:32,680 با این حال، در اصلی، ما نمی در همه به هیچ وجه بررسی 1683 01:19:32,680 --> 01:19:36,480 آیا argv1-- به طوری که آرگومان دوم بود. 1684 01:19:36,480 --> 01:19:39,630 ما که آیا بررسی نمی اندازه آن مناسب است. 1685 01:19:39,630 --> 01:19:43,380 >> بنابراین اگر ما یک حال کاربران ویژه مخرب 1686 01:19:43,380 --> 01:19:47,170 که در برخی از این استدلال که بود قرار بیش از 12، و سپس به طور بالقوه 1687 01:19:47,170 --> 01:19:50,850 فراتر از مرزهای که بحث، برخی از کد اجرایی حال 1688 01:19:50,850 --> 01:19:55,570 که او در تلاش بود برای انجام کاری بد با آن؛ پس از این، چه اتفاقی خواهد افتاد، 1689 01:19:55,570 --> 01:19:59,310 از بازگشت نادیده گرفتن آدرس تابع تولی، 1690 01:19:59,310 --> 01:20:04,370 باعث عملکرد به هنگام بازگشت به اجرای این کد. 1691 01:20:04,370 --> 01:20:07,540 و پس از آن همه چیز بد می تواند رخ دهد. 1692 01:20:07,540 --> 01:20:09,850 آیا این حس را به همه؟ 1693 01:20:09,850 --> 01:20:12,424 >> و چگونه می تواند ما را در برابر این محافظت می کند؟ 1694 01:20:12,424 --> 01:20:13,090 هر گونه پیشنهاد؟ 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 در واقع، در داخل به طور بالقوه تولی، چگونه 1697 01:20:21,890 --> 01:20:28,294 می توانید ما را بررسی کنید تا مطمئن شوید که که است که می تواند اتفاق می افتد؟ 1698 01:20:28,294 --> 01:20:33,879 >> مخاطبان: اگر به اندازه 12 فراتر رود، شما می حافظه اضافی اختصاص؟ 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA: پیشنهاد این است، اختصاص حافظه اضافی از اندازه بیش از حد. 1700 01:20:37,170 --> 01:20:39,800 در واقع، ما می توانیم چیزی را انجام بسیار ساده تر از آن نیز هست. 1701 01:20:39,800 --> 01:20:44,870 ما فقط می توانید طول رشته از استدلال این است که وارد شده، 1702 01:20:44,870 --> 01:20:48,590 بررسی کنید که که کمتر است از یا برابر با 12-- 1703 01:20:48,590 --> 01:20:50,790 است که آنچه ما آن را می خواهم به این دلیل که ما نمی خواهیم 1704 01:20:50,790 --> 01:20:52,373 آن را به بیش از مرزهای بافر ما. 1705 01:20:52,373 --> 01:20:55,690 و سپس اگر آن را نمی کند، ما می توانید با این استدلال است. 1706 01:20:55,690 --> 01:21:00,296 و پس از آن اگر آن را، ما در واقع می خواهم به YELLO به طور بالقوه در کاربر. 1707 01:21:00,296 --> 01:21:01,670 اما این است که چگونه ما را انجام دهد که. 1708 01:21:01,670 --> 01:21:02,443 بله. 1709 01:21:02,443 --> 01:21:04,360 >> رسید می توانید توضیح سریع واقعی memcpy؟ 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA: اوه، ببخشید. 1711 01:21:05,443 --> 01:21:06,040 بله. 1712 01:21:06,040 --> 01:21:11,290 Memcpy طول می کشد هر is-- با عرض پوزش، OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy طول می کشد آنچه در نوار، هر آنچه که به تصویب می رسد 1714 01:21:15,850 --> 01:21:18,050 بر روی تولی به عنوان آرگومان خط فرمان. 1715 01:21:18,050 --> 01:21:19,440 طوری که آن را به argv1. 1716 01:21:19,440 --> 01:21:21,420 Argv1 است که به نام نوار در اینجا. 1717 01:21:21,420 --> 01:21:24,453 طوری که آن را به نوار و آن را به کپی آن را به C. 1718 01:21:24,453 --> 01:21:25,402 >> رسید OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: و آن را به copy-- آرگومان سوم فقط اشاره 1720 01:21:28,360 --> 01:21:30,601 به چه مقدار آن را به کپی کنید به ج. 1721 01:21:30,601 --> 01:21:31,142 مخاطبان: آه. 1722 01:21:31,142 --> 01:21:33,030 بنابراین کپی این یکی همه آن را پس از آن. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: آره، آن را کپی کردن همه آن را. 1724 01:21:34,310 --> 01:21:34,810 بله. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 اول، ما مطمئن شوید که نوار است به تهی برابر این دلیل که یک اشاره گر است. 1727 01:21:41,910 --> 01:21:44,680 سپس ما طول رشته از نوار است. 1728 01:21:44,680 --> 01:21:47,530 ما مطمئن شوید که آن را کمتر از یا برابر 12. 1729 01:21:47,530 --> 01:21:50,070 و سپس به دلیل ایم مطمئن ساخته شده، ما در واقع می توانید 1730 01:21:50,070 --> 01:21:53,122 memcpy و مطمئن باشید که این خوب است. 1731 01:21:53,122 --> 01:21:53,705 هر گونه سؤال؟ 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 عالی. 1734 01:21:58,690 --> 01:22:00,400 من دو سوال درست یا نادرست است. 1735 01:22:00,400 --> 01:22:05,470 هر کسی می تواند به من بگو حق دور اگر این درست است یا نادرست؟ 1736 01:22:05,470 --> 01:22:07,460 بله، آن را نادرست است. 1737 01:22:07,460 --> 01:22:07,960 دقیقا. 1738 01:22:07,960 --> 01:22:09,330 هر دو آنها نادرست است. 1739 01:22:09,330 --> 01:22:12,682 بنابراین با استفاده از یک رمز عبور ایده واقعا خوب است هرگز 1740 01:22:12,682 --> 01:22:14,890 چرا که اگر کسی می داند رمز عبور خود، آنها فقط می توانید 1741 01:22:14,890 --> 01:22:16,260 دسترسی به تمام حساب های دیگر خود را. 1742 01:22:16,260 --> 01:22:19,260 و سپس آیکون های انجام هیچ چیز برای اطمینان از امنیت. 1743 01:22:19,260 --> 01:22:24,900 ما باید معمولا برای HTTPS نگاه به جای HTTP و URL. 1744 01:22:24,900 --> 01:22:28,560 >> و برخی از انواع دیگر حملات که ما ذکر کرده ام، 1745 01:22:28,560 --> 01:22:31,390 که دیوید در ذکر کرده است سخنرانی، حملات تزریق SQL. 1746 01:22:31,390 --> 01:22:37,310 ما در حال حاضر شاهد است که اگر ما don't-- تابع پرس و جو CS50 مطمئن می سازد که SQL 1747 01:22:37,310 --> 01:22:39,530 حملات تزریق رخ نمی دهد. 1748 01:22:39,530 --> 01:22:42,640 اما اگر ما با استفاده از CS50 نیست، نقل قول، تمام کردن "در پرس و جو،" 1749 01:22:42,640 --> 01:22:46,830 ما را به مطمئن شوید که ورودی کاربر است که در واقع برخی از SQL 1750 01:22:46,830 --> 01:22:49,670 پرس و جو که باعث می شود همه جدول ما به کاهش یافته 1751 01:22:49,670 --> 01:22:54,070 و یا چیزی بد به اتفاق می افتد با بانک اطلاعاتی ما. 1752 01:22:54,070 --> 01:22:56,790 >> ربودن نشست است نوع دیگری از حمله 1753 01:22:56,790 --> 01:23:05,940 که اتفاق می افتد زمانی که برخی از بد فرد با استفاده از جلسه برخی قربانی 1754 01:23:05,940 --> 01:23:08,740 ID برای دسترسی به اطلاعات ورود به سیستم. 1755 01:23:08,740 --> 01:23:13,620 بنابراین یک مثال بسیار پیش پا افتاده از آن است اگر ما یک کامپیوتر عمومی، 1756 01:23:13,620 --> 01:23:21,120 پس از آن فرد بد در و سپس از سیستم آنها کوکی هایی که ذخیره شده است. 1757 01:23:21,120 --> 01:23:23,380 و کوکی ها برای جلسه را تغییر دهید. 1758 01:23:23,380 --> 01:23:27,620 >> پس ما باید قربانی رفتن در و سپس به وب سایت وارد شوید. 1759 01:23:27,620 --> 01:23:30,290 کوکی ها را تغییر دهید برای یک جلسه خاص است. 1760 01:23:30,290 --> 01:23:33,060 و سپس قربانی سیاهههای مربوط به وب سایت و سپس ترک می کند. 1761 01:23:33,060 --> 01:23:36,190 و پس از آن کسی که می رود پس از آن هنوز هم می تواند جلسه ID خود استفاده کنید 1762 01:23:36,190 --> 01:23:37,430 برای دسترسی به اطلاعات است. 1763 01:23:37,430 --> 01:23:40,050 به طوری که یک مثال از چگونه است که می تواند رخ دهد. 1764 01:23:40,050 --> 01:23:45,570 >> و پس از آن من نمی بیش از حد نگران در مورد کد های خاص و یا هر چیز 1765 01:23:45,570 --> 01:23:49,270 که که می تواند این می شود، اما داشتن نوعی از ایده چه 1766 01:23:49,270 --> 01:23:51,400 متغیرهای درگیر در این است. 1767 01:23:51,400 --> 01:23:53,897 و سپس دستکاری هدر داده نوع دیگری از حمله است 1768 01:23:53,897 --> 01:23:55,230 است که دیوید در مورد صحبت کردیم. 1769 01:23:55,230 --> 01:23:59,730 و آن را فقط به اشاره چه اتفاقی می افتد زمانی که 1770 01:23:59,730 --> 01:24:04,300 پاسخ، HTTP پاسخ داخل هدر ما 1771 01:24:04,300 --> 01:24:05,720 به درستی بررسی نمی شود، 1772 01:24:05,720 --> 01:24:14,340 >> و هر یک از fields-- برای مثال، اگر کسی یکی از هدر رونویسی 1773 01:24:14,340 --> 01:24:18,860 مقادیر را به هر چیزی را شامل بیش از آنچه که باید contain-- و در واقع 1774 01:24:18,860 --> 01:24:22,720 شامل، برای مثال، 200 کد وضعیت OK، سپس آنها 1775 01:24:22,720 --> 01:24:26,890 به طور بالقوه می تواند انجام مخرب همه چیز زمانی که آنها قرار نیست. 1776 01:24:26,890 --> 01:24:30,815 اما من نمی نگرانی بیش از حد زیادی در مورد کد خاص 1777 01:24:30,815 --> 01:24:34,110 است که می تواند این علت، فقط نوع فهم 1778 01:24:34,110 --> 01:24:37,290 همه چیز در سطح بالا شبیه به آن. 1779 01:24:37,290 --> 01:24:39,570 >> من فکر می کنم این است که همه که ما را پوشش دهد. 1780 01:24:39,570 --> 01:24:40,090 حیرت آور. 1781 01:24:40,090 --> 01:24:43,310 هر کسی هر گونه سوال در هر از چیزهایی که ما تحت پوشش؟ 1782 01:24:43,310 --> 01:24:44,213 بله. 1783 01:24:44,213 --> 01:24:48,077 >> مخاطبان: بنابراین یکی از درخواست تدارکات را تحت پوشش است. 1784 01:24:48,077 --> 01:24:53,400 محتوای عمدتا متمرکز در همه چیز پس از مسابقه 1؟ 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: پس سوال این است که، محتوای 1786 01:24:55,730 --> 01:24:59,720 به طور عمده در همه چیز پس از مسابقه 1 متمرکز شده است؟ 1787 01:24:59,720 --> 01:25:06,070 بنابراین تمرکز بر است پس مسابقه 1، به استثنای 1788 01:25:06,070 --> 01:25:10,914 که ما نیاز به تمرکز بر روی همه چیز در pset5 و بسیاری از ساختارهای داده 1789 01:25:10,914 --> 01:25:11,580 که ما پوشیده شده است. 1790 01:25:11,580 --> 01:25:14,300 و ما نمی توانیم بگوییم که ما می توانید هر چیزی را نادیده قبل 1791 01:25:14,300 --> 01:25:17,120 که به دلیل آن را بر آن را می سازد و همچنین. 1792 01:25:17,120 --> 01:25:21,845 >> بنابراین بر روی آن تمرکز، به علاوه مواد pset5 مانند جمله مرتبط لیست ها، پشته، 1793 01:25:21,845 --> 01:25:23,720 صف، و همه چیز هانا که بیش از رفت. 1794 01:25:23,720 --> 01:25:24,050 >> هانا بلومبرگ: درست است. 1795 01:25:24,050 --> 01:25:27,450 آره، ما بیش از همه چیز C رفت در همان ابتدا بسیار به سرعت. 1796 01:25:27,450 --> 01:25:29,090 اما مطمئن شوید که به بررسی این. 1797 01:25:29,090 --> 01:25:32,700 برو و به تماشای مسابقه 0 بررسی. 1798 01:25:32,700 --> 01:25:36,110 >> زن و شوهر یادداشت تدارکات را تحت پوشش بیشتر، فقط در حالی که ما باید توجه خود را. 1799 01:25:36,110 --> 01:25:39,100 ما می رویم به ساعات اداری هر دو در روز دوشنبه و سه شنبه شب. 1800 01:25:39,100 --> 01:25:41,540 آنها در حال رفتن به در MD 119 باشد. 1801 01:25:41,540 --> 01:25:44,220 این است که همه در وب سایت، به طوری که اگر شما آن را، هیچ نگرانی را نمی شنوند. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA: 8:30-11:00. 1803 01:25:45,266 --> 01:25:46,260 >> هانا بلومبرگ: بله، 8:30-11:00. 1804 01:25:46,260 --> 01:25:46,910 ما آنجا خواهیم بود. 1805 01:25:46,910 --> 01:25:48,368 ما آنجا خواهد بود برای پاسخ به سوالات. 1806 01:25:48,368 --> 01:25:49,480 این لرز زیبا و سرگرم کننده است. 1807 01:25:49,480 --> 01:25:53,240 شما بچه ها می توانید هر گونه سوال بپرسید که شما در مسابقه 1 داشته باشد. 1808 01:25:53,240 --> 01:25:55,740 و مسابقه 1 است چهارشنبه، شانس خیلی خوب. 1809 01:25:55,740 --> 01:25:59,770 اگر شما هر گونه سوال، شاید آمده به بحث ما تا اینجا یک در یک. 1810 01:25:59,770 --> 01:26:00,880 خنک. 1811 01:26:00,880 --> 01:26:01,630 خیلی ممنون. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA: با تشکر بسیار، بچه ها. 1813 01:26:02,880 --> 01:26:03,480 >> مخاطبان: ماهواره. 1814 01:26:03,480 --> 01:26:05,930 >> [تشویق حضار] 1815 01:26:05,930 --> 01:26:07,530