1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> ДАВИД Малан: У реду. 3 00:00:12,360 --> 00:00:15,970 То је ЦС50, а ово је крај седмице девет. 4 00:00:15,970 --> 00:00:18,560 Прошло је више од вихор последњих неколико дана. 5 00:00:18,560 --> 00:00:21,580 А Проблем сет седам, ако си колено дубоко у њега, схваташ да је сасвим 6 00:00:21,580 --> 00:00:23,340 битни ново да је унутра. 7 00:00:23,340 --> 00:00:26,660 Али, хајде да видимо да ли можемо комад све заједно овде укратко 8 00:00:26,660 --> 00:00:29,230 пре тога скрећући искључен у још други правац и виђење 9 00:00:29,230 --> 00:00:30,510 где другде можемо да идемо. 10 00:00:30,510 --> 00:00:32,630 >> Дакле до сада, ми смо разговарали о ХТМЛ-у. 11 00:00:32,630 --> 00:00:33,740 Разговарали смо о ЦСС. 12 00:00:33,740 --> 00:00:34,705 Разговарали смо о ПХП. 13 00:00:34,705 --> 00:00:36,520 Почели сте да доживите СКЛ. 14 00:00:36,520 --> 00:00:38,360 Данас, ми ћемо разговарати мало о ЈаваСцрипт. 15 00:00:38,360 --> 00:00:41,230 Али како све то диспаратан језици уклапају заједно? 16 00:00:41,230 --> 00:00:44,970 >> Тако да смо разговарали прошле недеље о појам има сервер. 17 00:00:44,970 --> 00:00:48,470 Дакле, хајде да скренем овај правоугаоник као веб сервер овде. 18 00:00:48,470 --> 00:00:52,200 И веб сервер служи сигурно фајлове. 19 00:00:52,200 --> 00:00:54,640 А неки од тих фајлова може бити ХТМЛ фајл. 20 00:00:54,640 --> 00:00:58,270 Дакле, једна од ствари које веб сервер може испљунути можда фајл који 21 00:00:58,270 --> 00:01:01,290 само ћемо извући овако садржи неке ХТМЛ. 22 00:01:01,290 --> 00:01:04,786 Дакле, у смислу лаике, шта не ХТМЛ-пусти ти? 23 00:01:04,786 --> 00:01:06,036 >> ПУБЛИКА: Страница изгледа лепо. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> ДАВИД Малан: У реду, направи страна изгледа лепо, мада мислим да сам доказао 26 00:01:12,310 --> 00:01:13,370 то иначе. 27 00:01:13,370 --> 00:01:18,250 Дакле, ХТМЛ не дозволити да нокаутирати странице структурно, а она ти омогућава да 28 00:01:18,250 --> 00:01:22,410 некако естетски означили странице, означили статицни садржај, тако да 29 00:01:22,410 --> 00:01:23,640 може затим га видите са веб бровсер. 30 00:01:23,640 --> 00:01:24,690 >> Али то је кључ. 31 00:01:24,690 --> 00:01:26,130 То је статички садржај. 32 00:01:26,130 --> 00:01:28,590 Ти га напишете, ви га сачувате, а онда га брод. 33 00:01:28,590 --> 00:01:31,130 И веб сервер онда служи је до своје посетиоце. 34 00:01:31,130 --> 00:01:35,700 >> Али ми стилизовати ствари користећи различите језик у потпуности. 35 00:01:35,700 --> 00:01:40,150 Почели смо да користимо стил атрибут на одређеним ознакама. 36 00:01:40,150 --> 00:01:43,400 И стил атрибут нам сет ствари као што су величина фонта и боје. 37 00:01:43,400 --> 00:01:46,460 И вероватно сте почели да открије, или ви ускоро ће за финале 38 00:01:46,460 --> 00:01:50,160 пројекти потенцијално, још други особине које можете користити у ЦСС. 39 00:01:50,160 --> 00:01:54,710 И тако у смислу лаике, шта стварно онда се ЦСС уради? 40 00:01:54,710 --> 00:01:57,810 То су само примери њихове. 41 00:01:57,810 --> 00:02:00,730 Шта то да ти дозволим ХТМЛ не изгледа да од онога 42 00:02:00,730 --> 00:02:02,606 Видели смо до сада? 43 00:02:02,606 --> 00:02:04,850 >> ПУБЛИКА: Дефинисање стилова сами. 44 00:02:04,850 --> 00:02:06,700 >> ДАВИД Малан: Дефинисање стилова сами. 45 00:02:06,700 --> 00:02:10,280 Дакле, дефинисати ствари као класе као ти Можда сте наишли, или јединствено 46 00:02:10,280 --> 00:02:13,800 идентификује чворове у документу тако да можете да их стилизовати. 47 00:02:13,800 --> 00:02:16,890 Али конкретно, ја бих рекао да је ЦСС заиста вам омогућава да се ствари 48 00:02:16,890 --> 00:02:20,790 ласт миле и омогућава вам да наведете много прецизније естетика, 49 00:02:20,790 --> 00:02:24,340 док ХТМЛ највећим делом омогућава Ви структурирају своје странице. 50 00:02:24,340 --> 00:02:27,310 >> И иако постоје неке подразумеване, као што смо видели ознаку за 51 00:02:27,310 --> 00:02:30,690 тарифног броја ознака, који грубо говорећи направио ствари велика и смела. 52 00:02:30,690 --> 00:02:34,250 То је прилично генерички дефиниција од тага - велики и храбар. 53 00:02:34,250 --> 00:02:35,260 Шта величина фонта је то? 54 00:02:35,260 --> 00:02:36,080 Које боје је то? 55 00:02:36,080 --> 00:02:36,890 Како је то смео? 56 00:02:36,890 --> 00:02:39,830 И ЦСС вам омогућава више фино туне такве ствари. 57 00:02:39,830 --> 00:02:42,150 Као и изглед, као неки од које сте видели. 58 00:02:42,150 --> 00:02:45,180 >> И искрено, ЦСС је мало од непријатног језика. 59 00:02:45,180 --> 00:02:48,370 То је веома моћан у који можете направити буквално сваки сајт који сте да 60 00:02:48,370 --> 00:02:51,880 види на интернету данас са њим, али то је врста бола у врату. 61 00:02:51,880 --> 00:02:54,440 А неки од вас су лупао главу против зидова већ само да се ураде 62 00:02:54,440 --> 00:02:58,560 нешто глупо попут центра менија на Проблем сет седам ако сте стечен на 63 00:02:58,560 --> 00:02:59,470 Већ то поента. 64 00:02:59,470 --> 00:03:01,530 >> Али схватите, те ствари се лакше током времена. 65 00:03:01,530 --> 00:03:02,820 Можете почети приметити обрасце. 66 00:03:02,820 --> 00:03:06,020 И опет, Гоогле ће бити твој пријатељ за различите начине на које можете да 67 00:03:06,020 --> 00:03:07,220 реше овакве проблеме. 68 00:03:07,220 --> 00:03:11,520 >> И ја усудио рећи са ЦСС, ХТМЛ и више генерално, можете да решите проблеме у 69 00:03:11,520 --> 00:03:15,910 много више начина, од којих сви могу врло добро бити исправан, него сте могли 70 00:03:15,910 --> 00:03:18,900 у нешто попут Ц, чак Сада ПХП, или ЈаваСцрипт. 71 00:03:18,900 --> 00:03:21,080 Постоји само много различитих начина да се поротници ствари. 72 00:03:21,080 --> 00:03:22,570 >> Али ово почело да се нереду, рекли смо. 73 00:03:22,570 --> 00:03:26,480 Само мало измешана свој ХТМЛ и Ваш ЦСС код стилу атрибут био 74 00:03:26,480 --> 00:03:27,590 мало аљкаво. 75 00:03:27,590 --> 00:03:31,460 И тако смо уместо тога, рекао је, на неки начин апстрактно говорећи, да ли треба да 76 00:03:31,460 --> 00:03:34,050 барем почињу да фактор од вашег ЦСС вероватно. 77 00:03:34,050 --> 00:03:37,430 Није твој стил атрибуте, али барем користите стил ознаку унутра шта 78 00:03:37,430 --> 00:03:38,840 део веб страници? 79 00:03:38,840 --> 00:03:39,560 >> ПУБЛИКА: Глава. 80 00:03:39,560 --> 00:03:40,120 >> ДАВИД Малан: У главу. 81 00:03:40,120 --> 00:03:43,270 До сада, само смо имали титулу горе тамо, али такође можете додати стил 82 00:03:43,270 --> 00:03:47,230 означите, а можете грубо ставите ЦСС говорећи ка врху странице. 83 00:03:47,230 --> 00:03:52,550 Али онда смо узели ствари један корак даље и ми смо фактор да се више 84 00:03:52,550 --> 00:03:54,130 у посебном фајлу. 85 00:03:54,130 --> 00:03:57,240 >> И тако ова два фајла су некако сада повезан. 86 00:03:57,240 --> 00:03:59,550 И заиста је било ознака да је то урадио. 87 00:03:59,550 --> 00:04:02,920 А шта је био један од кровним Мотивација за факторинг нашу ЦСС 88 00:04:02,920 --> 00:04:04,057 све више? 89 00:04:04,057 --> 00:04:05,280 >> ПУБЛИКА: поновног. 90 00:04:05,280 --> 00:04:05,785 >> ДАВИД Малан: поновног. 91 00:04:05,785 --> 00:04:06,150 Зар не? 92 00:04:06,150 --> 00:04:09,470 Можда сте видели у Тел-сет седам већ да много страница, 93 00:04:09,470 --> 00:04:12,260 куповина страна, продаја страна, Портфолио страна, вероватно 94 00:04:12,260 --> 00:04:13,550 структуиран нешто слично. 95 00:04:13,550 --> 00:04:17,579 Постоји ЦС50 финансије логотип на врху осим ако сте одлучили да га промени. 96 00:04:17,579 --> 00:04:19,839 Ту је подножје у дну странице. 97 00:04:19,839 --> 00:04:24,315 И ЦСС омогућава онда да га факторишу га у посебан фајл, тако да ако 98 00:04:24,315 --> 00:04:27,780 желите да промените нешто глобално преко целог сајта, можете заиста 99 00:04:27,780 --> 00:04:29,390 само га промените на једном месту. 100 00:04:29,390 --> 00:04:32,750 >> Али постоји цена коју плаћате потенцијално тиме што се урачуна 101 00:04:32,750 --> 00:04:38,380 ЦСС из мог ХТМЛ датотеку у посебан филе је референцирање са 102 00:04:38,380 --> 00:04:40,650 ознака, који смо видели у понедељак. 103 00:04:40,650 --> 00:04:43,850 Шта може бити мана од овога? 104 00:04:43,850 --> 00:04:48,830 Размишљање назад пре недељу дана када смо говори о ХТТП и ТЦП / ИП и како 105 00:04:48,830 --> 00:04:52,070 Интернет функционише. 106 00:04:52,070 --> 00:04:53,530 Нешто овде? 107 00:04:53,530 --> 00:04:54,730 >> ПУБЛИКА: Потребно више времена. 108 00:04:54,730 --> 00:04:55,470 >> ДАВИД Малан: Потребно више времена. 109 00:04:55,470 --> 00:04:56,750 Зашто? 110 00:04:56,750 --> 00:04:59,450 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 111 00:04:59,450 --> 00:04:59,750 >> ДАВИД Малан: Да. 112 00:04:59,750 --> 00:05:01,240 Тако да вероватно потребно мало више времена. 113 00:05:01,240 --> 00:05:04,290 Јер један, ЦСС је очигледно не у истом фајлу. 114 00:05:04,290 --> 00:05:06,920 Дакле, сада морате да не би један, али два захтева. 115 00:05:06,920 --> 00:05:11,230 И сваки од тих захтева, као што смо видели у Цхроме у тзв инспектора, 116 00:05:11,230 --> 00:05:15,740 и ми смо гледали картици мреже, сваки од тих фајлова захтева један ХТТП 117 00:05:15,740 --> 00:05:18,360 Захтев, који смо видели траје одређена количина времена. 118 00:05:18,360 --> 00:05:19,290 Сада, можда то није много. 119 00:05:19,290 --> 00:05:20,670 Можда је само 20 милисекунди. 120 00:05:20,670 --> 00:05:22,260 Можда је 200 милисекунди. 121 00:05:22,260 --> 00:05:25,530 >> Али размислите странице као што су Фацебоок, или ЦНН, или Гоогле, који су много 122 00:05:25,530 --> 00:05:28,060 већи од примера које смо погледао до сада. 123 00:05:28,060 --> 00:05:32,070 Те странице можда имају десетине фајлова, од којих сваки може захтевати 124 00:05:32,070 --> 00:05:33,550 преузимање датотеке. 125 00:05:33,550 --> 00:05:35,800 Дакле, ствари могу потенцијално почети да успори. 126 00:05:35,800 --> 00:05:39,280 >> А посебно ових дана када смо сви имају мобилне телефоне у нашим џеповима и 127 00:05:39,280 --> 00:05:43,010 спорије интернет везе, имајући у сачекајте још неколико милисекунди, неколико 128 00:05:43,010 --> 00:05:46,110 више милисекунди за додатне фајлови заправо може бити спор. 129 00:05:46,110 --> 00:05:50,430 Кашњење је реч која описује врста чекања да имате да вам 130 00:05:50,430 --> 00:05:53,110 доживљавају када чека неки податак. 131 00:05:53,110 --> 00:05:54,430 >> Али ту је наопако. 132 00:05:54,430 --> 00:05:56,600 Дакле, то није све врста - 133 00:05:56,600 --> 00:05:58,170 то је заправо помало клацкалице овде. 134 00:05:58,170 --> 00:06:02,970 Лоша сада, али шта претраживачи могу да ураде ако су паметни, како би се избегло 135 00:06:02,970 --> 00:06:08,870 има да тражи исти стилес.цсс филе опет може бити да уради шта? 136 00:06:08,870 --> 00:06:09,390 >> Кеса је. 137 00:06:09,390 --> 00:06:10,370 Тако кеширање - 138 00:06:10,370 --> 00:06:11,690 Ц-А-Ц-Х-Е - 139 00:06:11,690 --> 00:06:15,810 генерално овде значи само да сачувате филе сте тражили први пут, и 140 00:06:15,810 --> 00:06:17,440 затим проверите кеш за то. 141 00:06:17,440 --> 00:06:20,400 Проверите да сте некако контејнера за складиштење, а ако сте већ 142 00:06:20,400 --> 00:06:24,520 копија стилес.цсс, чак и ако неки други страна у п-сет, или било који сајт, 143 00:06:24,520 --> 00:06:28,560 тражи га поново, само да би се корисник те исте сачувана копија. 144 00:06:28,560 --> 00:06:30,140 Не трудите се да тражи. 145 00:06:30,140 --> 00:06:32,560 >> Лоша тамо, мада, као што неки од вас су се саплео у п-сета. 146 00:06:32,560 --> 00:06:35,870 Ако направите промене на серверу и Ви се вратите на претраживача и ви 147 00:06:35,870 --> 00:06:39,250 релоад, понекад браузер ти услугу и не смета 148 00:06:39,250 --> 00:06:43,660 поново преузима ваш стилес.цсс фајл зато, хајде, шта су шансе 149 00:06:43,660 --> 00:06:47,620 да ови стилови који Фацебоок користи ће се променити из сата у сат или 150 00:06:47,620 --> 00:06:48,140 из дана у дан? 151 00:06:48,140 --> 00:06:48,800 То је прилично низак. 152 00:06:48,800 --> 00:06:52,260 Они се могу променити током времена, али не из минута у минут, или по сату. 153 00:06:52,260 --> 00:06:55,810 >> Дакле трик, само за вашу информацију када радите веб развој, често држите 154 00:06:55,810 --> 00:06:59,500 схифт тастер на пример, а затим кликните на дугме релоад у вашем претраживачу, и да ће 155 00:06:59,500 --> 00:07:03,280 обично кажем прегледача релоад све, чак и ако већ имате 156 00:07:03,280 --> 00:07:04,180 то у кешу. 157 00:07:04,180 --> 00:07:06,630 Па опет, позитивних и мана, али све од њих 158 00:07:06,630 --> 00:07:08,260 на крају дизајн одлуке. 159 00:07:08,260 --> 00:07:11,520 >> Тако сада, нисмо само завршити причу овде. 160 00:07:11,520 --> 00:07:15,790 Ако ја сада вратим назад и назад и и назад, почели смо да представимо не само 161 00:07:15,790 --> 00:07:18,060 ХТМЛ, али ПХП. 162 00:07:18,060 --> 00:07:20,786 Дакле, у смислу лаике, шта нема ПХП-нам уради? 163 00:07:20,786 --> 00:07:22,770 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 164 00:07:22,770 --> 00:07:24,258 >> ДАВИД Малан: Шта је то? 165 00:07:24,258 --> 00:07:25,250 >> ПУБЛИКА: Увести логику у коду. 166 00:07:25,250 --> 00:07:26,620 >> ДАВИД Малан: Да, увести логика у вашем коду. 167 00:07:26,620 --> 00:07:29,570 Дакле, то је истина програмски језик са петље, и променљиве, и 168 00:07:29,570 --> 00:07:32,620 функције, и услови, и све ствари које смо тразили пут назад 169 00:07:32,620 --> 00:07:33,780 кад од нуле. 170 00:07:33,780 --> 00:07:36,780 И ПХП, видели смо, може да се користи или у командној линији - то 171 00:07:36,780 --> 00:07:39,190 не мора да има никакве везе са Веба, чак иако је то 172 00:07:39,190 --> 00:07:43,150 стварно порекло и оно што тежи да буде добар у и доприносе - 173 00:07:43,150 --> 00:07:47,130 али можете да користите ПХП само по природи чињенице да има отисак () 174 00:07:47,130 --> 00:07:49,660 функција, и принтф () функцију, или ехо () функцију. 175 00:07:49,660 --> 00:07:52,440 Има гомиле начина на које може да штампа текст са ПХП. 176 00:07:52,440 --> 00:07:56,540 >> Дакле, можете да користите овај програм језик за излаз тачно 177 00:07:56,540 --> 00:07:58,460 шта смо причали пре. 178 00:07:58,460 --> 00:08:01,360 Можете динамички могу генерисати Ваш ХТМЛ. 179 00:08:01,360 --> 00:08:02,300 Можда није све. 180 00:08:02,300 --> 00:08:06,460 Можда сте хард код ствари, као што су заглавље, подножје и, и логотип, 181 00:08:06,460 --> 00:08:07,950 и свој стил листова, и све то. 182 00:08:07,950 --> 00:08:11,190 Али за тако нешто п-сет седам, где сте манипулисање акцијама и 183 00:08:11,190 --> 00:08:14,690 показујући портфолио корисника, који је ће се динамички мењати, можете да 184 00:08:14,690 --> 00:08:18,960 сигурно користити ПХП и логику она даје ви као програмски језик за 185 00:08:18,960 --> 00:08:22,320 излаз динамички подскупови странице. 186 00:08:22,320 --> 00:08:25,900 >> Дакле, када говоримо о динамичких сајтова, или веб програмирање, то је 187 00:08:25,900 --> 00:08:27,200 шта ви заправо говорите. 188 00:08:27,200 --> 00:08:31,450 Коришћење језика као што су ПХП, или ствари зове Питхон, Руби или, или Јава, или 189 00:08:31,450 --> 00:08:35,900 још други језици, да се упит базу података често, или други сервер, и 190 00:08:35,900 --> 00:08:38,580 онда динамички испљунути ХТМЛ. 191 00:08:38,580 --> 00:08:42,470 >> Сада крајњи резултат, као страну, је да ХТМЛ већине сајтова, 192 00:08:42,470 --> 00:08:45,970 укључујући и ваш п-сет седам, вероватно ће бити велики неред ако 193 00:08:45,970 --> 00:08:48,060 погледате на извору код у претраживачу. 194 00:08:48,060 --> 00:08:49,010 То није велика ствар. 195 00:08:49,010 --> 00:08:51,550 У овом тренутку, када нам је стало стил, ми бринемо о 196 00:08:51,550 --> 00:08:52,740 ствари које пишете. 197 00:08:52,740 --> 00:08:56,240 Нећемо брига о стварима да је оно што је ваш код излаза. 198 00:08:56,240 --> 00:08:59,520 Дакле, не брините о увлачењу овде ако је ПХП тако је 199 00:08:59,520 --> 00:09:01,190 заправо оутпуттинг ствари. 200 00:09:01,190 --> 00:09:04,430 Уосталом, прегледач неће брига, и људски неће бити у потрази 201 00:09:04,430 --> 00:09:05,400 на извору у сваком случају. 202 00:09:05,400 --> 00:09:09,000 Ми особље, на пример, би се гледа на вашем ПХП. 203 00:09:09,000 --> 00:09:13,440 >> Дакле, дозволите ми да сада брзо пример зашто још ово може бити корисно. 204 00:09:13,440 --> 00:09:18,620 Па искрено, ја не могу да се сетим последњи пут сам користио Ц за решавање проблема у 205 00:09:18,620 --> 00:09:19,620 стварни свет. 206 00:09:19,620 --> 00:09:22,330 Вероватно је на постдипломским студијама, када Морао сам да користим језик који 207 00:09:22,330 --> 00:09:26,710 био прилично низак ниво и дао ми прилика да се уради нешто веома висок 208 00:09:26,710 --> 00:09:30,720 обављање заиста сачували што више ЦПУ циклуса као што сам могао, у великој мери 209 00:09:30,720 --> 00:09:33,990 јер сам био користећи огромне скупове података, и сваки процесор циклус рачунати. 210 00:09:33,990 --> 00:09:37,750 И искрено, чак и у стварима као што су телефони ових дана и друге уређаје 211 00:09:37,750 --> 00:09:39,910 где не баш имати толико меморије и не баш имати као 212 00:09:39,910 --> 00:09:44,160 много процесор, користећи брже језика је још увек привлачан. 213 00:09:44,160 --> 00:09:47,290 >> Али у стварном свету, када сте само Желим да баци неки програм заједно у 214 00:09:47,290 --> 00:09:50,340 анализирати неке податке, или сте прикупљају цела гомила регистрације за 215 00:09:50,340 --> 00:09:53,330 нека група студената и желите да веома брзо аутоматизовати слање е-поште 216 00:09:53,330 --> 00:09:56,240 један по један на свакога од оних регистраната, идете да се постигне за 217 00:09:56,240 --> 00:09:59,240 језик виши ниво од Ц тако да говори. 218 00:09:59,240 --> 00:10:04,060 Нешто као ПХП Питхон или Руби, или, или а пола туцета других које постоје 219 00:10:04,060 --> 00:10:04,550 ових дана. 220 00:10:04,550 --> 00:10:07,200 Али оне три су вероватно сада највише у тренду. 221 00:10:07,200 --> 00:10:10,840 >> И шта то значи да можете да отворите се текст едитору као гедит или 222 00:10:10,840 --> 00:10:14,030 већина нешто друго и онда само старт писање кода без потребе да бринете 223 00:10:14,030 --> 00:10:17,800 о састављању, без потребе да се заиста бринете о управљање меморијом, 224 00:10:17,800 --> 00:10:20,820 имајући у виду да, иако мало аљкавост ће на крају вратити 225 00:10:20,820 --> 00:10:24,790 да те уједе ако скуп података добија већи или проблема добија велики. 226 00:10:24,790 --> 00:10:27,230 Али шта то значи за нам је следеће. 227 00:10:27,230 --> 00:10:29,860 >> Пусти ме само напред и покрените спеллер Проблем са шест сет. 228 00:10:29,860 --> 00:10:33,480 Дакле, ово је моја имплементација трие-басед да сам користио на велико 229 00:10:33,480 --> 00:10:35,500 одбор где сам не обавља тако добро. 230 00:10:35,500 --> 00:10:38,720 Вратићемо се у року од недељу дана и поново они који су на крају на врху 231 00:10:38,720 --> 00:10:40,430 велика табла на нашем последњем предавању. 232 00:10:40,430 --> 00:10:44,520 Али за сада, дозволите ми да само напред и само водим решење у тексту, а ми ћемо урадити 233 00:10:44,520 --> 00:10:48,460 Библе, и идемо. 234 00:10:48,460 --> 00:10:51,080 >> Дакле, то су све наводно погрешно написане речи од 235 00:10:51,080 --> 00:10:52,240 Кинг Јамес Библе. 236 00:10:52,240 --> 00:10:55,560 И моја је имплементација пола секунде укупно. 237 00:10:55,560 --> 00:10:58,270 Дакле, није лоше на ово Посебно рачунар. 238 00:10:58,270 --> 00:11:01,540 Али мислим о томе колико код Морао сам да пишем. 239 00:11:01,540 --> 00:11:02,880 Размислите колико сте код морала да пишем. 240 00:11:02,880 --> 00:11:06,170 Размислите колико сати сте провели у Д-сала или ваш студентски дом или где год 241 00:11:06,170 --> 00:11:07,890 заправо кодирања до тог решења. 242 00:11:07,890 --> 00:11:11,850 >> Па, ако сам заправо имају виши ниво језик као ПХП, обратите пажњу 243 00:11:11,850 --> 00:11:13,350 шта ја могу да урадим овде. 244 00:11:13,350 --> 00:11:16,410 Прво, претпоставимо да је уместо тога Ваша дистрибуција код. 245 00:11:16,410 --> 00:11:17,790 Ово је фајл који се зове буквар. 246 00:11:17,790 --> 00:11:20,220 То је доступан као део данашње дистрибуција код. 247 00:11:20,220 --> 00:11:22,670 И ја ћу да махнем руком у већини од детаља, али то је заправо 248 00:11:22,670 --> 00:11:25,500 занимљив пример како Ви можда лука језик 249 00:11:25,500 --> 00:11:28,870 као Ц преко ПХП. 250 00:11:28,870 --> 00:11:33,420 Ја буквално отворила две текстуалне прозора, један са мојим Ц верзијом спеллер.ц, 251 00:11:33,420 --> 00:11:36,960 а ја тек почела превођење га у мојој главе до ПХП и куцање га користите 252 00:11:36,960 --> 00:11:38,840 најближи еквивалент функције. 253 00:11:38,840 --> 00:11:40,100 >> Дакле, неке од ових ствари су другачије. 254 00:11:40,100 --> 00:11:43,730 Видели смо последњи пут да ПХП не користи укључити у сасвим исти начин. 255 00:11:43,730 --> 00:11:47,050 Користи захтевају типично, иако укључују не постоји. 256 00:11:47,050 --> 00:11:50,330 Дефинисати је мало другачији од # Дефине у Ц, али то је 257 00:11:50,330 --> 00:11:51,890 како направити константу. 258 00:11:51,890 --> 00:11:55,860 $ Аргц испада постоји у ПХП, па смо видели да је пре. 259 00:11:55,860 --> 00:11:58,650 Ово су само варијабле, све који почињу са доларских знакова. 260 00:11:58,650 --> 00:12:00,590 Подсетимо то су само гомила од плута поена. 261 00:12:00,590 --> 00:12:03,970 >> Дакле скратим причу, добродошли сте да флип кроз ово ако радознали, ово је 262 00:12:03,970 --> 00:12:10,010 скоро линија-за-лине конверзије Ц верзија спеллер.ц у ПХП. 263 00:12:10,010 --> 00:12:12,630 И можете да урадите ово опет за пола туцета других језика. 264 00:12:12,630 --> 00:12:14,910 >> Али оно што је занимљиво је то. 265 00:12:14,910 --> 00:12:16,910 Или шта је искрено обесхрабрујуће је то. 266 00:12:16,910 --> 00:12:20,790 Пусти ме само напред и укуцајте о дицтионари.пхп, и тврде да сам 267 00:12:20,790 --> 00:12:23,670 ићи напред и поново спроведе Проблем сет шест овде. 268 00:12:23,670 --> 00:12:27,530 >> Дакле, хајде да прво предложити да се у овом фајл, који ће се реализовати у 269 00:12:27,530 --> 00:12:30,550 ПХП, па пусти ме да отворим ознаке такве. 270 00:12:30,550 --> 00:12:34,780 Дозволите ми да себи дају глобални променљива, $ величина добија нула. 271 00:12:34,780 --> 00:12:36,710 И ја ћу да дам ја хасх табела. 272 00:12:36,710 --> 00:12:38,110 Ја ћу користити хеш табелу за ову ствар. 273 00:12:38,110 --> 00:12:42,070 Како да прогласи хасх табеле у ПХП? 274 00:12:42,070 --> 00:12:42,990 Урађено. 275 00:12:42,990 --> 00:12:43,980 У реду. 276 00:12:43,980 --> 00:12:48,870 >> Дакле, отворена заграда близу конзола представља шта у ПХП-у, као што смо видели? 277 00:12:48,870 --> 00:12:51,850 Низ, али низ који би могао бити асоцијативни низ. 278 00:12:51,850 --> 00:12:54,320 Асоцијативни низ је структура података која 279 00:12:54,320 --> 00:12:55,860 повезује кључеве са вредностима. 280 00:12:55,860 --> 00:12:59,430 >> Сада у најједноставнији бројчано индексиран низ, те тастери су шта? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Нула, један, два, три, зар не? 283 00:13:03,960 --> 00:13:08,780 Стара школа ствари назад у Ц, али се може такође бити жице као ФОО, и бар, 284 00:13:08,780 --> 00:13:12,210 или Маквелл, или било што ниска. 285 00:13:12,210 --> 00:13:14,240 Тако да могу да искористе да у само тренутак. 286 00:13:14,240 --> 00:13:17,550 >> Пусти ме само напред и прогласи функција као - 287 00:13:17,550 --> 00:13:19,020 хајде да урадимо оптерећење (прво). 288 00:13:19,020 --> 00:13:20,690 Дакле, функција оптерећење (). 289 00:13:20,690 --> 00:13:23,440 А ПХП је мало другачија у то Ви буквално куцате функцију, али ви 290 00:13:23,440 --> 00:13:24,930 не откуцајте повратни тип. 291 00:13:24,930 --> 00:13:28,760 Идем да иде напред и да кажу оптерећење () функција треба да узме у 292 00:13:28,760 --> 00:13:31,000 Аргумент $ речник, само као Ц верзија урадио. 293 00:13:31,000 --> 00:13:32,510 Ја то радим из меморије. 294 00:13:32,510 --> 00:13:34,910 >> И ја предлажем да сам да уради ово. 295 00:13:34,910 --> 00:13:37,080 Ја једноставно ћу да урадим фореацх. 296 00:13:37,080 --> 00:13:40,710 Идем да позовем функцију која се зове филе (), пролази у име које 297 00:13:40,710 --> 00:13:44,990 филе, која је променљива $ $ Речник као реч. 298 00:13:44,990 --> 00:13:49,410 А онда унутар петље за мој овде, ја сам ићи напред и складишти у мојој 299 00:13:49,410 --> 00:13:57,440 $ $ Табела која реч добија тачно. 300 00:13:57,440 --> 00:13:57,918 Урађено. 301 00:13:57,918 --> 00:14:01,264 Ох, чекај. 302 00:14:01,264 --> 00:14:02,422 Урађено. 303 00:14:02,422 --> 00:14:02,760 У реду. 304 00:14:02,760 --> 00:14:04,970 >> То је оптерећење () функција кажу у ПХП. 305 00:14:04,970 --> 00:14:05,865 Сада, зашто то ради? 306 00:14:05,865 --> 00:14:07,010 И ја сам некако вара овде. 307 00:14:07,010 --> 00:14:09,980 >> Дакле, један, фореацх смо видели кратко последњи пут. 308 00:14:09,980 --> 00:14:13,680 То само значи да можете поновити више низ без малтретирања са И 309 00:14:13,680 --> 00:14:16,150 и н и плус плус, и све то. 310 00:14:16,150 --> 00:14:21,350 Речник је наравно име датотеке, нешто као велика или мала, два 311 00:14:21,350 --> 00:14:22,830 речници смо користили у последње време. 312 00:14:22,830 --> 00:14:26,715 Фајл је функција која отвара текст фајл, то чита у линију по линију, и 313 00:14:26,715 --> 00:14:29,840 Руке си се вратио велики низ, сваки од елемената чији је 314 00:14:29,840 --> 00:14:31,340 линија из тог фајла. 315 00:14:31,340 --> 00:14:36,040 Дакле, то је комбинација фопен, и фреад, и док петља, и фцлосе, 316 00:14:36,040 --> 00:14:37,080 и све то. 317 00:14:37,080 --> 00:14:40,150 Коначно, као реч само значи да је променљива ћу имати приступ 318 00:14:40,150 --> 00:14:41,890 на сваком итерацији у овој петљи. 319 00:14:41,890 --> 00:14:46,910 >> Дакле укратко, ово је један путнички авион овде значи отворити датотеку чије име је у 320 00:14:46,910 --> 00:14:50,750 речник, променљива, поновити више то ред по ред, и сваки пут када се 321 00:14:50,750 --> 00:14:54,290 линија, продавница у променљивом зове речи, а затим урадите нешто са речју. 322 00:14:54,290 --> 00:14:55,280 Шта желим да урадим? 323 00:14:55,280 --> 00:14:58,110 Желим да ставим у моју реч хасх табеле. 324 00:14:58,110 --> 00:15:00,860 >> Па, ја могу ставити нешто у мојој хасх табелу као у Ц 325 00:15:00,860 --> 00:15:02,140 користећи угласте заграде. 326 00:15:02,140 --> 00:15:03,660 То је назив за моју хасх табеле. 327 00:15:03,660 --> 00:15:07,180 Идем у индексу у тај хашиш сто на овој локацији. 328 00:15:07,180 --> 00:15:08,920 Дакле, не изједначи нулу, не изједначи један. 329 00:15:08,920 --> 00:15:11,990 Брацкет цитат завршен цитат нешто, шта год да је реч. 330 00:15:11,990 --> 00:15:15,200 И баш као што ви можда имате у вашем хасх радни сто трие, само продавница 331 00:15:15,200 --> 00:15:17,650 ефикасно Булова, имплицитно или експлицитно. 332 00:15:17,650 --> 00:15:18,260 Урађено. 333 00:15:18,260 --> 00:15:20,000 Ја складиштење вредност истина. 334 00:15:20,000 --> 00:15:23,150 >> Сада постоји пар ствари Ја секу кривине овде. 335 00:15:23,150 --> 00:15:27,720 Технички, ту ће бити нервира нова линија, / н, на крају 336 00:15:27,720 --> 00:15:28,820 свака од ових речи. 337 00:15:28,820 --> 00:15:31,770 Тако би требало вероватно звати ПХП функцију зове котлет (), који ће 338 00:15:31,770 --> 00:15:33,460 буквално цхоп то. 339 00:15:33,460 --> 00:15:35,020 И ја заправо треба да урадите једну другу ствар. 340 00:15:35,020 --> 00:15:38,380 Вероватно би требало да повећате величину на сваки итерације, па сам праћење 341 00:15:38,380 --> 00:15:39,560 глобално шта је то. 342 00:15:39,560 --> 00:15:43,180 И искрено, и то је један од глупљи аспекти ПХП, ако си 343 00:15:43,180 --> 00:15:46,950 користећи глобалну променљиву, морате да експлицитно рећи да сте. 344 00:15:46,950 --> 00:15:51,670 Зато ћу да заправо куцате у глобалном $ Величина, глобална $ сто, а сада 345 00:15:51,670 --> 00:15:52,690 моја функција је комплетан. 346 00:15:52,690 --> 00:15:57,475 >> Дакле, не баш тако једноставно као раније, али Вероватно је мање времена него што је Ц 347 00:15:57,475 --> 00:15:58,220 верзија, можда? 348 00:15:58,220 --> 00:15:58,730 У реду. 349 00:15:58,730 --> 00:16:00,390 >> Тако да сада урадимо чек () функцију. 350 00:16:00,390 --> 00:16:04,300 Да видимо да ли ово бар узео сати на крају да нам је у Ц. Со 351 00:16:04,300 --> 00:16:06,500 пусти ме само напред и прогласи проверити као функцију. 352 00:16:06,500 --> 00:16:09,070 Узима у аргумента речи, који је ће доћи из спеллер. 353 00:16:09,070 --> 00:16:13,410 И ја ћу само да провери да ли Следећи променљива иссет, табела 354 00:16:13,410 --> 00:16:18,400 носач стртоловер од речи - 355 00:16:18,400 --> 00:16:20,590 хајде да избалансира све моје заграде - 356 00:16:20,590 --> 00:16:24,275 онда се вратите тачно. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Друго - 359 00:16:28,460 --> 00:16:30,330 то је заиста тешко део овог програма. 360 00:16:30,330 --> 00:16:31,940 Иначе, ретурн фалсе. 361 00:16:31,940 --> 00:16:32,630 Урађено. 362 00:16:32,630 --> 00:16:33,460 То је провера (). 363 00:16:33,460 --> 00:16:34,520 >> Сада, зашто то ради? 364 00:16:34,520 --> 00:16:37,040 Па, један прошао сам у једном речју, која је ниска. 365 00:16:37,040 --> 00:16:41,400 Два, ја проверавам унутар хасх сто, који се зове $ табела. 366 00:16:41,400 --> 00:16:45,470 Ја га приморава да се мала слова позивом функција прилично сличан толовер () у 367 00:16:45,470 --> 00:16:48,580 Ц, али то не целу реч, не један карактер. 368 00:16:48,580 --> 00:16:52,680 А ако је то постављено, другим речима постоји је вредност постављена, другим речима, 369 00:16:52,680 --> 00:16:54,880 ако је то истина, онда да, ово је реч. 370 00:16:54,880 --> 00:16:56,530 Зато што сам га ставио тамо са оптерећењем (). 371 00:16:56,530 --> 00:16:59,100 А ако не, ја ћу да се вратим лажна. 372 00:16:59,100 --> 00:17:00,090 >> Сада су остали лако. 373 00:17:00,090 --> 00:17:03,570 Величина Функција (), како да то урадим? 374 00:17:03,570 --> 00:17:05,230 Ја у суштини радим вратити $ величину. 375 00:17:05,230 --> 00:17:07,770 Али технички треба да радим ове досадне ствари. 376 00:17:07,770 --> 00:17:10,640 А заправо се чује, ја сам за сечење један угао превише. 377 00:17:10,640 --> 00:17:12,920 Стварно треба да урадите глобалну $ сто. 378 00:17:12,920 --> 00:17:16,260 >> Али то што је рекао, истовари). 379 00:17:16,260 --> 00:17:17,380 Унлоад () је невероватна. 380 00:17:17,380 --> 00:17:20,500 Функција истовар (). 381 00:17:20,500 --> 00:17:23,990 Како желим да спроведе истовари ()? 382 00:17:23,990 --> 00:17:25,079 Урађено. 383 00:17:25,079 --> 00:17:25,450 У реду. 384 00:17:25,450 --> 00:17:28,900 >> Дакле истовари (), управљање меморијом је потпуно збринути за вас у 385 00:17:28,900 --> 00:17:31,800 нешто попут ПХП и много језика вишег нивоа. 386 00:17:31,800 --> 00:17:32,600 Дакле, ово је невероватно. 387 00:17:32,600 --> 00:17:36,080 Као зашто дођавола смо провели прошлост осам недеља на плус Ц писања 388 00:17:36,080 --> 00:17:41,030 очигледно заиста споро, стварно време конзумирају проблеми са десетинама сати 389 00:17:41,030 --> 00:17:42,530 од раде под нашим појасевима? 390 00:17:42,530 --> 00:17:46,110 >> Па, за једну ствар, ово може да ради Казна за мале програме. 391 00:17:46,110 --> 00:17:47,840 То је свакако убрзало мој Развој време. 392 00:17:47,840 --> 00:17:49,790 Али, хајде да видимо шта се дешава у стварном свету. 393 00:17:49,790 --> 00:17:52,370 >> Пусти ме у овом директоријуму у прозору терминала. 394 00:17:52,370 --> 00:17:53,370 Има буквар. 395 00:17:53,370 --> 00:17:56,570 И приметите како у страну, а ви можда су наишли на проблем то сет 396 00:17:56,570 --> 00:17:58,190 шест или седам сет проблема. 397 00:17:58,190 --> 00:18:01,610 Не морате да стриктно енд ПХП фајлове са. пхп. 398 00:18:01,610 --> 00:18:05,250 Ако сте ставили линију као тај први у самом врху, то је посебна линија 399 00:18:05,250 --> 00:18:10,980 синтаксе која у суштини значи наћи Програм се зове ПХП и користити га за 400 00:18:10,980 --> 00:18:12,270 интерпретирају ову датотеку. 401 00:18:12,270 --> 00:18:15,410 Тако да сада нико не зна да Ја водим ПХП програм. 402 00:18:15,410 --> 00:18:19,860 Могу га покренути баш као да су нешто састављен у Ц. 403 00:18:19,860 --> 00:18:20,650 >> Али овде је ствар. 404 00:18:20,650 --> 00:18:21,600 Заправо, хајде да опет урадимо ово. 405 00:18:21,600 --> 00:18:23,530 Дропбок/псет6 /. 406 00:18:23,530 --> 00:18:25,390 Има буквар. 407 00:18:25,390 --> 00:18:26,720 Ок, 0,44 секунди. 408 00:18:26,720 --> 00:18:28,080 Он је добио брже овај пут. 409 00:18:28,080 --> 00:18:29,745 >> Сада идемо у ПХП верзији. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Фино. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Али само замислите колико времена Спасао сам у радног времена. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 У реду. 416 00:18:57,790 --> 00:19:01,020 >> Дакле 3.59 секунди, што заправо не звучи ни тачна. 417 00:19:01,020 --> 00:19:03,710 Али то је зато што скратим причу, када сте штампање огроман 418 00:19:03,710 --> 00:19:06,840 ствари на екран, да Сама успорава. 419 00:19:06,840 --> 00:19:11,260 Оно што је заиста узео процесор у Апарат је био 3.59 секунди, у 420 00:19:11,260 --> 00:19:15,260 Насупрот Ц, који је 0,44 секунде недавно. 421 00:19:15,260 --> 00:19:17,620 То је заиста ред магнитуда другачије. 422 00:19:17,620 --> 00:19:20,280 >> Па где је то цена долази? 423 00:19:20,280 --> 00:19:21,790 Зашто је тако много спорији? 424 00:19:21,790 --> 00:19:24,220 Зашто ПХП обавља тако лоше? 425 00:19:24,220 --> 00:19:25,242 Данијела? 426 00:19:25,242 --> 00:19:26,550 >> ПУБЛИКА: Нисте баш користите хеш табелу. 427 00:19:26,550 --> 00:19:27,710 >> ДАВИД Малан: Нисам стварно користите хеш табелу. 428 00:19:27,710 --> 00:19:28,760 Тако сам некако урадио. 429 00:19:28,760 --> 00:19:29,870 Дакле, то је асоцијативни низ. 430 00:19:29,870 --> 00:19:33,650 Највероватније, ако су људи у ПХП су стварно паметан, они користе испод 431 00:19:33,650 --> 00:19:39,520 хауба стварна хасх табела имплементиран у нешто попут Ц или Ц + +. 432 00:19:39,520 --> 00:19:41,290 Али. 433 00:19:41,290 --> 00:19:42,760 Да. 434 00:19:42,760 --> 00:19:44,010 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> ДАВИД Малан: Да. 437 00:19:47,080 --> 00:19:50,780 Дакле, свака од функција сам сада написао - заправо, можете да кажете да још једном 438 00:19:50,780 --> 00:19:51,480 мало гласније? 439 00:19:51,480 --> 00:19:54,509 >> ПУБЛИКА: Свака од функција које сте укључили има много више пун 440 00:19:54,509 --> 00:19:56,610 капацитет од - 441 00:19:56,610 --> 00:19:57,550 >> ДАВИД Малан: Дакле, то је истина. 442 00:19:57,550 --> 00:20:01,490 Има много више изнад главе да смо Не видим стварно фокусирајући се само на 443 00:20:01,490 --> 00:20:03,730 дицтионари.пхп, који сам управо написао. 444 00:20:03,730 --> 00:20:08,020 Насупрот томе, постоји читав преводилац иде у позадини. 445 00:20:08,020 --> 00:20:12,040 Заиста, када сам водио овај програм, он није покренут компајлиране нула и јединица 446 00:20:12,040 --> 00:20:14,290 дизајниран за мој Интел процесора. 447 00:20:14,290 --> 00:20:19,270 Уместо тога, она је покренут линију по линију ПХП код који изгледа исто 448 00:20:19,270 --> 00:20:20,350 као што смо га откуцали. 449 00:20:20,350 --> 00:20:22,475 И тако сваки пут када користите тумачи језик, ви 450 00:20:22,475 --> 00:20:23,850 заправо платити ову цену. 451 00:20:23,850 --> 00:20:27,010 То ће потрајати неко време да прочитате датотека одозго надоле, налево ка 452 00:20:27,010 --> 00:20:30,740 десно, а затим изврши сваки линија опет и опет. 453 00:20:30,740 --> 00:20:34,250 >> Сада у стварности, посебно на Интернету, можете заправо убрзати овај процес 454 00:20:34,250 --> 00:20:38,660 по кеширање резултата ПХП код се тумачи. 455 00:20:38,660 --> 00:20:41,640 И то има смисла на Интернету, јер ако нисте један корисник као 456 00:20:41,640 --> 00:20:46,300 ми овде, али 1.000 или 10.000 корисника, а затим можда први пут фајл 457 00:20:46,300 --> 00:20:49,050 приступљено је споро, али након тога то је много брже. 458 00:20:49,050 --> 00:20:51,000 >> Али и ово, опет, је компромис. 459 00:20:51,000 --> 00:20:53,870 А за тако нешто истраживачког података сет, или чак нешто као велики 460 00:20:53,870 --> 00:20:58,330 ово, ваши корисници ће на крају почети да осећају да успоравање. 461 00:20:58,330 --> 00:21:02,670 >> Дакле укратко, тумачи језици су веома у моди, веома популаран, и 462 00:21:02,670 --> 00:21:06,710 искрено су вероватно језике које треба да достигне за решавање проблема када 463 00:21:06,710 --> 00:21:08,200 након ЦС50. 464 00:21:08,200 --> 00:21:12,720 Али схватите колико сте стварно узимајући здраво за готово испод хаубе 465 00:21:12,720 --> 00:21:15,910 заиста ти протеклих неколико недеља у хасх табеле, и дрвеће, и покушава, 466 00:21:15,910 --> 00:21:20,770 који се користе на крају да се заиста имплементирати ствари као отворену конзолу, 467 00:21:20,770 --> 00:21:24,200 средња заграда, који ми сада можемо захвално узети здраво за готово. 468 00:21:24,200 --> 00:21:26,360 >> Дакле, хајде да погледамо сада у том контексту веб. 469 00:21:26,360 --> 00:21:29,890 И ја поменуо последњи пут да је гомила суперглобалс у ПХП који 470 00:21:29,890 --> 00:21:32,490 нису баш релевантни у командној линији. 471 00:21:32,490 --> 00:21:36,210 Они су више релевантна у контексту употребе ПХП у веб контексту. 472 00:21:36,210 --> 00:21:41,220 Дакле, ради на ПХП веб сервера у циљу генерисати такве ствари ХТМЛ. 473 00:21:41,220 --> 00:21:44,540 >> И ми баци поглед на $ _ГЕТ и $ _ПОСТ, и то је место где се аутоматски корисници ' 474 00:21:44,540 --> 00:21:49,100 улаз завршава једноставно ако поднесе формирају у фајл који се завршава у пхп на Интернету. 475 00:21:49,100 --> 00:21:50,460 сервера као апарата. 476 00:21:50,460 --> 00:21:53,310 Али, хајде да укратко осврнемо на $ _ЦООКИЕ И $ _СЕССИОН. 477 00:21:53,310 --> 00:21:56,670 >> У смислу лаике, шта је колачић као ви га разумети у контексту 478 00:21:56,670 --> 00:21:58,220 користећи интернет? 479 00:21:58,220 --> 00:21:59,450 >> ПУБЛИКА: Филе на рачунару. 480 00:21:59,450 --> 00:21:59,920 >> ДАВИД Малан: Да. 481 00:21:59,920 --> 00:22:03,500 То је фајл на рачунару корисника засадио год сајт 482 00:22:03,500 --> 00:22:04,410 вам се деси да посетите. 483 00:22:04,410 --> 00:22:07,334 Дакле, када одете на Фацебоок-у, када идете да банкофамерица.цом, када идете 484 00:22:07,334 --> 00:22:10,330 на гоогле.цом, када идете на скоро сваки вебсите на свету ових дана, 485 00:22:10,330 --> 00:22:14,850 укључујући цс50.нет, колачић је засађено на вашем рачунару, који је 486 00:22:14,850 --> 00:22:19,800 или вредност ускладиштене у РАМ у вашем рачунар у меморији вашег претраживача, или 487 00:22:19,800 --> 00:22:22,800 понекад заиста датотеку ускладиштену на вашем хард диску. 488 00:22:22,800 --> 00:22:26,960 >> И шта се обично чува у том фајлу није ваше корисничко име, не твој 489 00:22:26,960 --> 00:22:31,060 лозинка, обично није нешто осетљив осим аутора није тако 490 00:22:31,060 --> 00:22:35,040 добро са њихове безбедности, већ то је велики јединствени идентификатор међу 491 00:22:35,040 --> 00:22:35,680 друге ствари. 492 00:22:35,680 --> 00:22:38,920 То је велики број случајних засађено на свом рачунар али можете мислити као 493 00:22:38,920 --> 00:22:42,740 врста виртуелни печат рука као од клуб или неки забавни парк који 494 00:22:42,740 --> 00:22:47,160 омогућава особље, власници који сервис, да се сетите ко сте. 495 00:22:47,160 --> 00:22:51,030 Дакле, ако велики број случајних је као 12345678, мада то је очигледно 496 00:22:51,030 --> 00:22:54,180 Не превише случајан, мислите о томе као рука печат да када посетите 497 00:22:54,180 --> 00:22:57,930 фацебоок.цом по први пут, они су печат тај број на руци. 498 00:22:57,930 --> 00:23:01,510 А онда зато што говорите ХТТП, ви као прегледач, и зато на Фацебоок 499 00:23:01,510 --> 00:23:06,440 очигледно говори исто као веб сервер, ХТТП протокол каже да 500 00:23:06,440 --> 00:23:09,930 било када касније посетити фацебоок.цом, без обзира да ли је то други 501 00:23:09,930 --> 00:23:13,560 касније, сат касније, чак и сутрадан, све док нисте експлицитно 502 00:23:13,560 --> 00:23:17,050 одјављени, који ефективно је као прање руку. 503 00:23:17,050 --> 00:23:20,280 ХТТП каже да би требало да представи свој рука печат сваки пут ти 504 00:23:20,280 --> 00:23:22,020 вратите на том сајту. 505 00:23:22,020 --> 00:23:24,390 >> Шта онда се они на Фацебоок је погледајте ту руку печатом и 506 00:23:24,390 --> 00:23:26,850 они кажу, ох, 123456789. 507 00:23:26,850 --> 00:23:30,260 Ја не знам на први поглед да је то Дејвид је Малан у Кембриџу, 508 00:23:30,260 --> 00:23:34,690 Масачусетс, али они могу да провере своје база података и кажу, ох, особа 509 00:23:34,690 --> 00:23:39,930 на чијој рачунарске засадили смо 123456789 Дејвид је Малан из Кембриџа, 510 00:23:39,930 --> 00:23:40,440 Масачусетс. 511 00:23:40,440 --> 00:23:46,000 Покажимо да корисник онда његов профил страна или његов Невс Феед. 512 00:23:46,000 --> 00:23:49,660 >> Али ту постоји проблем, ако то је како интернет функционише заиста. 513 00:23:49,660 --> 00:23:51,390 Хајде да погледамо брз пример. 514 00:23:51,390 --> 00:23:55,190 Хајде да идемо у ствари да кажем фацебоок.цом. 515 00:23:55,190 --> 00:23:58,130 Али пре него што смо могли да одемо тамо, нека мене само напред и отвори Цхроме је 516 00:23:58,130 --> 00:23:59,790 Инспектор овде доле. 517 00:23:59,790 --> 00:24:01,140 Дозволите ми да погледам на картици мреже. 518 00:24:01,140 --> 00:24:06,020 А сада идемо напред и укуцајте у хттпс://фацебоок.цом. 519 00:24:06,020 --> 00:24:09,410 И ја то радим тако да не видимо све те преусмеравања и отпада 520 00:24:09,410 --> 00:24:10,660 време гледајући кроз оне. 521 00:24:10,660 --> 00:24:12,690 Пусти ме ударио ентер. 522 00:24:12,690 --> 00:24:13,130 >> У реду. 523 00:24:13,130 --> 00:24:14,580 Ми видимо гомилу захтева. 524 00:24:14,580 --> 00:24:15,640 Ту долази на Фацебоок. 525 00:24:15,640 --> 00:24:16,930 Постоји читава гомила фајлова. 526 00:24:16,930 --> 00:24:19,290 И овде, по мом помен латенција последњи пут, то је 527 00:24:19,290 --> 00:24:21,240 много ХТТП захтева. 528 00:24:21,240 --> 00:24:23,700 Али прва је вероватно најинтересантнији. 529 00:24:23,700 --> 00:24:26,420 >> Па хајде да дођите овде доле, и Ја ћу зумирати у секунди. 530 00:24:26,420 --> 00:24:29,090 Ово ће бити нека врста неред, али хајде да видимо. 531 00:24:29,090 --> 00:24:31,660 Фацебоок је нам шаље Цела гомила ствари. 532 00:24:31,660 --> 00:24:33,490 >> Али чекај, занимљиво. 533 00:24:33,490 --> 00:24:37,880 Они садње не један, него четири ханд марке на руци овде. 534 00:24:37,880 --> 00:24:40,400 Сет-Цоокие, Сет-Цоокие, сет-Цоокие, сет-цоокие. 535 00:24:40,400 --> 00:24:44,030 И постоји неколико могућности овде. 536 00:24:44,030 --> 00:24:46,170 Сви они поменути неке врста истека. 537 00:24:46,170 --> 00:24:50,090 И изгледа да се нада на Фацебоок да ме се до 2015. 538 00:24:50,090 --> 00:24:53,670 Тако да је вероватно време којим Морам да се одјавите, или они само цу 539 00:24:53,670 --> 00:24:55,710 аутоматски претпоставити сам не враћа. 540 00:24:55,710 --> 00:24:57,840 Дакле, то је заправо пристојна количина времена. 541 00:24:57,840 --> 00:24:59,170 >> А ту су и неки други ствари овде дешава. 542 00:24:59,170 --> 00:25:03,036 Овај колачић изгледа да насилно избрисао рекавши да је истекао 1970 543 00:25:03,036 --> 00:25:04,460 пре колачићи постојала. 544 00:25:04,460 --> 00:25:06,510 Дакле, претраживач је управо дешава претпоставити реду, то је као 545 00:25:06,510 --> 00:25:07,910 пере руке печат. 546 00:25:07,910 --> 00:25:11,240 >> Али сада када је мој прегледач прави накнадни захтев - 547 00:25:11,240 --> 00:25:14,340 пусти ме само напред и урадите поново и поново. 548 00:25:14,340 --> 00:25:18,170 Сада дозволите ми дођите назад Захтев врху и иди доле 549 00:25:18,170 --> 00:25:20,760 овде, затражите заглавља. 550 00:25:20,760 --> 00:25:21,390 Обратите пажњу на ово. 551 00:25:21,390 --> 00:25:25,280 Дакле, сада сам под не заглавља одговора, али приметио пише заглавља захтева. 552 00:25:25,280 --> 00:25:29,220 И приметите да је мој прегледач као део његов захтев након удара релоад има 553 00:25:29,220 --> 00:25:32,780 послао најмање следеће информације. 554 00:25:32,780 --> 00:25:34,670 Не сет-колачић, али колачић. 555 00:25:34,670 --> 00:25:38,750 Дакле, ово је линија, ХТТП заглавље тако да говорим, где мој прегледач је врста 556 00:25:38,750 --> 00:25:43,340 од без мог знања је представљање моја рука за инспекцију Фацебоока. 557 00:25:43,340 --> 00:25:46,020 >> Дакле, ови колачићи могу бити користи онда за шта? 558 00:25:46,020 --> 00:25:49,420 Да се ​​сетите ко сте, или се како много пута сте били тамо, или 559 00:25:49,420 --> 00:25:50,280 стварно ништа. 560 00:25:50,280 --> 00:25:52,742 >> Дакле, овде је цоунтер.пхп. 561 00:25:52,742 --> 00:25:53,780 И дозволите ми да зумирате на фонту. 562 00:25:53,780 --> 00:25:58,380 И сваки пут сам поново ову страницу, обавештење то је сећајући колико пута 563 00:25:58,380 --> 00:25:59,250 Био сам тамо. 564 00:25:59,250 --> 00:26:00,570 Па, то није све што импресивно. 565 00:26:00,570 --> 00:26:03,140 Хајде само да затворим ту картицу, а сада да се вратимо на 566 00:26:03,140 --> 00:26:07,860 хттп://лоцалхост/цоунтер.пхп. 567 00:26:07,860 --> 00:26:08,970 >> Ох, то је занимљиво. 568 00:26:08,970 --> 00:26:10,960 То још увек није заборављен, чак иако сам затворио картицу. 569 00:26:10,960 --> 00:26:14,010 И искрено, ако затворите прегледач, ако спроводи на прави начин, ја 570 00:26:14,010 --> 00:26:18,950 ипак могао да се сети да је овај корисник је ко је он или она је први пут, и 571 00:26:18,950 --> 00:26:22,840 само једном да одем у мени Цхроме, који овде је овде, и идите на 572 00:26:22,840 --> 00:26:25,990 Историја, и кликните на Обриши податке прегледања, као што неки од вас могу имати у 573 00:26:25,990 --> 00:26:33,050 прошлости, само тада ће ваши колачићи заправо бити избрисана током Интернету 574 00:26:33,050 --> 00:26:33,970 развој. 575 00:26:33,970 --> 00:26:35,340 >> Дакле, ако идемо - 576 00:26:35,340 --> 00:26:37,080 хајде да изблиза овде гедит. 577 00:26:37,080 --> 00:26:38,910 И ако ми сада идемо на ову датотеку. 578 00:26:38,910 --> 00:26:44,210 Пусти ме у наше вхостс / лоцалхост / јавно, и пусти ме да радим 579 00:26:44,210 --> 00:26:46,340 цоунтер.пхп. 580 00:26:46,340 --> 00:26:48,350 Обратите пажњу да је ово прилично једноставан програм. 581 00:26:48,350 --> 00:26:50,250 То је прилично једноставан сајт. 582 00:26:50,250 --> 00:26:51,770 >> Дакле, врх датотеке је само коментара. 583 00:26:51,770 --> 00:26:54,930 Али овде је нова линија које могу су већ видели у п-сет седам, 584 00:26:54,930 --> 00:26:56,000 сессион_старт (). 585 00:26:56,000 --> 00:27:00,380 То је линија ПХП кода који у суштини говори веб сервер, чине 586 00:27:00,380 --> 00:27:03,400 сигурни да искорени руке и направи Обавезно проверите ручне печате. 587 00:27:03,400 --> 00:27:06,810 То је све што ради линија, и то ради све тог процеса за нас. 588 00:27:06,810 --> 00:27:09,510 Онда приметио сам имам две гране овде. 589 00:27:09,510 --> 00:27:14,150 Ако бројач кључ унутар ове Посебан глобална променљива зове 590 00:27:14,150 --> 00:27:18,010 $ _СЕССИОН Је сет - другим речима, има ли тамо неких вредности - 591 00:27:18,010 --> 00:27:22,440 хајде да и складишти га у локалним променљива зове $ бројач. 592 00:27:22,440 --> 00:27:27,000 Друго, хајде да доделите $ цоунтер Подразумевана вредност 0. 593 00:27:27,000 --> 00:27:30,320 >> Сада овде је један аспект ПХП који је и благослов и проклетство. 594 00:27:30,320 --> 00:27:32,080 ПХП је мало аљкав. 595 00:27:32,080 --> 00:27:35,160 Дакле, док је у Ц, што би обим цоунтер су 596 00:27:35,160 --> 00:27:36,725 или овде или овде? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> То би била ограничена тим заграда. 599 00:27:41,690 --> 00:27:42,090 Погодите шта? 600 00:27:42,090 --> 00:27:46,920 У ПХП-у, постоји чак и изван оних цурли протезе, овде, и овде, 601 00:27:46,920 --> 00:27:49,120 и овде, и овде, и чак доле. 602 00:27:49,120 --> 00:27:52,400 Дакле, ја кажем да је ово благослов у смислу да не морате да мислите као 603 00:27:52,400 --> 00:27:54,070 тешко као што смо урадили пре неколико недеља. 604 00:27:54,070 --> 00:27:56,880 Али то је такође мало клетве у који без обзира где се користи променљиву у 605 00:27:56,880 --> 00:28:00,020 ПХП, барем у програму као што је овај, то је глобално доступан за 606 00:28:00,020 --> 00:28:01,170 боље или на горе. 607 00:28:01,170 --> 00:28:06,130 Дакле, морате имати на уму да је сада Ваши променљиве не може бити дефинисана. 608 00:28:06,130 --> 00:28:07,640 Можда сте их дефинисали другде. 609 00:28:07,640 --> 00:28:09,460 >> Али шта ћу ја да урадим на крају? 610 00:28:09,460 --> 00:28:13,160 Идем да сачувате унутар које глобална променљива као вредност 611 00:28:13,160 --> 00:28:17,060 бројач унети резултат ради бројач плус 1. 612 00:28:17,060 --> 00:28:18,910 Дакле, ово је само аритметика да не 613 00:28:18,910 --> 00:28:20,590 Инкрементација тог шалтеру. 614 00:28:20,590 --> 00:28:24,850 И чињеница да сам складиштење да вредност врати овде је значи 615 00:28:24,850 --> 00:28:29,970 суштини ажурира базу података за запамтите да корисник 123456789 је 616 00:28:29,970 --> 00:28:31,010 овде два пута. 617 00:28:31,010 --> 00:28:33,780 И када сам то поново следећи пут сам учитајте страницу, то ће проверити 618 00:28:33,780 --> 00:28:36,710 моја рука печат и рећи, ох, корисник 123456789 има сада 619 00:28:36,710 --> 00:28:38,410 био овде три пута. 620 00:28:38,410 --> 00:28:43,390 >> И шта ПХП и сличним језицима раде за нас је да се откривањем 621 00:28:43,390 --> 00:28:47,720 како и где и колико дуго за складиштење вредности у овој посебној 622 00:28:47,720 --> 00:28:48,830 суперглобалних. 623 00:28:48,830 --> 00:28:52,750 И то суперглобалних следећи пут посетите страница је врста магично 624 00:28:52,750 --> 00:28:57,440 унапред попуњени, испуњен са вредностима које да ли је било последњи пут посетили, 625 00:28:57,440 --> 00:29:02,310 да ли је то било пре другог, недеља пре, или у 2013, а сада говоримо 626 00:29:02,310 --> 00:29:03,790 око 2015. 627 00:29:03,790 --> 00:29:07,600 ПХП и веб сервер брине од свега тога за вас. 628 00:29:07,600 --> 00:29:08,850 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> ДАВИД Малан: Променљиве у ПХП су у суштини увек глобална осим тебе 631 00:29:15,760 --> 00:29:18,400 прогласи их унутар функције, а онда су се локални 632 00:29:18,400 --> 00:29:19,420 Функција једини. 633 00:29:19,420 --> 00:29:22,300 Али не зато што сам написао било функције, они су сада практично 634 00:29:22,300 --> 00:29:25,090 Глобална током целог мог фајл овде. 635 00:29:25,090 --> 00:29:26,040 >> Публика: Да ли постоји начин да их локално? 636 00:29:26,040 --> 00:29:28,470 >> Малан ДАВИД: Да ли постоји начин да их локално? 637 00:29:28,470 --> 00:29:30,680 Само паковање их у функцијама. 638 00:29:30,680 --> 00:29:32,790 Који у најновијој верзији ПХП, можете да урадите са 639 00:29:32,790 --> 00:29:34,130 Анонимоус функција. 640 00:29:34,130 --> 00:29:35,930 Али више о томе у контекст ЈаваСцрипт. 641 00:29:35,930 --> 00:29:37,260 Али, кратак одговор је не. 642 00:29:37,260 --> 00:29:40,888 Дужи одговор је да. 643 00:29:40,888 --> 00:29:42,380 Лепо. 644 00:29:42,380 --> 00:29:43,380 Добро квиз питање. 645 00:29:43,380 --> 00:29:43,930 У реду. 646 00:29:43,930 --> 00:29:47,760 >> Па на крају, сама страница заправо прилично једноставна. 647 00:29:47,760 --> 00:29:51,470 Обратите пажњу да сам једном изашли ПХП режим, сећам да све ове ствари доле 648 00:29:51,470 --> 00:29:53,700 испод је само ће добити пљување сирово се на претраживачу. 649 00:29:53,700 --> 00:29:57,050 Што је у реду, јер ја желим да пошаљете корисник неке ХТМЛ, али ја не желим 650 00:29:57,050 --> 00:29:59,140 динамички ажурира тај ХТМЛ. 651 00:29:59,140 --> 00:30:03,930 А један од начина да се то уради је да сортирате врло брзо пасти назад у ПХП 652 00:30:03,930 --> 00:30:07,730 мод, користите отворена заграда Знак питања знак једнакости, а затим излаз вредност 653 00:30:07,730 --> 00:30:08,650 на шалтеру. 654 00:30:08,650 --> 00:30:12,360 >> Или ако то изгледа мало загонетан, ово знак једнакости је заправо само нека 655 00:30:12,360 --> 00:30:16,190 синтаксичка шећера за то иф ($ бројач). 656 00:30:16,190 --> 00:30:19,160 Али, искрено, то је само мало ружно и мало непријатно да куцате. 657 00:30:19,160 --> 00:30:23,660 Дакле, ПХП веома лепо нуди ову функцију где само могу да кажем више 658 00:30:23,660 --> 00:30:25,450 језгровито на исти начин. 659 00:30:25,450 --> 00:30:26,940 >> Дакле, шта се дешава испод хауба? 660 00:30:26,940 --> 00:30:31,210 Хајде брзо погледати на мрежи Картица за цоунтер.пхп овде. 661 00:30:31,210 --> 00:30:35,090 И дозволите ми да само напред и први хајде да обришете колачиће. 662 00:30:35,090 --> 00:30:38,670 Хајде да Обриши податке од почетак времена. 663 00:30:38,670 --> 00:30:39,680 Сада да се вратимо овамо. 664 00:30:39,680 --> 00:30:41,340 Сада ћемо поново учитате страницу. 665 00:30:41,340 --> 00:30:42,170 И вратио сам на нули. 666 00:30:42,170 --> 00:30:44,810 Зато што је моја рука марка је била опрана, Сада добити нови колачић. 667 00:30:44,810 --> 00:30:48,780 >> Заиста ако ја погледајте мреже картици и погледајте одговор заглавља, приметити 668 00:30:48,780 --> 00:30:51,960 да апарат ме шаље колачић чије име је донекле 669 00:30:51,960 --> 00:30:55,820 произвољно, али некако разумно, тект. 670 00:30:55,820 --> 00:30:58,440 И то ме шаље ово заиста Рандом велики број. 671 00:30:58,440 --> 00:30:59,440 То није велики број. 672 00:30:59,440 --> 00:31:00,390 То није баш хексадецимални. 673 00:31:00,390 --> 00:31:03,600 То је нека врста алфанумерички ниски, али вероватно је то случајно. 674 00:31:03,600 --> 00:31:06,830 И то је рука печат тако да говоре да ја говорим. 675 00:31:06,830 --> 00:31:11,960 >> У међувремену, ако кликнем на дугме, а затим поново погледај ову другу линију за мој други 676 00:31:11,960 --> 00:31:17,600 захтев, приметити да је мој захтев заглавља садрже тект једнако ово, 677 00:31:17,600 --> 00:31:19,390 Не Сет-Цоокие, али само колачић. 678 00:31:19,390 --> 00:31:22,950 И то је мој бровсер презентација моје руке печата. 679 00:31:22,950 --> 00:31:28,820 >> Дакле, сада као теасер, а причаћемо више о томе у недељу дана или тако, али 680 00:31:28,820 --> 00:31:31,590 на који начин се то ти направити рањива, ваш Фацебоок налог 681 00:31:31,590 --> 00:31:34,137 рањиви, што су и други рачуни рањив? 682 00:31:34,137 --> 00:31:35,510 >> ПУБЛИКА: Ако неко има свој колачић. 683 00:31:35,510 --> 00:31:36,750 >> Малан ДАВИД: Да, да ли је неко има свој колачић. 684 00:31:36,750 --> 00:31:39,920 Ја заиста мислим, баш као неки од вас Можда су покушали у клубу као или 685 00:31:39,920 --> 00:31:44,030 Забавни парк, ако покушате нешто овако да копирате печат, иако 686 00:31:44,030 --> 00:31:47,560 назад на руку друге особе, а онда је он или она то представља као 687 00:31:47,560 --> 00:31:53,250 своје, ако је заиста изгледа идентични, 123456789, онда интернет 688 00:31:53,250 --> 00:31:57,980 Сервер је очигледно само ће Верујем да то што је корисник. 689 00:31:57,980 --> 00:32:01,450 >> И то је заиста фундаментално претња сваки пут када користите колачиће 690 00:32:01,450 --> 00:32:05,420 јер ако неко само покуша да искористи тако да Говорим колачићем, фигуре, који 691 00:32:05,420 --> 00:32:08,660 је, било је заиста копирањем гледајући у ваш рачунар 692 00:32:08,660 --> 00:32:09,890 и биће као, у реду. 693 00:32:09,890 --> 00:32:14,520 Давидова Цоокие је ЈЈ3ЈИК и тако даље, а онда су довољно паметни да знају 694 00:32:14,520 --> 00:32:18,080 како да некако ручно да пошаљете Колачић од претраживача или из 695 00:32:18,080 --> 00:32:22,350 Програм они пишу, они могу потпуно пријавите се на сајту као ти. 696 00:32:22,350 --> 00:32:28,560 То није тако тешко да се претварам да неко други осим ако поново П-СЕТ 697 00:32:28,560 --> 00:32:30,790 два, који је увео шта? 698 00:32:30,790 --> 00:32:32,065 >> ПУБЛИКА: Криптографија. 699 00:32:32,065 --> 00:32:33,860 >> ДАВИД Малан: Мало Мало криптографије. 700 00:32:33,860 --> 00:32:36,550 Једноставно криптографија, барем у Стандард Едитион, али крипто 701 00:32:36,550 --> 00:32:36,870 ипак. 702 00:32:36,870 --> 00:32:37,410 мање. 703 00:32:37,410 --> 00:32:41,440 Тако испада ако шифрујете све ова заглавља користе нешто што 704 00:32:41,440 --> 00:32:48,770 Можда сада знају више фамилијарно као ССЛ, Сецуре Соцкет Лаиер, или хттпс:// УРЛ адресе, 705 00:32:48,770 --> 00:32:51,890 онда све ове ствари које смо били гледајући заправо шифрована, 706 00:32:51,890 --> 00:32:54,800 што значи да је као ти Не могу да прочитам печат руку. 707 00:32:54,800 --> 00:32:59,350 Само фацебоок.цом може, или гоогле.цом, или у овом случају, апарат може 708 00:32:59,350 --> 00:33:00,550 прочитајте тај печат руке. 709 00:33:00,550 --> 00:33:04,020 >> Трагично је међутим, и опет, ово је сувише одговарајуће са НСА стварима 710 00:33:04,020 --> 00:33:06,410 у последње време, чак и ССЛ је ломљива. 711 00:33:06,410 --> 00:33:09,850 И то је заправо није тако тешко да чак и црацк ту енкрипцију. 712 00:33:09,850 --> 00:33:12,040 Не толико због пуцања енкрипцију, али, преваром 713 00:33:12,040 --> 00:33:15,720 претраживач на дешифровање подаци прерано. 714 00:33:15,720 --> 00:33:17,880 Али опет, ми ћемо вас задиркују са да је пре дуго. 715 00:33:17,880 --> 00:33:21,242 За сада, само плаши. 716 00:33:21,242 --> 00:33:23,070 То је трагично врста истина. 717 00:33:23,070 --> 00:33:23,760 >> У реду. 718 00:33:23,760 --> 00:33:27,910 Дакле, где се то сад нас остави? 719 00:33:27,910 --> 00:33:29,010 Па, хајде да урадимо ово. 720 00:33:29,010 --> 00:33:31,790 Идемо напред и да брзо теасер пре него што направимо паузу. 721 00:33:31,790 --> 00:33:33,790 И мислим да ћемо развлачити мало дуже данас, али ми ћемо да зароне у 722 00:33:33,790 --> 00:33:37,850 нешто потпуно ново и секси, који ће подстаћи ваш апетит за још више. 723 00:33:37,850 --> 00:33:38,950 Тако да је задиркивање. 724 00:33:38,950 --> 00:33:41,520 >> Дакле СКЛ, почели смо говорили о икад тако кратко последњи пут. 725 00:33:41,520 --> 00:33:44,670 Стварно ћете добити ваше руке прљаве са неким од тога у п-сет седам. 726 00:33:44,670 --> 00:33:46,480 И у смислу лаике, шта СКЛ - 727 00:33:46,480 --> 00:33:47,110 С-П-Л - 728 00:33:47,110 --> 00:33:49,850 учиним за вас? 729 00:33:49,850 --> 00:33:50,310 Шта је то? 730 00:33:50,310 --> 00:33:51,546 Да. 731 00:33:51,546 --> 00:33:53,240 >> ПУБЛИКА: Да те приступне податке. 732 00:33:53,240 --> 00:33:53,360 >> ДАВИД Малан: Да. 733 00:33:53,360 --> 00:33:55,120 То ћемо вам приступ подацима у бази података. 734 00:33:55,120 --> 00:33:56,710 Струцтуред Куери Лангуаге. 735 00:33:56,710 --> 00:33:59,890 И то је у суштини програмски језик. 736 00:33:59,890 --> 00:34:03,400 Постоје особине томе да нећемо ни користити у класи. 737 00:34:03,400 --> 00:34:04,710 Али можете ефикасно дефинисати функције. 738 00:34:04,710 --> 00:34:06,870 Зову се чувају процедуре у СКЛ. 739 00:34:06,870 --> 00:34:09,860 Али, ми ћемо га задржати прилично једноставан и само користити га за неке основне операције 740 00:34:09,860 --> 00:34:14,320 као одабира података, унос података, ажурирање података, и брисање података. 741 00:34:14,320 --> 00:34:17,400 >> И ти стварно мислиш да базе података, као СКЛ базе података, као и само 742 00:34:17,400 --> 00:34:18,800 је Мицрософт Екцел. 743 00:34:18,800 --> 00:34:21,989 Зато СКЛ односи на релационој база података, где 744 00:34:21,989 --> 00:34:23,480 однос само значи табеле. 745 00:34:23,480 --> 00:34:24,739 Редова и колона. 746 00:34:24,739 --> 00:34:27,929 Дакле, све што можете ставити у табелу овако или Гоогле Доцс, 747 00:34:27,929 --> 00:34:32,460 можете ставити у СКЛ базу података изјављујући табелу. 748 00:34:32,460 --> 00:34:34,800 >> Сада, како се заправо приступите та информација? 749 00:34:34,800 --> 00:34:38,239 Па, са командама или упита као што је овај. 750 00:34:38,239 --> 00:34:40,199 СЕЛЕЦТ, ИНСЕРТ, УПДАТЕ, ДЕЛЕТЕ и. 751 00:34:40,199 --> 00:34:44,489 А за највећи део, то су Четири само састојци ћете морати да 752 00:34:44,489 --> 00:34:47,370 уради нешто сасвим снажно у проблему сет седам. 753 00:34:47,370 --> 00:34:49,940 >> Сада назад у дан, ви заправо би интеракцију са базом података у 754 00:34:49,940 --> 00:34:52,730 црно и бело прозор терминала на трепће брз овако. 755 00:34:52,730 --> 00:34:56,370 И база података понестаје на Апарат се зове МиСКЛ, који је 756 00:34:56,370 --> 00:34:58,560 бесплатан и опен соурце базе података. 757 00:34:58,560 --> 00:35:02,240 Ако вам Гоогле и прочитати википедиа чланак, ви ћете знати да је име 758 00:35:02,240 --> 00:35:05,060 мало транзиције за неке верзије Линука. 759 00:35:05,060 --> 00:35:10,460 Марија база података је заправо трпезе тако да говори о МиСКЛ. 760 00:35:10,460 --> 00:35:12,740 >> Да скратимо причу, Орацле је купио МиСКЛ. 761 00:35:12,740 --> 00:35:13,870 Орацле је велика компанија. 762 00:35:13,870 --> 00:35:17,010 Људи су забринути да би више не остају прилично као отвореног кода, 763 00:35:17,010 --> 00:35:20,930 тако да је ово само копија МиСКЛ то је још слободан, још отвореног кода, и 764 00:35:20,930 --> 00:35:23,550 инсталиран у Федора Линук по дефаулту. 765 00:35:23,550 --> 00:35:26,130 >> Али, то је врста бола у врат да се упознају са 766 00:35:26,130 --> 00:35:27,310 база података на овај начин. 767 00:35:27,310 --> 00:35:30,560 Тако смо укључити у ЦС50 апарата бесплатан алат отвореног кода под називом 768 00:35:30,560 --> 00:35:31,700 пхпМиАдмин. 769 00:35:31,700 --> 00:35:33,940 Само случајност да то је писан у ПХП. 770 00:35:33,940 --> 00:35:36,450 Нема фундаменталног потребно за ПХП овде. 771 00:35:36,450 --> 00:35:40,090 Али ово је само средство веб засновани да ми скинути бесплатно, инсталирана у 772 00:35:40,090 --> 00:35:43,850 апарат, који нам омогућава да имамо графички кориснички интерфејс са којима 773 00:35:43,850 --> 00:35:48,610 да истражи п-сет седам базу података са који се креирају нове базе података, 774 00:35:48,610 --> 00:35:51,980 кажу за твоје коначног пројекта ако бих као, и на крају стварају 775 00:35:51,980 --> 00:35:55,900 динамичких сајтова попут ЦС50 финансија које вам омогућавају да упит података и 776 00:35:55,900 --> 00:35:58,140 ажурирање података динамички. 777 00:35:58,140 --> 00:36:01,420 >> Нећеш да морају да користе само једноставан текст фајл или ЦСВ. 778 00:36:01,420 --> 00:36:05,950 Ви у ствари можете да користите паметну базу података Програм тако да можете извршити више 779 00:36:05,950 --> 00:36:10,240 софистицирани упити него само читање кроз све линеарно. 780 00:36:10,240 --> 00:36:14,150 >> Тако на пример, то је оно дајемо ви из кутије за п-сет седам. 781 00:36:14,150 --> 00:36:18,280 Ово је табела са наизглед најмање три колоне, од којих је једна 782 00:36:18,280 --> 00:36:21,450 корисничко име, један од којих је тараба, и од којих је други ИД. 783 00:36:21,450 --> 00:36:26,200 >> Али занимљива ствар, и само на докучите једну мисао овде, корисничко име 784 00:36:26,200 --> 00:36:29,270 је вероватно већ јединствена, зар не? 785 00:36:29,270 --> 00:36:31,190 Мислим, већина било који сајт, ако имате корисничко име, тамо 786 00:36:31,190 --> 00:36:32,370 не може бити два Цаесарс. 787 00:36:32,370 --> 00:36:33,440 Ту не може бити два Маланс. 788 00:36:33,440 --> 00:36:34,950 Ту не може бити два јхарвардс. 789 00:36:34,950 --> 00:36:35,600 Његова јединствена. 790 00:36:35,600 --> 00:36:38,610 У супротном, они не знају који јхарвард је заправо. 791 00:36:38,610 --> 00:36:42,710 Дакле, шта може бити мотивација за исто има трећу колону са леве стране 792 00:36:42,710 --> 00:36:46,970 тамо се зове ИД, који изгледа као број који је јединствен слично? 793 00:36:46,970 --> 00:36:51,300 Она се осећа мало редундантне да ми на први поглед. 794 00:36:51,300 --> 00:36:54,910 Зашто би то могло да буде убедљив да имају не само јединствена корисничка имена, 795 00:36:54,910 --> 00:36:56,837 али и јединствене бројеве? 796 00:36:56,837 --> 00:36:59,460 >> ПУБЛИКА: Они су могли имати иста лозинка. 797 00:36:59,460 --> 00:37:01,720 >> ДАВИД Малан: Људи могу имати иста лозинка, наравно. 798 00:37:01,720 --> 00:37:03,900 То би могло да се деси апсолутно. 799 00:37:03,900 --> 00:37:08,270 Али, ако они имају овај јединствено корисничко име, ја тврде да то не баш 800 00:37:08,270 --> 00:37:11,630 ствар, јер ако они укуцајте у своје корисничко име, само морам да проверим своје 801 00:37:11,630 --> 00:37:15,060 лозинка, њихов тараба истих. 802 00:37:15,060 --> 00:37:15,970 Зашто још? 803 00:37:15,970 --> 00:37:17,950 >> ПУБЛИКА: Брже претраживање. 804 00:37:17,950 --> 00:37:18,680 >> ДАВИД Малан: Брже претраживање. 805 00:37:18,680 --> 00:37:19,548 Зашто? 806 00:37:19,548 --> 00:37:21,460 >> ПУБЛИКА: ИД је само један. 807 00:37:21,460 --> 00:37:24,040 >> ДАВИД Малан: ИД је само један лик, или да будем прецизнији, то је број, 808 00:37:24,040 --> 00:37:26,910 тако да је вероватно 32 бита или нешто слично. 809 00:37:26,910 --> 00:37:30,270 Док корисничко име, очигледно Џејсон Хирсцххорн је горе постоји нека врста 810 00:37:30,270 --> 00:37:33,900 смешно дуго, и то ће узети ми много више времена да се стринг 811 00:37:33,900 --> 00:37:40,910 сравни Х-И-Р-С-Ц-Х-Х-О-Р-Н, а можда / 0 или тако нешто, како би 812 00:37:40,910 --> 00:37:45,100 да потражите Јасона, за разлику од само рекавши ми дати упутство број два. 813 00:37:45,100 --> 00:37:46,510 То је 32 бита. 814 00:37:46,510 --> 00:37:48,550 То је један ИНТ који морате да упоредите. 815 00:37:48,550 --> 00:37:52,150 И заиста, то је управо разлог зашто базе података имају тенденцију да доделите јединствене личне карте за 816 00:37:52,150 --> 00:37:53,710 редови у њима. 817 00:37:53,710 --> 00:37:56,280 >> Сада шта други типови података постоје поред ИНТ и очигледно 818 00:37:56,280 --> 00:37:57,160 жице као што је овај? 819 00:37:57,160 --> 00:37:59,700 Па, да буде више правилно, СКЛ база података, као што су 820 00:37:59,700 --> 00:38:02,060 МиСКЛ, имају цхар поља. 821 00:38:02,060 --> 00:38:05,320 И ЗНАК мало варљиво није један ЗНАК. 822 00:38:05,320 --> 00:38:10,290 ЗНАК поље у МиСКЛ бази података један или више знакова, али је 823 00:38:10,290 --> 00:38:11,780 фиксни број карактера. 824 00:38:11,780 --> 00:38:15,710 >> Тако на пример, ако ја одем у пхпМиАдмин као што сте можда већ имате, или 825 00:38:15,710 --> 00:38:21,340 Ускоро ће проблем поставити седам, а ја идем до моје базе података, и само за забаву, 826 00:38:21,340 --> 00:38:25,700 хајде да креирате нову табелу под називом тест са само две колоне. 827 00:38:25,700 --> 00:38:27,160 Ја ћу онда кликните на дугме Иди. 828 00:38:27,160 --> 00:38:30,070 И то ће бити прилично упознати, нарочито при Тинкер 829 00:38:30,070 --> 00:38:31,130 около сами. 830 00:38:31,130 --> 00:38:34,140 Овде сам да укуцате ИД створити Нова табела типа инт. 831 00:38:34,140 --> 00:38:37,770 Али овде сам да укуцате корисничко име поново да сто раније. 832 00:38:37,770 --> 00:38:40,700 И приметио сам да има гомилу типова које можете изабрати. 833 00:38:40,700 --> 00:38:43,610 >> А и ово је разлог зашто пхпМиАдмин је лепо. 834 00:38:43,610 --> 00:38:46,770 То је нека врста само-у да наставе могу само врста тачке и кликните на дугме, и 835 00:38:46,770 --> 00:38:50,730 погледај падајуће меније, и закључити из да је оно што вам даје овлашћења СКЛ. 836 00:38:50,730 --> 00:38:54,090 >> И заиста, ако бирам ЦХАР, тада сам да одредите дужину, или како 837 00:38:54,090 --> 00:38:55,940 многе вредности, колико знакова. 838 00:38:55,940 --> 00:39:00,090 Дакле, веома честе вредности су ствари као што су 255, али то је мало дужи. 839 00:39:00,090 --> 00:39:02,250 Најчешће је осам за корисничко име. 840 00:39:02,250 --> 00:39:03,590 Али то је мало мали ових дана. 841 00:39:03,590 --> 00:39:05,430 Дакле, ово је одлука о дизајну. 842 00:39:05,430 --> 00:39:08,630 Да ли је то 8 карактера максимално, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Заиста је на вама. 844 00:39:09,830 --> 00:39:12,350 Али ЗНАК поље је фиксни број. 845 00:39:12,350 --> 00:39:16,420 Зато изаберите сувише мало и ти си некако зајебао ако желите дуже име. 846 00:39:16,420 --> 00:39:19,132 Изаберите превише и шта је мана? 847 00:39:19,132 --> 00:39:20,820 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 848 00:39:20,820 --> 00:39:21,620 >> Малан ДАВИД: То је расипнички. 849 00:39:21,620 --> 00:39:24,835 Баш као у Ц, ако имате већи комад меморије него што је потребно, да си 850 00:39:24,835 --> 00:39:27,190 само губљење времена и расипање простора. 851 00:39:27,190 --> 00:39:31,430 Дакле, као алтернатива, постоји ВАРЦХАР, који решава овај проблем 852 00:39:31,430 --> 00:39:36,390 лечење дужину не као фиксне дужине, али као максималну дужину, и користећи 853 00:39:36,390 --> 00:39:40,990 променљиви број слова, који је тада тенденцију да користе само онолико слова као ви 854 00:39:40,990 --> 00:39:42,710 заиста треба. 855 00:39:42,710 --> 00:39:43,670 То звучи савршено. 856 00:39:43,670 --> 00:39:45,640 >> Зашто не можемо ослободити ЦХАР типа података онда? 857 00:39:45,640 --> 00:39:48,500 Шта може да буде мана коришћењем ВАРЦХАРс, који звучи 858 00:39:48,500 --> 00:39:51,644 као да је лепа победа? 859 00:39:51,644 --> 00:39:52,596 Да? 860 00:39:52,596 --> 00:39:53,846 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> ДАВИД Малан: Добро, добро. 863 00:39:57,790 --> 00:40:01,101 Дакле, ако све податке је исти дужине, шта је брига? 864 00:40:01,101 --> 00:40:05,250 >> ПУБЛИКА: Зато што губите подаци по говорећи им све. 865 00:40:05,250 --> 00:40:09,060 >> Малан ДАВИД: Па ако све податке је исте дужине, мада, рекао бих 866 00:40:09,060 --> 00:40:12,300 који одређује максималну дужину на ВАРЦХАР се не разликује од 867 00:40:12,300 --> 00:40:16,070 одређује фиксну дужину на ЦХАР ако Ви знате тај број унапред. 868 00:40:16,070 --> 00:40:19,500 Али, заиста постоји, а ја ћу некако извод из тог одговора стварности 869 00:40:19,500 --> 00:40:22,610 да још увек постоји максимално, што би могло се нервира, поготово ако 870 00:40:22,610 --> 00:40:25,920 наићи име особе која је необично дуго да нисте 871 00:40:25,920 --> 00:40:26,860 предвидети. 872 00:40:26,860 --> 00:40:31,420 И то је такође нешто мање ефикасан да се заправо тражи на ВАРЦХАРс као 873 00:40:31,420 --> 00:40:35,620 насупрот потрази карактера, нарочито за дугим столовима који имају пуно и 874 00:40:35,620 --> 00:40:36,510 много података. 875 00:40:36,510 --> 00:40:40,060 Тако и овде, тематски је поново нема очигледан избор. 876 00:40:40,060 --> 00:40:42,870 >> Да би вам дати осећај других типови података који могу бити од интереса 877 00:40:42,870 --> 00:40:45,400 било за п-сет седам или у будућност, ту је ИНТ. 878 00:40:45,400 --> 00:40:47,270 Има бигинт, који као да је дуго дуго. 879 00:40:47,270 --> 00:40:48,880 Она тежи да буде 64 бита. 880 00:40:48,880 --> 00:40:51,640 Има ДЕЦИМАЛ, што ћете видети у скуп проблема, што је много 881 00:40:51,640 --> 00:40:55,300 чистач одговор на проблеме смо сусрео са флоат и плутајуће 882 00:40:55,300 --> 00:40:55,980 тачка непрецизности. 883 00:40:55,980 --> 00:40:57,390 А онда ту је ДАТЕТИМЕ. 884 00:40:57,390 --> 00:41:01,530 Буквално Постоји тип података који има да изгледа као да је година, месец, дан, 885 00:41:01,530 --> 00:41:03,730 и сат, минуте и секунде. 886 00:41:03,730 --> 00:41:07,470 >> Међутим, СКЛ базе података имају и ствари које ћемо звати индексе. 887 00:41:07,470 --> 00:41:11,630 И индекс је нешто што прецизира када креирате табелу 888 00:41:11,630 --> 00:41:15,720 направити претраге и друге операције ефикасније. 889 00:41:15,720 --> 00:41:18,550 Конкретно, постоји нешто што се зове Примарни индекс да бисте могли 890 00:41:18,550 --> 00:41:19,440 прогласи на следећи начин. 891 00:41:19,440 --> 00:41:22,330 >> Ми смо то урадили за вас са Корисници сто смо ти дати. 892 00:41:22,330 --> 00:41:26,160 Али, ако приметите да су ручно поновном Корисници сто овде дајући 893 00:41:26,160 --> 00:41:27,110 то име корисника. 894 00:41:27,110 --> 00:41:28,125 Већ сам прецизирао ИД. 895 00:41:28,125 --> 00:41:29,330 Прецизирао инт. 896 00:41:29,330 --> 00:41:32,000 Наведено име сам са максимално 32 карактера. 897 00:41:32,000 --> 00:41:36,140 Али, ако се померају у овој прилично широки прозор, приметити постоји 898 00:41:36,140 --> 00:41:38,260 гомила других ствари које можете да одредите. 899 00:41:38,260 --> 00:41:40,950 >> Један, ја могу навести атрибуте као, знаш шта, ово 900 00:41:40,950 --> 00:41:42,190 ИНТ би требало да буде потписана. 901 00:41:42,190 --> 00:41:45,510 Не желим негативне бројеве, па хајде да буде потписана. 902 00:41:45,510 --> 00:41:48,660 Нула није релевантан, јер овде Ја желим да сваки корисник 903 00:41:48,660 --> 00:41:49,640 имају јединствен број. 904 00:41:49,640 --> 00:41:50,830 Не желим да буде нула. 905 00:41:50,830 --> 00:41:52,330 >> Али ово је интересантно. 906 00:41:52,330 --> 00:41:57,780 Ја могу навести да је број или Примарни кључ ове базе података, или је то 907 00:41:57,780 --> 00:42:00,620 јединствена, или је то индексиране, или цео текст. 908 00:42:00,620 --> 00:42:05,630 Дакле, за потребе данашњих, дуга прича кратке, примарна значи да ће ово 909 00:42:05,630 --> 00:42:10,570 бити и концептуално и технички поље које користимо за јединствено 910 00:42:10,570 --> 00:42:12,140 идентификацију корисника. 911 00:42:12,140 --> 00:42:16,140 >> Дакле, када погледамо уп корисника, ово је врста од обећања да их погледаш углавном 912 00:42:16,140 --> 00:42:17,370 да јединствени идентификатор. 913 00:42:17,370 --> 00:42:21,930 И база података ће обезбедити да, ако имају велики број корисника 3, не можете 914 00:42:21,930 --> 00:42:25,400 физички убаците другог корисника са истим бројем 3. 915 00:42:25,400 --> 00:42:28,380 База података ће једноставно одбити да бисте сачували промене. 916 00:42:28,380 --> 00:42:32,310 Што је добра ствар, јер можете заштитите се од себе. сам 917 00:42:32,310 --> 00:42:34,270 >> Алтернативно, за корисничко име. 918 00:42:34,270 --> 00:42:37,670 Дакле, други ред, подсетимо, је усернаме поље. 919 00:42:37,670 --> 00:42:41,860 Дакле, овде је други ред корисничким именом, као што смо радили до сада отишао тамо. 920 00:42:41,860 --> 00:42:43,940 >> Дакле, шта друго може да желим да наведете? 921 00:42:43,940 --> 00:42:47,840 Није ми дозвољено, у складу са СКЛ, навести две примарне кључеве. 922 00:42:47,840 --> 00:42:50,750 можете одредити заједнички кључ где погледај оба поља, али они не могу 923 00:42:50,750 --> 00:42:52,260 појединачно бити примарни кључеви. 924 00:42:52,260 --> 00:42:54,750 Дакле, то не долази у обзир. 925 00:42:54,750 --> 00:42:56,040 Зато што би ја желим да изаберем? 926 00:42:56,040 --> 00:42:59,710 >> Па, јединствен је у духу на сличан примарни кључ где сте навели ово 927 00:42:59,710 --> 00:43:03,570 Поље ће бити јединствена, али је неће бити један 928 00:43:03,570 --> 00:43:04,410 Ја користим све време. 929 00:43:04,410 --> 00:43:08,450 И нећемо користити овај све време из ког разлога поново? 930 00:43:08,450 --> 00:43:10,490 То је потенцијално спорије ако то је дуга корисничко име. 931 00:43:10,490 --> 00:43:11,740 То је само губљење времена. 932 00:43:11,740 --> 00:43:16,140 >> ИНДЕКС, у међувремену, наводи да је неће бити јединствена, али ја бих 933 00:43:16,140 --> 00:43:19,470 да своју магију испод аспиратор да би се брже за мене 934 00:43:19,470 --> 00:43:21,420 тражи на овом пољу. 935 00:43:21,420 --> 00:43:23,320 Дакле, ово вероватно није релевантно. 936 00:43:23,320 --> 00:43:26,500 За корисничко име, ја бих тврде да Јединствена је добар одговор. 937 00:43:26,500 --> 00:43:31,200 Али, претпоставимо да смо направили корисници више Занимљиво него само корисничких имена, 938 00:43:31,200 --> 00:43:32,430 хасхирани и ИД бројеве. 939 00:43:32,430 --> 00:43:33,860 Шта ако ми је дао људе именом и презименом? 940 00:43:33,860 --> 00:43:37,700 Шта ако смо им дали адресе и друге податке о њима? 941 00:43:37,700 --> 00:43:43,360 >> Па, ако наведете да је колона у База је индексиран, то значи да 942 00:43:43,360 --> 00:43:47,730 МиСКЛ, или Орацле, или шта год база података користите, треба да ради своју магију 943 00:43:47,730 --> 00:43:51,300 и користе неку врсту података фенси структура попут дрвета, или Трие, или 944 00:43:51,300 --> 00:43:55,940 хасх табела, или нешто да гарантују да када тражите податке користећи 945 00:43:55,940 --> 00:43:58,150 изаберите на том пољу - 946 00:43:58,150 --> 00:44:01,310 свиђа ми показати свима да живи на улици Оксфорд. 947 00:44:01,310 --> 00:44:02,540 Упит тако. 948 00:44:02,540 --> 00:44:06,250 Ако сте навели да се унапред желите индекса на том пољу, 949 00:44:06,250 --> 00:44:09,050 претраге ће бити много, много брже. 950 00:44:09,050 --> 00:44:12,090 >> Ако не наведете показатељима најбоље можете да урадите је линеаран ако претрагу 951 00:44:12,090 --> 00:44:13,030 није то сам средио. 952 00:44:13,030 --> 00:44:16,220 Али ако наведете ИНДЕКС, паметан људи који су направили базу података - 953 00:44:16,220 --> 00:44:19,340 људи као ти, који сада знају дрвеће и труди се и хасх табеле - 954 00:44:19,340 --> 00:44:23,220 ће аутоматски направити такву података структура у РАМ да се уверите да 955 00:44:23,220 --> 00:44:26,050 те претраге су много брже. 956 00:44:26,050 --> 00:44:29,660 >> ФУЛЛТЕКСТ међувремену је слична у духу, али вам омогућава да урадите џокер 957 00:44:29,660 --> 00:44:35,480 претраге, свиђа ми покаже свима да је живи на улицама које почињу 958 00:44:35,480 --> 00:44:36,960 слово О из било ког разлога. 959 00:44:36,960 --> 00:44:38,850 То можете да урадите претраге џокер тако. 960 00:44:38,850 --> 00:44:45,880 Или, убедљив ствари као што показују ја свако ко има реч - 961 00:44:45,880 --> 00:44:49,400 покажи ми свима чије име почиње са посебним писмом. 962 00:44:49,400 --> 00:44:51,880 Можете да претражујете по кључним речима на овај начин. 963 00:44:51,880 --> 00:44:52,630 У реду. 964 00:44:52,630 --> 00:44:55,760 >> Дакле, дизајн прилике тамо потенцијално. 965 00:44:55,760 --> 00:44:57,740 Постоје и други да ћу махнем у руке. 966 00:44:57,740 --> 00:45:00,530 Испоставило се да имате складиштење различитих мотора. 967 00:45:00,530 --> 00:45:04,390 А то је више него што нам треба волшебни свакако проблем за сет седам. 968 00:45:04,390 --> 00:45:06,920 Подразумевано, ви користите нешто што се зове ИнноДБ. 969 00:45:06,920 --> 00:45:10,910 Видећете помиње ово негде у пхпМиАдмин интерфејс највероватније. 970 00:45:10,910 --> 00:45:14,130 Али, знам да постоје и други дизајн одлуке које су од потенцијалног 971 00:45:14,130 --> 00:45:18,030 камата долазе завршних пројеката, ако урадите нешто Вебу. 972 00:45:18,030 --> 00:45:19,330 >> Али, хајде да то уради. 973 00:45:19,330 --> 00:45:23,130 Идемо напред и стави ово на екран као тизер за причу 974 00:45:23,130 --> 00:45:26,330 укључује се, цимер, и чаша млека. 975 00:45:26,330 --> 00:45:28,240 Хајде да се два минута или тако сломити овде. 976 00:45:28,240 --> 00:45:31,060 И ако можете да останем, да дођу уназад, погледајте мало на СКЛ, и 977 00:45:31,060 --> 00:45:35,160 онда мало ЈаваСцрипт-у П-сет осам на уму. 978 00:45:35,160 --> 00:45:36,120 >> У реду. 979 00:45:36,120 --> 00:45:40,420 Дакле, хајде да се размисљас угао случај да врло лако може доћи до 980 00:45:40,420 --> 00:45:44,240 у контексту коришћења базе података, или Искрено, чак и користећи праве светске ствари 981 00:45:44,240 --> 00:45:46,280 Банкомати воле да добију новац. 982 00:45:46,280 --> 00:45:47,640 Дакле, овде је фрижидер. 983 00:45:47,640 --> 00:45:50,040 Претпоставимо да имате један превише у Ваша спаваоница или ваша кућа. 984 00:45:50,040 --> 00:45:54,990 А имаш једну цимерку, и обоје заиста свиђа млеко за пример. 985 00:45:54,990 --> 00:45:57,210 >> Дакле, дошао кући из класе једног дана. 986 00:45:57,210 --> 00:45:58,490 Он или она још није вратио. 987 00:45:58,490 --> 00:45:59,180 Ви отворите фрижидер. 988 00:45:59,180 --> 00:46:00,870 Ви заиста желите велику чашу млека. 989 00:46:00,870 --> 00:46:01,820 Нема млека. 990 00:46:01,820 --> 00:46:02,920 Дакле, шта радите? 991 00:46:02,920 --> 00:46:03,840 Можете затворити фрижидер. 992 00:46:03,840 --> 00:46:04,670 Ти зграби кључеве. 993 00:46:04,670 --> 00:46:05,930 Можете изаћи на трг. 994 00:46:05,930 --> 00:46:09,240 А ти се у реду на ЦВС на тим селф цхецкоут ствари, које увек 995 00:46:09,240 --> 00:46:11,180 потрајати дуже него што заиста има благајника. 996 00:46:11,180 --> 00:46:11,820 У сваком случају. 997 00:46:11,820 --> 00:46:15,490 >> Па онда, у међувремену, дот дот дот, ваш цимер дође кући, а он или она 998 00:46:15,490 --> 00:46:17,440 Слично је жудња за неке млека. 999 00:46:17,440 --> 00:46:20,380 Дакле, он или она отвори фрижидер, изгледа унутра, и ох, проклето. 1000 00:46:20,380 --> 00:46:21,160 Без млека. 1001 00:46:21,160 --> 00:46:24,750 Дакле, он или она из главе, дешава да иде другим ЦВС, што је само 1002 00:46:24,750 --> 00:46:27,900 блок даље из неког разлога, и он или она добија у реду да купи млеко. 1003 00:46:27,900 --> 00:46:30,480 >> У међувремену, можете доћи кући, он или она дође кући, а шта 1004 00:46:30,480 --> 00:46:31,980 ви на крају имате? 1005 00:46:31,980 --> 00:46:33,080 Дупло више млека. 1006 00:46:33,080 --> 00:46:34,620 Али, стварно не волим млеко толико. 1007 00:46:34,620 --> 00:46:37,300 Дакле, сада имате толико млека да је сада један од њих је само ићи кисело 1008 00:46:37,300 --> 00:46:37,820 крају. 1009 00:46:37,820 --> 00:46:39,370 Дакле, ово је стварно лоша проблем. 1010 00:46:39,370 --> 00:46:39,900 Зар не? 1011 00:46:39,900 --> 00:46:41,990 >> Дакле, шта се десило? 1012 00:46:41,990 --> 00:46:44,810 Дакле суштински, то је врста на пример смешна. 1013 00:46:44,810 --> 00:46:48,580 Али, испод хаубе, оно што смо имали Овде се деси обоје проверени 1014 00:46:48,580 --> 00:46:52,390 стање неког дела меморије, фрижидер. 1015 00:46:52,390 --> 00:46:54,420 Обоје проверио стање неке променљиве. 1016 00:46:54,420 --> 00:46:57,360 Обоје извукао закључак да сте тада деловао на. 1017 00:46:57,360 --> 00:47:01,420 Али, нажалост, а ваш цимер био у продавници, држава која 1018 00:47:01,420 --> 00:47:05,670 променљива променила, он или она вратила и сада жели да промени стање, али 1019 00:47:05,670 --> 00:47:07,480 То је већ промењено на њега или њу. 1020 00:47:07,480 --> 00:47:11,120 И наравно, он или она не би отишао у продавницу, ако су знали 1021 00:47:11,120 --> 00:47:13,010 да сте већ били на путу. 1022 00:47:13,010 --> 00:47:16,430 >> Дакле, у стварном свету, како си могао избегли овај проблем, под претпоставком да имате 1023 00:47:16,430 --> 00:47:18,940 фрижидер, имате цимера, а ви у ствари желите млеко? 1024 00:47:18,940 --> 00:47:19,760 >> ПУБЛИКА: Комуницирање. 1025 00:47:19,760 --> 00:47:20,580 >> ДАВИД Малан: Комуникација. 1026 00:47:20,580 --> 00:47:21,160 У реду. 1027 00:47:21,160 --> 00:47:22,500 Али како да комуницирате? 1028 00:47:22,500 --> 00:47:23,990 >> ПУБЛИКА: Оставите поруку. 1029 00:47:23,990 --> 00:47:25,480 >> ДАВИД Малан: Оставите поруку, зар не? 1030 00:47:25,480 --> 00:47:28,025 Увек оставите напомену, за фанови емисије. 1031 00:47:28,025 --> 00:47:31,580 У реду, тако да увек остави белешку, или ставити заиста као катанац или нешто 1032 00:47:31,580 --> 00:47:35,440 на фрижидеру да одржава ваш цимер из проверу стања 1033 00:47:35,440 --> 00:47:36,540 то променљива. 1034 00:47:36,540 --> 00:47:40,800 >> Сада, зашто би то било да Германе Проблем сет седам, или на банкоматима. 1035 00:47:40,800 --> 00:47:46,780 Па, замислите свет у банкомату где можда ћете моћи да иде и до банкомата 1036 00:47:46,780 --> 00:47:48,920 машина овде, а други АТМ овде. 1037 00:47:48,920 --> 00:47:50,680 И то се дешава прилично често. 1038 00:47:50,680 --> 00:47:54,150 А претпостављам да сте имали два АТМ картице, што је могуће добити. 1039 00:47:54,150 --> 00:47:57,420 И ви пријавите на обе машине ефикасно истовремено, надам се 1040 00:47:57,420 --> 00:47:58,660 док нико не гледа. 1041 00:47:58,660 --> 00:48:01,260 А онда куцате у ПИН грубо истовремено. 1042 00:48:01,260 --> 00:48:06,280 И онда то урадите биланс упит да видим колико новца имате. 1043 00:48:06,280 --> 00:48:08,920 И рецимо да имате $ 100 оставио на свом налогу. 1044 00:48:08,920 --> 00:48:13,310 Па у суштини истовремено, ви кажу један, нула, нула, унесите. 1045 00:48:13,310 --> 00:48:16,000 А ти надам се вратим неки новац. 1046 00:48:16,000 --> 00:48:18,440 >> Али колико новца може да се вратиш? 1047 00:48:18,440 --> 00:48:21,710 Сада рачунари на крају дана, нарочито ако они причају да 1048 00:48:21,710 --> 00:48:27,360 сервери, не морају чинити ствари у циљу да се очекује. 1049 00:48:27,360 --> 00:48:30,860 >> Дакле, претпоставимо шта се дешава, јер без обзира на мрежу брзине питања тамо 1050 00:48:30,860 --> 00:48:34,530 су, или проблеми ЦПУ постоје, или нешто слично, претпостављам да 1051 00:48:34,530 --> 00:48:38,530 Први банкомат проверава стање и види, ох, та особа има $ 100. 1052 00:48:38,530 --> 00:48:41,840 Али онда добија растројен јер можда резервне копије се дешава и тако је 1053 00:48:41,840 --> 00:48:42,500 успорава. 1054 00:48:42,500 --> 00:48:45,080 Или можда док провере, мрежу веза има мало спорије јер 1055 00:48:45,080 --> 00:48:45,910 ово само дешава. 1056 00:48:45,910 --> 00:48:47,100 Они су физички уређаји. 1057 00:48:47,100 --> 00:48:49,330 Дакле у међувремену, други банкомат је постављам исто питање. 1058 00:48:49,330 --> 00:48:53,030 Колико новца се Дејвид има? $ 100 је одговор. 1059 00:48:53,030 --> 00:48:58,930 Али пошто први банкомат још није послата је порука одузимање $ 100, и 1060 00:48:58,930 --> 00:49:03,000 Банкомати су увиђај трезор банке, видим ту је $ 100 тамо, а сада 1061 00:49:03,000 --> 00:49:07,160 обе машине су потенцијално ће испљунути одговор. 1062 00:49:07,160 --> 00:49:12,240 >> Сада, ово је супер за вас у неком смислу ако оно банка ради на крају 1063 00:49:12,240 --> 00:49:17,200 је променити износ на минус 100 од постављање променљива једнака ваше 1064 00:49:17,200 --> 00:49:21,570 Жиро рачун једнако 0, насупрот да раде минус 100. 1065 00:49:21,570 --> 00:49:24,410 Сада у најгорем случају за банку - 1066 00:49:24,410 --> 00:49:27,470 или у најбољем за банке, у међувремену, они вам дати $ 200, и 1067 00:49:27,470 --> 00:49:31,690 Ваш банковни рачун сада показује негативан $ 100, који заправо не 1068 00:49:31,690 --> 00:49:32,950 користи те уопште. 1069 00:49:32,950 --> 00:49:36,500 Али поента је да је ова раса услов за добијање две цимерке 1070 00:49:36,500 --> 00:49:40,660 млеко, или за два банкомата покушавају да добију готовину и промени стање трезору 1071 00:49:40,660 --> 00:49:44,510 истовремено постоји било време имате базу података. 1072 00:49:44,510 --> 00:49:48,290 >> Сада у проблему сет седам, ово питање настаје у смислу да ако купите 1073 00:49:48,290 --> 00:49:52,110 Удео Фацебоок лагеру, а затим за пример ти купити други део 1074 00:49:52,110 --> 00:49:55,160 Фацебоок залиха, потребно је да се одлука као програмер. 1075 00:49:55,160 --> 00:49:58,710 Да би се одлучило како да ажурирате база података, шансе су да ћете 1076 00:49:58,710 --> 00:50:02,250 има један ред за тим залихама, и то је један од начина да се то спроведе. 1077 00:50:02,250 --> 00:50:06,640 И ти ћеш имати један удео ФБ, која је њихова акција тикер симбол 1078 00:50:06,640 --> 00:50:10,120 за ову корисничко име или овог корисника ИД, јединствени идентификатор. 1079 00:50:10,120 --> 00:50:12,340 >> Али иста прича може да се деси овде. 1080 00:50:12,340 --> 00:50:15,800 Ако то урадите изабрали у СКЛ, као што ћете видети у проблему сет седам када видите, 1081 00:50:15,800 --> 00:50:18,460 ох, Дејвид има једну акцију на Фацебоок лагеру. 1082 00:50:18,460 --> 00:50:23,240 Дозволите ми сада променити ово да буде два акције, јер жели да купи 1083 00:50:23,240 --> 00:50:24,120 Друга акција. 1084 00:50:24,120 --> 00:50:27,860 Али, претпоставимо Дејвид заправо имао два бровсер прозоре отвори, или претпоставимо да 1085 00:50:27,860 --> 00:50:32,150 то је заједнички рачун са два супружника, и обојица се труде да врше 1086 00:50:32,150 --> 00:50:36,770 иста операција, тамо, потенцијал постоји за одлуку да буде 1087 00:50:36,770 --> 00:50:39,670 врши на основу претходне држава света - 1088 00:50:39,670 --> 00:50:41,290 рачун има један део - 1089 00:50:41,290 --> 00:50:45,630 и обе особе, или оба сервера, сада покушајте да повећате рећи да је на две акције. 1090 00:50:45,630 --> 00:50:49,020 Али у овом случају, можда сте терете ми новац за обе акције, али 1091 00:50:49,020 --> 00:50:50,830 увећава само тај један пут. 1092 00:50:50,830 --> 00:50:54,730 >> Дакле укратко, основни проблем овде, као и са шалом око остављајући 1093 00:50:54,730 --> 00:50:58,750 уму, или стављање катанца на њему, је ако двоје људи, или две теме - 1094 00:50:58,750 --> 00:50:59,930 Мислим назад на огреботине - 1095 00:50:59,930 --> 00:51:03,220 могу прегледати стање неке променљиве а затим покушајте да промените ту променљиву, 1096 00:51:03,220 --> 00:51:07,950 али те две ствари се не дешавају у исто време, али може се прекинути 1097 00:51:07,950 --> 00:51:11,500 других ствари које се дешавају, подаци могу се у врло чудном стању. 1098 00:51:11,500 --> 00:51:15,450 И ви можете имати користи или можете патити у смислу новца примера. 1099 00:51:15,450 --> 00:51:18,110 >> Дакле, у проблему поставили седам, ми вам ова линија кода, који дуго 1100 00:51:18,110 --> 00:51:21,000 причу, решава ово проблем у МиСКЛ. 1101 00:51:21,000 --> 00:51:24,950 Овај веома дуго упутства да не чак стане на једној линији на 1102 00:51:24,950 --> 00:51:30,370 Екран обезбеђује да ваш рад је оно што се зове атомски. 1103 00:51:30,370 --> 00:51:33,720 То се дешава све одједном, или то не деси уопште. 1104 00:51:33,720 --> 00:51:37,530 Овај веома дуго фраза не може се прекида делимично. 1105 00:51:37,530 --> 00:51:39,840 >> И оно што ради је буквално шта пише. 1106 00:51:39,840 --> 00:51:44,200 Убаците у неку табелу следеће три поља те одређене вредности, 1107 00:51:44,200 --> 00:51:47,280 али на дупликат кључа, немој инсерт. 1108 00:51:47,280 --> 00:51:48,280 До ажурирање. 1109 00:51:48,280 --> 00:51:52,450 Дакле, ово је као ради и ИЗАБЕРИ ИНСЕРТ такорећи истовремено. 1110 00:51:52,450 --> 00:51:55,150 А оно што је кључ који је вероватно упућивања овде? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Испоставило се, а то ћете видети у Проблем је сет седам спец, јер 1113 00:52:01,380 --> 00:52:06,040 ми смо ту да буде проглашен јединственог кључа на овом столу то што су 1114 00:52:06,040 --> 00:52:08,480 не можете имати више редова за истог корисника са 1115 00:52:08,480 --> 00:52:10,150 Исто Пени берза симбол - 1116 00:52:10,150 --> 00:52:13,780 у овом примеру овде, је ДВН.В Пени берза глупо да ми 1117 00:52:13,780 --> 00:52:14,980 погледајте у спец. 1118 00:52:14,980 --> 00:52:17,860 Зато смо изјавили да је јединствен, шта то значи да ако 1119 00:52:17,860 --> 00:52:23,580 покушајте да убаците дупликат ред, ти си уместо тога ће се ажурирати без 1120 00:52:23,580 --> 00:52:27,020 било ко други има шансу да промени стање света било. 1121 00:52:27,020 --> 00:52:29,400 Дакле укратко, то осигурава ствари су атомски. 1122 00:52:29,400 --> 00:52:32,530 >> Уопште узев, иако базе података као МиСКЛ - 1123 00:52:32,530 --> 00:52:35,460 и није потребно за ову функцију П-сет седам, али имајте на уму да је за 1124 00:52:35,460 --> 00:52:36,200 будућност - 1125 00:52:36,200 --> 00:52:38,870 подржава оно што се назива трансакција, где можете да кажете 1126 00:52:38,870 --> 00:52:40,990 СТАРТ ТРАНСАКЦИЈЕ буквално. 1127 00:52:40,990 --> 00:52:43,270 Затим можете да извршите два СКЛ изјаве. 1128 00:52:43,270 --> 00:52:45,710 И СКЛ изјава, као што ћете видети у п-сет седам, изгледа мало 1129 00:52:45,710 --> 00:52:46,750 нешто овако. 1130 00:52:46,750 --> 00:52:48,820 Ажурирање сто под називом рачун. 1131 00:52:48,820 --> 00:52:52,550 Поставите колону Стање једнак без обзира Тренутно стање колона 1132 00:52:52,550 --> 00:52:57,280 је минус 1.000, где је број, на број рачуна, као и кориснички ИД, 1133 00:52:57,280 --> 00:53:00,830 једнак 2, а затим ажурирате рачун дот дот дот. 1134 00:53:00,830 --> 00:53:04,350 >> Дакле, у смислу лаике, Шта ова два упити изгледа да раде у 1135 00:53:04,350 --> 00:53:05,840 стварни свет осећај банкарства? 1136 00:53:05,840 --> 00:53:07,440 >> ПУБЛИКА: Прелазак на штедњу. 1137 00:53:07,440 --> 00:53:08,020 >> ДАВИД Малан: Управо тако. 1138 00:53:08,020 --> 00:53:10,470 Пренос средстава из једне рачуна на други. 1139 00:53:10,470 --> 00:53:14,400 И ово је још један пример где сте Заиста желим да се ове две ствари десити 1140 00:53:14,400 --> 00:53:15,570 или не деси. 1141 00:53:15,570 --> 00:53:18,880 Ви не желите да се нешто у сред њих и потенцијално забрљао 1142 00:53:18,880 --> 00:53:22,220 математика, или забрљамо колико новца имате, или колико 1143 00:53:22,220 --> 00:53:23,170 Новац банка има. 1144 00:53:23,170 --> 00:53:26,890 Дакле, оно што је заиста лепо о трансакцијама МиСКЛ је у то, и 1145 00:53:26,890 --> 00:53:30,160 базама података уопште, је да они и паметни људи који су реализовани 1146 00:53:30,160 --> 00:53:33,670 ове карактеристике схватим како да да ли обе ове ствари дешавају 1147 00:53:33,670 --> 00:53:35,120 или не уопште. 1148 00:53:35,120 --> 00:53:38,580 >> А ако сте заиста тежи да сајт који се користи од стране људи на 1149 00:53:38,580 --> 00:53:41,490 кампус, људи у стварном свету, ради нешто у смислу покретања, 1150 00:53:41,490 --> 00:53:43,300 Ово су врсте дизајн одлуке које 1151 00:53:43,300 --> 00:53:45,020 постају све тако важно. 1152 00:53:45,020 --> 00:53:48,240 У супротном, почињете да губите податке, изгубити корисника, или у најгорем случају, као 1153 00:53:48,240 --> 00:53:51,800 Овде смо видели, потенцијално изгубити новац. 1154 00:53:51,800 --> 00:53:56,180 Па опет, више о томе у проблему сет седам, као и можда за неке од 1155 00:53:56,180 --> 00:53:57,530 сте у завршних пројеката. 1156 00:53:57,530 --> 00:54:01,870 >> Па хајде да промени ту слику коју смо имали Малопре само на још један начин. 1157 00:54:01,870 --> 00:54:04,070 Па да видим да ли заиста могу - 1158 00:54:04,070 --> 00:54:06,030 Не, то је нестало. 1159 00:54:06,030 --> 00:54:06,690 Ево га. 1160 00:54:06,690 --> 00:54:09,020 >> Дакле, ово је место где смо оставили последњи пут. 1161 00:54:09,020 --> 00:54:12,390 И испоставило се да ћемо бацити још једна ствар у микс овде - 1162 00:54:12,390 --> 00:54:14,510 језик се зове Јава. 1163 00:54:14,510 --> 00:54:18,060 Дакле, Јава заиста одговара у овом комаду - 1164 00:54:18,060 --> 00:54:22,086 а нисам баш остављају довољно простора, тако да ово није сад да скала. 1165 00:54:22,086 --> 00:54:23,900 ОК, ово је заиста јадно. 1166 00:54:23,900 --> 00:54:27,075 У реду, тако да је ЈаваСцрипт. 1167 00:54:27,075 --> 00:54:27,340 У реду. 1168 00:54:27,340 --> 00:54:28,760 Ја стварно радим то лоша. 1169 00:54:28,760 --> 00:54:29,390 У реду. 1170 00:54:29,390 --> 00:54:34,790 >> Тако је још један Јава програмирање језик, и наш последњи, ако то помаже 1171 00:54:34,790 --> 00:54:37,770 увери да не постоји много више на хидрантима овде. 1172 00:54:37,770 --> 00:54:41,100 Дакле, Јава је такође тумачи језик, што значи да не 1173 00:54:41,100 --> 00:54:42,670 састави га у нуле и јединице. 1174 00:54:42,670 --> 00:54:43,690 Само га покренете. 1175 00:54:43,690 --> 00:54:47,680 Али, оно што је суштински разликује од Јава је обично да 1176 00:54:47,680 --> 00:54:49,815 немојте га покренете на вашем веб серверу. 1177 00:54:49,815 --> 00:54:52,570 То се не ради у апарата по себи. 1178 00:54:52,570 --> 00:54:57,490 Уместо тога, он бива преузето од стране корисника преко ХТТП-у свог прегледача - 1179 00:54:57,490 --> 00:55:00,260 Цхроме, Сафари, Интернет Екплорер, Фирефок, шта год - 1180 00:55:00,260 --> 00:55:03,860 а то је бровсер који извршава посебно програмски језик. 1181 00:55:03,860 --> 00:55:08,000 >> Дакле, да буде јасно, ПХП је до сада био извршава или у командној линији у 1182 00:55:08,000 --> 00:55:11,290 наш црно-бели прозор, на серверу попут апарата, рачунара 1183 00:55:11,290 --> 00:55:14,490 попут апарата, или је то био погубљен од стране веб сервера 1184 00:55:14,490 --> 00:55:15,860 ради на рачунару. 1185 00:55:15,860 --> 00:55:20,490 Али, овде је тема да ПХП до сада извршена на страни сервера, тако 1186 00:55:20,490 --> 00:55:24,820 корисник и прегледач корисника никада не види линију ПХП кода. 1187 00:55:24,820 --> 00:55:28,530 >> У ствари, ако сте икада отворите прегледач за Ваш сајт или неки други, а ви 1188 00:55:28,530 --> 00:55:32,400 заправо види ПХП код на вашем прозору, неко је зезнуо. 1189 00:55:32,400 --> 00:55:34,950 Зато што није требало да буде послат на претраживачу директно. 1190 00:55:34,950 --> 00:55:38,150 Требало је да се изврши и окренуо у нешто слично ХТМЛ. 1191 00:55:38,150 --> 00:55:40,120 >> Али Јава је у суштини супротно. 1192 00:55:40,120 --> 00:55:44,350 Намењен је да се обично покреће у на прозору корисника. 1193 00:55:44,350 --> 00:55:46,840 А шта врсте сајтова користи Јава онда ових дана? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Као буквално сваки популарног сајта. 1196 00:55:52,180 --> 00:55:55,430 Сваки сајт који вероватно ви користите свакодневно користе ЈаваСцрипт за 1197 00:55:55,430 --> 00:55:57,330 најједноставнији и чак најсексипилнију функције. 1198 00:55:57,330 --> 00:55:59,800 >> Дакле, нешто као Фацебоок Ћаскање ако користите то. 1199 00:55:59,800 --> 00:56:01,040 Како се то заправо ради? 1200 00:56:01,040 --> 00:56:05,090 Па до сада, све ствари ми смо урадио са ХТМЛ и ПХП претпоставља да 1201 00:56:05,090 --> 00:56:08,750 се попнете УРЛ адресу, и кликнете Ентер, и видите ХТМЛ садржаја. 1202 00:56:08,750 --> 00:56:11,970 И кликнете на линк, који мења УРЛ адреса, мења страну, и поново учитава 1203 00:56:11,970 --> 00:56:12,740 неки нови садржај. 1204 00:56:12,740 --> 00:56:16,340 Кликните на другу УРЛ адресу или доставити образац, се одвезли на другу страну и 1205 00:56:16,340 --> 00:56:17,420 видиш неки нови садржај. 1206 00:56:17,420 --> 00:56:22,710 >> Али, користите нешто као Фацебоок Цхат, или Гцхат, или Гоогле мапе, ретко 1207 00:56:22,710 --> 00:56:27,350 се цела страница освежи да таква видећете бели екран тренутно и 1208 00:56:27,350 --> 00:56:28,470 затим нови садржај. 1209 00:56:28,470 --> 00:56:32,610 Уместо тога, веб странице данас су динамички узимајући поново ажурира и 1210 00:56:32,610 --> 00:56:35,570 опет и опет све врста од иза сцене. 1211 00:56:35,570 --> 00:56:38,560 И испоставило се да када не иду у нешто као Фацебоок, или Гцхат, 1212 00:56:38,560 --> 00:56:43,050 или Гмаил, а исправке страница аутоматски без претовар 1213 00:56:43,050 --> 00:56:47,630 цео екран, што се десило је да Ваш претраживач је направио некако тајно 1214 00:56:47,630 --> 00:56:49,410 додатни ХТТП захтеви - 1215 00:56:49,410 --> 00:56:52,740 не за целих веб страницама, али само за мали комади података, као што су 1216 00:56:52,740 --> 00:56:55,740 инстант порука да је ваш пријатељ управо послао ти, или исправку статус који 1217 00:56:55,740 --> 00:56:58,210 неко вас, или само твит послао да је неко управо послао. 1218 00:56:58,210 --> 00:57:02,120 То је само прављење мале захтеве за података, а затим користећи ЈаваСцрипт, ово 1219 00:57:02,120 --> 00:57:06,370 програмски језик, шта бисте променили веб страница изгледа без 1220 00:57:06,370 --> 00:57:09,860 сервер помаже, без сервера генерисање ХТМЛ ту. 1221 00:57:09,860 --> 00:57:13,820 >> Дакле укратко, ЈаваСцрипт може да се користи онда да не само да донесе нове податке из 1222 00:57:13,820 --> 00:57:16,750 Сервер без претовара целину страна или подношења обрасца. 1223 00:57:16,750 --> 00:57:20,060 Такође се може користити за промену тзв ДОМ - 1224 00:57:20,060 --> 00:57:21,520 Доцумент Објецт Модел - 1225 00:57:21,520 --> 00:57:24,620 који је само фенси начин за рекавши дрво ХТМЛ 1226 00:57:24,620 --> 00:57:26,220 да смо видели последњи пут. 1227 00:57:26,220 --> 00:57:31,640 >> Тако да увери, ЈаваСцрипт синтаксички тако сличан Ц као добро. 1228 00:57:31,640 --> 00:57:32,820 Нема главна функција. 1229 00:57:32,820 --> 00:57:35,430 Само наставите са писањем кода и она ће се извршити, или 1230 00:57:35,430 --> 00:57:36,900 тумачити исправно. 1231 00:57:36,900 --> 00:57:38,660 Услови ће изгледати овако. 1232 00:57:38,660 --> 00:57:41,230 Не разликује од Ц или ПХП за ту ствар. 1233 00:57:41,230 --> 00:57:43,890 Логички изрази или-ур заједно ће изгледати овако. 1234 00:57:43,890 --> 00:57:45,590 Андед заједно изгледају овако. 1235 00:57:45,590 --> 00:57:47,750 >> Прекидачи ће изгледати овако. 1236 00:57:47,750 --> 00:57:49,440 За петље ће изгледати овако. 1237 00:57:49,440 --> 00:57:51,060 Док петље ће изгледати овако. 1238 00:57:51,060 --> 00:57:53,316 Да ли док петље ће изгледати овако. 1239 00:57:53,316 --> 00:57:54,780 >> Ово је ново. 1240 00:57:54,780 --> 00:57:58,753 Дакле ЈаваСкрипт нема а фореацх конструисати пер се, али ово конструкт 1241 00:57:58,753 --> 00:58:03,870 за променљива и у низу, а ја у то Случај постаје вредност индекса. 1242 00:58:03,870 --> 00:58:06,880 Дакле, то је мало другачији од оног фореацх, мада нове верзије 1243 00:58:06,880 --> 00:58:10,280 Се ЈаваСкрипт излази све време, па чак и ове језичке карактеристике 1244 00:58:10,280 --> 00:58:10,880 еволуирају. 1245 00:58:10,880 --> 00:58:16,920 >> И Као страну, ЈаваСцрипт ових дана се такође може користити на серверу баш као 1246 00:58:16,920 --> 00:58:19,920 ПХП користећи оквир под називом Ноде.јс. 1247 00:58:19,920 --> 00:58:24,670 Један од ЦС50-а Поздрав, Кевин, довело Семинар о Ноде.јс који је доступан на 1248 00:58:24,670 --> 00:58:26,440 цс50.нет/семинарс. 1249 00:58:26,440 --> 00:58:28,830 Дакле, ако сте радознали, знате да вам могу да користе ово на страни сервера као 1250 00:58:28,830 --> 00:58:33,870 добро, али да је скорашњи тренд, али моћан на то. 1251 00:58:33,870 --> 00:58:35,270 >> Ово је мало другачија. 1252 00:58:35,270 --> 00:58:37,910 Ово је низ у ЈаваСцрипт. 1253 00:58:37,910 --> 00:58:40,115 А шта вас удари као другачији наспрам Ц или ПХП? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Постоји неколико брзих приче можемо рећи овде. 1256 00:58:47,420 --> 00:58:49,367 Шта недостаје у односу ПХП? 1257 00:58:49,367 --> 00:58:51,652 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 1258 00:58:51,652 --> 00:58:52,110 >> ДАВИД Малан: Да? 1259 00:58:52,110 --> 00:58:53,322 Извини, опет кажем? 1260 00:58:53,322 --> 00:58:54,740 >> ПУБЛИКА: Не пријави тип променљиве. 1261 00:58:54,740 --> 00:58:56,390 >> ДАВИД Малан: Нисмо изјављујући тип променљиве. 1262 00:58:56,390 --> 00:58:59,630 Тако заправо сасвим као ПХП, нисмо наводећи врсте ове променљиве. 1263 00:58:59,630 --> 00:59:02,670 Уместо тога, ми смо више генерички рекавши вар за променљиву. 1264 00:59:02,670 --> 00:59:06,690 Немамо ПХП досадан долар знак, који док се досадан 1265 00:59:06,690 --> 00:59:09,160 Тип, чини више јасно да нешто је променљива. 1266 00:59:09,160 --> 00:59:11,830 Док овде, ми смо некако вратили у Ц приступ од само позивање 1267 00:59:11,830 --> 00:59:14,500 променљива по имену желимо да га дају, као што су бројеви. 1268 00:59:14,500 --> 00:59:17,170 И такође као ПХП, имамо угласте заграде за 1269 00:59:17,170 --> 00:59:19,170 Вредности унутар тог низа. 1270 00:59:19,170 --> 00:59:22,490 >> Тако променљиве у ЈаваСцрипт и може изгледати овако. 1271 00:59:22,490 --> 00:59:26,900 Приметимо да је ово ниска зове ова, али исто тако имамо непоменути 1272 00:59:26,900 --> 00:59:28,750 да је ниска. 1273 00:59:28,750 --> 00:59:33,160 Ево иако је функција која не постоје на потпуно исти начин у ПХП, 1274 00:59:33,160 --> 00:59:34,460 али помало слично. 1275 00:59:34,460 --> 00:59:36,530 Ово је објекат у ЈаваСцрипт. 1276 00:59:36,530 --> 00:59:42,110 И објекти су врста Свисс Арми Нож од структуре података у том вама 1277 00:59:42,110 --> 00:59:43,900 Можете их користити за било који број ствари. 1278 00:59:43,900 --> 00:59:46,860 >> Овде, на пример, смо изјављујући променљива се зове цитат. 1279 00:59:46,860 --> 00:59:49,110 Тип ту променљиву је објекат. 1280 00:59:49,110 --> 00:59:53,550 Можете мислити о томе као о Ц струцт који има кључеве и вредности. 1281 00:59:53,550 --> 00:59:55,250 Симбол је кључ. 1282 00:59:55,250 --> 00:59:57,350 ФБ је вредност, наизглед залиха симбол. 1283 00:59:57,350 --> 00:59:57,930 Зарез. 1284 00:59:57,930 --> 01:00:02,180 Цена је још један кључни, а његова вредност је очигледно флоатинг поинт, или 1285 01:00:02,180 --> 01:00:06,510 број уопште у Јава, од $ 49.26. 1286 01:00:06,510 --> 01:00:09,030 >> Дакле, ПХП нема - 1287 01:00:09,030 --> 01:00:12,980 нисмо видели у ПХП објектима сасвим овако, али ми нисмо видели аналогну, 1288 01:00:12,980 --> 01:00:14,093 који је био шта? 1289 01:00:14,093 --> 01:00:14,980 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 1290 01:00:14,980 --> 01:00:16,110 >> ДАВИД Малан: Асоцијативне низови. 1291 01:00:16,110 --> 01:00:19,990 Дакле, док је ПХП има асоцијативне низове чија синтакса је икада нешто тако 1292 01:00:19,990 --> 01:00:20,370 другачије - 1293 01:00:20,370 --> 01:00:21,780 смо видели угласте заграде. 1294 01:00:21,780 --> 01:00:23,860 Видели смо чудне стрелице симболе. 1295 01:00:23,860 --> 01:00:27,330 Јава има објекте, али ово је углавном семантички разлика и 1296 01:00:27,330 --> 01:00:29,260 другачија синоним за сада. 1297 01:00:29,260 --> 01:00:35,060 Међутим, како у страну, ПХП такође има објекте на начин који Јава и други 1298 01:00:35,060 --> 01:00:37,810 језици имају објекте у објектно-оријентисано програмирање. 1299 01:00:37,810 --> 01:00:40,440 Али, ми ћемо користити ове само за типове података за сада. 1300 01:00:40,440 --> 01:00:42,170 Објекти и асоцијативни низови. 1301 01:00:42,170 --> 01:00:44,140 >> То би се могло то направити мало јасније. 1302 01:00:44,140 --> 01:00:45,890 Ево зашто предмет је користан. 1303 01:00:45,890 --> 01:00:48,760 Када желите да прогласи студента, као Замила, ми заправо можемо 1304 01:00:48,760 --> 01:00:52,630 обухвати такорећи унутар које објецт користећи витичасте заграде као 1305 01:00:52,630 --> 01:00:55,060 пред гомилу кључева и вредности у овде. 1306 01:00:55,060 --> 01:00:59,150 Имамо ИД, кућу и име Замила, праћено зарезом као 1307 01:00:59,150 --> 01:01:00,690 уобичајено на крају. 1308 01:01:00,690 --> 01:01:04,840 >> Овде доле превише, ово је нешто другачија, али и веома моћно 1309 01:01:04,840 --> 01:01:05,690 ових дана. 1310 01:01:05,690 --> 01:01:08,780 Ево низ, а ја знам да је зато постоји средња заграда горе 1311 01:01:08,780 --> 01:01:11,090 Најбољи и средња заграда на дну. 1312 01:01:11,090 --> 01:01:16,050 А ово је оно што низ података укуцајте очигледно у ЈаваСцрипт? 1313 01:01:16,050 --> 01:01:21,260 Ово је низ од изгледа као три објекта. 1314 01:01:21,260 --> 01:01:24,580 И знам да је то само објекат због великих заграда. 1315 01:01:24,580 --> 01:01:28,760 И приметити постоји отворен коврџава браће, неке ствари, близу коврџава браће, зарез, 1316 01:01:28,760 --> 01:01:31,180 онда још мало, зарез, а онда још мало. 1317 01:01:31,180 --> 01:01:33,800 Дакле, то су три аргументи раздвојене зарезима два. 1318 01:01:33,800 --> 01:01:36,810 >> Дакле, ово је низ од три предмета. 1319 01:01:36,810 --> 01:01:39,940 И свака од ових објеката изгледа да студент или запослени члан неке 1320 01:01:39,940 --> 01:01:42,370 врста, сваки са ИД, кућа, и име. 1321 01:01:42,370 --> 01:01:45,060 Али ја сам назвао овај нешто зове ЈСОН - 1322 01:01:45,060 --> 01:01:47,450 ЈаваСцрипт Објецт нотација. 1323 01:01:47,450 --> 01:01:52,060 И ово је формат података који заправо је тако веома популаран и у 1324 01:01:52,060 --> 01:01:55,100 вогуе ових дана да, ако пишете апликација која користи Фацебоок 1325 01:01:55,100 --> 01:01:59,150 АПИ, Твиттер АПИ, стварно готово сваки АПИ тамо ових дана, 1326 01:01:59,150 --> 01:02:02,820 укључујући и неке од ЦС50 сопствене, подаци се вратиш није у 1327 01:02:02,820 --> 01:02:04,720 стара школа ЦСВ формату. 1328 01:02:04,720 --> 01:02:06,780 >> Јер присећање да ЦСВ је супер једноставна. 1329 01:02:06,780 --> 01:02:10,230 То је само колоне раздвојене зарезом. 1330 01:02:10,230 --> 01:02:13,190 ЈСОН података вам даје више метаподатака. 1331 01:02:13,190 --> 01:02:17,800 Она повезује кључ са вредношћу сваког тако они не морају да само претпоставити да 1332 01:02:17,800 --> 01:02:22,460 колона нулти је једна вредност, колона један је још један, колона два друга. 1333 01:02:22,460 --> 01:02:26,790 Све у ЈСОН објекат овде је врста од себе описују, јер сваки 1334 01:02:26,790 --> 01:02:30,940 један од имена у овом фајлу је буквално име испред ње као 1335 01:02:30,940 --> 01:02:32,510 цитирао ниска. 1336 01:02:32,510 --> 01:02:34,950 >> Па хајде да погледамо а Неколико примера овде. 1337 01:02:34,950 --> 01:02:36,800 Пусти ме у уређај. 1338 01:02:36,800 --> 01:02:41,000 И пусти ме да одем у нашу вхост директоријум у јавности. 1339 01:02:41,000 --> 01:02:45,590 И дозволите ми да одем у ЈаваСцрипт именик. 1340 01:02:45,590 --> 01:02:49,610 И идемо напред и отвори дом-0.хтмл, где ДОМ само значи 1341 01:02:49,610 --> 01:02:51,010 Доцумент Објецт Модел. 1342 01:02:51,010 --> 01:02:53,490 То је дрво ствари на којима Ја из раније. 1343 01:02:53,490 --> 01:02:54,950 >> И дозволите ми да предложи следеће. 1344 01:02:54,950 --> 01:02:57,720 Ево веб страница чији Тело је прилично једноставна. 1345 01:02:57,720 --> 01:03:00,170 Дакле, овде доле на дну, приметити Имам форму. 1346 01:03:00,170 --> 01:03:01,500 Видели смо оне раније. 1347 01:03:01,500 --> 01:03:07,600 Она има два улаза, од којих један има ИД имена, од којих један има неку врсту 1348 01:03:07,600 --> 01:03:09,830 субмит, и први нечији тип је текст. 1349 01:03:09,830 --> 01:03:11,900 Дакле, ово заправо звучи прилично једноставно. 1350 01:03:11,900 --> 01:03:13,090 >> Идемо одавде. 1351 01:03:13,090 --> 01:03:15,390 Хајде да се вратимо на овој страници овде. 1352 01:03:15,390 --> 01:03:21,030 Идемо у лоцалхост, и иде у наш ЈаваСкрипт директоријум, и идите на 1353 01:03:21,030 --> 01:03:24,640 дом-0, а овде имамо овај формулар. 1354 01:03:24,640 --> 01:03:26,550 Дакле, то је очигледно све ово ради страница. 1355 01:03:26,550 --> 01:03:28,740 Она има име поља са Субмит дугме. 1356 01:03:28,740 --> 01:03:30,340 Али ја нећу да користим ПХП овде. 1357 01:03:30,340 --> 01:03:34,310 Ја ћу да урадим све што клијент страни да тако кажем у ЈаваСцрипт како следи. 1358 01:03:34,310 --> 01:03:39,100 >> Обратите пажњу да сам заиста сам дао име поље овог уноса јединствена 1359 01:03:39,100 --> 01:03:42,350 идентификатор, који ће заправо саве ме неко време у тренутак. 1360 01:03:42,350 --> 01:03:45,480 И приметио сам увео још једну ознаку у глави мојој веб страници, 1361 01:03:45,480 --> 01:03:46,565  ознака. 1362 01:03:46,565 --> 01:03:50,120 >> Тако да је у том смислу да је ЈаваСцрипт програмски језик на страни клијента. 1363 01:03:50,120 --> 01:03:55,020 У овом случају, као и ЦСС, ја сам ставио то право у моје ХТМЛ. 1364 01:03:55,020 --> 01:03:58,810 Не приметим да сам проглашен за функцију да изгледа помало као ПХП 1365 01:03:58,810 --> 01:04:01,530 синтаксички, али то је заправо Јава, опет зато, то је 1366 01:04:01,530 --> 01:04:03,920 клијент-страни у претраживачу. 1367 01:04:03,920 --> 01:04:07,590 И да претпоставите шта ће ово да уради, иако су неки од синтаксе 1368 01:04:07,590 --> 01:04:09,338 овде је нова. 1369 01:04:09,338 --> 01:04:11,760 >> ПУБЛИКА: Поздрави ко. 1370 01:04:11,760 --> 01:04:14,020 >> ДАВИД Малан: То ће рећи здраво да ко посети ову страницу. 1371 01:04:14,020 --> 01:04:15,120 Па како? 1372 01:04:15,120 --> 01:04:18,070 >> Дакле приметили, испада у ЈаваСцрипт постоји упозорење () функцију. 1373 01:04:18,070 --> 01:04:22,840 Ово је веома тужно врста функција које заиста само тежи да нервира кориснике. 1374 01:04:22,840 --> 01:04:25,440 То није један заиста треба да користите обично, али то је брз и прљав 1375 01:04:25,440 --> 01:04:27,710 начин врста штампе нешто на графички кориснички 1376 01:04:27,710 --> 01:04:29,180 интерфејс, као бровсер. 1377 01:04:29,180 --> 01:04:31,400 Приметимо овде да имам стринг у једноструким наводницима. 1378 01:04:31,400 --> 01:04:36,010 Испоставило се да за разлику од Ц, ЈаваСцрипт може заправо имати користите самац 1379 01:04:36,010 --> 01:04:38,730 цитира, а искрено то је само врста од стилске конвенције међу 1380 01:04:38,730 --> 01:04:41,180 Јава програмери користити апострофе. 1381 01:04:41,180 --> 01:04:43,750 ПХП, они заправо имају мало другачије значење. 1382 01:04:43,750 --> 01:04:45,810 Али за сада, само знам да То је једини разлог. 1383 01:04:45,810 --> 01:04:49,270 Конвенција у ЈаваСцрипт је често на Користите једноструке наводнике, али смо могли да користимо 1384 01:04:49,270 --> 01:04:50,950 двоструки наводници у оба места, као и. 1385 01:04:50,950 --> 01:04:52,610 >> Дакле, ово је интересантно. 1386 01:04:52,610 --> 01:04:56,430 Подсетимо последњи пут да смо имали да слика на екрану које су изазвале дрво 1387 01:04:56,430 --> 01:04:59,720 где сте имали ХТМЛ чвор, а ГЛАВНИ чвор, а тело чвор, 1388 01:04:59,720 --> 01:05:00,800 а онда неки текст. 1389 01:05:00,800 --> 01:05:04,700 Али постоји један посебан чвор на Веома врх који сам назвао документ. 1390 01:05:04,700 --> 01:05:08,260 Па, испоставило се да у ЈаваСцрипт, било пут када напишете програм у ЈаваСцрипт 1391 01:05:08,260 --> 01:05:11,040 у претраживач, имате приступ посебан глобална променљива. 1392 01:05:11,040 --> 01:05:14,130 Слично у духу да ПХП је суперглобалс, ово се зове у 1393 01:05:14,130 --> 01:05:16,050 све малим словима документ. 1394 01:05:16,050 --> 01:05:21,480 >> То је као струцт, али ово струцт Такође има функције унутар ње. 1395 01:05:21,480 --> 01:05:23,790 Дакле, има Ц струцт само типично податке. 1396 01:05:23,790 --> 01:05:29,060 Али ЈаваСкрипт објекат као овај технички је такође има функције, 1397 01:05:29,060 --> 01:05:31,830 иначе познат као методе, у њему. 1398 01:05:31,830 --> 01:05:35,750 И можете да позовете функцију унутар овај објекат буквално ради свој 1399 01:05:35,750 --> 01:05:39,610 име, дот, а затим име функцију, или поново метод. 1400 01:05:39,610 --> 01:05:41,160 То је управо синоним, стварно. 1401 01:05:41,160 --> 01:05:42,450 >> И шта то уради функција? 1402 01:05:42,450 --> 01:05:43,840 Можете да некако погоди из свог имена. 1403 01:05:43,840 --> 01:05:45,590 Набавите елемент по ИД. 1404 01:05:45,590 --> 01:05:50,040 Дакле, ово ће да претражујете веб страницу, Претраживач то дрво, у потрази за 1405 01:05:50,040 --> 01:05:55,210 год чвор, звани елеменат, има јединствени ИД цитатом Ункуоте имена. 1406 01:05:55,210 --> 01:05:56,560 И онда шта ћу ја да радим? 1407 01:05:56,560 --> 01:06:00,350 Идем да се вредност унутар који чвор у дрвету, а ја ћу 1408 01:06:00,350 --> 01:06:02,580 да некако поздрави тим именом. 1409 01:06:02,580 --> 01:06:05,360 >> Тако да претпоставите, иако ми не сам види ово још, шта уради, плус 1410 01:06:05,360 --> 01:06:07,396 симболи значе овде и овде вероватно? 1411 01:06:07,396 --> 01:06:08,230 >> ПУБЛИКА: спајање. 1412 01:06:08,230 --> 01:06:09,220 >> ДАВИД Малан: спајање. 1413 01:06:09,220 --> 01:06:11,290 Тачно, а то су управо врста дизајн одлуке 1414 01:06:11,290 --> 01:06:12,280 људи су пре неколико година. 1415 01:06:12,280 --> 01:06:15,190 У ПХП-у, ви цонцатенате ствари са тачкицама. 1416 01:06:15,190 --> 01:06:18,800 У Ц, скок кроз неколико обруча и позовите функције као стрцопи () или 1417 01:06:18,800 --> 01:06:20,600 стрцат () или друге такве функције. 1418 01:06:20,600 --> 01:06:22,060 Али у ЈаваСцрипт, користите плусева. 1419 01:06:22,060 --> 01:06:24,770 Дакле, ово је само спајањем три жице - 1420 01:06:24,770 --> 01:06:27,850 здраво, име, а затим знак узвика. 1421 01:06:27,850 --> 01:06:30,390 >> Дакле, када и зашто је ова функција звао иако? 1422 01:06:30,390 --> 01:06:33,150 Па, да претпоставите од ХТМЛ-на дну. 1423 01:06:33,150 --> 01:06:35,810 Зашто је поздрави () зове, или када? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Очигледно, најбоље што могу да кажем, на субмит, када се подноси овај образац, 1426 01:06:44,030 --> 01:06:47,200 Ја ћу да урадим све што је унутар ових цитата. 1427 01:06:47,200 --> 01:06:50,900 А конкретно, ја ћу да позовем поздравити () и затим се вратите лажна. 1428 01:06:50,900 --> 01:06:53,090 >> Па, хајде да видимо шта нето Ефекат је овде први. 1429 01:06:53,090 --> 01:06:58,290 Дакле, дозволите ми само напред и укуцајте у, рецимо, Лорен, Субмит. 1430 01:06:58,290 --> 01:06:59,440 Здраво Лорен. 1431 01:06:59,440 --> 01:07:02,990 Хајде да видимо да ли можда то био само срећан имплементација. 1432 01:07:02,990 --> 01:07:03,200 Јок. 1433 01:07:03,200 --> 01:07:05,990 Дакле, то је куцање год име сам заправо ставио тамо. 1434 01:07:05,990 --> 01:07:07,970 >> Али приметили шта се не мења. 1435 01:07:07,970 --> 01:07:10,360 УРЛ адреса је и даље дом-0.хтмл. 1436 01:07:10,360 --> 01:07:11,820 Нема регистер.пхп. 1437 01:07:11,820 --> 01:07:13,110 Нема други фајл. 1438 01:07:13,110 --> 01:07:14,930 Нема акције атрибут. 1439 01:07:14,930 --> 01:07:19,720 Дакле, шта је ово повратак лажна вероватно ради? 1440 01:07:19,720 --> 01:07:23,660 Зашто ја зовем поздрављам () и затим враћа фалсе вероватно? 1441 01:07:23,660 --> 01:07:26,420 Шта се дешава нормално када кликнете Пошаљи на обрасцу који чак имамо 1442 01:07:26,420 --> 01:07:27,854 види у последњих недељу дана? 1443 01:07:27,854 --> 01:07:29,900 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 1444 01:07:29,900 --> 01:07:30,860 >> ДАВИД Малан: То негде иде, зар не? 1445 01:07:30,860 --> 01:07:32,720 То иде на неку одредишну УРЛ адресу. 1446 01:07:32,720 --> 01:07:34,120 Али ја не желим да се овде деси. 1447 01:07:34,120 --> 01:07:37,620 Желим да мој веб страна да у потпуности буде динамичан као што су Гмаил, где си ти некада 1448 01:07:37,620 --> 01:07:38,650 тамо, ти остани ту. 1449 01:07:38,650 --> 01:07:42,900 УРЛ адреса се не мења на начин који указује цела страна је претовар. 1450 01:07:42,900 --> 01:07:46,680 Уместо тога, само желим да се нешто промени као штампање нешто 1451 01:07:46,680 --> 01:07:48,320 овде на екрану. 1452 01:07:48,320 --> 01:07:49,630 >> Па пусти ме да очистите ово се мало. 1453 01:07:49,630 --> 01:07:55,370 Дозволите ми да отворим не ДОМ-0, али дозволите ми да отворим Дом-2. 1454 01:07:55,370 --> 01:07:57,350 Само да сте видели овде мало синтаксу. 1455 01:07:57,350 --> 01:08:02,080 >> Испоставило се да је оно што смо управо да ли се користи сирову ЈаваСцрипт. 1456 01:08:02,080 --> 01:08:04,420 Дакле, ово је заиста језик ЈаваСцрипт. 1457 01:08:04,420 --> 01:08:07,340 Неки од вас можда знају библиотека зове јКуери. 1458 01:08:07,340 --> 01:08:09,980 >> Дакле јКуери није исто ствар као ЈаваСцрипт. 1459 01:08:09,980 --> 01:08:14,110 То је само библиотека која заиста паметан момак је написао и популаризовао такав 1460 01:08:14,110 --> 01:08:18,100 да скоро сви у свету сада користи јКуери када користите ЈаваСцрипт. 1461 01:08:18,100 --> 01:08:20,890 И на први поглед, искрено, то изгледа мало више тајновито. 1462 01:08:20,890 --> 01:08:24,990 Али ви ћете, нарочито ако идете ту за коначни пројекат са веб 1463 01:08:24,990 --> 01:08:29,029 развој, ви ћете наћи да је ово чисти ствари и штеди вам доста 1464 01:08:29,029 --> 01:08:30,229 неколико линија кода. 1465 01:08:30,229 --> 01:08:33,189 >> Па нека је само поглед на како овај образац ради. 1466 01:08:33,189 --> 01:08:35,664 Обратите пажњу шта сам очигледно уклонити из мог ХТМЛ? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Нема на субмит претовар тако да говори. 1469 01:08:40,630 --> 01:08:41,470 Нема атрибут. 1470 01:08:41,470 --> 01:08:43,359 Јер знате, шта Нисам стварно волео? 1471 01:08:43,359 --> 01:08:45,640 Осећао сам се као да су падале у старим навикама тамо. 1472 01:08:45,640 --> 01:08:49,340 Баш као да је почео да осећа аљкав да мешају како са ЦСС 1473 01:08:49,340 --> 01:08:52,149 ХТМЛ, јер си некако бацање различитих језика широм 1474 01:08:52,149 --> 01:08:56,180 место, слично је ово почело да се осећа као лош пут да иде доле, где 1475 01:08:56,180 --> 01:09:01,069 Стављам ЈаваСцрипт код унутар моје ХТМЛ уместо факторинга га. 1476 01:09:01,069 --> 01:09:02,279 >> Дакле, то је лекција овде. 1477 01:09:02,279 --> 01:09:05,080 У дом-2.хтмл, ја га факторинга напоље. 1478 01:09:05,080 --> 01:09:07,399 И ја радим ствари незнатно другачије. 1479 01:09:07,399 --> 01:09:09,630 За сада, ја ћу махати руке на шта то заправо ради 1480 01:09:09,630 --> 01:09:10,590 испод хаубе. 1481 01:09:10,590 --> 01:09:14,210 Али само за сада претпостављају да је први линија кода у овој библиотеци 1482 01:09:14,210 --> 01:09:18,170 зове јКуери само значи када документ је спреман, урадите следеће. 1483 01:09:18,170 --> 01:09:20,080 >> Јер веб странице могу узети неко време да се учита. 1484 01:09:20,080 --> 01:09:23,029 Можда се на спором интернету прикључак, а могло би се окреће 1485 01:09:23,029 --> 01:09:25,290 и предење, и на крају је напуњен. 1486 01:09:25,290 --> 01:09:29,060 Та линија кода само каже сачекајте да цела страна је спремна, документ 1487 01:09:29,060 --> 01:09:31,189 је спремна, пре извршавања овај код. 1488 01:09:31,189 --> 01:09:34,390 >> И сада приметити, ово је вероватно најкориснији први 1489 01:09:34,390 --> 01:09:36,189 одузети од јКуери. 1490 01:09:36,189 --> 01:09:42,140 Ова линија овде је веома слична у духу на овој линији много дуже овде. 1491 01:09:42,140 --> 01:09:46,920 Док је у сировом ЈаваСцрипт кода, постоји постоји документ глобални објекат који 1492 01:09:46,920 --> 01:09:50,460 има функцију под називом гетЕлементБиИд (), људи који су писали 1493 01:09:50,460 --> 01:09:55,720 јКуери поједностављена да би само рећи долар знак, а затим унутар 1494 01:09:55,720 --> 01:10:00,250 заграде ставити два цитате, а затим стави тараба симбол праћен 1495 01:10:00,250 --> 01:10:02,250 јединствени ИД желите да ухватите. 1496 01:10:02,250 --> 01:10:06,170 Дакле, ово је еквивалентно са доцумент.врите. 1497 01:10:06,170 --> 01:10:11,090 >> У међувремену,. Поднети само значи на подношење год облик ти си 1498 01:10:11,090 --> 01:10:14,240 позивајући се на лево, иди напред и изврши ово. 1499 01:10:14,240 --> 01:10:16,600 Али ово је сада превише радозналост. 1500 01:10:16,600 --> 01:10:19,560 Шта је чудно шта Ја сам овде истакао? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Не само да је некако синтаксички нови, ту је нешто недостаје. 1503 01:10:28,594 --> 01:10:29,558 >> ПУБЛИКА: То је само зове функција? 1504 01:10:29,558 --> 01:10:31,970 Не зове опрезан? 1505 01:10:31,970 --> 01:10:32,440 >> ДАВИД Малан: Да. 1506 01:10:32,440 --> 01:10:35,450 Па, тако упозорење () је доле овде, да будемо фер. 1507 01:10:35,450 --> 01:10:39,520 Али нема помена о име, као што знате, трла или 1508 01:10:39,520 --> 01:10:40,980 нешто овде. 1509 01:10:40,980 --> 01:10:43,830 И заиста, ово је једна од карактеристика ЈаваСцрипт који је сасвим 1510 01:10:43,830 --> 01:10:45,370 моћан, али и сасвим ново. 1511 01:10:45,370 --> 01:10:47,460 И ПХП заправо има ово као добро. 1512 01:10:47,460 --> 01:10:49,500 >> Пусти ме само напред и урадите нешто стварно брзо. 1513 01:10:49,500 --> 01:10:52,030 Пусти ме само напред и ставио ово овде. 1514 01:10:52,030 --> 01:10:52,600 Пусти ме да урадим ово. 1515 01:10:52,600 --> 01:10:53,690 Функција. 1516 01:10:53,690 --> 01:10:56,455 Назовимо овај хендлер (). 1517 01:10:56,455 --> 01:10:58,290 Функција руковалац тако да говори. 1518 01:10:58,290 --> 01:11:00,110 Нешто што управља неком операцијом. 1519 01:11:00,110 --> 01:11:02,700 Дозволите ми да почисти своју увлачење. 1520 01:11:02,700 --> 01:11:04,380 И ставио ово овде. 1521 01:11:04,380 --> 01:11:06,090 И стави то овде. 1522 01:11:06,090 --> 01:11:06,470 Да. 1523 01:11:06,470 --> 01:11:07,060 ОК. 1524 01:11:07,060 --> 01:11:10,300 >> Тако да сада имам функцију која се зове претовар () да ја стварно не знам 1525 01:11:10,300 --> 01:11:10,890 шта то још ради. 1526 01:11:10,890 --> 01:11:12,710 Она још увек има само те ствари. 1527 01:11:12,710 --> 01:11:13,900 Упс. 1528 01:11:13,900 --> 01:11:15,820 Узео превише. 1529 01:11:15,820 --> 01:11:18,490 Хајде да урадимо ово. 1530 01:11:18,490 --> 01:11:18,990 У реду. 1531 01:11:18,990 --> 01:11:20,240 Извините. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 У реду. 1534 01:11:23,690 --> 01:11:24,720 Пусти ме да урадим ово. 1535 01:11:24,720 --> 01:11:25,020 ОК. 1536 01:11:25,020 --> 01:11:27,040 То изгледа лепо и равно напред сада. 1537 01:11:27,040 --> 01:11:29,090 Пусти ме да урадим ово. 1538 01:11:29,090 --> 01:11:29,860 Урадите ово. 1539 01:11:29,860 --> 01:11:30,950 И у реду. 1540 01:11:30,950 --> 01:11:33,080 Па сад, хајде да ставимо ово овде. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Нема више програмирање у лету. 1543 01:11:37,270 --> 01:11:37,900 ОК. 1544 01:11:37,900 --> 01:11:40,000 >> Па сад, хајде да се вратимо на где је почела прича. 1545 01:11:40,000 --> 01:11:43,530 Раније сам рекао да овде та линија значи када документ буде спреман, идите 1546 01:11:43,530 --> 01:11:44,380 Хајде, уради то. 1547 01:11:44,380 --> 01:11:45,660 Шта желите да урадите? 1548 01:11:45,660 --> 01:11:49,070 Па конкретно, ја желим да идем напред и урадите следеће. 1549 01:11:49,070 --> 01:11:53,700 Извршите ову линију кода, а затим оно што желим да урадите је да позовете ово 1550 01:11:53,700 --> 01:11:56,370 функционишу када се образац подноси. 1551 01:11:56,370 --> 01:11:57,730 >> Сада је то оно што је занимљиво. 1552 01:11:57,730 --> 01:11:59,170 Ово није сама функција. 1553 01:11:59,170 --> 01:12:02,540 Обавештење ја не стављам заграде овде на нормалан начин. 1554 01:12:02,540 --> 01:12:06,800 Ја сам буквално пролази позива функција претовар () за неку другу функцију 1555 01:12:06,800 --> 01:12:10,800 зове поднесе () као аргумент као иако је као променљиву. 1556 01:12:10,800 --> 01:12:14,290 И ово је једна од одлика Јава, је функција сами 1557 01:12:14,290 --> 01:12:15,710 стварно су само предмети. 1558 01:12:15,710 --> 01:12:18,350 У ствари, они су заиста само варијабле неке врсте. 1559 01:12:18,350 --> 01:12:21,340 И ако је име функције је управљач (), нема разлога да не могу 1560 01:12:21,340 --> 01:12:23,390 прође га као аргумент овде. 1561 01:12:23,390 --> 01:12:27,530 А то значи да, када образац са ИД је демо 1562 01:12:27,530 --> 01:12:29,320 поднео, уколико урадите. 1563 01:12:29,320 --> 01:12:32,770 >> Али сада, ако ја поништити све ово, зашто онда сам можда урадим 1564 01:12:32,770 --> 01:12:34,850 пре ово тренутак? 1565 01:12:34,850 --> 01:12:36,840 Па, ово је анонимна функција. 1566 01:12:36,840 --> 01:12:41,080 Јер искрено, схватио сам зашто сам смета да губе време проглашења 1567 01:12:41,080 --> 01:12:45,540 Функција се зове управљач () само да позовете је у једном и само на једном месту? 1568 01:12:45,540 --> 01:12:48,640 Ако не треба име, а ја не морају да зову више од једног места, 1569 01:12:48,640 --> 01:12:51,200 хајде да спроведе функцију тамо где је то потребно. 1570 01:12:51,200 --> 01:12:55,190 И тако Јава и ПХП подршка што се зову анонимне функције које 1571 01:12:55,190 --> 01:12:57,900 дозволите ми да управо то овде. 1572 01:12:57,900 --> 01:12:59,570 >> Али, тек смо загребали површину. 1573 01:12:59,570 --> 01:13:02,430 Хајде да зафркавати са само неколико крајњи примери овде. 1574 01:13:02,430 --> 01:13:04,600 >> Ако одем у куоте.пхп. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Обратите пажњу да је ово у ствари ПХП функција, ПХП програм, који сам написао 1577 01:13:11,870 --> 01:13:15,270 да очекује ХТТП параметар зове симбол, а ја могу проћи у 1578 01:13:15,270 --> 01:13:16,730 вредност као ФБ. 1579 01:13:16,730 --> 01:13:20,010 А ако се добро погледа извору код, то је упита бесплатан сајт 1580 01:13:20,010 --> 01:13:23,680 зове Иахоо Финанце, као П-СЕТ седам, а то је повратак у мени 1581 01:13:23,680 --> 01:13:26,580 нешто у наизглед Познато је ЈСОН формату - 1582 01:13:26,580 --> 01:13:28,010 ЈаваСцрипт Објецт Нотатион. 1583 01:13:28,010 --> 01:13:28,810 То је само објекат. 1584 01:13:28,810 --> 01:13:32,500 Обавештење витичасте заграде, на цитате, дебелог црева, и зарезе. 1585 01:13:32,500 --> 01:13:34,720 >> Сада у међувремену, ово је супер. 1586 01:13:34,720 --> 01:13:38,520 Зато што вероватно може да користи програм језик за генерисање адресе 1587 01:13:38,520 --> 01:13:40,370 то изгледа овако динамично, зар не? 1588 01:13:40,370 --> 01:13:43,340 Ја могу променити ово на Гоогле и врати Гоогле-а 1589 01:13:43,340 --> 01:13:47,930 Цена акција од $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Па да видимо, ако не можемо да искористимо ово сада. 1591 01:13:49,640 --> 01:13:56,590 >> Пусти ме да Ајак-0 овде, који има следећи изглед. 1592 01:13:56,590 --> 01:13:59,750 То је само сајт који има форма са дугмета. 1593 01:13:59,750 --> 01:14:05,860 Дозволите ми да овде само напред и укуца ИХОО за симбол акције Иахоо-а, кликните на дугме Гет 1594 01:14:05,860 --> 01:14:10,530 Цитат, и сад приметио сам добио опрезан са 32.86. 1595 01:14:10,530 --> 01:14:14,050 >> Дозволите ми заправо иде у одгајивач верзију ове странице, верзија два, и 1596 01:14:14,050 --> 01:14:17,530 укуцајте рецимо Мицрософт, МСФТ. 1597 01:14:17,530 --> 01:14:18,410 Набавите Цитат. 1598 01:14:18,410 --> 01:14:19,850 Запазите сада, без упозорења. 1599 01:14:19,850 --> 01:14:22,770 Обратите пажњу где пише цена треба да се утврди? 1600 01:14:22,770 --> 01:14:27,060 Ту је најједноставнија од примера који наговештава шта Гцхат и Фацебоок 1601 01:14:27,060 --> 01:14:30,070 Цхат, и Гмаил, и друге сличне сајтови раде самим 1602 01:14:30,070 --> 01:14:31,290 мења веб странице. 1603 01:14:31,290 --> 01:14:31,800 >> Обратите пажњу на то. 1604 01:14:31,800 --> 01:14:33,120 Дозволите ми да поново учитате страницу. 1605 01:14:33,120 --> 01:14:35,080 Дозволите ми да отворим Цхроме инспекторе. 1606 01:14:35,080 --> 01:14:36,890 Пусти ме на елементе Картица овде. 1607 01:14:36,890 --> 01:14:42,310 Сада сам приметио да увећај овде и Отвори ово, приметите да је ово мој 1608 01:14:42,310 --> 01:14:44,500 ХТМЛ ДОМ - Доцумент Објецт Модел мој. 1609 01:14:44,500 --> 01:14:45,920 Ово је мој ХТМЛ. 1610 01:14:45,920 --> 01:14:48,750 Али сада приметити, иако ће да буде мало тешко да га виде у оба 1611 01:14:48,750 --> 01:14:52,080 места одједном, ако укуцамо на ФБ овде, пази на дно 1612 01:14:52,080 --> 01:14:54,110 на екрану само. 1613 01:14:54,110 --> 01:14:57,720 >> То је заправо мења Мој ХТМЛ у лету. 1614 01:14:57,720 --> 01:15:01,670 И ово ради сасвим једноставно радећи нешто овако. 1615 01:15:01,670 --> 01:15:06,800 Ако ја отворим Ајак-2, приметити спровођење нешто секси као 1616 01:15:06,800 --> 01:15:09,560 да, иако је то веома ружно, али као софистициране да 1617 01:15:09,560 --> 01:15:11,910 функционално, има неке ХТМЛ на дну. 1618 01:15:11,910 --> 01:15:13,810 Али приметио сам да означите. 1619 01:15:13,810 --> 01:15:16,640 Не смо користио ово раније, али ово је као, али не форсира 1620 01:15:16,640 --> 01:15:17,840 све на нову линију. 1621 01:15:17,840 --> 01:15:20,830 То само чини правоугаону област на истој линији у суштини. 1622 01:15:20,830 --> 01:15:22,870 >> Обратите пажњу да сам му дао ИД цене. 1623 01:15:22,870 --> 01:15:26,800 Испоставља се помоћу истог ЈаваСцрипт библиотека, имам функцију 1624 01:15:26,800 --> 01:15:30,440 зове цитат () која се зове кад год образац се подноси. 1625 01:15:30,440 --> 01:15:31,800 И шта ја радим ово. 1626 01:15:31,800 --> 01:15:35,730 Ја декларисање променљиве у ЈаваСцрипт зове урл, чување вредности 1627 01:15:35,730 --> 01:15:38,650 куоте.пхп симбол =.? 1628 01:15:38,650 --> 01:15:44,220 Другим речима, ја сам Поцињем да припреми ХТТП захтев, а затим 1629 01:15:44,220 --> 01:15:49,250 Ја надовезивањем на то са плус год елемент са ИД 1630 01:15:49,250 --> 01:15:54,190 симбола је, што је обавештење да текст поље десно доле. 1631 01:15:54,190 --> 01:15:56,630 Дакле, као што смо имали у прошлости форме. 1632 01:15:56,630 --> 01:16:01,450 >> И онда испада у јКуери, ако позива. Вал (), која позива од вал 1633 01:16:01,450 --> 01:16:05,900 функција, вредност функције, која добија год корисник унесе 1634 01:16:05,900 --> 01:16:08,920 И онда све мрежног саобраћаја што се дешава је то. 1635 01:16:08,920 --> 01:16:11,230 $. ГетЈСОН. 1636 01:16:11,230 --> 01:16:13,720 >> И као по страни, долар је знак само стенографски запис. 1637 01:16:13,720 --> 01:16:16,860 То је стварно јКуери.гетЈСОН. 1638 01:16:16,860 --> 01:16:21,520 Одведи ме из овог ЈСОН на УРЛ, и када захтев враћа, позовите овај 1639 01:16:21,520 --> 01:16:26,550 функција и прође као аргумент шта год се вратио са сервера. 1640 01:16:26,550 --> 01:16:31,205 >> Дакле, другим речима, ако се вратим на прегледач, и ја се вратим у куоте.пхп, 1641 01:16:31,205 --> 01:16:35,590 шта је мој прегледач ради је добијање овај комад података. 1642 01:16:35,590 --> 01:16:38,930 И кад одем на овој веб страници овде, приметити ако уместо тога отићи на мрежу 1643 01:16:38,930 --> 01:16:43,820 Картица и јасно га, а затим укуцајте нешто попут ГООГ за Гоогле и добити 1644 01:16:43,820 --> 01:16:46,340 Цитат, приметићете страна није мењала. 1645 01:16:46,340 --> 01:16:50,990 Али ХТТП захтев је направљен, а шта вратио овамо, ако погледамо 1646 01:16:50,990 --> 01:16:56,130 одговор је цела гомила ЈСОН да смо коначно приступити са 1647 01:16:56,130 --> 01:16:58,070 ова једноставна линија овде. 1648 01:16:58,070 --> 01:17:00,150 >> Дата је оно што је стечен са сервера. 1649 01:17:00,150 --> 01:17:02,120 Цена је име кључ ми је стало. 1650 01:17:02,120 --> 01:17:05,230 Дакле дата.прице ми даје то. 1651 01:17:05,230 --> 01:17:07,540 >> Сада међувремену, и ово је последњи пример. 1652 01:17:07,540 --> 01:17:09,280 Још више можете да урадите са стране. 1653 01:17:09,280 --> 01:17:12,440 Један заправо, добро два. 1654 01:17:12,440 --> 01:17:14,780 Можемо вратити означите, ако се сећате ово. 1655 01:17:14,780 --> 01:17:15,850 То је ЈаваСцрипт. 1656 01:17:15,850 --> 01:17:17,110 Можемо да урадимо то. 1657 01:17:17,110 --> 01:17:17,690 Врло узбудљиво. 1658 01:17:17,690 --> 01:17:18,800 Оставићемо то као Цлиффхангер. 1659 01:17:18,800 --> 01:17:21,590 >> Али више узбудљиво, можете радим овакве ствари. 1660 01:17:21,590 --> 01:17:25,940 Ако одем у геолоцирање-1, испада да Цхроме зна да смо на 1661 01:17:25,940 --> 01:17:30,672 Латитуде Лонгитуде 42.37 -71.10.. 1662 01:17:30,672 --> 01:17:32,940 Дакле, ту је још тамо на располагању. 1663 01:17:32,940 --> 01:17:34,290 Али више о том следеће недеље. 1664 01:17:34,290 --> 01:17:35,540 Видимо се у понедељак. 1665 01:17:35,540 --> 01:17:37,558