1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Vika 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Harvard University] 3 00:00:04,740 --> 00:00:07,170 [Þetta er CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Allt í lagi. Velkominn aftur. Þetta er CS50, og þetta er upphaf viku 9. 5 00:00:12,350 --> 00:00:16,600 Í dag við áherslu sérstaklega á hönnun, ekki lengur í tengslum við C 6 00:00:16,600 --> 00:00:20,010 en í tengslum við PHP og a hluti af SQL og hluti af JavaScript, 7 00:00:20,010 --> 00:00:23,730 sérstaklega til enda bæði pset 7 og einnig lokaverkefni þitt. 8 00:00:23,730 --> 00:00:26,310 Í staðreynd, ef þú ert á þeim stað í síðasta verkefni 9 00:00:26,310 --> 00:00:30,100 þar væntanlega eins og um klukkustund eða svo fyrir þig að minnsta kosti farinn að gefa sumir hugsun 10 00:00:30,100 --> 00:00:33,730 við lokaverkefni og þú ert að hugsa þú vilt vinna með 1 eða 2 bekkjarfélaga, 11 00:00:33,730 --> 00:00:36,150 Ef þú ert í vandræðum með að tengja við sagði bekkjarfélaga, 12 00:00:36,150 --> 00:00:40,570 ekki hika við að fylla út eyðublaðið cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 Það spyr bara hver þú ert, hvers konar verkefni sem þú ert að hugsa um, 14 00:00:42,880 --> 00:00:44,870 þar sem þú býrð bara til skipulagningar ástæðum. 15 00:00:44,870 --> 00:00:49,510 Og svo ef þú vilt hafa auga á næstu viku eða svo töflureikni vefslóð þar, 16 00:00:49,510 --> 00:00:53,520 þú getur þá séð lesa-eini útgáfa af Google Doc 17 00:00:53,520 --> 00:00:56,010 þar sem við erum að safna að upplýsingum. 18 00:00:56,010 --> 00:00:58,930 Svo ef þú vilt vinna með einhverjum, finnst fyrir alla muni frjáls til að ná til fólks 19 00:00:58,930 --> 00:01:00,480 gegnum þessi kerfi. 20 00:01:00,480 --> 00:01:02,690 En meirihluti af fólkinu vinna verk sóló. Það er alveg í lagi. 21 00:01:02,690 --> 00:01:06,120 Svo finnst ekki að þetta sé á nokkurn hátt skylda. 22 00:01:06,120 --> 00:01:09,680 Á föstudaginn var það bara ég og nokkrar af liðinu hér, 23 00:01:09,680 --> 00:01:11,100 tóm leikhús að mestu leyti. 24 00:01:11,100 --> 00:01:14,600 Það voru 3 ferðamanna situr þarna svo það var svolítið klaufalegur. 25 00:01:14,600 --> 00:01:18,970 Það sem við ræddum um var gagnagrunna og við ræddum um pset 7 svolítið. 26 00:01:18,970 --> 00:01:22,200 Og ef þú hefur ekki gerst að grípa það á vídeó bara enn, það er í lagi. 27 00:01:22,200 --> 00:01:26,770 Ég ætla að reyna að skilgreina þau hugtök sem við ella taka sem sjálfsögðum hlut 28 00:01:26,770 --> 00:01:28,840 byggt á fyrirlestri föstudag. 29 00:01:28,840 --> 00:01:32,550 >> En í dag ætlum við að reyna að fá þig til að benda 30 00:01:32,550 --> 00:01:34,990 á ekki bara að vera fær um að gera eitthvað eins og pset 7 31 00:01:34,990 --> 00:01:37,360 en í raun skilja hvað er að gerast undir hetta, 32 00:01:37,360 --> 00:01:41,910 einkum sum Huglægt sem við höfum sett á stað í functions.php skrá 33 00:01:41,910 --> 00:01:45,780 til að gera líf þitt svolítið auðveldara en svo að þú skiljir að lokum 34 00:01:45,780 --> 00:01:48,760 þannig að þegar þjálfun hjól koma út í nokkrar vikur enn er hægt að lifa 35 00:01:48,760 --> 00:01:53,750 í hinum raunverulega heimi og gera þetta efni án CS50 ramma undir þér. 36 00:01:53,750 --> 00:01:57,500 Þetta $ _SESSION, fyrir þá sem eru kunnugir 37 00:01:57,500 --> 00:02:01,960 eða sem þegar lent á vídeó á föstudaginn, hvað þýðir fundi skulum gera 38 00:02:01,960 --> 00:02:04,330 í PHP-undirstaða vefur umsókn? 39 00:02:04,330 --> 00:02:09,650 Þetta er superglobal breyta, sem þýðir að það er svipað og í anda við FÁ og POST 40 00:02:09,650 --> 00:02:13,970 og nokkrir aðrir, en það er þetta gagnlegt fyrir? 41 00:02:13,970 --> 00:02:18,320 >> Hvað er fundi notað? Já. [Nemandi] Annálar inn 42 00:02:18,320 --> 00:02:21,040 Því miður? [Nemandi] Annálar inn Annálar inn Reyndar. 43 00:02:21,040 --> 00:02:25,100 Í pset 7 við erum að nota Þessi fundur superglobal að auðvelda skrá þig inn 44 00:02:25,100 --> 00:02:28,600 Og hvað er gott um þessa superglobal er að það er tengin array. 45 00:02:28,600 --> 00:02:33,190 An tengin array, muna, er bara fylki en ekki lengur Hvers vísitölur að vera númer 46 00:02:33,190 --> 00:02:37,670 eins og 012. Þeir geta verið tölur eða þeir geta verið jafnvel strengir. 47 00:02:37,670 --> 00:02:44,890 Og svo ef þú hefur kafa í pset 7 enn, getur þú manst að við erum að geyma lykil kallast auðkenni 48 00:02:44,890 --> 00:02:50,330 innan þessa tengin array sem gildi er eitthvað eins og 123 - 49 00:02:50,330 --> 00:02:53,780 hvað er nú skráður á ID notanda er. 50 00:02:53,780 --> 00:02:59,470 The hvatning fyrir þessu er að jafnvel eftir að notandi hefur heimsótt localhost 51 00:02:59,470 --> 00:03:02,720 eða vefsíðu mína meira almennt og þeir hafa skráð í, 52 00:03:02,720 --> 00:03:07,320 jafnvel ef þeir smella á tengilinn og fara á heimasíðuna mína í 5 mínútur 53 00:03:07,320 --> 00:03:10,730 eða jafnvel klukkutíma eða jafnvel á dag, en þeir fara glugga þeirra opin, 54 00:03:10,730 --> 00:03:14,370 um þetta superglobal get ég man að þeir eru tengd 55 00:03:14,370 --> 00:03:21,140 >> Með öðrum orðum, það leyfa mér að geyma örlítið lengri tíma allt sem ég vil um notanda. 56 00:03:21,140 --> 00:03:24,390 Og hægt er að hugsa um það í raun eins og holdgun af innkaupakörfu. 57 00:03:24,390 --> 00:03:27,740 Staðir eins og Amazon láta augljóslega að setja hlutina í innkaupakörfu, 58 00:03:27,740 --> 00:03:32,230 en HTTP, siðareglur sem knýr á vefnum, er án ríkisfangs 59 00:03:32,230 --> 00:03:34,230 í þeim skilningi að þegar þú heimsækir vefsíðu, 60 00:03:34,230 --> 00:03:37,290 að mestu leyti þú þarft ekki einhverja stöðuga nettengingu 61 00:03:37,290 --> 00:03:39,270 milli þinn flettitæki og miðlara. 62 00:03:39,270 --> 00:03:42,190 Um leið og þú hefur hlaðið niður HTML og JPEG og GIF og allt það, 63 00:03:42,190 --> 00:03:48,200 tengingin fer í burtu og þú verður bara afrit af HTML og whatnot frá þjóninum. 64 00:03:48,200 --> 00:03:53,000 En ef miðlara vill að muna eitthvað um þig, 65 00:03:53,000 --> 00:03:57,580 byrði er á miðlara til að raunverulega taka upp þær upplýsingar. 66 00:03:57,580 --> 00:04:00,130 Og svo þú forritari sem hafa stjórn á þjóninum 67 00:04:00,130 --> 00:04:04,400 hægt að setja flest allt sem þú vilt inni af þessu superglobal tengin array 68 00:04:04,400 --> 00:04:06,850 og það mun vera þar næst þegar notandi kemur aftur, 69 00:04:06,850 --> 00:04:12,070 hvort sem það er mínúta eða jafnvel dögum síðar, nema þeir loka glugga þeirra, 70 00:04:12,070 --> 00:04:14,360 á hver benda fundi hverfur. 71 00:04:14,360 --> 00:04:17,779 Svo það er skammvinn geymslu, það er ekki viðvarandi, og það er ætlað að fara burt 72 00:04:17,779 --> 00:04:22,360 um leið og notandinn lokar vafranum þeirra - ekki bara að flipanum, oft allt vafra, 73 00:04:22,360 --> 00:04:24,930 þannig í raun að skrá þig inn á notandi út. 74 00:04:24,930 --> 00:04:28,000 Svo hvernig er þetta framkvæmd í raun? 75 00:04:28,000 --> 00:04:31,360 Við skulum taka fljótur líta á einfalt dæmi skoðuðum við á föstudaginn. 76 00:04:31,360 --> 00:04:33,340 Fyrir þá framandi, það var eins einfalt og þetta. 77 00:04:33,340 --> 00:04:35,910 Þetta er vefsíða sem tilgangurinn í lífinu er að segja mér 78 00:04:35,910 --> 00:04:38,000 hversu oft ég hef heimsótt þessa síðu. 79 00:04:38,000 --> 00:04:41,670 Þetta er í fyrsta sinn hér á mánudag sem ég heimsótti hana, svo það segir 0 sinnum. 80 00:04:41,670 --> 00:04:46,940 >> En ef ég byrja að endurhlaða þessa síðu, segir það 1 tími, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 og þetta mun að lokum bara að halda áfram að telja upp, upp, upp, upp, upp 82 00:04:49,800 --> 00:04:53,130 í hvert sinn sem ég í raun að smella Endurhlaða á það. 83 00:04:53,130 --> 00:04:58,830 Svo hvernig er það að vinna? Leyfðu mér að fara inn á þessa skrá sem heitir counter.php. 84 00:04:58,830 --> 00:05:02,490 Efri hluti þess er öll blá athugasemdir, en áhugaverður hluti er hér. 85 00:05:02,490 --> 00:05:06,670 Á línu 13 Við köllum þessa aðgerð session_start, 86 00:05:06,670 --> 00:05:09,600 og það er bókstaflega allt sem þú þarft að gera ef þú vilt hafa aðgang að 87 00:05:09,600 --> 00:05:13,610 þessu sérstaka superglobal heitir $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 Það gerir það allt mögulegt, og við munum sjá í smá stund hvernig það er allt mögulegt. 89 00:05:17,430 --> 00:05:20,350 Í samræmi 16 fyrirvara hvað ég er að gera. 90 00:05:20,350 --> 00:05:25,960 Ef lykillinn heitir gegn - með öðrum orðum, að vísitölu - "gegn" 91 00:05:25,960 --> 00:05:32,310 er inni í þessu fylki kallast fundi, þá hvað er ég að gera með það í línu fyrir neðan? 92 00:05:32,310 --> 00:05:36,650 Hvað er lína 18 að gera? 93 00:05:36,650 --> 00:05:40,360 >> [Inaudible nemandi svar] Hvað er það? [Nemandi] Geymsla gildi. Gott. 94 00:05:40,360 --> 00:05:45,800 Það er geyma gildi sem er á fundi núna í nýja staðnum tímabundna breytu, 95 00:05:45,800 --> 00:05:48,250 $ Gegn í öllum lágstöfum. 96 00:05:48,250 --> 00:05:50,770 Takið eftir að PHP er nú þegar að vera svolítið latur hérna. 97 00:05:50,770 --> 00:05:55,550 Takið eftir að við höfum ekki að tala um INT eða float eða band eða eitthvað svoleiðis 98 00:05:55,550 --> 00:06:00,480 vegna PHP er veikt tegund, þar sem þú þarft ekki að tilgreina gerð breytu, 99 00:06:00,480 --> 00:06:03,310 og í þessu tilfelli hér að ég hef ekki einu sinni lýst því enn. 100 00:06:03,310 --> 00:06:08,980 Ég er að lýsa yfir því innan þessara hrokkið axlabönd og ólíkt C, þetta er í raun allt í lagi. 101 00:06:08,980 --> 00:06:13,800 Sama hversu djúpt hreiður yfirlýsingu breytu er í PHP - 102 00:06:13,800 --> 00:06:16,650 inni hrokkið borsveif, inni hrokkið borsveif og þess háttar - 103 00:06:16,650 --> 00:06:21,230 mun á þeirri stundu í tíma til að loka forritinu, 104 00:06:21,230 --> 00:06:22,680 fyrir betri eða verri. 105 00:06:22,680 --> 00:06:26,930 Þannig að það verður strax heimsvísu um leið og þú skilgreinir það sem við erum að gera hér. 106 00:06:26,930 --> 00:06:31,620 >> Annars, ef ég finn ekki að það er eitthvað í þinginu superglobal, 107 00:06:31,620 --> 00:06:34,680 Ég er greinilega Frumstilli þessa breytu gegn 0, 108 00:06:34,680 --> 00:06:37,580 þannig bara miðað notandinn hefur aldrei verið hér áður. 109 00:06:37,580 --> 00:06:40,030 Og þá er þetta auðvitað er incrementing borðið hvernig? 110 00:06:40,030 --> 00:06:44,480 Ég er að uppfæra verðmæti sem er inni þessa tengin array 111 00:06:44,480 --> 00:06:49,530 því að setja það jafnt hvað gegn nú er + 1. 112 00:06:49,530 --> 00:06:53,520 Ef ég skruna niður til HTML á síðunni, það er í raun mjög einfalt. 113 00:06:53,520 --> 00:06:58,920 Það eina sem ég hef í líkamanum á þessari síðu er, "þú hefur heimsótt þessa síðu svo-og-svo sinnum." 114 00:06:58,920 --> 00:07:00,350 Og þetta er PHP reisa. 115 00:07:00,350 --> 00:07:06,080 Ef þú gerir 00:07:12,600 Það er í raun jafngildir eitthvað eins printf, sem við höfum séð oft í C, 117 00:07:12,600 --> 00:07:15,940 Þó eins og þið vitið nú þegar frá sérstakur í pset 7, 118 00:07:15,940 --> 00:07:20,160 prenta er líka fall sem bara prentar eitthvað út, það er ekki í raun að nota snið kóða, 119 00:07:20,160 --> 00:07:23,270 og þú getur í raun að segja bergmál eins og heilbrigður. 120 00:07:23,270 --> 00:07:27,460 Þeir eru allir alltaf svo örlítið öðruvísi þótt nettó áhrif er að lokum sú sama. 121 00:07:27,460 --> 00:07:31,270 Svo þessi notkun jafngildir skilti er bara tegund af glæsilegri leið til að gera það 122 00:07:31,270 --> 00:07:34,910 meira succinctly en þú gætir annars geta. 123 00:07:34,910 --> 00:07:38,370 Svo er það allt þetta síða gerir. Það prentar út gildi gegn. 124 00:07:38,370 --> 00:07:40,550 Hvernig er þetta allt í raun og veru að gerast? 125 00:07:40,550 --> 00:07:43,250 Þú getur muna viku eða svo síðan við byrjuðum að leita undir hetta 126 00:07:43,250 --> 00:07:47,910 á hvernig vefsíðan virkar með því að nota þessa Eftirlitsmaður flipann. 127 00:07:47,910 --> 00:07:51,900 >> Chrome hefur þetta bæði í Mac útgáfa, Windows útgáfu, og jafnvel Linux útgáfa, 128 00:07:51,900 --> 00:07:59,510 og Firefox og IE hafa svipaðar aðferðir þar sem þú hefur þessa innbyggður-í aflúsara 129 00:07:59,510 --> 00:08:01,400 inni af the flettitæki. 130 00:08:01,400 --> 00:08:03,040 Við skulum taka a líta á the hópur stuðningsmanna. 131 00:08:03,040 --> 00:08:06,960 Við höfum got a heild búnt af tabs hér, og muna að leftmost einn er Elements, 132 00:08:06,960 --> 00:08:10,700 og sama hversu godawful HTML og JavaScript er á síðu, 133 00:08:10,700 --> 00:08:15,710 muna að við Elements flipi sem þú getur raunverulega fara um HTML hierarchically 134 00:08:15,710 --> 00:08:17,050 og ágætur og snyrtilegur. 135 00:08:17,050 --> 00:08:19,370 Svo ef þú ert að reyna að læra af a website eins og Google eða Facebook 136 00:08:19,370 --> 00:08:22,370 eða bara allir website, átta sig á að þú ert líklega betur 137 00:08:22,370 --> 00:08:26,360 horfa á the uppspretta merkjamál á þennan hátt í stað þess að skoða hrátt uppspretta, 138 00:08:26,360 --> 00:08:29,580 sem getur verið óreiðu, eins og við höfum séð sérstaklega á vefsvæði Google. 139 00:08:29,580 --> 00:08:32,220 Svo ef ég smelli í stað á Network flipann hér 140 00:08:32,220 --> 00:08:34,830 við skulum sjá hvað er að gerast þegar ég heimsækja þessa síðu. 141 00:08:34,830 --> 00:08:38,669 Fyrst láta mig hreinsa skyndiminnið. 142 00:08:38,669 --> 00:08:43,570 Ég ætla að fara í Stillingar í Króm og þá fara til sögu 143 00:08:43,570 --> 00:08:46,420 og síðan Hreinsa öll beit gögn. 144 00:08:46,420 --> 00:08:48,170 Þú gætir verið að nota til að gera þetta í öðrum tilgangi, [hlátur] 145 00:08:48,170 --> 00:08:51,990 En þegar það kemur að því að þróa vefsíður, það er í raun gagnlegt - 146 00:08:51,990 --> 00:08:55,980 Ef þú ert að hlæja að þú veist. [Hlátur] 147 00:08:55,980 --> 00:08:59,310 Það er reyndar mjög gagnlegur þegar þróa vefsíður vegna þess að veruleikinn er 148 00:08:59,310 --> 00:09:04,100 hluti eins og kökur og svoleiðis afrit HTML skrá, afrit JavaScript skrár 149 00:09:04,100 --> 00:09:06,390 geta í raun orðið stór höfuðverkur, því ef hver sem ástæðan 150 00:09:06,390 --> 00:09:11,500 vafrinn ákveður að skyndiminni sumir skrá og enn þú hefur gert breytingar á þeirri skrá á þjóninum 151 00:09:11,500 --> 00:09:14,670 en vafrinn er ekki raunverulega ljóst að skráin hefur breyst 152 00:09:14,670 --> 00:09:19,060 og því er í raun ekki aftur sækja hann jafnvel þegar þú smellir á Refresh hnappinn, 153 00:09:19,060 --> 00:09:23,210 eitt surefire leiðir til að bara vera viss um að kenna er ekki með númerið þitt, 154 00:09:23,210 --> 00:09:26,480 það er með hegðun í vafranum, er að fara í hér í vafranum þínum 155 00:09:26,480 --> 00:09:29,950 og bara að hreinsa alla sögu þannig að það er ekkert rugl. 156 00:09:29,950 --> 00:09:33,210 >> Og svo ef þú vilt virkilega að vera ofsóknaræði, hætta vafrann endurræsa það, 157 00:09:33,210 --> 00:09:35,660 og þá ganga úr skugga um allt er að vinna eins og búast mætti. 158 00:09:35,660 --> 00:09:38,820 Svo í stuttu máli, hreinsa skyndiminni er gott þegar að gera þróun. 159 00:09:38,820 --> 00:09:40,690 Svo hér höfum við á flipann Network. 160 00:09:40,690 --> 00:09:46,020 Ég hafði áður heimsótt síðuna 9 sinnum, en láta mig fara á undan núna og smelltu á Reload. 161 00:09:46,020 --> 00:09:47,500 Og ég aftur niður í 0. 162 00:09:47,500 --> 00:09:52,100 Skulum raunverulega sjá hvernig það er að þessari lotu superglobal er að innleiða. 163 00:09:52,100 --> 00:09:55,990 Ég ætla að smella á 1 HTTP beiðni sem var gert, 164 00:09:55,990 --> 00:09:58,810 og þetta kembiforrit glugga lætur mig líta inni í því. 165 00:09:58,810 --> 00:10:01,970 Hér sé ég bara svar frá þjóninum, sem er ekki áhugavert. 166 00:10:01,970 --> 00:10:04,030 Ég hef séð þetta í mörgum hætti. 167 00:10:04,030 --> 00:10:06,350 En hvað er tæknilega áhugavert eru haus. 168 00:10:06,350 --> 00:10:11,770 Ef ég skruna niður og einbeita sér að beiðni haus og smelltu Skoða efni, 169 00:10:11,770 --> 00:10:14,400 hvað ég ætla að sjá er bókstaflega HTTP beiðni 170 00:10:14,400 --> 00:10:17,250 sem fór bara frá vafranum mínum til miðlara, 171 00:10:17,250 --> 00:10:21,400 GET vera aðgerð orð og síðan / counter.php vera skrá nafn, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 sé bara útgáfa af HTTP að vafrinn minn er að nota. 173 00:10:25,670 --> 00:10:31,070 Þessi lína hér er smá áminning úr vafranum til miðlara hvaða nafn miðlara er 174 00:10:31,070 --> 00:10:33,020 sem það vill tala við. 175 00:10:33,020 --> 00:10:38,200 Og þá er restin af þessu stundum áhugavert en ekki við núna. 176 00:10:38,200 --> 00:10:40,090 >> Þetta er bara svona forvitni. 177 00:10:40,090 --> 00:10:43,530 Cryptic þó þetta band er, hvenær vafrinn þinn heimsækir vefsíðu 178 00:10:43,530 --> 00:10:47,110 það er að upplýsa miðlara hvaða vafra þú ert að nota 179 00:10:47,110 --> 00:10:50,040 og hvaða stýrikerfi þú ert að nota og hvaða útgáfa hennar. 180 00:10:50,040 --> 00:10:52,650 Svo ef þú hefur alltaf furða hvernig vefsíður eins CNN og whatnot 181 00:10:52,650 --> 00:10:56,860 vita hvaða hlutföll eru af Mac notendur á vefnum, PC notendur, 182 00:10:56,860 --> 00:11:00,820 IE notendur, Króm notendur og þess háttar, það er vegna þess að allar af vöfrum okkar 183 00:11:00,820 --> 00:11:04,300 eru að segja hvert einasta heimasíðu þarna úti það sem við erum. 184 00:11:04,300 --> 00:11:07,410 Það þýðir ekki endilega að innihalda persónugreinanlegar upplýsingar, 185 00:11:07,410 --> 00:11:13,060 en það þýðir að segja þjóninum hvaða IP tölu er og hvaða vafra og stýrikerfi sem þú ert að nota. 186 00:11:13,060 --> 00:11:14,720 Svo er það þar sem upplýsingar. 187 00:11:14,720 --> 00:11:19,960 En það er meira áhugavert nú þegar það kemur að þessum fundum er svar haus. 188 00:11:19,960 --> 00:11:22,530 Leyfðu mér að smella á Skoða fengið hliðina á svörun. 189 00:11:22,530 --> 00:11:24,590 Hvað er áhugavert hér er nokkur atriði. 190 00:11:24,590 --> 00:11:27,580 1, fengum við aftur stöðukóðanum 200. 191 00:11:27,580 --> 00:11:29,840 Við sjáum aldrei þessa stöðu kóða vegna þess að það þýðir að allt er vel. 192 00:11:29,840 --> 00:11:32,920 Það þýðir bókstaflega allt í lagi í mótsögn við eitthvað annað. 193 00:11:32,920 --> 00:11:36,380 Hvað er númerið sjáum stundum það er slæmt? [Nemandi] 404. 194 00:11:36,380 --> 00:11:39,860 404, skrá finnst ekki, 403 þú gætir verið hrasa þegar, 195 00:11:39,860 --> 00:11:43,660 sem er bannað, sem þýðir að þú hafir gleymt að chmod eitthvað, líklegast. 196 00:11:43,660 --> 00:11:45,190 Og það er fullt af öðrum. 197 00:11:45,190 --> 00:11:47,760 >> Hérna, þetta er svolítið brjálaður. 198 00:11:47,760 --> 00:11:52,340 Ég skrifaði bara þessa skrá nokkrum mínútum síðan með því að líma það inn gedit. 199 00:11:52,340 --> 00:11:57,100 Af hverju gerði þessa síðu renna út árið 1981 en það raunverulega var Web? 200 00:11:58,010 --> 00:12:00,730 Hvað er að gerast þarna? 201 00:12:00,730 --> 00:12:04,390 >> [Inaudible nemandi svar] The tími stapp. En hvers vegna? 202 00:12:06,110 --> 00:12:09,120 Það er nokkuð handahófskennt, en það er í raun gagnlegt. 203 00:12:09,120 --> 00:12:15,500 Hvað er að segja að vafrinn minn er þetta PHP skrá sem þú hefur bara beðið hefur þegar útrunninn. 204 00:12:15,500 --> 00:12:18,580 Í raun, rann það 30 árum síðan. 205 00:12:18,580 --> 00:12:20,260 En hvað þýðir það í raun? 206 00:12:20,260 --> 00:12:22,500 Það þýðir bara næst þegar notandi heimsækir síðuna, 207 00:12:22,500 --> 00:12:25,540 hvort með því að endurhlaða eða slá inn slóðina í the heimilisfang bar, 208 00:12:25,540 --> 00:12:28,010 vertu viss um að fara og ná í nýtt eintak af henni. 209 00:12:28,010 --> 00:12:30,840 Þetta er tegund af dæmi um brjóstmynd skyndiminni, 210 00:12:30,840 --> 00:12:33,790 heimskulegt orð sem þýðir bara að reyna að draga vafra 211 00:12:33,790 --> 00:12:37,260 frá raun búrhvalur HTML sem er verið send frá miðlara 212 00:12:37,260 --> 00:12:41,490 þannig að þú ert ekki óvart högg endurhlaða og síðan sjá sömu útgáfu skrárinnar. 213 00:12:41,490 --> 00:12:43,730 Þú vilt í raun miðlara til að senda nýtt eintak. 214 00:12:43,730 --> 00:12:47,440 Svo þýðir sú staðreynd að það er 1981 bara að það er það sem tækið er að velja 215 00:12:47,440 --> 00:12:50,280 sem handahófskennda dagsetningu í fortíðinni. 216 00:12:50,280 --> 00:12:53,380 En the raunverulegur safaríkur lína er nú þetta. 217 00:12:53,380 --> 00:12:57,550 Jafnvel áður en 50 þú ert sennilega óljóst þekki smákökum. 218 00:12:57,550 --> 00:13:01,820 Eins og af réttur nú, sérstaklega meðal þeirra sem minna þægilegt eða á milli, 219 00:13:01,820 --> 00:13:04,120 það er kex í skilning þinn núna 220 00:13:04,120 --> 00:13:06,980 jafnvel þó að við erum að gera skilning þinn meira tæknilega? 221 00:13:08,150 --> 00:13:10,070 Hvað er kex? Já. 222 00:13:10,070 --> 00:13:13,890 [Nemandi] Upplýsingar um notanda, eins og ef þeir hafa skrifað notendanafn þeirra eða eitthvað. 223 00:13:13,890 --> 00:13:17,370 >> Gott. Það er upplýsingar um notanda, hvort sem þeir hafa slegið inn notandanafn sitt nú þegar. 224 00:13:17,370 --> 00:13:21,190 Fótspor eru leið þar framreiðslumaður man eitthvað um notanda. 225 00:13:21,190 --> 00:13:25,810 Og hvað kex raun er textaskrá eða einhver runa af bætum 226 00:13:25,810 --> 00:13:28,340 sem er gróðursett af þjóninum inni í vafranum þínum 227 00:13:28,340 --> 00:13:31,960 og inni í þeirri skrá eða meðal þeirra bæti er einhvers konar auðkenni. 228 00:13:31,960 --> 00:13:35,640 Kannski er það bókstaflega notendanafnið þitt, en oftar er það eitthvað meira Cryptic-útlit 229 00:13:35,640 --> 00:13:43,700 eins og þessi hlutur hér - bo8dal3ct og svo framvegis - þetta virkilega stór tölu band 230 00:13:43,700 --> 00:13:47,050 Það er í raun bara ætlað að vera einstakt auðkenni fyrir þig. 231 00:13:47,050 --> 00:13:49,790 Eða þú getur hugsa um það sem tegund af raunverulegur hönd stimpil. 232 00:13:49,790 --> 00:13:53,020 Ef þú ferð að einhverju félagi eða skemmtigarður, að muna að þú hefur í raun greitt 233 00:13:53,020 --> 00:13:55,850 og farið í, setja þeir Little Red límmiða á hendinni af einhverju tagi, 234 00:13:55,850 --> 00:13:59,270 og sem minnir fólk á borðið sem þú hefur þegar greitt 235 00:13:59,270 --> 00:14:01,340 og þú getur komið og farið eins og þú vilt. 236 00:14:01,340 --> 00:14:04,250 Fótspor eru svolítið svipuð í anda við það. 237 00:14:04,250 --> 00:14:08,070 Í fyrsta skipti sem ég heimsótti þessa vefsíðu, eins og ég gerði bara eftir að hreinsa skyndiminnið, 238 00:14:08,070 --> 00:14:11,620 vefþjóninn, sem tæki í þessu tilviki, að setja stimpil á hendina á mér 239 00:14:11,620 --> 00:14:15,030 er nafn PHPSESSID, fundur ID, 240 00:14:15,030 --> 00:14:18,260 sem gildið er þetta virkilega langt tölu band. 241 00:14:18,260 --> 00:14:22,470 >> Svo það er nú svoleiðis skreyta á minni hendi þannig að næst þegar ég högg endurhlaða 242 00:14:22,470 --> 00:14:25,230 eða handvirkt heimsækja þessa slóð í vafra 243 00:14:25,230 --> 00:14:29,230 Vafrinn minn með skilgreiningu HTTP er að fara að kynna hönd stimpill 244 00:14:29,230 --> 00:14:31,940 aftur og aftur og aftur. 245 00:14:31,940 --> 00:14:34,550 Svo jafnvel þótt the framreiðslumaður er ekki endilega að vita hver ég er, 246 00:14:34,550 --> 00:14:39,610 þeir vita að minnsta kosti að ég er sami notandi eða að minnsta kosti, nánar tiltekið, sama vafra. 247 00:14:39,610 --> 00:14:45,660 Og svo er þetta á endanum hvernig fundur superglobal er hrint í framkvæmd. 248 00:14:45,660 --> 00:14:51,200 The framreiðslumaður hefur ekki hugmynd um hver þú ert þegar þú skoðar vefsíðu á annað eða þriðja sinn 249 00:14:51,200 --> 00:14:53,410 nema þú kynna þessa hönd stimpil. 250 00:14:53,410 --> 00:14:55,530 Og um leið og þú kynna að hönd stimpil, 251 00:14:55,530 --> 00:14:59,370 vefþjóninn fer í raun í smá gagnagrunn á eigin spýtur 252 00:14:59,370 --> 00:15:06,040 og eftirlit, allt í lagi, ég hef bara séð hönd stimpill bo8dal3ct notenda og svo framvegis. 253 00:15:06,040 --> 00:15:09,850 Leyfðu mér að sjá hvað upplýsingar forritari hefur geymt 254 00:15:09,850 --> 00:15:12,380 inni á superglobal um þennan notanda, 255 00:15:12,380 --> 00:15:17,000 og þá láta mig ganga úr skugga um að gögn er aftur inni þingsins superglobal 256 00:15:17,000 --> 00:15:19,830 þannig að forritari getur aftur aðgang að gögnum 257 00:15:19,830 --> 00:15:23,360 jafnvel ef það var sett nokkrar mínútur eða klukkustundir síðan. 258 00:15:23,360 --> 00:15:26,150 Svo í öðrum orðum, kex, sem fékk slæmt rapp í nokkurn tíma 259 00:15:26,150 --> 00:15:29,990 vegna óöryggi í vafra og þeir geta í raun brjóta persónuvernd okkar og allt þetta, 260 00:15:29,990 --> 00:15:31,900 þeir hafa í raun og veru mikill gagnsemi því án þeirra 261 00:15:31,900 --> 00:15:36,110 þú vildi alltaf að skrá þig inn á alla Facebook síðu sem þú heimsækir 262 00:15:36,110 --> 00:15:40,680 eða hvert Gmail netfang sem þú lest ef vafrinn ekki hafa einhverja leið til að muna 263 00:15:40,680 --> 00:15:43,320 sem þú hefur nú þegar staðfest. 264 00:15:43,320 --> 00:15:46,640 >> Þannig að í þessum hætti fótspor eru send fram og til baka yfir vír. 265 00:15:46,640 --> 00:15:52,470 Annar forvitni um kex, sérstaklega hér, er að þetta er alveg í afkóðuðum. 266 00:15:52,470 --> 00:15:54,930 Það er engin dulkóðun í gangi hérna alls, 267 00:15:54,930 --> 00:15:57,240 og reyndar er ég að nota HTTP í augnablikinu. 268 00:15:57,240 --> 00:16:00,890 Einn af uppáhalds augnablik okkar í CS50, sem er nú 2 árum síðan, 269 00:16:00,890 --> 00:16:04,750 var um tíma tól sem kallast Firesheep kom út. 270 00:16:04,750 --> 00:16:08,320 Þetta var ókeypis stykki af hugbúnaður sem var gert með öryggi vísindamaður 271 00:16:08,320 --> 00:16:13,250 sem vekja-upp kalla fyrir samfélagið að segja hversu atrociously framkvæmda 272 00:16:13,250 --> 00:16:17,900 ákveðin kerfi staðfesting á vefnum voru. 273 00:16:17,900 --> 00:16:22,880 Svo um nokkurt skeið, Facebook var nánast alfarið yfir HTTP, ekki https. 274 00:16:22,880 --> 00:16:25,640 Og jafnvel ef þú hefur enga hugmynd um hvernig dulritunarstjórneiningunni virkar, er S örugg 275 00:16:25,640 --> 00:16:27,950 Svo þýðir það að það er að minnsta kosti einhver dulkóðun þátt. 276 00:16:27,950 --> 00:16:30,610 Facebook var notuð til að dulkóða notendanöfn og lykilorð, 277 00:16:30,610 --> 00:16:33,560 en um leið og þú lítur á þinn pokes eða skilaboð eða fréttir fæða, 278 00:16:33,560 --> 00:16:35,360 allt sem var unencrypted. 279 00:16:35,360 --> 00:16:37,870 Svo var Gmail fyrr aðeins ári eða 2 fyrir. 280 00:16:37,870 --> 00:16:41,100 Hvert sinn sem þú skráður í, já, notað þau örugg dulkóðun, 281 00:16:41,100 --> 00:16:44,300 en eftir það gerðu þeir ekki. Og hvers vegna gæti það verið? 282 00:16:44,300 --> 00:16:49,210 Hvers vegna ekki bara að nota dulmál allan tímann í tilvikum nota eins og þetta? 283 00:16:49,210 --> 00:16:53,700 Hvað er það? Ég held ég hafi heyrt eitthvað. [Nemandi] Speed. 284 00:16:53,700 --> 00:16:56,250 Hraði, ekki satt? There ert lifnaðarhættir í kringum þetta. 285 00:16:56,250 --> 00:16:59,610 En ef þú bara svona að hugsa um það rökrétt, ef þú dulkóða eitthvað, 286 00:16:59,610 --> 00:17:01,820 þú þarft að gera að minnsta kosti aðeins meiri vinnu. 287 00:17:01,820 --> 00:17:05,460 Í pset 2 þegar innleitt Caesar eða Vigenere eða jafnvel sprunga, 288 00:17:05,460 --> 00:17:07,760 bara prenta streng er tiltölulega auðvelt. 289 00:17:07,760 --> 00:17:12,040 Dulkóðun og þá prenta streng óverulega krefst aðeins meiri vinnu. 290 00:17:12,040 --> 00:17:14,520 >>  Fyrir frábær vinsælustu vefsíður eins og Google og Facebook, 291 00:17:14,520 --> 00:17:18,839 Ef þú þarft að gera meiri vinnu fyrir hvern notanda fyrir hvert einasta vefsíðu sem þeir heimsækja, 292 00:17:18,839 --> 00:17:20,520 sem tekur bara meira CPU tíma. 293 00:17:20,520 --> 00:17:22,920 Og ef þú þarft meira CPU tíma, gætir þú þurft fleiri netþjóna, 294 00:17:22,920 --> 00:17:24,270 sem þýðir að þú gætir þurft meiri pening. 295 00:17:24,270 --> 00:17:27,579 Og svo í mörg ár þetta bara virkilega ekki sem best framkvæmd. 296 00:17:27,579 --> 00:17:31,440 Fólk myndi nota SSL dulkóðun aðeins þegar þeir þörf á. 297 00:17:31,440 --> 00:17:34,960 En það kom í ljós, og eins og þessi náungi með Firesheep gerði frábær skýr, 298 00:17:34,960 --> 00:17:37,920 þegar þú krakkar sem eru nú á Facebook núna - 299 00:17:37,920 --> 00:17:39,880 Út af forvitni, við skulum sjá hvort þú munt Fess upp. 300 00:17:39,880 --> 00:17:42,620 Ef þú ert á Facebook núna í einhverju flipi, jafnvel ef það er ekki foregrounded, 301 00:17:42,620 --> 00:17:46,610 er URL HTTP eða HTTPS? 302 00:17:46,610 --> 00:17:50,560 [Margar nemendur] S. S? [Hlátur] 303 00:17:50,560 --> 00:17:55,510 Allt í lagi. Allir HTTP? Bara 1? Allt í lagi. 304 00:17:55,510 --> 00:17:58,940 Svo okkur öll geta reiðhestur Facebook reikning þessi strákur er núna. 305 00:17:58,940 --> 00:18:04,100 Fyrir the hluti það hefur orðið rennismiður á við vanræksla, að minnsta kosti á sumum vefsíðum. 306 00:18:04,100 --> 00:18:08,120 Og langa sögu stutta, ef vefur umferð er ekki dulkóðað, 307 00:18:08,120 --> 00:18:12,960 Ekki eini hjartarskinn the HTML fara fram og til baka yfir WiFis unencrypted, 308 00:18:12,960 --> 00:18:16,760 svo ekki fara hluti eins og smákökur og til baka um loft 309 00:18:16,760 --> 00:18:18,940 án hvers konar dulkóðun. 310 00:18:18,940 --> 00:18:23,540 Svo ef þú ert bara smá kunnátta forritun eða hluti af Googling færni 311 00:18:23,540 --> 00:18:27,410 að finna frjáls hugbúnaður sem gerir þetta, allt sem þú þarft að gera er að sitja á Starbucks 312 00:18:27,410 --> 00:18:30,680 eða sitja í flugstöð þar sem er almennt unencrypted WiFi 313 00:18:30,680 --> 00:18:36,070 og bara horfa á leitarorð eins og Set-Cookie: eða PHPSESSID 314 00:18:36,070 --> 00:18:39,300 vegna þess að ef þú ert tæknilega kunnátta bara horfa á WiFi 315 00:18:39,300 --> 00:18:43,010 fyrir alla bita sem rennsli um loft fyrir þessu mynstri, 316 00:18:43,010 --> 00:18:50,840 getur þú þá sagt að PHPSESSID gaur verður að vera bo8dal og svo framvegis. 317 00:18:50,840 --> 00:18:53,890 Og svo aftur ef þú ert nægilega tæknilega kunnáttu eða hafa rétt tól, 318 00:18:53,890 --> 00:18:58,890 þú getur þá bara endurskilgreina eigin vafranum þínum til að byrja að kynna að hönd stimpil 319 00:18:58,890 --> 00:19:05,030 til Facebook.com og Facebook er bara að fara að gera ráð fyrir að þú ert þessi gaur 320 00:19:05,030 --> 00:19:09,880 því allt sem þeir vita ekki hver þú ert en það sem þú hefur þessa einstöku auðkenni. 321 00:19:09,880 --> 00:19:14,650 Svo ef þú stela að einstaka auðkenni og kynna það til the vefur framreiðslumaður og þinni, 322 00:19:14,650 --> 00:19:16,860 þeir eru bara að fara að sýna þér fréttastraumi viðkomandi er 323 00:19:16,860 --> 00:19:18,980 eða skilaboð sem manneskju eða pokes. 324 00:19:18,980 --> 00:19:23,190 >> Og ég myndi Google nú hvernig á að virkja HTTPS á Facebook kannski. 325 00:19:23,190 --> 00:19:25,150 En það er í raun eins einfalt eins og þessi. 326 00:19:25,150 --> 00:19:27,660 Og svo Facebook og Google og eins hafa fengið mjög góður á þessu, 327 00:19:27,660 --> 00:19:31,870 en hafðu auga út allt meira fyrir hvers konar vefsíður sem þú heimsækir sem ekki nota HTTP 328 00:19:31,870 --> 00:19:35,020 og hafa einhvers konar viðkvæmum upplýsingum á þeim, 329 00:19:35,020 --> 00:19:37,490 hvort sem það er fjárhagslega eða persónulega eða þess háttar. 330 00:19:37,490 --> 00:19:43,180 Ef þeir eru ekki að nota þetta, alveg hugsanlega hægt smákökur eins og þetta vera mjög auðveldlega stolið 331 00:19:43,180 --> 00:19:46,270 og svikin, og það er nákvæmlega það Firesheep gerði. 332 00:19:46,270 --> 00:19:48,250 Þú varst ekki að vera forritari. 333 00:19:48,250 --> 00:19:51,680 Allt sem þú þurfti að gera var að hafa internettengingu, sækja þetta ókeypis tól, 334 00:19:51,680 --> 00:19:56,490 og hvað það myndi gera er að skrá þig inn og þá myndi sýna þér Facebook nöfn 335 00:19:56,490 --> 00:20:00,170 allra í Sanders, í þessu tiltekna sýning, í kringum þig 336 00:20:00,170 --> 00:20:03,260 og allt sem þú þurfti að gera var að smella á nafn þeirra og hugbúnaður sjálfvirkan the aðferð 337 00:20:03,260 --> 00:20:05,970 að sjúga upp í nefið sem kex, kynna það á Facebook eins og þitt eigið, 338 00:20:05,970 --> 00:20:07,990 og voila, þú ert skráður inn 339 00:20:07,990 --> 00:20:11,190 Svo er þetta annað þeirra "ekki gera þetta" opinberlega. 340 00:20:11,190 --> 00:20:14,660 Ef þú ert með eigin heimili net og þú vilt að tinker, fyrir alla muni, 341 00:20:14,660 --> 00:20:17,530 en átta sig þetta er yfir línuna á háskólastigi umhverfi. 342 00:20:17,530 --> 00:20:20,030 >> En markmiðið hér er virkilega að leggja áherslu á ekki hvernig á að gera þetta 343 00:20:20,030 --> 00:20:22,320 en hvernig á að verjast þessum tegundum af hlutum. 344 00:20:22,320 --> 00:20:26,180 Og léttvæg lausn hér, jafnvel þó það sjálft sé gölluð, 345 00:20:26,180 --> 00:20:31,360 er að í raun að draga úr notkun á öllum stöðum sem eru ekki að nota HTTPS stöðugt. 346 00:20:31,360 --> 00:20:34,520 Svo síður eins og Facebook og Google hefur sífellt gátreitina 347 00:20:34,520 --> 00:20:36,200 þar sem þú getur valið á þessari tegund af hlutur, 348 00:20:36,200 --> 00:20:40,000 og bankar hafa haft þetta í mörg ár fyrir svipuðum ástæðum. 349 00:20:40,000 --> 00:20:43,580 Svo bara smá ótta þáttur ef við getum. En það er það í hnotskurn. 350 00:20:43,580 --> 00:20:46,420 Það er hvernig miðlara man hver þú ert. 351 00:20:46,420 --> 00:20:50,760 Og eins fljótt og þeir geta muna hver þú ert, þeir geta muna neitt um þig 352 00:20:50,760 --> 00:20:56,140 að forritarinn hafi geymt inni í þessum sérstaka superglobal heitir $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 Og fyrir pset 7 við erum að nota það trivially bara að muna að int, 354 00:20:59,750 --> 00:21:02,260 þ.e. einstakt auðkenni notanda, sem hefur skráður í, 355 00:21:02,260 --> 00:21:05,880 þannig að við vitum að þeir hafa verið þar áður. 356 00:21:05,880 --> 00:21:12,450 Einhverjar spurningar þá á fundum eða kex eða þess háttar? 357 00:21:12,450 --> 00:21:15,130 Firesheep virkar ekki eins vel lengur, 358 00:21:15,130 --> 00:21:18,310 og þú þarft að setja tölvuna í sérstökum opnum ham 359 00:21:18,310 --> 00:21:20,700 þannig að þú ert í raun að hlusta á umferð utan ykkur. 360 00:21:20,700 --> 00:21:23,940 Svo ef þú ert að sækja Firesheep, átta sig að það er ekki alveg eins auðvelt 361 00:21:23,940 --> 00:21:26,850 eins og það var einu sinni að sýna fram á. 362 00:21:26,850 --> 00:21:29,070 Allt í lagi. Og ekki gera það í Sanders. Gera það heima. 363 00:21:29,070 --> 00:21:30,890 Gagnagrunna. 364 00:21:30,890 --> 00:21:33,580 Eitt af því sem við gerðum í pset 7 mjög vísvitandi 365 00:21:33,580 --> 00:21:37,780 var við að gefa þér gagnagrunni sýnishorn borð fyrir notendur sem hefur einhverja notandi auðkenni, 366 00:21:37,780 --> 00:21:41,020 sumir notendanöfn, og sumir dulkóðuð lykilorð þar. 367 00:21:41,020 --> 00:21:44,520 Og eins og þú sérð, ef þú hefur ekki nú þegar, þú ert að fara að breyta töflunni svolítið. 368 00:21:44,520 --> 00:21:47,710 Þú ert að fara að þurfa að bæta við sumir skyndiminni hvert notendur í þeirri töflu, 369 00:21:47,710 --> 00:21:51,130 og þú ert að fara að bæta við öðru sögu borð, söfnum borð, 370 00:21:51,130 --> 00:21:53,310 eða kannski kalla það eitthvað annað. 371 00:21:53,310 --> 00:21:56,740 En hvað varðar að hugsa um hvernig á að gera þetta, við skulum opna þetta tól 372 00:21:56,740 --> 00:22:00,570 sem við notuðum á föstudag, en ef ókunnur, tækið kemur með tól 373 00:22:00,570 --> 00:22:04,680 heitir phpMyAdmin sem tilviljun skrifaður í PHP, 374 00:22:04,680 --> 00:22:07,950 en tilgangur hennar í lífinu, eftir að ég að skrá þig inn hér eins jharvard með Crimson, 375 00:22:07,950 --> 00:22:15,160 er að gefa mér að notandi-vingjarnlegur leið til að skoða og breyta gagnagrunninum mínum. 376 00:22:15,160 --> 00:22:18,040 >> Gagnagrunnurinn sem ég er að keyra á tækinu heitir MySQL. 377 00:22:18,040 --> 00:22:23,420 Þetta er mjög vinsæll, og það er frjáls opinn uppspretta gagnasafn sem er frábærlega þægilegur í notkun, 378 00:22:23,420 --> 00:22:25,620 sérstaklega við framan endar svona. 379 00:22:25,620 --> 00:22:29,350 Hvað tól leyfir mér að gera, til dæmis, er pota í kringum borð. 380 00:22:29,350 --> 00:22:30,890 Leyfðu mér að fara á undan og gera það. 381 00:22:30,890 --> 00:22:36,580 Á föstudeginum búið til töflu sem heitir nemendur sem var frábær einfalt. 382 00:22:36,580 --> 00:22:41,680 Það var 3 dálka - ID, nafn og email - og ég sett handvirkt nokkrar línur 383 00:22:41,680 --> 00:22:44,420 eins og Davíð og Mike í þessu tiltekna dæmi. 384 00:22:44,420 --> 00:22:47,290 Við skulum taka þetta aðeins lengra, og við skulum gera ráð fyrir að við viljum muna fleiri 385 00:22:47,290 --> 00:22:49,660 en bara nafn og email um notanda. 386 00:22:49,660 --> 00:22:53,090 Leyfðu mér að smella Uppbygging upp hér að ofan. 387 00:22:53,090 --> 00:22:55,440 Og aftur, pset gengur í gegnum viðeigandi ráðstafanir hér, 388 00:22:55,440 --> 00:22:58,150 svo ekki hafa áhyggjur ef eitthvað af þessu er dálítið fljótur. 389 00:22:58,150 --> 00:22:59,690 Og ég ætla að smella á hér. 390 00:22:59,690 --> 00:23:02,270 Ég ætla að bæta við nokkrum fjölda dálka eftir tölvupósti 391 00:23:02,270 --> 00:23:04,130 vegna þess að ég vil bæta við eitthvað eins og hús. 392 00:23:04,130 --> 00:23:06,640 Ég gleymdi að taka hús nemanda. 393 00:23:06,640 --> 00:23:11,400 Leyfðu mér smellir á Áfram og nú höfum við þetta form sem því miður er dálítið breiður frá vinstri til hægri, 394 00:23:11,400 --> 00:23:13,710 en ég ætla að kalla nafn á þessu sviði hús, 395 00:23:13,710 --> 00:23:16,050 og þá tegund sem ég hef nú að velja. 396 00:23:16,050 --> 00:23:18,870 Svo skulum við hafa stutt spjall um ýmsar gerðir í MySQL 397 00:23:18,870 --> 00:23:24,590 því en PHP er veikt slegið og það spilar svona hratt og laus við gerðum, 398 00:23:24,590 --> 00:23:29,430 í gagnagrunni sérstaklega er það frábær mikilvægt að raunverulega nota skrifa til þinn kostur 399 00:23:29,430 --> 00:23:33,260 vegna þess að einn af þeim hlutum sem MySQL og aðrar vélar gagnagrunni getur gert fyrir þig 400 00:23:33,260 --> 00:23:37,910 er að tryggja að þú setur ekki svikinn gögn inn í gagnagrunninn þinn. 401 00:23:37,910 --> 00:23:41,850 Þetta er tegund af frjáls villuprófun í boði fyrir þig. 402 00:23:41,850 --> 00:23:46,250 >> Hús við augljóslega vilt ekki að vera int, sem er 32-bita gildi í MySQL. 403 00:23:46,250 --> 00:23:49,810 Við gerðum tala stuttlega á föstudaginn um VARCHAR, sem stendur fyrir breytu lengd bleikju. 404 00:23:49,810 --> 00:23:54,720 Hvað er þetta? Þetta gerir þér kleift að tilgreina að þú vilt þetta til að vera a band af einhverju tagi. 405 00:23:54,720 --> 00:23:56,840 Þú gera ekki raunverulega vita fyrirfram hversu lengi það er, 406 00:23:56,840 --> 00:24:00,100 þannig að við munum geðþótta segja hús nafn geta vera 255 stafir, 407 00:24:00,100 --> 00:24:04,190 en þú getur farið með 32, 64 - allir tala í raun. 408 00:24:04,190 --> 00:24:10,700 En kostur af using a VARCHAR yfir reit sem heitir bleikju er það? 409 00:24:10,700 --> 00:24:15,110 Bara innsær Ef ég skruna niður, eftir það er bleikja og það varchar. 410 00:24:15,110 --> 00:24:19,520 VARCHAR er breytilegt lengd bleikju, bleikju er fastur lengd bleikju. 411 00:24:19,520 --> 00:24:24,730 Þannig byggist aðeins á sú skilgreining, hvað er kostur eða ókostur af öllum þessum? 412 00:24:24,730 --> 00:24:30,490 Með öðrum orðum, sem þykir vænt um greinarmun, eða hvers vegna ættir þú að kæra? 413 00:24:31,660 --> 00:24:35,750 >> Já. [Nemandi] VARCHAR hefur meiri sveigjanleika en tekur meira minni. 414 00:24:35,750 --> 00:24:40,730 Gott. VARCHAR tekur upp meira - Við skulum sjá. Ég er ekki viss um að ef ég heyrði það rétt. 415 00:24:40,730 --> 00:24:42,360 Getur þú sagt það einu sinni enn? 416 00:24:42,360 --> 00:24:45,850 [Nemandi] Ég sagði varchar sennilega hefur meiri sveigjanleika en það tekur meira minni. 417 00:24:45,850 --> 00:24:51,170 Áhugavert. Allt í lagi. VARCHAR gefur sennilega meiri sveigjanleika en tekur meira minni. 418 00:24:51,170 --> 00:24:53,220 Hið síðarnefnda er ekki endilega satt. 419 00:24:53,220 --> 00:24:56,290 Það fer eftir samhenginu, en við skulum koma aftur til. 420 00:24:56,290 --> 00:25:03,230 >> [Inaudible nemandi svar] Einmitt. 421 00:25:03,230 --> 00:25:06,900 Það er reyndar raunin að bleikju venjulega nota meira minni 422 00:25:06,900 --> 00:25:10,950 vegna þess að bleikju, eins og í C, er eins og band, það er fylki af stöfum. 423 00:25:10,950 --> 00:25:13,690 Svo ef þú segja char sviði lengd 255, 424 00:25:13,690 --> 00:25:16,910 gagnagrunnurinn er bókstaflega að fara að gefa þér 255 stafi. 425 00:25:16,910 --> 00:25:22,290 Og ef húsið endar að vera Mather og 6 stafir samtals, 426 00:25:22,290 --> 00:25:25,090 þú ert að sóa yfir 200 stafi. 427 00:25:25,090 --> 00:25:29,640 >> Svo varchar raun notar bara eins marga stafi og er nauðsynlegt 428 00:25:29,640 --> 00:25:31,590 upp að hámarki. 429 00:25:31,590 --> 00:25:35,470 En það verð sem þú greiðir er í raun árangur, hugsanlega. 430 00:25:35,470 --> 00:25:39,740 Ef þú veist fyrirfram að allir strengir eru að fara að vera 8 stafir - 431 00:25:39,740 --> 00:25:43,090 til dæmis, gera ráð fyrir að þú þarft lykilorð af lengd 8 - 432 00:25:43,090 --> 00:25:47,350 The kosti þess að nota char sviði stundum, þó ekki oft, 433 00:25:47,350 --> 00:25:51,100 er að tilgreina fasta lengd fyrir eitthvað eins og lykilorð 434 00:25:51,100 --> 00:25:53,300 því nú í gagnagrunni getur verið jafnvel betri. 435 00:25:53,300 --> 00:25:58,160 Ef það veit að hvert char sviði, hvert band í dálki er sama lengd, 436 00:25:58,160 --> 00:26:00,780 þú færð til baka lögun af handahófi aðgang. 437 00:26:00,780 --> 00:26:05,110 Þú getur hoppað um meðal ýmissa bleikju sviðum í töflu gagnasafninu 438 00:26:05,110 --> 00:26:07,940 því að hugsa um gagnagrunn og línum og dálkum. 439 00:26:07,940 --> 00:26:11,670 Svo ef hver og einn af the band er sama lengd, 440 00:26:11,670 --> 00:26:17,820 þú veist að sá fyrsti er í bæti 0, sá næsti er í bæti 8 441 00:26:17,820 --> 00:26:20,240 og svo 16 og svo 24 og svo framvegis. 442 00:26:20,240 --> 00:26:24,500 Svo ef allir strengir eru í sömu lengd, getur þú hoppa í kring miklu skilvirkari. 443 00:26:24,500 --> 00:26:26,710 Svo það getur verið kostur í skilmálar af flutningur, 444 00:26:26,710 --> 00:26:29,420 en venjulega þú þarft ekki lúxus að vita fyrirfram, 445 00:26:29,420 --> 00:26:32,170 svo er varchar leiðin til að fara. 446 00:26:32,170 --> 00:26:36,030 Hér er annað smáatriði sem jafnvel Facebook hljóp inn á endanum. 447 00:26:36,030 --> 00:26:39,670 Ints eru frábær, og við notum svoleiðis þá sjálfgefið hvenær við viljum tala, 448 00:26:39,670 --> 00:26:41,750 en það eru bara 32 bita. 449 00:26:41,750 --> 00:26:46,210 >> Og jafnvel þó að Facebook er ekki alveg með 4 milljarða notendur nú, 450 00:26:46,210 --> 00:26:48,680 það er örugglega einhver þarna úti með marga reikninga 451 00:26:48,680 --> 00:26:50,960 eða reikningum sem hafa verið opnuð og síðan lokað, 452 00:26:50,960 --> 00:26:55,130 og svo Facebook sjálft tel ég fyrir nokkrum árum þurfti að umskipti úr int 453 00:26:55,130 --> 00:27:00,010 við, eins og er viðeigandi kallað, bigint, sem er bara 64 bita í staðinn. 454 00:27:00,010 --> 00:27:02,230 Svo er þetta líka hönnun ákvörðun. 455 00:27:02,230 --> 00:27:06,570 Þú vildi vera ótrúlega heppinn ef endanleg verkefnið snýr gangsetning, 456 00:27:06,570 --> 00:27:10,010 hefur 4 milljarða og 1 notendur, gefa eða taka, 457 00:27:10,010 --> 00:27:13,200 í því tilviki með ints gæti verið smá skammsýni. 458 00:27:13,200 --> 00:27:16,230 En í raun, notendur borð er líklega fínn með ints. 459 00:27:16,230 --> 00:27:19,340 En fyrir eitthvað eins pset 7, eins og borð sögu, 460 00:27:19,340 --> 00:27:23,700 þú gætir hafa þúsundir, milljónir notenda ef þú þróast í etrade.com. 461 00:27:23,700 --> 00:27:26,020 Svo á meðan þú getur ekki haft fleiri en 4 milljarða notendur, 462 00:27:26,020 --> 00:27:30,070 þeim notendum sem þú ert kannski að hafa meira en 4 milljarða viðskipti með tímanum - 463 00:27:30,070 --> 00:27:33,200 kaupir og selur og það í sögu sinni. 464 00:27:33,200 --> 00:27:38,090 Svo ef þú gerir ráð fyrir - aftur, þetta eru góðar vandamál að hafa ef þú hefur þetta mikið af gögnum - 465 00:27:38,090 --> 00:27:40,920 Ef þú gerir ráð fyrir gögn umfram stærð int 466 00:27:40,920 --> 00:27:47,740 fara með eitthvað eins bigint er átt ekki oft nóg samþykkt af hönnuðum 467 00:27:47,740 --> 00:27:49,710 vegna þess að fólk tala sem er ekki að fara að vera vandamál, 468 00:27:49,710 --> 00:27:51,930 en það er það auðvelt að velja eitthvað stærra en það. 469 00:27:51,930 --> 00:27:55,380 Decimal við erum að nota í pset 7, sem tilgreinir fasta nákvæmni 470 00:27:55,380 --> 00:27:59,840 svo þú getur forðast málefni sem felur fljóta og tvöfaldar og reals og þess háttar. 471 00:27:59,840 --> 00:28:02,440 >> Og þá er það einhverjum öðrum sviðum hér. Við munum veifa höndum okkar á þá að einhverju leyti. 472 00:28:02,440 --> 00:28:07,270 En dagsetningar, tíma hafa öll tilskilin sniði í MySQL, 473 00:28:07,270 --> 00:28:10,830 og kostur geyma dagsetningum sem dagsetningar og ekki varchars 474 00:28:10,830 --> 00:28:15,730 þýðir að gagnagrunni getur raunverulega forsníða þá í mismunandi snið, 475 00:28:15,730 --> 00:28:18,800 hvort Bandaríkjunum sniði eða Evrópu sniði eða þess háttar - en þú vilt það - 476 00:28:18,800 --> 00:28:22,700 miklu betur en ef það væri bara almenn varchar. 477 00:28:22,700 --> 00:28:25,150 Og þá er það einhver önnur tvöfaldur, varbinary, dropar. 478 00:28:25,150 --> 00:28:28,580 Þetta eru tvöfaldur stór hluti, og þú getur líka geymt tvöfaldur gögn 479 00:28:28,580 --> 00:28:30,750 og geometrísk gögn í gagnagrunni. 480 00:28:30,750 --> 00:28:34,350 En fyrir okkur munum við yfirleitt sama um ints og varchars og þess háttar. 481 00:28:34,350 --> 00:28:36,230 Við skulum ljúka upp þetta dæmi með hús. 482 00:28:36,230 --> 00:28:40,030 House Ég ætla að geðþótta sagt verður 255 tákn. 483 00:28:40,030 --> 00:28:42,850 Þá sjálfgefið gildi við gætum gert þetta. 484 00:28:42,850 --> 00:28:47,440 Við gætum með því að vanræksla setja alla í Mather House, til dæmis. 485 00:28:47,440 --> 00:28:49,710 Það er hvernig við gætum tilgreina að gagnagrunni 486 00:28:49,710 --> 00:28:52,460 ættu að tryggja að einhver hefur alltaf gildi. En ég ætla að fara að vera. 487 00:28:52,460 --> 00:28:55,270 Í raun, að fólk sem býr á háskólasvæðinu og ekki í húsi, 488 00:28:55,270 --> 00:28:59,590 kannski ég vil í raun að tilgreina að sjálfgefin gildi fyrir hús er NULL, 489 00:28:59,590 --> 00:29:04,890 og þá þarf ég að athuga þennan reit og segja gagnagrunninn það er allt í lagi ef húsið notandans er NULL. 490 00:29:04,890 --> 00:29:07,270 >> Aftur, þetta er annar vörn vélbúnaður sem þú getur sett í stað 491 00:29:07,270 --> 00:29:10,590 svo þú þarft ekki einu sinni að setja það í PHP kóðanum þínum endilega. 492 00:29:10,590 --> 00:29:14,630 Gagnagrunnurinn mun tryggja að hlutirnir séu eða séu ekki NULL. 493 00:29:14,630 --> 00:29:17,310 Og svo loks, eigindir. 494 00:29:17,310 --> 00:29:18,920 Ekkert af þessu eru mjög viðeigandi. 495 00:29:18,920 --> 00:29:22,880 Binary, óundirritaður - ekkert af þeim eiga við VARCHAR. 496 00:29:22,880 --> 00:29:24,220 Index. 497 00:29:24,220 --> 00:29:27,320 Hefur einhver vita eða muna eða hafa giska um hvað vísitala er 498 00:29:27,320 --> 00:29:29,510 fyrir eitthvað eins og hús? 499 00:29:29,510 --> 00:29:35,240 Þetta er of raun mikilvægt og tiltölulega auðvelt hönnun ákvörðun. 500 00:29:35,240 --> 00:29:39,200 Fyrir þá sem hafa ekki enn séð hana, á föstudaginn við ræddum stuttlega um aðal lykla. 501 00:29:39,200 --> 00:29:43,240 Í gagnagrunninum borð, aðal lykill er á sviði eða dálk 502 00:29:43,240 --> 00:29:46,270 sem auðkennir einstaklega raðir í töflunni. 503 00:29:46,270 --> 00:29:49,150 Svo í núverandi borð við höfum auðkenni, höfum við nöfn og tölvupósti. 504 00:29:49,150 --> 00:29:52,050 Hver af þeim er bestur frambjóðandi að vera aðal lykill, 505 00:29:52,050 --> 00:29:55,810 Hlutverk hennar er að einstaklega þekkja raðir? 506 00:29:55,810 --> 00:29:57,530 Sennilega ID. 507 00:29:57,530 --> 00:29:59,930 Að öllum líkindum getum við líka notað það þó? 508 00:29:59,930 --> 00:30:02,860 Kannski væri hægt að nota tölvupóst vegna í orði það er einstakt 509 00:30:02,860 --> 00:30:05,380 nema fólk er að deila email reikningur. 510 00:30:05,380 --> 00:30:09,980 En raunin er sú að ef þú ert að nota tölugildi auðkenni eins og 1234, 511 00:30:09,980 --> 00:30:14,170 það er bara 32 bita, en netfang gæti verið þetta mörg bæti eða þetta mörg bæti. 512 00:30:14,170 --> 00:30:16,610 Svo hvað varðar skilvirkni fyrir einstaka auðkennum, 513 00:30:16,610 --> 00:30:19,270 það hefur tilhneigingu til að vera gott bara að nota int 514 00:30:19,270 --> 00:30:23,090 jafnvel ef þú hafa sumir band frambjóðandi sem þú getur að öllum líkindum notað. 515 00:30:23,090 --> 00:30:26,760 >> Fyrir eitthvað eins og hús, ætti þetta ekki að vera helsti lykill 516 00:30:26,760 --> 00:30:30,770 því þá aðeins 1 maður gæti lifað í Mather og 1 manneskja í Currier og þess háttar. 517 00:30:30,770 --> 00:30:32,790 Á sama hátt, þetta ætti ekki að vera einstakt. 518 00:30:32,790 --> 00:30:37,830 Munurinn milli aðal-og einstakt er að um er að ræða núverandi borð okkar, 519 00:30:37,830 --> 00:30:42,620 ID myndi vera aðal en tölvupóstur er ekki fyrst og fremst vegna þess að við getið bara - 520 00:30:42,620 --> 00:30:44,740 flutningur - en það ætti samt að vera einstakt. 521 00:30:44,740 --> 00:30:47,200 Svo þú getur samt framfylgja sérstöðu án þess að gera kröfu 522 00:30:47,200 --> 00:30:49,520 að það er frábær mikilvægt aðal sviði. 523 00:30:49,520 --> 00:30:52,610 En þetta er alveg gagnlegt: Index. 524 00:30:52,610 --> 00:30:56,180 Ef þú veist fyrirfram fyrir síðasta verkefni fyrir pset 7, eða almennt, 525 00:30:56,180 --> 00:30:59,480 að þessi sviði hús er að fara að vera eitthvað sem þú leita á fullt 526 00:30:59,480 --> 00:31:01,910 með því að velja leitarorð eða eitthvað annað, 527 00:31:01,910 --> 00:31:05,180 þá getur þú preemptively segja gagnagrunninn til að vinna galdur hennar 528 00:31:05,180 --> 00:31:10,510 og ganga úr skugga um að það skapar í minni allir ímynda gagnauppbyggingu nauðsynlegt 529 00:31:10,510 --> 00:31:13,770 að flýta leit byggt á húsinu. 530 00:31:13,770 --> 00:31:17,860 Kannski það mun nota kjötkássa borð, kannski það mun nota tengda listanum. 531 00:31:17,860 --> 00:31:21,260 Í raun og veru, það hefur tilhneigingu til að nota tré, oft uppbygging kallast B-tré - 532 00:31:21,260 --> 00:31:24,090 ekki tvöfaldur tré en B-tré - sem er mjög breiður tré 533 00:31:24,090 --> 00:31:27,370 sem þú gætir séð í bekknum eins CS124, gögnin mannvirki flokki. 534 00:31:27,370 --> 00:31:31,800 En í stuttu máli, þú þarft ekki að hafa áhyggjur af því að þegar þú notar sviði gagnasafn hugbúnaður. 535 00:31:31,800 --> 00:31:35,890 Þú getur bara sagt það, "Index þessu sviði svo ég get leitað á það betur." 536 00:31:35,890 --> 00:31:40,250 >> Ef þú skilur þetta burt og þú reynir að leita fyrir alla í gagnagrunninum sem býr í Mather, 537 00:31:40,250 --> 00:31:42,710 það mun flytjast inn línulega leit. 538 00:31:42,710 --> 00:31:45,360 Og ef þú hefur fengið 6.000 undergrads öll búa í einhverju húsi, 539 00:31:45,360 --> 00:31:47,900 þú ert að fara að leita á allt borðið til að finna Matherites, 540 00:31:47,900 --> 00:31:52,190 en ef þú segir Index, vonandi verður eitthvað nálægt því að lógaritmískum leit 541 00:31:52,190 --> 00:31:54,510 að finna þær tegundir nemenda. 542 00:31:54,510 --> 00:31:56,750 Þetta er bara frjáls lögun til að kveikja á, 543 00:31:56,750 --> 00:31:59,530 jafnvel þó að það er komið á genginu einhverjum pláss. 544 00:31:59,530 --> 00:32:02,690 Loksins, Auto-vöxtur, þessi AI sviði, 545 00:32:02,690 --> 00:32:05,830 sem þýðir bara ef það er int og þú vilt ekki að standa að hækka það sjálfur 546 00:32:05,830 --> 00:32:07,570 í hvert skipti sem það er nýr notandi, athuga það, 547 00:32:07,570 --> 00:32:11,910 og hver notandi sem fær sett sjálfkrafa fá nýtt auðkenni. 548 00:32:11,910 --> 00:32:15,620 Skulum smella á Vista og nú skulum finna sök með þessa hönnun. 549 00:32:15,620 --> 00:32:20,200 Ef ég fer í Browse, eftir að bæði Mike og húsið mitt er NÚLL. 550 00:32:20,200 --> 00:32:22,420 Ég get notað phpMyAdmin að breyta þessu handvirkt. 551 00:32:22,420 --> 00:32:25,110 Ég get farið hér og tegund í Mather og ýta síðan á Enter, 552 00:32:25,110 --> 00:32:27,740 og nú eftir borðið er öðruvísi. 553 00:32:27,740 --> 00:32:29,270 En eftir að ég gæti gert eitthvað annað eins og heilbrigður. 554 00:32:29,270 --> 00:32:33,530 ID Davíðs er 1, svo phpMyAdmin aftur er bara stjórnsýslu tól; 555 00:32:33,530 --> 00:32:35,970 þetta er ekki eitthvað sem notendur þínir eru alltaf að fara að sjá. 556 00:32:35,970 --> 00:32:38,810 Svo ef ég smelli í stað SQL flipann upp ofan - 557 00:32:38,810 --> 00:32:41,450 og aftur, pset 7 mun kynna þú til fleiri af þessum fyrirspurnum - 558 00:32:41,450 --> 00:32:45,260 Ég get með höndunum framkvæma SQL Structured Query Language stjórn 559 00:32:45,260 --> 00:32:56,410 UPDATE notandi SET hús = 'Pfoho' HVAR id = 1. 560 00:32:56,410 --> 00:33:00,830 Þessar SQL fyrirspurnir eru vel nóg, nokkuð læsileg frá vinstri til hægri. 561 00:33:00,830 --> 00:33:04,350 Uppfæra notenda töflu, stilla sviði heitir hús til Pfoho 562 00:33:04,350 --> 00:33:06,830 þar sem ID notanda er 1. 563 00:33:06,830 --> 00:33:11,480 Eða ég gæti jafnvel gera þar email = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 Svo lengi sem það auðkennir mig, sem myndi vinna eins og heilbrigður. 565 00:33:14,860 --> 00:33:18,810 En ID hefur tilhneigingu til að vera meiri árangur, þannig að við skulum gera það. 566 00:33:18,810 --> 00:33:22,950 Skulum smelltu á Áfram. Jæja, lecture.users er ekki til. Hvað er villa minn? 567 00:33:22,950 --> 00:33:26,220 Hvað er borðið í raun kallað hér? 568 00:33:26,220 --> 00:33:28,770 Það heitir nemendur bara því það er það sem við gerðum upp hér efst til vinstri. 569 00:33:28,770 --> 00:33:31,860 Það heitir nemendur, ekki notendur. Svo smellir á Áfram nú. 570 00:33:31,860 --> 00:33:34,330 1 röð fyrir áhrifum. Fyrirspurn tók 0.01 sekúndur. 571 00:33:34,330 --> 00:33:38,010 Ef ég smelli Browse nú, nú Malan líf í Pfoho. 572 00:33:38,010 --> 00:33:42,070 Svo er það annað bragð af SQL, en pset mun ganga þú í gegnum aðeins meira af því. 573 00:33:42,070 --> 00:33:44,710 >> Það er heimskulegt ákvörðun sem ég hef þegar gert hér. 574 00:33:44,710 --> 00:33:47,820 Ég myndi halda því fram að þetta gagnasafn hönnun er óhagkvæm 575 00:33:47,820 --> 00:33:51,650 vegna þess að fleira fólk sem ég bæta við nemendur töflunni 576 00:33:51,650 --> 00:33:54,730 meira af okkur ég byrja að bæta, því fleiri TFS ég byrja að bæta, 577 00:33:54,730 --> 00:33:58,320 við erum að fara að byrja að sjá hvað uppsagna í þessari töflu? 578 00:34:00,840 --> 00:34:06,020 >> Já. [Nemandi] Sjá að það er hjá nemendum, við erum að nota sama [inaudible] 579 00:34:06,020 --> 00:34:07,360 Sama - Einmitt, einmitt. 580 00:34:07,360 --> 00:34:10,400 Svo ef 400 manns búa í Mather, gefa eða taka, 581 00:34:10,400 --> 00:34:15,000 loksins þessari töflu er að fara að hafa 400 línur sem segja "Mather," "Mather," 582 00:34:15,000 --> 00:34:16,590 "Mather," "Mather," "Mather." 583 00:34:16,590 --> 00:34:19,820 Við erum að sóa öllum þessum bytes, og there 'a par af takeaways þar. 584 00:34:19,820 --> 00:34:23,080 1, það er brjálaður horn tilfelli þar sem ef einhver greiðir mikið af peningum 585 00:34:23,080 --> 00:34:25,949 og renames Mather, höfum við nú að breyta öllu gagnagrunn borð okkar. 586 00:34:25,949 --> 00:34:29,730 Það er ekki að fara að gerast oft, þó Pfoho var einu sinni kallað North House 15 árum síðan, 587 00:34:29,730 --> 00:34:32,310 svo gerist það. En það er ekki allt sem sannfærandi. 588 00:34:32,310 --> 00:34:36,000 Meira sannfærandi en horn tilfelli eins og þessi af að þurfa að uppfæra gögn í einu 589 00:34:36,000 --> 00:34:41,150 í gagnagrunninum er hvers vegna þú ert að geyma Mather aftur og aftur og aftur og aftur? 590 00:34:41,150 --> 00:34:43,020 Það er a einhver fjöldi af chars, 6 tákn. 591 00:34:43,020 --> 00:34:45,500 Getum við ekki gert enn betur en það, sérstaklega fyrir Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 Víst getum við gert betur en marga stafi. 593 00:34:48,320 --> 00:34:51,790 Hvers vegna ekki bara að tengja einstakt auðkenni við hvert hús 594 00:34:51,790 --> 00:34:55,020 og geyma það fyrir hvern notanda? Svo skulum reyna þetta. 595 00:34:55,020 --> 00:35:00,610 Frekar en bara að nota nemendur borð, láta mig fara upp á fyrirlestur gagnagrunn minn upp hér efst til vinstri. 596 00:35:00,610 --> 00:35:02,600 Tilkynning hér segir Búa töflu. 597 00:35:02,600 --> 00:35:04,550 Leyfðu mér að búa til nýja töflu sem kallast hús. 598 00:35:04,550 --> 00:35:08,880 Fjöldi dálka er að fara að vera 2. Enter. 599 00:35:08,880 --> 00:35:11,200 Nú hef ég 2 reiti. 600 00:35:11,200 --> 00:35:14,600 Ég ætla að kalla þetta nafn, og það er að fara til vera a varchar af lengd 255, 601 00:35:14,600 --> 00:35:18,770 >> en það er nokkuð handahófskennt. Leyfðu mér að setja þetta hérna því að venju. 602 00:35:18,770 --> 00:35:22,840 Svo setja auðkenni upp hér. Við skulum gefa hvert hús einstakt auðkenni. 603 00:35:22,840 --> 00:35:25,360 Við skulum gefa hvert hús nafn. 604 00:35:25,360 --> 00:35:30,980 Skulum tilgreina að auðkenni verður óundirritaður bara með því að venju að aðeins nota jákvæðar tölur. 605 00:35:30,980 --> 00:35:35,020 Við skulum fara á undan og gefa þetta sjálfvirkt vöxtur sviði nú. 606 00:35:35,020 --> 00:35:38,160 Og þurfum við eitthvað annað? 607 00:35:38,160 --> 00:35:41,010 Við skulum fara á undan og smella á Vista. 608 00:35:41,010 --> 00:35:42,480 Nú hef ég annað borð. 609 00:35:42,480 --> 00:35:45,860 Tilkynning sem innskot þetta er örlítið Cryptic SQL skipun 610 00:35:45,860 --> 00:35:50,280 sem hefði þurft að slá handvirkt ef ekki nota stjórnsýslu tól eins phpMyAdmin. 611 00:35:50,280 --> 00:35:51,990 Svo önnur ástæða að við notum það. 612 00:35:51,990 --> 00:35:55,480 Það er frábærlega gagnlegur konar pedagogically þar sem þú getur smellt kring 613 00:35:55,480 --> 00:36:01,050 og reikna út hvernig hlutirnir virka bara að afrita og líma það sem phpMyAdmin gerði. 614 00:36:01,050 --> 00:36:04,150 En SKAPA TAFLA stjórn er það sem var bara keyrð, og hér er mitt borð. 615 00:36:04,150 --> 00:36:11,370 Leyfðu mér að fara á undan núna og nota hrár SQL frekar en oversimplify með því að smella á Insert flipann. 616 00:36:11,370 --> 00:36:15,040 Leyfðu mér að gera INSERT INTO hús, 617 00:36:15,040 --> 00:36:22,230 og ég ætla að segja að nafnið á húsinu er að fara að hafa gildi "Mather '. 618 00:36:22,230 --> 00:36:24,790 Það er það. Þetta setningafræði er svolítið dulinn. 619 00:36:24,790 --> 00:36:26,660 Þetta er nafn á þeim sviðum sem við viljum setja inn. 620 00:36:26,660 --> 00:36:30,390 Þetta eru gildi sem við viljum að setja inn í þessum sviðum. Leyfðu mér smellir á Áfram. 621 00:36:30,390 --> 00:36:34,410 1 röð sett tók 0,02 sekúndur. Leyfðu mér að smella á Browse núna. 622 00:36:34,410 --> 00:36:42,020 >> Tilkynning ef ég smella á Browse, það er Mather, sem ID er með sjálfvirkni númer 1. 623 00:36:42,020 --> 00:36:45,000 Leyfðu mér að gera eitthvað annað. Leyfðu mér að fara inn í SQL flipann. 624 00:36:45,000 --> 00:36:52,950 Setja inn í hús. Nafnið á húsinu er að fara að hafa gildi Pfoho og svo framvegis. 625 00:36:52,950 --> 00:36:56,350 Go. Og ég get haldið þessu aftur og aftur og aftur. 626 00:36:56,350 --> 00:36:59,470 Eða ef þú leiðist með phpMyAdmin, þú geta réttlátur nota the Insert flipann 627 00:36:59,470 --> 00:37:01,000 og ekki að slá inn hrátt SQL. 628 00:37:01,000 --> 00:37:04,690 Þú getur bara Bang það út hraðar með því að slá, til dæmis, Currier, Enter, 629 00:37:04,690 --> 00:37:07,610 og nú ef við smella á Browse, það er Currier með ID 3. 630 00:37:07,610 --> 00:37:09,920 Svo þetta er það sem er átt við með sjálfvirkri vöxtur. 631 00:37:09,920 --> 00:37:12,280 En nú verðum við að laga eitthvað hjá nemendum. 632 00:37:12,280 --> 00:37:16,240 Í nemendur hvað ætti gögnin gerð hússins sviði nú vera? 633 00:37:16,240 --> 00:37:19,450 Það ætti að vera int, ekki satt? 634 00:37:19,450 --> 00:37:23,950 Svo markmiðið hér er að þáttur út, annars þekkt sem staðla, borðin 635 00:37:23,950 --> 00:37:27,940 þannig að við geymum ekki upplýsingar redundantly í einhverjum af borðum mínum. 636 00:37:27,940 --> 00:37:31,130 Og aftur, leið sem við vorum á hér er að fara að segja Mather, Mather, 637 00:37:31,130 --> 00:37:34,220 Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, sem er mjög óþarfi 638 00:37:34,220 --> 00:37:36,240 hvað varðar wastefulness á tákn. 639 00:37:36,240 --> 00:37:40,820 Svo láta mig fara á undan og breyta þessu með því að smella uppbyggingu, 640 00:37:40,820 --> 00:37:44,620 og láta mig fara á undan og athuga af hús reit, smelltu á Change 641 00:37:44,620 --> 00:37:46,990 og nú ætla ég að breyta þessu að vera int. 642 00:37:46,990 --> 00:37:49,490 255 er ekki lengur máli. 643 00:37:49,490 --> 00:37:54,010 Leyfðu mér að fara á undan og segja það er allt í lagi ef það er enn NULL. Vista. 644 00:37:54,010 --> 00:37:55,870 Nú borð nemendur hefur verið breytt með góðum árangri, 645 00:37:55,870 --> 00:37:59,090 og taka aftur hús er int. 646 00:37:59,090 --> 00:38:02,220 Sem innskot, hunsa tala í sviga þegar kemur að ints. 647 00:38:02,220 --> 00:38:03,770 >> Þetta er vegna arfleifð. 648 00:38:03,770 --> 00:38:06,920 Til baka í dag þegar þú varst ekki GUI, hafði þú í staðinn a stjórn lína umhverfi, 649 00:38:06,920 --> 00:38:11,580 um 10 og 11 hins vegar tilgreind hversu margir stafir sem þú ættir að sýna 650 00:38:11,580 --> 00:38:13,950 í flugstöðinni glugga til raunverulega sýna sviðum. 651 00:38:13,950 --> 00:38:19,150 Það hefur ekkert að gera með hluti lengd á raunverulegri sviði, svo við verðum bara að hunsa það nú. 652 00:38:19,150 --> 00:38:20,990 Nú verð ég að fara inn í þessa töflu. 653 00:38:20,990 --> 00:38:24,610 Og ef Davíð býr í Mather, hús ætti ekki að vera 0, 654 00:38:24,610 --> 00:38:27,350 sem er int sjálfgefið gildi næst null. 655 00:38:27,350 --> 00:38:29,810 Hann ætti að búa í húsi 1. 656 00:38:29,810 --> 00:38:36,870 Segjum geðþótta að Mike býr í Pfoho, svo hús númer 2. 657 00:38:36,870 --> 00:38:40,160 Nú lítur borðið mitt svolítið dulinn. 658 00:38:40,160 --> 00:38:41,960 En íhuga skilvirkni. 659 00:38:41,960 --> 00:38:44,860 Ég er nú að nota aðeins 32 bita til að finna húsið, 660 00:38:44,860 --> 00:38:49,530 sem þýðir að það er aðeins 1 Canonical skilgreining á hús Mather minn og Pfoho 661 00:38:49,530 --> 00:38:52,090 og það er í húsunum töflunni. 662 00:38:52,090 --> 00:38:55,880 Svo ef ég vil nú svara á móti þessar töflur, hugsa um það með þessum hætti. 663 00:38:55,880 --> 00:39:01,980 Hér hef ég nemendur mitt borð, og á the réttur-hönd hlið það er þessar tölur, 1 og 2. 664 00:39:01,980 --> 00:39:04,180 1 er Mather, 2 er Pfoho. 665 00:39:04,180 --> 00:39:08,580 Við höfum sömu tölur í þessum öðrum töflu, sem er kallað hús, 666 00:39:08,580 --> 00:39:11,020 1 og 2 og 3 fyrir þá 3 hús. 667 00:39:11,020 --> 00:39:14,990 Það sem við viljum nú að gera er að hafa getu í kóða, PHP og SQL, 668 00:39:14,990 --> 00:39:18,800 að raða á svara á móti þessar töflur, þar sem ef þetta eru nemendur og þetta eru hús, 669 00:39:18,800 --> 00:39:22,050 við viljum einhvern veginn sameina þær þannig að 1 línur með 1, 670 00:39:22,050 --> 00:39:25,670 2 línur upp með 2, og svo að við getum reikna út þar sem Davíð 671 00:39:25,670 --> 00:39:28,000 og þar sem Mike og þar sem allir aðrir lifi. 672 00:39:28,000 --> 00:39:31,850 Til að gera þetta við getum framkvæma SQL fyrirspurn eins og eftirfarandi. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM nemendur JOIN hús ON - 674 00:39:40,470 --> 00:39:43,000 Og nú hvað sviðum viljum við taka þátt í? 675 00:39:43,000 --> 00:39:49,520 Svo students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> Smá dulinn, en þessi hluti þýðir skapa bókstaflega nýja tímabundna töflu 677 00:39:54,150 --> 00:39:56,690 það er afleiðing af að taka þátt nemendur og hús. 678 00:39:56,690 --> 00:40:00,340 Og hvernig viltu að sameina kenndur af fingrum mínum hér? 679 00:40:00,340 --> 00:40:05,280 Setja 'hús sviði jafn hús' nemenda ID sviði. 680 00:40:05,280 --> 00:40:10,220 En ef ég nú smellt á Go, fæ ég til baka það sem ég vonaðist til. 681 00:40:10,220 --> 00:40:15,890 Davíð er í Mather, Mike er í Pfoho, og ég sé líka einstakt auðkenni. 682 00:40:15,890 --> 00:40:18,640 En málið er að nú hef ég lokið borð. 683 00:40:18,640 --> 00:40:23,020 Og svo takeaway hér pset 7 eða bara fyrir lokaverkefnið: 684 00:40:23,020 --> 00:40:25,830 Ef þú finnur að þú ert að geyma allir stykki af upplýsingar redundantly, 685 00:40:25,830 --> 00:40:28,850 hvort sem það er hús, kannski er það borg, ríki, og ZIP 686 00:40:28,850 --> 00:40:32,050 þar ZIP getur yfirleitt, en ekki alltaf að nota sem einstakt auðkenni, 687 00:40:32,050 --> 00:40:35,810 Ekki fara í gegnum æfingu andlega og þá með eitthvað eins og phpMyAdmin 688 00:40:35,810 --> 00:40:40,660 af þátta út að sameiginlegur gögn því sérstaklega sem vefsvæðið þitt fær fleiri vel notað 689 00:40:40,660 --> 00:40:45,440 og fleiri vinsæll, það er hvernig þú vera viss um að allt er frábær fljótur, 690 00:40:45,440 --> 00:40:51,930 með því að gefa gagnagrunninum eins margar vísbendingar sem við sérstöðu og mögulegt er. 691 00:40:51,930 --> 00:40:53,860 Það var mikið. 692 00:40:53,860 --> 00:40:59,010 Einhverjar spurningar? Allt í lagi. Við skulum taka a 5-mínútna hlé þar og naumlega. 693 00:41:01,600 --> 00:41:03,540 Allt í lagi. 694 00:41:03,540 --> 00:41:08,680 Eftirfarandi er dæmi sem var notað fyrir nokkrum árum þegar ég tók CS161, 695 00:41:08,680 --> 00:41:10,960 sem er stýrikerfi bekknum í framhaldsskóla 696 00:41:10,960 --> 00:41:15,160 sem er þekktur fyrir að vera frábær en brjálaður magn af vinnu, 697 00:41:15,160 --> 00:41:19,810 og það fjallar í raun um sumir af the lágmark-láréttur flötur vandamál sem upp koma í stýrikerfum 698 00:41:19,810 --> 00:41:22,700 og líka jafnvel í heimi gagnagrunna. 699 00:41:22,700 --> 00:41:27,040 >> Sagan sem var sagt af prófessor minn, Margo Seltzer, það ár var sem hér segir. 700 00:41:27,040 --> 00:41:30,990 Segjum að þú sért með smá dorm ísskápur fyrir þig og félaga þíns 701 00:41:30,990 --> 00:41:34,030 og báðir af þú raunverulega eins og mjólk. 702 00:41:34,030 --> 00:41:36,360 Svo þú kemur heim úr flokki einn daginn, herbergisfélagi þinn er ekki enn það, 703 00:41:36,360 --> 00:41:39,650 þú opnar ísskápinn, og þér grein fyrir, "Oh fjandinn, við erum út af mjólk." 704 00:41:39,650 --> 00:41:42,070 Svo þú loka ísskápnum, ganga þú yfir götuna til CVS 705 00:41:42,070 --> 00:41:45,830 og fá í æ löngum línum að kaupa mjólk í CVS. 706 00:41:45,830 --> 00:41:48,470 Á sama tíma, herbergisfélagi þinn kemur heim úr hans eða bekknum, 707 00:41:48,470 --> 00:41:51,690 kemur inn í herbergi, opnar ísskápinn virkilega vilja mjólk, 708 00:41:51,690 --> 00:41:54,130 opnar ísskápinn og "Damn, ekki mjólk." 709 00:41:54,130 --> 00:41:57,890 Svo lokar hann á ísskápinn, gengur út um dyrnar, og fer að Abp 710 00:41:57,890 --> 00:42:00,910 eða annarsstaðar en CVS þar sem þú ert ekki að fara að rekast á hvor aðra 711 00:42:00,910 --> 00:42:02,790 að fara að fá smá mjólk. 712 00:42:02,790 --> 00:42:04,820 Auðvitað nokkrum mínútum síðar, fá bæði þig aftur heim 713 00:42:04,820 --> 00:42:07,740 og nú þú hefur tvisvar eins mikið mjólk eins og þú vildir í raun. 714 00:42:07,740 --> 00:42:10,670 Og að vera mjólk, nú er að fara illa vegna þess að þú eins og mjólk 715 00:42:10,670 --> 00:42:14,200 en þú í raun ekki eins og mjólk, svo nú þú ert með of mikla mjólk, svo það er að fara að súr. 716 00:42:14,200 --> 00:42:16,830 Þetta er hræðilegt, hræðilegt ástand. 717 00:42:16,830 --> 00:42:22,920 Hvað gæti hafa leyst þetta vandræði ef þú varst fyrsta herbergisfélagi heima? Já. 718 00:42:22,920 --> 00:42:25,970 [Nemandi] Þú ættir að hafa skilið eftir athugasemd. [Hlátur] 719 00:42:25,970 --> 00:42:28,090 Gott. Þú ættir að hafa skilið eftir athugasemd. 720 00:42:28,090 --> 00:42:32,320 Þú ættir að hafa sett Post-það í huga eða eins og að segja, "farið í mjólk," 721 00:42:32,320 --> 00:42:36,830 og þá herbergisfélagi þinn eðli hefði verið læst út af í raun að gera það. 722 00:42:36,830 --> 00:42:38,010 Eða þú gætir farið 1 skrefi lengra. 723 00:42:38,010 --> 00:42:41,060 Þú getur bókstaflega læsa ísskápur með einhvers konar hengilás, 724 00:42:41,060 --> 00:42:44,870 og nú herbergisfélagi verður bókstaflega að vera læst út úr ísskápnum. 725 00:42:44,870 --> 00:42:48,520 Ef við alhæfa aftur forritun, 726 00:42:48,520 --> 00:42:51,610 þú getur nánast hugsa um ísskáp sem einhvers konar breytu eða strúktúr, 727 00:42:51,610 --> 00:42:53,500 einhvers konar ílát til upplýsinga. 728 00:42:53,500 --> 00:42:58,290 Vandamálið í grundvallaratriðum er hér um að báðir af þú var leyft að skoða 729 00:42:58,290 --> 00:43:02,370 eða lesa ástand þessum gögnum uppbyggingu, 730 00:43:02,370 --> 00:43:08,050 en þú skoðað það á mismunandi tímum og enn báðir af þú þá ákvörðun 731 00:43:08,050 --> 00:43:11,920 byggt á stöðu heimsmála á þeim mismunandi augnablik í tíma. 732 00:43:11,920 --> 00:43:15,570 Svo þú hefðir læst kæli, myndir þú hafa að minnsta kosti forðast herbergisfélagi þinn 733 00:43:15,570 --> 00:43:19,070 að hafa tekist að skoða stöðu í heiminum, 734 00:43:19,070 --> 00:43:22,530 svo hann eða hún hefði ekki getað gert það sama ákvörðun. 735 00:43:22,530 --> 00:43:25,780 Svo gagnagrunna, eins og það kemur út, þetta vandamál stöðugt. 736 00:43:25,780 --> 00:43:31,050 >> Við skulum sjá hvort við getum reisa atburðarás. 737 00:43:31,050 --> 00:43:34,310 Segjum að þú ert svona slæmur strákur og þú ferð að Bank of America 738 00:43:34,310 --> 00:43:37,950 eða einn af öðrum stöðum á torginu sem hafa a par hraðbankar hlið við hlið, 739 00:43:37,950 --> 00:43:41,200 og einhvern veginn að þú mynstrağur út hvernig á að afrita hraðbanka kort - ekki allt sem harður. 740 00:43:41,200 --> 00:43:42,730 Það er bara segulmagnaðir ræma. 741 00:43:42,730 --> 00:43:45,180 Og svo er það sem þú vilt að reyna að spila þennan leik 742 00:43:45,180 --> 00:43:49,060 þar sem þú setur 1 kort í 1 vél, annað kortið í aðra vél, 743 00:43:49,060 --> 00:43:51,980 og þú vilt í raun að reyna að draga fé samtímis, 744 00:43:51,980 --> 00:43:54,930 því ímynda sér að sagan fer sem hér segir. 745 00:43:54,930 --> 00:43:57,350 Vélin til vinstri tekur kortið og PIN númer, 746 00:43:57,350 --> 00:44:00,240 og þá segir þú: "Gefðu mér 100 $." 747 00:44:00,240 --> 00:44:04,790 ATM er forritað til fyrst að gera að velja á gagnasafn eða sambærilegt - 748 00:44:04,790 --> 00:44:10,780 hvað gagnasafn það er með - til að sjá er þessi notandi hafa að minnsta kosti $ 100 í hans eða reikning hennar? 749 00:44:10,780 --> 00:44:16,180 Ef svo er, þá spýta út $ 100 og draga $ 100 úr jafnvægi. 750 00:44:16,180 --> 00:44:20,470 En auðvitað ef það er margar vélar hér eða margar leiðir eftirlitsmaður 751 00:44:20,470 --> 00:44:23,560 ástand þess heims, bankinn Vault, til að sjá hversu mikið fé þú hefur, 752 00:44:23,560 --> 00:44:26,780 gera ráð fyrir að bara tilviljun vélina á vinstri og hægri 753 00:44:26,780 --> 00:44:30,140 bæði spyrja þessi spurning á u.þ.b. sama augnabliki í tíma. 754 00:44:30,140 --> 00:44:34,160 >> Og þetta getur vissulega gerst. Hraðbankar eru tölvur þessa dagana. 755 00:44:34,160 --> 00:44:37,670 Svo ef vélin til vinstri segir: "Já, hefur þú að minnsta kosti $ 100," 756 00:44:37,670 --> 00:44:42,150 meðan segir vél á hægri, "Já, þú ert að minnsta kosti $ 100," 757 00:44:42,150 --> 00:44:47,420 þá báðir halda áfram að klára áætlanir þeirra og í raun spýta út $ 100 758 00:44:47,420 --> 00:44:50,820 og segja: "Fyrr þú hefðir 200 $." 759 00:44:50,820 --> 00:44:54,890 "Leyfðu mér að uppfæra breytu til nú vera $ 100 eftir í reikninginn." 760 00:44:54,890 --> 00:44:58,780 En ef þau bæði hafa athugað stöðu reiknings þíns og komist að því að það er 200 $ 761 00:44:58,780 --> 00:45:02,000 og þau bæði gera þá stærðfræði og segja 200-100, 762 00:45:02,000 --> 00:45:06,990 vélar hafa spýta hugsanlega út tvö $ 100 víxla í hverja vél, 763 00:45:06,990 --> 00:45:11,360 en þeir hafa aðeins uppfærð summan reikningsins til að vera 100 $. 764 00:45:11,360 --> 00:45:15,130 Með öðrum orðum, hefur þú tekið út $ 200, en vegna þess að þeir skoðað ástand heimsins 765 00:45:15,130 --> 00:45:18,840 samtímis og síðan tekið ákvörðun byggist á þeim gildi, 766 00:45:18,840 --> 00:45:21,930 þeir gætu ekki gert á stærðfræði á endanum rétt. 767 00:45:21,930 --> 00:45:25,520 Svo í banka aðstæður líka að þú vilt virkilega að hafa einhvers konar læsa 768 00:45:25,520 --> 00:45:28,450 þannig að um leið og þú hefur athugað ástand einhvers breytu 769 00:45:28,450 --> 00:45:31,220 það er mjög mikilvægt, eins og innstæðu, 770 00:45:31,220 --> 00:45:36,070 ekki láta einhver annar að taka ákvarðanir sem byggjast á því að þar til þú ert búinn að gera þinn hlutur, 771 00:45:36,070 --> 00:45:38,920 hvar í þessu tilfelli þú ert Hraðbanki á vinstri. 772 00:45:38,920 --> 00:45:41,160 Læsa öllum öðrum út. 773 00:45:41,160 --> 00:45:44,650 Þú getur í raun ná þessu gildi í nokkra mismunandi vegu. 774 00:45:44,650 --> 00:45:48,660 >> Einfaldasta leiðin í MySQL er lína af SQL sem við gaf þér 775 00:45:48,660 --> 00:45:52,030 í setja vandamál forskrift sem lítur nákvæmlega svona. 776 00:45:52,030 --> 00:45:57,420 Setja í borðið - hvað sem það heitir - auðkenni, tákn, og deila, fjölda hluta, 777 00:45:57,420 --> 00:45:59,660 eftirfarandi gildi, til dæmis. 778 00:45:59,660 --> 00:46:03,370 Ef þú hefur ekki lesið sérstakur enn, þetta er dæmi felur hvernig gera þú fara óður í 779 00:46:03,370 --> 00:46:07,340 kaupa 10 hluti þessa eyri lager til forseta Skroob, 780 00:46:07,340 --> 00:46:10,340 auðkenni Hvers gerist að vera númer 7? 781 00:46:10,340 --> 00:46:14,070 Þetta segir INSERT INTO töflu eftirfarandi id, tákn og fjölda hluta 782 00:46:14,070 --> 00:46:18,200 af 7, 'DVN.V', og 10. 783 00:46:18,200 --> 00:46:21,510 En - en, en, en - önnur lína er mikilvægt. 784 00:46:21,510 --> 00:46:26,310 Á afrit Helstu hlutabréfa uppfærslu = hlutabréf + Gildi (hlutabréf). 785 00:46:26,310 --> 00:46:28,350 Svo algerlega Cryptic-horfa við fyrstu sýn. 786 00:46:28,350 --> 00:46:31,990 En sú staðreynd að þetta SQL fyrirspurn, jafnvel þó að það hula á 2 línur, 787 00:46:31,990 --> 00:46:35,920 er 1 langur fyrirspurn, þá þýðir það að það er lotukerfinu 788 00:46:35,920 --> 00:46:41,000 í þeim skilningi að þessi fyrirspurn annað hvort framkvæma allt saman eða ekki. 789 00:46:41,000 --> 00:46:45,100 Og með því að skilgreiningu MySQL, það er hvernig þeir innleitt þessa fyrirspurn. 790 00:46:45,100 --> 00:46:51,010 Það er samkvæmt skilgreiningu í handbók tryggð að framkvæma allt í einu eða ekki. 791 00:46:51,010 --> 00:46:54,020 Hvatning fyrir þetta er eins og hér segir. 792 00:46:54,020 --> 00:46:58,540 Ef í þessu tilfelli sem þú ert að reyna að kaupa 10 hluti á lager, 793 00:46:58,540 --> 00:47:02,260 það er góður af sömu sögu og mjólk, það er góður af sömu sögu og hraðbanka. 794 00:47:02,260 --> 00:47:04,970 >> Ef þú gerir mistök að nota ekki þessa setningafræði 795 00:47:04,970 --> 00:47:09,610 heldur velja úr gagnagrunninum til að sjá hversu mörgum hlutum þessa eyri lager 796 00:47:09,610 --> 00:47:13,750 er forseti Skroob hafa, og ætla að hann hefur 10 hluti, 797 00:47:13,750 --> 00:47:19,330 og þá sumir hættu annað seinna að gera þá að uppfæra yfirlýsingu, 798 00:47:19,330 --> 00:47:24,810 sem er annar yfirlýsing í SQL sem segir að fara á undan og bæta við 10 fleiri hluti 799 00:47:24,810 --> 00:47:28,700 núverandi 10 sitt svo helst er alls 20, 800 00:47:28,700 --> 00:47:33,490 vandamálið er vegna þess að í kerfi gagnagrunninum í dag og vegna þess að í tölvum í dag 801 00:47:33,490 --> 00:47:35,990 þú ert með marga örgjörva, margar algerlega - 802 00:47:35,990 --> 00:47:38,920 í öðrum orðum, tölva getur bókstaflega vera að gera marga hluti í einu - 803 00:47:38,920 --> 00:47:44,270 Það er engin trygging fyrir því SELECT þína og uppfæra í þessu tilviki 804 00:47:44,270 --> 00:47:46,150 eru að fara að gerast aftur og aftur. 805 00:47:46,150 --> 00:47:49,140 Svo slæmt atburðarás væri þú gerir SELECT 806 00:47:49,140 --> 00:47:51,670 til að sjá hversu marga hluti þessa eyri lager hefur Skroob hafa 807 00:47:51,670 --> 00:47:54,710 og þá bara við tækifæri annan gagnagrunn fyrirspurn er keyrð - 808 00:47:54,710 --> 00:47:57,740 kannski Skroob í öðru glugga að reyna að kaupa 10 hluti 809 00:47:57,740 --> 00:48:00,700 í öðrum glugga öllu, eins og hraðbanka - 810 00:48:00,700 --> 00:48:05,410 og gera ráð fyrir að önnur fyrirspurn fær á milli velja og uppfærslu. 811 00:48:05,410 --> 00:48:10,210 Það gæti verið raunin að Skroob nú missir einhvers fjölda hluta 812 00:48:10,210 --> 00:48:14,340 vegna þess að annar aðferð er eftirlitsmaður stöðu veröld hans, 813 00:48:14,340 --> 00:48:17,800 eða fær hann fleiri hluti en hann ætti að hafa. 814 00:48:17,800 --> 00:48:23,250 Við munum ekki fara í upplýsingum um nákvæmlega hvað þessir tilteknu línur saga væri, 815 00:48:23,250 --> 00:48:28,380 en málið er að ef þú ert að athuga með breytum gildi og síðan taka ákvörðun, 816 00:48:28,380 --> 00:48:32,500 ef það er hætta á að einhver annar að gera eitthvað á milli þessara 2 yfirlýsingum, 817 00:48:32,500 --> 00:48:36,220 sem getur gerst í multiprocessor kerfi, í multicore kerfi, 818 00:48:36,220 --> 00:48:41,220 tölvur með getu til að gera marga hluti í einu, slæmur hlutur getur gerst 819 00:48:41,220 --> 00:48:44,530 eins og bankareikninga sem skuldfærð rangt, að kaupa tvisvar sinnum eins mikið mjólk, 820 00:48:44,530 --> 00:48:46,730 eða í þessu tilviki röng fjöldi hluta. 821 00:48:46,730 --> 00:48:48,370 En það er auðveldara leið til að hugsa um þetta. 822 00:48:48,370 --> 00:48:53,290 >> Það kemur í ljós að SQL styður einnig, ef þú stilla borðið rétt, 823 00:48:53,290 --> 00:48:56,920 eitthvað sem kallast viðskipti, sem ég myndi halda því fram er í raun enn auðveldara að skilja 824 00:48:56,920 --> 00:49:00,650 en þetta, en það er ekki 1-Ferja, svo það er í raun aðeins meira þátt. 825 00:49:00,650 --> 00:49:04,960 Það er bókstaflega a yfirlýsing í SQL heitir START færslu. 826 00:49:04,960 --> 00:49:08,300 Rétt eins og það er SELECT, UPDATE, INSERT, DELETE, og taka þátt og fullt af öðrum, 827 00:49:08,300 --> 00:49:10,970 Það eru leitarorð eins Transaction START. 828 00:49:10,970 --> 00:49:13,560 Og hvað sem þú gerir þá í samhengi við pset 7 - 829 00:49:13,560 --> 00:49:17,270 þú þarft ekki að gera þetta fyrir pset 7, það er beinlínis hafnað og ekki nauðsynlegt, 830 00:49:17,270 --> 00:49:18,830 en lokaverkefni getur verið gagnlegt - 831 00:49:18,830 --> 00:49:22,820 ef þú kallar fyrirspurn viðskipta á Start og þá annað fyrirspurn 832 00:49:22,820 --> 00:49:25,620 og þá annað fyrirspurn og þá annað, annað, og annað, 833 00:49:25,620 --> 00:49:31,860 þeim fyrirspurnum ekki í raun að framkvæma fyrr en þú hringja í SQL staðhæfing fremja, 834 00:49:31,860 --> 00:49:37,220 á hver benda, hvort sem það er 2 yfirlýsingar eða 20 yfirlýsingar, þeir vilja allir vera framkvæmd í einu, 835 00:49:37,220 --> 00:49:42,770 sem þýðir enginn annar getur óvart keypt of mikið mjólk eða debetkort of mikla peninga 836 00:49:42,770 --> 00:49:46,340 eða kaupa of marga hluti vegna þess að allar fyrirspurnir þínar munu framkvæma 837 00:49:46,340 --> 00:49:48,410 aftur til baka til baka til baka. 838 00:49:48,410 --> 00:49:51,580 Og þetta er frábær mikilvægt, sérstaklega þegar þú ert að gera eitthvað eins og this. 839 00:49:51,580 --> 00:49:54,900 Þetta er handahófskennt dæmi sem segir við skulum uppfæra bankareikning 840 00:49:54,900 --> 00:50:00,200 með því að stilla jafnvægi jafnt jafnvægi - $ 1000 þar sem reikningur númer er 2. 841 00:50:00,200 --> 00:50:04,260 Og þá seinni staðhæfing er nú skulum leggja að $ 1000 842 00:50:04,260 --> 00:50:07,310 í einhvers annars bankareikning sem reikningsnúmer er 1. 843 00:50:07,310 --> 00:50:10,400 >> Með öðrum orðum, þetta er fullkomið dæmi um hvar þú vilt ganga úr skugga um 844 00:50:10,400 --> 00:50:13,590 að báðum þessum yfirlýsingum gerast eða alls ekki 845 00:50:13,590 --> 00:50:15,450 því annars að viðskiptavinurinn er að fara að fá ruglaður 846 00:50:15,450 --> 00:50:17,670 og þú ert að fara að taka peningana sína og ekki leggja það annars staðar, 847 00:50:17,670 --> 00:50:20,470 eða að bankinn er að fara að fá ruglaður þar sem þú ert að fara að leggja peninga 848 00:50:20,470 --> 00:50:23,140 en í raun ekki draga það frá reikning notanda. 849 00:50:23,140 --> 00:50:25,810 Svo þú vilt þau bæði að framkvæma saman. 850 00:50:25,810 --> 00:50:29,140 Þannig kemur í heiminn viðskiptum. 851 00:50:29,140 --> 00:50:31,360 Svo er það eitthvað til að halda í bakinu á huga þínum, 852 00:50:31,360 --> 00:50:34,710 ekki svo mikið að því er varðar bara lokaverkefni, 853 00:50:34,710 --> 00:50:36,700 en ef þú vilt taka endanlega verkefni einhvers staðar, 854 00:50:36,700 --> 00:50:39,040 Ef þú vilt að byrja upp smá fyrirtæki í kringum það, 855 00:50:39,040 --> 00:50:41,270 Ef þú vilt að leysa vandamál sumir nemandi hópsins á háskólasvæðinu 856 00:50:41,270 --> 00:50:45,210 og í raun hafa lifandi, virkt vefsvæði, eru þessir tegund af lúmskur villur sem geta komið upp 857 00:50:45,210 --> 00:50:49,480 ef þú ert ekki alveg að hugsa um hvað getur gerst ef 2 manneskjur 858 00:50:49,480 --> 00:50:54,190 eru að reyna að komast á vefsvæðið þitt á bókstaflega sama augnabliki í tíma, 859 00:50:54,190 --> 00:50:56,890 þar fyrirspurnum þeirra gæti annars fá samofin. 860 00:50:58,840 --> 00:51:01,420 >> Tilbúinn fyrir suma JavaScript, beitu þar? 861 00:51:01,420 --> 00:51:04,320 Þetta er síðasta mál okkar fyrir önnina. Allt í lagi. 862 00:51:04,320 --> 00:51:09,940 Sem betur fer, JavaScript lítur mjög, mjög, mjög svipaðar þeim 2 tungumálum, C og PHP, 863 00:51:09,940 --> 00:51:11,140 við höfum gert svona langt. 864 00:51:11,140 --> 00:51:14,340 Það er enginn JavaScript í pset 7, en það er ótrúlega gagnlegt tól 865 00:51:14,340 --> 00:51:18,840 þegar það kemur að því að gera vefur-undirstaða lokaverkefni eða í raun bara vefur forritun almennt. 866 00:51:18,840 --> 00:51:20,950 Svo fljótur yfirlit yfir eitthvað sem kallast DOM. 867 00:51:20,950 --> 00:51:23,600 Hér er frábær einfalt vefsíðu sem raunverulega segir bara halló, heimur 868 00:51:23,600 --> 00:51:25,970 bæði í fyrirsögn og í líkamanum. 869 00:51:25,970 --> 00:51:29,270 Eins og inndrátt hefur verið að leggja til um nokkurt skeið, 870 00:51:29,270 --> 00:51:31,380 Það er örugglega stigveldi á vefsíðum. 871 00:51:31,380 --> 00:51:34,220 Ég gæti draga þessa sömu runu af HTML sem tré, 872 00:51:34,220 --> 00:51:37,470 hugsa aftur til viðræðna okkar um uppbyggingu gagna í C, eins og hér segir. 873 00:51:37,470 --> 00:51:40,710 Ég hef fengið sérstakt rót hnút kallast skjal hnút, 874 00:51:40,710 --> 00:51:43,650 og við munum sjá flaumi um þetta í JavaScript í bara smá stund. 875 00:51:43,650 --> 00:51:48,330 Fyrsta barn og eina barn sem í þessu tilfelli er HTML merki. 876 00:51:48,330 --> 00:51:49,880 Það er engin bein kortlagning á DOCTYPE. 877 00:51:49,880 --> 00:51:53,170 Það er sérstakt mál, þannig að við ættum bara að hunsa hana þegar það kemur að þessu DOM, 878 00:51:53,170 --> 00:51:55,810 þetta Document Object Model tré. 879 00:51:55,810 --> 00:51:59,530 Takið eftir að HTML tag, sem ég hef lýst geðþótta sem rétthyrningur, 880 00:51:59,530 --> 00:52:02,890 hefur 2 börn, höfuð og líkama. 881 00:52:02,890 --> 00:52:04,840 >> Þeir eru álíka dregin eins ferhyrninga. 882 00:52:04,840 --> 00:52:08,970 Það er þroskandi pictorially að höfuð er vinstra megin við líkamann. 883 00:52:08,970 --> 00:52:11,960 The vísbendingu er sú að höfuð kemur fyrst í trénu. 884 00:52:11,960 --> 00:52:14,910 Svo er það í raun að panta á tré þegar þú draga það svona, 885 00:52:14,910 --> 00:52:17,460 jafnvel þótt form og whatnot eru handahófskennt. 886 00:52:17,460 --> 00:52:20,360 Head hefur meðan einn barn sem heitir titill, 887 00:52:20,360 --> 00:52:25,170 og titill hefur í raun eigið barn hennar, sem er "Hello, world", 888 00:52:25,170 --> 00:52:32,210 sem ég dró vísvitandi sem Oval hér til að gera það aðeins öðruvísi en rétthyrningur. 889 00:52:32,210 --> 00:52:37,420 Þessir ferhyrninga eru þættir, en halló, heimur er í raun texti hnút. 890 00:52:37,420 --> 00:52:39,850 Svo það er hnútur í trénu, en það er öðruvísi tegund af hnút 891 00:52:39,850 --> 00:52:41,730 þannig að ég dró það geðþótta öðruvísi. 892 00:52:41,730 --> 00:52:45,000 Á sama hátt er líkami eignast barn sem heitir Halló, heimur og, 893 00:52:45,000 --> 00:52:47,910 svo mismunandi hnút þótt þeir séu tilviljun á sama texta, 894 00:52:47,910 --> 00:52:52,100 en ég hef dregið hana með sömu lögun. Svo sem ekki sama? 895 00:52:52,100 --> 00:52:56,820 Jæja, hvað er gott um HTML er að það hjartarskinn hafa þessa hierarchic náttúrunni. 896 00:52:56,820 --> 00:53:01,010 Og hvað er gott um JavaScript og einkum bókasöfnum sem eru fáanleg 897 00:53:01,010 --> 00:53:07,120 og vinsæll eins og jQuery, getur þú ferð um tré uppbyggingu svo ótrúlega auðvelt. 898 00:53:07,120 --> 00:53:11,790 Allir af the efni sem við gerðum í C með ábendingum og fara yfir tré og recursing á hnúta 899 00:53:11,790 --> 00:53:15,300 vinstri barn hægri barn, allt í einu að við getum raða að taka sem sjálfsögðum hlut 900 00:53:15,300 --> 00:53:19,450 eins og að vera ótrúlega upplýsandi ef ekki svolítið pirrandi 901 00:53:19,450 --> 00:53:22,470 en ekki nærri skilvirk leið til að fara um forritun. 902 00:53:22,470 --> 00:53:24,470 Og svo með þessum meiri tungumálum eins og JavaScript 903 00:53:24,470 --> 00:53:28,340 við munum vera fær um að sigla þessu tré miklu innsæi. 904 00:53:28,340 --> 00:53:30,430 >> Og örugglega setningafræði er að fara að vera alveg kunnuglegur. 905 00:53:30,430 --> 00:53:32,950 Ef þú hefur aldrei séð JavaScript áður, þetta er mjög gott tilvísun 906 00:53:32,950 --> 00:53:35,910 frá Mozilla fólkinu, fólk sem gerir Firefox 907 00:53:35,910 --> 00:53:38,370 svo ekki hika við að skoða það þegar þér hentar. 908 00:53:38,370 --> 00:53:41,590 Það sem þú munt finna - og þessi skyggnur eru nákvæmlega það sem við notuðum um daginn - 909 00:53:41,590 --> 00:53:44,030 álíka, er helsta farinn. 910 00:53:44,030 --> 00:53:47,010 Svo þegar þú skrifar forrit í JavaScript, það er ekki helsta hlutverk. 911 00:53:47,010 --> 00:53:48,690 Þú byrjar bara að skrifa kóðann. 912 00:53:48,690 --> 00:53:51,660 En lykillinn greinarmun á JavaScript og C og PHP 913 00:53:51,660 --> 00:53:55,890 er það en C og PHP svona langt hefur verið keyrð miðlara megin 914 00:53:55,890 --> 00:53:59,180 sem tæki í þessu tilfelli eða almennt með miðlara, 915 00:53:59,180 --> 00:54:04,270 JavaScript eftir hönnun er yfirleitt framkvæmt með vafra. 916 00:54:04,270 --> 00:54:08,440 Með öðrum orðum, getur þú skrifað JavaScript kóða, eins og við erum að fara, 917 00:54:08,440 --> 00:54:13,080 á miðlara í tækið, en þú setur það á meðal HTML, meðal CSS þinn, 918 00:54:13,080 --> 00:54:16,100 meðal GIF þína og PNGs þínum og JPEG þínum 919 00:54:16,100 --> 00:54:19,170 þannig að þegar notandi heimsækir vefsíðu þinni, ef þú ert að nota JavaScript, 920 00:54:19,170 --> 00:54:21,770 að JavaScript kóða kemur frá miðlara í vafra, 921 00:54:21,770 --> 00:54:24,540 og það er vafra sem raunverulega keyrir það. 922 00:54:24,540 --> 00:54:27,960 Þannig hefur þetta þroskandi áhrif jafnvel hugverk. 923 00:54:27,960 --> 00:54:32,600 Það er góður af kjánalegt að jafnvel hugsa um að vernda IP þína þegar það kemur að JavaScript kóða 924 00:54:32,600 --> 00:54:37,560 því við eðli tungumál það verður framkvæmt venjulega vafra hlið. 925 00:54:37,560 --> 00:54:40,360 >> Þú getur obfuscate það, sem þýðir að þú getur gert það líta brjálaður og ljót 926 00:54:40,360 --> 00:54:45,400 án bil, hræðilegt breytu nöfn, til að gera það erfiðara fyrir fólk að stela IP þína, 927 00:54:45,400 --> 00:54:48,120 en lykillinn er að það er keyrt vafra hlið. 928 00:54:48,120 --> 00:54:51,790 Jafnvel þó sem innskot JavaScript er hægt að nota miðlara megin, 929 00:54:51,790 --> 00:54:54,480 algengasta nota málið núna er samt á vafranum. 930 00:54:54,480 --> 00:54:59,800 Og hér er það sem það lítur út. Hér er ef-else if-annars reisa alveg eins og C, eins og PHP. 931 00:54:59,800 --> 00:55:02,420 Hér er Boolean tjáningu þegar þú "eða" 2 hlutir saman. 932 00:55:02,420 --> 00:55:04,330 Hér er þegar þú "og" 2 hlutir saman. 933 00:55:04,330 --> 00:55:08,300 Hér er skipt yfirlýsingu, sem er svipað og PHP 934 00:55:08,300 --> 00:55:10,810 í því að þú getur skipt á mismunandi gildum. 935 00:55:10,810 --> 00:55:15,180 Lykkjur eru tilsvarandi fyrir lykkjur hér, sem eru byggð samur við það sem við höfum séð áður. 936 00:55:15,180 --> 00:55:18,110 Þó lykkjur, við höfum fengið að gera á meðan lykkja. 937 00:55:18,110 --> 00:55:20,290 Breytur, alltaf svo örlítið öðruvísi. 938 00:55:20,290 --> 00:55:24,560 Þú lýsa breytur eins og þú gerir í PHP og C, 939 00:55:24,560 --> 00:55:27,860 en sömuleiðis er JavaScript veikt slegið. 940 00:55:27,860 --> 00:55:32,730 Þú tilgreinir ekki int eða fljóta eða band eða eitthvað svoleiðis yfirleitt. 941 00:55:32,730 --> 00:55:34,240 Þú getur tilgreint var. 942 00:55:34,240 --> 00:55:38,040 Þú þarft ekki að tilgreina var, en það hefur áhrif ef þú gerir það ekki. 943 00:55:38,040 --> 00:55:42,000 Venjulega ef þú sleppt var, getur þú búið til fyrir tilviljun alþjóðlegt breytu stað staðbundin. 944 00:55:42,000 --> 00:55:46,420 Svo láta mig leggja til að þú nánast alltaf bara segja var og þá nafn á breytu. 945 00:55:46,420 --> 00:55:48,740 Það er ekki tegund, það er bara var að breyta. 946 00:55:48,740 --> 00:55:52,930 Þetta myndi vera dæmi, hvort sem það er 123 eða "Hello, world". 947 00:55:52,930 --> 00:55:58,910 Fylki er til staðar og setningafræðilega svipað PHP. 948 00:55:58,910 --> 00:56:03,690 Ég segi VAR tölur og þá nota ég hornklofum aftur að lýsa yfir breytu 949 00:56:03,690 --> 00:56:08,870 sem tegund er fylki sem hefur þessi tiltekna tölur í það aðskilin með kommum. 950 00:56:08,870 --> 00:56:11,740 Og svo loks, þetta er sú eina sem raunverulega lítur öðruvísi. 951 00:56:11,740 --> 00:56:16,700 Muna að í PHP við hefðum innleitt á tengin array fyrir nemanda 952 00:56:16,700 --> 00:56:20,220 eins Zamyla sem getur litið svona, þar sem breyta er kallað nemandi. 953 00:56:20,220 --> 00:56:23,370 The hornklofum meina hér kemur fylki. 954 00:56:23,370 --> 00:56:28,500 >> Sú staðreynd að ég er ekki að nota tölugildi vísitölur en strengi - id, hús, og nafn - 955 00:56:28,500 --> 00:56:30,990 þýðir að þetta er tengin fylki, 956 00:56:30,990 --> 00:56:34,490 og þessar örvar með jafn skilti og horn krappi 957 00:56:34,490 --> 00:56:37,310 þýðir að lykillinn er "id", gildið er 1; 958 00:56:37,310 --> 00:56:39,310 lykillinn er "hús", gildið er Winthrop House; 959 00:56:39,310 --> 00:56:41,800 lykillinn er "nafn", gildið er Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 Svo er það 3 lykla inni þessa tengin array, sem hver um sig hefur eigin gildi þess. 961 00:56:47,110 --> 00:56:52,880 Við höfum séð að í pset 7, eða fljótlega mun í JavaScript sama hugmynd, 962 00:56:52,880 --> 00:56:55,220 en það er að fara að líta svona út. 963 00:56:55,220 --> 00:57:00,070 Svo var nemandi - engin dollaramerki og ekki minnst á tegund enn en var - 964 00:57:00,070 --> 00:57:05,860 jafningjar og þá opinn hrokkið axlabönd því í JavaScript þegar þú hefur helstu pör gildi, 965 00:57:05,860 --> 00:57:08,900 þú notar í raun og veru eitthvað sem kallast hlut. 966 00:57:08,900 --> 00:57:13,490 Og þeir af yður, sem tók APCS eða eins gæti muna hluti frá Java 967 00:57:13,490 --> 00:57:15,140 eða svipuð tungumál. 968 00:57:15,140 --> 00:57:17,880 JavaScript er ekki Java, fyrst af öllu. 969 00:57:17,880 --> 00:57:21,600 Það var vísvitandi hönnun ákvörðun árum til að knýja á eitthvað annað sem var vinsælt, 970 00:57:21,600 --> 00:57:25,640 Nafn þess, jafnvel þó að það hefur ekki grundvallar tengslum Java sig. 971 00:57:25,640 --> 00:57:31,490 JavaScript verður hluti, og þú býrð þá við vegur af the hrokkið Brace merki. 972 00:57:31,490 --> 00:57:36,710 Hlutir í JavaScript eru nánast jafngildir tengin fylki í PHP 973 00:57:36,710 --> 00:57:40,030 þegar það kemur að því að geyma gögn inni í þeim. 974 00:57:40,030 --> 00:57:44,100 >> En jafnvel meira kröftuglega í JavaScript er hægt að tengja mjög auðveldlega aðgerðir 975 00:57:44,100 --> 00:57:48,040 inni hlut, og þó að þú getur gert þetta á öðrum tungumálum, 976 00:57:48,040 --> 00:57:50,040 það er alveg algengt mynstur, eins og við munum sjá. 977 00:57:50,040 --> 00:57:54,380 Í stuttu máli, þetta mótmæla táknar að nemandi, sem er sérstaklega Zamyla, 978 00:57:54,380 --> 00:58:00,380 og það er svipað eðli, bara setningafræðilega öðruvísi frá þessu. 979 00:58:00,380 --> 00:58:03,840 Við skulum reyndar nota JavaScript á skrá. 980 00:58:03,840 --> 00:58:05,570 Það kemur í ljós að það er handrit merki. 981 00:58:05,570 --> 00:58:08,180 Við höfum séð stíl tag og við höfum séð önnur HTML tags. 982 00:58:08,180 --> 00:58:11,510 Handrit merki í raun mun innihalda sumir JavaScript kóða. 983 00:58:11,510 --> 00:58:15,500 Leyfðu mér að fara inn í tækið þar sem við höfum sumir kóðann Pre-liðinu. 984 00:58:15,500 --> 00:58:18,700 Ég hef ekki sett inn það enn á vefnum, en ég ætla að gera það eftir bekknum. 985 00:58:18,700 --> 00:58:21,770 Við skulum opna þetta einn, blink.html. 986 00:58:21,770 --> 00:58:27,560 Til baka í 1990, það var bókstaflega HTML merki kallast blikka tag, 987 00:58:27,560 --> 00:58:30,340 og þetta var ein af mest frábærlega overused merkjum á Netinu 988 00:58:30,340 --> 00:58:36,140 þar sem þú vilt að heimsækja sumir 1990 stíl vefsíðu og byrja að sjá texta blikka þig svona, 989 00:58:36,140 --> 00:58:39,810 niðurstöður Marquis tag, sem hafði texta fara svona. 990 00:58:39,810 --> 00:58:45,070 Einn af fáum tímum þar sem heimurinn hefur í raun samþykkt á vefsíðu staðall, 991 00:58:45,070 --> 00:58:48,250 allir yfir borð drap blikka tag fyrir nokkrum árum. 992 00:58:48,250 --> 00:58:52,860 En við getum endurvekja það með JavaScript sem sýning af krafti sem þú hefur 993 00:58:52,860 --> 00:58:56,660 þegar þú getur skrifað forrit inni á vefsíðu. 994 00:58:56,660 --> 00:59:00,240 Fyrst skulum sleppa yfir nýju efni og einblína á gamla. 995 00:59:00,240 --> 00:59:01,780 >> Hér er gamla efni í þessu dæmi. 996 00:59:01,780 --> 00:59:06,350 Ég er með HTML tag, höfuð tag og titill tag. 997 00:59:06,350 --> 00:59:11,210 Og ég er með líkama tag hér með div sem muna er bara ferhyrnt skiptingu á síðunni 998 00:59:11,210 --> 00:59:14,720 að ég hef gefið einstakt auðkenni geðþótta að "kveðja" á, 999 00:59:14,720 --> 00:59:18,320 bara svo að ég hafa a vegur af einstaklega vísa til þess, sem hefur mjög einfaldan texta: 1000 00:59:18,320 --> 00:59:20,220 halló, heimur. 1001 00:59:20,220 --> 00:59:23,940 Nú láta mig fletta upp á the toppur af þessari skrá og sjá hvað er nýtt. 1002 00:59:23,940 --> 00:59:27,710 The fyrstur hlutur sem er nýtt upp efst er handrit tag, 1003 00:59:27,710 --> 00:59:31,280 og inni í tag handrit fyrirvara sem ég hef lýst aðgerð. 1004 00:59:31,280 --> 00:59:34,610 Til að lýsa því yfir að aðgerð í JavaScript, nokkuð svipað PHP, 1005 00:59:34,610 --> 00:59:37,930 þú skrifar bókstaflega virka þá heiti virka, sviga, 1006 00:59:37,930 --> 00:59:40,400 og kannski sumir rök ef það tekur einhver. 1007 00:59:40,400 --> 00:59:43,510 Og ég hef hrokkið Brace mína eins og venjulega, og nú höfum við nokkur örlítið nýjan lykil 1008 00:59:43,510 --> 00:59:45,230 en við skulum sjá hvað þetta þýðir. 1009 00:59:45,230 --> 00:59:48,670 Svo VAR div, þetta þýðir bara að gefa mér breytilega kallað div. 1010 00:59:48,670 --> 00:59:50,530 Ég hefði getað kallað það foo, en ég vildi það til að kalla div 1011 00:59:50,530 --> 00:59:52,620 ástæðum sem verða skýrar í annað. 1012 00:59:52,620 --> 00:59:57,480 Þá snýr það út á JavaScript - og þetta er JavaScript kóða embed í vefsíðu mína - 1013 00:59:57,480 --> 01:00:01,760 Það er sérstakt alþjóðlegt breytu af tegund sem kallast skjal. 1014 01:00:01,760 --> 01:00:04,780 JavaScript er í raun hlutbundin tungumál. 1015 01:00:04,780 --> 01:00:07,230 Við munum ekki fara inn í smáatriði í 50 og hvað það þýðir, 1016 01:00:07,230 --> 01:00:11,180 en nú vita að hlutur sé nokkurn veginn eins og strúktúr. 1017 01:00:11,180 --> 01:00:14,740 Eins og við sáum leið til baka þegar hún er í einni af elstu vandamál setur 1018 01:00:14,740 --> 01:00:17,150 þar sem við setja a einhver fjöldi af upplýsingar í strúktúr, 1019 01:00:17,150 --> 01:00:21,330 álíka er skjal sérstaka strúktúr sem kemur með vafra, 1020 01:00:21,330 --> 01:00:24,810 kemur með hvaða vefsíðu. Það er ekki eitthvað sem ég skapa. 1021 01:00:24,810 --> 01:00:28,210 Inni í þessu skjali uppbyggingu, þó, hefur þú ekki aðeins upplýsingar 1022 01:00:28,210 --> 01:00:30,010 en þú ert líka virka. 1023 01:00:30,010 --> 01:00:34,090 >> Og hvenær sem þú ert með virka inni í byggingu, inni hlut, 1024 01:00:34,090 --> 01:00:36,490 það er kallað aðferð. En það er sama. 1025 01:00:36,490 --> 01:00:40,110 A aðferð er fall sem bara gerist svo að vera inni í eitthvað annað. 1026 01:00:40,110 --> 01:00:42,990 Þannig að þetta þýðir að þetta sérstakt alþjóðlegt breytu sem heitir skjal 1027 01:00:42,990 --> 01:00:47,690 hefur fall kallast getElementById sem bókstaflega er þessi. 1028 01:00:47,690 --> 01:00:52,460 Það mun fá þér þáttur frá DOM, Document Object Model tré, 1029 01:00:52,460 --> 01:00:55,520 sem ID er í þessu tilfelli kveðju. 1030 01:00:55,520 --> 01:00:59,200 Með öðrum orðum, allt sem tíma sem við eyddum í gagnauppbyggingu kemur inn í leik hér. 1031 01:00:59,200 --> 01:01:01,400 Þessi mynd af DOM að við áttum í smá stund síðan, 1032 01:01:01,400 --> 01:01:06,100 jafnvel þótt síða er svolítið öðruvísi, ef ég hafði div á þessari mynd, 1033 01:01:06,100 --> 01:01:11,180 hvaða document.getElementById myndi snúa aftur til mín væri í raun að vera stiga 1034 01:01:11,180 --> 01:01:15,440 til rétthyrningur í trénu, tilvísun til rétthyrningur í trénu. 1035 01:01:15,440 --> 01:01:18,410 Svo það er það sem það þýðir að í raun hringt í einn af þessum aðgerðum. 1036 01:01:18,410 --> 01:01:21,960 Í þessu tilviki aftur er það div. Það er ekki aðili eða titill. 1037 01:01:21,960 --> 01:01:26,480 Svo skulum sjá hvað ég geri svo með þessa div nú að ég hef það inni þessa breytu sem heitir div. 1038 01:01:26,480 --> 01:01:32,580 Það kemur í ljós með JavaScript sem þú hefur getu til klip the CSS síðunnar virk. 1039 01:01:32,580 --> 01:01:39,060 Upp fyrr en nú, allt CSS við höfum gert, að vísu takmörkuð, er í eiginleika stíl, 1040 01:01:39,060 --> 01:01:41,730 eða hvar annars hafa sett við CSS? 1041 01:01:42,730 --> 01:01:45,810 Ég svona spillt þetta. Í stíl tag efst á skránni. 1042 01:01:45,810 --> 01:01:49,180 Eða þriðja sæti hefur verið í? 1043 01:01:50,710 --> 01:01:54,590 >> Ytri skrá, eitthvað. CSS. 1044 01:01:54,590 --> 01:01:56,730 Þannig að þeir eru 3 staðir sem við höfum gert CSS svona langt, 1045 01:01:56,730 --> 01:01:59,310 en aflinn er að við höfum harður á dulmáli það allt. 1046 01:01:59,310 --> 01:02:04,060 Þú ákveðið eins og þú dúfu inn pset 7, ákváðum við áður en fyrirlestur hvaða CSS okkar væri. 1047 01:02:04,060 --> 01:02:07,380 En ef þú vilt breyta CSS, getur þú í raun að gera það 1048 01:02:07,380 --> 01:02:09,370 þegar þú ert í raun forritunarmál. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - ekki forritunarmál. JavaScript er. 1050 01:02:13,910 --> 01:02:18,200 Svo kemur í ljós að um leið og þú ert einn af þeim ferhyrninga úr tré 1051 01:02:18,200 --> 01:02:23,050 kallað DOM, það hefur sig nokkur gögn inni á henni. 1052 01:02:23,050 --> 01:02:27,820 Svo hefur div sem ég greip bara frá tré sem við munum kalla eign inni í því 1053 01:02:27,820 --> 01:02:34,390 kallaði stíl og stíl eru sér eign sem heitir skyggni. 1054 01:02:34,390 --> 01:02:37,330 Ég vildi vita þetta bara með því að horfa upp handbók CSS notanda. 1055 01:02:37,330 --> 01:02:41,160 Það kemur í ljós að það er skyggni CSS eign sem gerir það sem það segir. 1056 01:02:41,160 --> 01:02:44,530 Það gerir eitthvað sýnileg eða ekki sýnilegur eða ekki. 1057 01:02:44,530 --> 01:02:46,810 Og hvernig þú gerir það er þetta. 1058 01:02:46,810 --> 01:02:50,510 Ég bið kerfisbundið ef sýnileika div sé falin, 1059 01:02:50,510 --> 01:02:53,390 hvað get ég breytt því til? Sýnilegt. 1060 01:02:53,390 --> 01:02:58,840 Annars ef skyggni á þessari síðu er ekki falin, rökrétt að gera það falinn. 1061 01:02:58,840 --> 01:03:04,070 Ég hef ekki hugmynd hvers vegna það er sýnilegur og falinn og ekki sýnileg og ósýnileg. 1062 01:03:04,070 --> 01:03:06,000 Þetta var léleg hönnun ákvörðun á leiðinni. 1063 01:03:06,000 --> 01:03:09,530 En þeir eru reyndar andstæður í CSS: sýnilegur og falinn. 1064 01:03:09,530 --> 01:03:15,520 Allt þetta gerir er að það þýðir að breyta CSS af skrá minn og slökkt á, og slökkt á 1065 01:03:15,520 --> 01:03:16,870 fyrir viðkomandi div. 1066 01:03:16,870 --> 01:03:20,630 En aftur, þetta er fall sem heitir blikka. Hvenær er blikka virka heitir? 1067 01:03:20,630 --> 01:03:24,080 Það kemur í ljós að það er önnur sérstakt alþjóðlegt breytu kallað gluggi, 1068 01:03:24,080 --> 01:03:28,220 svipuð í anda við skjal, en þar sem fjallar á vefsíðu þinni, 1069 01:03:28,220 --> 01:03:31,700 eins og DOM tré, HTML er sent frá þjóninum, 1070 01:03:31,700 --> 01:03:35,250 gluggi er átt við króm í kringum það, heimilisfang bar, titil bar, 1071 01:03:35,250 --> 01:03:37,880 og öll þessi efni um vefsíðuna þína. 1072 01:03:37,880 --> 01:03:42,800 >> Og það kemur í ljós að gluggi hlutur hefur sérstaka virkni inni í henni kallast setInterval 1073 01:03:42,800 --> 01:03:44,360 það er það sem það segir. 1074 01:03:44,360 --> 01:03:48,600 Það mun setja bilið - í þessu tilfelli hverja 500 millisekúndur - 1075 01:03:48,600 --> 01:03:52,270 og taka giska hvað það er að fara að gera á hverjum 500 millisekúndur? 1076 01:03:52,270 --> 01:03:55,240 Það er að fara að framkvæma sem virka blikka. 1077 01:03:55,240 --> 01:03:58,560 Og það er gott hér er að við hefðum getað gert þetta í C, jafnvel þó að við aldrei gerði. 1078 01:03:58,560 --> 01:04:01,580 C er með eitthvað sem kallast virka ábendingum þar sem þú getur framhjá aðgerðir um 1079 01:04:01,580 --> 01:04:03,140 sem rök. 1080 01:04:03,140 --> 01:04:07,620 Sama í JavaScript er hægt að standast nafn fall í annan valkost. 1081 01:04:07,620 --> 01:04:10,630 Og eftir því sem ég er að gera. Ég ætla ekki að gera þetta. 1082 01:04:10,630 --> 01:04:14,380 Ef ég setti sviga eftir blikka, sem myndi þýða að hringja í blikka virka. 1083 01:04:14,380 --> 01:04:17,430 Ef ég sleppa þeim, sem þýðir að hér er blikka virka 1084 01:04:17,430 --> 01:04:21,330 þannig að setInterval getur hringt í það á hverjum 500 millisekúndur. 1085 01:04:21,330 --> 01:04:28,200 Svo niðurstaðan, grimmilegur þó að það sé, er að ef ég fer inn í localhost og fara blink.html, 1086 01:04:28,200 --> 01:04:32,120 Ég hef nú að þetta gerist aftur og aftur. 1087 01:04:32,120 --> 01:04:34,950 Og ef ég Skoðið raun frumefni, við skulum sjá hvort við getum séð þetta. 1088 01:04:34,950 --> 01:04:38,550 Leyfðu mér Skoðið frumefni, láta mig fletta niður bara smá, 1089 01:04:38,550 --> 01:04:44,320 láta mig velja Frumefni hérna, og taka DOM inni Eftirlitsmaður Króm '. 1090 01:04:44,320 --> 01:04:48,840 Það er bókstaflega að breytast fram og til baka á hverjum 500 millisekúndur. 1091 01:04:48,840 --> 01:04:55,660 Ef við förum að vinur okkar Nate, 1092 01:04:55,660 --> 01:05:00,020 Ef þú alltaf furða hvernig það er að vinna, svipað hugmynd með millibili, 1093 01:05:00,020 --> 01:05:04,810 en Nate er í raun að gera mjög skilvirka notkun lit í þessu tiltekna máli hér. 1094 01:05:04,810 --> 01:05:07,350 Og hvað meira getum við gert í raun með þetta? 1095 01:05:07,350 --> 01:05:09,990 Við skulum opna annað dæmi og reyna eitthvað 1096 01:05:09,990 --> 01:05:12,940 það er kerfisbundið enn meira gagni en að gera hlutina blikka. 1097 01:05:12,940 --> 01:05:17,990 Leyfðu mér að fara inn í form skrá okkar í dag og fara í form0. 1098 01:05:17,990 --> 01:05:20,820 Þetta var ugliest mögulegt formi sem ég gæti komið upp með, 1099 01:05:20,820 --> 01:05:23,290 og láta mig sýna bara þér hvað það lítur út eins og í vafranum. 1100 01:05:23,290 --> 01:05:28,960 >> Leyfðu mér að fara í localhost / form, og þetta er form0. 1101 01:05:28,960 --> 01:05:33,400 Þetta er frábær ljót HTML formi sem hefur nokkrum sviðum fyrir tölvupóst, til lykilorð, 1102 01:05:33,400 --> 01:05:37,190 lykilorð, og þá lítið kassann til að samþykkja sumir skilmálum og skilyrðum. 1103 01:05:37,190 --> 01:05:41,350 Aflann er ef ég fer þetta form og ég vil ekki gefa þér netfangið mitt, 1104 01:05:41,350 --> 01:05:44,730 Ég vil ekki að samþykkja skilmála og skilyrði kannski, get ég smellt Nýskráning 1105 01:05:44,730 --> 01:05:46,920 og það lætur mig í gegnum engu að síður. 1106 01:05:46,920 --> 01:05:50,800 Þetta gerist til að leggja heimskulegt PHP skrá sem heitir dump.php. 1107 01:05:50,800 --> 01:05:58,420 Allt það gerir er að prenta út efni á $ _GET bara fyrir sjúkdómsgreiningar. 1108 01:05:58,420 --> 01:06:01,580 Það var það sem var lögð af notanda bara núna. 1109 01:06:01,580 --> 01:06:05,010 En geri ráð fyrir að við viljum í raun að staðfesta útfylling notandans. 1110 01:06:05,010 --> 01:06:06,530 Leyfðu mér að fara í útgáfu 1. 1111 01:06:06,530 --> 01:06:11,420 Þetta er form1.html. Það lítur fagurfræðilega eins slæmt, en taka eftir því hvernig ímynda það er. 1112 01:06:11,420 --> 01:06:15,450 Ef ég smelli Nýskráning án samvinnu, fæ ég öskraði á. 1113 01:06:15,450 --> 01:06:17,320 "Þú verður að gefa upp netfang þitt." 1114 01:06:17,320 --> 01:06:21,670 Allt í lagi. Svo láta mig að reyna það. Svo malan@harvard.edu. Ég þarf ekki lykilorð. 1115 01:06:21,670 --> 01:06:25,100 Nýskráning. "Þú verður að gefa upp lykilorð." Allt í lagi. 1116 01:06:25,100 --> 01:06:28,470 Þannig að ég mun gefa lykilorð Crimson. Nýskráning. 1117 01:06:28,470 --> 01:06:32,300 Msgstr "Lykilorðin stemma ekki." Ég verð að nú slá í Crimson hér. 1118 01:06:32,300 --> 01:06:35,710 Ég skoðaði tilviljun það. Nýskráning. 1119 01:06:35,710 --> 01:06:39,860 "Þú verður að samþykkja skilmála og skilyrði." Allt í lagi. Sammála þar. Nýskráning. 1120 01:06:39,860 --> 01:06:43,700 Og nú sýnir það mér greiningu framleiðsla þarna. 1121 01:06:43,700 --> 01:06:45,630 >> Svo bara hvað gerðist? 1122 01:06:45,630 --> 01:06:48,330 Við höfum haft þessa getu til að sannprófa form uppgjöf. 1123 01:06:48,330 --> 01:06:51,420 Í staðreynd, ef þú gerðir kafa í pset 7, það er óákveðinn greinir í ensku afsökunar virka 1124 01:06:51,420 --> 01:06:54,620 sem gerir það mjög auðvelt að æpa á the notandi með skilaboð á skjánum. 1125 01:06:54,620 --> 01:06:57,580 Ég er að nota örlítið mismunandi kerfi, viðvörun virka, 1126 01:06:57,580 --> 01:07:03,690 sem er ekki fall sem er brosti þar sem það gerir mjög ljót notanda skilaboð. 1127 01:07:03,690 --> 01:07:05,710 En við skulum sjá hvað ég er að gera hér. 1128 01:07:05,710 --> 01:07:09,620 Þetta er form1.html, og eftir að ég hef fengið nokkuð kunnuglega setningafræði: 1129 01:07:09,620 --> 01:07:12,920 líkami tag, mynd tag, aðgerð eiginleiki, aðferð eigindi. 1130 01:07:12,920 --> 01:07:17,050 En eftir að ég hef gefið á mitt einstakt auðkenni fyrir þægindi. 1131 01:07:17,050 --> 01:07:19,190 Og ég hef fengið email reit lét tegund er texti, 1132 01:07:19,190 --> 01:07:23,780 lykilorð sviði sem gerð er lykilorð, staðfesting sviði sem gerð er lykilorð, 1133 01:07:23,780 --> 01:07:28,070 og þá a kassann sem heitir samkomulag hérna, tegund er kassann. 1134 01:07:28,070 --> 01:07:30,380 Og svo ég hef fengið senda inn hnappinn. 1135 01:07:30,380 --> 01:07:33,050 En taka efst hvað meira ég. 1136 01:07:33,050 --> 01:07:35,810 Fyrst af öllu, það er önnur notkun handriti merkinu. 1137 01:07:35,810 --> 01:07:40,520 Ef þú hefur einhvern JavaScript kóða í aðra skrá, rétt eins og með CSS er hægt að fela það. 1138 01:07:40,520 --> 01:07:44,530 Og þú gerir það með uppspretta handriti, og síðan eftir að ég er að tengja virðist 1139 01:07:44,530 --> 01:07:50,349 að googleapis.com að mjög langt ferli, en skrá nafn sem endar á jquery.min 1140 01:07:50,349 --> 01:07:52,420 að lágmarki. JS. 1141 01:07:52,420 --> 01:07:55,969 jQuery er frábær vinsæll bókasafn fyrir JavaScript sem bara gerir JavaScript 1142 01:07:55,969 --> 01:07:58,230 allt meira notandi-vingjarnlegur að nota. 1143 01:07:58,230 --> 01:08:00,610 Það er í raun orðið í reynd staðall. 1144 01:08:00,610 --> 01:08:04,090 Svo jafnvel þó að það sem þú ert að fara að sjá er ekki hreint JavaScript í sjálfu sér, 1145 01:08:04,090 --> 01:08:09,340 það er bókasafn ofan á JavaScript mikið eins og CS50 bókasafn er lag 1146 01:08:09,340 --> 01:08:13,670 ofan á lágu stigi C kóða, veruleikinn er nánast notar allir á Netinu það. 1147 01:08:13,670 --> 01:08:18,030 Svo þetta eru ekki þjálfun hjól. Þetta er bara besta að æfa þessa dagana. 1148 01:08:18,030 --> 01:08:22,830 Nú taka hér sem er eigið handrit merki mitt, og eftir það sem ég hef gert hér. 1149 01:08:22,830 --> 01:08:27,450 Það kemur í ljós að jQuery er eitthvað smá fínt. 1150 01:08:27,450 --> 01:08:29,660 JavaScript verður dollara merki, en þau eru merkingarlaus. 1151 01:08:29,660 --> 01:08:32,870 >> Þeir eru eins og bréf A eða B eða C. 1152 01:08:32,870 --> 01:08:36,670 jQuery hefur einfaldlega samþykkt samningsins eða tegund af kallaði til þess 1153 01:08:36,670 --> 01:08:40,280 að $ mun vera sérstök tákn þeirra. 1154 01:08:40,280 --> 01:08:44,950 Svo um leið og þú hleður þessa alþjóðlegu JavaScript skrá sig hér með handritið tag, 1155 01:08:44,950 --> 01:08:49,080 þú hefur aðgang að sérstökum alþjóðlegum breytu sem er kallað $. 1156 01:08:49,080 --> 01:08:53,009 Það er meira rétt kallað jQuery, en það lítur ekki nærri eins kynþokkafullur eins og $. 1157 01:08:53,009 --> 01:08:56,250 En $ hefur enga sérstaka merkingu. Í PHP það hafði sérstaka þýðingu. 1158 01:08:56,250 --> 01:08:58,440 Þú þurfti að hafa það fyrir framan breytu. 1159 01:08:58,440 --> 01:09:01,670 Þetta er bara kynþokkafullur hlutur sem þeir tóku á. 1160 01:09:01,670 --> 01:09:03,389 Hvað er að gerast hér? 1161 01:09:03,389 --> 01:09:08,830 Tilkynning Ég er liggur við jQuery virka alþjóðlegt breytu skjal mína 1162 01:09:08,830 --> 01:09:10,860 og þá er ég að hringja. tilbúin. 1163 01:09:10,860 --> 01:09:15,480 Hvaða jQuery raun er er að það gerir þér kleift að taka nokkrar vanillu hluti JavaScript 1164 01:09:15,480 --> 01:09:17,889 eins og skjal mótmæla, glugga mótmæla, 1165 01:09:17,889 --> 01:09:20,790 og ef þú gefa það inn á jQuery virka - 1166 01:09:20,790 --> 01:09:24,429 og aftur, til að vera skýr, þetta er fall sem heitir jQuery - 1167 01:09:24,429 --> 01:09:28,240 Hvað það gerir er að það skilar þér sérstaka útgáfu af skjalinu 1168 01:09:28,240 --> 01:09:30,700 sem hefur meiri virkni í tengslum við það. 1169 01:09:30,700 --> 01:09:34,760 Svo í hráu JavaScript er ekki tilbúinn virka, 1170 01:09:34,760 --> 01:09:37,810 en ef þú framhjá skjalið á jQuery virka fyrst, 1171 01:09:37,810 --> 01:09:40,960 það skilar þér sérstaka útgáfu af skjalinu mótmæla 1172 01:09:40,960 --> 01:09:43,030 sem hefur meira ímynda lögun. 1173 01:09:43,030 --> 01:09:48,230 Og það er hvers vegna fólk eins og það. Það gerir bara það auðveldara að gera, eins og við erum að fara að sjá. 1174 01:09:48,230 --> 01:09:49,820 Svo hvað þýðir þetta lína af kóða meina? 1175 01:09:49,820 --> 01:09:52,690 Þessi lína af kóða er hér þegar skjalið er tilbúið - 1176 01:09:52,690 --> 01:09:56,830 í öðrum orðum, þegar vafrinn er búinn að lesa þessa skrá toppi til botn - 1177 01:09:56,830 --> 01:09:59,200 fara á undan og framkvæma eftirfarandi aðgerð. 1178 01:09:59,200 --> 01:10:03,540 Hvað er mjög áhugavert í JavaScript - og PHP er þetta eins vel - 1179 01:10:03,540 --> 01:10:05,450 er nafnlaus virka. 1180 01:10:05,450 --> 01:10:10,560 Í JavaScript þú getur lýst aðgerðir sem hafa ekkert nafn, en þeir hafa líkama. 1181 01:10:10,560 --> 01:10:12,570 Taka eftir hvað er að gerast hér. 1182 01:10:12,570 --> 01:10:16,220 >> Þetta er fall sem heitir tilbúinn, og það þýðir bara að gera eftirfarandi 1183 01:10:16,220 --> 01:10:20,220 þegar allt vefsíða er tilbúinn, þegar það er allt verið að lesa í frá þjóninum. 1184 01:10:20,220 --> 01:10:23,090 Hvað viltu gera? Mig langar til að framkvæma klumpur af kóða. 1185 01:10:23,090 --> 01:10:27,120 Takið eftir því að við viljum ekki að keyra þennan kóða strax. 1186 01:10:27,120 --> 01:10:34,350 Ef ég sleppt þessu, þetta myndi þýða strax byrja að framkvæmd þessar línur af kóða. 1187 01:10:34,350 --> 01:10:39,040 En sú staðreynd að ég er að segja nei, nei, nei, vefja það í nafnlaus virka svona 1188 01:10:39,040 --> 01:10:43,000 þýðir ekki framkvæma það enn, kalla það á endanum. 1189 01:10:43,000 --> 01:10:45,430 Við sáum þetta í smá stund síðan í fyrra formi dæmi okkar. 1190 01:10:45,430 --> 01:10:49,990 Hvaða hlutverk gerði við köllum loksins, 500 millisekúndur síðar? Blik. 1191 01:10:49,990 --> 01:10:51,480 Þannig að sömu hugmynd. 1192 01:10:51,480 --> 01:10:53,950 Aftur, jafnvel ef þetta lítur svolítið skrítið, bara taka nú á trú 1193 01:10:53,950 --> 01:10:57,060 að til þess að lýsa nafnlaus aðgerð sem heitir að lokum, 1194 01:10:57,060 --> 01:11:01,720 þú skrifar einfaldlega fall () { 1195 01:11:01,720 --> 01:11:05,380 Svo hvaða kóða við erum að fara að keyra á endanum? Eftirfarandi. 1196 01:11:05,380 --> 01:11:10,460 Þetta lítur líka smá nýtt, en þetta þýðir hér er jQuery virka, 1197 01:11:10,460 --> 01:11:13,430 og þetta er nú a smákaka. 1198 01:11:13,430 --> 01:11:18,830 Þetta bút af HTML neðst á skjánum auðvitað hefur einhverja tré framsetning. 1199 01:11:18,830 --> 01:11:21,730 Það er ekki þetta. Þessi síða er meira áhugavert en þetta Hello, world dæmi. 1200 01:11:21,730 --> 01:11:25,210 En það er einhver tré sem samsvarar þessu HTML. 1201 01:11:25,210 --> 01:11:28,910 Það myndi vera a sársauki í hálsi til að framkvæma einhvers konar endurkvæma virka 1202 01:11:28,910 --> 01:11:34,380 að byrja á rót hnút og þá finna hnút lét ID er skráning. 1203 01:11:34,380 --> 01:11:38,340 Hvað gerir jQuery frábær auðvelt fyrir okkur er bókstaflega þetta. 1204 01:11:38,340 --> 01:11:43,000 Fara á undan og fá mér hvað div eða hvaða formi, hvað HTML þáttur 1205 01:11:43,000 --> 01:11:45,820 hefur ID skráningu. 1206 01:11:45,820 --> 01:11:52,440 Þetta jafngildir document.getElementById ('Skráning'). 1207 01:11:52,440 --> 01:11:54,170 >> Hvers vegna fólk eins og jQuery? 1208 01:11:54,170 --> 01:12:00,110 Vegna þess að það er styttra að slá. En það er allt það er. Það er sama hugmynd. 1209 01:12:00,110 --> 01:12:02,630 Fá mér merki sem lét ID er skráning. 1210 01:12:02,630 --> 01:12:06,300 Og þegar það merki, sem gerist að vera mynd, er lögð fram 1211 01:12:06,300 --> 01:12:08,300 fara á undan og keyra þennan kóða. 1212 01:12:08,300 --> 01:12:11,320 Svo skulum taka einn líta nú á hvernig við erum að gera mynd staðfestingu. 1213 01:12:11,320 --> 01:12:15,950 The setningafræði er vissulega dulinn í fyrstu, en það er að gerast? 1214 01:12:15,950 --> 01:12:21,050 Ef þessi lína af kóða er satt, ég er að fara að æpa á notanda til að veita sitt netfang. 1215 01:12:21,050 --> 01:12:22,970 Svo hvað er þetta lína af kóða? 1216 01:12:22,970 --> 01:12:25,560 $ Þýðir jQuery. Nú eftir þetta. 1217 01:12:25,560 --> 01:12:27,920 Þetta er góður af eins og CSS. 1218 01:12:27,920 --> 01:12:33,370 Ef þú hefur kafa í CSS enn, munt þú vita að þetta þýðir þáttur lét ID er skráning. 1219 01:12:33,370 --> 01:12:39,840 Rýmið þýðir finna barn eða afkomandi skráningu er nafn inntak. 1220 01:12:39,840 --> 01:12:42,970 Og þá er þetta hlutur í hornklofum smá síu. 1221 01:12:42,970 --> 01:12:47,010 Og jafnvel ef það lítur dulinn, þetta þýðir bara að fara á mynd sem ID er skráning, 1222 01:12:47,010 --> 01:12:51,230 fara þátturinn inntak innan þess sem heitir tölvupóstur, 1223 01:12:51,230 --> 01:12:55,440 og þá fá gildi sitt, hvað sem gildi þess verður að vera - 1224 01:12:55,440 --> 01:12:59,670 asdf ef það er allt sem ég vélrita eða malan@harvard.edu ef það er það sem ég slóst. 1225 01:12:59,670 --> 01:13:05,250 Svo ef verðmæti sviði email formi á == ekkert, æpa á notanda. 1226 01:13:05,250 --> 01:13:09,700 Annars ef verðmæti lykilorð sviði == ekkert, æpa á notanda. 1227 01:13:09,700 --> 01:13:19,520 >> Annars ef verðmæti lykilorð sviði ekki jafngilda verðmæti staðfestingu sviði, 1228 01:13:19,520 --> 01:13:22,850 sem var annað form, æpa á notanda. 1229 01:13:22,850 --> 01:13:25,680 Og þá loks - og þetta hefur líka nokkrum nýjum setningafræði eigin, 1230 01:13:25,680 --> 01:13:29,270 en þegar þú hefur séð það, það er að minnsta kosti svolítið meira sanngjarnt - 1231 01:13:29,270 --> 01:13:34,060 annars ef mynd sem ID er skráning hefur inntak þáttur hét er samkomulag 1232 01:13:34,060 --> 01:13:39,720 og það er merkt, fara á undan og æpa á notanda. 1233 01:13:39,720 --> 01:13:42,520 Þannig að ég viðurkenni alveg að þetta er alveg yfirþyrmandi við fyrstu sýn. 1234 01:13:42,520 --> 01:13:46,530 Það er a einhver fjöldi af nýjum setningafræði. En allt jQuery fylgir þessum konar mynstrum. 1235 01:13:46,530 --> 01:13:49,880 Og heiðarlega, ég vissi ekki einu sinni vita það verið þar til fyrir nokkrum mínútum síðan. 1236 01:13:49,880 --> 01:13:53,640 Ég googled "Hvernig athuga þú ef hakað er merkt í jQuery?" 1237 01:13:53,640 --> 01:13:55,680 og þetta er setningafræði, því að þar er mismunandi leiðir til að gera það 1238 01:13:55,680 --> 01:13:58,010 með raunverulegum hráu JavaScript kóða. 1239 01:13:58,010 --> 01:14:01,030 Svo sem mjög fyrsta síða Set Vandamál 7 leggur áherslu á, 1240 01:14:01,030 --> 01:14:04,500 pset 7 er mjög mikið að æfa í bootstrapping sjálfur 1241 01:14:04,500 --> 01:14:08,650 þar sem við höfum veitt, vonandi, að huglæg ramma sem á að takast á við pset. 1242 01:14:08,650 --> 01:14:12,280 >> En eins og oft er raunin með hönnun á vefnum, það er komið að þér virkilega að pota í kring, 1243 01:14:12,280 --> 01:14:16,680 fella sýnishorn af kóða og dæmi af vefnum svo lengi sem þú vitnað þeim 1244 01:14:16,680 --> 01:14:17,960 á skilmálum á þeim fyrsta blaði, 1245 01:14:17,960 --> 01:14:21,460 og átta sig á því að læra HTML, CSS, JavaScript og jafnvel SQL 1246 01:14:21,460 --> 01:14:26,020 er í raun ætlað að vera þetta á-heimili æfa eins og við byrjum að taka þessar þjálfun hjól burt. 1247 01:14:26,020 --> 01:14:29,150 Og átta sig líka er það svo margir fleiri hlutir sem þú getur gert með vafra. 1248 01:14:29,150 --> 01:14:33,790 Inni í flestum af þessum þáttum það eru aðrir hlutir sem kallast atburður dýraþjálfari. 1249 01:14:33,790 --> 01:14:37,140 Og jafnvel þó að við skoðuðum bara á sjálfur heitir onsubmit og onready, 1250 01:14:37,140 --> 01:14:40,310 þú getur gert hlutina eins onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 eins og þegar notandi snertir takka, getur þú hlustað á það og ýtt upp. 1252 01:14:43,410 --> 01:14:45,940 Gmail hefur flýtilykla. 1253 01:14:45,940 --> 01:14:49,490 Hvernig Google innleiða flýtilykla eins C fyrir yrkja? 1254 01:14:49,490 --> 01:14:54,120 Þeir hlusta á atburðum, eins og þeir eru kallaðir, eins onkeypress eða onkeyup og onkeydown. 1255 01:14:54,120 --> 01:14:56,360 Ef þú hefur alltaf sveiflast músina yfir einhvern matseðill valkostur 1256 01:14:56,360 --> 01:15:00,180 og allt í einu, Voila, a valmynd birtist eða grafískur breytingar lit, 1257 01:15:00,180 --> 01:15:01,920 hvernig eru þau að gera það? 1258 01:15:01,920 --> 01:15:06,940 Frekar en að hlusta onready eða onsubmit, hlusta þú á onMouseOver eða onmouseout. 1259 01:15:06,940 --> 01:15:10,920 >> Svo í stuttu máli, með þessum mjög einföldu grunnatriði sem við höfum byrjað að klóra yfirborðið á dag 1260 01:15:10,920 --> 01:15:13,940 og við munum kafa í frekar til að á miðvikudaginn, þú, æ, 1261 01:15:13,940 --> 01:15:17,530 vald til að framkvæma hvers konar hluti sem þú ert þegar kunnuglegur með. 1262 01:15:17,530 --> 01:15:21,620 Svo skulum enda þar, og við munum halda áfram á þessu á miðvikudag. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]