1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> Ханна Блумбэрг: Прывітанне ўсім. 3 00:00:07,030 --> 00:00:09,530 Мы збіраемся пачаць усяго пару хвілін раней 4 00:00:09,530 --> 00:00:11,738 паколькі ў нас ёсць цэлы шмат матэрыялу, каб прайсці. 5 00:00:11,738 --> 00:00:12,790 Я Ханна. 6 00:00:12,790 --> 00:00:13,865 Я TF. 7 00:00:13,865 --> 00:00:16,239 Марыя збіраецца далучыцца нам усяго пару хвілін. 8 00:00:16,239 --> 00:00:17,560 Раздзел Яна выкладае прама перад. 9 00:00:17,560 --> 00:00:19,351 Я вучу раздзел права пасля, так што мы збіраемся 10 00:00:19,351 --> 00:00:21,200 трымаць яго ў паўтары гадзіны. 11 00:00:21,200 --> 00:00:25,490 >> Такім чынам, як вы ўбачыце тут, у нас ёсць дастаткова некалькі тэм, мы павінны прайсці, 12 00:00:25,490 --> 00:00:27,200 такім чынам, мы будзем ісці трохі хутчэй. 13 00:00:27,200 --> 00:00:31,140 Але калі ў нейкі момант мы нешта сказаць занадта хутка або вы не разумееце, 14 00:00:31,140 --> 00:00:33,170 не саромейцеся, каб перапыніць з пытаннямі. 15 00:00:33,170 --> 00:00:36,610 Мы хочам, каб мець магчымасць зрабіць гэта агляд сесіі ў якасці карыснай для ўсіх вас 16 00:00:36,610 --> 00:00:37,973 наколькі гэта магчыма. 17 00:00:37,973 --> 00:00:38,920 Высокі. 18 00:00:38,920 --> 00:00:41,650 >> Такім чынам, давайце скакаць прама ў з некаторыя тэмы, якія мы на самай справе 19 00:00:41,650 --> 00:00:46,980 вельмі, вельмі коратка разгледжаны для Тэст 0 на агляднай сесіі віктарыны 0. 20 00:00:46,980 --> 00:00:48,840 Так, пачынаючы са звязанымі спісамі. 21 00:00:48,840 --> 00:00:52,090 Так што пераканайцеся, што ў вас ёсць некаторыя базавыя веды аб звязаных спісаў 22 00:00:52,090 --> 00:00:55,110 і зручна рабіць некаторыя з асноўных аперацый. 23 00:00:55,110 --> 00:00:58,560 >> Так што проста разгледзець, звязаныя Спісы лепш, чым масівы 24 00:00:58,560 --> 00:01:01,020 таму што яны могуць расці дынамічна. 25 00:01:01,020 --> 00:01:03,300 Такім чынам, мы маем вялікая перавага, што. 26 00:01:03,300 --> 00:01:06,031 Мы бачылі іх выкарыстоўваць у хэш-табліц, калі мы 27 00:01:06,031 --> 00:01:08,280 не ведаю дакладна, колькі рэчы, якія мы збіраемся хочаце 28 00:01:08,280 --> 00:01:10,900 ўставіць у нашай структуры дадзеных. 29 00:01:10,900 --> 00:01:15,700 На жаль, у нас ёсць кавалкі звязаны спіс за ўсё памяці, 30 00:01:15,700 --> 00:01:20,820 такім чынам, мы не абавязкова будзе ў стане зрабіць пастаянны доступ часу 31 00:01:20,820 --> 00:01:22,502 да любога элементу ў звязаным спісе. 32 00:01:22,502 --> 00:01:24,210 Для таго, каб знайсці канкрэтны элемент, мы 33 00:01:24,210 --> 00:01:26,510 ёсць для перабору ўсіх спосаб з самага пачатку. 34 00:01:26,510 --> 00:01:30,610 Так што майце на ўвазе, што большасць з Асноўныя аперацыі Амега 1. 35 00:01:30,610 --> 00:01:32,130 Так ўстаўка толькі збіраецца ўзяць 1. 36 00:01:32,130 --> 00:01:37,520 Выдаліць збіраецца ўзяць п, так як мы павінны пайсці і знайсці яго ў спісе. 37 00:01:37,520 --> 00:01:39,260 І пошук можа заняць, у горшым выпадку, п. 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 мы проста кажам у чаргу і вываду з. 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 >> Ханна Блумбэрг: Так, менавіта так. 98 00:04:16,390 --> 00:04:18,000 Вы будзеце мець сутыкненняў. 99 00:04:18,000 --> 00:04:18,954 Дык вось адна рэч. 100 00:04:18,954 --> 00:04:21,620 І мы будзем казаць пра тое, як мы можам выправіць сутыкненняў ўсяго секунду. 101 00:04:21,620 --> 00:04:23,980 Яшчэ адна праблема з гэтым прыватнасці хэш-функцыя 102 00:04:23,980 --> 00:04:25,980 з'яўляецца тое, што наша адрозніваецца Каўшы будзе 103 00:04:25,980 --> 00:04:28,960 даволі рэзка розных памераў. 104 00:04:28,960 --> 00:04:33,840 >> Мы ведаем, што ёсць шмат больш слоў, якія пачынаюцца з А, чым X, 105 00:04:33,840 --> 00:04:38,980 такім чынам, мы будзем мець вельмі незбалансаваныя вядра ў нашай табліцы. хэш- 106 00:04:38,980 --> 00:04:40,050 Прахладны. 107 00:04:40,050 --> 00:04:41,340 Так што, так, давайце вернемся да кропка сутыкнення. 108 00:04:41,340 --> 00:04:42,900 Што нам рабіць, калі ёсць сутыкненне? 109 00:04:42,900 --> 00:04:44,490 >> У нас ёсць некалькі розных варыянтаў. 110 00:04:44,490 --> 00:04:47,600 Такім чынам, адна, таму выкажам здагадку, што мы спрабуем пакласці ягаду ў нашу хэш-табліцы. 111 00:04:47,600 --> 00:04:50,370 І мы бачым, аб, мы хочам каб пакласці яго ў індэкс 1, 112 00:04:50,370 --> 00:04:52,070 але банан ўжо жыве там. 113 00:04:52,070 --> 00:04:53,110 Тое, што мы збіраемся рабіць? 114 00:04:53,110 --> 00:04:54,560 У нас ёсць два асноўных варыянту. 115 00:04:54,560 --> 00:04:58,050 >> Нумар адзін, мы можам казаць, ОК, няма ніякай пакоя ў індэксе 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 Ханна Блумбэрг: Двайковы пошук. 174 00:07:32,480 --> 00:07:35,150 Таму што, калі вы шукаеце Нумар, у гэтым дрэве, 175 00:07:35,150 --> 00:07:38,800 у кожнай кропцы, вы можаце проста пастукаць ад паловы дрэва, які з'яўляецца вялікім. 176 00:07:38,800 --> 00:07:43,800 І так, што адбываецца, каб даць нам нешта што выглядае як бінарны пошук. 177 00:07:43,800 --> 00:07:45,870 Любыя пытанні? 178 00:07:45,870 --> 00:07:47,570 Добра, крута. 179 00:07:47,570 --> 00:07:48,560 >> Добра, спрабуе. 180 00:07:48,560 --> 00:07:49,657 Ўлюбёнец. 181 00:07:49,657 --> 00:07:51,990 Так што гэта прыклад таго, што мы бачылі кучу ў класе. 182 00:07:51,990 --> 00:07:54,710 І зноў жа, гэта проста яшчэ адзін так, што мы можам захоўваць дадзеныя. 183 00:07:54,710 --> 00:07:57,530 У выпадку слоўніку, зноў жа, гэта проста будзе струны. 184 00:07:57,530 --> 00:08:00,870 Такім чынам, давайце паглядзім, што гэта на самай справе Падобна на тое, на некалькі больш нізкім узроўні. 185 00:08:00,870 --> 00:08:03,690 >> Такім чынам, давайце зірнем у адным вузле ў сінтаксічнага дрэва. 186 00:08:03,690 --> 00:08:07,532 І мы бачым, добра, там збіраецца быць лагічны і вузел, 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 у той час як толькі Т-У-Р не слова таму што мы не бачым, што мала дэльту. 194 00:08:28,030 --> 00:08:31,440 І, што мала дэльта, зноў жа, адпавядае гэтаму is_word, 195 00:08:31,440 --> 00:08:34,480 гэты лагічны is_word. 196 00:08:34,480 --> 00:08:36,320 І тады ў нас ёсць масіў дзяцей. 197 00:08:36,320 --> 00:08:39,860 Такім чынам, на кожным узроўні, вы ёсць канкрэтны вузел, 198 00:08:39,860 --> 00:08:42,470 і што вузел паказвае на Масіў ўвесь алфавіт. 199 00:08:42,470 --> 00:08:44,346 >> Такім чынам, вы можаце бачыць, зноў жа, у гэтым picture-- Я 200 00:08:44,346 --> 00:08:48,170 будзе трымаць скачкі назад і forth--, што гэты масіў у верхняй 201 00:08:48,170 --> 00:08:51,640 мае кучу розных вузлы, якія паступаюць ад яго. 202 00:08:51,640 --> 00:08:57,140 Ён мае 26 ці 27, калі вы хочаце ўключыць дадатковы знак. 203 00:08:57,140 --> 00:09:01,320 І гэта дае нам спосаб захоўвання нашых дадзеных 204 00:09:01,320 --> 00:09:04,450 такім чынам, што можна паглядзець на што вы можаце паглядзець супер хутка. 205 00:09:04,450 --> 00:09:06,650 Што такі час пошуку для сінтаксічнага дрэва? 206 00:09:06,650 --> 00:09:07,970 >> АЎДЫТОРЫЯ: [неразборліва]. 207 00:09:07,970 --> 00:09:08,300 >> Ханна Блумбэрг: Так. 208 00:09:08,300 --> 00:09:09,550 У тэорыі, гэта сталая часу. 209 00:09:09,550 --> 00:09:13,230 Гэта толькі збіраецца быць памер Слова, якое вы хочаце паглядзець. 210 00:09:13,230 --> 00:09:15,950 Нават калі мы дадамо Zillion больш слоў у нашым сінтаксічнага дрэва, 211 00:09:15,950 --> 00:09:18,160 ён не збіраецца, каб узяць нас больш, каб вызначыць, 212 00:09:18,160 --> 00:09:19,690 калі дадзенае слова ў сінтаксічнага дрэва. 213 00:09:19,690 --> 00:09:21,412 Так што гэта сапраўды прыемна. 214 00:09:21,412 --> 00:09:23,697 >> АЎДЫТОРЫЯ: толькі Ці вам ініцыялізаваць гэты масіў? 215 00:09:23,697 --> 00:09:24,780 Вы прапусцілі кропку ці два. 216 00:09:24,780 --> 00:09:26,130 Вы можаце проста пагаварыць пра што на секунду? 217 00:09:26,130 --> 00:09:26,680 >> Ханна Блумбэрг: Вядома, абсалютна. 218 00:09:26,680 --> 00:09:27,590 Добры пытанне. 219 00:09:27,590 --> 00:09:31,140 Пытанне было, мы ёсць масіў, што гэта 220 00:09:31,140 --> 00:09:34,180 будзе мець вузел зоркі, як у адрозненне ад проста вузла, праўда? 221 00:09:34,180 --> 00:09:35,180 Прахладны. 222 00:09:35,180 --> 00:09:37,990 Дык вось тое, што мы гаворым, гэта наш масіў гэта проста 223 00:09:37,990 --> 00:09:40,035 будзе паказальнікамі на іншыя масівы. 224 00:09:40,035 --> 00:09:42,910 Так што гэта essentially-- яго выгляд адчувае, як звязаны спіс такім чынам 225 00:09:42,910 --> 00:09:46,620 дзе кожны з гэтых дзяцей проста паказваюць на наступны вузел. 226 00:09:46,620 --> 00:09:49,030 >> І тое, як мы на самай справе вызначыць, эй, добра, 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 Дык што ж асяроддзе для сінтаксічнага дрэва? 233 00:09:57,470 --> 00:09:58,386 >> Ханна Блумбэрг: Вядома. 234 00:09:58,386 --> 00:10:01,852 Так падчас выканання для сінтаксічнага дрэва для пошук будзе пастаянная часу. 235 00:10:01,852 --> 00:10:04,310 Так што гэта проста збіраецца быць колькасць літар у слове. 236 00:10:04,310 --> 00:10:06,310 Гэта не залежыць ад Памер слоўніка 237 00:10:06,310 --> 00:10:09,510 або памер структуры дадзеных. 238 00:10:09,510 --> 00:10:12,170 Дык вось трохі больш просты прыклад. 239 00:10:12,170 --> 00:10:15,430 >> У гэтым выпадку, вы можаце бачыць, што слова Лятучая мыш у слоўніку 240 00:10:15,430 --> 00:10:18,900 і ў вас ёсць зум, але вы ня ёсьць нешта накшталт заапарка. 241 00:10:18,900 --> 00:10:20,050 Як бы мы зрабіць заапарк? 242 00:10:20,050 --> 00:10:24,276 Як дадаць заапарк да нашага слоўнік, на наш сінтаксічнага дрэва? 243 00:10:24,276 --> 00:10:24,776 Так. 244 00:10:24,776 --> 00:10:27,014 >> АЎДЫТОРЫЯ: Зрабіце is_word дакладна для [неразборліва]. 245 00:10:27,014 --> 00:10:27,930 Ханна Блумбэрг: Добра. 246 00:10:27,930 --> 00:10:31,731 Такім чынам, мы б сказаць, Z-O-O, а затым мы б хочаце праверыць гэтую скрынку ад а. 247 00:10:31,731 --> 00:10:32,230 Выдатна. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Давайце параўнаем вельмі коратка спрабуе супраць хэш-табліцы. 250 00:10:37,930 --> 00:10:39,770 Спрабуе сапраўды выдатна таму што, як мы ўжо казалі, 251 00:10:39,770 --> 00:10:41,610 яны забяспечваюць сталай часу пошуку. 252 00:10:41,610 --> 00:10:44,285 Але велізарны мінус гэта яны велізарны. 253 00:10:44,285 --> 00:10:46,160 Вы можаце атрымаць пачуццё, нават гледзячы на ​​яго, 254 00:10:46,160 --> 00:10:48,454 што збіраецца ўзяць велізарная колькасць памяці. 255 00:10:48,454 --> 00:10:50,620 Так яны збіраюцца быць нашмат больш, чым хэш-табліцы, 256 00:10:50,620 --> 00:10:52,270 але яны збіраюцца, каб даць нам нашмат хутчэй раз падстаноўкі. 257 00:10:52,270 --> 00:10:54,478 Так што накшталт вашай кампраміс, тое, што вы клапоціцеся о, 258 00:10:54,478 --> 00:10:57,350 будзь то хуткасць або памяць. 259 00:10:57,350 --> 00:11:02,251 Любыя пытанні па любой з, што, усе структуры дадзеных C. 260 00:11:02,251 --> 00:11:02,750 Прыгожая. 261 00:11:02,750 --> 00:11:03,250 ДОБРА. 262 00:11:03,250 --> 00:11:07,322 Мы збіраемся, каб перайсці на трохі трохі вэб-распрацоўкі з Марыяй. 263 00:11:07,322 --> 00:11:08,280 МАРЫЯ ZLATKOVA: Выдатны. 264 00:11:08,280 --> 00:11:09,036 ДОБРА. 265 00:11:09,036 --> 00:11:10,380 >> Ханна Блумбэрг: Вы можаце выкарыстоўваць свой ноўтбук. 266 00:11:10,380 --> 00:11:11,255 >> МАРЫЯ ZLATKOVA: Ніца. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 ОК, крута. 269 00:11:14,912 --> 00:11:17,120 Як мы рухаемся ў цяперашні час на вэб развіцця, мы крыху пагаварылі 270 00:11:17,120 --> 00:11:20,680 аб змене правоў доступу файлаў і каталогаў 271 00:11:20,680 --> 00:11:24,190 так што яны могуць быць даступныя іншым карыстальнікам, да свету, 272 00:11:24,190 --> 00:11:28,640 і так, што мы можам убачыць, як у асноўным мы можам перадаць іх 273 00:11:28,640 --> 00:11:32,600 калі мы распрацоўваем такія рэчы, як вэб-сайты што мы ў асноўным рабілі. 274 00:11:32,600 --> 00:11:36,400 >> Такім чынам, мы ўбачылі каманду CHMOD, што змена рэжыму, у асноўным. 275 00:11:36,400 --> 00:11:39,300 Гэта каманда Linux і Ён мяняе правы доступу 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 для пісаць і выконваць на х. 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 таму што г будзе ставіцца да 4, ж бы гл 2, а х будзе ставіцца да 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 МАРЫЯ ZLATKOVA: Так. 301 00:13:06,164 --> 00:13:07,568 АЎДЫТОРЫЯ: [неразборліва]. 302 00:13:07,568 --> 00:13:08,504 Ханна Блумбэрг: Так. 303 00:13:08,504 --> 00:13:11,790 АЎДЫТОРЫЯ: А потым, дадаўшы ўсе тыя іншыя будуць паказваць нумар. 304 00:13:11,790 --> 00:13:12,665 МАРЫЯ ZLATKOVA: Так. 305 00:13:12,665 --> 00:13:14,970 Так. 306 00:13:14,970 --> 00:13:17,810 Гэтыя вялікія пытанні. 307 00:13:17,810 --> 00:13:20,490 Выдатны. 308 00:13:20,490 --> 00:13:25,340 Далей, мы скокнулі ў HTML і а крыху больш пра вэб-распрацоўцы. 309 00:13:25,340 --> 00:13:27,990 Так проста азначае, HTML Мова разметкі гіпертэксту. 310 00:13:27,990 --> 00:13:30,460 І гэта разметка мова, які з'яўляецца стандартным 311 00:13:30,460 --> 00:13:32,720 што ён выкарыстоўваецца для стварэння вэб-старонак. 312 00:13:32,720 --> 00:13:35,750 >> Гэта называецца мова разметкі таму што гэта на самай справе не складзены. 313 00:13:35,750 --> 00:13:40,310 Гэта не кажа, як нейкі код павінен быць выкананы або што-небудзь падобнае. 314 00:13:40,310 --> 00:13:44,800 Гэта проста акрэслівае і апісвае, як вэб- 315 00:13:44,800 --> 00:13:46,840 старонка павінна быць створана з кожным з яе элементаў 316 00:13:46,840 --> 00:13:48,460 і як яны павінны выглядаць для карыстальніка. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Некаторыя з HTML-тэгі, што мы падышоў з'яўляюцца наступныя. 319 00:13:57,110 --> 00:14:00,500 Усе нашы HTML дакументаў пачаў з 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 І зноў, хэштэгу ставіцца да нашага ID і кропка ставіцца да нашага класу. 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 МАРЫЯ ZLATKOVA: Выбачайце? 355 00:15:55,725 --> 00:15:58,120 АЎДЫТОРЫЯ: Вы хочаце сказаць, хэштэгу [? прыняць мяне? ?] 356 00:15:58,120 --> 00:16:01,400 МАРЫЯ ZLATKOVA: хэштэгу азначае ідэнтыфікатар, так #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 МАРЫЯ ZLATKOVA: Гэта проста да you-- 364 00:16:22,610 --> 00:16:24,151 Ханна Блумбэрг: Паўтарыце пытанне. 365 00:16:24,151 --> 00:16:25,370 МАРЫЯ ZLATKOVA: О, прабачце. 366 00:16:25,370 --> 00:16:29,480 Чаму мы вылучаем пэўныя элементы як ідэнтыфікатары і іншыя элементы як класы? 367 00:16:29,480 --> 00:16:34,760 Гэта толькі таму, што сапраўды часта выбар дызайну. 368 00:16:34,760 --> 00:16:38,520 Гэта дае вам шмат Ўніверсальнасць у тым 369 00:16:38,520 --> 00:16:43,250 стане сказаць, што я хачу гэта пэўны элемент каб гэты ідэнтыфікатар, таму што яны хочуць 370 00:16:43,250 --> 00:16:45,300 каб зрабіць шмат рэчаў, з ім, і я толькі 371 00:16:45,300 --> 00:16:50,010 хачу, каб вызначыць стыль, пэўны стыль ці колер усё для гэтага элемента. 372 00:16:50,010 --> 00:16:52,630 І тое, як зрабіць, што проста даючы яму ID. 373 00:16:52,630 --> 00:16:55,060 >> І потым, калі я хачу, каб мець пара розных прадметаў 374 00:16:55,060 --> 00:16:58,940 маючы таго, што замест адбываецца і ўстаноўка their-- 375 00:16:58,940 --> 00:17:03,840 а не рабіць гэта з дапамогай тэг, таму што тэг будзе 376 00:17:03,840 --> 00:17:07,369 ўсталяваць вочка для ўсёй тэга кожны раз выкарыстоўваецца гэты тэг, 377 00:17:07,369 --> 00:17:09,740 Вы можаце ўсталяваць клас некалькіх элементаў. 378 00:17:09,740 --> 00:17:15,109 А потым проста адкрыць гэты клас і сказаць, Я хачу, каб распрацаваць Такі клас шлях. 379 00:17:15,109 --> 00:17:17,579 >> І зноў, клас можа быць некалькі розных прадметаў 380 00:17:17,579 --> 00:17:21,150 і ідэнтыфікатар павінен быць унікальным. 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 аддзяляе стыль, так CSS ад разметкі HTML. 398 00:18:19,790 --> 00:18:24,210 Таму ўсе, што ставіцца да таго, як Ваша старонка будзе выглядаць візуальна 399 00:18:24,210 --> 00:18:27,330 і як ён збіраецца быць зменены павінен ісці ў CSS дакумента. 400 00:18:27,330 --> 00:18:33,880 І тады ваша разметка кажучы, як усе у дачыненні адзін аднаго, HTML і 401 00:18:33,880 --> 00:18:37,550 і што павінна прайсці ўнутр Вашы HTML дакументы. 402 00:18:37,550 --> 00:18:38,590 Любыя пытанні? 403 00:18:38,590 --> 00:18:39,226 Ммм. 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 >> МАРЫЯ ZLATKOVA: Так што-думаю, што вы. 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 >> МАРЫЯ ZLATKOVA: ОК. 423 00:19:33,800 --> 00:19:34,640 >> АЎДЫТОРЫЯ: Дзякуй. 424 00:19:34,640 --> 00:19:36,181 >> МАРЫЯ ZLATKOVA: Вядома, дзякуй. 425 00:19:36,181 --> 00:19:41,680 Такім чынам, яшчэ раз, адпраўляючыся на тым, як інфармацыя перадаецца 426 00:19:41,680 --> 00:19:44,630 і мадэлі камунікацыі для перадачы інфармацыі. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP проста азначае перадач Пратакол кіравання і ІС 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 І зноў, у нас ёсць, напрыклад, GET з'яўляецца адным з відаў метаду 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 І гэта тэкст / HTML. 475 00:22:24,401 --> 00:22:26,660 >> АЎДЫТОРЫЯ: Што азначае 1,1? 476 00:22:26,660 --> 00:22:29,910 >> МАРЫЯ ZLATKOVA: Гэта проста Версія of-- ой, што ж 1.1 ўвазе? 477 00:22:29,910 --> 00:22:37,075 Гэта проста версіі, HTTP версія пратаколу, які мы выкарыстоўваем. 478 00:22:37,075 --> 00:22:37,700 Вялікае пытанне. 479 00:22:37,700 --> 00:22:38,366 Іншыя пытанні? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> АЎДЫТОРЫЯ: Не маглі б вы падвесці вынікі Content-Type вельмі хутка? 482 00:22:45,080 --> 00:22:48,150 >> МАРЫЯ ZLATKOVA: Так што гэта тое, што сервер. 483 00:22:48,150 --> 00:22:51,020 тып information--, што тып змесціва былі пытанні. 484 00:22:51,020 --> 00:22:53,400 Так што быў тып Інфармацыя, якую Вы атрымаеце назад 485 00:22:53,400 --> 00:22:58,200 з сервера, тыпу дадзеныя, якія браўзэр можа затым 486 00:22:58,200 --> 00:23:00,604 аказаць, што вы выкарыстоўваеце. 487 00:23:00,604 --> 00:23:03,020 АЎДЫТОРЫЯ: Гэта тое, што гэта Пратакол кажу вам рабіць? 488 00:23:03,020 --> 00:23:03,390 МАРЫЯ ZLATKOVA: Выбачайце? 489 00:23:03,390 --> 00:23:05,380 АЎДЫТОРЫЯ: Гэта тое, што кажуць, што пратакол? 490 00:23:05,380 --> 00:23:05,915 МАРЫЯ ZLATKOVA: The protocol-- 491 00:23:05,915 --> 00:23:07,940 АЎДЫТОРЫЯ: --what Content-Type з'яўляецца або што- 492 00:23:07,940 --> 00:23:12,040 МАРЫЯ ZLATKOVA: Пратакол заснаваны 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 Ханна Блумбэрг: Вы можа думаць аб пратаколе 499 00:23:30,070 --> 00:23:33,300 а a-- Я думаю, прафесар Малая апісаў яго 500 00:23:33,300 --> 00:23:36,910 у класе, накшталт як a-- гэта як эквівалент чалавечага квитирования. 501 00:23:36,910 --> 00:23:44,930 Скажыце, як, эй, я запыт, і я ведае, як звяртацца HTTP версіі 1.1. 502 00:23:44,930 --> 00:23:48,770 І тады сервер кажа, О, добра, я-- і абодва існуюць. 503 00:23:48,770 --> 00:23:51,337 Я таксама ведаю, як мець справу з HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 І я збіраюся даць Вы падтрымліваеце некаторы кантэнт. 505 00:23:53,170 --> 00:23:56,230 У гэтым выпадку, гэта будзе да тыпу тэксту / HTML. 506 00:23:56,230 --> 00:23:58,480 Так што гэта свайго роду проста спосаб з іх для communicating-- 507 00:23:58,480 --> 00:24:00,480 >> МАРЫЯ ZLATKOVA: Гэта проста якія пацвярджаюць, што вы 508 00:24:00,480 --> 00:24:03,290 і вынікаючы той жа Пратакол і што абодва 509 00:24:03,290 --> 00:24:06,620 кліент і так server-- Ваш браўзэр і server-- 510 00:24:06,620 --> 00:24:09,280 накшталт ведаю, што ты пра што кажа і ёсць 511 00:24:09,280 --> 00:24:12,557 Канвенцыя для праходжання ў дадзеных. 512 00:24:12,557 --> 00:24:17,022 >> АЎДЫТОРЫЯ: Так 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 >> МАРЫЯ ZLATKOVA: 200 кажа, што ўсё гэта прайшло нармальна. 517 00:24:23,770 --> 00:24:27,900 І тады тып змесціва роду Асобная частка таго ж паведамлення, 518 00:24:27,900 --> 00:24:34,274 і заявіўшы, што рэч, якую я Вяртаецца мае гэты тып тэксту / HTML. 519 00:24:34,274 --> 00:24:35,690 Гэта проста даваць больш інфармацыі. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Ёсць што дадаць? 522 00:24:39,995 --> 00:24:40,495 ДОБРА. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Любыя іншыя пытанні па гэтай нагоды? 525 00:24:46,530 --> 00:24:48,370 Высокі. 526 00:24:48,370 --> 00:24:54,070 Такім чынам, некаторыя іншыя HTTP статуты, якія мы маглі б атрымаць у дадатак да 200 OK, 527 00:24:54,070 --> 00:24:59,500 тыя, што мы бачылі, можа быць, калі- магчыма, шмат 403 і 404. 528 00:24:59,500 --> 00:25:05,190 Так 404, калі вы спрабуеце Доступ тое, што не існуе. 529 00:25:05,190 --> 00:25:10,460 Так, напрыклад, у вашым 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 Not Found 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, Bad Request; 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 МАРЫЯ ZLATKOVA: Я б ім на шпаргалку. 542 00:25:53,739 --> 00:25:55,146 [Смех] 543 00:25:55,146 --> 00:25:59,954 АЎДЫТОРЫЯ: Мы, як чакаецца, ведаю, што выклікае кожны? 544 00:25:59,954 --> 00:26:00,995 МАРЫЯ ZLATKOVA: Ці з'яўляюцца яны? 545 00:26:00,995 --> 00:26:03,870 Ханна Блумбэрг: Для тех, якія мы запусціць into-- таму пытанне was-- 546 00:26:03,870 --> 00:26:08,010 МАРЫЯ ZLATKOVA: Ці з'яўляюцца яны, як чакаецца, ведаю, што кожны з іх статусу 547 00:26:08,010 --> 00:26:09,330 Коды могуць быць выкліканыя? 548 00:26:09,330 --> 00:26:13,240 Такім чынам, для тых, якія мы выкарыстоўвалі і пабег у, я б сказаў, так. 549 00:26:13,240 --> 00:26:16,610 Такім чынам, мы вызначана бачылі 200 ОК і лекцыі яго ў psets. 550 00:26:16,610 --> 00:26:19,071 Мы бачылі 403, 404. 551 00:26:19,071 --> 00:26:20,550 Для астатніх? 552 00:26:20,550 --> 00:26:22,690 >> Ханна Блумбэрг: Я б кажуць 500 здаецца сумленнай гульні. 553 00:26:22,690 --> 00:26:23,330 >> МАРЫЯ ZLATKOVA: 500, так. 554 00:26:23,330 --> 00:26:24,246 >> Ханна Блумбэрг: Так. 555 00:26:24,246 --> 00:26:27,006 Проста агульны сэнс што выклікае іх. 556 00:26:27,006 --> 00:26:28,880 А таксама проста гэта Імёны, вы можаце выгляд 557 00:26:28,880 --> 00:26:32,890 як зрабіць абгрунтаванае меркаванне як да чаго на самай справе выклікала іх. 558 00:26:32,890 --> 00:26:36,919 Напрыклад, рух пастаянна, верагодна, файл быў перамешчаны назаўжды. 559 00:26:36,919 --> 00:26:39,328 >> АЎДЫТОРЫЯ: Але на папярэдні экзамен, было так 560 00:26:39,328 --> 00:26:41,050 як вы чакаеце, каб мы адказаць? 561 00:26:41,050 --> 00:26:42,883 >> Ханна Блумбэрг: Гэта варта нуль ачкоў. 562 00:26:42,883 --> 00:26:45,870 Пытанне аб 418 на чайніку тэхнічна статус HTTP, 563 00:26:45,870 --> 00:26:47,090 але гэта каштавала нуль ачкоў. 564 00:26:47,090 --> 00:26:48,320 Відавочна, што вы не Чакаецца, ведаю іх. 565 00:26:48,320 --> 00:26:49,670 >> АЎДЫТОРЫЯ: Гэта сапраўдны? 566 00:26:49,670 --> 00:26:51,970 >> Ханна Блумбэрг: Гэта сапраўдны Адзін з іх, але гэта нічога не значыць. 567 00:26:51,970 --> 00:26:52,700 Гэта проста жарт. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Інтэрнэт людзі вясёлыя. 570 00:26:57,010 --> 00:26:59,680 >> МАРЫЯ ZLATKOVA: Вялікія пытанні, хлопцы. 571 00:26:59,680 --> 00:27:01,452 Любыя іншыя пытанні? 572 00:27:01,452 --> 00:27:04,891 >> АЎДЫТОРЫЯ: Што ўнутраная памылка сервера? 573 00:27:04,891 --> 00:27:06,640 МАРЫЯ ZLATKOVA: Унутраная Памылка сервера толькі 574 00:27:06,640 --> 00:27:10,050 азначае, што вы былі не ў стане мець зносіны 575 00:27:10,050 --> 00:27:13,400 з серверам па некаторых прычынах. 576 00:27:13,400 --> 00:27:15,400 Так што гэта не абавязкова тое, што мае дачыненне да 577 00:27:15,400 --> 00:27:19,170 з кліентам ці нешта падобнае. 578 00:27:19,170 --> 00:27:22,170 Я не ведаю ні аднаго канкрэтнага прыкладу што мы перайшлі, каб растлумачыць, 579 00:27:22,170 --> 00:27:23,000 але так. 580 00:27:23,000 --> 00:27:23,250 >> Ханна Блумбэрг: Вядома. 581 00:27:23,250 --> 00:27:25,625 Так, напрыклад, як давайце што вы працавалі на калажаў 582 00:27:25,625 --> 00:27:30,440 і сервер 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 >> МАРЫЯ ZLATKOVA: Так. 586 00:27:35,260 --> 00:27:37,050 Гэта проста, калі вы не ў стане мець зносіны 587 00:27:37,050 --> 00:27:40,299 з серверам для нейкай прычыне, таму што з яго ідзе ўніз ці якой-небудзь іншай прычыне. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 Так скакаць у PHP. 590 00:27:47,690 --> 00:27:49,930 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 Гэтак жа, як мы зрабілі з C, мы не павінны гэтага рабіць. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Мы можам зрабіць кучу розных матэрыял з зменнымі. 606 00:28:44,490 --> 00:28:47,750 Мы можам паставіць іх разам шляхам аб'яднання іх 607 00:28:47,750 --> 00:28:52,900 з кропкавай натацыі, якая мы не маглі б зрабіць у C зноў. 608 00:28:52,900 --> 00:28:57,490 Зноў жа, у нас ёсць трохі больш гнуткасці з 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 МАРЫЯ ZLATKOVA: Вядома. 618 00:29:30,060 --> 00:29:37,660 Калі мы хочам навесці together-- так што калі ў нас былі некаторыя зменную, 619 00:29:37,660 --> 00:29:41,500 меў значэнне 3 і ў нас быў іншы пераменная, меў значэнне радкі, 620 00:29:41,500 --> 00:29:45,920 мы маглі б зменныя разам паставіўшы кропку паміж імі 621 00:29:45,920 --> 00:29:46,970 і аб'яднання іх. 622 00:29:46,970 --> 00:29:52,670 Ці мы маглі б стварыць Пераменная называецца імя 623 00:29:52,670 --> 00:29:56,900 і паклаў яго разам аб'яднанне двух радкоў. 624 00:29:56,900 --> 00:30:00,680 >> Так што, калі ў нас быў двайны радок у каціроўкі і ставім кропку пасля яго, 625 00:30:00,680 --> 00:30:03,660 і тады мы мелі іншую радок, што будзе стварыць радок у цэлым. 626 00:30:03,660 --> 00:30:05,242 >> АЎДЫТОРЫЯ: ОК. 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 МАРЫЯ ZLATKOVA: ОК. 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 ў параўнанні з C? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 МАРЫЯ ZLATKOVA: Калі мы кажам, інтэрпрэтуецца як супрацьлегласць складзены, 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 Ханна Блумбэрг: Такім чынам, вы можа думаць перакладчыка 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 >> МАРЫЯ ZLATKOVA: Так. 649 00:30:53,115 --> 00:30:55,590 Так парадкова, а у адрозненне ад C з файламі, 650 00:30:55,590 --> 00:30:59,100 мы павінны зрабіць усё фінал перш, чым мы на самай справе можам запусціць яго. 651 00:30:59,100 --> 00:31:00,360 Гэта галоўнае адрозненне. 652 00:31:00,360 --> 00:31:02,655 Але, зноў жа, мы не можам сапраўды менш спецыфічныя. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 Так масівы ў PHP ўяўляюць на самай справе загадаў карту. 655 00:31:13,950 --> 00:31:17,550 >> Так масівы асацыіраваных значэнняў клавішах. 656 00:31:17,550 --> 00:31:23,350 Два спосабу абвясціць Масіў, на аснове гэтага сінтаксісу, 657 00:31:23,350 --> 00:31:26,380 мы можам быць больш відавочным кажучы ў нас ёсць масіў 658 00:31:26,380 --> 00:31:31,010 і ў нас ёсць гэты key1, які адлюстроўваецца гэта значение1, ключ2, які адлюстроўвае значение2. 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 >> МАРЫЯ ZLATKOVA: Напрыклад, гэта проста ключы ў гэта не абавязкова 667 00:31:55,780 --> 00:31:56,550 зрабіць розніцу. 668 00:31:56,550 --> 00:32:01,720 Яны проста вызначыць, як вы можаце выкарыстоўваць значэння ўнутры яго. 669 00:32:01,720 --> 00:32:08,660 Так што, калі ў нас быў Еогеасп пятля ў 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 ёсць цыкл па кожнаму элементу які праходзіць праз кожны 675 00:32:26,260 --> 00:32:31,240 значэнняў у ключы масіва. 676 00:32:31,240 --> 00:32:36,180 Так сінтаксісе Еогеасп цыкл, мы пачынаем з масівам. 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 І тады мы можам зрабіць што-то з значэнне ўнутры цыкл па кожнаму элементу. 682 00:32:53,080 --> 00:32:57,730 Такім чынам, яшчэ раз, калі б мы мелі масіў вось так вось created-- 683 00:32:57,730 --> 00:33:03,270 таму ў нас ёсць ключ Foo і кошту бар, ключ Baz і кошт qux-- 684 00:33:03,270 --> 00:33:09,730 мы можам мець цыкл па кожнаму элементу, што праходзіць праз масіў як значэнне ключа 685 00:33:09,730 --> 00:33:11,900 а затым зрабіць нешта з ключом, і / або значэнне. 686 00:33:11,900 --> 00:33:15,980 Але мы не заўсёды абавязкова павінны мець Еогеасп завесы, што 687 00:33:15,980 --> 00:33:19,410 праходзіць праз масіў як ключавы карце да кошту. 688 00:33:19,410 --> 00:33:26,060 Мы можам пайсці праз Масіў цыкл па кожнаму элементу ў якасці значэння. 689 00:33:26,060 --> 00:33:28,990 >> Ханна Блумбэрг: І я думаю, , Мэтай якіх было на ваша пытанне, тое, што 690 00:33:28,990 --> 00:33:31,229 няяўна індэкс? 691 00:33:31,229 --> 00:33:31,895 АЎДЫТОРЫЯ: Свайго роду. 692 00:33:31,895 --> 00:33:32,240 МАРЫЯ ZLATKOVA: Ой. 693 00:33:32,240 --> 00:33:33,406 Ханна Блумбэрг: Так, так. 694 00:33:33,406 --> 00:33:36,150 Так у асноўным, калі вы не пакажаце ключ, ён будзе 01. 695 00:33:36,150 --> 00:33:37,140 >> МАРЫЯ ZLATKOVA: Так. 696 00:33:37,140 --> 00:33:41,718 Гэтак жа, як з C, гэта нуль індэксуецца, калі вы не пакажаце ключ. 697 00:33:41,718 --> 00:33:42,384 АЎДЫТОРЫЯ: Выбачайце. 698 00:33:42,384 --> 00:33:43,827 Не маглі б вы паспрабуйце гаварыць трохі гучней? 699 00:33:43,827 --> 00:33:45,270 У мяне трохі Бяда слыху ўсё. 700 00:33:45,270 --> 00:33:46,478 >> МАРЫЯ ZLATKOVA: Мне так шкада. 701 00:33:46,478 --> 00:33:48,439 Так, вядома. 702 00:33:48,439 --> 00:33:50,230 Так што вы хочаце мне перайсці на гэты раз? 703 00:33:50,230 --> 00:33:51,680 Або this-- 704 00:33:51,680 --> 00:33:54,930 АЎДЫТОРЫЯ: Так на папярэдняй slide-- калі вы маглі б проста вярнуцца на працягу адной секунды. 705 00:33:54,930 --> 00:33:57,313 МАРЫЯ ZLATKOVA: Вядома, шкада. 706 00:33:57,313 --> 00:33:59,237 АЎДЫТОРЫЯ: Такім чынам, другі Масіў тут не 707 00:33:59,237 --> 00:34:04,135 здаецца, маюць значэнне для ключа, роду [? прычынна-следчая сувязь. ?] 708 00:34:04,135 --> 00:34:05,343 МАРЫЯ ZLATKOVA: Праўда, праўда. 709 00:34:05,343 --> 00:34:07,608 АЎДЫТОРЫЯ: Так як гэта працуе калі вы кажаце, што гэта ўсё ці нічога. 710 00:34:07,608 --> 00:34:08,969 Для мяне, які выглядае як а [? Foo?] Ўжо. 711 00:34:08,969 --> 00:34:10,093 >> МАРЫЯ ZLATKOVA: Так, так. 712 00:34:10,093 --> 00:34:12,969 Такім чынам, яшчэ раз, гэта замовіць карту ў гэтым сэнсе 713 00:34:12,969 --> 00:34:15,639 што варта разумець, Напрыклад, паказальнікі 714 00:34:15,639 --> 00:34:20,159 Тут можна разумець як 0, 1, 2, 3. 715 00:34:20,159 --> 00:34:25,929 Зноў жа, гэта тыя, якія маюць Індэксы наш эквівалент 716 00:34:25,929 --> 00:34:28,980 мець ключы, адлюстравання на каштоўнасцяў. 717 00:34:28,980 --> 00:34:34,710 Так што, калі наш ключ быў 0-- прабачце. 718 00:34:34,710 --> 00:34:36,524 >> Ханна Блумбэрг: Не, там мел тут. 719 00:34:36,524 --> 00:34:36,929 Гэта на самай справе вельмі прыемна. 720 00:34:36,929 --> 00:34:37,460 >> МАРЫЯ ZLATKOVA: Гэта выдатна. 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 >> Ханна Блумбэрг: Добра, па дулю. 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 МАРЫЯ ZLATKOVA: Так. 731 00:35:02,300 --> 00:35:04,630 Такім чынам, гэта 0, гэта 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Яны могуць быць вашы ключы. 733 00:35:05,760 --> 00:35:10,020 Вы можаце думаць пра іх as-- так. 734 00:35:10,020 --> 00:35:12,740 Такім чынам, замест таго, ключах, яны 735 00:35:12,740 --> 00:35:17,180 накшталт як зразумеў, індэксы, пачынаючы з 0. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Мел не дапаможа. 738 00:35:24,820 --> 00:35:25,722 Так. 739 00:35:25,722 --> 00:35:30,914 >> АЎДЫТОРЫЯ: Для цыкл па кожнаму элементу, калі б мы хацелі, каб праглядзець, як каштоўнасць, 740 00:35:30,914 --> 00:35:33,245 гэта было б проста аўтаматычна індэкс 0? 741 00:35:33,245 --> 00:35:34,120 МАРЫЯ ZLATKOVA: Так. 742 00:35:34,120 --> 00:35:35,745 Было б прайсці кожнае з значэнняў. 743 00:35:35,745 --> 00:35:39,130 АЎДЫТОРЫЯ: [неразборліва], як 0 або, што б проста зрабіць 0? 744 00:35:39,130 --> 00:35:43,710 >> МАРЫЯ ZLATKOVA: Вы б сказаць, як знак даляра, а затым 745 00:35:43,710 --> 00:35:46,266 некаторыя імя зменнай, значэнне. 746 00:35:46,266 --> 00:35:47,182 АЎДЫТОРЫЯ: [неразборліва]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 МАРЫЯ ZLATKOVA: Выбачайце? 749 00:35:50,964 --> 00:35:52,839 АЎДЫТОРЫЯ: На жаль, я проста спрабую ўспомніць. 750 00:35:52,839 --> 00:35:57,190 Як бы вы, што калі вы можаце зрабіць гэта аўтаматычна індэксацыі проста 0 з? 751 00:35:57,190 --> 00:36:00,780 >> МАРЫЯ ZLATKOVA: Так як бы вы зрабіць гэта калі ў вас не было канкрэтных імёнаў ключоў? 752 00:36:00,780 --> 00:36:01,710 >> АЎДЫТОРЫЯ: Так. 753 00:36:01,710 --> 00:36:07,820 >> МАРЫЯ ZLATKOVA: Вы б проста define-- проста сказаць сабе, як які-то імя. 754 00:36:07,820 --> 00:36:17,950 Так што ў вашым psets, вы, хлопцы, маглі б памятаеце Еогеасп $ шэраг як $ радкоў, 755 00:36:17,950 --> 00:36:24,610 мы стварылі гэты OURSELF $ шэраг кажучы мы хочам, каб прайсці праз шэраг, як $ шэрагаў. 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 >> МАРЫЯ ZLATKOVA: Так што гэта не па сутнасці гэта новая пераменная. 763 00:36:49,990 --> 00:37:00,310 Гэта зменная, якая ставіцца да ўнутры масіва да кожнага з іх. 764 00:37:00,310 --> 00:37:02,060 Ханна Блумбэрг: Гэта новая пераменная імя. 765 00:37:02,060 --> 00:37:04,018 МАРЫЯ ZLATKOVA: Так, гэта новая пераменная імя, 766 00:37:04,018 --> 00:37:06,680 але гэта не inherently-- так. 767 00:37:06,680 --> 00:37:08,950 Гэта проста новая пераменная што вы можаце зрабіць гэта. 768 00:37:08,950 --> 00:37:12,680 Такім чынам, як мы зрабілі $ Веславаць, як $ радкоў, радкоў 769 00:37:12,680 --> 00:37:17,980 быў новую зменную імя, што мы можа стварыць у нашай цыкл па кожнаму элементу. 770 00:37:17,980 --> 00:37:22,065 Гэта не павінен існаваць да да гэтага. 771 00:37:22,065 --> 00:37:25,777 >> АЎДЫТОРЫЯ: Не маглі б вы прайсці праз Логіка для кожнага, выкарыстоўваючы прыклад ёсць? 772 00:37:25,777 --> 00:37:26,610 МАРЫЯ ZLATKOVA: Ммм. 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 >> МАРЫЯ ZLATKOVA: Якая ідэя мець ключ, які паказвае на шануеце? 786 00:38:10,680 --> 00:38:16,400 Гэта проста яшчэ адзін канвенцыя, іншы спосаб ісці па масіву 787 00:38:16,400 --> 00:38:22,600 і быць у стане атрымаць доступ да альбо ключ ці значэнне або абодва, і выкарыстоўваць іх. 788 00:38:22,600 --> 00:38:27,100 >> АЎДЫТОРЫЯ: Якая роля для замовіць што Еогеасп працуе ў? 789 00:38:27,100 --> 00:38:29,250 Так што, калі мы павінны былі дадаць элементы ў масіў пазней, 790 00:38:29,250 --> 00:38:32,140 будзе тых, быць першымі называецца ў масіве Еогеасп, 791 00:38:32,140 --> 00:38:33,750 ці гэта будзе пазней? 792 00:38:33,750 --> 00:38:37,770 >> МАРЫЯ ZLATKOVA: Так што парадак, што Еогеасп 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 >> МАРЫЯ ZLATKOVA: Новыя элементы can-- у асноўным, калі новыя элементы дадаюцца, 803 00:39:14,280 --> 00:39:16,520 яны дадаюцца ў канец масіва? 804 00:39:16,520 --> 00:39:17,632 >> АЎДЫТОРЫЯ: Так. 805 00:39:17,632 --> 00:39:18,840 МАРЫЯ ZLATKOVA: Я веру ў гэта. 806 00:39:18,840 --> 00:39:20,850 Так. 807 00:39:20,850 --> 00:39:24,330 А потым з цыкл па кожнаму элементу, пасля таго як вы дадалі новыя элементы 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 >> МАРЫЯ ZLATKOVA: Вядома. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 Ці магу я даць прыклад таго, што мы хацелі б зрабіць з каштоўнасць? 816 00:39:46,410 --> 00:39:52,440 Так што вы, хлопцы, можаце быць знаёмыя з з'яўляецца тое, што мы пайшлі праз масіў 817 00:39:52,440 --> 00:39:55,380 і ў асноўным друкуюцца кожны з элементаў, 818 00:39:55,380 --> 00:40:00,910 напрыклад, як частка спарадкаваны спіс або што-то, што. 819 00:40:00,910 --> 00:40:02,674 Ці мае гэта сэнс ці мы хочам, мэтай якіх 820 00:40:02,674 --> 00:40:04,340 АЎДЫТОРЫЯ: Ці можам мы раздрукаваць гэтыя значэння па-за домам? 821 00:40:04,340 --> 00:40:13,220 МАРЫЯ ZLATKOVA: Так, мы маглі б друкаваць і то ў асноўным таму, што значэнне $ у 822 00:40:13,220 --> 00:40:16,570 што канкрэтнае значэнне, мы б друк значэнне ўнутры яго. 823 00:40:16,570 --> 00:40:20,150 Так што, калі мы былі ў нашай першай ітэрацыі з яго, і мы надрукаваныя $ значэнне, 824 00:40:20,150 --> 00:40:23,775 мы б друкаваць бар. 825 00:40:23,775 --> 00:40:27,020 >> АЎДЫТОРЫЯ: Ёсць таксама для завесы ў PHP або проста Foreach завесы? 826 00:40:27,020 --> 00:40:30,430 >> МАРЫЯ ZLATKOVA: Там гэта Таксама для завес ў PHP. 827 00:40:30,430 --> 00:40:33,399 І іх логіка ў асноўным гэтак жа, як тое, што вы былі раней. 828 00:40:33,399 --> 00:40:34,690 АЎДЫТОРЫЯ: Такім чынам, яе значэнне роўна нулю. 829 00:40:34,690 --> 00:40:35,090 МАРЫЯ ZLATKOVA: Гэта як тое ж самае. 830 00:40:35,090 --> 00:40:35,590 Так. 831 00:40:35,590 --> 00:40:37,747 АЎДЫТОРЫЯ: Я проста хачу, каб спытаць. 832 00:40:37,747 --> 00:40:39,695 Таму, калі вы аб'яўляеце Масіў, вам не трэба 833 00:40:39,695 --> 00:40:42,617 сказаць, што памер ён збіраецца быць, што азначае, што вы можаце проста 834 00:40:42,617 --> 00:40:44,417 дадаць і забраць элементы [неразборліва]. 835 00:40:44,417 --> 00:40:45,250 МАРЫЯ ZLATKOVA: Так. 836 00:40:45,250 --> 00:40:45,750 Так. 837 00:40:45,750 --> 00:40:46,251 Дакладна. 838 00:40:46,251 --> 00:40:48,875 Калі мы аб'яўляем масіў, мы не трэба казаць, што памер гэта, 839 00:40:48,875 --> 00:40:51,022 такім чынам, мы можам проста дадаць элементы на гэта пазней. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Яшчэ пытанні? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 Дык чаго PHP і HTML разам, тое, што мы seen-- добра, 844 00:41:05,950 --> 00:41:15,130 Напрыклад, у гэтым прыкладзе, мы маем HTML-форма, якая мае полі ўводу. 845 00:41:15,130 --> 00:41:18,830 >> І поле ўводу проста назва і то ён мае кнопку Адправіць. 846 00:41:18,830 --> 00:41:26,040 І пры націску Адаслаць Кнопка, на наш hello.php файла, 847 00:41:26,040 --> 00:41:32,130 паколькі метад для формы атрымаць, мы можам атрымаць доступ усё, што знаходзіцца на імя 848 00:41:32,130 --> 00:41:40,360 гэтым атрымаць глабальную зменную, якая is-- сінтаксіс гэта $ _GET. 849 00:41:40,360 --> 00:41:44,520 І тады мы можам атрымаць доступ незалежна ад карыстацкі ўвод у гэтай форме для імя 850 00:41:44,520 --> 00:41:47,410 паказаўшы імя гэтага поля. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Любыя іншыя пытанні або любы пытанні па гэтым канкрэтным прыкладзе? 853 00:41:55,060 --> 00:41:58,275 >> АЎДЫТОРЫЯ: Дзе PHP? 854 00:41:58,275 --> 00:41:59,150 МАРЫЯ ZLATKOVA: Тут. 855 00:41:59,150 --> 00:42:01,150 Так што гэта наш які адкрывае тэга для PHP. 856 00:42:01,150 --> 00:42:01,530 >> АЎДЫТОРЫЯ: Так, правільна. 857 00:42:01,530 --> 00:42:02,363 >> МАРЫЯ ZLATKOVA: Так. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> Ханна Блумбэрг? Аб: = гэта скарачэнне для гэтага з'яўляецца PHP і проста рэха. 860 00:42:09,609 --> 00:42:10,150 АЎДЫТОРЫЯ: Ой. 861 00:42:10,150 --> 00:42:10,720 МАРЫЯ ZLATKOVA: Так, прабачце. 862 00:42:10,720 --> 00:42:12,040 Я павінен быў зрабіць, што ясна. 863 00:42:12,040 --> 00:42:13,759 >> Ханна Блумбэрг: Друк. 864 00:42:13,759 --> 00:42:16,800 МАРЫЯ ZLATKOVA: Гэта проста функцыя што дазваляе надрукаваць што-небудзь. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Вялікае пытанне. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 Так going-- так. 869 00:42:25,495 --> 00:42:31,940 >> АЎДЫТОРЫЯ: Ці ёсць будзе дастаткова трохі ручнога кадавання РНР і 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 МАРЫЯ ZLATKOVA: Там можа быць ладная колькасць інтэрпрэтацыі 873 00:42:38,810 --> 00:42:43,330 РНР і HTML, не абавязкова як велізарная колькасць кадавання, 874 00:42:43,330 --> 00:42:46,960 калі вы, магчыма, прыйдзецца напісаць цыкл па кожнаму элементу, хоць, для завесы. 875 00:42:46,960 --> 00:42:49,790 Любы з завес, якія мы покрыва тут сумленная гульня. 876 00:42:49,790 --> 00:42:51,889 І гэта ў асноўным гэта. 877 00:42:51,889 --> 00:42:53,430 Ханна Блумбэрг: Я быў бы гатовы. 878 00:42:53,430 --> 00:42:57,010 Такім жа чынам, што мы прасілі вас напісаць кучу функцый C на віктарыне 0, 879 00:42:57,010 --> 00:42:59,766 Я б гатовы зрабіць тое ж самае ў PHP і JavaScript. 880 00:42:59,766 --> 00:43:00,640 МАРЫЯ ZLATKOVA: Так. 881 00:43:00,640 --> 00:43:03,210 Ханна Блумбэрг: Я б сказаў, little-- як мы не 882 00:43:03,210 --> 00:43:06,251 зробіць вас напісаць велізарны HTML- старонка проста, таму што гэта трохі 883 00:43:06,251 --> 00:43:08,240 стомна, але вы, магчыма, часткі. 884 00:43:08,240 --> 00:43:09,310 Гэта зусім справядлівая гульня. 885 00:43:09,310 --> 00:43:11,082 Як невялікі HTML старонкі, цалкам справядлівым. 886 00:43:11,082 --> 00:43:11,623 АЎДЫТОРЫЯ: ОК. 887 00:43:11,623 --> 00:43:13,814 Як наконт у JavaScript, а? 888 00:43:13,814 --> 00:43:14,730 Ханна Блумбэрг: Так. 889 00:43:14,730 --> 00:43:15,250 Справядлівая гульня ў JavaScript. 890 00:43:15,250 --> 00:43:15,635 >> МАРЫЯ ZLATKOVA: Так. 891 00:43:15,635 --> 00:43:16,801 Гэта цалкам справядлівая гульня. 892 00:43:16,801 --> 00:43:19,280 Ханна Блумбэрг: Мы атрымаем да таго, што ў падобных 10 хвілін. 893 00:43:19,280 --> 00:43:23,750 >> МАРЫЯ ZLATKOVA: SQL, зноў жа, Structured Query Language. 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-- UPDATE, INSERT, SELECT і DELETE. 901 00:43:47,560 --> 00:43:50,790 >> Такім чынам, для UPDATE, гэта сінтаксіс для абнаўлення дадзеных у базе дадзеных. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Абнаўленне гэтай табліцы пад назвай Табліца кажучы SET, 904 00:43:57,340 --> 00:44:04,170 мы можам усталяваць некаторыя значэння ва ўсіх Радкі ў роўнай чагосьці яшчэ. 905 00:44:04,170 --> 00:44:09,410 Такім чынам, мы можам таксама пазначыць некаторыя канкрэтныя Запісы, якія мы хочам змяніць 906 00:44:09,410 --> 00:44:11,240 і што можа быць з дапамогай ДЗЕ. 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 Так INSERT INTO табліцы, а затым значэння, 914 00:44:35,150 --> 00:44:39,080 а затым у дужках мы паказваем які шануе вы хочаце ўставіць. 915 00:44:39,080 --> 00:44:43,220 Так INSERT ў табліцу, 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 І потым, калі мы толькі што абралі год ID і год ад студэнтаў 943 00:46:08,360 --> 00:46:11,710 дзе дом Кабот Дом, які будзе, зноў жа, вярнуцца Ханна і я. 944 00:46:11,710 --> 00:46:14,430 >> Тады, калі мы выдалілі са студэнтаў дзе імя роўна Адзежа, 945 00:46:14,430 --> 00:46:16,760 што б выдаліць усю радок. 946 00:46:16,760 --> 00:46:19,696 І потым, калі мы ўсталёўваем Імя, UPDATE студэнты 947 00:46:19,696 --> 00:46:21,570 SET імя роўная Daven ДЗЕ дом роўны 948 00:46:21,570 --> 00:46:27,010 Кабот Дом, які збіраецца ісці да гэтыя радкі, а затым змяніць імя. 949 00:46:27,010 --> 00:46:31,470 >> А потым некалькі тыпаў дадзеных SQL з'яўляюцца ЗНАК, VARCHAR, INT і FLOAT. 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 МАРЫЯ ZLATKOVA: Ну, Прама зараз, гэта не захоўваецца. 960 00:46:59,160 --> 00:47:00,700 Ва ўсякім выпадку, дзе гэтая табліца захоўваецца? 961 00:47:00,700 --> 00:47:04,503 Але ён можа быць захаваны ў базе дадзеных SQL ст. 962 00:47:04,503 --> 00:47:07,330 >> АЎДЫТОРЫЯ: А дзе гэта база дадзеных SQL? 963 00:47:07,330 --> 00:47:11,200 У кампутары, у Інтэрнэце дзе сервер? 964 00:47:11,200 --> 00:47:15,000 >> МАРЫЯ ZLATKOVA: Гэта можа быць колькасць розных рэчаў. 965 00:47:15,000 --> 00:47:19,690 >> Ханна Блумбэрг: Мы спалучаная з SQL табліцы ў асноўным з PhpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 Такім чынам, мы маглі б спытаць сервер захоўваць іх для нас. 967 00:47:22,060 --> 00:47:23,830 Мы маглі б захоўваць іх на ўласным кампутары. 968 00:47:23,830 --> 00:47:27,950 >> МАРЫЯ ZLATKOVA: Гэта залежыць толькі ад як вы хочаце, каб зрабіць гэта для сябе. 969 00:47:27,950 --> 00:47:30,075 Але мы былі захоўвання ім, як ужо згадвалася Ханна, 970 00:47:30,075 --> 00:47:31,755 на PhpMyAdmin, які знаходзіцца ў сетцы. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 А потым, як мы выкарыстоўваем PHP і SQL, мы захоўваем яго 973 00:47:39,280 --> 00:47:43,450 у нейкай зменнай тое, што мы запытваюцца. 974 00:47:43,450 --> 00:47:48,370 >> Так што, калі мы Вылучыць усё гісторыі дзе user_id роўная ідэнтыфікатар сесіі, 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 >> Хуткі агляд Мадэль мадэль View Controller, 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 Такім чынам, цыкл, які перабірае у параўнанні з дадзенымі, якія раздрукоўваюцца 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 >> Ханна Блумбэрг: ОК, крута. 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 Такім чынам, давайце пагаворым аб JavaScript і як гэта трохі 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, у адрозненне ад С і гэта 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 >> Мы збіраемся, каб убачыць крыху Ajax. 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 і З як правіла, на баку сервера. 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 >> Ханна Блумбэрг: Ах, што зусім асінхронна на ўвазе? 1078 00:53:13,620 --> 00:53:14,250 Вялікае пытанне. 1079 00:53:14,250 --> 00:53:17,890 Асінхронны азначае: добра, ўтрыманне ў якіх 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 Мы скакаць нашмат больш у асінхронныя запыты з Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> АЎДЫТОРЫЯ: Ці ёсць JavaScript-- дзе робіць ён упаў з Model-View-Controller? 1102 00:54:18,287 --> 00:54:19,620 Ханна Блумбэрг: Вялікае пытанне. 1103 00:54:19,620 --> 00:54:23,320 Дзе падзенне JavaScript з Model-View-Controller? 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 >> Ханна Блумбэрг: Так. 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 Так што я збіраюся атрымаць гэта прыязны трохі ўсплывальнае. 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, мы будзем мець вар, імя зменнай, а затым 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 Я буду называць яго я і яго значэнне 50. 1154 00:56:35,076 --> 00:56:36,450 У PHP, гэта крыху лягчэй. 1155 00:56:36,450 --> 00:56:41,880 Мы кажам, эй, я хачу зменную называецца я і яго значэнне 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 Кожны наступны раз, калі я выкарыстаць я, мне не трэба, каб напісаць вар. 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 завесы будзе выглядаць у нешта накшталт C, дзе ваш цыкл 1166 00:57:09,799 --> 00:57:11,840 будзе мець тры parts-- ініцыялізацыю, 1167 00:57:11,840 --> 00:57:13,640 стан і абнаўленне. 1168 00:57:13,640 --> 00:57:15,340 Некаторы час цыклу, ён выглядае сапраўды такі ж. 1169 00:57:15,340 --> 00:57:16,390 Мы проста даць яму стан. 1170 00:57:16,390 --> 00:57:18,264 >> І ў той час як завесы рабіць, зноў, сапраўды гэтак жа. 1171 00:57:18,264 --> 00:57:20,190 Мы даем гэты стан. 1172 00:57:20,190 --> 00:57:24,510 Скажам, я хацеў, каб ітэрацыі over-- Я хацеў зрабіць што-то ў пяць разоў. 1173 00:57:24,510 --> 00:57:27,840 У C, мы маглі б напісаць для ініцыялізацыі я роўная 0. 1174 00:57:27,840 --> 00:57:30,480 я менш, чым 5, я ++. 1175 00:57:30,480 --> 00:57:34,240 Толькі розніца ў JavaScript, замест таго каб сказаць INT я роўная 0, 1176 00:57:34,240 --> 00:57:36,820 мы кажам, вар я роўная 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 Або ў тым, што ў прыкладзе вар? 1183 00:57:49,564 --> 00:57:50,480 Ханна Блумбэрг: Так. 1184 00:57:50,480 --> 00:57:52,310 Такім чынам, у PHP, гэта будзе быць знак даляра. 1185 00:57:52,310 --> 00:57:59,450 Дык гэта будзе $ я роўных 0, $ я менш 5, $ я ++. 1186 00:57:59,450 --> 00:58:02,490 Вялікае пытанне. 1187 00:58:02,490 --> 00:58:04,570 >> Зараз давайце пагаворым аб аб'явы функцый. 1188 00:58:04,570 --> 00:58:07,010 У C, калі мы абвешчаны Функцыя, мы далі яму імя 1189 00:58:07,010 --> 00:58:08,490 і мы далі яму некаторыя параметры. 1190 00:58:08,490 --> 00:58:10,670 І ў пачатку, мы пісалі тып. 1191 00:58:10,670 --> 00:58:12,440 У 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 І ён прымае два аргументу х і у. 1196 00:58:20,820 --> 00:58:23,280 Звярніце ўвагу, што мы не клапоцімся аб тыпах х і у. 1197 00:58:23,280 --> 00:58:26,280 І гэтак жа, як C, у нас ёсць гэта вяртанне ключавое слова, 1198 00:58:26,280 --> 00:58:29,140 так што мы можам зрабіць нешта як зваротны х і у. 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 Я прыкрылі Вар суму прайшоў пробы, і мы толькі што сказалі, 1205 00:58:46,400 --> 00:58:49,850 Функцыя ху роўная зваротны х плюс у. 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 Ханна Блумбэрг: Так. 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 >> Калі я не зрабіў вар сума роўная Функцыя, калі я проста выдаліў 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 >> АЎДЫТОРЫЯ: Ці можаце вы спасылацца суму ў іншыя месцы са значэннем х плюс у? 1234 00:59:59,580 --> 01:00:01,940 >> Ханна Блумбэрг: Ці можаце вы спасылка сума ў іншых месцах 1235 01:00:01,940 --> 01:00:03,360 са значэннем х плюс у? 1236 01:00:03,360 --> 01:00:05,130 Я не зусім упэўнены, што вы маеце на ўвазе. 1237 01:00:05,130 --> 01:00:10,582 >> АЎДЫТОРЫЯ: Так што вашыя міма паў-ананімна Функцыя сума роўная гэтага 1238 01:00:10,582 --> 01:00:14,452 ананімная функцыя, так сума Цяпер пераменная, што вы can-- 1239 01:00:14,452 --> 01:00:15,410 Ханна Блумбэрг: Дакладна. 1240 01:00:15,410 --> 01:00:18,980 Так сума пераменная, але гэта actually-- 1241 01:00:18,980 --> 01:00:23,770 так сума з'яўляецца пераменная, значэнне функцыі. 1242 01:00:23,770 --> 01:00:27,030 Такім чынам, гэта функцыя, якая з'яўляецца своеасаблівай дзіўная рэч, каб абгарнуць вакол галавы 1243 01:00:27,030 --> 01:00:29,880 так як мы гулялі з З, і вы не можаце зрабіць гэта на мове C. 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 Ханна Блумбэрг: Так. 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 Ханна Блумбэрг: Не, мы не трэба выкарыстоўваць прататыпы, 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 вам не трэба пісаць уаг 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 >> Гэта вельмі дрэнная практыка, каб ніколі не кажы ў відавочнай вар я, 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 мы называем яго так жа, як, х, у, як кожны раз? 1271 01:01:29,864 --> 01:01:30,780 Ханна Блумбэрг: Так. 1272 01:01:30,780 --> 01:01:32,572 Такім чынам, гэтыя два істотна зрабіць тое ж самае. 1273 01:01:32,572 --> 01:01:35,113 АЎДЫТОРЫЯ: І чым перавага выкарыстання аднаго або іншага? 1274 01:01:35,113 --> 01:01:37,500 Ханна Блумбэрг: Няма перавагай выкарыстання аднаго або іншага. 1275 01:01:37,500 --> 01:01:40,080 Я проста хацеў паказаць вам два розныя часткі сінтаксісу. 1276 01:01:40,080 --> 01:01:42,770 Шмат разоў, калі ананімны Функцыі маюць мэта 1277 01:01:42,770 --> 01:01:48,220 , Калі аргумент на іншы функцыя павінна быць функцыяй. 1278 01:01:48,220 --> 01:01:50,600 І мы ўбачым, што ў толькі другі з Ajax. 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 >> АЎДЫТОРЫЯ: Калі х і ў змяненне пазней ад таго, будзе падвесці змяніць, а? 1285 01:02:03,635 --> 01:02:06,510 Ханна Блумбэрг: Калі х і ў змяненне пазней, будуць падведзены змяніць, а? 1286 01:02:06,510 --> 01:02:08,840 Так што гэта на самай справе я думаю, тое, што гэта, 1287 01:02:08,840 --> 01:02:12,260 зноў жа, гэта проста адчувае сябе вельмі розныя з C. Гэта не каштоўнасць. 1288 01:02:12,260 --> 01:02:13,620 Гэта не 5. 1289 01:02:13,620 --> 01:02:15,550 Гэта проста сама функцыя. 1290 01:02:15,550 --> 01:02:19,110 Таму, як толькі вы дасце яму параметры, то вы на самой справе вылічыць значэнне. 1291 01:02:19,110 --> 01:02:21,193 >> МАРЫЯ ZLATKOVA: А потым Вы можаце выклікаць функцыю 1292 01:02:21,193 --> 01:02:23,272 і выкарыстоўваць яго, каб атрымаць нейкую каштоўнасць. 1293 01:02:23,272 --> 01:02:24,230 Ханна Блумбэрг: Дакладна. 1294 01:02:24,230 --> 01:02:25,250 Дакладна. 1295 01:02:25,250 --> 01:02:25,863 Так. 1296 01:02:25,863 --> 01:02:27,946 >> АЎДЫТОРЫЯ: Так што, калі вы толькі што захоўваць яго ў зменнай, 1297 01:02:27,946 --> 01:02:31,430 як вар х роўная суме двух values-- 1298 01:02:31,430 --> 01:02:32,420 >> Ханна Блумбэрг: Так. 1299 01:02:32,420 --> 01:02:35,320 Такім чынам, вы можаце проста зрабіць уаг суму роўная суме двух значэнняў. 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 Ханна Блумбэрг: Мм. 1306 01:02:45,895 --> 01:02:46,395 Мм. 1307 01:02:46,395 --> 01:02:51,253 Калі вы зрабілі нешта як, сума роўная сума 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> АЎДЫТОРЫЯ: Так. 1309 01:02:53,170 --> 01:02:56,465 >> Ханна Блумбэрг: Я лічу, што будзе перазапісваць значэнне сумы. 1310 01:02:56,465 --> 01:02:59,290 Дык яшчэ адзін цікавы рэч 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 і шмат як З, дзе мы можам сказаць, у гэтым выпадку, 1329 01:03:41,720 --> 01:03:48,360 калі б я хацеў слова JavaScript, я б у обр квадратныя дужкі з 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 >> Ханна Блумбэрг: Так, робіць Ваша жыццё нашмат прасцей. 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 навобмацак шмат, як у C структур 1342 01:04:15,480 --> 01:04:18,280 і асацыятыўныя масівы ў PHP. 1343 01:04:18,280 --> 01:04:20,270 Так што мы бачылі Шмат гэта JSON, які 1344 01:04:20,270 --> 01:04:23,150 выступае за JavaScript Object Notation. 1345 01:04:23,150 --> 01:04:25,550 І гэта ў асноўным спосаб структуравання нашы дадзеныя. 1346 01:04:25,550 --> 01:04:27,880 >> Такім чынам, давайце паглядзім прыклад, верагодна, самы просты. 1347 01:04:27,880 --> 01:04:32,540 Дык вось прыклад аб'екта што захоўвае клас, CS50. 1348 01:04:32,540 --> 01:04:37,790 І калі я кажу клас, я маю на ўвазе, вядома, ня like-- ды, курс, CS50. 1349 01:04:37,790 --> 01:04:40,730 І вы ўбачыце, што усё ў аб'екце 1350 01:04:40,730 --> 01:04:43,526 будзе ўтрымлівацца у фігурныя дужкі. 1351 01:04:43,526 --> 01:04:48,260 >> І мы пачынаем асацыяваць імёны палёў або ключы з рознымі значэннямі. 1352 01:04:48,260 --> 01:04:52,920 Такім чынам, вы можаце пачаць бачыць, як гэты від адчувае, як асацыятыўны масіў у PHP. 1353 01:04:52,920 --> 01:04:57,450 Такім чынам, мы збіраемся, каб звязаць поле або імя ключа, вядома, са радком, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Мы збіраемся, каб мець інструктара. 1356 01:04:59,940 --> 01:05:00,940 Мы збіраемся, каб мець ТФ. 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 каб мець камбінацыю радкоў і нумары і Булевы масівы і 1362 01:05:19,620 --> 01:05:23,420 і ўсё астатняе, вы маглі б хочаце, каб унутры аб'екта. 1363 01:05:23,420 --> 01:05:28,570 І звярніце ўвагу, што яны збіраюцца, каб быць імёны або ключы, а затым мы проста 1364 01:05:28,570 --> 01:05:30,300 ўсталяваць яго роўным з невялікім тоўстай кішкі. 1365 01:05:30,300 --> 01:05:32,015 >> АЎДЫТОРЫЯ: Што менавіта гэта азначае JSON? 1366 01:05:32,015 --> 01:05:33,890 Ханна Блумбэрг: Што менавіта робіць JSON на ўвазе? 1367 01:05:33,890 --> 01:05:36,470 JSON проста каштуе для JavaScript Object Notation. 1368 01:05:36,470 --> 01:05:38,430 Гэта проста спосаб фарматавання. 1369 01:05:38,430 --> 01:05:40,040 Так. 1370 01:05:40,040 --> 01:05:41,800 Гэта спосаб фарматавання нашы дадзеныя. 1371 01:05:41,800 --> 01:05:43,620 >> У C, гэта структур. 1372 01:05:43,620 --> 01:05:45,800 У 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 Ханна Блумбэрг: 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 Ханна Блумбэрг: Вядома. 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 Ханна Блумбэрг: Вядома. 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 з дзевяці да васьмі. 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 Мы кажам вар searchButton роўная document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> Такім чынам, як вы ўжо маглі здагадацца, што гэта робіць гэта кажа, 1437 01:08:46,450 --> 01:08:50,920 ОК, трэба знайсці элемент з ID 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 Вы націснулі кнопку Search. 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 >> Ханна Блумбэрг: Выбачайце? 1457 01:09:53,162 --> 01:09:55,130 >> АЎДЫТОРЫЯ: Ці ёсць у нас фізічна код ўсё гэта? 1458 01:09:55,130 --> 01:09:56,340 >> Ханна Блумбэрг: Ці ёсць у нас у фізічна код ўсё гэта? 1459 01:09:56,340 --> 01:09:56,839 Так. 1460 01:09:56,839 --> 01:09:58,120 Хіба гэта не выгляд раздражняе? 1461 01:09:58,120 --> 01:10:00,032 Гэта шмат кода. 1462 01:10:00,032 --> 01:10:01,574 >> АЎДЫТОРЫЯ: Вы маглі імпартаваць нешта. 1463 01:10:01,574 --> 01:10:02,532 Ханна Блумбэрг: Дакладна. 1464 01:10:02,532 --> 01:10:03,610 Мы маглі б выкарыстоўваць нешта. 1465 01:10:03,610 --> 01:10:08,140 І ў particular-- аб, гэта кажа, што мне трэба вучыць падзел. 1466 01:10:08,140 --> 01:10:11,061 У прыватнасці, давайце выкарыстоўваць бібліятэку 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 Гэта робіць анімацыю прасцей і гэта робіць Ajax прасцей. 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, знайсці мяне ў што з ID 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 Проста зрабіць трохі абвесткі, Вы націснулі кнопку Search. 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 Як я ведаю, што гэта ID 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 Ханна Блумбэрг: Так. 1502 01:11:52,940 --> 01:11:56,450 Гэты сімвал хэш, гэта проста, як CSS. 1503 01:11:56,450 --> 01:12:00,080 Так што памятаеце, з CSS, калі мы хацеў, каб выбраць нешта па ID, 1504 01:12:00,080 --> 01:12:01,590 мы выкарыстоўвалі знак #. 1505 01:12:01,590 --> 01:12:05,400 І калі мы хацелі, каб выбраць то па класе, мы выкарыстоўваем кропку. 1506 01:12:05,400 --> 01:12:06,870 Выдатна. 1507 01:12:06,870 --> 01:12:08,230 Зрабіце пачуццё? 1508 01:12:08,230 --> 01:12:11,500 Так 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 Ханна Блумбэрг: Вядома. 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 Ханна Блумбэрг: ОК? 1517 01:12:27,353 --> 01:12:32,120 І тады мы праходзім яго ў якасці Аргумент, мэтай якіх давайце 1518 01:12:32,120 --> 01:12:37,040 гэта ўнутраная одно-- функцыі мышы. 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 Ханна Блумбэрг: Так. 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 МАРЫЯ ZLATKOVA: Добра. 1529 01:12:51,380 --> 01:12:52,760 Добра. 1530 01:12:52,760 --> 01:12:54,210 >> Ханна Блумбэрг: Высокі. 1531 01:12:54,210 --> 01:12:55,720 Некаторыя хутка карысна JQuery. 1532 01:12:55,720 --> 01:12:57,559 Я не збіраюся ісці праз ўсіх з іх. 1533 01:12:57,559 --> 01:12:59,350 Гэтыя слайды будуць да онлайн трохі 1534 01:12:59,350 --> 01:13:02,040 пазней, так што вы можаце праверыць гэта з трохі пазней. 1535 01:13:02,040 --> 01:13:07,120 Але ў прынцыпе, агульнае малюнак мае, дзе мы гаворым, 1536 01:13:07,120 --> 01:13:11,510 ОК, эй, 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 Ханна Блумбэрг: Вялікае пытанне. 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 магчымасць выбару па ID і па class-- гэтак жа, як CSS. 1553 01:13:58,310 --> 01:14:01,876 А затым фактычныя функцыі сам сабе, мы, хутчэй за ўсё, вам сказаць. 1554 01:14:01,876 --> 01:14:02,376 Так. 1555 01:14:02,376 --> 01:14:05,591 >> АЎДЫТОРЫЯ: Такім чынам, калі вы выберыце па класе будзе азначаць кропку. 1556 01:14:05,591 --> 01:14:06,840 Ханна Блумбэрг: Так, менавіта так. 1557 01:14:06,840 --> 01:14:07,340 Добра. 1558 01:14:07,340 --> 01:14:10,461 Пры выбары па класе, гэта будзе быць кропка, а не знак фунта. 1559 01:14:10,461 --> 01:14:10,960 Так. 1560 01:14:10,960 --> 01:14:12,710 >> АЎДЫТОРЫЯ: Хацелі б Вы перайсці розніцы 1561 01:14:12,710 --> 01:14:14,310 паміж выбарам па ID і класа? 1562 01:14:14,310 --> 01:14:14,560 >> Ханна Блумбэрг: Вядома. 1563 01:14:14,560 --> 01:14:17,510 Розніца паміж выбару ID і выбару па класе. 1564 01:14:17,510 --> 01:14:20,685 Так, як сказаў Марыі трохі раней, 1565 01:14:20,685 --> 01:14:26,280 можа быць толькі адзін элемент HTML- з зададзенай ID, у той час як клас, 1566 01:14:26,280 --> 01:14:29,740 гэта дазваляе нам групаваць кучу з розных элементаў разам, 1567 01:14:29,740 --> 01:14:34,300 так што рэчы, звязаныя, але не зусім тое ж самае. 1568 01:14:34,300 --> 01:14:35,685 Ці значыць гэта, адказаць на пытанне? 1569 01:14:35,685 --> 01:14:36,200 Высокі. 1570 01:14:36,200 --> 01:14:37,194 Так. 1571 01:14:37,194 --> 01:14:40,680 >> АЎДЫТОРЫЯ: Што рабіць, калі ў вас ёсць некалькі рэчы, якія ў адным класе? 1572 01:14:40,680 --> 01:14:42,150 >> Ханна Блумбэрг: Што адбываецца калі ў вас ёсць некалькі рэчаў, якія 1573 01:14:42,150 --> 01:14:43,280 тое ж самае клас? 1574 01:14:43,280 --> 01:14:45,829 Так, напрыклад, калі мы толькі з дапамогай чыстага 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 >> І вы павінны альбо перабраць іх або знайсці, які вы хочаце. 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 >> Давайце пагаворым аб Ajax. 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 >> І тое, што гэтая функцыя робіць яго прымае URL і некаторыя parameters-- 1614 01:16:25,020 --> 01:16:28,000 так што я думаю, у выпадку з pset8, як гэта было, 1615 01:16:28,000 --> 01:16:33,520 URL-адрас быў articles.php і Параметры было ісці = некаторы паштовы індэкс. 1616 01:16:33,520 --> 01:16:41,580 І гэта кажа, добра, зрабіце запыт на гэты адрас з зададзенымі параметрамі. 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 Адмова будзе функцыя што называецца, калі запыт не 1630 01:17:29,050 --> 01:17:30,450 па якой прычыне. 1631 01:17:30,450 --> 01:17:35,104 І ў выпадку pset8, мы проста console.log яго. 1632 01:17:35,104 --> 01:17:36,020 Любыя пытанні па гэтай нагоды? 1633 01:17:36,020 --> 01:17:36,300 Так. 1634 01:17:36,300 --> 01:17:39,633 >> АЎДЫТОРЫЯ: Ці можам мы проста выкарыстоўваць функцыю тэта замест функцыі, textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 Ханна Блумбэрг: Вядома. 1637 01:17:44,380 --> 01:17:46,713 Так што так, я думаю, што ў PSET, мы толькі што бачылі функцыю дадзеных. 1638 01:17:46,713 --> 01:17:48,700 Так што гэта проста the-- так, добра. 1639 01:17:48,700 --> 01:17:50,510 Гэта тое, што мы бачылі ў PSET. 1640 01:17:50,510 --> 01:17:51,480 Гэта зусім нармальна. 1641 01:17:51,480 --> 01:17:54,210 >> Такія толькі, калі вы хочаце выцягнуць больш інфармацыі, 1642 01:17:54,210 --> 01:17:57,190 гэта тое, што вы маглі б атрымаць ад .getJSON. 1643 01:17:57,190 --> 01:17:59,040 Добры пытанне. 1644 01:17:59,040 --> 01:17:59,706 Што-небудзь яшчэ? 1645 01:17:59,706 --> 01:18:00,206 Так. 1646 01:18:00,206 --> 01:18:01,787 >> АЎДЫТОРЫЯ: Так .getJSON з'яўляецца Аякс? 1647 01:18:01,787 --> 01:18:02,620 Ханна Блумбэрг: ОК. 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 І гэтыя асінхронныя выклікі, гэта тое, што мы на ўвазе як Ajax. 1651 01:18:16,080 --> 01:18:16,850 Так. 1652 01:18:16,850 --> 01:18:20,185 Гэта заняло ў мяне вельмі шмат часу, каб расцягнуць, калі я быў студэнтам. 1653 01:18:20,185 --> 01:18:21,560 АЎДЫТОРЫЯ: Ці можаце вы сказаць, што зноў? 1654 01:18:21,560 --> 01:18:22,476 Ханна Блумбэрг: Так. 1655 01:18:22,476 --> 01:18:23,630 Ці магу я сказаць, што яшчэ раз? 1656 01:18:23,630 --> 01:18:29,010 Гэтая функцыя .getJSON, гэта функцыя JQuery. 1657 01:18:29,010 --> 01:18:31,970 І гэта збіраецца зрабіць асінхронны выклік. 1658 01:18:31,970 --> 01:18:35,700 І гэтыя асінхронныя выклікі, мы спасылаўся на тыя, як Ajax. 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 МАРЫЯ ZLATKOVA: Высокі, добра. 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 МАРЫЯ ZLATKOVA: Дакладна. 1674 01:19:12,370 --> 01:19:14,180 Ідэальны. 1675 01:19:14,180 --> 01:19:15,384 Што гэта завецца? 1676 01:19:15,384 --> 01:19:16,300 Вы толькі што згадалі яго. 1677 01:19:16,300 --> 01:19:16,840 >> АЎДЫТОРЫЯ: Перапаўненне буфера. 1678 01:19:16,840 --> 01:19:18,381 >> МАРЫЯ ZLATKOVA: Так, перапаўненне буфера. 1679 01:19:18,381 --> 01:19:21,230 Так што гэта тое, што мы называюць перапаўненнем буфера. 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 МАРЫЯ ZLATKOVA: Прапанова гэта, вылучыць дадатковая памяць памерам перавышаны. 1700 01:20:37,170 --> 01:20:39,800 На самай справе, мы можам зрабіць што-то нашмат прасцей, чым, што, як добра. 1701 01:20:39,800 --> 01:20:44,870 Мы можам проста атрымаць даўжыню радка аргументу, які ўводзіцца, 1702 01:20:44,870 --> 01:20:48,590 праверыць, калі гэта менш ці роўным 12-- 1703 01:20:48,590 --> 01:20:50,790 што тое, што мы хочам яго быць, таму што мы не хочам, 1704 01:20:50,790 --> 01:20:52,373 гэта выхад за межы нашага буфера. 1705 01:20:52,373 --> 01:20:55,690 І потым, калі гэта не так, мы можа працаваць з аргументам. 1706 01:20:55,690 --> 01:21:00,296 І потым, калі гэта адбудзецца, мы на самай справе хочам каб Yello патэнцыйна у карыстальніка. 1707 01:21:00,296 --> 01:21:01,670 Але гэта, як мы б гэтага рабіць. 1708 01:21:01,670 --> 01:21:02,443 Так. 1709 01:21:02,443 --> 01:21:04,360 >> АЎДЫТОРЫЯ: Ці маглі б вы растлумачыць тетсру вельмі хутка? 1710 01:21:04,360 --> 01:21:05,443 МАРЫЯ ZLATKOVA: О, прабачце. 1711 01:21:05,443 --> 01:21:06,040 Так. 1712 01:21:06,040 --> 01:21:11,290 Тетсру прымае ўсе is-- прабачце, ОК. 1713 01:21:11,290 --> 01:21:15,850 Тетсру прымае ўсе, што ў бары, усё, што перадаецца 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 МАРЫЯ ZLATKOVA: І ён збіраецца copy-- трэці аргумент проста ставіцца 1720 01:21:28,360 --> 01:21:30,601 пра тое, колькі гэта будзе скапіяваць у с. 1721 01:21:30,601 --> 01:21:31,142 АЎДЫТОРЫЯ: Ах. 1722 01:21:31,142 --> 01:21:33,030 Так што гэта свайго капіяванне усё гэта потым. 1723 01:21:33,030 --> 01:21:34,310 >> МАРЫЯ ZLATKOVA: Так, гэта капіраванне усяго гэтага. 1724 01:21:34,310 --> 01:21:34,810 Так. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Па-першае, мы ўпэўненыя, бар ня роўны нулю, таму што гэта паказальнік. 1727 01:21:41,910 --> 01:21:44,680 Тады мы атрымаем даўжыню радка бар. 1728 01:21:44,680 --> 01:21:47,530 Мы ўпэўненыя, што гэта менш або роўна 12. 1729 01:21:47,530 --> 01:21:50,070 А потым, таму што мы пераканаліся, мы можам на самай справе 1730 01:21:50,070 --> 01:21:53,122 тетсру і быць упэўненыя, што гэта нармальна. 1731 01:21:53,122 --> 01:21:53,705 Любыя пытанні? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 Выдатна. 1734 01:21:58,690 --> 01:22:00,400 У мяне ёсць два сапраўдным або ілжывым пытанні. 1735 01:22:00,400 --> 01:22:05,470 Можа хто-небудзь сказаць мне адразу калі яны праўдзівыя або ілжывыя? 1736 01:22:05,470 --> 01:22:07,460 Так, гэта хлусня. 1737 01:22:07,460 --> 01:22:07,960 Дакладна. 1738 01:22:07,960 --> 01:22:09,330 Абодва з іх з'яўляюцца ілжывымі. 1739 01:22:09,330 --> 01:22:12,682 Такім чынам, выкарыстанне аднаго пароля ніколі не сапраўды добрая ідэя 1740 01:22:12,682 --> 01:22:14,890 таму што, калі хтосьці ведае пароль, яны могуць проста 1741 01:22:14,890 --> 01:22:16,260 доступ да ўсіх іншых свае рахункі. 1742 01:22:16,260 --> 01:22:19,260 А потым іконы нічога не рабіць для забеспячэння бяспекі. 1743 01:22:19,260 --> 01:22:24,900 Мы павінны, як правіла, шукаюць HTTPS замест HTTP і URL. 1744 01:22:24,900 --> 01:22:28,560 >> І некаторыя іншыя віды нападаў, якія мы ўжо згадвалі, 1745 01:22:28,560 --> 01:22:31,390 што Дэвід згадваецца ў лекцыі, атакі SQL-ін'екцыі. 1746 01:22:31,390 --> 01:22:37,310 Мы ўжо бачылі, што, калі мы don't-- Функцыя CS50 запыт гарантуе, што SQL 1747 01:22:37,310 --> 01:22:39,530 атакі ін'екцыі не можа адбыцца. 1748 01:22:39,530 --> 01:22:42,640 Але калі мы не выкарыстоўвалі CS50, цытата, канец цытаты "ў запыце," 1749 01:22:42,640 --> 01:22:46,830 мы павінны былі б пераканацца, што карыстацкі ўвод на самай справе не некаторыя SQL 1750 01:22:46,830 --> 01:22:49,670 запыт, які будзе выклікаць ўсе Нашы сталы для ўпаў 1751 01:22:49,670 --> 01:22:54,070 ці нешта дрэннае, каб адбудзецца з нашай базай дадзеных. 1752 01:22:54,070 --> 01:22:56,790 >> Згон сесіі з'яўляецца яшчэ адзін тып атакі 1753 01:22:56,790 --> 01:23:05,940 што адбываецца, калі некаторыя дрэнна чалавек выкарыстоўвае сесіі некаторых ахвяры 1754 01:23:05,940 --> 01:23:08,740 ID для доступу да рэгістрацыйнай інфармацыі. 1755 01:23:08,740 --> 01:23:13,620 Такім чынам, вельмі трывіяльны прыклад, які як калі ў нас ёсць кампутар у грамадскім, 1756 01:23:13,620 --> 01:23:21,120 то дрэнны чалавек уваходзіць у, а затым яны маюць печыва, захаваныя. 1757 01:23:21,120 --> 01:23:23,380 І печыва не зменіцца сесіі. 1758 01:23:23,380 --> 01:23:27,620 >> Тады мы ахвярай перайсці ў а затым зайсці на сайт. 1759 01:23:27,620 --> 01:23:30,290 Печыва не зьмяніць на працягу пэўнага сеансу. 1760 01:23:30,290 --> 01:23:33,060 І тады ахвяра рэгіструе ў сайт, а затым сыходзіць. 1761 01:23:33,060 --> 01:23:36,190 І тады чалавек, які ўзыходзіць можа па-ранейшаму выкарыстоўваць іх ідэнтыфікатар сеансу 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 >> МАРЫЯ ZLATKOVA: Так Пытанне ў тым, ці з'яўляецца ўтрыманне 1786 01:24:55,730 --> 01:24:59,720 сканцэнтравана галоўным чынам на рэчы пасля віктарыны 1? 1787 01:24:59,720 --> 01:25:06,070 Такім чынам, акцэнт робіцца на пасля Тэст 1, за выключэннем 1788 01:25:06,070 --> 01:25:10,914 што мы павінны засяродзіцца на рэчах, у pset5 і шмат структур дадзеных 1789 01:25:10,914 --> 01:25:11,580 што мы разгледзелі. 1790 01:25:11,580 --> 01:25:14,300 І мы не можам сказаць, што мы можа ігнараваць што-небудзь да 1791 01:25:14,300 --> 01:25:17,120 , Таму што гэта абапіраецца на яго, а таксама. 1792 01:25:17,120 --> 01:25:21,845 >> Так засяродзіцца на тым, што, плюс pset5 матэрыял як у тым ліку звязаныя спісы, стэкі, 1793 01:25:21,845 --> 01:25:23,720 Чарзе, і ўсё што Ханна падышла. 1794 01:25:23,720 --> 01:25:24,050 >> Ханна Блумбэрг: Дакладна. 1795 01:25:24,050 --> 01:25:27,450 Так, мы пайшлі па ўсёй C рэчы у самым пачатку вельмі хутка. 1796 01:25:27,450 --> 01:25:29,090 Але пераканайцеся, што для разгляду гэтага. 1797 01:25:29,090 --> 01:25:32,700 Вярніцеся назад і паглядзець віктарыны 0 водгук. 1798 01:25:32,700 --> 01:25:36,110 >> Яшчэ пара лагістычныя адзначае, проста ў той час як у нас ёсць Вашу ўвагу. 1799 01:25:36,110 --> 01:25:39,100 Мы будзем мець працоўныя гадзіны і ў панядзелак, і ў аўторак вечарам. 1800 01:25:39,100 --> 01:25:41,540 Яны збіраюцца, каб быць у MD 119. 1801 01:25:41,540 --> 01:25:44,220 Гэта ўсё на сайце, так што калі вы не чуеце яго, ні клопатаў. 1802 01:25:44,220 --> 01:25:45,266 >> МАРЫЯ ZLATKOVA: з 8:30 да 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> Ханна Блумбэрг: Так, з 8:30 да 11:00. 1804 01:25:46,260 --> 01:25:46,910 Мы будзем там. 1805 01:25:46,910 --> 01:25:48,368 Мы будзем там, каб адказаць на пытанні. 1806 01:25:48,368 --> 01:25:49,480 Гэта даволі холад і весялосьць. 1807 01:25:49,480 --> 01:25:53,240 Вы, хлопцы, можаце задаць любыя пытанні што ў вас на віктарыну 1. 1808 01:25:53,240 --> 01:25:55,740 І віктарыны на 1 Серада, так што ўдачы. 1809 01:25:55,740 --> 01:25:59,770 Калі ў вас ёсць якія-небудзь пытанні, можа быць, прыйсці пагаварыць з намі тут адзін на адзін. 1810 01:25:59,770 --> 01:26:00,880 Прахладны. 1811 01:26:00,880 --> 01:26:01,630 Вялікі дзякуй. 1812 01:26:01,630 --> 01:26:02,880 >> МАРЫЯ ZLATKOVA: дзякуй, хлопцы. 1813 01:26:02,880 --> 01:26:03,480 >> АЎДЫТОРЫЯ: Ура. 1814 01:26:03,480 --> 01:26:05,930 >> [Апладысменты] 1815 01:26:05,930 --> 01:26:07,530