1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH Blumberg: Здраво на сите. 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 Јас сум ТФ. 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 мора да iterate сите пат од почеток. 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 Бришење се случува да се н бидејќи ние мора да одат да го најдете од листата. 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 >> Добро, хаш маси. 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 Добро, да претпоставиме дека сакате да се стави стрингови во нашата хаш табелата. 81 00:03:28,170 --> 00:03:30,870 И навистина едноставна идеја може да биде да се каже, во ред, 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 Во ред, да ги преземе првото писмо на зборот и ние сме 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 >> HANNAH Blumberg: Да, точно. 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 >> Знаеме дека има едночудо повеќе зборови што почнуваат со A од Х, 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 >> Број еден е може да се каже, во ред, постои во индекс 1 нема простор, 116 00:04:58,050 --> 00:05:03,210 но ајде да ги бараме преку додека не може да се најде друг отворен самото место. 117 00:05:03,210 --> 00:05:08,490 Па ние ќе се каже, во ред, ајде да се стави во место 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 И тоа е во ред ако има повеќе од една работа во кофа. 123 00:05:21,910 --> 00:05:23,820 Ние сме само ќе ја додадете на предниот дел. 124 00:05:23,820 --> 00:05:26,032 Па тука може да се види, во ред, кога се вметнува Бери, ние 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 HANNAH Blumberg: Бинарни пребарување. 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 >> Па ајде да ги разгледаме во еден јазол во Trie. 186 00:08:03,690 --> 00:08:07,532 И можеме да видиме, во ред, таму ќе да биде Булова и еден јазол, 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 со оглед на тоа само на Т-У-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 Што е време на пребарување за Trie? 206 00:09:06,650 --> 00:09:07,970 >> ПУБЛИКАТА: [Беззвучен]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH Blumberg: Да. 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 Дури и ако се додаде зилион повеќе зборови за нашите Trie, 211 00:09:15,950 --> 00:09:18,160 тоа не се случува да ни потрае било подолго за да се утврди 212 00:09:18,160 --> 00:09:19,690 ако даден збор е во Trie. 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 >> HANNAH Blumberg: Секако, апсолутно. 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 >> И начинот на кој што ние всушност се утврди, еј, во ред, 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 ПУБЛИКАТА: Во ред. 232 00:09:56,216 --> 00:09:57,470 Значи она што беше на траење за Trie? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH Blumberg: Секако. 234 00:09:58,386 --> 00:10:01,852 Па на траење за Trie за пребарување ќе биде постојана време. 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 Како да ја додадете на нашите зоолошката градина речникот, на нашите Trie? 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 HANNAH Blumberg: Добро. 246 00:10:27,930 --> 00:10:31,731 Па ние би рекол Z-О-О, и тогаш ние би сакате да се провери надвор тоа поле, како и. 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 Но огромен недостаток е тие се humongous. 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 МАРИЈА Златкова: Прекрасна. 264 00:11:08,280 --> 00:11:09,036 ВО РЕД. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH Blumberg: Можете да го користам мојот лаптоп. 266 00:11:10,380 --> 00:11:11,255 >> МАРИЈА Златкова: Ница. 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 Значи г однесува директориум. 283 00:12:01,260 --> 00:12:05,930 А потоа имаме три тријади, која во основа 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 МАРИЈА Златкова: Да. 301 00:13:06,164 --> 00:13:07,568 ПУБЛИКАТА: [Беззвучен]. 302 00:13:07,568 --> 00:13:08,504 HANNAH Blumberg: То. 303 00:13:08,504 --> 00:13:11,790 ПУБЛИКАТА: А потоа, со додавање на сите оние другите ќе укажуваат на вашиот број. 304 00:13:11,790 --> 00:13:12,665 МАРИЈА Златкова: Да. 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 така само значи HyperText Markup Language. 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 документи започна со DOCTYPE HTML. 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 Така што би го дефинирало за целото телото таг. 348 00:15:32,640 --> 00:15:36,160 Но, тогаш ние исто така може да се дефинира стил за #title. 349 00:15:36,160 --> 00:15:40,390 И повторно, хаштагот се однесува на нашата Проект и точка се однесува на нашата класа. 350 00:15:40,390 --> 00:15:44,760 >> А потоа и за .info, ние може исто така да го поставите на некои атрибути. 351 00:15:44,760 --> 00:15:49,750 И повторно, кога ќе се вратам, имавме класа наречена информации и нашиот проект со наслов. 352 00:15:49,750 --> 00:15:53,422 И ние може да се види дека ние се однесуваат до нив од страна #title и .info. 353 00:15:53,422 --> 00:15:55,380 ПУБЛИКАТА: Дали би рекле хаштаг [? усвои мене? ?] 354 00:15:55,380 --> 00:15:55,725 МАРИЈА Златкова: Жал ми е? 355 00:15:55,725 --> 00:15:58,120 ПУБЛИКАТА: Дали би рекле хаштаг [? усвои мене? ?] 356 00:15:58,120 --> 00:16:01,400 МАРИЈА Златкова: Хаштаг значи проект, па #title 357 00:16:01,400 --> 00:16:07,890 се однесува на она што елементи има овој проект наречен титула. 358 00:16:07,890 --> 00:16:10,735 А потоа и точка се однесува на класа. 359 00:16:10,735 --> 00:16:14,590 Па .info се однесува овој елемент поради тоа што има информации од класата. 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 МАРИЈА Златкова: Тоа е само до you-- 364 00:16:22,610 --> 00:16:24,151 HANNAH Blumberg: Повторување на прашањето. 365 00:16:24,151 --> 00:16:25,370 МАРИЈА Златкова: Ох, извинете. 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 во можност да се каже сакам оваа специфична точка да се има овој проект, бидејќи тие сакаат 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 И начинот на кој се прави тоа е само давање на тоа за лична идентификација. 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 и проект треба да биде уникатен. 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 Добро, неверојатна. 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 се одвојува стил, па СЅЅ од Селектирај 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 Мхм. 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 >> МАРИЈА Златкова: Значи 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 >> МАРИЈА Златкова: Во ред. 423 00:19:33,800 --> 00:19:34,640 >> ПУБЛИКАТА: Ви благодарам. 424 00:19:34,640 --> 00:19:36,181 >> МАРИЈА Златкова: Се разбира, ви благодарам. 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 Во ред е само код на статусот. 470 00:22:09,730 --> 00:22:12,860 И дека во ред е само фраза врз основа на тој статус код. 471 00:22:12,860 --> 00:22:15,520 >> А потоа и на Content-Type се однесува на видот 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 А тоа е text / html. 475 00:22:24,401 --> 00:22:26,660 >> ПУБЛИКАТА: Што значи 1,1 значи? 476 00:22:26,660 --> 00:22:29,910 >> МАРИЈА Златкова: Тоа е само Верзија 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 >> ПУБЛИКАТА: Дали би можеле да ги сумира Content-Type вистински брз? 482 00:22:45,080 --> 00:22:48,150 >> МАРИЈА Златкова: Значи тоа е она што на серверот. 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 МАРИЈА Златкова: Жал ми е? 489 00:23:03,390 --> 00:23:05,380 ПУБЛИКАТА: Дали е тоа она што го изјавуваат протоколот? 490 00:23:05,380 --> 00:23:05,915 МАРИЈА Златкова: На protocol-- 491 00:23:05,915 --> 00:23:07,940 ПУБЛИКАТА: --what на Content-Type е или what-- 492 00:23:07,940 --> 00:23:12,040 МАРИЈА Златкова: Протоколот се базира on-- она ​​што е протоколот ти го кажувам? 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 HANNAH Blumberg: Можете можат да мислат на протокол 499 00:23:30,070 --> 00:23:33,300 како a-- Мислам дека професорот MALAN го опиша 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 И тогаш серверот вели: О, во ред, 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 Во овој случај, тоа се случува да биде од типот text / html. 506 00:23:56,230 --> 00:23:58,480 Така, тоа е вид на само начин од нив за communicating-- 507 00:23:58,480 --> 00:24:00,480 >> МАРИЈА Златкова: Тоа е само се потврдува дека сте 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 >> ПУБЛИКАТА: Значи Content-Type part-- на текст Content-Type / 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 >> МАРИЈА Златкова: 200 вели дека сето тоа отиде во ред. 517 00:24:23,770 --> 00:24:27,900 И тогаш типот на содржина е вид на посебен дел од истата порака, 518 00:24:27,900 --> 00:24:34,274 и велејќи дека она што можам се вратиле има овој вид на text / 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 во ред, 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 Така на пример, во вашата CS50 финансии psets, 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 МАРИЈА Златкова: Ќе морам нив на вашиот измамник лист. 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 МАРИЈА Златкова: тие? 545 00:26:00,995 --> 00:26:03,870 HANNAH Blumberg: За оние кои ги имаме кандидира into-- така што прашање was-- 546 00:26:03,870 --> 00:26:08,010 МАРИЈА Златкова: Дали тие се очекува да знаете што секој еден од овие статус 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 >> HANNAH Blumberg: Јас би велат 500 чини фер игра. 553 00:26:22,690 --> 00:26:23,330 >> МАРИЈА Златкова: 500, да. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH Blumberg: Да. 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 >> HANNAH Blumberg: Тоа беше во вредност од нула поени. 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 >> HANNAH Blumberg: Тоа е реална еден, но тоа не значи ништо. 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 >> МАРИЈА Златкова: Велика прашања, момци. 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 МАРИЈА Златкова: Внатрешните грешка на серверот само 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 >> HANNAH Blumberg: Секако. 581 00:27:23,250 --> 00:27:25,625 Така на пример, како ајде велат дека се работи на микс 582 00:27:25,625 --> 00:27:30,440 и серверот на Google отиде надолу за некои причина, на прекинување моќ, да речеме. 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 >> МАРИЈА Златкова: Да. 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 PHP, за разлика од 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 и PHP. 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 Па со PHP, променливата имиња се започне со знак за долар. 602 00:28:32,280 --> 00:28:35,660 Ние не се определи, повторно, променлива напишете повеќе. 603 00:28:35,660 --> 00:28:38,450 Исто како што направивме со Ц, ние не треба да го направат тоа. 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 Можеме да ги стави заедно од нив concatenating 607 00:28:47,750 --> 00:28:52,900 со точка нотација, што ние не може да го направи во С повторно. 608 00:28:52,900 --> 00:28:57,490 Повторно, имаме малку повеќе флексибилност со PHP во однос на променливи. 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 датотеки, ние не треба да го стори тоа за PHP. 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 МАРИЈА Златкова: Секако. 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 и ги concatenating. 622 00:29:46,970 --> 00:29:52,670 Или би можеле да се создаде променлива наречена име 623 00:29:52,670 --> 00:29:56,900 и го стави заедно со concatenating две жици. 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 >> ПУБЛИКАТА: Во ред. 627 00:30:05,242 --> 00:30:06,450 МАРИЈА Латвија: Дали тоа беше јасно? 628 00:30:06,450 --> 00:30:07,099 ПУБЛИКАТА: Да. 629 00:30:07,099 --> 00:30:07,890 МАРИЈА Златкова: Во ред. 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 станува збор за PHP наспроти Ц? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 МАРИЈА Златкова: Кога велиме толкува како што се противат да се состави, 636 00:30:20,710 --> 00:30:21,850 што значи тоа? 637 00:30:21,850 --> 00:30:26,220 Па тоа значи дека ние не треба извршна датотека да се кандидира на PHP. 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 HANNAH Blumberg: Значи вие може да се мисли на преведувач 642 00:30:34,620 --> 00:30:38,980 како уште една програма која е одговорна за одење линија по линија преку PHP 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 >> МАРИЈА Златкова: Да. 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, value2 key2 која мапи. 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 >> МАРИЈА Златкова: На пример, тоа е само клучеви во оваа не мора 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 јамка во PHP, кои би 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 Оваа променлива $ ТП е нашето вистинско низа дека ние што е дефинирано во претходниот слајд 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 >> HANNAH Blumberg: И јас мислам to-- беше вашето прашање, што 690 00:33:28,990 --> 00:33:31,229 е имплицитна индекс? 691 00:33:31,229 --> 00:33:31,895 ПУБЛИКАТА: Kinda. 692 00:33:31,895 --> 00:33:32,240 МАРИЈА Златкова: О. 693 00:33:32,240 --> 00:33:33,406 HANNAH Blumberg: Да, да. 694 00:33:33,406 --> 00:33:36,150 Значи, во основа, ако не се определи клуч, тоа се случува да биде 01. 695 00:33:36,150 --> 00:33:37,140 >> МАРИЈА Златкова: Да. 696 00:33:37,140 --> 00:33:41,718 Исто како и со Ц, тоа е нула индексирани ако не се определи клуч. 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 >> МАРИЈА Златкова: Жал ми е. 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 МАРИЈА Златкова: Се разбира, жал. 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 МАРИЈА Златкова: Точно, во право. 709 00:34:05,343 --> 00:34:07,608 ПУБЛИКАТА: Па како ли тоа работа кога ќе се каже тоа е за сите или никој. 710 00:34:07,608 --> 00:34:08,969 За мене, тоа изгледа како a [? foo?] веќе. 711 00:34:08,969 --> 00:34:10,093 >> МАРИЈА Златкова: Да, да. 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 >> HANNAH Blumberg: Не, има е креда до тука. 719 00:34:36,524 --> 00:34:36,929 Тоа е всушност навистина убаво. 720 00:34:36,929 --> 00:34:37,460 >> МАРИЈА Златкова: Тоа е одлично. 721 00:34:37,460 --> 00:34:38,260 ВО РЕД. 722 00:34:38,260 --> 00:34:49,489 Значи, повторно, 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 >> HANNAH Blumberg: Добро, е важно. 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 МАРИЈА Златкова: Да. 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 МАРИЈА Златкова: Да. 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 >> МАРИЈА Златкова: Вие ќе треба да се каже како знак за долар, а потоа 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 МАРИЈА Златкова: Жал ми е? 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 >> МАРИЈА Златкова: Па, како ќе го направи тоа ако не имаат специфични клучни имиња? 752 00:36:00,780 --> 00:36:01,710 >> ПУБЛИКАТА: Да. 753 00:36:01,710 --> 00:36:07,820 >> МАРИЈА Златкова: Вие само ќе 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 >> МАРИЈА Златкова: Па тоа не е инхерентно нова променлива. 763 00:36:49,990 --> 00:37:00,310 Тоа е променлива која се однесува на во внатрешноста на низата на секој од нив. 764 00:37:00,310 --> 00:37:02,060 HANNAH Blumberg: Тоа е нова променлива име. 765 00:37:02,060 --> 00:37:04,018 МАРИЈА Златкова: Да, тоа е нова променлива име, 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 МАРИЈА Златкова: Мм. 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 Па за секоја array-- така тоа значи дека оди во оваа низа 778 00:37:38,950 --> 00:37:43,930 како клучни value-- што се случува да поминат низ оваа низа 779 00:37:43,930 --> 00:37:49,480 и прв оди и да добијат foo, на Клучот foo и бар на вредноста. 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 >> МАРИЈА Златкова: Која е идејата да има клучна посочувајќи да вредност? 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 >> МАРИЈА Златкова: Значи она што е редоследот дека 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 >> МАРИЈА Златкова: Нови елементи 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 МАРИЈА Златкова: Јас верувам дека е така. 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 >> МАРИЈА Златкова: Секако. 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 МАРИЈА Златкова: Да, ние би можеле да се печати а потоа и во основа $ вредност, бидејќи во 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 >> МАРИЈА Златкова: Има исто така за петелки во 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 МАРИЈА Златкова: Тоа е како исти. 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 МАРИЈА Златкова: То. 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 заедно, она што сме го seen-- добро, 844 00:41:05,950 --> 00:41:15,130 на пример, во овој пример, ние имаме HTML форма која има поле за внесување. 845 00:41:15,130 --> 00:41:18,830 >> И полето за внесување е само името и тогаш тоа има копчето Submit. 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 >> ПУБЛИКАТА: Каде е PHP? 854 00:41:58,275 --> 00:41:59,150 МАРИЈА Златкова: тука. 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 >> МАРИЈА Златкова: Да. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH Blumberg: На = е стенографија за ова е PHP и само ехо. 860 00:42:09,609 --> 00:42:10,150 ПУБЛИКАТА: О. 861 00:42:10,150 --> 00:42:10,720 МАРИЈА Златкова: Да, ми е жал. 862 00:42:10,720 --> 00:42:12,040 Јас треба да се направи тоа јасно. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH Blumberg: Печати. 864 00:42:13,759 --> 00:42:16,800 МАРИЈА Златкова: Тоа е само во функција која ни овозможува да се печати нешто. 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 МАРИЈА Златкова: Не може да има фер износот на толкување 873 00:42:38,810 --> 00:42:43,330 на PHP и HTML, не мора како огромна количина на кодирање, 874 00:42:43,330 --> 00:42:46,960 иако можеби ќе треба да се напише foreach јамка, иако, за телефонска линија. 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 HANNAH Blumberg: Јас би се подготви. 878 00:42:53,430 --> 00:42:57,010 Во истиот начин на кој ние ќе ви побара да пишувам еден куп на C функции на квизот 0, 879 00:42:57,010 --> 00:42:59,766 Јас би бил подготвен да го стори истата во PHP и JavaScript. 880 00:42:59,766 --> 00:43:00,640 МАРИЈА Златкова: Да. 881 00:43:00,640 --> 00:43:03,210 HANNAH Blumberg: Јас би рекол на 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 ПУБЛИКАТА: Во ред. 887 00:43:11,623 --> 00:43:13,814 Како за во JavaScript, како? 888 00:43:13,814 --> 00:43:14,730 HANNAH Blumberg: Да. 889 00:43:14,730 --> 00:43:15,250 Фер игра го вклучите Javascript-е. 890 00:43:15,250 --> 00:43:15,635 >> МАРИЈА Златкова: Да. 891 00:43:15,635 --> 00:43:16,801 Кој е сосема фер игра. 892 00:43:16,801 --> 00:43:19,280 HANNAH Blumberg: Ние ќе добиете како и на оној во 10 минута. 893 00:43:19,280 --> 00:43:23,750 >> МАРИЈА Златкова: 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 А многу од заедничките ones-- Ажурирање, 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 Ажурирање на оваа табела се нарекува масата велејќи СЕТ, 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 и кои можат да се користат каде. 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 па ние ќе се измени само некои вредности каде куќа еднаква курирска, 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 и 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 >> Па изберете ѕвезда значи изберете сите. 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 А потоа, ако ние се постави на име, студентите Ажурирање 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, ИНТ, и плови. 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 МАРИЈА Златкова: Па, токму сега, тоа не е се чуваат. 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 >> МАРИЈА Златкова: Тоа може да биде број на различни нешта. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH Blumberg: Имаме interfaced со 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 >> МАРИЈА Златкова: Тоа само зависи од како сакате да го направи тоа за себе. 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 еднаква на Session 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 Нашите контролер е најмногу што ние сме прави со PHP датотеки. 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 >> Поглед, презентација на информации, за да на корисникот, на графичката околина, или кориснички интерфејс. 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 Па за телефонска линија која iterates повеќе податоци кои се отпечатени 1024 00:50:28,360 --> 00:50:30,720 е дел од погледот, како спротивно на контролорот. 1025 00:50:30,720 --> 00:50:35,660 А потоа и многу од нашите PHP датотеки спаѓаат во категоријата на контролорот. 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 А ако не, ќе Хана преземе со JavaScript. 1043 00:51:35,891 --> 00:51:36,390 Страшни. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH Blumberg: Добро, кул. 1045 00:51:37,473 --> 00:51:40,980 Ако ништо друго доаѓа со PHP или HTML, или на било која работи Марија покриени, 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 и Ц, на два јазика видовме претходно. 1056 00:52:09,130 --> 00:52:10,780 Значи број еден, тоа е лабаво отчукува. 1057 00:52:10,780 --> 00:52:14,630 Тоа е како PHP, но за разлика од В. 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 И ова е нешто што навистина Го вклучите Javascript-се одделува од 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 ние сме виделе, барем во оваа класа, го вклучите Javascript- 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 тоа е од Safari, тоа е Firefox, што и да користат всушност работи на вашиот вклучите Javascript-. 1076 00:53:10,420 --> 00:53:12,290 >> ПУБЛИКАТА: Што значи асинхрони значи? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH Blumberg: Ах, што се асинхроно значи? 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-- каде што го прави да падне со модел-View-контролер? 1102 00:54:18,287 --> 00:54:19,620 HANNAH Blumberg: Велики прашање. 1103 00:54:19,620 --> 00:54:23,320 Каде да вклучите есен со модел-View-контролер? 1104 00:54:23,320 --> 00:54:23,930 Хм. 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 Добро, па го вклучите Javascript- всушност, се случува да се овозможи 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 JavaScript во еден од нашите веб-програми. 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 И ова, вели, во ред, сакам да се кандидира на некои Го вклучите Javascript-и тука е местото каде што живее. 1124 00:55:13,280 --> 00:55:15,400 Тој живее во hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> И многу многу како CSS, ние би можеле да Го вклучите Javascript-се стави во рамките на 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 >> HANNAH Blumberg: Да. 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 А потоа надолу тука е нашата малечки датотека JavaScript. 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 е што тоа се случува да се каже, во ред, јас сум случува да се кандидира овој код JavaScript. 1141 00:55:53,330 --> 00:55:56,370 И ова JavaScript код само вели алармирање Здраво, свет. 1142 00:55:56,370 --> 00:55:59,090 Па јас ќе одам да се добие овој пријателски малку pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Кул? 1144 00:56:00,360 --> 00:56:04,746 Тоа е вид на како нашата прва Го вклучите Javascript-програма, нашите Здраво, свет. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Ајде да погледнеме малку повеќе за тоа што синтаксата на JavaScript изгледа. 1147 00:56:12,190 --> 00:56:16,330 И посебно, да ја споредат со Ц и PHP, што ние не сум видел. 1148 00:56:16,330 --> 00:56:20,610 >> Во JavaScript, ние ќе треба да имаат var, името на променливата, а потоа 1149 00:56:20,610 --> 00:56:21,690 Крај на неговата вредност. 1150 00:56:21,690 --> 00:56:26,170 И ние не наведете тип, само како во PHP, но многу разлика во В. 1151 00:56:26,170 --> 00:56:28,850 Така на пример, ако сакавме за чување на вредноста од 50, 1152 00:56:28,850 --> 00:56:32,490 во C, ние ќе треба да се каже, еј, Ц, сакам цел број, 1153 00:56:32,490 --> 00:56:35,076 Одам да го наречеме i, а неговата вредност е 50. 1154 00:56:35,076 --> 00:56:36,450 Во PHP, тоа е малку полесно. 1155 00:56:36,450 --> 00:56:41,880 Ние се каже, еј, сакам променлива наречен i и неговата вредност е 50. 1156 00:56:41,880 --> 00:56:45,890 Многу слично на тоа, во JavaScript, ние велат еј, сакам променлива наречена I, 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 На ист начин, во Ц, каде што еднаш велиме int i, ние само го користите i. 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 јамки се случува да се погледне како во нешто како С, каде што вашиот за јамка 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 Да речеме дека јас сакав да iterate over-- Сакав да направам нешто за пет пати. 1173 00:57:24,510 --> 00:57:27,840 Во C, ние би можеле да се напише за init з изнесува 0. 1174 00:57:27,840 --> 00:57:30,480 i е помал од 5, i ++. 1175 00:57:30,480 --> 00:57:34,240 Единствената разлика, во JavaScript, наместо да се каже int i еднакво на 0, 1176 00:57:34,240 --> 00:57:36,820 велиме var i изнесува 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 >> ПУБЛИКАТА: Значи во PHP, тоа е истиот нешто, освен, но како и променлива? 1182 00:57:48,480 --> 00:57:49,564 Или беше тоа еден пример var? 1183 00:57:49,564 --> 00:57:50,480 HANNAH Blumberg: Да. 1184 00:57:50,480 --> 00:57:52,310 Па во PHP, тоа се случува да биде знак за долар. 1185 00:57:52,310 --> 00:57:59,450 Значи тоа се случува да $ i еднаквите 0, $ i е помал од 5, $ i ++. 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 Во JavaScript, сите ние треба да направите е да напишете 1192 00:58:12,440 --> 00:58:15,080 функцијата за клучен збор, која вели, еј, JavaScript, 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 И исто како и Ц, имаме овој клучен збор се врати, 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 Една навистина кул работа во врска со Го вклучите Javascript-тоа е многу за разлика од 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 еднаква плус враќање x y. 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 Значи можеме да кажеме, во ред, сакам променлива, се вика збир, 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 HANNAH Blumberg: Да. 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 >> HANNAH Blumberg: Можете ли да референтна сума во други места 1235 01:00:01,940 --> 01:00:03,360 со вредноста на y x плус? 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 HANNAH Blumberg: Добро. 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 бидејќи ние сме си игра со С и не можете да го направите тоа во В. 1244 01:00:29,880 --> 01:00:32,679 Но сега можеме да го наречеме сумира ист начин можеме да го наречеме сума тука. 1245 01:00:32,679 --> 01:00:33,220 ПУБЛИКАТА: Во ред. 1246 01:00:33,220 --> 01:00:33,970 HANNAH Blumberg: Да. 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 или JavaScript? 1250 01:00:39,862 --> 01:00:42,070 HANNAH Blumberg: Не, ние не треба да се користи прототипови, 1251 01:00:42,070 --> 01:00:43,880 особено во JavaScript. 1252 01:00:43,880 --> 01:00:49,380 Значи една пракса нешто лошо што сум одам да се каже дека не треба да се направи 1253 01:00:49,380 --> 01:00:52,620 е што не треба да се напише var i = 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 i, 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 JavaScript е прилично слично, можете да го направите она што го сакате. 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 HANNAH Blumberg: Да. 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 HANNAH Blumberg: Нема предност на користење на еден или на друг. 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 HANNAH Blumberg: Ако x и y промени подоцна, ќе ги сумира промените, како? 1286 01:02:06,510 --> 01:02:08,840 Значи ова е всушност јас мислам дека нешто што е, 1287 01:02:08,840 --> 01:02:12,260 повторно, тоа само се чувствува многу различно од С. Ова не е вредност. 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 >> МАРИЈА Златкова: И тогаш можете да се јавите на функцијата 1292 01:02:21,193 --> 01:02:23,272 и го користат за да се добие некоја вредност. 1293 01:02:23,272 --> 01:02:24,230 HANNAH Blumberg: Добро. 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 >> HANNAH Blumberg: Да. 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 HANNAH Blumberg: мм. 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 >> HANNAH Blumberg: Верувам дека ќе се пребрише вредноста на сумата. 1310 01:02:56,465 --> 01:02:59,290 Значи уште една интересна работа во врска со вклучите Javascript- 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 Ова не е случај во JavaScript. 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 >> Ако ги погледнеме во низа во JavaScript, еве 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 ако сакам зборот JavaScript, јас би се 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 Но во JavaScript, супер лесно. 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 >> HANNAH Blumberg: Да, го прави вашиот живот многу полесно. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 Добро, не object-- таму. 1341 01:04:11,560 --> 01:04:15,480 Објекти во вклучите Javascript-се чувствуваат многу слични structs во 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 се залага за да вклучите Објектно нотација. 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 HANNAH Blumberg: Што точно значи JSON значи? 1367 01:05:33,890 --> 01:05:36,470 JSON само се залага за Го вклучите Javascript-Објектно нотација. 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, тоа е structs. 1372 01:05:43,620 --> 01:05:45,800 Во PHP, тоа е асоцијативни низи. 1373 01:05:45,800 --> 01:05:47,120 Во JavaScript, имаме објекти. 1374 01:05:47,120 --> 01:05:48,969 >> ПУБЛИКАТА: Значи CS50 е објект? 1375 01:05:48,969 --> 01:05:51,010 HANNAH Blumberg: 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 Го вклучите Javascript-се уште технички, 1393 01:06:47,707 --> 01:06:51,814 иако во psets ние тоа се издвојат [Беззвучен]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH Blumberg: Секако. 1395 01:06:52,730 --> 01:06:56,290 Значи, прашањето е, дали Го вклучите Javascript-и JSON еквивалент? 1396 01:06:56,290 --> 01:07:00,750 Па JSON е нотација, во основа начинот на кој ние се напише 1397 01:07:00,750 --> 01:07:02,700 објект од JavaScript. 1398 01:07:02,700 --> 01:07:05,190 Па тие не се сосема исти. 1399 01:07:05,190 --> 01:07:08,950 >> Јас би рекол дека го вклучите Javascript-, има се објекти во JavaScript. 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 па не е програмирање јазикот на начинот на кој го вклучите Javascript-е. 1403 01:07:18,110 --> 01:07:20,900 Тоа е само за нотација нашите објекти во JavaScript. 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 HANNAH Blumberg: Секако. 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 >> Па да ги погледнеме во еден брз пример за тоа како Го вклучите Javascript-дела, бидејќи Ти кажав ли дека 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 Но ова во основа вели дека, во ред, повик оваа функција кога товари прозорец. 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 Добро, да најдеме елементот со проект search_button. 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 елемент со дадениот проект. 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 >> HANNAH Blumberg: Жал ми е? 1457 01:09:53,162 --> 01:09:55,130 >> ПУБЛИКАТА: Дали треба да физички кодот сите за тоа? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH Blumberg: Дали ние треба да физички кодот сите за тоа? 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 HANNAH Blumberg: Добро. 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 Особено, ајде ја користи библиотеката jQuery, 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 е библиотека го вклучите Javascript-. 1470 01:10:19,810 --> 01:10:24,930 Па го вклучите Javascript-е програмирање јазик; 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 >> Тоа е она што најмногу ги повиците до jQuery библиотеката изгледа. 1479 01:10:46,870 --> 01:10:50,520 Ние ги користиме овие доларот sign-- нема врска знак на PHP, 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 Ова се вели, во ред, овој jQuery-- долар sign-- jQuery, ме најдете на прозорецот. 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 >> Сега, jQuery, најдете ме на работа со проект search_button. 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 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 HANNAH Blumberg: Да. 1502 01:11:52,940 --> 01:11:56,450 Овој симбол хаш, тоа е исто како и CSS. 1503 01:11:56,450 --> 01:12:00,080 Па се сеќавам, со CSS, кога ние сакав да изберете нешто од лична карта, 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 JQuery така би требало да само да се направи нашите животи полесно. 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 HANNAH Blumberg: Секако. 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 HANNAH Blumberg: во ред? 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 Па се сеќавам во JavaScript, ние може да се третираат како функции вредности. 1522 01:12:43,632 --> 01:12:44,340 ПУБЛИКАТА: Ох, ОК. 1523 01:12:44,340 --> 01:12:45,256 HANNAH Blumberg: Да. 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 МАРИЈА Златкова: Добро. 1529 01:12:51,380 --> 01:12:52,760 Добро. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH Blumberg: Прекрасно. 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 Во ред, еј, jQuery, тука е мојата селектор, а потоа тука е акција. 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 Па со оглед дека ние копирај / вметни со jQuery документација за нашите измамник лист, 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 HANNAH Blumberg: Велики прашање. 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 дека ние би очекувале на Google. 1551 01:13:47,240 --> 01:13:52,930 >> Работи кои се фер игра Јас би се велат дека само вид на општите синтаксата, 1552 01:13:52,930 --> 01:13:58,310 да се биде во можност да изберете од лична карта и страна 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 HANNAH Blumberg: Да, точно. 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 помеѓу изборот на проект и по класа? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH Blumberg: Секако. 1563 01:14:14,560 --> 01:14:17,510 Разликата помеѓу избирање Проект и избор од класа. 1564 01:14:17,510 --> 01:14:20,685 Па како некој вели Марија малку порано, има 1565 01:14:20,685 --> 01:14:26,280 може да биде само една HTML елемент со даден проект, а класа, 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 >> HANNAH Blumberg: Што се случува ако имаш повеќе од работите кои 1573 01:14:42,150 --> 01:14:43,280 се иста класа? 1574 01:14:43,280 --> 01:14:45,829 Така, на пример, ако ние сме само со користење на чиста JavaScript, 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 >> И ќе мора или да iterate во текот нив или да се најде кој го барате. 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 >> Па мислам дека ако сте запознаени со било jQuery можете да забележите во 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 Таа се залага за Асинхронни JavaScript и 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-- асинхрони, JavaScript, и податоци, 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 Значи тука е валидна jQuery функција за да можеме да 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 >> И она што оваа функција го прави тоа е Потребно е рачно и некои 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 И што вели, во ред, да поднесе барање до овој 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 >> Така што во случај кога сте направено, да се каже, во ред, јас сум готов. 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 Fail се случува да биде во функција што се нарекува, ако барањето не 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 HANNAH Blumberg: Секако. 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 HANNAH Blumberg: Во ред. 1648 01:18:02,620 --> 01:18:05,700 Значи ова е вид на слабо дел. 1649 01:18:05,700 --> 01:18:12,390 Тоа е функција која им овозможува на jQuery можете да го направите асинхрони повици. 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 HANNAH Blumberg: Да. 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 МАРИЈА Златкова: Прекрасно, ОК. 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 МАРИЈА Златкова: Добро. 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 >> ПУБЛИКАТА: Buffer overflow. 1678 01:19:16,840 --> 01:19:18,381 >> МАРИЈА Златкова: То, buffer overflow. 1679 01:19:18,381 --> 01:19:21,230 Така што ова е нешто што ние се однесуваат како buffer overflow. 1680 01:19:21,230 --> 01:19:25,500 И гледаме дека во внатрешноста на foo, ние сме дефинирани нашите тампон, в, 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 ќе ги избегне враќање адреса на функцијата на foo, 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 Во суштина, во внатрешноста на потенцијално foo, како 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 МАРИЈА Златкова: предлог е, алоцирање дополнителна меморија на големината надмината. 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 МАРИЈА Златкова: Ох, извинете. 1711 01:21:05,443 --> 01:21:06,040 Да. 1712 01:21:06,040 --> 01:21:11,290 Memcpy зема она is-- жал, ОК. 1713 01:21:11,290 --> 01:21:15,850 Memcpy зема она што е во бар, што и да е донесен 1714 01:21:15,850 --> 01:21:18,050 врз foo како аргумент на командната линија. 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 Па затоа се случува да се земе бар и тоа се случува да го копирате во в. 1718 01:21:24,453 --> 01:21:25,402 >> ПУБЛИКАТА: Во ред. 1719 01:21:25,402 --> 01:21:28,360 МАРИЈА Златкова: И тоа се случува да се 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 >> МАРИЈА Златкова: Да, тоа е копирање на сето тоа. 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, понуда, unquote "во барањето," 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 Проект за пристап до информацијата за најава. 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 А потоа на лицето кое се навраќа тогаш се уште можат да ги користат нивните сесија проект 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 Добро код статусот, тогаш тие 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 >> МАРИЈА Златкова: Значи Прашањето е, е содржината 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 >> HANNAH Blumberg: Добро. 1795 01:25:24,050 --> 01:25:27,450 Да, отидовме во текот на сите работи на С на самиот почеток многу брзо. 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 >> МАРИЈА Златкова: 8:30-11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH Blumberg: Да, 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 >> МАРИЈА Златкова: Благодарение толку многу, момци. 1813 01:26:02,880 --> 01:26:03,480 >> ПУБЛИКАТА: Yay. 1814 01:26:03,480 --> 01:26:05,930 >> [Аплауз] 1815 01:26:05,930 --> 01:26:07,530