1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID Malan: Allt í lagi. 3 00:00:12,360 --> 00:00:15,970 Þetta er CS50, og þetta er lok viku níu. 4 00:00:15,970 --> 00:00:18,560 Það er verið vindbylur yfir síðustu daga. 5 00:00:18,560 --> 00:00:21,580 Og Heimadæmi sjö, ef þú ert hné djúpt inn í það, við gerum það er alveg 6 00:00:21,580 --> 00:00:23,340 hluti nýja sem er þarna. 7 00:00:23,340 --> 00:00:26,660 En við skulum sjá hvort við getum ekki stykki allt saman hér stuttlega 8 00:00:26,660 --> 00:00:29,230 áður þá veering burt í enn aðra átt og að sjá 9 00:00:29,230 --> 00:00:30,510 hvar annars við getum farið. 10 00:00:30,510 --> 00:00:32,630 >> Svo svona langt, höfum við talað um HTML. 11 00:00:32,630 --> 00:00:33,740 Við höfum talað um CSS. 12 00:00:33,740 --> 00:00:34,705 Við höfum talað um PHP. 13 00:00:34,705 --> 00:00:36,520 Þú hefur byrjað að upplifa SQL. 14 00:00:36,520 --> 00:00:38,360 Í dag munum við tala aðeins um JavaScript. 15 00:00:38,360 --> 00:00:41,230 En hvernig gera öll þessi ólíkum tungumál passa saman? 16 00:00:41,230 --> 00:00:44,970 >> Þannig að við ræddum í síðustu viku um hugmynd af having a framreiðslumaður. 17 00:00:44,970 --> 00:00:48,470 Þannig að við skulum draga bara þessa rétthyrning eins og a vefur framreiðslumaður hér. 18 00:00:48,470 --> 00:00:52,200 Og a vefur framreiðslumaður þjónar vafalaust skrá. 19 00:00:52,200 --> 00:00:54,640 Og sumir af þeim skrám getur verið HTML skrár. 20 00:00:54,640 --> 00:00:58,270 Svo einn af þeim hlutum sem vefþjóni geta spýta út gæti verið skrá sem 21 00:00:58,270 --> 00:01:01,290 við verðum bara draga svona inniheldur nokkrar HTML. 22 00:01:01,290 --> 00:01:04,786 Svo í skilmálum leikmaður er, hvað er HTML láta þig gera? 23 00:01:04,786 --> 00:01:06,036 >> Áhorfendur: Page útlit ágætur. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID Malan: OK, gera síðu útlit ágætur, þó svo að ég held að ég hef sannað 26 00:01:12,310 --> 00:01:13,370 sem annars. 27 00:01:13,370 --> 00:01:18,250 Svo HTML er að láta þig leggja út síður setningafræðilega, og það gerir þér kleift að 28 00:01:18,250 --> 00:01:22,410 konar fagurfræðilega merkja upp síðu, merkja upp _STATIC_CONTENT, svo að þú 29 00:01:22,410 --> 00:01:23,640 geta þá skoðað það með a vefur flettitæki. 30 00:01:23,640 --> 00:01:24,690 >> En það er lykillinn. 31 00:01:24,690 --> 00:01:26,130 Það er fast efni. 32 00:01:26,130 --> 00:01:28,590 Þú skrifar það, spara það, og þá skip það. 33 00:01:28,590 --> 00:01:31,130 Og the vefur framreiðslumaður þjónar þá það upp til þinn gestur. 34 00:01:31,130 --> 00:01:35,700 >> En við stylize hlutina með mismunandi tungumál að öllu leyti. 35 00:01:35,700 --> 00:01:40,150 Við byrjuðum að nota stíl eigindi á ákveðnum merkjum. 36 00:01:40,150 --> 00:01:43,400 Og stíl eigindi skulum setja hlutir eins og leturstærð og lit. 37 00:01:43,400 --> 00:01:46,460 Og þú hefur sennilega byrjað að uppgötva, eða þú vilja bráðum til endanlegrar 38 00:01:46,460 --> 00:01:50,160 verkefni hugsanlega enn öðrum eiginleika sem þú getur notað í CSS. 39 00:01:50,160 --> 00:01:54,710 Og svo í skilmálum leikmaður er, hvað í raun þá er CSS do? 40 00:01:54,710 --> 00:01:57,810 Þeir eru bara dæmi þar. 41 00:01:57,810 --> 00:02:00,730 Hvað þýðir það að láta þig gera það HTML virðist ekki frá því sem 42 00:02:00,730 --> 00:02:02,606 við höfum séð hingað til? 43 00:02:02,606 --> 00:02:04,850 >> Áhorfendur: Skilgreina stíl sjálfur. 44 00:02:04,850 --> 00:02:06,700 >> DAVID Malan: Skilgreina stíl sjálfur. 45 00:02:06,700 --> 00:02:10,280 Svo skilgreina hluti eins og flokkum eins og þig kunna að hafa komið upp, eða einstaklega 46 00:02:10,280 --> 00:02:13,800 þekkja hnúður í skjali svo að þú getur stylize þá. 47 00:02:13,800 --> 00:02:16,890 En nánar tiltekið, myndi ég segja að CSS raunverulega gerir þér kleift að taka hlutina á 48 00:02:16,890 --> 00:02:20,790 síðast míla og gerir þér kleift að tilgreina mikið nánar fagurfræði, 49 00:02:20,790 --> 00:02:24,340 en HTML mestu leyfir þú uppbygging síðurnar þínar. 50 00:02:24,340 --> 00:02:27,310 >> Og jafnvel þó að það eru sumir vanskil, eins og við sáum merkinu 51 00:02:27,310 --> 00:02:30,690 vöruliði tag, sem bil að tala gerði hlutina mjög stór og djörf. 52 00:02:30,690 --> 00:02:34,250 Það er nokkuð almenn skilgreining merkislns - stór og djörf. 53 00:02:34,250 --> 00:02:35,260 Hvað leturstærð er það? 54 00:02:35,260 --> 00:02:36,080 Hvaða litur er þetta? 55 00:02:36,080 --> 00:02:36,890 Hvernig feitletrað er það? 56 00:02:36,890 --> 00:02:39,830 Og CSS leyfir þér meira fínskorinn Tune svoleidis. 57 00:02:39,830 --> 00:02:42,150 Auk skipulag, eins og sumir af þú hefur séð. 58 00:02:42,150 --> 00:02:45,180 >> Og hreinskilnislega, CSS er dálítið af sóðalegur tungumál. 59 00:02:45,180 --> 00:02:48,370 Það er mjög öflugur í að þú getur gert bókstaflega allir website að þú hafir 60 00:02:48,370 --> 00:02:51,880 séð á vefnum í dag með það, en það er góður af a sársauki í hálsi. 61 00:02:51,880 --> 00:02:54,440 Og sum ykkar hafa banged höfðinu gegn veggjum þegar bara að gera 62 00:02:54,440 --> 00:02:58,560 eitthvað heimskur eins miðju á valmyndinni Heimadæmi sjö ef þú hefur fengið að 63 00:02:58,560 --> 00:02:59,470 að benda nú þegar. 64 00:02:59,470 --> 00:03:01,530 >> En átta sig, þá hluti fá auðveldara með tímanum. 65 00:03:01,530 --> 00:03:02,820 Þú byrjar að taka eftir mynstrum. 66 00:03:02,820 --> 00:03:06,020 Og aftur, Google mun vera vinur þinn fyrir ýmsar leiðir sem þú getur 67 00:03:06,020 --> 00:03:07,220 leysa þessar tegundir af vandamál. 68 00:03:07,220 --> 00:03:11,520 >> Og ég þori að segja með CSS og HTML meira Almennt er hægt að leysa vandamál í 69 00:03:11,520 --> 00:03:15,910 margar fleiri leiðir, sem allt gæti mjög vel vera rétt, en þú gætir 70 00:03:15,910 --> 00:03:18,900 í eitthvað eins og C, jafnvel nú PHP eða JavaScript. 71 00:03:18,900 --> 00:03:21,080 Það eru bara margar mismunandi Leiðir til að leggja það út. 72 00:03:21,080 --> 00:03:22,570 >> En þetta byrjaði að fá sóðalegur, sagði við. 73 00:03:22,570 --> 00:03:26,480 Bara svona commingling HTML og CSS þinn með stíl eigindi var 74 00:03:26,480 --> 00:03:27,590 smá sloppy. 75 00:03:27,590 --> 00:03:31,460 Og svo ég sagði í staðinn, eins konar abstractly tala, að þú ættir 76 00:03:31,460 --> 00:03:34,050 amk byrja að þáttur út CSS þitt sennilega. 77 00:03:34,050 --> 00:03:37,430 Ekki þinn stíll eiginleika, en að minnsta kosti nota stíl tag inni það 78 00:03:37,430 --> 00:03:38,840 hluti af vefsíðu? 79 00:03:38,840 --> 00:03:39,560 >> Áhorfendur: Head. 80 00:03:39,560 --> 00:03:40,120 >> DAVID Malan: í höfuðið. 81 00:03:40,120 --> 00:03:43,270 Allt þar til nú, við höfðum aðeins titilinn upp það, en þú getur einnig bætt við stíl 82 00:03:43,270 --> 00:03:47,230 merkja, og þú getur sett CSS þinn u.þ.b. tala í átt að efst á síðu. 83 00:03:47,230 --> 00:03:52,550 En þá tókum við það einu skrefi lengra og við reiknað það út meira 84 00:03:52,550 --> 00:03:54,130 í sérstakri skrá. 85 00:03:54,130 --> 00:03:57,240 >> Og svo þessar tvær skrár voru einhvern veginn nú tengdir. 86 00:03:57,240 --> 00:03:59,550 Og reyndar var það tag sem gerði það. 87 00:03:59,550 --> 00:04:02,920 Og hvað var einn af sérlegu motivations fyrir þátta út CSS okkar 88 00:04:02,920 --> 00:04:04,057 allt meira? 89 00:04:04,057 --> 00:04:05,280 >> Áhorfendur: Reusability. 90 00:04:05,280 --> 00:04:05,785 >> DAVID Malan: Reusability. 91 00:04:05,785 --> 00:04:06,150 Satt? 92 00:04:06,150 --> 00:04:09,470 Þú gætir hafa séð í p-sett sjö þegar að mikið af þeim síðum, sem 93 00:04:09,470 --> 00:04:12,260 kaupa síðu, sölu síðu, sem eigu síðu, eru líklega 94 00:04:12,260 --> 00:04:13,550 byggð nokkuð álíka. 95 00:04:13,550 --> 00:04:17,579 There 'a CS50 fjármál merki efst nema þú hafir ákveðið að breyta því. 96 00:04:17,579 --> 00:04:19,839 There 'a fót í því neðst á síðum. 97 00:04:19,839 --> 00:04:24,315 Og CSS gerir þú þá að þáttur það út það inn í sérstaka skrá þannig að ef 98 00:04:24,315 --> 00:04:27,780 þú vilt breyta einhverju á heimsvísu yfir alla síðuna þína, þú getur raunverulega 99 00:04:27,780 --> 00:04:29,390 bara breyta því á einum stað. 100 00:04:29,390 --> 00:04:32,750 >> En það er verðið sem þú greiðir hugsanlega með því að hafa reiknað út 101 00:04:32,750 --> 00:04:38,380 CSS HTML skrá mína í sérstakt skrá tilvísanir það með 102 00:04:38,380 --> 00:04:40,650 tag, sem við sáum á mánudag. 103 00:04:40,650 --> 00:04:43,850 Hvað gæti hæðir verið um þetta? 104 00:04:43,850 --> 00:04:48,830 Hugsun aftur fyrir viku síðan að þegar við erum tala um HTTP og TCP / IP og hvernig 105 00:04:48,830 --> 00:04:52,070 Netið virkar. 106 00:04:52,070 --> 00:04:53,530 Eitthvað hérna? 107 00:04:53,530 --> 00:04:54,730 >> Áhorfendur: Það tekur lengri tíma. 108 00:04:54,730 --> 00:04:55,470 >> DAVID Malan: Það tekur lengri tíma. 109 00:04:55,470 --> 00:04:56,750 Hvers vegna? 110 00:04:56,750 --> 00:04:59,450 >> Áhorfendur: [inaudible]. 111 00:04:59,450 --> 00:04:59,750 >> DAVID Malan: Já. 112 00:04:59,750 --> 00:05:01,240 Svo tekur það að öllum líkindum aðeins meiri tíma. 113 00:05:01,240 --> 00:05:04,290 Vegna þess að einn, CSS er augljóslega ekki í sama skrá. 114 00:05:04,290 --> 00:05:06,920 Svo nú þú ert að gera ekki einn, heldur tveir beiðnir. 115 00:05:06,920 --> 00:05:11,230 Og hver af þeim beiðnum sem við sáum í Króm í svokölluðu Inspector, 116 00:05:11,230 --> 00:05:15,740 og við leit á flipann Network, hvor af þeim skrám þarf einn HTTP 117 00:05:15,740 --> 00:05:18,360 Beiðni, sem við sáum tekur smá tíma. 118 00:05:18,360 --> 00:05:19,290 Nú, kannski er það ekki mikið. 119 00:05:19,290 --> 00:05:20,670 Kannski er það aðeins 20 millisekúndur. 120 00:05:20,670 --> 00:05:22,260 Kannski er það 200 millisekúndur. 121 00:05:22,260 --> 00:05:25,530 >> En hugsa um síðu eins og Facebook, eða CNN eða Google, sem eru mun 122 00:05:25,530 --> 00:05:28,060 stærri en dæmi sem við höfum horfði á svona langt. 123 00:05:28,060 --> 00:05:32,070 Þeim síðum gætu hafa heilmikið af skrá, sem hver um sig gæti þurft að 124 00:05:32,070 --> 00:05:33,550 niðurhal á skrá. 125 00:05:33,550 --> 00:05:35,800 Svo það geta hugsanlega byrja að hægja niður. 126 00:05:35,800 --> 00:05:39,280 >> Og sérstaklega þessa dagana þegar við allir hafa farsíma í vasa okkar og 127 00:05:39,280 --> 00:05:43,010 hægari Internet tengingar, þurfa að bíða í nokkrar fleiri millisekúndur, nokkrar 128 00:05:43,010 --> 00:05:46,110 fleiri millisekúndur fyrir viðbótar skrá geta raunverulega vera hægur. 129 00:05:46,110 --> 00:05:50,430 Leynd er orðið sem lýsir konar bíða að þú ert að þú 130 00:05:50,430 --> 00:05:53,110 upplifa þegar að bíða eftir sumir stykki af upplýsingar. 131 00:05:53,110 --> 00:05:54,430 >> En það er hækkun en lækkun. 132 00:05:54,430 --> 00:05:56,600 Svo það er ekki allt hálfgerður - 133 00:05:56,600 --> 00:05:58,170 það er í raun hluti af a seesaw hér. 134 00:05:58,170 --> 00:06:02,970 Galli nú, en hvað vafrar geta gert ef þeir eru klár til að forðast 135 00:06:02,970 --> 00:06:08,870 að þurfa að biðja um sömu styles.css skrá aftur getur verið að gera hvað? 136 00:06:08,870 --> 00:06:09,390 >> Skyndiminni það. 137 00:06:09,390 --> 00:06:10,370 Svo flýtiminni - 138 00:06:10,370 --> 00:06:11,690 C-A-C-H-E - 139 00:06:11,690 --> 00:06:15,810 yfirleitt er hér bara til að vista skrá sem þú baðst um í fyrsta skipti, og 140 00:06:15,810 --> 00:06:17,440 þá stöðva skyndiminni fyrir það. 141 00:06:17,440 --> 00:06:20,400 Athugaðu að þú ert konar geymsla gámur, og ef þú ert þegar með 142 00:06:20,400 --> 00:06:24,520 afrit af styles.css, jafnvel þótt einhver annar síðu í p-sett, eða allir website, 143 00:06:24,520 --> 00:06:28,560 óskar það aftur, bara til að gefa notandi sama afrit afrit. 144 00:06:28,560 --> 00:06:30,140 Nenni ekki að biðja hana. 145 00:06:30,140 --> 00:06:32,560 >> Hæðir þar, þó, eins og sum ykkar hafa skemmtiferðamaður yfir í p-setja. 146 00:06:32,560 --> 00:06:35,870 Ef þú gerir breytingar á þjóninum og þú ferð til baka í vafranum og þú 147 00:06:35,870 --> 00:06:39,250 endurhlaða, stundum virkar vafrinn þér greiða og ekki nennir 148 00:06:39,250 --> 00:06:43,660 aftur að sækja styles.css skrá vegna þess, að koma á, hvað eru líkurnar 149 00:06:43,660 --> 00:06:47,620 að þessi stíll sem Facebook notar eru að fara að breyta klukkutíma eða 150 00:06:47,620 --> 00:06:48,140 degi til dags? 151 00:06:48,140 --> 00:06:48,800 Það er nokkuð lágt. 152 00:06:48,800 --> 00:06:52,260 Þeir breytast með tímanum, en ekki við mínútu eða eftir klukkustund. 153 00:06:52,260 --> 00:06:55,810 >> Svo bragð, bara FYI hvenær aðgerð vefur þróun, er oft halda niðri 154 00:06:55,810 --> 00:06:59,500 Shift lyklinum til dæmis og þá smelltu endurhlaða í vafranum þínum, og það mun 155 00:06:59,500 --> 00:07:03,280 yfirleitt segja vafranum endurhlaða allt, jafnvel ef þú ert nú þegar 156 00:07:03,280 --> 00:07:04,180 það í skyndiminni. 157 00:07:04,180 --> 00:07:06,630 Svo aftur, upsides og downsides, en öll þeirra 158 00:07:06,630 --> 00:07:08,260 lokum hönnun ákvarðanir. 159 00:07:08,260 --> 00:07:11,520 >> Svo nú, við gerðum ekki bara enda söguna hér. 160 00:07:11,520 --> 00:07:15,790 Ef ég fer nú aftur og aftur og aftur og aftur, við byrjuðum að kynna ekki bara 161 00:07:15,790 --> 00:07:18,060 HTML, en PHP. 162 00:07:18,060 --> 00:07:20,786 Svo í skilmálum leikmaður er, hvað er PHP skulum við gera? 163 00:07:20,786 --> 00:07:22,770 >> Áhorfendur: [inaudible]. 164 00:07:22,770 --> 00:07:24,258 >> DAVID Malan: Hvað er það? 165 00:07:24,258 --> 00:07:25,250 >> Áhorfendur: Kynntu rökfræði inn kóðann. 166 00:07:25,250 --> 00:07:26,620 >> DAVID Malan: Já, kynna rökfræði í kóðann þinn. 167 00:07:26,620 --> 00:07:29,570 Svo það er satt forritunarmál með lykkjur, og breytur og 168 00:07:29,570 --> 00:07:32,620 aðgerðir og aðstæður, og allt það sem við höfum verið að nota leið til baka 169 00:07:32,620 --> 00:07:33,780 þegar síðan grunni. 170 00:07:33,780 --> 00:07:36,780 Og PHP, við höfum séð, er hægt að nota annaðhvort í stjórn lína - það 171 00:07:36,780 --> 00:07:39,190 þarf ekki að hafa neitt að gera með vefnum, jafnvel þó að það er 172 00:07:39,190 --> 00:07:43,150 virkilega uppruna þess og hvað það hefur tilhneigingu að vera góður í og ​​hvetur til - 173 00:07:43,150 --> 00:07:47,130 en þú getur notað PHP eingöngu eðli sínu af þeirri staðreynd að það hefur prentun () 174 00:07:47,130 --> 00:07:49,660 virka, og printf () virka, eða echo () virka. 175 00:07:49,660 --> 00:07:52,440 Það er bunches af lifnaðarhættir þú Hægt er að prenta texta með PHP. 176 00:07:52,440 --> 00:07:56,540 >> Því er hægt að nota þennan forritun tungumál til að framleiðsla nákvæmlega 177 00:07:56,540 --> 00:07:58,460 hvað við vorum að tala um áður. 178 00:07:58,460 --> 00:08:01,360 Þú getur dynamically mynda HTML. 179 00:08:01,360 --> 00:08:02,300 Kannski ekki minna en það. 180 00:08:02,300 --> 00:08:06,460 Kannski þú harður kóða hlutir, eins og haus og fæti, og lógó, 181 00:08:06,460 --> 00:08:07,950 og stíll lak þína, og allt það. 182 00:08:07,950 --> 00:08:11,190 En fyrir eitthvað eins p-sett sjö, þar sem þú ert að notfæra fiskistofna og 183 00:08:11,190 --> 00:08:14,690 sýna eigu notandans, sem er fara að breytist, þú gætir 184 00:08:14,690 --> 00:08:18,960 vafalaust nota PHP og rökfræði það gefur þú sem forritunarmálið til 185 00:08:18,960 --> 00:08:22,320 framleiðsla virk undirhópum á síðunni. 186 00:08:22,320 --> 00:08:25,900 >> Svo þegar þú talar um dynamic websites, eða vefur forritun, sem er 187 00:08:25,900 --> 00:08:27,200 hvað þú ert í raun að tala um. 188 00:08:27,200 --> 00:08:31,450 Using a tungumál eins og PHP, eða hlutum kallast Python eða Ruby eða Java, eða 189 00:08:31,450 --> 00:08:35,900 hefur enn öðrum tungumálum, að fyrirspurn gagnagrunn oft, eða annar framreiðslumaður, og 190 00:08:35,900 --> 00:08:38,580 þá breytilega spýta út HTML. 191 00:08:38,580 --> 00:08:42,470 >> Nú er niðurstaðan, sem innskot, er að HTML flestra vefsíður, 192 00:08:42,470 --> 00:08:45,970 þ.mt p-setja sjö þinn, er líklega fara til vera a gríðarstór sóðaskapur ef 193 00:08:45,970 --> 00:08:48,060 þú horfir á upptökum kóða í vafranum. 194 00:08:48,060 --> 00:08:49,010 Það er ekki stór samningur. 195 00:08:49,010 --> 00:08:51,550 Á þessum tímapunkti, þegar við vænt um stíl annt um 196 00:08:51,550 --> 00:08:52,740 efni sem þú skrifar. 197 00:08:52,740 --> 00:08:56,240 Við munum ekki sama um efni sem hvað númerið framleiðsla þinn. 198 00:08:56,240 --> 00:08:59,520 Svo ekki hafa áhyggjur óður í inndrátt hér ef það er PHP sem er 199 00:08:59,520 --> 00:09:01,190 reyndar outputting efni. 200 00:09:01,190 --> 00:09:04,430 Eftir allt saman, the flettitæki vilja ekki kæra, og manneskju muni ekki vera að leita 201 00:09:04,430 --> 00:09:05,400 við upptök samt. 202 00:09:05,400 --> 00:09:09,000 Við starfsfólk, til dæmis, myndi að horfa á PHP þinni. 203 00:09:09,000 --> 00:09:13,440 >> Svo láta mig gefa a fljótur dæmi nú af hverju annars þetta gæti verið gagnlegt. 204 00:09:13,440 --> 00:09:18,620 Svo að segja get ég ekki munað síðast skiptið sem ég notaði C til að leysa vandamál í 205 00:09:18,620 --> 00:09:19,620 the raunverulegur veröld. 206 00:09:19,620 --> 00:09:22,330 Það var líklega í framhaldsnám þegar Ég þurfti að nota tungumál sem 207 00:09:22,330 --> 00:09:26,710 var nokkuð lágt stig og gaf mér tækifæri til að gera eitthvað mjög hátt 208 00:09:26,710 --> 00:09:30,720 framkvæma til raunverulega spara eins og margir CPU hringrás og ég gat, í stórum hluta 209 00:09:30,720 --> 00:09:33,990 vegna þess að ég var að nota mikið gagnagrunna, og sérhver CPU hringrás telja. 210 00:09:33,990 --> 00:09:37,750 Og hreinskilnislega, jafnvel í hlutum eins og sími þessa dagana og önnur tæki 211 00:09:37,750 --> 00:09:39,910 þar sem þú ert ekki alveg eins mikið minni og þú þarft ekki alveg eins 212 00:09:39,910 --> 00:09:44,160 mikið CPU, nota hraðari tungumál er enn aðlaðandi. 213 00:09:44,160 --> 00:09:47,290 >> En í hinum raunverulega heimi, þegar þú bara vilja til að henda eitthvað forrit saman að 214 00:09:47,290 --> 00:09:50,340 greina nokkur gögn, eða þú hefur safnað allt fullt af skráningum fyrir 215 00:09:50,340 --> 00:09:53,330 sumir Nemendahópurinn og þú vilt mjög fljótt sjálfvirkan að senda tölvupóst 216 00:09:53,330 --> 00:09:56,240 eitt af öðru að hver og einn af þeim sem skráir, ætlar þú að fara til að ná til 217 00:09:56,240 --> 00:09:59,240 hærra stigi tungumál en C svo að segja. 218 00:09:59,240 --> 00:10:04,060 Eitthvað eins og PHP eða Python, eða Ruby, eða hálfa tylft aðrir sem eru fyrir hendi 219 00:10:04,060 --> 00:10:04,550 þessa dagana. 220 00:10:04,550 --> 00:10:07,200 En þeir þrír eru líklega mest töff núna. 221 00:10:07,200 --> 00:10:10,840 >> Og hvað þýðir þetta er að þú getur opnað upp texta ritil eins gedit eða 222 00:10:10,840 --> 00:10:14,030 mest allt annað og þá bara byrja skrifa kóðann án þess að þurfa að hafa áhyggjur 223 00:10:14,030 --> 00:10:17,800 um söfnun, án þess að þurfa að raunverulega hafa áhyggjur af stjórnun minni, 224 00:10:17,800 --> 00:10:20,820 hafðu í huga þó að lítið sloppiness mun að lokum koma aftur 225 00:10:20,820 --> 00:10:24,790 að bíta þig ef gögnum verður stærri eða vandamálið fær stór. 226 00:10:24,790 --> 00:10:27,230 En hvað þýðir þetta fyrir okkur er eftirfarandi. 227 00:10:27,230 --> 00:10:29,860 >> Láta mig fara á undan og keyra Speller frá Heimadæmi sex. 228 00:10:29,860 --> 00:10:33,480 Svo er þetta trie-undirstaða framkvæmd minn sem ég notaði á stóru 229 00:10:33,480 --> 00:10:35,500 borð þar sem ég söng ekki svo vel. 230 00:10:35,500 --> 00:10:38,720 Við munum koma aftur í tíma viku og endurskoðun þeir sem á endanum topp 231 00:10:38,720 --> 00:10:40,430 stór borð á síðasta fyrirlestri okkar. 232 00:10:40,430 --> 00:10:44,520 En nú, láttu mig fara á undan og bara hlaupa lausn mína í texta, og við munum gera 233 00:10:44,520 --> 00:10:48,460 King James Biblían, og hér við fara. 234 00:10:48,460 --> 00:10:51,080 >> Þannig að þeir eru allt í talið rangt stafsett orð af 235 00:10:51,080 --> 00:10:52,240 The King James Biblían. 236 00:10:52,240 --> 00:10:55,560 Og framkvæmd minn tók hálfa sekúndu í aðaleinkunn. 237 00:10:55,560 --> 00:10:58,270 Svo ekki of slæmt á þetta sérstakur tölva. 238 00:10:58,270 --> 00:11:01,540 En hugsa um hversu mikið númer sem ég þurfti að skrifa. 239 00:11:01,540 --> 00:11:02,880 Hugsa hversu mikið númerið sem þú þurfti að skrifa. 240 00:11:02,880 --> 00:11:06,170 Hugsaðu hversu margar klukkustundir þú varið í D-sal eða dorm eða hvar 241 00:11:06,170 --> 00:11:07,890 reyndar erfðaskrá upp þessi lausn. 242 00:11:07,890 --> 00:11:11,850 >> Jæja, ef ég hef reyndar meiri tungumál eins og PHP, taka mið af 243 00:11:11,850 --> 00:11:13,350 hvað ég get gert hér. 244 00:11:13,350 --> 00:11:16,410 Fyrst, gera ráð fyrir að þetta er í staðinn dreifingu númerið þitt. 245 00:11:16,410 --> 00:11:17,790 Þetta er skrá sem heitir Speller. 246 00:11:17,790 --> 00:11:20,220 Það er í boði sem hluti af dag dreifingu kóða. 247 00:11:20,220 --> 00:11:22,670 Og ég ætla að veifa hendinni á mér á flestum á smáatriði, en þetta er í raun 248 00:11:22,670 --> 00:11:25,500 áhugaverð dæmi um hvernig þú gætir höfn tungumál 249 00:11:25,500 --> 00:11:28,870 eins og C yfir til PHP. 250 00:11:28,870 --> 00:11:33,420 Ég opnaði bókstaflega tvær texti gluggakista, einn með C minn útgáfa af speller.c, 251 00:11:33,420 --> 00:11:36,960 og ég byrjaði bara að þýða það í mínum höfuð til PHP og slá það út með því að nota 252 00:11:36,960 --> 00:11:38,840 nánustu sambærileg verkefni. 253 00:11:38,840 --> 00:11:40,100 >> Svo sumir af þessum hlutum eru mismunandi. 254 00:11:40,100 --> 00:11:43,730 Við sáum síðasta skiptið sem PHP notar ekki fela í alveg sama hátt. 255 00:11:43,730 --> 00:11:47,050 Það notar venjulega þurfa, þó eru hefur til. 256 00:11:47,050 --> 00:11:50,330 Skilgreina er svolítið öðruvísi # Skilgreina í C, en það er 257 00:11:50,330 --> 00:11:51,890 hvernig við tökum fasti. 258 00:11:51,890 --> 00:11:55,860 $ Argc það reynist til í PHP, þannig að við höfum séð það áður. 259 00:11:55,860 --> 00:11:58,650 Þetta eru bara breytur, allar sem byrja með dollara merki. 260 00:11:58,650 --> 00:12:00,590 Muna að þetta eru bara fullt fljótandi stig. 261 00:12:00,590 --> 00:12:03,970 >> Svo löng saga stutt, þú ert velkominn að flettir gegnum þetta ef forvitinn, þetta er 262 00:12:03,970 --> 00:12:10,010 nánast línu-fyrir-línu ummyndun á C útgáfa af speller.c í PHP. 263 00:12:10,010 --> 00:12:12,630 Og þú getur gert þetta aftur fyrir hálfri tylft annarra tungumála. 264 00:12:12,630 --> 00:12:14,910 >> En hvað er áhugavert er þetta. 265 00:12:14,910 --> 00:12:16,910 Eða hvað er satt Svekkjandi er þetta. 266 00:12:16,910 --> 00:12:20,790 Láta mig fara á undan og slá um dictionary.php, og halda því fram að ég er 267 00:12:20,790 --> 00:12:23,670 að fara á undan og með tilvísun til-innleiða Heimadæmi sex hér. 268 00:12:23,670 --> 00:12:27,530 >> Svo skulum leggja fyrst að í þessu skrá, sem verður hrint í framkvæmd í 269 00:12:27,530 --> 00:12:30,550 PHP, svo látið mig opna tags mínar svona. 270 00:12:30,550 --> 00:12:34,780 Leyfðu mér að gefa mér alþjóðlegt breytu, $ stærð fær núll. 271 00:12:34,780 --> 00:12:36,710 Og ég ætla að gefa sjálfur kjötkássa borð. 272 00:12:36,710 --> 00:12:38,110 Ég nota kjötkássa borð fyrir þetta. 273 00:12:38,110 --> 00:12:42,070 Hvernig get ég lýsa kjötkássa borð í PHP? 274 00:12:42,070 --> 00:12:42,990 Lokið. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> Svo opinn krappi nærri krappi táknar hvað í PHP, sem við höfum séð? 277 00:12:48,870 --> 00:12:51,850 An array, en fylki sem gæti vera tengin array. 278 00:12:51,850 --> 00:12:54,320 An tengin array er gögn uppbygging sem 279 00:12:54,320 --> 00:12:55,860 tengir lykla með gildum. 280 00:12:55,860 --> 00:12:59,430 >> Nú í einfaldasta tölulega verðtryggð array, eru þessir lyklar hvað? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Núll, einn, tveir, þrír, satt? 283 00:13:03,960 --> 00:13:08,780 Gamla skólann efni aftur frá C. En það getur einnig vera strengi eins foo, og bar, 284 00:13:08,780 --> 00:13:12,210 eða Maxwell, eða allir svo band. 285 00:13:12,210 --> 00:13:14,240 Svo ég get skiptimynt sem á aðeins augnablik. 286 00:13:14,240 --> 00:13:17,550 >> Láta mig fara á undan og lýsa fall eins - 287 00:13:17,550 --> 00:13:19,020 skulum gera álag () fyrst. 288 00:13:19,020 --> 00:13:20,690 Svo virka hlaða (). 289 00:13:20,690 --> 00:13:23,440 Og PHP er svolítið öðruvísi í því þú slærð bókstaflega virka, en þú 290 00:13:23,440 --> 00:13:24,930 ekki skrifa aftur tegund. 291 00:13:24,930 --> 00:13:28,760 Ég ætla að fara á undan og segja að hlaða () fall ætti að taka í 292 00:13:28,760 --> 00:13:31,000 rök $ orðabók, bara eins og C útgáfa gerði. 293 00:13:31,000 --> 00:13:32,510 Ég ætla að gera það úr minni. 294 00:13:32,510 --> 00:13:34,910 >> Og ég leggja til að ég er að fara að gera þetta. 295 00:13:34,910 --> 00:13:37,080 Ég er einfaldlega að fara að gera framhandleggur. 296 00:13:37,080 --> 00:13:40,710 Ég ætla að hringja í aðgerð sem kallast skrá (), sem liggur í nafni sem 297 00:13:40,710 --> 00:13:44,990 skrá, sem er breytan $ Orðabók sem $ orði. 298 00:13:44,990 --> 00:13:49,410 Og þá inni í mín fyrir lykkju hérna, ég er að fara á undan og geyma í mínu 299 00:13:49,410 --> 00:13:57,440 $ Töflunni að $ orð fær satt. 300 00:13:57,440 --> 00:13:57,918 Lokið. 301 00:13:57,918 --> 00:14:01,264 Ó, bíddu. 302 00:14:01,264 --> 00:14:02,422 Lokið. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> Það er álag () fall segja í PHP. 305 00:14:04,970 --> 00:14:05,865 Nú, hvers vegna er það að vinna? 306 00:14:05,865 --> 00:14:07,010 Og ég er svona að svindla hér. 307 00:14:07,010 --> 00:14:09,980 >> Svo, einn, framhandleggur við sáum stuttlega síðasta skipti. 308 00:14:09,980 --> 00:14:13,680 Það þýðir bara að þú getur iterate yfir fylki án þess að angra með i 309 00:14:13,680 --> 00:14:16,150 og n og plús plús og allt það. 310 00:14:16,150 --> 00:14:21,350 Orðabók er auðvitað the skrá nafn, eitthvað eins stór eða lítil, tveir 311 00:14:21,350 --> 00:14:22,830 orðabækur sem við notuðum síðasta sinn. 312 00:14:22,830 --> 00:14:26,715 Skrá er fall sem opnast texta skrá, les það í samræmi við línu, og 313 00:14:26,715 --> 00:14:29,840 hendur þér aftur a gríðarstór fylking, hver af hverra þætti er 314 00:14:29,840 --> 00:14:31,340 lína frá þessi skrá. 315 00:14:31,340 --> 00:14:36,040 Svo er að samsetning fopen, og fread, og á meðan lykkja, og fclose, 316 00:14:36,040 --> 00:14:37,080 og allt það. 317 00:14:37,080 --> 00:14:40,150 Að lokum, eins og orðið merkir bara það er breytu Ég ætla að hafa aðgang að 318 00:14:40,150 --> 00:14:41,890 á hverjum endurtekning í þessu lykkju. 319 00:14:41,890 --> 00:14:46,910 >> Svo í stuttu máli, þetta eitt Ferja hér þýðir opna skrána sem heitir í 320 00:14:46,910 --> 00:14:50,750 orðabók, breytu, iterate yfir það línu fyrir línu, og í hvert sinn sem þú færð 321 00:14:50,750 --> 00:14:54,290 lína, geymt í breytu sem heitir orð, og þá gera eitthvað með orði. 322 00:14:54,290 --> 00:14:55,280 Hvað vil ég að gera? 323 00:14:55,280 --> 00:14:58,110 Mig langar að setja orð í kjötkássa töflunni minni. 324 00:14:58,110 --> 00:15:00,860 >> Jæja, ég get sett eitthvað í mínum kjötkássa borð rétt eins og í C 325 00:15:00,860 --> 00:15:02,140 nota hornklofa. 326 00:15:02,140 --> 00:15:03,660 Þetta er nafn fyrir kjötkássa borð mitt. 327 00:15:03,660 --> 00:15:07,180 Ég ætla að skrá inn í þessi hash borð á þessum stað. 328 00:15:07,180 --> 00:15:08,920 Svo ekki krappi núlli, ekki krappi einn. 329 00:15:08,920 --> 00:15:11,990 Bracket vitna unquote eitthvað, hvað sem það orð er. 330 00:15:11,990 --> 00:15:15,200 Og rétt eins og þú gætir hafa í þinn kjötkássa borð vinna trie, geymt bara 331 00:15:15,200 --> 00:15:17,650 raun Boolean, óbeint eða óbeint. 332 00:15:17,650 --> 00:15:18,260 Lokið. 333 00:15:18,260 --> 00:15:20,000 Ég er að geyma verðmæti satt. 334 00:15:20,000 --> 00:15:23,150 >> Nú er það a par af hlutur Ég er að skera horn á hér. 335 00:15:23,150 --> 00:15:27,720 Tæknilega, það er að fara að vera pirrandi nýja línu, / n, í lok 336 00:15:27,720 --> 00:15:28,820 hvert þessara orða. 337 00:15:28,820 --> 00:15:31,770 Þannig að ég ætti sennilega að hringja í PHP virka kallað höggva (), sem mun 338 00:15:31,770 --> 00:15:33,460 alveg bókstaflega höggva það burt. 339 00:15:33,460 --> 00:15:35,020 Og ég þarf í raun og veru að gera einn annar hlutur. 340 00:15:35,020 --> 00:15:38,380 Ég ætti líklega að hækka stærð á hverjum endurtekning, svo ég ætla að halda utan 341 00:15:38,380 --> 00:15:39,560 heimsvísu um hvað það er. 342 00:15:39,560 --> 00:15:43,180 Og hreinskilnislega, og þetta er eitt af stupider þætti PHP, ef þú ert 343 00:15:43,180 --> 00:15:46,950 með alþjóðlegum breytu, þú þarft að beinlínis að segja að þú ert. 344 00:15:46,950 --> 00:15:51,670 Þannig að ég ætla að fara til raunverulega tegund í alþjóðlegum $ Stærð, alþjóðlegt $ borð, og nú 345 00:15:51,670 --> 00:15:52,690 virka minn er lokið. 346 00:15:52,690 --> 00:15:57,475 >> Svo ekki alveg eins einfalt eins og áður, en sennilega tók minni tíma en C 347 00:15:57,475 --> 00:15:58,220 útgáfa, kannski? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> Svo nú skulum gera stöðva () virka. 350 00:16:00,390 --> 00:16:04,300 Við skulum sjá hvort þetta amk tók tímunum að það tók okkur í C. Svo 351 00:16:04,300 --> 00:16:06,500 láta mig fara á undan og lýsa athuga sem virka. 352 00:16:06,500 --> 00:16:09,070 Tekur í rifrildi orði, sem er fara að koma frá Speller. 353 00:16:09,070 --> 00:16:13,410 Og ég ætla bara að fara að athuga hvort Eftirfarandi breytilegum isset, borð 354 00:16:13,410 --> 00:16:18,400 krappi strtolower orðs - 355 00:16:18,400 --> 00:16:20,590 skulum jafnvægi alla sviga mínum - 356 00:16:20,590 --> 00:16:24,275 þá aftur að veruleika. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Annað - 359 00:16:28,460 --> 00:16:30,330 sem var mjög harður hluti af þessari áætlun. 360 00:16:30,330 --> 00:16:31,940 Annars, return false. 361 00:16:31,940 --> 00:16:32,630 Lokið. 362 00:16:32,630 --> 00:16:33,460 Það er stöðva (). 363 00:16:33,460 --> 00:16:34,520 >> Nú, hvers vegna er þetta? 364 00:16:34,520 --> 00:16:37,040 Jæja, einn ég fór í orði, sem er band. 365 00:16:37,040 --> 00:16:41,400 Tveir, ég er að haka inni hökkun borð, sem heitir $ töflunni. 366 00:16:41,400 --> 00:16:45,470 Ég er að neyða það til lágstafir með því að hringja fall alveg líkur tolower () í 367 00:16:45,470 --> 00:16:48,580 C, en þetta er allt orðið, ekki einn stafur. 368 00:16:48,580 --> 00:16:52,680 Og ef það er sett, með öðrum orðum það er gildi stillt, með öðrum orðum, 369 00:16:52,680 --> 00:16:54,880 ef það er satt, þá já, þetta er orðið. 370 00:16:54,880 --> 00:16:56,530 Vegna þess að ég setti það þar með álag (). 371 00:16:56,530 --> 00:16:59,100 Og ef ekki, ég ætla að return false. 372 00:16:59,100 --> 00:17:00,090 >> Nú hinir eru auðvelt. 373 00:17:00,090 --> 00:17:03,570 Virka stærð (), hvernig geri ég þetta? 374 00:17:03,570 --> 00:17:05,230 Ég í raun aftur $ stærð. 375 00:17:05,230 --> 00:17:07,770 En ég þarf tæknilega að gera þetta pirrandi hlutur. 376 00:17:07,770 --> 00:17:10,640 Og reyndar upp heyra, ég var að klippa eitt horn of margir. 377 00:17:10,640 --> 00:17:12,920 Ég þarf virkilega að gera alþjóðlegt $ töflunni. 378 00:17:12,920 --> 00:17:16,260 >> En það að segja, afferma). 379 00:17:16,260 --> 00:17:17,380 Afferma () er ótrúlegt. 380 00:17:17,380 --> 00:17:20,500 Virka afferma (). 381 00:17:20,500 --> 00:17:23,990 Hvernig vil ég að innleiða afferma ()? 382 00:17:23,990 --> 00:17:25,079 Lokið. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> Svo afferma (), minni stjórnun er alveg gætt af fyrir þig í 385 00:17:28,900 --> 00:17:31,800 eitthvað eins og PHP og margt af hærri stigi tungumálum. 386 00:17:31,800 --> 00:17:32,600 Þannig að þetta er alveg magnað. 387 00:17:32,600 --> 00:17:36,080 Eins hvers vegna í fjandanum gerði við eytt síðustu átta plús vikur á C skriflega 388 00:17:36,080 --> 00:17:41,030 virðist mjög hægt, raunverulega tími neyslu vandamál með tugum klukkustunda 389 00:17:41,030 --> 00:17:42,530 af vinna undir belti okkar? 390 00:17:42,530 --> 00:17:46,110 >> Jæja, fyrir eitt, þetta mega vinna fínt fyrir litlum forritum. 391 00:17:46,110 --> 00:17:47,840 Það greiddist vissulega upp minn þróun tími. 392 00:17:47,840 --> 00:17:49,790 En við skulum sjá hvað gerist í raunheimum. 393 00:17:49,790 --> 00:17:52,370 >> Leyfðu mér að fara inn í þessa möppu í flugstöðinni glugga. 394 00:17:52,370 --> 00:17:53,370 Það er Speller. 395 00:17:53,370 --> 00:17:56,570 Og taka eftir Sem innskot, og þú gætir hafa komið þessu í Heimadæmi 396 00:17:56,570 --> 00:17:58,190 sex eða Heimadæmi sjö. 397 00:17:58,190 --> 00:18:01,610 Þú ert ekki strangt verða að enda PHP skrá með. php. 398 00:18:01,610 --> 00:18:05,250 Ef þú setur línu svona fyrsta einn á the mjög toppur, sem er með sérstaka línu 399 00:18:05,250 --> 00:18:10,980 af setningafræði sem í raun þýðir að finna er forrit sem heitir PHP og nota það til að 400 00:18:10,980 --> 00:18:12,270 túlka þessa skrá. 401 00:18:12,270 --> 00:18:15,410 Svo nú enginn veit í raun að Ég er að keyra PHP forrit. 402 00:18:15,410 --> 00:18:19,860 Ég get keyrt það bara eins og það voru eitthvað saman í C. 403 00:18:19,860 --> 00:18:20,650 >> En hér er málið. 404 00:18:20,650 --> 00:18:21,600 Reyndar, við skulum gera þetta aftur. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Það er Speller. 407 00:18:25,390 --> 00:18:26,720 OK, 0,44 sekúndur. 408 00:18:26,720 --> 00:18:28,080 Það varð hraðari í þetta sinn. 409 00:18:28,080 --> 00:18:29,745 >> Nú skulum fara inn í PHP útgáfu. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Ágætur snerta. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 En bara hugsa hversu miklum tíma Ég spara á skrifstofutíma. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> Svo 3,59 sekúndur, sem í raun hljómar ekki rétt heldur. 417 00:19:01,020 --> 00:19:03,710 En það er vegna langa sögu stutta, þegar þú ætlar að prenta út mikið magn 418 00:19:03,710 --> 00:19:06,840 af efni á skjánum, að sjálft hægir það niður. 419 00:19:06,840 --> 00:19:11,260 Hvað það tók virkilega á CPU í tæki var 3,59 sekúndur, í 420 00:19:11,260 --> 00:19:15,260 Öfugt við C, sem tók 0,44 sekúndur nýlega. 421 00:19:15,260 --> 00:19:17,620 Það er sannarlega röð Umfang öðruvísi. 422 00:19:17,620 --> 00:19:20,280 >> Svo hvar er það verð að koma frá? 423 00:19:20,280 --> 00:19:21,790 Hvers vegna er það svo miklu hægar? 424 00:19:21,790 --> 00:19:24,220 Hvers vegna virkar PHP framkvæma svo illa? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> Áhorfendur: Þú varst í raun ekki nota kjötkássa borð. 427 00:19:26,550 --> 00:19:27,710 >> DAVID Malan: Ég gerði í raun ekki nota kjötkássa borð. 428 00:19:27,710 --> 00:19:28,760 Svo ég gerði svona. 429 00:19:28,760 --> 00:19:29,870 Svo er það tengin array. 430 00:19:29,870 --> 00:19:33,650 Líklegast ef að fólk á PHP eru virkilega klár, notað þau undir hlutanum 431 00:19:33,650 --> 00:19:39,520 Hood raunveruleg kjötkássa borð til framkvæmda í eitthvað eins og C eða C + +. 432 00:19:39,520 --> 00:19:41,290 En. 433 00:19:41,290 --> 00:19:42,760 Já. 434 00:19:42,760 --> 00:19:44,010 >> Áhorfendur: [inaudible]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID Malan: Já. 437 00:19:47,080 --> 00:19:50,780 Svo að hver af þeim störfum sem ég skrifaði núna - Reyndar er hægt að segja að þegar meira 438 00:19:50,780 --> 00:19:51,480 lítill hávær? 439 00:19:51,480 --> 00:19:54,509 >> Áhorfendur: Hver af þeim aðgerðum sem þú fylgir hefur mikið meira fullur 440 00:19:54,509 --> 00:19:56,610 getu en - 441 00:19:56,610 --> 00:19:57,550 >> DAVID Malan: Svo er það mjög satt. 442 00:19:57,550 --> 00:20:01,490 There 'a einhver fjöldi fleiri kostnaður að við erum í raun ekki að sjá með því að einblína eingöngu á 443 00:20:01,490 --> 00:20:03,730 dictionary.php, sem ég skrifaði bara. 444 00:20:03,730 --> 00:20:08,020 Hins vegar er allt túlkur fara í bakgrunni. 445 00:20:08,020 --> 00:20:12,040 Reyndar, þegar ég hljóp þetta forrit, það var ekki hlaupandi saman núll og sjálfur 446 00:20:12,040 --> 00:20:14,290 hannað fyrir Intel CPU minn. 447 00:20:14,290 --> 00:20:19,270 Fremur, það var að keyra á milli lína PHP kóða sem lítur nákvæmlega 448 00:20:19,270 --> 00:20:20,350 eins og við slegið það. 449 00:20:20,350 --> 00:20:22,475 Og svo þegar þú notir túlkað tungumál, þú 450 00:20:22,475 --> 00:20:23,850 reyndar borga þetta verð. 451 00:20:23,850 --> 00:20:27,010 Það er að fara að taka nokkurn tíma til að lesa skrá Top til botn, vinstri til 452 00:20:27,010 --> 00:20:30,740 hægri, og þá framkvæma hvert lína aftur og aftur. 453 00:20:30,740 --> 00:20:34,250 >> Nú í raun, sérstaklega á vefnum, þú getur raunverulega flýta þessu ferli 454 00:20:34,250 --> 00:20:38,660 By Búrhvalur að niðurstöður PHP kóða sem túlka. 455 00:20:38,660 --> 00:20:41,640 Og það er vit á vefnum, vegna þess ef þú ert ekki einn notandi eins 456 00:20:41,640 --> 00:20:46,300 mig hér, en 1.000 eða 10.000 notendur, þá kannski í fyrsta skipti sem skrá er 457 00:20:46,300 --> 00:20:49,050 nálgast það er hægt, en eftir það það er miklu hraðar. 458 00:20:49,050 --> 00:20:51,000 >> En þetta líka, aftur, er að skipta út. 459 00:20:51,000 --> 00:20:53,870 Og fyrir eitthvað eins og rannsóknargögnum sett, eða jafnvel eitthvað stórt eins og 460 00:20:53,870 --> 00:20:58,330 þetta, notendur munu að lokum byrja að líða að hægagangur. 461 00:20:58,330 --> 00:21:02,670 >> Svo í stuttu máli, túlkað tungumál eru mjög mikið fyrst komist í tísku, mjög vinsæll, og 462 00:21:02,670 --> 00:21:06,710 hreinskilnislega eru sennilega þeim tungumálum sem þú ætti að ná til þegar leysa vandamál 463 00:21:06,710 --> 00:21:08,200 kjölfar CS50. 464 00:21:08,200 --> 00:21:12,720 En átta sig á hversu mikið þú ert virkilega taka sem sjálfsögðum hlut undir hetta 465 00:21:12,720 --> 00:21:15,910 fá þessa undanfarnar vikur í hash borðum, og tré, og reynir, 466 00:21:15,910 --> 00:21:20,770 sem eru notuð á endanum að raun framkvæma hluti eins og opna krappi, 467 00:21:20,770 --> 00:21:24,200 ferningur krappi, sem við getum nú þakklæti taka sem sjálfsögðum hlut. 468 00:21:24,200 --> 00:21:26,360 >> Þannig að við skulum taka a líta nú á þessari vefsíðu samhengi. 469 00:21:26,360 --> 00:21:29,890 Og ég nefndi síðast að það er fullt af superglobals í PHP sem 470 00:21:29,890 --> 00:21:32,490 eru í raun ekki máli í stjórn lína. 471 00:21:32,490 --> 00:21:36,210 Þeir eru meira máli í sambandi þess að nota PHP í a vefur samhengi. 472 00:21:36,210 --> 00:21:41,220 Svo keyra PHP á a vefur framreiðslumaður í röð til að búa til efni eins og HTML. 473 00:21:41,220 --> 00:21:44,540 >> Og við leit á $ _GET og $ _POST, og það er þar sjálfkrafa notendur ' 474 00:21:44,540 --> 00:21:49,100 inntak endar einfaldlega ef þú sendir inn mynda að skrá sem endar á. PHP á vefnum 475 00:21:49,100 --> 00:21:50,460 framreiðslumaður eins tækinu. 476 00:21:50,460 --> 00:21:53,310 En við skulum líta stuttlega á $ _COOKIE Og $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> Í skilmálum leikmaður er, hvað er kex sem að skilja það í samhengi við 478 00:21:56,670 --> 00:21:58,220 nota vefinn? 479 00:21:58,220 --> 00:21:59,450 >> Áhorfendur: skrána á tölvunni. 480 00:21:59,450 --> 00:21:59,920 >> DAVID Malan: Já. 481 00:21:59,920 --> 00:22:03,500 Það er skrá á tölvu notandans gróðursett af hvaða vefsíðu 482 00:22:03,500 --> 00:22:04,410 þú verður að heimsækja. 483 00:22:04,410 --> 00:22:07,334 Svo þegar þú ferð á Facebook, þegar þú ferð til bankofamerica.com, þegar þú ferð 484 00:22:07,334 --> 00:22:10,330 á google.com, þegar þú ferð að nánast allir website í heiminum þessa dagana, 485 00:22:10,330 --> 00:22:14,850 þ.mt cs50.net, en kex er gróðursett á tölvunni þinni, sem er 486 00:22:14,850 --> 00:22:19,800 annaðhvort gildi sem eru geymdar í vinnsluminni í þinn tölva í minni vafrans þíns, eða 487 00:22:19,800 --> 00:22:22,800 stundum örugglega geymd á harða disknum þínum. 488 00:22:22,800 --> 00:22:26,960 >> Og hvað er yfirleitt geymd í þessi skrá er ekki notandanafnið þitt, ekki þinn 489 00:22:26,960 --> 00:22:31,060 lykilorð, yfirleitt ekki eitthvað næmur nema vefsíða er ekki svo 490 00:22:31,060 --> 00:22:35,040 góður með öryggi þeirra, heldur það er stór einstakt auðkenni meðal 491 00:22:35,040 --> 00:22:35,680 aðra hluti. 492 00:22:35,680 --> 00:22:38,920 Það er stór handahófi tala gróðursett á þinn tölva en þú getur hugsað sem 493 00:22:38,920 --> 00:22:42,740 konar raunverulegur hönd frímerki eins frá félag eða einhver skemmtigarður sem 494 00:22:42,740 --> 00:22:47,160 gerir starfsfólk, eigendur sem þjónustu, að muna hver þú ert. 495 00:22:47,160 --> 00:22:51,030 Þannig að ef stór handahófi tala er eins og 12345678, þó að það er augljóslega 496 00:22:51,030 --> 00:22:54,180 ekki of handahófi, hugsa um það sem er hönd stimpill að þegar þú heimsækir 497 00:22:54,180 --> 00:22:57,930 facebook.com í fyrsta skipti, þeir stimpla þessi númer á hendinni. 498 00:22:57,930 --> 00:23:01,510 Og þá vegna þess að þú talar HTTP, þú vera flettitæki, og vegna þess að Facebook 499 00:23:01,510 --> 00:23:06,440 augljóslega talar sama og vefur miðlara, siðareglur HTTP segir að 500 00:23:06,440 --> 00:23:09,930 hvenær sem þú heimsækir í kjölfarið facebook.com, hvort sem það er annað 501 00:23:09,930 --> 00:23:13,560 síðar, klukkutíma síðar, jafnvel næsta dag, svo lengi sem þú ert ekki beinlínis 502 00:23:13,560 --> 00:23:17,050 innskráður, sem í raun er eins og að þvo hendurnar. 503 00:23:17,050 --> 00:23:20,280 HTTP segir þú ættir að kynna þér hönd stimpill í hvert skipti sem þú 504 00:23:20,280 --> 00:23:22,020 aftur til að website. 505 00:23:22,020 --> 00:23:24,390 >> Hvað Facebook þá gerir er að þeir líta á þessi hönd stimpli og 506 00:23:24,390 --> 00:23:26,850 þeir segja, ó, 123456789. 507 00:23:26,850 --> 00:23:30,260 Ég veit ekki við fyrstu sýn að þessi er David Malan í Cambridge, 508 00:23:30,260 --> 00:23:34,690 Massachusetts, en þeir geta stöðva þeirra gagnagrunn og segja, ó, sá 509 00:23:34,690 --> 00:23:39,930 á sem tölva við gróðursett 123456789 er David Malan frá Cambridge, 510 00:23:39,930 --> 00:23:40,440 Massachusetts. 511 00:23:40,440 --> 00:23:46,000 Við skulum sýna að notandi þá uppsetningu hans síðu eða News hans Feed. 512 00:23:46,000 --> 00:23:49,660 >> En það er vandamál hér ef þetta er hvernig vefur virkar örugglega. 513 00:23:49,660 --> 00:23:51,390 Láta 'taka a líta á a fljótur dæmi. 514 00:23:51,390 --> 00:23:55,190 Við skulum fara í raun að segja facebook.com. 515 00:23:55,190 --> 00:23:58,130 En áður en við gátum farið þangað, láta mér að fara á undan og opna Króm 516 00:23:58,130 --> 00:23:59,790 Skoðunarmaður hérna. 517 00:23:59,790 --> 00:24:01,140 Láta mig líta á flipann Network. 518 00:24:01,140 --> 00:24:06,020 Og nú skulum fara á undan og slá í https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 Og ég er að gera það þannig að við sjáum ekki allar þessar tilvísanir og úrgangs 520 00:24:09,410 --> 00:24:10,660 tíma í að leita í gegnum þá. 521 00:24:10,660 --> 00:24:12,690 Leyfðu mér högg koma inn í. 522 00:24:12,690 --> 00:24:13,130 >> Allt í lagi. 523 00:24:13,130 --> 00:24:14,580 Við sjáum allt fullt af beiðnum. 524 00:24:14,580 --> 00:24:15,640 Það kemur Facebook. 525 00:24:15,640 --> 00:24:16,930 There 'a heild búnt af skrá. 526 00:24:16,930 --> 00:24:19,290 Og hér, á minnast mínu Leynd síðasta sinn, sem er 527 00:24:19,290 --> 00:24:21,240 a einhver fjöldi af HTTP beiðnir. 528 00:24:21,240 --> 00:24:23,700 En sá fyrsti er líklega mest áhugavert. 529 00:24:23,700 --> 00:24:26,420 >> Svo skulum fletta niður hér, og Ég zoom í á sekúndu. 530 00:24:26,420 --> 00:24:29,090 Þetta er að fara að vera eins konar sóðaskapur, en við skulum sjá. 531 00:24:29,090 --> 00:24:31,660 Facebook er að senda okkur allt fullt af dóti. 532 00:24:31,660 --> 00:24:33,490 >> En hó, áhugavert. 533 00:24:33,490 --> 00:24:37,880 Þeir eru að gróðursetningu ekki einn, heldur fjórir hönd frímerki inná minni hendi hér. 534 00:24:37,880 --> 00:24:40,400 Set-Cookie, Set-cookie, setja-cookie, setja smáköku. 535 00:24:40,400 --> 00:24:44,030 Og það eru nokkrar aðgerðir hér. 536 00:24:44,030 --> 00:24:46,170 Öll þau nefna nokkur konar fyrningu. 537 00:24:46,170 --> 00:24:50,090 Og það lítur út eins og Facebook er vonast að muna eftir mér fyrr en 2015. 538 00:24:50,090 --> 00:24:53,670 Svo er það væntanlega sinn sem Ég verð að skrá þig út eða þeir bara 539 00:24:53,670 --> 00:24:55,710 sjálfkrafa gera ráð fyrir að ég er ekki aftur. 540 00:24:55,710 --> 00:24:57,840 Svo er það í raun ágætis tíma. 541 00:24:57,840 --> 00:24:59,170 >> Og það eru nokkrar aðrar hlutir að gerast hér. 542 00:24:59,170 --> 00:25:03,036 Þetta kex virðist vera með valdi eytt með því að segja að það rann út í 1970 543 00:25:03,036 --> 00:25:04,460 áður smákökur lýði. 544 00:25:04,460 --> 00:25:06,510 Svo vafrinn er bara að fara að gera ráð fyrir OK, það er eins og 545 00:25:06,510 --> 00:25:07,910 þvo hendur stimpil. 546 00:25:07,910 --> 00:25:11,240 >> En nú þegar vafrinn minn gerir beiðni síðar - 547 00:25:11,240 --> 00:25:14,340 láta mig fara á undan og gera þetta aftur og endurhlaða. 548 00:25:14,340 --> 00:25:18,170 Nú láta mig fletta aftur til Top beiðni og fara niður 549 00:25:18,170 --> 00:25:20,760 hér, óska ​​haus. 550 00:25:20,760 --> 00:25:21,390 Taka þetta. 551 00:25:21,390 --> 00:25:25,280 Svo núna er ég undir ekki svar haus, en eftir það segir beiðni haus. 552 00:25:25,280 --> 00:25:29,220 Og taka eftir því að vafrinn minn sem hluta af beiðni hans eftir hitting endurhlaða hefur 553 00:25:29,220 --> 00:25:32,780 sendi amk eftirfarandi upplýsingar. 554 00:25:32,780 --> 00:25:34,670 Ekki sett-cookie, en kex. 555 00:25:34,670 --> 00:25:38,750 Þannig að þetta er lína, HTTP haus svo að tala, þar sem vafrinn minn er tegund 556 00:25:38,750 --> 00:25:43,340 um án þess að vita mína það hugboð hönd mín til skoðunar Facebook. 557 00:25:43,340 --> 00:25:46,020 >> Svo þessar smákökur má notað þá fyrir hvað? 558 00:25:46,020 --> 00:25:49,420 Að muna hver þú ert, eða muna hvernig margir sinnum þú hefur verið þar, eða 559 00:25:49,420 --> 00:25:50,280 virkilega eitthvað. 560 00:25:50,280 --> 00:25:52,742 >> Svo er hér counter.php. 561 00:25:52,742 --> 00:25:53,780 Og láta mig að súmma inn á letri. 562 00:25:53,780 --> 00:25:58,380 Og í hvert sinn sem ég endurhlaða þessa síðu, taka það er að muna hversu oft 563 00:25:58,380 --> 00:25:59,250 Ég hef verið þarna. 564 00:25:59,250 --> 00:26:00,570 Jæja, það er ekki allt sem áhrifamikill. 565 00:26:00,570 --> 00:26:03,140 Skulum bara loka þeim flipa, og nú skulum við fara aftur til 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> Ó, það er áhugavert. 568 00:26:08,970 --> 00:26:10,960 Það mundi samt, jafnvel þótt ég lokaði flipann. 569 00:26:10,960 --> 00:26:14,010 Og hreinskilnislega, ef ég loka vafranum ef til framkvæmda á réttan hátt, ég 570 00:26:14,010 --> 00:26:18,950 gæti enn man að þessi notandi er sem hann eða hún var í fyrsta sinn, og 571 00:26:18,950 --> 00:26:22,840 aðeins þegar ég fer inn í valmyndinni Króm ', sem hérna er hér, og fara að 572 00:26:22,840 --> 00:26:25,990 Sögu, og smelltu Hreinsa vefskoðunargögn, eins og sumir af þú mega hafa í 573 00:26:25,990 --> 00:26:33,050 fortíð, aðeins þá verður fótspor reyndar eyðingar vefnum 574 00:26:33,050 --> 00:26:33,970 þróun. 575 00:26:33,970 --> 00:26:35,340 >> Svo ef við förum - 576 00:26:35,340 --> 00:26:37,080 skulum nærmynd gedit hér. 577 00:26:37,080 --> 00:26:38,910 Og ef við förum nú í þessa skrá. 578 00:26:38,910 --> 00:26:44,210 Láta mig fara inn í okkar vhosts / localhost / almennings, og láta mig gera 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Takið eftir að þetta er nokkuð einfalt forrit. 581 00:26:48,350 --> 00:26:50,250 Það er frekar einfalt website. 582 00:26:50,250 --> 00:26:51,770 >> Svo efst á skránni er bara athugasemdir. 583 00:26:51,770 --> 00:26:54,930 En hér er ný lína sem þú getur hafa séð þegar í p-sett sjö, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Þetta er lína af PHP kóða sem meginatriðum segir vefur framreiðslumaður, gera 586 00:27:00,380 --> 00:27:03,400 viss um að stimpla hendur og gera viss um að athuga hönd frímerki. 587 00:27:03,400 --> 00:27:06,810 Það er allt sem línan er, og það er öll þessi ferli fyrir okkur. 588 00:27:06,810 --> 00:27:09,510 Þá eftir ég hef bara tvær greinar hér. 589 00:27:09,510 --> 00:27:14,150 Ef gagn lykillinn inni af þessu sérstakt alþjóðlegt breytu sem heitir 590 00:27:14,150 --> 00:27:18,010 $ _SESSION Er stillt - með öðrum orðum, ef það er einhver gildi þar - 591 00:27:18,010 --> 00:27:22,440 skulum fá það og geyma það í sveitarstjórn breytu sem heitir $ gegn. 592 00:27:22,440 --> 00:27:27,000 Annað, við skulum úthluta $ counter sjálfgefið gildi 0.. 593 00:27:27,000 --> 00:27:30,320 >> Nú er hér einn þáttur í PHP sem er bæði blessun og bölvun. 594 00:27:30,320 --> 00:27:32,080 PHP er svolítið sloppy. 595 00:27:32,080 --> 00:27:35,160 Svo þar sem í C, hvað myndi Umfang counter hafa verið 596 00:27:35,160 --> 00:27:36,725 annaðhvort hér eða hér? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Það hefði verið bundinn þeim hrokkið axlabönd. 599 00:27:41,690 --> 00:27:42,090 Giska á hvað? 600 00:27:42,090 --> 00:27:46,920 Í PHP, er það jafnvel utan þeirra hrokkið axlabönd, hér, og hér, 601 00:27:46,920 --> 00:27:49,120 og hér, og hér, og jafnvel niður fyrir. 602 00:27:49,120 --> 00:27:52,400 Svo ég segi að þetta sé blessun í þeim skilningi að þú þarft ekki að hugsa eins og 603 00:27:52,400 --> 00:27:54,070 harður eins og við gerðum vikum. 604 00:27:54,070 --> 00:27:56,880 En það er einnig hluti af formælingum í að Sama hvar þú notar breytu í 605 00:27:56,880 --> 00:28:00,020 PHP, amk í forriti eins og þetta, það er á heimsvísu aðgengilegt 606 00:28:00,020 --> 00:28:01,170 betri eða verri. 607 00:28:01,170 --> 00:28:06,130 Svo þú verður að hafa í huga nú að breytur má ekki óskilgreindur. 608 00:28:06,130 --> 00:28:07,640 Þú gætir hafa skilgreint þá annars staðar. 609 00:28:07,640 --> 00:28:09,460 >> En hvað er ég að fara að gera á endanum? 610 00:28:09,460 --> 00:28:13,160 Ég ætla að geyma inni að alþjóðlegum breytilegir eins og af en 611 00:28:13,160 --> 00:28:17,060 gegn slá niðurstöðu gera gegn auk 1. 612 00:28:17,060 --> 00:28:18,910 Svo er þetta bara reiknað sem gerir 613 00:28:18,910 --> 00:28:20,590 incrementation þess borðið. 614 00:28:20,590 --> 00:28:24,850 Og sú staðreynd að ég er að geyma það gildi aftur hérna þýðir að 615 00:28:24,850 --> 00:28:29,970 meginatriðum uppfæra gagnagrunninn til muna að notandinn 123456789 hefur verið 616 00:28:29,970 --> 00:28:31,010 hér tvisvar sinnum. 617 00:28:31,010 --> 00:28:33,780 Og þegar ég gera það aftur næst þegar ég endurhlaða síðunni, það er að fara að athuga 618 00:28:33,780 --> 00:28:36,710 hönd stimpilinn minn og segja, ó, notandi 123456789 hefur nú 619 00:28:36,710 --> 00:28:38,410 verið hér þrisvar sinnum. 620 00:28:38,410 --> 00:28:43,390 >> Og hvað með það PHP og svipuð tungumál eru að gera fyrir okkur er að þeir eru vangaveltur 621 00:28:43,390 --> 00:28:47,720 út hvernig og hvar og hve lengi til að geyma gildi í þessu sérstaka 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 Og þetta superglobal næst þegar ég heimsækja síðu er tegund af dularfullur 624 00:28:52,750 --> 00:28:57,440 fylltar, fyllt með gildum sem voru þar í síðasta skipti sem þú heimsótt, 625 00:28:57,440 --> 00:29:02,310 hvort það var annað síðan, viku síðan, eða árið 2013 og við erum nú að tala 626 00:29:02,310 --> 00:29:03,790 um 2015. 627 00:29:03,790 --> 00:29:07,600 PHP og vefur framreiðslumaður að gæta af öllum sem fyrir þig. 628 00:29:07,600 --> 00:29:08,850 >> Áhorfendur: [inaudible]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID Malan: Breytur í PHP eru raun alltaf alþjóðlegt nema þú 631 00:29:15,760 --> 00:29:18,400 lýsa þeim inni í virka, og þá eru þeir staðbundið við 632 00:29:18,400 --> 00:29:19,420 fallið aðeins. 633 00:29:19,420 --> 00:29:22,300 En vegna þess að ég hef ekki skrifað eitthvað aðgerðir, eru þeir nú í raun 634 00:29:22,300 --> 00:29:25,090 heimsvísu um alla skrá mína hér. 635 00:29:25,090 --> 00:29:26,040 >> Áhorfendur: Er there a vegur að gera þá staðbundin? 636 00:29:26,040 --> 00:29:28,470 >> DAVID Malan: Er einhver leið til að gera þá staðbundin? 637 00:29:28,470 --> 00:29:30,680 Aðeins með umbúðir þá í aðgerðir. 638 00:29:30,680 --> 00:29:32,790 Sem í nýjustu útgáfu PHP, getur þú gert þetta með 639 00:29:32,790 --> 00:29:34,130 nafnlaus virka. 640 00:29:34,130 --> 00:29:35,930 En meira um það í samhengi JavaScript. 641 00:29:35,930 --> 00:29:37,260 En Stutta svarið er nei. 642 00:29:37,260 --> 00:29:40,888 Lengri svarið er já. 643 00:29:40,888 --> 00:29:42,380 Nice. 644 00:29:42,380 --> 00:29:43,380 Good Quiz spurning. 645 00:29:43,380 --> 00:29:43,930 Allt í lagi. 646 00:29:43,930 --> 00:29:47,760 >> Svo loksins, síðan sjálf er í raun frekar einfalt. 647 00:29:47,760 --> 00:29:51,470 Takið eftir að þegar ég loka PHP háttur, muna að allt þetta efni niður 648 00:29:51,470 --> 00:29:53,700 hér er bara að fara að fá spýta út hrár til the flettitæki. 649 00:29:53,700 --> 00:29:57,050 Sem er fínt, því ég vil að senda notandi sumir HTML, en ég vil 650 00:29:57,050 --> 00:29:59,140 við breytilega uppfæra þessi HTML. 651 00:29:59,140 --> 00:30:03,930 Og ein leið sem ég get gert þetta er að raða mjög fljótt falla aftur í PHP 652 00:30:03,930 --> 00:30:07,730 háttur, nota opinn Bracket spurningarmerki jafn merki, og þá framleiðsla gildið 653 00:30:07,730 --> 00:30:08,650 á borðið. 654 00:30:08,650 --> 00:30:12,360 >> Eða ef þetta lítur svolítið dulinn, þetta jafn skilti er í raun bara 655 00:30:12,360 --> 00:30:16,190 nokkur dæmi um setningarleg sykur fyrir þetta printf ($ gegn). 656 00:30:16,190 --> 00:30:19,160 En hreinskilnislega, það er bara smá ljót og smá pirrandi að slá. 657 00:30:19,160 --> 00:30:23,660 Svo PHP mjög vel upp þennan eiginleika þar sem þú getur bara segja það meira 658 00:30:23,660 --> 00:30:25,450 succinctly á sama hátt. 659 00:30:25,450 --> 00:30:26,940 >> Svo hvað er að gerast undir hetta? 660 00:30:26,940 --> 00:30:31,210 Skulum fljótt að líta á netið flipann hér fyrir counter.php. 661 00:30:31,210 --> 00:30:35,090 Og láta mig fara á undan og fyrsta skulum hreinsa fótspor. 662 00:30:35,090 --> 00:30:38,670 Skýr skulum vefskoðunargögn síðan upphaf tíma. 663 00:30:38,670 --> 00:30:39,680 Nú skulum fara aftur hérna. 664 00:30:39,680 --> 00:30:41,340 Nú skulum endurhlaða síðunni. 665 00:30:41,340 --> 00:30:42,170 Og ég er aftur á núlli. 666 00:30:42,170 --> 00:30:44,810 Vegna hönd stimpill minn hefur verið þvegið, Ég fæ nú nýtt kex. 667 00:30:44,810 --> 00:30:48,780 >> Reyndar ef ég horfi á the net flipann og líta á haus svar, taka 668 00:30:48,780 --> 00:30:51,960 að tækið er að senda mér kex er nafn hans nokkuð 669 00:30:51,960 --> 00:30:55,820 geðþótta, en svona sæmilega, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 Og það er að senda mér þetta virkilega stór handahófi númer. 671 00:30:58,440 --> 00:30:59,440 Það er ekki alveg a tala. 672 00:30:59,440 --> 00:31:00,390 Það er ekki alveg sextánskur. 673 00:31:00,390 --> 00:31:03,600 Það er einhvers konar tölu band, en væntanlega er það af handahófi. 674 00:31:03,600 --> 00:31:06,830 Og það er hönd frímerki svo að tala sem ég er að vísa til. 675 00:31:06,830 --> 00:31:11,960 >> Á sama tíma ef ég smellt endurhlaða og þá líta á þetta annarri línu fyrir seinni minn 676 00:31:11,960 --> 00:31:17,600 beiðni, taka nú að beiðni mína haus eru PHPSESSID jafngildir þetta, 677 00:31:17,600 --> 00:31:19,390 ekki sett kex, en bara kex. 678 00:31:19,390 --> 00:31:22,950 Og það er kynning vafranum míns af stimpil hönd mína. 679 00:31:22,950 --> 00:31:28,820 >> Svo nú sem beitu, og við munum tala meira um þetta í viku eða svo, en 680 00:31:28,820 --> 00:31:31,590 á hvaða hátt er þetta að gera þér viðkvæm, Facebook reikning þinn 681 00:31:31,590 --> 00:31:34,137 viðkvæm og aðrar slíkar reikninga varnarlaus? 682 00:31:34,137 --> 00:31:35,510 >> Áhorfendur: Ef einhver hefur kex þinn. 683 00:31:35,510 --> 00:31:36,750 >> DAVID Malan: Já, ef einhver hefur kex þinn. 684 00:31:36,750 --> 00:31:39,920 Ég meina sannarlega, mikið eins og sumir af þú gæti hafa reynt að eins félaginu eða 685 00:31:39,920 --> 00:31:44,030 tívolí, ef þú ert að reyna eitthvað svona að afrita stimpil, að vísu 686 00:31:44,030 --> 00:31:47,560 aftur á móti annars manns, og þá kynnir hann eða hún það sem 687 00:31:47,560 --> 00:31:53,250 eigin spýtur, ef það raunverulega hjartarskinn útlit eins, 123456789, þá vefur 688 00:31:53,250 --> 00:31:57,980 framreiðslumaður er greinilega bara að fara að treysta því að þessi notandi er þér. 689 00:31:57,980 --> 00:32:01,450 >> Og þetta er örugglega grundvallaratriði ógn hvenær þú notar fótspor 690 00:32:01,450 --> 00:32:05,420 því ef einhver spoofs bara svo til tala kex þína, tölur út hvað það 691 00:32:05,420 --> 00:32:08,660 er, annaðhvort með því sannarlega að afrita það með því að horfa á tölvuna 692 00:32:08,660 --> 00:32:09,890 og vera eins, OK. 693 00:32:09,890 --> 00:32:14,520 Kex Davíðs er JJ3JIK og svo framvegis, og þeir ert sviði nógur til vita 694 00:32:14,520 --> 00:32:18,080 hvernig á að raða í höndunum senda sem kex úr vafranum eða frá 695 00:32:18,080 --> 00:32:22,350 program þeir skrifa, gætu þeir algerlega skráir þig inn á vefsíðu sem þú. 696 00:32:22,350 --> 00:32:28,560 Það er ekki það erfitt að þykjast vera einhver annar nema við endurskoðun p-setja 697 00:32:28,560 --> 00:32:30,790 tveir, sem kynnt hvað? 698 00:32:30,790 --> 00:32:32,065 >> Áhorfendur: dulmál. 699 00:32:32,065 --> 00:32:33,860 >> DAVID Malan: Smá bita dulmál. 700 00:32:33,860 --> 00:32:36,550 Einföld dulmál, amk í Standard Edition, en dulritunarstjórneiningunni 701 00:32:36,550 --> 00:32:36,870 engu að síður. 702 00:32:36,870 --> 00:32:37,410 minna. 703 00:32:37,410 --> 00:32:41,440 Svo kemur í ljós ef þú dulkóða öll þessi haus með eitthvað sem þú 704 00:32:41,440 --> 00:32:48,770 gæti nú vita meira familiarly sem SSL, Secure Socket Layer, eða https:// vefslóðir, 705 00:32:48,770 --> 00:32:51,890 þá allt þetta sem við höfum verið glancing á eru í raun dulkóðuð, 706 00:32:51,890 --> 00:32:54,800 sem þýðir að það er eins og þú getur ekki lesið hönd stimpil. 707 00:32:54,800 --> 00:32:59,350 Aðeins facebook.com getur, eða google.com, eða í þessu tilfelli, the tæki geta 708 00:32:59,350 --> 00:33:00,550 lesa höndina stimpil. 709 00:33:00,550 --> 00:33:04,020 >> Tragically þó, og aftur, þetta er allt of rétt við NSA efni 710 00:33:04,020 --> 00:33:06,410 upp á síðkastið, jafnvel SSL er breakable. 711 00:33:06,410 --> 00:33:09,850 Og það er í raun ekki þessi harður til jafnvel sprunga þessi dulkóðun. 712 00:33:09,850 --> 00:33:12,040 Ekki svo mikið með sprunga the brengla, en með því að svikull 713 00:33:12,040 --> 00:33:15,720 vafra í Afkóðun gögnin snemma. 714 00:33:15,720 --> 00:33:17,880 En aftur, munum við stríða þér með það fyrir löngu. 715 00:33:17,880 --> 00:33:21,242 Fyrir nú, bara vera hræddur. 716 00:33:21,242 --> 00:33:23,070 Það er tragically konar satt. 717 00:33:23,070 --> 00:33:23,760 >> Allt í lagi. 718 00:33:23,760 --> 00:33:27,910 Svo, hvar er þetta nú yfirgefa okkur? 719 00:33:27,910 --> 00:33:29,010 Jæja, við skulum gera þetta. 720 00:33:29,010 --> 00:33:31,790 Við skulum fara á undan og taka a fljótur beitu áður en við að taka pásu. 721 00:33:31,790 --> 00:33:33,790 Og ég held að við munum sitja lengi aðeins lengur í dag, en við erum að fara að kafa í 722 00:33:33,790 --> 00:33:37,850 eitthvað glæný og kynþokkafullur, sem mun brýni lyst þína fyrir jafnvel fleiri. 723 00:33:37,850 --> 00:33:38,950 Svo að beitu. 724 00:33:38,950 --> 00:33:41,520 >> Svo SQL, við byrjuðum að tala um alltaf svo snöggt síðasta skipti. 725 00:33:41,520 --> 00:33:44,670 Þú munt í raun fá þinn snertið ekki óhrein með eitthvað af því í p-setja sjö. 726 00:33:44,670 --> 00:33:46,480 Og í skilmálum leikmaður er, hvað gerir SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 gert fyrir þig? 729 00:33:49,850 --> 00:33:50,310 Hvað er það? 730 00:33:50,310 --> 00:33:51,546 Já. 731 00:33:51,546 --> 00:33:53,240 >> Áhorfendur: skulum þér aðgang að gögnum. 732 00:33:53,240 --> 00:33:53,360 >> DAVID Malan: Já. 733 00:33:53,360 --> 00:33:55,120 Það skulum þú aðgang gögn í gagnagrunni. 734 00:33:55,120 --> 00:33:56,710 Structured Query Language. 735 00:33:56,710 --> 00:33:59,890 Og þetta er fyrst og fremst á forritunarmál. 736 00:33:59,890 --> 00:34:03,400 Það eru aðgerðir af því að við munum ekki einu sinni að nota í bekknum. 737 00:34:03,400 --> 00:34:04,710 En þú getur í raun skilgreina aðgerðir. 738 00:34:04,710 --> 00:34:06,870 Þeir eru kallaðir geymd aðferðir í SQL. 739 00:34:06,870 --> 00:34:09,860 En við munum halda það nokkuð einfalt og bara nota það fyrir nokkrum helstu aðgerðir 740 00:34:09,860 --> 00:34:14,320 eins og að velja gögn, setja gögn, uppfæra gögn og eyða gögnum. 741 00:34:14,320 --> 00:34:17,400 >> Og þú getur raunverulega hugsa af gagnagrunni, eins og SQL gagnagrunn, sem bara 742 00:34:17,400 --> 00:34:18,800 vera Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Vegna þess að SQL er átt við a relational gagnasafn, þar 744 00:34:21,989 --> 00:34:23,480 Tengsl þýðir bara töflur. 745 00:34:23,480 --> 00:34:24,739 Línum og dálkum. 746 00:34:24,739 --> 00:34:27,929 Svo eitthvað sem þú getur sett í töflureikni svona eða Google Docs, 747 00:34:27,929 --> 00:34:32,460 þú gætir sett inn í SQL gagnagrunn með því að lýsa töflu. 748 00:34:32,460 --> 00:34:34,800 >> Nú, hvernig gera þú fá aðgang raun að upplýsingar? 749 00:34:34,800 --> 00:34:38,239 Jæja, með skipunum eða fyrirspurnir líkar þetta. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, UPDATE og DELETE. 751 00:34:40,199 --> 00:34:44,489 Og að mestu leyti eru þeir sem fjórir aðeins efni sem þú þarft til að 752 00:34:44,489 --> 00:34:47,370 gera eitthvað alveg öflug í vanda sett sjö. 753 00:34:47,370 --> 00:34:49,940 >> Nú aftur í dag, myndir þú raunverulega samskipti við gagnagrunn í 754 00:34:49,940 --> 00:34:52,730 svart og hvítt endastöðvar á blikkandi hvetja svona. 755 00:34:52,730 --> 00:34:56,370 Og gagnasafn sem við erum að keyra á tæki heitir MySQL, sem er 756 00:34:56,370 --> 00:34:58,560 frjáls og opinn uppspretta gagnasafn vél. 757 00:34:58,560 --> 00:35:02,240 Ef þú Google og lesa Wikipedia grein, munt þú vita að nafnið er 758 00:35:02,240 --> 00:35:05,060 smá umskipti fyrir suma útgáfur af Linux. 759 00:35:05,060 --> 00:35:10,460 Maria gagnagrunnur er í raun punga svo að tala um MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Löng saga stutt, Oracle keypti MySQL. 761 00:35:12,740 --> 00:35:13,870 Véfrétt er stór fyrirtæki. 762 00:35:13,870 --> 00:35:17,010 Fólk hefur verið áhyggjur af því að það væri ekki lengur vera alveg eins og opinn uppspretta, 763 00:35:17,010 --> 00:35:20,930 svo er þetta bara afrit af MySQL sem er enn frjáls, enn opinn uppspretta, og 764 00:35:20,930 --> 00:35:23,550 sett í Fedora Linux sjálfgefið. 765 00:35:23,550 --> 00:35:26,130 >> En þetta er góður af a sársauki í háls til að kynnast á 766 00:35:26,130 --> 00:35:27,310 gagnasafn með þessum hætti. 767 00:35:27,310 --> 00:35:30,560 Þannig að við eru í CS50 tæki frjáls opinn uppspretta tól gestur 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Bara tilviljun að það er skrifað í PHP. 770 00:35:33,940 --> 00:35:36,450 Það er enginn grundvallarmunur þörf fyrir PHP hér. 771 00:35:36,450 --> 00:35:40,090 En þetta er bara a vefur-undirstaða tól sem Við niður fyrir frjáls, sett upp í 772 00:35:40,090 --> 00:35:43,850 tækið, sem gerir okkur kleift að hafa grafísku notendaviðmóti sem 773 00:35:43,850 --> 00:35:48,610 að kanna p-setja sjö gagnagrunni með sem að búa til nýja gagnagrunna, 774 00:35:48,610 --> 00:35:51,980 segja fyrir eigin endanlega verkefnið ef þú vilt eins og, og að lokum að búa til 775 00:35:51,980 --> 00:35:55,900 dynamic vefsíður eins CS50 Fjármál sem leyfa þér að fyrirspurn gögn og 776 00:35:55,900 --> 00:35:58,140 uppfæra gögn virk. 777 00:35:58,140 --> 00:36:01,420 >> Þú ert ekki að fara að hafa til að nota bara einfalt textaskrá eða CSV. 778 00:36:01,420 --> 00:36:05,950 Þú getur í raun nota sviði gagnagrunn program þannig að þú getur keyrt meira 779 00:36:05,950 --> 00:36:10,240 háþróuð fyrirspurnir en bara að lesa gegnum allt línulega. 780 00:36:10,240 --> 00:36:14,150 >> Svo til dæmis, þetta er það sem við gefum þú út af the kassi fyrir p-setja sjö. 781 00:36:14,150 --> 00:36:18,280 This er borð með greinilega að minnsta kosti þrír dálkar, einn sem er 782 00:36:18,280 --> 00:36:21,450 notandanafn, einn sem er kjötkássa, og hinn af, sem er ID. 783 00:36:21,450 --> 00:36:26,200 >> En áhugaverður hlutur, og bara til að stríða út einn hugsun hér, notandanafn 784 00:36:26,200 --> 00:36:29,270 er væntanlega þegar einstök, ekki satt? 785 00:36:29,270 --> 00:36:31,190 Ég meina flest allir website, ef þú hafa notendanafn, þar 786 00:36:31,190 --> 00:36:32,370 getur ekki verið tvær Caesars. 787 00:36:32,370 --> 00:36:33,440 Það getur ekki verið tvær malans. 788 00:36:33,440 --> 00:36:34,950 Það getur ekki verið tvær jharvards. 789 00:36:34,950 --> 00:36:35,600 Einstaka þess. 790 00:36:35,600 --> 00:36:38,610 Annars, gera þeir vita ekki hver jharvard það er í raun. 791 00:36:38,610 --> 00:36:42,710 Svo það gæti verið hvatning fyrir líka having þriðja dálkurinn til vinstri 792 00:36:42,710 --> 00:36:46,970 það heitir ID, sem lítur út eins og tala sem er álíka einstakt? 793 00:36:46,970 --> 00:36:51,300 Mér finnst smá óþarfi til mig við fyrstu sýn. 794 00:36:51,300 --> 00:36:54,910 Af hverju gæti það verið sannfærandi að hafa ekki aðeins einstök notendanöfn, 795 00:36:54,910 --> 00:36:56,837 en einnig einstakt númer? 796 00:36:56,837 --> 00:36:59,460 >> Áhorfendur: Þeir gætu hafa Sama lykilorð. 797 00:36:59,460 --> 00:37:01,720 >> DAVID Malan: Fólk gæti hafa Sama lykilorð, viss. 798 00:37:01,720 --> 00:37:03,900 Það gæti alveg gerst. 799 00:37:03,900 --> 00:37:08,270 En ef þeir hafa þetta einstakt notandanafn, ég myndi halda því fram að það skiptir ekki 800 00:37:08,270 --> 00:37:11,630 mál, vegna þess að ef þeir slá í þeirra username, ég þarf aðeins að athuga þeirra 801 00:37:11,630 --> 00:37:15,060 lykilorð, kjötkássa þeirra stað. 802 00:37:15,060 --> 00:37:15,970 Hvers vegna í ósköpunum? 803 00:37:15,970 --> 00:37:17,950 >> Áhorfendur: Festa leita. 804 00:37:17,950 --> 00:37:18,680 >> DAVID Malan: Festa leita. 805 00:37:18,680 --> 00:37:19,548 Hvers vegna? 806 00:37:19,548 --> 00:37:21,460 >> Áhorfendur: ID er bara einn. 807 00:37:21,460 --> 00:37:24,040 >> DAVID Malan: ID er bara einn staf, eða til að vera nákvæmari, það er númer, 808 00:37:24,040 --> 00:37:26,910 svo það er sennilega 32 bitar eða eitthvað svoleiðis. 809 00:37:26,910 --> 00:37:30,270 En username, virðist Jason Upp Hirschhorn er það er tegund af 810 00:37:30,270 --> 00:37:33,900 hlægilegur langur, og það er að fara að taka mér mikið meiri tíma til band 811 00:37:33,900 --> 00:37:40,910 bera saman H-I-R-S-C-H-H-O-R-N, og ef til vill A / 0 eða eitthvað af því að til 812 00:37:40,910 --> 00:37:45,100 að líta upp Jason, í stað þess bara segja gefa mér notandi númer tvö. 813 00:37:45,100 --> 00:37:46,510 Það er 32 bita. 814 00:37:46,510 --> 00:37:48,550 Það er einn INT sem þú ert að bera saman. 815 00:37:48,550 --> 00:37:52,150 Og reyndar, það er einmitt hvers vegna gagnagrunnar hafa tilhneigingu til að tengja einstaka auðkenni til að 816 00:37:52,150 --> 00:37:53,710 raðir í þeim. 817 00:37:53,710 --> 00:37:56,280 >> Nú hvað aðrar tegundir gagna eru auk INT og virðist 818 00:37:56,280 --> 00:37:57,160 strengir svona? 819 00:37:57,160 --> 00:37:59,700 Jæja, til að vera meira viðeigandi, SQL gagnagrunna, eins og 820 00:37:59,700 --> 00:38:02,060 MySQL, hafa bleikju sviðum. 821 00:38:02,060 --> 00:38:05,320 Og char smá villandi er ekki einn char. 822 00:38:05,320 --> 00:38:10,290 A char sviði í MySQL gagnagrunninum er einn eða fleiri stafir, en það er 823 00:38:10,290 --> 00:38:11,780 föst tala af stöfum. 824 00:38:11,780 --> 00:38:15,710 >> Svo til dæmis, ef ég fer yfir til phpMyAdmin sem þú kannt að hafa þegar, eða 825 00:38:15,710 --> 00:38:21,340 brátt mun vandamál setja sjö, og ég fer að gagnagrunninum mínum, og bara til gamans, 826 00:38:21,340 --> 00:38:25,700 skulum búa til nýja töflu sem heitir prófa með aðeins tveimur dálkum. 827 00:38:25,700 --> 00:38:27,160 Ég smelltu fara. 828 00:38:27,160 --> 00:38:30,070 Og þetta mun verða nokkuð kunnugleg, sérstaklega þar sem þú tinker 829 00:38:30,070 --> 00:38:31,130 um á eigin spýtur. 830 00:38:31,130 --> 00:38:34,140 Hér gæti ég Auðkenni til að búa a nýr borð int. 831 00:38:34,140 --> 00:38:37,770 En hér er ég kannski slá notandanafnið til endurskapa að fyrr borð. 832 00:38:37,770 --> 00:38:40,700 Og eftir ég hafa a heild búnt tegundir til að velja úr. 833 00:38:40,700 --> 00:38:43,610 >> Og þetta líka er ástæðan phpMyAdmin er bara gott. 834 00:38:43,610 --> 00:38:46,770 Það er góður af sjálf-kennslu í því að þú getur bara svona benda og smella, og 835 00:38:46,770 --> 00:38:50,730 líta á listanum valmyndir, og álykta af það hvaða völd SQL gefur þér. 836 00:38:50,730 --> 00:38:54,090 >> Og reyndar, ef ég valið char, ég þá verður að tilgreina lengd, eða hvernig 837 00:38:54,090 --> 00:38:55,940 mörg gildi, hversu mörg tákn. 838 00:38:55,940 --> 00:39:00,090 Svo mjög algeng gildi eru hlutir eins og 255, en það er svolítið langt. 839 00:39:00,090 --> 00:39:02,250 Almennt er átta um notandanafn. 840 00:39:02,250 --> 00:39:03,590 En það er svolítið lítill þessa dagana. 841 00:39:03,590 --> 00:39:05,430 Þannig að þetta er hönnun ákvörðun. 842 00:39:05,430 --> 00:39:08,630 Er það 8 stafir max, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Það er í raun komið að þér. 844 00:39:09,830 --> 00:39:12,350 En char reitur er föst tala. 845 00:39:12,350 --> 00:39:16,420 Svo velja of fáir og þú ert góður af ruglaður ef þú vilt lengri notandanafn. 846 00:39:16,420 --> 00:39:19,132 Velja of margir og hvað er hæðir? 847 00:39:19,132 --> 00:39:20,820 >> Áhorfendur: [inaudible]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID Malan: Það er eyðslusamur. 849 00:39:21,620 --> 00:39:24,835 Rétt eins og í C, ef þú ert með stærri klumpur af minni en þú þarft, þú ert 850 00:39:24,835 --> 00:39:27,190 bara að sóa tíma og eyðileggjandi pláss. 851 00:39:27,190 --> 00:39:31,430 Svo sem val, þar til VARCHAR, sem leysir þetta vandamál með því að 852 00:39:31,430 --> 00:39:36,390 meðhöndla lengd ekki sem fasta lengd, en eins og hámarkslengd, og nota 853 00:39:36,390 --> 00:39:40,990 breytilegum fjölda af stafir, sem síðan hefur tilhneigingu til að nota aðeins eins mörg stafir eins og þú 854 00:39:40,990 --> 00:39:42,710 raunverulega þörf. 855 00:39:42,710 --> 00:39:43,670 Það hljómar fullkominn. 856 00:39:43,670 --> 00:39:45,640 >> Hvers vegna eigum við ekki að losna við Bleikju gögn gerð þá? 857 00:39:45,640 --> 00:39:48,500 Hvað gæti verið ókostur við nota VARCHARs, sem hljómar 858 00:39:48,500 --> 00:39:51,644 eins og það er ágætur vinna? 859 00:39:51,644 --> 00:39:52,596 Já? 860 00:39:52,596 --> 00:39:53,846 >> Áhorfendur: [inaudible]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID Malan: OK, gott. 863 00:39:57,790 --> 00:40:01,101 Þannig að ef öll gögn er það sama lengd, hvað er áhyggjuefni? 864 00:40:01,101 --> 00:40:05,250 >> Áhorfendur: Þar sem þú ert að sóa gögn með því að segja þeim öllum. 865 00:40:05,250 --> 00:40:09,060 >> DAVID Malan: Svo ef öll gögn er sömu lengd, þó, myndi ég halda því fram 866 00:40:09,060 --> 00:40:12,300 að tilgreina hámarkslengd á varchar er ekkert öðruvísi 867 00:40:12,300 --> 00:40:16,070 tilgreina fasta lengd á char ef þú veist að tala fyrirfram. 868 00:40:16,070 --> 00:40:19,500 En það er örugglega, og ég mun svoleiðis þykkni frá því svari að veruleika 869 00:40:19,500 --> 00:40:22,610 að það er enn max, sem gæti verið pirrandi, sérstaklega ef þú 870 00:40:22,610 --> 00:40:25,920 fundur nafn einstaklings sem er óvenju lengi sem þú hefur ekki 871 00:40:25,920 --> 00:40:26,860 ráð. 872 00:40:26,860 --> 00:40:31,420 Og það er líka aðeins minna duglegur að í raun að leita á VARCHARs sem 873 00:40:31,420 --> 00:40:35,620 öfugt við leita stafir, einkum fyrir langa töflur sem hafa hellingur og 874 00:40:35,620 --> 00:40:36,510 hellingur af gögnum. 875 00:40:36,510 --> 00:40:40,060 Svo hér líka, áherslusviða er aftur engin augljós kostur. 876 00:40:40,060 --> 00:40:42,870 >> Svo bara til að gefa þér tilfinningu um annað gögn tegundir sem gæti haft áhuga á 877 00:40:42,870 --> 00:40:45,400 hvort sem er til p-setja sjö eða í framtíðin, það er INT. 878 00:40:45,400 --> 00:40:47,270 Það er BIGINT, sem er eins lengi lengi. 879 00:40:47,270 --> 00:40:48,880 Það hefur tilhneigingu til að vera 64 bita. 880 00:40:48,880 --> 00:40:51,640 Það er aukastafa, sem þú munt sjá í vandamálið sett, sem er mun 881 00:40:51,640 --> 00:40:55,300 hreinni svar við þeim vandamálum sem við fundur með fljóta og fljótandi 882 00:40:55,300 --> 00:40:55,980 benda imprecision. 883 00:40:55,980 --> 00:40:57,390 Og þá er það DATETIME. 884 00:40:57,390 --> 00:41:01,530 Það er bókstaflega a gögn tegund sem hefur að líta út eins og ár, mánuð, dag, 885 00:41:01,530 --> 00:41:03,730 og klukkutíma, mínútu, og sekúndu. 886 00:41:03,730 --> 00:41:07,470 >> En SQL gagnagrunna hafa einnig hlutir sem við munum kalla stuðla. 887 00:41:07,470 --> 00:41:11,630 Og vísitala er eitthvað sem þú tilgreina hvenær kreatín the borð til 888 00:41:11,630 --> 00:41:15,720 gera leit og aðrar aðgerðir skilvirkari. 889 00:41:15,720 --> 00:41:18,550 Sérstaklega, það er eitthvað sem kallast Aðal vísitölu sem þú gætir 890 00:41:18,550 --> 00:41:19,440 lýsa á eftirfarandi hátt. 891 00:41:19,440 --> 00:41:22,330 >> Við gerðum þetta fyrir þig með því notandi borð við gefum þér. 892 00:41:22,330 --> 00:41:26,160 En taka ef ég væri með höndunum skemmtun notenda töflu hér að gefa 893 00:41:26,160 --> 00:41:27,110 það nafn notenda. 894 00:41:27,110 --> 00:41:28,125 Ég er þegar ID. 895 00:41:28,125 --> 00:41:29,330 Ég tilgreint INT. 896 00:41:29,330 --> 00:41:32,000 Ég tilgreint notendanafn með hámark 32 stafir. 897 00:41:32,000 --> 00:41:36,140 En ef við höldum hreyfast í þessu nokkuð breiður glugga, eftir því að það er 898 00:41:36,140 --> 00:41:38,260 fullt af öðrum hlutum sem ég get tilgreinir. 899 00:41:38,260 --> 00:41:40,950 >> Einn, ég get tilgreina eiginleika eins, þú veist hvað þetta 900 00:41:40,950 --> 00:41:42,190 INT ætti að vera óundirritaður. 901 00:41:42,190 --> 00:41:45,510 Ég vil ekki neikvæðar tölur, þannig að við skulum gera það án undirritunar. 902 00:41:45,510 --> 00:41:48,660 Null er ekki viðeigandi hér vegna Ég vil öllum notendum að 903 00:41:48,660 --> 00:41:49,640 hafa einstakt númer. 904 00:41:49,640 --> 00:41:50,830 Ég vil ekki það að vera núll. 905 00:41:50,830 --> 00:41:52,330 >> En þetta er áhugavert. 906 00:41:52,330 --> 00:41:57,780 Ég get tilgreina að ID er annaðhvort aðal lykill af þessum gagnagrunni, eða það er 907 00:41:57,780 --> 00:42:00,620 einstakt, eða það er verðtryggð, eða fullum texta. 908 00:42:00,620 --> 00:42:05,630 Svo fyrir tilgangi í dag, löng saga stutt, PRIMARY þýðir að það skuli 909 00:42:05,630 --> 00:42:10,570 vera bæði hugmyndalega og tæknilega svæðið sem við notum til að einstaklega 910 00:42:10,570 --> 00:42:12,140 bera kennsl á notendur. 911 00:42:12,140 --> 00:42:16,140 >> Svo þegar við horfum upp notendur, þetta er tegund af loforð um að líta þær upp að mestu af 912 00:42:16,140 --> 00:42:17,370 sem einstakt auðkenni. 913 00:42:17,370 --> 00:42:21,930 Og gagnasafn mun tryggja að ef þú hafa a notandi númer 3, þú getur ekki 914 00:42:21,930 --> 00:42:25,400 líkamlega setja annan notanda með sama númer 3. 915 00:42:25,400 --> 00:42:28,380 Gagnagrunnurinn mun bara neita til að vista breytingarnar. 916 00:42:28,380 --> 00:42:32,310 Sem er gott, því þú getur vernda sjálfur frá þér. sjálf 917 00:42:32,310 --> 00:42:34,270 >> Val, fyrir notandanafn. 918 00:42:34,270 --> 00:42:37,670 Svo seinni röðinni, muna, er notendanafnið sviði. 919 00:42:37,670 --> 00:42:41,860 Svo seinni röðin hér er notendanafnið, eins og við gerðum á lengst til vinstri þar. 920 00:42:41,860 --> 00:42:43,940 >> Svo hvað gæti ég vil að tilgreina? 921 00:42:43,940 --> 00:42:47,840 Ég er ekki leyft samkvæmt SQL, að tilgreina tvo aðal lykla. 922 00:42:47,840 --> 00:42:50,750 hægt að tilgreina sameiginlega takka þar sem þú líta á báðum sviðum, en þeir geta ekki 923 00:42:50,750 --> 00:42:52,260 sig vera aðal lykla. 924 00:42:52,260 --> 00:42:54,750 Svo er það út af spurningunni. 925 00:42:54,750 --> 00:42:56,040 Svo hver gæti ég vil velja? 926 00:42:56,040 --> 00:42:59,710 >> Jæja, UNIQUE er svipað í anda upp á aðal lykill þar sem þú tilgreinir þetta 927 00:42:59,710 --> 00:43:03,570 sviði skal vera einstakt, en það er ekki að fara að vera einn 928 00:43:03,570 --> 00:43:04,410 Ég nota allan tímann. 929 00:43:04,410 --> 00:43:08,450 Og við erum ekki að fara að nota þessa einu allur tími til hvers aftur? 930 00:43:08,450 --> 00:43:10,490 Það er hægara hugsanlega ef það er langur notandanafn. 931 00:43:10,490 --> 00:43:11,740 Það er bara tímasóun. 932 00:43:11,740 --> 00:43:16,140 >> INDEX, á meðan, tilgreinir að það er ekki að fara að vera einstakt, en ég vil 933 00:43:16,140 --> 00:43:19,470 þig að vinna galdur undir hlutanum hetta til að gera það hraðar fyrir mig að 934 00:43:19,470 --> 00:43:21,420 leita á þessu sviði. 935 00:43:21,420 --> 00:43:23,320 Þannig að þetta er sennilega ekki viðeigandi hér. 936 00:43:23,320 --> 00:43:26,500 Fyrir username, myndi ég halda því fram að UNIQUE er gott svar. 937 00:43:26,500 --> 00:43:31,200 En geri ráð fyrir að við gert notendum meira áhugavert en bara notendanöfn, 938 00:43:31,200 --> 00:43:32,430 kjötkássa, og kennitölur. 939 00:43:32,430 --> 00:43:33,860 Hvað ef við gaf fólki fullt nafn? 940 00:43:33,860 --> 00:43:37,700 Hvað ef við gaf þeim heimilisföng og önnur gögn um þá? 941 00:43:37,700 --> 00:43:43,360 >> Jæja, ef þú tilgreinir að dálkur í Gagnagrunnurinn er verðtryggð, sem þýðir að 942 00:43:43,360 --> 00:43:47,730 MySQL, eða Oracle, eða hvað gagnagrunn þú ert að nota, ætti að vinna galdur hennar 943 00:43:47,730 --> 00:43:51,300 og nota einhvers konar ímynda gögn uppbyggingu eins og tré, eða trie, eða A 944 00:43:51,300 --> 00:43:55,940 kjötkássa borð, eða eitthvað til að tryggja að þegar þú að leita að gögnum með 945 00:43:55,940 --> 00:43:58,150 velja á þessi ákveðnu sviði - 946 00:43:58,150 --> 00:44:01,310 eins sýna mér alla sem býr á Oxford Street. 947 00:44:01,310 --> 00:44:02,540 A fyrirspurn svona. 948 00:44:02,540 --> 00:44:06,250 Ef þú hefur tilgreint fyrirfram að þú vilt nota vísitölu á því sviði, sem 949 00:44:06,250 --> 00:44:09,050 leit verður miklu, miklu hraðar. 950 00:44:09,050 --> 00:44:12,090 >> Ef þú tilgreinir ekki vísitölu, besta þú getur gert er línuleg leit ef 951 00:44:12,090 --> 00:44:13,030 það er ekki flokkað. 952 00:44:13,030 --> 00:44:16,220 En ef þú tilgreinir vísitölu, the sviði fólk sem gerði gagnagrunninn - 953 00:44:16,220 --> 00:44:19,340 fólk eins og þú sem nú vita tré og reynir og kjötkássa matskeið - 954 00:44:19,340 --> 00:44:23,220 sjálfkrafa byggja slíka gögn uppbygging í vinnsluminni til að tryggja að 955 00:44:23,220 --> 00:44:26,050 þeim sem leitar er mun hraðvirkari. 956 00:44:26,050 --> 00:44:29,660 >> Fulltext meðan er svipað í anda, en gerir þér kleift að gera algildisstaf 957 00:44:29,660 --> 00:44:35,480 leit, eins og sýna mér alla sem býr á götum sem byrja á 958 00:44:35,480 --> 00:44:36,960 bréf O einhverri ástæðu. 959 00:44:36,960 --> 00:44:38,850 Þú getur gert algildisstaf leit svona. 960 00:44:38,850 --> 00:44:45,880 Eða, meira sannfærandi hluti eins sýningu mig allir sem hafa orðið - 961 00:44:45,880 --> 00:44:49,400 sýna mér alla hét byrjar með sérstakri staf. 962 00:44:49,400 --> 00:44:51,880 Hægt er að leita að leitarorðum á þennan hátt. 963 00:44:51,880 --> 00:44:52,630 Allt í lagi. 964 00:44:52,630 --> 00:44:55,760 >> Svo, hönnun tækifæri það hugsanlega. 965 00:44:55,760 --> 00:44:57,740 Það eru aðrir sem ég ætla veifa höndum mínum á. 966 00:44:57,740 --> 00:45:00,530 Það kemur í ljós að þú getur haft mismunandi geymsla vél. 967 00:45:00,530 --> 00:45:04,390 Og þetta er meira Bogagöng en við þurfum vissulega fyrir Heimadæmi sjö. 968 00:45:04,390 --> 00:45:06,920 Sjálfgefið, eruð þið að nota eitthvað sem kallast InnoDB. 969 00:45:06,920 --> 00:45:10,910 Þú munt sjá minnst á þetta einhvers staðar í tengi phpMyAdmin er líklegast. 970 00:45:10,910 --> 00:45:14,130 En veit að það eru önnur hönnun ákvarðanir sem eru um hugsanlega 971 00:45:14,130 --> 00:45:18,030 vextir koma lokaverkefni ef þú gerir eitthvað vefur-undirstaða. 972 00:45:18,030 --> 00:45:19,330 >> En við skulum gera þetta. 973 00:45:19,330 --> 00:45:23,130 Við skulum fara á undan og setja þetta á skjár sem beitu fyrir sögu 974 00:45:23,130 --> 00:45:26,330 felur þig, herbergisfélaga, og glas af mjólk. 975 00:45:26,330 --> 00:45:28,240 Skulum taka tvö mínútu eða svo brjótast hér. 976 00:45:28,240 --> 00:45:31,060 Og ef þú getur kyrr, við skulum koma aftur, líta aðeins meira í SQL, og 977 00:45:31,060 --> 00:45:35,160 þá hluti af JavaScript og p-setja átta í huga. 978 00:45:35,160 --> 00:45:36,120 >> Allt í lagi. 979 00:45:36,120 --> 00:45:40,420 Svo skulum við fá þig til að hugsa um að horn mál sem getur mjög auðveldlega komið upp 980 00:45:40,420 --> 00:45:44,240 í tengslum við að nota gagnagrunn, eða hreinskilnislega, jafnvel með raunverulega hluti heimsins 981 00:45:44,240 --> 00:45:46,280 eins og hraðbankar að fá peninga. 982 00:45:46,280 --> 00:45:47,640 Svo hér er ísskápur. 983 00:45:47,640 --> 00:45:50,040 Segjum að þú hafir fengið einn of í dorm eða húsið þitt. 984 00:45:50,040 --> 00:45:54,990 Og þú hefur fengið einn herbergisfélagi og báðar þú vilt virkilega mjólk til dæmis. 985 00:45:54,990 --> 00:45:57,210 >> Svo þú kemur heim úr bekknum í einn dag. 986 00:45:57,210 --> 00:45:58,490 Hann eða hún er ekki enn aftur. 987 00:45:58,490 --> 00:45:59,180 Þú opnar ísskápinn. 988 00:45:59,180 --> 00:46:00,870 Þú vilt virkilega stórt glas af mjólk. 989 00:46:00,870 --> 00:46:01,820 Það er engin mjólk. 990 00:46:01,820 --> 00:46:02,920 Og hvað gerir þú? 991 00:46:02,920 --> 00:46:03,840 Þú lokar ísskápinn. 992 00:46:03,840 --> 00:46:04,670 Þú grípa lyklana. 993 00:46:04,670 --> 00:46:05,930 Þú ferð út að torginu. 994 00:46:05,930 --> 00:46:09,240 Og þú færð í samræmi við CVS hjá þeim sjálf stöðva atriði, sem alltaf 995 00:46:09,240 --> 00:46:11,180 tekið lengri tíma en raun hafa Cashiers. 996 00:46:11,180 --> 00:46:11,820 Einhvern veginn. 997 00:46:11,820 --> 00:46:15,490 >> Svo, á meðan, punktur punktur punktur, þinn herbergisfélagi kemur heim og hann eða hún 998 00:46:15,490 --> 00:46:17,440 álíka hefur hankering fyrir mjólk. 999 00:46:17,440 --> 00:46:20,380 Svo hann eða hún opnar ísskápinn, lítur inni, og ó, fjandinn. 1000 00:46:20,380 --> 00:46:21,160 Engin mjólk. 1001 00:46:21,160 --> 00:46:24,750 Svo hann eða hún höfuð út, gerist til að fara að hinn CVS, sem var aðeins 1002 00:46:24,750 --> 00:46:27,900 húsaröð burt af einhverjum ástæðum, og hann eða hún fær í línu til að kaupa mjólk. 1003 00:46:27,900 --> 00:46:30,480 >> Á meðan, kemur þú heim, hann eða hún kemur heim, og hvað gera 1004 00:46:30,480 --> 00:46:31,980 þú þarft að lokum? 1005 00:46:31,980 --> 00:46:33,080 Tvisvar sinnum eins mikið mjólk. 1006 00:46:33,080 --> 00:46:34,620 En þú í raun ekki eins og mjólk það mikið. 1007 00:46:34,620 --> 00:46:37,300 Svo nú þú ert svo mikla mjólk að nú einn af þeim er bara að fara að fara súr 1008 00:46:37,300 --> 00:46:37,820 endanum. 1009 00:46:37,820 --> 00:46:39,370 Þannig að þetta er mjög slæmt vandamál. 1010 00:46:39,370 --> 00:46:39,900 Ekki satt? 1011 00:46:39,900 --> 00:46:41,990 >> Svo hvað hefur gerst? 1012 00:46:41,990 --> 00:46:44,810 Svo í grundvallaratriðum, þetta er góður af fáránlega dæmi. 1013 00:46:44,810 --> 00:46:48,580 En undir hetta, hvað við höfum haft gerast hér er bæði þig köflóttur 1014 00:46:48,580 --> 00:46:52,390 ástand suma stykki af minni, kæli. 1015 00:46:52,390 --> 00:46:54,420 Bæði þig köflóttur ástand af einhverju breyta. 1016 00:46:54,420 --> 00:46:57,360 Þú bæði dró niðurstöðu sem þið lékuð þá á. 1017 00:46:57,360 --> 00:47:01,420 En því miður, en herbergisfélagi þinn var í búð, ástand sem 1018 00:47:01,420 --> 00:47:05,670 breytu breytt, hann eða hún kom til baka og nú vill breyta stöðu, en 1019 00:47:05,670 --> 00:47:07,480 það er þegar verið breytt á honum eða henni. 1020 00:47:07,480 --> 00:47:11,120 Og auðvitað, hann eða hún myndi ekki hafa farið út í búð ef þeir vissu 1021 00:47:11,120 --> 00:47:13,010 sem þú varst nú þegar á leiðinni. 1022 00:47:13,010 --> 00:47:16,430 >> Svo í hinum raunverulega heimi, hvernig gastu forðast þetta vandamál, hrokafullur þú hafa 1023 00:47:16,430 --> 00:47:18,940 ísskápur, þú hafa a herbergisfélaga, og þú vilt í raun mjólk? 1024 00:47:18,940 --> 00:47:19,760 >> Áhorfendur: Samskipti. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID Malan: Samskipti. 1026 00:47:20,580 --> 00:47:21,160 OK. 1027 00:47:21,160 --> 00:47:22,500 En hvernig getur þú tjáð? 1028 00:47:22,500 --> 00:47:23,990 >> Áhorfendur: Skildu eftir miða. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID Malan: Skildu eftir miða, ekki satt? 1030 00:47:25,480 --> 00:47:28,025 Fara alltaf í huga, að aðdáendur af sýningunni. 1031 00:47:28,025 --> 00:47:31,580 Allt í lagi, svo alltaf eftir minnismiða, eða setja sannarlega eins og hengilás eða eitthvað 1032 00:47:31,580 --> 00:47:35,440 á kæli sem heldur þinn herbergisfélagi frá eftirlitsmaður stöðu 1033 00:47:35,440 --> 00:47:36,540 sem breytu. 1034 00:47:36,540 --> 00:47:40,800 >> Nú, hvers vegna gæti þetta verið germane til Heimadæmi sjö eða að hraðbankar. 1035 00:47:40,800 --> 00:47:46,780 Jæja, ímynda sér heiminn í hraðbanka þar þú might vera fær til að fara upp á hraðbanka 1036 00:47:46,780 --> 00:47:48,920 vél hér, og annar ATM hér. 1037 00:47:48,920 --> 00:47:50,680 Og þetta gerist nokkuð oft. 1038 00:47:50,680 --> 00:47:54,150 Og geri ráð fyrir að þú átti tvo hraðbanka kort, sem er hægt að fá. 1039 00:47:54,150 --> 00:47:57,420 Og þú skráir þig inn í báðum vélum í raun samtímis, vonandi 1040 00:47:57,420 --> 00:47:58,660 á meðan enginn er að leita. 1041 00:47:58,660 --> 00:48:01,260 Og þá þú slærð inn PIN u.þ.b. á sama tíma. 1042 00:48:01,260 --> 00:48:06,280 Og þá þú gera a jafnvægi fyrirspurn að sjá hversu mikið fé þú hefur. 1043 00:48:06,280 --> 00:48:08,920 Og við skulum segja að þú hefur 100 $ eftir í reikningi þínum. 1044 00:48:08,920 --> 00:48:13,310 Svo í raun samtímis, þú segja einn, núll, núll, slá. 1045 00:48:13,310 --> 00:48:16,000 Og þú færð vonandi aftur peninga. 1046 00:48:16,000 --> 00:48:18,440 >> En hversu mikið fé þú might fá til baka? 1047 00:48:18,440 --> 00:48:21,710 Nú tölvur í lok dagsins, sérstaklega ef þeir eru að tala við 1048 00:48:21,710 --> 00:48:27,360 netþjónum, ekki endilega að gera hlutina í þeirri röð sem er gert ráð fyrir. 1049 00:48:27,360 --> 00:48:30,860 >> Svo gera ráð fyrir því sem gerist, vegna þess að hvað net hraði málum þar 1050 00:48:30,860 --> 00:48:34,530 eru, eða CPU mál eru, eða eitthvað svoleiðis, ætla að 1051 00:48:34,530 --> 00:48:38,530 Fyrsta ATM tékka jafnvægið og sér, ó, þessi manneskja hefur 100 $. 1052 00:48:38,530 --> 00:48:41,840 En þá fær annars hugar því kannski afrit er að gerast og svo er það 1053 00:48:41,840 --> 00:48:42,500 hægja niður. 1054 00:48:42,500 --> 00:48:45,080 Eða kannski á meðan að haka, netið tengingu fékk svolítið hægar vegna 1055 00:48:45,080 --> 00:48:45,910 þetta gerist bara. 1056 00:48:45,910 --> 00:48:47,100 Þeir eru líkamlegt tæki. 1057 00:48:47,100 --> 00:48:49,330 Svo á meðan, annað ATM er spyrja sömu spurningu. 1058 00:48:49,330 --> 00:48:53,030 Hversu mikið fé er Davíð með? 100 $ er svarið. 1059 00:48:53,030 --> 00:48:58,930 En vegna þess að fyrstu ATM hefur ekki enn sendi skilaboðin draga $ 100, bæði 1060 00:48:58,930 --> 00:49:03,000 Hraðbankar hafa skoðað gröfina bankans, sjá að það er $ 100 þar, og nú 1061 00:49:03,000 --> 00:49:07,160 báðir vél hugsanlega eru fara að spýta út svarið. 1062 00:49:07,160 --> 00:49:12,240 >> Nú, þetta er frábært fyrir þig í einhverjum skilningi ef það sem bankinn gerir að lokum 1063 00:49:12,240 --> 00:49:17,200 er að breyta upphæð til mínus 100 með setja breytu jöfn þinn 1064 00:49:17,200 --> 00:49:21,570 banki reikningur jafnt og 0, öfugt að gera mínus 100.. 1065 00:49:21,570 --> 00:49:24,410 Nú í versta tilfelli fyrir bankann - 1066 00:49:24,410 --> 00:49:27,470 eða í besta bankanum, á meðan, þeir gefa þér $ 200, og 1067 00:49:27,470 --> 00:49:31,690 bankareikning þinn sýnir nú neikvæður $ 100, sem er í raun ekki 1068 00:49:31,690 --> 00:49:32,950 gagnast þér yfirleitt. 1069 00:49:32,950 --> 00:49:36,500 En punkturinn er að þetta mót Skilyrði fyrir tvo herbergisfélaga fá 1070 00:49:36,500 --> 00:49:40,660 mjólk, eða fyrir tveimur hraðbankar að reyna að fá peninga og breyta stöðu gröfina 1071 00:49:40,660 --> 00:49:44,510 á sama tíma eru til staðar allir þegar þú ert með gagnagrunni. 1072 00:49:44,510 --> 00:49:48,290 >> Nú í Heimadæmi sjö, þetta mál myndast í þeim skilningi að ef þú kaupir 1073 00:49:48,290 --> 00:49:52,110 Hlutdeild Facebook lager, og þá fyrir dæmi þú kaupa annan hlut 1074 00:49:52,110 --> 00:49:55,160 Facebook birgðir, þú þarft að gera ákvörðun sem forritari. 1075 00:49:55,160 --> 00:49:58,710 Í því skyni að ákveða hvernig á að uppfæra gagnasafn, líkur ert þú ert að fara að 1076 00:49:58,710 --> 00:50:02,250 hafa eina röð fyrir þeim stofni, og þetta er ein leið til að framkvæma það. 1077 00:50:02,250 --> 00:50:06,640 Og þú ert að fara að hafa einn hlut FB, sem er auðkenni fyrir verðbréf þeirra 1078 00:50:06,640 --> 00:50:10,120 fyrir þetta notandanafn, eða þennan notanda ID, Auðkenni. 1079 00:50:10,120 --> 00:50:12,340 >> En sama sagan getur gerst hér. 1080 00:50:12,340 --> 00:50:15,800 Ef þú gera a velja í SQL, eins og þú munt sjá í Heimadæmi sjö þegar þú sérð, 1081 00:50:15,800 --> 00:50:18,460 ó, David hefur einn hlut af Facebook lager. 1082 00:50:18,460 --> 00:50:23,240 Láta mig breyta nú þetta að vera tveir hlutir, vegna þess að hann vill kaupa 1083 00:50:23,240 --> 00:50:24,120 Seinni hlut. 1084 00:50:24,120 --> 00:50:27,860 En geri ráð fyrir Davíð í raun átti tvo vafragluggum opna, eða gera ráð fyrir að 1085 00:50:27,860 --> 00:50:32,150 það er sameiginlegt reikningur með tveimur mökum, og þau bæði eru að reyna að framkvæma 1086 00:50:32,150 --> 00:50:36,770 sama aðgerð, þar líka, hugsanlegt að ákvörðun um að vera 1087 00:50:36,770 --> 00:50:39,670 gerðar byggðar á fyrri ástand í heiminum - 1088 00:50:39,670 --> 00:50:41,290 reikningurinn hefur einn hlut - 1089 00:50:41,290 --> 00:50:45,630 og bæði fólk, eða bæði netþjóna, nú reyna að segja hækka það til tveggja hluta. 1090 00:50:45,630 --> 00:50:49,020 En í þessu tilfelli, þú might hafa innheimt mig peninga fyrir bæði hlutabréf, en 1091 00:50:49,020 --> 00:50:50,830 hækkar bara að eitt sinn. 1092 00:50:50,830 --> 00:50:54,730 >> Svo í stuttu máli, grundvallaratriði vandamál hér, eins og með brandari um að fara á 1093 00:50:54,730 --> 00:50:58,750 athugið, eða setja hengilás á það, er ef tvær manneskjur, eða tveir þræðir - 1094 00:50:58,750 --> 00:50:59,930 hugsa til baka að klóra - 1095 00:50:59,930 --> 00:51:03,220 getur athugað stöðu einhverju breyta og þá reyna að breyta þá breytu, 1096 00:51:03,220 --> 00:51:07,950 en þessir tveir hlutir gerist ekki á sama tíma en getur orðið rofin 1097 00:51:07,950 --> 00:51:11,500 af öðrum hlutum að gerast, geta gögn komast í mjög undarlegt ástand. 1098 00:51:11,500 --> 00:51:15,450 Og þú getur notið góðs eða þú getur þjást í skilningi peninga dæmi. 1099 00:51:15,450 --> 00:51:18,110 >> Svo í Heimadæmi sjö, gefa við þig þetta ein lína af kóða, sem lengi 1100 00:51:18,110 --> 00:51:21,000 saga stutt, leysa þetta vandamál í MySQL. 1101 00:51:21,000 --> 00:51:24,950 Þetta mjög lengi kennsla sem ekki jafnvel passa á eina línan á 1102 00:51:24,950 --> 00:51:30,370 skjár hér tryggir að þinn gangur er það er kallað lotukerfinu. 1103 00:51:30,370 --> 00:51:33,720 Það gerist allt í einu, eða það gerist ekki á öllum. 1104 00:51:33,720 --> 00:51:37,530 Þetta mjög lengi setningu geta ekki fá hlé hluta. 1105 00:51:37,530 --> 00:51:39,840 >> Og hvað það gerir er bókstaflega hvað það segir. 1106 00:51:39,840 --> 00:51:44,200 Settu inn einhvern töflunni eftirfarandi þremur sviðum þá sem sérstaka gildi, 1107 00:51:44,200 --> 00:51:47,280 en á afrit lykill, ekki gera að setja inn. 1108 00:51:47,280 --> 00:51:48,280 Gera uppfærslu. 1109 00:51:48,280 --> 00:51:52,450 Svo er þetta eins og að gera a velja og Setja svo að segja á sama tíma. 1110 00:51:52,450 --> 00:51:55,150 Og hvað er lykillinn sem er líklega var vísað til hér? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Það kemur í ljós, og þú munt sjá þetta í Heimadæmi sérstakur sjö, vegna 1113 00:52:01,380 --> 00:52:06,040 við höfum lýst það að vera ótvíræða á þessari tilteknu töflu þannig að 1114 00:52:06,040 --> 00:52:08,480 þú getur ekki haft margar raðir fyrir sama notandi með 1115 00:52:08,480 --> 00:52:10,150 Sama eyri birgðir tákn - 1116 00:52:10,150 --> 00:52:13,780 í þessu dæmi hér, DVN.V er kjánalegt eyri birgðir að við 1117 00:52:13,780 --> 00:52:14,980 vísa til í sérstakur. 1118 00:52:14,980 --> 00:52:17,860 Vegna þess að við höfum lýst yfir að það að vera einstakt, hvað þetta þýðir er að ef þú 1119 00:52:17,860 --> 00:52:23,580 reyna að setja inn afrit röð, þú ert staðinn að fara að uppfæra hana án 1120 00:52:23,580 --> 00:52:27,020 einhver annar að hafa tækifæri til að breyta the ástand af the veröld heldur. 1121 00:52:27,020 --> 00:52:29,400 Svo í stuttu máli, þetta tryggir hlutirnir eru lotukerfinu. 1122 00:52:29,400 --> 00:52:32,530 >> Almennt þó, gagnagrunna eins og MySQL - 1123 00:52:32,530 --> 00:52:35,460 og þú þarft ekki þennan möguleika fyrir p-setja sjö, en hafðu það í huga að 1124 00:52:35,460 --> 00:52:36,200 framtíðina - 1125 00:52:36,200 --> 00:52:38,870 styðja það sem kallast viðskipti, þar sem þú getur sagt 1126 00:52:38,870 --> 00:52:40,990 START Viðskiptakostnaður bókstaflega. 1127 00:52:40,990 --> 00:52:43,270 Þú getur þá framkvæma tveir SQL staðhæfing. 1128 00:52:43,270 --> 00:52:45,710 Og SQL staðhæfing, eins og þú munt sjá í p-setja sjö, lítur svolítið 1129 00:52:45,710 --> 00:52:46,750 eitthvað eins og this. 1130 00:52:46,750 --> 00:52:48,820 Uppfæra töflunni nefnist reikning. 1131 00:52:48,820 --> 00:52:52,550 Setja Dálkurinn jöfn hvað Dálkurinn nú 1132 00:52:52,550 --> 00:52:57,280 er mínus 1000 þar sem númerið númer reiknings, eins þess að kenni, 1133 00:52:57,280 --> 00:53:00,830 jafnt og 2, og síðan uppfæra reikningur punktur punktur punktur. 1134 00:53:00,830 --> 00:53:04,350 >> Svo í skilmálum leikmaður er, hvað gera þessir tveir fyrirspurnir virðast vera að gera í 1135 00:53:04,350 --> 00:53:05,840 raunverulega heimi tilfinningu bankastarfsemi? 1136 00:53:05,840 --> 00:53:07,440 >> Áhorfendur: Flytja til sparnaðar. 1137 00:53:07,440 --> 00:53:08,020 >> DAVID Malan: Einmitt. 1138 00:53:08,020 --> 00:53:10,470 Flytja fé frá einum til annara. 1139 00:53:10,470 --> 00:53:14,400 Og þetta er annað dæmi þar sem þú raunverulega vilja þessir tveir hlutir að gerast 1140 00:53:14,400 --> 00:53:15,570 eða ekki gerast. 1141 00:53:15,570 --> 00:53:18,880 Þú vilt ekki eitthvað til að fá í miðju þeirra og hugsanlega skipta upp 1142 00:53:18,880 --> 00:53:22,220 stærðfræði, eða sóða hversu mikið fé sem þú hefur, eða hversu mikið 1143 00:53:22,220 --> 00:53:23,170 peningar sem bankinn hefur. 1144 00:53:23,170 --> 00:53:26,890 Svo er það virkilega gott um viðskipti í MySQL er þessi, og 1145 00:53:26,890 --> 00:53:30,160 gagnagrunna almennt, er að þeir og snjallt fólk sem hefur innleitt 1146 00:53:30,160 --> 00:53:33,670 Þessir eiginleikar reikna út hvernig á að gera viss um að báðir þessir hlutir gerast 1147 00:53:33,670 --> 00:53:35,120 eða alls ekki. 1148 00:53:35,120 --> 00:53:38,580 >> Og ef þú ert virkilega að aspirín að gera A website þessi er notuð af fólki á 1149 00:53:38,580 --> 00:53:41,490 Campus, fólk í hinum raunverulega heimi, að gera eitthvað í ræsingu skilningi, 1150 00:53:41,490 --> 00:53:43,300 Þetta eru tegundir af hönnun ákvarðanir sem 1151 00:53:43,300 --> 00:53:45,020 verða alltaf svo mikilvægt. 1152 00:53:45,020 --> 00:53:48,240 Annars, byrja þú að missa gögn, missa notendur, eða í versta tilfelli sem 1153 00:53:48,240 --> 00:53:51,800 við höfum séð hér, hugsanlega tapa peningum. 1154 00:53:51,800 --> 00:53:56,180 Svo aftur, meira um það í Heimadæmi sjö, sem og ef til vill fyrir suma af 1155 00:53:56,180 --> 00:53:57,530 þú í lokaverkefnum. 1156 00:53:57,530 --> 00:54:01,870 >> Svo skulum breyta þessi mynd sem við höfðum í smá stund síðan bara í einn vegur. 1157 00:54:01,870 --> 00:54:04,070 Svo láta mig sjá í raun ef ég get - 1158 00:54:04,070 --> 00:54:06,030 Nei, það er farið. 1159 00:54:06,030 --> 00:54:06,690 Það er það. 1160 00:54:06,690 --> 00:54:09,020 >> Svo þetta er þar við fórum síðast. 1161 00:54:09,020 --> 00:54:12,390 Og það kemur í ljós að við erum að fara að henda eitt í viðbót til að blanda hér - 1162 00:54:12,390 --> 00:54:14,510 tungumál sem heitir JavaScript. 1163 00:54:14,510 --> 00:54:18,060 Svo JavaScript passar í raun inn í þetta stykki - 1164 00:54:18,060 --> 00:54:22,086 og ég vissi ekki alveg fara nóg pláss, þannig að þetta er nú ekki að skala. 1165 00:54:22,086 --> 00:54:23,900 OK, þetta er virkilega sorglegt. 1166 00:54:23,900 --> 00:54:27,075 OK, svo er það JavaScript. 1167 00:54:27,075 --> 00:54:27,340 Allt í lagi. 1168 00:54:27,340 --> 00:54:28,760 Ég er í raun að gera það disservice. 1169 00:54:28,760 --> 00:54:29,390 Allt í lagi. 1170 00:54:29,390 --> 00:54:34,790 >> Svo er JavaScript annað forritun tungumál, og síðast okkar, ef það hjálpar 1171 00:54:34,790 --> 00:54:37,770 fullvissa um að það er ekki mikið meira af brunahana hér. 1172 00:54:37,770 --> 00:54:41,100 Svo er einnig JavaScript túlka tungumál, sem þýðir að þú ert ekki 1173 00:54:41,100 --> 00:54:42,670 þýða það inn núllum og sjálfur. 1174 00:54:42,670 --> 00:54:43,690 Þú keyrir bara það. 1175 00:54:43,690 --> 00:54:47,680 En hvað er í grundvallaratriðum öðruvísi með JavaScript yfirleitt er að þú 1176 00:54:47,680 --> 00:54:49,815 ekki keyra það á vefþjóninum þínum. 1177 00:54:49,815 --> 00:54:52,570 Það skiptir ekki fá að keyra í tæki í sjálfu sér. 1178 00:54:52,570 --> 00:54:57,490 Frekar, það verður sótt af notanda gegnum HTTP inn í vafrann sinn - 1179 00:54:57,490 --> 00:55:00,260 Króm, Safari, Internet Explorer, Firefox, hvað - 1180 00:55:00,260 --> 00:55:03,860 og það er vafrinn sem keyrir þetta einkum forritunarmál. 1181 00:55:03,860 --> 00:55:08,000 >> Svo til að vera skýr, PHP svona langt hefur verið ýmist framkvæmd á the stjórn lína í 1182 00:55:08,000 --> 00:55:11,290 svart og hvítt glugga okkar, á netþjóni eins og tæki, tölvu 1183 00:55:11,290 --> 00:55:14,490 eins og tæki, eða það hefur verið keyrð af vefþjóni 1184 00:55:14,490 --> 00:55:15,860 gangi á tölvunni. 1185 00:55:15,860 --> 00:55:20,490 En þemað hér er að PHP svona langt hefur verið framkvæmd framreiðslumaður-hlið, svo 1186 00:55:20,490 --> 00:55:24,820 notandinn og vafra notandans aldrei sér línu af PHP kóða. 1187 00:55:24,820 --> 00:55:28,530 >> Í staðreynd, ef þú opnar alltaf vafranum til vefsvæði þitt eða annars og þú 1188 00:55:28,530 --> 00:55:32,400 raunverulega sjá PHP kóðann í glugganum þínum, einhver hefur ruglaður upp. 1189 00:55:32,400 --> 00:55:34,950 Því það er ekki ætlað að vera send til vafra beint. 1190 00:55:34,950 --> 00:55:38,150 Það er ætlast til að framkvæma og sneru í eitthvað eins og HTML. 1191 00:55:38,150 --> 00:55:40,120 >> En JavaScript er í raun hið gagnstæða. 1192 00:55:40,120 --> 00:55:44,350 Það er ætlað að vera að keyra venjulega inni af vafranum notanda. 1193 00:55:44,350 --> 00:55:46,840 Og hvers konar vefsíður nota JavaScript þá þessa dagana? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Eins bókstaflega hvert vinsæll website. 1196 00:55:52,180 --> 00:55:55,430 Sérhver viðbót sem þið sennilega nota daglega nota JavaScript til að 1197 00:55:55,430 --> 00:55:57,330 Einfaldasta og jafnvel kynjamisrétti lögun. 1198 00:55:57,330 --> 00:55:59,800 >> Svo eitthvað eins og Facebook Spjallaðu ef þú notar það. 1199 00:55:59,800 --> 00:56:01,040 Hvernig virkar þessi raunverulega vinna? 1200 00:56:01,040 --> 00:56:05,090 Jæja svona langt, öll efni sem við höfum gert með HTML og PHP gert ráð fyrir að 1201 00:56:05,090 --> 00:56:08,750 þú draga upp slóðina, og þú ýta á Enter, og þú sérð einhver HTML efni. 1202 00:56:08,750 --> 00:56:11,970 Og þú smellir á tengilinn, sem breytir URL, breytingar á síðunni, og endurhleður 1203 00:56:11,970 --> 00:56:12,740 sumir nýr efni. 1204 00:56:12,740 --> 00:56:16,340 Smelltu aðra vefslóð eða senda inn mynd, þú fá whisked á aðra síðu og 1205 00:56:16,340 --> 00:56:17,420 þú sjá nokkrar nýjar efni. 1206 00:56:17,420 --> 00:56:22,710 >> En að nota eitthvað eins og Facebook Chat, eða Gchat eða Google Maps, sjaldan 1207 00:56:22,710 --> 00:56:27,350 er alla síðuna hressa þannig að þú sérð hvítur skjár augnablik og 1208 00:56:27,350 --> 00:56:28,470 þá nýtt efni. 1209 00:56:28,470 --> 00:56:32,610 Frekar, eru vefsíður í dag virk getting uppfærður aftur og 1210 00:56:32,610 --> 00:56:35,570 aftur og aftur allur tegund á bak við tjöldin. 1211 00:56:35,570 --> 00:56:38,560 Og það kemur í ljós að þegar þú ferð að eitthvað eins og Facebook, eða Gchat, 1212 00:56:38,560 --> 00:56:43,050 eða Gmail, og síðan uppfærslur sjálfkrafa án þess að endurhlaða 1213 00:56:43,050 --> 00:56:47,630 heild skjár, hvað hefur gerst er að Vafrinn þinn hefur gert svoleiðis leynilega 1214 00:56:47,630 --> 00:56:49,410 fleiri HTTP beiðnir - 1215 00:56:49,410 --> 00:56:52,740 ekki fyrir heilum vefsíðum, en bara fyrir litla klumpur af gögnum, eins 1216 00:56:52,740 --> 00:56:55,740 spjallskilaboð sem vinur þinn bara sendi þér, eða stöðuuppfærslu sem 1217 00:56:55,740 --> 00:56:58,210 einhver sendi bara þú, eða kvak að einhver send bara. 1218 00:56:58,210 --> 00:57:02,120 Það er bara að gera smá beiðnir um gögn, og nota JavaScript, þetta 1219 00:57:02,120 --> 00:57:06,370 forritunarmál, að breyta því sem vefsíðan lítur út eins án 1220 00:57:06,370 --> 00:57:09,860 miðlara hjálpa, án þess að miðlara búa að HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Svo í stuttu máli, getur JavaScript að nota þá að ekki aðeins ná nýjum gögnum frá 1222 00:57:13,820 --> 00:57:16,750 miðlara án þess að endurhlaða heild síðu eða senda inn mynd. 1223 00:57:16,750 --> 00:57:20,060 Það er einnig hægt að nota til að breyta svokölluð DOM - 1224 00:57:20,060 --> 00:57:21,520 skjal mótmæla líkan - 1225 00:57:21,520 --> 00:57:24,620 sem er bara fínt leið fyrir segja tré HTML 1226 00:57:24,620 --> 00:57:26,220 sem við sáum síðast. 1227 00:57:26,220 --> 00:57:31,640 >> Svo að fullvissa, JavaScript er setningafræðilega svo svipað og C og vel. 1228 00:57:31,640 --> 00:57:32,820 Það er ekki helsta hlutverk. 1229 00:57:32,820 --> 00:57:35,430 Þú byrjar bara að skrifa kóðann og það mun fá fram, eða 1230 00:57:35,430 --> 00:57:36,900 túlka fleiri almennilega. 1231 00:57:36,900 --> 00:57:38,660 Aðstæður mun líta svona út. 1232 00:57:38,660 --> 00:57:41,230 Ekkert annað C eða PHP fyrir þessi mál. 1233 00:57:41,230 --> 00:57:43,890 Boolean tjáning eða-ed saman mun líta svona út. 1234 00:57:43,890 --> 00:57:45,590 Anded saman líta svona út. 1235 00:57:45,590 --> 00:57:47,750 >> Rofar mun líta svona út. 1236 00:57:47,750 --> 00:57:49,440 Fyrir lykkjur mun líta svona út. 1237 00:57:49,440 --> 00:57:51,060 Þó lykkjur mun líta svona út. 1238 00:57:51,060 --> 00:57:53,316 Gera á meðan lykkjur mun líta svona út. 1239 00:57:53,316 --> 00:57:54,780 >> Þetta er nýtt. 1240 00:57:54,780 --> 00:57:58,753 Svo hefur JavaScript ekki a framhandleggur reisa í sjálfu sér, en þetta smíða 1241 00:57:58,753 --> 00:58:03,870 fyrir i breytu í array, og ég í þessu Málið verður vísitalan. 1242 00:58:03,870 --> 00:58:06,880 Svo það er lítið annað að framhandleggur, þótt nýjar útgáfur af 1243 00:58:06,880 --> 00:58:10,280 JavaScript eru að koma út allan tímann, svo lögun jafnvel þessi tungumál 1244 00:58:10,280 --> 00:58:10,880 eru að þróast. 1245 00:58:10,880 --> 00:58:16,920 >> Og Sem innskot, javascript þessa dagana Einnig er hægt að nota á miðlara rétt eins 1246 00:58:16,920 --> 00:58:19,920 PHP notar ramma sem heitir Node.js. 1247 00:58:19,920 --> 00:58:24,670 Einn af TFS CS50 er, Kevin, hefur leitt í Málstofa um Node.js sem er í boði á 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Svo ef þú ert forvitinn, veit að þú getur notað þetta á miðlara megin og 1250 00:58:28,830 --> 00:58:33,870 vel, en það er nokkuð nýleg stefna, en öflugur einn á því. 1251 00:58:33,870 --> 00:58:35,270 >> Þetta er svolítið öðruvísi. 1252 00:58:35,270 --> 00:58:37,910 Þetta er fylki í JavaScript. 1253 00:58:37,910 --> 00:58:40,115 Og hvað slær þig eins mismunandi móti C eða PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Það eru nokkur fljótleg sögur við getum sagt hér. 1256 00:58:47,420 --> 00:58:49,367 Hvað vantar móti PHP? 1257 00:58:49,367 --> 00:58:51,652 >> Áhorfendur: [inaudible]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID Malan: Já? 1259 00:58:52,110 --> 00:58:53,322 Því miður, segja aftur? 1260 00:58:53,322 --> 00:58:54,740 >> Áhorfendur: Ekki lýsa the tegund af breytu. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID Malan: Við erum ekki að lýsa the tegund af breytu. 1262 00:58:56,390 --> 00:58:59,630 Svo í raun alveg eins og PHP, við erum ekki tilgreina þær tegundir af breytu. 1263 00:58:59,630 --> 00:59:02,670 Frekar erum við meira generically segja Var að breyta. 1264 00:59:02,670 --> 00:59:06,690 Við höfum ekki óþægindi PHP er af dollaramerki, sem en leiðinlegur að 1265 00:59:06,690 --> 00:59:09,160 gerð, gerir meira ljóst að eitthvað er breytilegt. 1266 00:59:09,160 --> 00:59:11,830 En hér erum við svoleiðis aftur C er nálgun við bara að hringja í 1267 00:59:11,830 --> 00:59:14,500 breytu með nafn sem við viljum að gefa það, eins og tölur. 1268 00:59:14,500 --> 00:59:17,170 Og líka eins og PHP, höfum við hornklofum fyrir að 1269 00:59:17,170 --> 00:59:19,170 gildi innan þess array. 1270 00:59:19,170 --> 00:59:22,490 >> Svo breytur í JavaScript einnig gæti litið svona út. 1271 00:59:22,490 --> 00:59:26,900 Tilkynning hér þetta er band sem heitir s, en álíka höfum við tilgreint ekki 1272 00:59:26,900 --> 00:59:28,750 að það er strengur. 1273 00:59:28,750 --> 00:59:33,160 Hér er þó eiginleiki sem gerir ekki eru á nákvæmlega sama hátt í PHP, 1274 00:59:33,160 --> 00:59:34,460 en dálítið álíka. 1275 00:59:34,460 --> 00:59:36,530 Þetta er hlut í JavaScript. 1276 00:59:36,530 --> 00:59:42,110 Og hlutir eru konar svissneska hernum Hníf af gögn uppbygging í að þú 1277 00:59:42,110 --> 00:59:43,900 getur notað þá fyrir allir tala af hlutur. 1278 00:59:43,900 --> 00:59:46,860 >> Hér til dæmis, við erum að lýsa yfir breytu sem heitir tilvitnun. 1279 00:59:46,860 --> 00:59:49,110 The tegund af þeirri breytu er hlutur. 1280 00:59:49,110 --> 00:59:53,550 Þú getur hugsað þetta sem C struct sem hefur lykla og gildi. 1281 00:59:53,550 --> 00:59:55,250 Tákn er lykillinn. 1282 00:59:55,250 --> 00:59:57,350 FB er gildi, virðist lager tákn. 1283 00:59:57,350 --> 00:59:57,930 Komma. 1284 00:59:57,930 --> 01:00:02,180 Verð er annar lykill, og gildi þess er greinilega fljótandi lið, eða 1285 01:00:02,180 --> 01:00:06,510 tala meira almennt í JavaScript, af $ 49,26. 1286 01:00:06,510 --> 01:00:09,030 >> Svo PHP hjartarskinn ekki - 1287 01:00:09,030 --> 01:00:12,980 við höfum ekki séð í PHP mótmæla alveg eins og þetta, en við gerðum sjá flaumi, 1288 01:00:12,980 --> 01:00:14,093 sem var hvað? 1289 01:00:14,093 --> 01:00:14,980 >> Áhorfendur: [inaudible]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID Malan: tengin fylki. 1291 01:00:16,110 --> 01:00:19,990 Svo þar sem PHP hefur tengin fylki sem setningafræði er alltaf örlítið svo 1292 01:00:19,990 --> 01:00:20,370 öðruvísi - 1293 01:00:20,370 --> 01:00:21,780 sáum við hornklofa. 1294 01:00:21,780 --> 01:00:23,860 Sáum við skrýtin örvar tákn. 1295 01:00:23,860 --> 01:00:27,330 JavaScript verður hluti, en þetta er aðallega merkingartækni mismunur og 1296 01:00:27,330 --> 01:00:29,260 mismunandi samheiti fyrir nú. 1297 01:00:29,260 --> 01:00:35,060 Hins vegar, eins og innskot, PHP hefur einnig hlutir á þann hátt sem Java og öðrum 1298 01:00:35,060 --> 01:00:37,810 tungumál hafa hluti í hlutbundin forritun. 1299 01:00:37,810 --> 01:00:40,440 En við munum nota þetta aðeins fyrir gerðir gagna fyrir nú. 1300 01:00:40,440 --> 01:00:42,170 Hlutir og tengin fylki. 1301 01:00:42,170 --> 01:00:44,140 >> Þetta eitt gæti gert það svolítið skýrari. 1302 01:00:44,140 --> 01:00:45,890 Hér er ástæðan hlut er gagnlegt. 1303 01:00:45,890 --> 01:00:48,760 Þegar þú vilt lýsa nemanda, eins Zamyla, getum við í raun 1304 01:00:48,760 --> 01:00:52,630 þjappa svo að segja inni á því mótmæla því að nota hrokkið sviga rétt eins 1305 01:00:52,630 --> 01:00:55,060 áður a heild búnt af lyklum og gildi í hér. 1306 01:00:55,060 --> 01:00:59,150 Við höfum kenni, hús, og heiti fyrir Zamyla, fylgt eftir með semíkommu sem 1307 01:00:59,150 --> 01:01:00,690 venjulega á endanum. 1308 01:01:00,690 --> 01:01:04,840 >> Hérna líka, þetta er örlítið mismunandi, en einnig mjög öflugt 1309 01:01:04,840 --> 01:01:05,690 þessa dagana. 1310 01:01:05,690 --> 01:01:08,780 Hér er fylki, og ég veit að vegna það er ferningur krappi upp 1311 01:01:08,780 --> 01:01:11,090 efst og ferningur krappi neðst. 1312 01:01:11,090 --> 01:01:16,050 Og þetta er fylki af hvaða gögn tegund virðist í JavaScript? 1313 01:01:16,050 --> 01:01:21,260 Þetta er fylki af það lítur eins þrír hlutir. 1314 01:01:21,260 --> 01:01:24,580 Og ég veit að það er að mótmæla aðeins vegna hrokkið axlabönd. 1315 01:01:24,580 --> 01:01:28,760 Og eftir því að það er opið hrokkið borsveif, smá dót, nálægt hrokkið Brace, kommu, 1316 01:01:28,760 --> 01:01:31,180 þá sumir meira, kommu, og þá meira. 1317 01:01:31,180 --> 01:01:33,800 Svo er að þrjú rök aðskilin tvö kommum. 1318 01:01:33,800 --> 01:01:36,810 >> Svo er þetta fylki af þremur hlutum. 1319 01:01:36,810 --> 01:01:39,940 Og hver af þeim hlutum virðist vera nemandi eða starfsmaður sumra 1320 01:01:39,940 --> 01:01:42,370 raða, hver með kenni, hús, og nafn. 1321 01:01:42,370 --> 01:01:45,060 En ég hef kallað þetta eitthvað heitir JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript Object Ritháttur. 1323 01:01:47,450 --> 01:01:52,060 Og þetta er gögn snið sem raunverulega er svo mjög vinsæll og í 1324 01:01:52,060 --> 01:01:55,100 tísku þessa dagana að ef þú skrifar forrit sem notar Facebook 1325 01:01:55,100 --> 01:01:59,150 API, Twitter API, í raun næstum allir API þarna úti þessa dagana, 1326 01:01:59,150 --> 01:02:02,820 þar á meðal sumir af eigin CS50, the gögn sem þú færð til baka er ekki í 1327 01:02:02,820 --> 01:02:04,720 gamla skólann CSV sniði. 1328 01:02:04,720 --> 01:02:06,780 >> Vegna Muna að CSV er frábær einfalt. 1329 01:02:06,780 --> 01:02:10,230 Það er bara dálka aðskilin með kommum. 1330 01:02:10,230 --> 01:02:13,190 JSON gögn gefur þér fleiri lýsigögn. 1331 01:02:13,190 --> 01:02:17,800 Það tengir lykil með hverri gildi svo þeir þurfa ekki að bara gera ráð fyrir að 1332 01:02:17,800 --> 01:02:22,460 á 0 dálkur er eitt gildi dálki einn er annar dálki tvö er annað. 1333 01:02:22,460 --> 01:02:26,790 Allt í JSON mótmæla hér er tegund af sjálf-lýsa, vegna þess að hvert 1334 01:02:26,790 --> 01:02:30,940 eitt af nöfnum í þessari skrá er bókstaflega nafn fyrir framan það sem 1335 01:02:30,940 --> 01:02:32,510 Streng innan gæsalappa. 1336 01:02:32,510 --> 01:02:34,950 >> Þannig að við skulum taka a líta á a par af dæmi hér. 1337 01:02:34,950 --> 01:02:36,800 Láta mig fara inn í tækið. 1338 01:02:36,800 --> 01:02:41,000 Og láta mig fara í vhost okkar skrá í almenningi. 1339 01:02:41,000 --> 01:02:45,590 Og láta mig fara inn í JavaScript skrá. 1340 01:02:45,590 --> 01:02:49,610 Og við skulum fara á undan og opna DOM-0.html, þar DOM þýðir bara 1341 01:02:49,610 --> 01:02:51,010 Document Object Model. 1342 01:02:51,010 --> 01:02:53,490 Það er tré efni sem Ég nefndi áðan. 1343 01:02:53,490 --> 01:02:54,950 >> Og láta mig leggja eftirfarandi. 1344 01:02:54,950 --> 01:02:57,720 Hér er vefsíða sem líkami er laglegur einfaldur. 1345 01:02:57,720 --> 01:03:00,170 Svo niður hér neðst, eftir ég hafa mynd. 1346 01:03:00,170 --> 01:03:01,500 Við höfum séð þá áður. 1347 01:03:01,500 --> 01:03:07,600 Það hefur tvær inntak, einn sem hefur ID á nafni, einn sem hefur gerð 1348 01:03:07,600 --> 01:03:09,830 leggja fram, og fyrsta tegund manns er texti. 1349 01:03:09,830 --> 01:03:11,900 Þannig að þetta í raun hljómar frekar einfalt. 1350 01:03:11,900 --> 01:03:13,090 >> Skulum fara hér. 1351 01:03:13,090 --> 01:03:15,390 Við skulum fara aftur á þessa síðu hér. 1352 01:03:15,390 --> 01:03:21,030 Förum inn localhost, og fara inn í JavaScript skrá okkar, og fara að 1353 01:03:21,030 --> 01:03:24,640 DOM-0, og hér höfum við þetta eyðublað. 1354 01:03:24,640 --> 01:03:26,550 Svo er það víst allt þetta síða hleðst. 1355 01:03:26,550 --> 01:03:28,740 Það hefur reitinn með A Senda hnappinn. 1356 01:03:28,740 --> 01:03:30,340 En ég ætla ekki að nota PHP hér. 1357 01:03:30,340 --> 01:03:34,310 Ég ætla að gera allt viðskiptavinur hlið svo að segja í JavaScript sem hér segir. 1358 01:03:34,310 --> 01:03:39,100 >> Takið eftir að ég hef örugglega gefið nafnið sviði sem þessi inntak einstakt 1359 01:03:39,100 --> 01:03:42,350 kennimerki, sem mun í raun spara mér tíma í smá stund. 1360 01:03:42,350 --> 01:03:45,480 Og eftir ég hef kynnt annað merki í höfuðið á vefsíðu mína, sem 1361 01:03:45,480 --> 01:03:46,565  tag. 1362 01:03:46,565 --> 01:03:50,120 >> Svo er það í þessum skilningi sem JavaScript er viðskiptavinur-hlið forritunarmál. 1363 01:03:50,120 --> 01:03:55,020 Í þessu tilviki, rétt eins og CSS, hef ég sett það beint inni HTML mínum. 1364 01:03:55,020 --> 01:03:58,810 En eftir ég hef lýst fall sem lítur svolítið eins og PHP 1365 01:03:58,810 --> 01:04:01,530 setningafræðilega, en þetta er í raun JavaScript, því aftur, það er 1366 01:04:01,530 --> 01:04:03,920 client-megin í vafranum. 1367 01:04:03,920 --> 01:04:07,590 Og taka giska hvað þetta er að fara til gera, jafnvel þótt sumir af the setningafræði 1368 01:04:07,590 --> 01:04:09,338 hér er nýr. 1369 01:04:09,338 --> 01:04:11,760 >> Áhorfendur: Segja halló til hvern sem er. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID Malan: Það er að fara að segja halló að hver sá sem heimsækir þessa síðu. 1371 01:04:14,020 --> 01:04:15,120 Svo hvernig? 1372 01:04:15,120 --> 01:04:18,070 >> Svo taka eftir, það kemur í ljós í JavaScript það er alert () virka. 1373 01:04:18,070 --> 01:04:22,840 Þetta er mjög svona sorglegt fall sem raun bara tilhneigingu til að ónáða notendur. 1374 01:04:22,840 --> 01:04:25,440 Það er ekki það sem þú ættir virkilega að nota yfirleitt, en það er a fljótur og óhreinn 1375 01:04:25,440 --> 01:04:27,710 leið konar prentun eitthvað myndrænt notenda 1376 01:04:27,710 --> 01:04:29,180 tengi, eins og vafra. 1377 01:04:29,180 --> 01:04:31,400 Tilkynning hér að ég hef fengið band í einn vitna. 1378 01:04:31,400 --> 01:04:36,010 Það kemur í ljós að ólíkt C, JavaScript getur í raun hefur þú notar einn 1379 01:04:36,010 --> 01:04:38,730 vitna, og satt það er bara góður á stylistic samningnum þeirra 1380 01:04:38,730 --> 01:04:41,180 JavaScript forritari að nota einn quotes. 1381 01:04:41,180 --> 01:04:43,750 PHP, þeir hafa reyndar örlítið mismunandi merkingu. 1382 01:04:43,750 --> 01:04:45,810 En nú, bara vita að það er eina ástæðan. 1383 01:04:45,810 --> 01:04:49,270 Samningurinn í JavaScript er oft hægt að Notaðu einn quotes, en við gætum notað 1384 01:04:49,270 --> 01:04:50,950 gæsalappa í báðum stöðum eins og heilbrigður. 1385 01:04:50,950 --> 01:04:52,610 >> Svo er þetta áhugavert. 1386 01:04:52,610 --> 01:04:56,430 Muna síðasta skipti sem við höfðum að mynd á skjánum sem dró upp í tré 1387 01:04:56,430 --> 01:04:59,720 þar sem þú hefðir HTML hnút, og höfuð hnút og líkaminn hnút, 1388 01:04:59,720 --> 01:05:00,800 og þá sumir texta. 1389 01:05:00,800 --> 01:05:04,700 En það var eitt sérstakt hnút minnsta mjög toppur sem ég kallaði skjalið. 1390 01:05:04,700 --> 01:05:08,260 Jæja, það kemur í ljós í JavaScript, hvaða skipti sem þú skrifað forrit í JavaScript 1391 01:05:08,260 --> 01:05:11,040 í vafra, hefur þú aðgang að sérstakt alþjóðlegt breytu. 1392 01:05:11,040 --> 01:05:14,130 Svipuð í anda að superglobals PHP er, þetta er kallað í 1393 01:05:14,130 --> 01:05:16,050 allt lágstafir skjal. 1394 01:05:16,050 --> 01:05:21,480 >> Það er eins og strúktúrinn, en þetta struct einnig hefur störf innan þess. 1395 01:05:21,480 --> 01:05:23,790 Svo C struct hefur bara gögn yfirleitt. 1396 01:05:23,790 --> 01:05:29,060 En JavaScript hlut sem þetta tæknilega er einnig hefur störf, 1397 01:05:29,060 --> 01:05:31,830 annars þekkt sem aðferðir, inni af því. 1398 01:05:31,830 --> 01:05:35,750 Og þú getur hringt í virka inni þessi hlutur alveg bókstaflega að gera sitt 1399 01:05:35,750 --> 01:05:39,610 nafn, punktur, og þá nafn virka, eða aftur aðferð. 1400 01:05:39,610 --> 01:05:41,160 Það er bara samheiti, virkilega. 1401 01:05:41,160 --> 01:05:42,450 >> Og hvað þýðir þessi aðgerð að gera? 1402 01:05:42,450 --> 01:05:43,840 Þú getur konar giska frá nafni sínu. 1403 01:05:43,840 --> 01:05:45,590 Fá eininguna með því auðkenni. 1404 01:05:45,590 --> 01:05:50,040 Þannig að þetta er að fara að leita á vefsíðu, leita að tré, leita 1405 01:05:50,040 --> 01:05:55,210 hvað hnút, AKA frumefni, hefur Unique ID tilvísun unquote nafn. 1406 01:05:55,210 --> 01:05:56,560 Og þá hvað á ég að gera? 1407 01:05:56,560 --> 01:06:00,350 Ég ætla að fá verðmæti inni að hnútur í trénu, og ég ætla 1408 01:06:00,350 --> 01:06:02,580 að einhvern veginn segja halló við því nafni. 1409 01:06:02,580 --> 01:06:05,360 >> Svo taka giska, jafnvel þó að við höfum ekki séð þetta ennþá, gera hvað sem auk 1410 01:06:05,360 --> 01:06:07,396 tákn merkja hér og hér sennilega? 1411 01:06:07,396 --> 01:06:08,230 >> Áhorfendur: concatenate. 1412 01:06:08,230 --> 01:06:09,220 >> DAVID Malan: concatenate. 1413 01:06:09,220 --> 01:06:11,290 Einmitt, og þetta eru bara konar ákvarðanir hönnun 1414 01:06:11,290 --> 01:06:12,280 fólk gerði árum. 1415 01:06:12,280 --> 01:06:15,190 Í PHP, concatenate þú hluti með punktum. 1416 01:06:15,190 --> 01:06:18,800 Í C, hoppa þú í gegnum nokkrar hindranir og kalla virka eins strcopy () eða 1417 01:06:18,800 --> 01:06:20,600 strcat () eða öðrum slíkum aðgerðum. 1418 01:06:20,600 --> 01:06:22,060 En í JavaScript, þú nota plús-merkjum. 1419 01:06:22,060 --> 01:06:24,770 Þannig að þetta er bara concatenating þrír strengir - 1420 01:06:24,770 --> 01:06:27,850 halló, nafn, og þá upphrópunarmerki. 1421 01:06:27,850 --> 01:06:30,390 >> Svo þegar og hvers vegna er þessi aðgerð kallaði þó? 1422 01:06:30,390 --> 01:06:33,150 Jæja, taka giska á HTML neðst. 1423 01:06:33,150 --> 01:06:35,810 Hvers vegna er heilsa () heitir, eða hvenær? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Apparently, sem best ég get sagt, á leggja fram, þegar þessi mynd er lögð, 1426 01:06:44,030 --> 01:06:47,200 Ég ætla að gera hvað sem er inni af þessum tilvitnunum. 1427 01:06:47,200 --> 01:06:50,900 Og sérstaklega, ég ætla að hringja heilsa () og þá return false. 1428 01:06:50,900 --> 01:06:53,090 >> Jæja, við skulum sjá hvað nettó áhrif hér er fyrst. 1429 01:06:53,090 --> 01:06:58,290 Svo láta mig fara á undan og slá í, segjum, Loren, Submit. 1430 01:06:58,290 --> 01:06:59,440 Hello Loren. 1431 01:06:59,440 --> 01:07:02,990 Við skulum sjá hvort þetta kannski bara heppinn framkvæmd. 1432 01:07:02,990 --> 01:07:03,200 Nope. 1433 01:07:03,200 --> 01:07:05,990 Svo það er að slá út hvað nefna að ég setti í raun það. 1434 01:07:05,990 --> 01:07:07,970 >> En taka eftir hvað er ekki að breytast. 1435 01:07:07,970 --> 01:07:10,360 Slóðin er enn DOM-0.html. 1436 01:07:10,360 --> 01:07:11,820 Það er engin register.php. 1437 01:07:11,820 --> 01:07:13,110 Það er engin annar skrá. 1438 01:07:13,110 --> 01:07:14,930 Það er engin aðgerð eiginleiki. 1439 01:07:14,930 --> 01:07:19,720 Svo hvað er þetta aftur ósatt væntanlega gera? 1440 01:07:19,720 --> 01:07:23,660 Hvers vegna er ég að kalla heilsa () og þá aftur ósatt sennilega? 1441 01:07:23,660 --> 01:07:26,420 Hvað gerist venjulega þegar þú smellir Leggja á formi sem jafnvel við höfum 1442 01:07:26,420 --> 01:07:27,854 séð í síðustu viku? 1443 01:07:27,854 --> 01:07:29,900 >> Áhorfendur: [inaudible]. 1444 01:07:29,900 --> 01:07:30,860 >> DAVID Malan: Það fer einhvers staðar, ekki satt? 1445 01:07:30,860 --> 01:07:32,720 Það fer að einhverju áfangastað vefslóð. 1446 01:07:32,720 --> 01:07:34,120 En ég vil ekki að gerast hér. 1447 01:07:34,120 --> 01:07:37,620 Ég vil vefsíðu mína til að vera alveg dynamic eins og Gmail, þar þegar þú ert 1448 01:07:37,620 --> 01:07:38,650 þar, vera þú þar. 1449 01:07:38,650 --> 01:07:42,900 The URL breytist ekki á þann hátt að bendir allt síðu er að endurhlaða. 1450 01:07:42,900 --> 01:07:46,680 Frekar vil ég bara að breyta einhverju eins prenta út eitthvað 1451 01:07:46,680 --> 01:07:48,320 hér á skjánum. 1452 01:07:48,320 --> 01:07:49,630 >> Jæja látið mig þrífa þetta upp smá. 1453 01:07:49,630 --> 01:07:55,370 Leyfðu mér að opna ekki DOM-0, en láta mig opna Dom-2. 1454 01:07:55,370 --> 01:07:57,350 Bara svo þú hafir séð nokkur setningafræði hér. 1455 01:07:57,350 --> 01:08:02,080 >> Það kemur í ljós að það sem við bara gerði er að nota hrátt JavaScript. 1456 01:08:02,080 --> 01:08:04,420 Svo er þetta sannarlega tungumál JavaScript. 1457 01:08:04,420 --> 01:08:07,340 Sumir af þú might vita af bókasafn heitir jQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Svo er jQuery ekki það sama hlutur og JavaScript. 1459 01:08:09,980 --> 01:08:14,110 Það er bara bókasafn að virkilega klár strákur skrifaði og útbreiðslu svo 1460 01:08:14,110 --> 01:08:18,100 að nánast allir í heiminum nú notar jQuery þegar JavaScript. 1461 01:08:18,100 --> 01:08:20,890 Og við fyrstu sýn, heiðarlega, það lítur svolítið meira dulinn. 1462 01:08:20,890 --> 01:08:24,990 En þú munt finna, sérstaklega ef þú ferð þar lokaverkefni þitt með vefnum 1463 01:08:24,990 --> 01:08:29,029 þróun, munt þú finna að þessi hreinsar það upp og sparar þér alveg 1464 01:08:29,029 --> 01:08:30,229 nokkrar línur af kóða. 1465 01:08:30,229 --> 01:08:33,189 >> Þannig að við skulum bara litið á hvernig þessi mynd er að vinna. 1466 01:08:33,189 --> 01:08:35,664 Tilkynning hvað gerði ég fjarlægja virðist frá HTML mínum? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Það er engin á leggja dýraþjálfari svo að segja. 1469 01:08:40,630 --> 01:08:41,470 Það er enginn eiginleiki. 1470 01:08:41,470 --> 01:08:43,359 Þar sem þú veist, hvað Ég vissi ekki alveg eins? 1471 01:08:43,359 --> 01:08:45,640 Mér fannst eins og við vorum að falla í gamla venja þar. 1472 01:08:45,640 --> 01:08:49,340 Rétt eins og það var byrjað að líða sloppy að intermingle bæði CSS og 1473 01:08:49,340 --> 01:08:52,149 HTML, því þú ert góður að kasta mismunandi tungumál allan 1474 01:08:52,149 --> 01:08:56,180 stað, álíka var þetta byrjað að líða eins og slæmur vegur til fara niður þar 1475 01:08:56,180 --> 01:09:01,069 Ég er að setja JavaScript kóða inni af mínum HTML frekar en þátta það út. 1476 01:09:01,069 --> 01:09:02,279 >> Svo er að lærdómi hér. 1477 01:09:02,279 --> 01:09:05,080 Í Dom-2.html, ég þátta það út. 1478 01:09:05,080 --> 01:09:07,399 Og ég er að gera hlutina örlítið öðruvísi. 1479 01:09:07,399 --> 01:09:09,630 Fyrir nú, ég er að fara að veifa höndum mínum á hvað þetta þýðir í raun 1480 01:09:09,630 --> 01:09:10,590 undir hetta. 1481 01:09:10,590 --> 01:09:14,210 En bara fyrir nú ráð fyrir að þessi fyrsta lína af kóða í þessu bókasafni 1482 01:09:14,210 --> 01:09:18,170 kallast jQuery þýðir bara þegar skjalið er tilbúið skaltu gera eftirfarandi. 1483 01:09:18,170 --> 01:09:20,080 >> Vegna þess að vefur blaðsíða geta tekið nokkurn tíma að hlaða. 1484 01:09:20,080 --> 01:09:23,029 Þú gætir verið á hægum internetinu tengingu, og það gæti verið að snúast 1485 01:09:23,029 --> 01:09:25,290 og spuna, og að lokum það er hlaðinn. 1486 01:09:25,290 --> 01:09:29,060 Þessi lína af kóða segir bara að bíða þangað allt síða er tilbúinn, skjalið 1487 01:09:29,060 --> 01:09:31,189 er tilbúinn, áður en framkvæmd þessa kóða. 1488 01:09:31,189 --> 01:09:34,390 >> Og nú fyrirvara, þetta er sennilega the gagnlegur fyrst 1489 01:09:34,390 --> 01:09:36,189 taka í burtu frá jQuery. 1490 01:09:36,189 --> 01:09:42,140 Þessi lína hér er mjög svipuð í anda við þessa miklu lengri línu hér. 1491 01:09:42,140 --> 01:09:46,920 En í hrár JavaScript kóða, þar til skjal alþjóðlegt hlut sem 1492 01:09:46,920 --> 01:09:50,460 hefur fall sem kallast getElementById (), fólkið sem skrifaði 1493 01:09:50,460 --> 01:09:55,720 jQuery einfölduð að bara segja króna merki, og þá innan 1494 01:09:55,720 --> 01:10:00,250 sviga setja tvær tilvitnanir, og þá setja kjötkássa tákn á eftir 1495 01:10:00,250 --> 01:10:02,250 einstakt auðkenni sem þú vilt að grípa. 1496 01:10:02,250 --> 01:10:06,170 Svo er þetta jafngildir document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Á sama tíma,. Senda inn þýðir bara á skil á hvaða formi sem þú ert 1498 01:10:11,090 --> 01:10:14,240 vísa til vinstri, fara undan og framkvæma þetta. 1499 01:10:14,240 --> 01:10:16,600 En þetta er nú forvitni líka. 1500 01:10:16,600 --> 01:10:19,560 Hvað er undarlegt um hvað Ég hef bent hér? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Ekki aðeins er það eins konar setningafræðilega ný, það er líka eitthvað sem vantar. 1503 01:10:28,594 --> 01:10:29,558 >> Áhorfendur: Það er bara kallað virka? 1504 01:10:29,558 --> 01:10:31,970 Það er ekki kallað vakandi? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID Malan: Já. 1506 01:10:32,440 --> 01:10:35,450 Jæja, svo vakandi () er niður hér, að vera sanngjarn. 1507 01:10:35,450 --> 01:10:39,520 En það er ekki minnst á að nafn, eins og þú veist, foo eða 1508 01:10:39,520 --> 01:10:40,980 eitthvað upp hér. 1509 01:10:40,980 --> 01:10:43,830 Og reyndar, þetta er einn af þeim eiginleikum af JavaScript sem er alveg 1510 01:10:43,830 --> 01:10:45,370 öflugur, en einnig alveg nýr. 1511 01:10:45,370 --> 01:10:47,460 Og PHP hefur reyndar þetta eins og heilbrigður. 1512 01:10:47,460 --> 01:10:49,500 >> Leyfðu mér að fara á undan og gera eitthvað raunverulegur fljótur. 1513 01:10:49,500 --> 01:10:52,030 Leyfðu mér að fara á undan og setja þetta út hér. 1514 01:10:52,030 --> 01:10:52,600 Leyfðu mér að gera þetta. 1515 01:10:52,600 --> 01:10:53,690 Virka. 1516 01:10:53,690 --> 01:10:56,455 Við skulum kalla þetta dýraþjálfari (). 1517 01:10:56,455 --> 01:10:58,290 A dýraþjálfari virka svo að segja. 1518 01:10:58,290 --> 01:11:00,110 Eitthvað sem annast einhverja aðgerð. 1519 01:11:00,110 --> 01:11:02,700 Leyfðu mér að hreinsa upp inndrátt mína. 1520 01:11:02,700 --> 01:11:04,380 Og setja þetta hér. 1521 01:11:04,380 --> 01:11:06,090 Og setja það hér. 1522 01:11:06,090 --> 01:11:06,470 Yep. 1523 01:11:06,470 --> 01:11:07,060 OK. 1524 01:11:07,060 --> 01:11:10,300 >> Svo nú hef ég fall sem kallast stjórnandinn () að ég í raun ekki vita 1525 01:11:10,300 --> 01:11:10,890 hvað það gerir enn. 1526 01:11:10,890 --> 01:11:12,710 Það hefur bara enn þessi efni. 1527 01:11:12,710 --> 01:11:13,900 Úpps. 1528 01:11:13,900 --> 01:11:15,820 Tók of mikið. 1529 01:11:15,820 --> 01:11:18,490 Drífum í þessu. 1530 01:11:18,490 --> 01:11:18,990 Allt í lagi. 1531 01:11:18,990 --> 01:11:20,240 Sorry. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Allt í lagi. 1534 01:11:23,690 --> 01:11:24,720 Leyfðu mér að gera þetta. 1535 01:11:24,720 --> 01:11:25,020 OK. 1536 01:11:25,020 --> 01:11:27,040 Það lítur ágætur og beinn senda núna. 1537 01:11:27,040 --> 01:11:29,090 Leyfðu mér að gera þetta. 1538 01:11:29,090 --> 01:11:29,860 Gera þetta. 1539 01:11:29,860 --> 01:11:30,950 Og Í lagi. 1540 01:11:30,950 --> 01:11:33,080 Svo nú skulum við setja þetta hérna. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Ekkert meira forritun á flugu. 1543 01:11:37,270 --> 01:11:37,900 OK. 1544 01:11:37,900 --> 01:11:40,000 >> Svo nú skulum við fara aftur til þar sem sagan hófst. 1545 01:11:40,000 --> 01:11:43,530 Áður sagði ég að þessi lína hér þýðir að þegar skjalið er tilbúið, fara 1546 01:11:43,530 --> 01:11:44,380 undan og gera þetta. 1547 01:11:44,380 --> 01:11:45,660 Hvað vil ég að gera? 1548 01:11:45,660 --> 01:11:49,070 Jæja sérstaklega, ég vil fara undan og gera eftirfarandi. 1549 01:11:49,070 --> 01:11:53,700 Keyra þessa línu af kóða, og þá það sem ég vil að þú gerir er að hringja þetta 1550 01:11:53,700 --> 01:11:56,370 virka þegar mynd er send inn. 1551 01:11:56,370 --> 01:11:57,730 >> Nú er þetta það sem er áhugavert. 1552 01:11:57,730 --> 01:11:59,170 Þetta er ekki sjálft fall. 1553 01:11:59,170 --> 01:12:02,540 Eftir ég er ekki að setja sviga hér á venjulegan hátt. 1554 01:12:02,540 --> 01:12:06,800 Ég er bókstaflega farið fall sem kallast sýnandi () til annars virka 1555 01:12:06,800 --> 01:12:10,800 kallað leggja () sem rök sem þó það er eins og breytu. 1556 01:12:10,800 --> 01:12:14,290 Og þetta er einn af the lögun af JavaScript er HLUTVERK sjálfir 1557 01:12:14,290 --> 01:12:15,710 eru virkilega bara hlutir. 1558 01:12:15,710 --> 01:12:18,350 Í raun, þeir eru í raun bara breytur af einhverju tagi. 1559 01:12:18,350 --> 01:12:21,340 Og ef nafnið á virka er stjórnandinn (), það er engin ástæða sem ég get ekki 1560 01:12:21,340 --> 01:12:23,390 gefa það í sem rök hér. 1561 01:12:23,390 --> 01:12:27,530 Og þetta þýðir þegar formið með kenni kynningu er 1562 01:12:27,530 --> 01:12:29,320 lögð, kalla þessa aðgerð. 1563 01:12:29,320 --> 01:12:32,770 >> En nú ef ég losa þetta allt, hvers vegna þá gerði ég kannski gert 1564 01:12:32,770 --> 01:12:34,850 þetta í smá stund síðan? 1565 01:12:34,850 --> 01:12:36,840 Jæja, þetta er nafnlaus aðgerð. 1566 01:12:36,840 --> 01:12:41,080 Því hreinskilnislega, áttaði ég hvers vegna er ég ómak til að sóa tíma að lýsa yfir 1567 01:12:41,080 --> 01:12:45,540 fall sem kallast dýraþjálfari () aðeins til að hringja það í einum og aðeins einum stað? 1568 01:12:45,540 --> 01:12:48,640 Ef ég þarf ekki nafn, og ég geri ekki þarf að kalla það fleiri en einum stað, 1569 01:12:48,640 --> 01:12:51,200 skulum framkvæma bara virka rétt þar sem ég þarf það. 1570 01:12:51,200 --> 01:12:55,190 Og svo JavaScript og PHP stuðning hvað eru kallaðir nafnlaus aðgerðir sem 1571 01:12:55,190 --> 01:12:57,900 leyfa mér að gera einmitt það hér. 1572 01:12:57,900 --> 01:12:59,570 >> En við erum bara að klóra yfirborðið. 1573 01:12:59,570 --> 01:13:02,430 Skulum stríða með réttlátur a par endanlegar dæmi hér. 1574 01:13:02,430 --> 01:13:04,600 >> Ef ég fer inn í quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Takið eftir að þetta er í raun PHP virka, PHP forrit, sem ég skrifaði 1577 01:13:11,870 --> 01:13:15,270 sem gerir ráð fyrir HTTP breytu sem heitir tákn, og ég get fara í 1578 01:13:15,270 --> 01:13:16,730 gildi eins og FB. 1579 01:13:16,730 --> 01:13:20,010 Og ef við lítum í raun á upptökum kóða, þetta er fyrirspurn a frjáls website 1580 01:13:20,010 --> 01:13:23,680 heitir Yahoo Finance, rétt eins og p-sett sjö, og það er aftur að mér 1581 01:13:23,680 --> 01:13:26,580 eitthvað í greinilega snið þekktur er JSON - 1582 01:13:26,580 --> 01:13:28,010 JavaScript Object Ritháttur. 1583 01:13:28,010 --> 01:13:28,810 Það er bara hlutur. 1584 01:13:28,810 --> 01:13:32,500 Takið eftir hrokkið axlabönd, tilvitnanir, ristli, og kommum. 1585 01:13:32,500 --> 01:13:34,720 >> Nú á meðan, þetta er laglegur kaldur. 1586 01:13:34,720 --> 01:13:38,520 Vegna þess að ég get sennilega notað forritun tungumál til að búa til vefslóðir 1587 01:13:38,520 --> 01:13:40,370 að líta svona virk, ekki satt? 1588 01:13:40,370 --> 01:13:43,340 Ég get breytt þessu í Google og fá til baka Google 1589 01:13:43,340 --> 01:13:47,930 gengi hlutabréfa $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Svo við skulum sjá hvort við getum ekki notað þetta núna. 1591 01:13:49,640 --> 01:13:56,590 >> Leyfðu mér að fara til Ajax 0 hér, sem lítur út eins og eftirfarandi. 1592 01:13:56,590 --> 01:13:59,750 Það er bara a website þessi hefur mynd með takka. 1593 01:13:59,750 --> 01:14:05,860 Leyfðu mér að hér fara á undan og tegund í yhoo fyrir lager tákn Yahoo, smelltu fá 1594 01:14:05,860 --> 01:14:10,530 Quote, og nú eftir að ég hef fengið vakandi með 32,86. 1595 01:14:10,530 --> 01:14:14,050 >> Láta mig fara í raun til áhugamaður útgáfa af þessari síðu, útgáfa tveimur og 1596 01:14:14,050 --> 01:14:17,530 tegund í segjum Microsoft, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Fá Quote. 1598 01:14:18,410 --> 01:14:19,850 Og nú eftir, ekki alert. 1599 01:14:19,850 --> 01:14:22,770 Takið eftir þar sem stendur verð að ákvarða? 1600 01:14:22,770 --> 01:14:27,060 Það er einfaldasta dæmi sem vísbending á hvaða Gchat og Facebook 1601 01:14:27,060 --> 01:14:30,070 Spjalli og Gmail, og aðrar slíkar vefsíður eru að gera með því að í raun og veru 1602 01:14:30,070 --> 01:14:31,290 breyta vefsíðu. 1603 01:14:31,290 --> 01:14:31,800 >> Taka þetta. 1604 01:14:31,800 --> 01:14:33,120 Leyfðu mér að endurhlaða síðunni. 1605 01:14:33,120 --> 01:14:35,080 Leyfðu mér að opna Eftirlitsmaður Króm '. 1606 01:14:35,080 --> 01:14:36,890 Láta mig fara að þeim þáttum flipann hérna. 1607 01:14:36,890 --> 01:14:42,310 Nú taka ef ég súmma inn hingað og opna þetta upp, taka eftir að þetta er minn 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - Document Object Model minn. 1609 01:14:44,500 --> 01:14:45,920 Þetta er HTML mín. 1610 01:14:45,920 --> 01:14:48,750 En nú eftir, jafnvel þó að það er að fara að vera svolítið erfitt að sjá það í báðum 1611 01:14:48,750 --> 01:14:52,080 stöðum í einu, ef ég tegund í FB upp hér, horfa á botn 1612 01:14:52,080 --> 01:14:54,110 á skjánum eingöngu. 1613 01:14:54,110 --> 01:14:57,720 >> Það er í raun að breyta HTML minn á flugu. 1614 01:14:57,720 --> 01:15:01,670 Og það er að gera þetta einfaldlega með því að gera eitthvað eins og this. 1615 01:15:01,670 --> 01:15:06,800 Ef ég opna AJAX 2, tilkynning um framkvæmd eitthvað eins kynþokkafullur eins og 1616 01:15:06,800 --> 01:15:09,560 að jafnvel þó að það er ansi ljót, en eins og háþróaður eins og þessi 1617 01:15:09,560 --> 01:15:11,910 Virkni, hefur það einhver HTML neðst. 1618 01:15:11,910 --> 01:15:13,810 En eftir ég nota til að merkja. 1619 01:15:13,810 --> 01:15:16,640 Við höfum ekki notað þetta áður, en þetta er eins og, en það þýðir ekki að þvinga 1620 01:15:16,640 --> 01:15:17,840 allt á nýja línu. 1621 01:15:17,840 --> 01:15:20,830 Það gerir bara rétthyrnd svæði á sömu línu í meginatriðum. 1622 01:15:20,830 --> 01:15:22,870 >> Takið eftir að ég gaf það kenni af verð. 1623 01:15:22,870 --> 01:15:26,800 Og það kemur í ljós með því að nota sama JavaScript bókasafn, ég er með virka 1624 01:15:26,800 --> 01:15:30,440 kallað QUOTE () sem heitir þegar mynd er lögð. 1625 01:15:30,440 --> 01:15:31,800 Og hvað ég er að gera er þetta. 1626 01:15:31,800 --> 01:15:35,730 Ég er að lýsa yfir breytu í JavaScript heitir url, sparnaður gildi 1627 01:15:35,730 --> 01:15:38,650 quote.php? tákn =. 1628 01:15:38,650 --> 01:15:44,220 Með öðrum orðum, ég sjálfur er farin að undirbúa HTTP beiðni, og þá 1629 01:15:44,220 --> 01:15:49,250 Ég er concatenating á að með plús hvað þátturinn með auðkennið 1630 01:15:49,250 --> 01:15:54,190 af tákn er, þar sem atriði er að reitur rétt niður hér. 1631 01:15:54,190 --> 01:15:56,630 Svo bara eins og við höfðum eyðublöð í fortíðinni. 1632 01:15:56,630 --> 01:16:01,450 >> Og þá kemur í ljós í jQuery, ef þú kalla. Val (), sem kallar á Val 1633 01:16:01,450 --> 01:16:05,900 virka, er gildi virka, sem fær hvað notandinn hefur slegið inn 1634 01:16:05,900 --> 01:16:08,920 Og síðan alla net umferð það gerist er þetta. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> Og eins og til hliðar, dollara merki er bara shorthand tákn. 1637 01:16:13,720 --> 01:16:16,860 Það er í raun jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Fá mig til JSON frá þessari vefslóð, og þegar beiðnin kemur aftur, kalla þetta 1639 01:16:21,520 --> 01:16:26,550 virka og fara í eins og rifrildi hvað kom til baka frá þjóninum. 1640 01:16:26,550 --> 01:16:31,205 >> Svo í öðrum orðum, ef ég fer aftur til vafra, og ég fer aftur til quote.php, 1641 01:16:31,205 --> 01:16:35,590 hvað vafrinn minn er að gera er að fá þetta klumpur af gögnum. 1642 01:16:35,590 --> 01:16:38,930 Og þegar ég fer á þessa vefsíðu hér, taka ef við förum í staðinn á netið 1643 01:16:38,930 --> 01:16:43,820 flipann og hreinsa það, og þá tegund í eitthvað eins GOOG fyrir Google og Fá 1644 01:16:43,820 --> 01:16:46,340 Vitna, taka síðan breyttist ekki. 1645 01:16:46,340 --> 01:16:50,990 En HTTP beiðni var gert, og hvað kom aftur hingað ef við skoðum 1646 01:16:50,990 --> 01:16:56,130 svar er a heild búnt af JSON að við nálgast að lokum með 1647 01:16:56,130 --> 01:16:58,070 þetta einfalda lína hér. 1648 01:16:58,070 --> 01:17:00,150 >> Gögn er það var fengið frá þjóninum. 1649 01:17:00,150 --> 01:17:02,120 Verð er að nafn hins lykill mér þykir vænt um. 1650 01:17:02,120 --> 01:17:05,230 Svo gefur data.price mér það. 1651 01:17:05,230 --> 01:17:07,540 >> Nú á meðan, og þetta er síðasta dæmi. 1652 01:17:07,540 --> 01:17:09,280 Þú getur gert enn meira með síðuna. 1653 01:17:09,280 --> 01:17:12,440 Einn reyndar, vel tveir. 1654 01:17:12,440 --> 01:17:14,780 Við getum koma til baka tag, ef þú manst þetta. 1655 01:17:14,780 --> 01:17:15,850 Það er JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Við getum gert það. 1657 01:17:17,110 --> 01:17:17,690 Mjög spennandi. 1658 01:17:17,690 --> 01:17:18,800 Við munum fara að sem cliffhanger. 1659 01:17:18,800 --> 01:17:21,590 >> En meira excitingly, getur þú gera hlutina eins og þetta. 1660 01:17:21,590 --> 01:17:25,940 Ef ég fer til Geolocation-1, snýr það út að Króm veit að við erum á 1661 01:17:25,940 --> 01:17:30,672 breiddargráða lengdargráðu 42.37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Svo er það enn þar að ráða þínum. 1663 01:17:32,940 --> 01:17:34,290 En meira um það í næstu viku. 1664 01:17:34,290 --> 01:17:35,540 Sjáumst Mánudagur. 1665 01:17:35,540 --> 01:17:37,558