1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Semèn 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Inivèsite Harvard] 3 00:00:04,740 --> 00:00:07,170 [Sa a se CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Tout dwa. Byenveni tounen. Sa a se CS50, e sa se kòmansman an nan semèn 9. 5 00:00:12,350 --> 00:00:16,600 Jodi a nou konsantre an patikilye sou konsepsyon, pa nan yon kontèks C 6 00:00:16,600 --> 00:00:20,010 men nan yon kontèks PHP ak yon ti jan nan SQL ak yon ti jan nan JavaScript, 7 00:00:20,010 --> 00:00:23,730 patikilyèman nan direksyon yon fen nan tou de pset 7 ak tou pwojè final ou a. 8 00:00:23,730 --> 00:00:26,310 An reyalite, si ou se nan pwen sa a nan pwojè final ou a 9 00:00:26,310 --> 00:00:30,100 kote prezimableman kòm nan yon èdtan oswa konsa Anons sa pibliye depi ou omwen te kòmanse bay kèk panse 10 00:00:30,100 --> 00:00:33,730 final pwojè ou a ak w ap panse ou ta renmen kolabore ak 1 oswa 2 kamarad klas, 11 00:00:33,730 --> 00:00:36,150 si w ap gen pwoblèm koneksyon avèk kamarad klas di, 12 00:00:36,150 --> 00:00:40,570 santi yo lib yo ranpli fòm lan nan cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 Li jis mande w ki moun ou ye, ki kalite pwojè w ap panse sou sa, 14 00:00:42,880 --> 00:00:44,870 kote w ap viv jis pou rezon lojistik. 15 00:00:44,870 --> 00:00:49,510 Lè sa a, si ou vle kenbe yon je sou sou pwochen semèn lan oswa konsa adrès URL la calcul a, 16 00:00:49,510 --> 00:00:53,520 ou ka Lè sa a, wè yon vèsyon Read-Only nan Google doc la 17 00:00:53,520 --> 00:00:56,010 nan ki n ap kolekte enfòmasyon sa a. 18 00:00:56,010 --> 00:00:58,930 Se konsa, si ou vle travay avèk yon moun, pa tout vle di santi yo lib yo rive jwenn deyò moun 19 00:00:58,930 --> 00:01:00,480 via ki mekanis. 20 00:01:00,480 --> 00:01:02,690 Men, majorite nan jan fè solo travay. Sa a se totalman amann. 21 00:01:02,690 --> 00:01:06,120 Se konsa, pa santi ke sa a se nan nenpòt fason obligatwa. 22 00:01:06,120 --> 00:01:09,680 Nan Vandredi li te jis m 'ak kèk nan ekip la nan isit la, 23 00:01:09,680 --> 00:01:11,100 vid teyat pou pati ki pi. 24 00:01:11,100 --> 00:01:14,600 Te gen 3 touris chita 'kanpe, se konsa sa ki te yon ti kras gòch. 25 00:01:14,600 --> 00:01:18,970 Ki sa nou te pale osijè de te baz done ak nou te pale de pset 7 yon ti jan. 26 00:01:18,970 --> 00:01:22,200 Men, si nou pa t 'rive trape ki sou videyo jis ankò, sa se amann. 27 00:01:22,200 --> 00:01:26,770 M ap eseye defini nenpòt tèm ke nou ta otreman pran pou yo akòde 28 00:01:26,770 --> 00:01:28,840 ki baze sou konferans Vandredi a. 29 00:01:28,840 --> 00:01:32,550 >> Men, jodi a nou pral pou yo eseye fè ou jwenn nan pwen an 30 00:01:32,550 --> 00:01:34,990 nan pa sèlman yo te kapab fè yon bagay tankou pset 7 31 00:01:34,990 --> 00:01:37,360 men vrèman konprann sa k ap pase sou anba kapo machin lan, 32 00:01:37,360 --> 00:01:41,910 patikilyèman kèk nan Abstraksyon sa yo ke nou mete nan plas nan dosye a functions.php 33 00:01:41,910 --> 00:01:45,780 fè lavi ou yon ti jan pi fasil, men se konsa ke ou finalman konprann 34 00:01:45,780 --> 00:01:48,760 konsa, lè wou yo fòmasyon vin wete nan kèk semèn ou ka toujou siviv 35 00:01:48,760 --> 00:01:53,750 nan mond reyèl la epi nou fè bagay sa a san okenn kad CS50 anba ou. 36 00:01:53,750 --> 00:01:57,500 Sa a _SESSION $, pou moun nan nou ki yo abitye 37 00:01:57,500 --> 00:02:01,960 oswa ki te deja pran videyo a nan Vandredi, ki sa ki SESYON kite nou fè 38 00:02:01,960 --> 00:02:04,330 nan yon aplikasyon web PHP ki baze sou? 39 00:02:04,330 --> 00:02:09,650 Sa a se yon varyab supèrglobal, ki vle di li nan menm jan an nan lespri yo ka resevwa ak POST 40 00:02:09,650 --> 00:02:13,970 ak yon lòt moun kèk, men sa ki bagay sa a itil pou? 41 00:02:13,970 --> 00:02:18,320 >> Ki sa ki SESYON itilize pou? Yeah. [Elèv] antre pous 42 00:02:18,320 --> 00:02:21,040 Padon? [Elèv] antre pous antre pous Vreman vre. 43 00:02:21,040 --> 00:02:25,100 Nan pset 7 n ap lè l sèvi avèk sa a supèrglobal SESYON fasilite antre pous 44 00:02:25,100 --> 00:02:28,600 Ak sa ki nan bon sou sa a supèrglobal se ke li nan yon etalaj asosyatif. 45 00:02:28,600 --> 00:02:33,190 Yon etalaj asosyatif, sonje, se jis yon etalaj, men pa gen okenn pi long ki gen endis yo dwe nimewo 46 00:02:33,190 --> 00:02:37,670 tankou 012. Yo ka nimewo oswa yo ka menm strings. 47 00:02:37,670 --> 00:02:44,890 Se konsa, si ou te plonje nan pset 7 ankò, ou ka sonje ke nou ap estoke yon kle ID rele 48 00:02:44,890 --> 00:02:50,330 andedan sa a etalaj asosyatif ki gen valè se yon bagay tankou 123 - 49 00:02:50,330 --> 00:02:53,780 kèlkeswa sa kounye a louvri sesyon an nan ID itilizatè a se. 50 00:02:53,780 --> 00:02:59,470 Motivasyon an pou sa a se ke menm apre si itilizatè a te vizite lokalost 51 00:02:59,470 --> 00:03:02,720 oswa sit entènèt mwen an plis jeneralman ak Lè sa a, yo te louvri sesyon an, 52 00:03:02,720 --> 00:03:07,320 menm si yo pa klike sou yon lyen oswa retounen nan sit entènèt mwen an pandan 5 minit 53 00:03:07,320 --> 00:03:10,730 oswa menm yon èdtan oswa menm yon jou, men yo kite fenèt navigatè yo ouvè, 54 00:03:10,730 --> 00:03:14,370 via sa a supèrglobal mwen ka sonje ke yo louvri sesyon pous 55 00:03:14,370 --> 00:03:21,140 >> Nan lòt mo, li pèmèt m 'nan magazen anyen yon ti kras tèm long mwen vle sou yon itilizatè. 56 00:03:21,140 --> 00:03:24,390 Epi ou ka panse a li vrèman kòm enkarnasyon a nan yon kabwa fè acha. 57 00:03:24,390 --> 00:03:27,740 Kote tankou Amazon evidamman kite ou mete bagay sa yo nan yon shopping cart, 58 00:03:27,740 --> 00:03:32,230 men HTTP, pwotokòl la ki pouvwa entènèt la, se atach avèk okenn peyi 59 00:03:32,230 --> 00:03:34,230 nan sans ke lè ou vizite yon sit entènèt, 60 00:03:34,230 --> 00:03:37,290 pou pati ki pi ou pa gen kèk koneksyon rezo konstan 61 00:03:37,290 --> 00:03:39,270 ant navigatè ou ak sèvè a. 62 00:03:39,270 --> 00:03:42,190 Le pli vit ke ou te telechaje HTML ak JPEGs yo ak jif yo ak tout sa ki, 63 00:03:42,190 --> 00:03:48,200 koneksyon an ale lwen ak ou jis gen yon kopi nan HTML ak etajèr soti nan sèvè an. 64 00:03:48,200 --> 00:03:53,000 Men, si sèvè a vle sonje yon bagay sou ou, 65 00:03:53,000 --> 00:03:57,580 chay la se sou sèvè a aktyèlman anrejistre enfòmasyon sa a. 66 00:03:57,580 --> 00:04:00,130 Se konsa, nou pwogramè a ki gen kontwòl sou sèvè a 67 00:04:00,130 --> 00:04:04,400 ka mete pi anyen ou vle andedan sa a etalaj supèrglobal asosyatif 68 00:04:04,400 --> 00:04:06,850 epi li pral gen tan nan pwochen itilizatè a vini tounen, 69 00:04:06,850 --> 00:04:12,070 si li nan minit oswa menm jou apre, sof si yo fèmen fenèt navigatè yo, 70 00:04:12,070 --> 00:04:14,360 nan ki pwen SESYON disparèt. 71 00:04:14,360 --> 00:04:17,779 Se konsa, li depo efemèr, li la ki pa ki pèsistan, ak li a te vle di l 'ale 72 00:04:17,779 --> 00:04:22,360 le pli vit ke itilizatè a fèmen navigatè yo - se pa sèlman ki tab, souvan navigatè la an antye, 73 00:04:22,360 --> 00:04:24,930 ensi efektivman antre itilizatè a deyò. 74 00:04:24,930 --> 00:04:28,000 Se konsa, kouman sa a se bagay aktyèlman aplike? 75 00:04:28,000 --> 00:04:31,360 Kite a pran yon gade rapid nan yon egzanp ki senp nou te etidye nan Vandredi. 76 00:04:31,360 --> 00:04:33,340 Pou moun ki abitye, li te kòm senp tankou sa a. 77 00:04:33,340 --> 00:04:35,910 Sa a se yon paj wèb ki sèl objektif nan lavi se fè m 'konnen 78 00:04:35,910 --> 00:04:38,000 konbyen fwa mwen te vizite paj sa a. 79 00:04:38,000 --> 00:04:41,670 Sa a se premye fwa a isit la sou Lendi a ke mwen te vizite li, konsa li di 0 fwa. 80 00:04:41,670 --> 00:04:46,940 >> Men, si mwen kòmanse rupture paj sa a, li di 1 tan, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 ak sa a pral evantyèlman jis kenbe sou konte leve, leve, leve, leve, moute 82 00:04:49,800 --> 00:04:53,130 pou chak tan mwen aktyèlman klike sou Reload sou li. 83 00:04:53,130 --> 00:04:58,830 Se konsa, kouman sa a ap travay? Kite m 'ale andedan sa a ranpli rele counter.php. 84 00:04:58,830 --> 00:05:02,490 Pati a anwo nan li se tout kòmantè ble, men pati nan enteresan an se isit la. 85 00:05:02,490 --> 00:05:06,670 Sou liy 13 nou rele sa a session_start fonksyon, 86 00:05:06,670 --> 00:05:09,600 e ke se literalman tout sa ou bezwen fè si ou vle gen aksè 87 00:05:09,600 --> 00:05:13,610 sa a supèrglobal espesyal ki rele $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 Ki fè li tout sa ki posib, epi nou pral wè nan yon moman ki jan ki nan tout sa posib. 89 00:05:17,430 --> 00:05:20,350 Nan liy avi 16 sa m ap fè a. 90 00:05:20,350 --> 00:05:25,960 Si kle a, yo rele kontwa - nan lòt mo, valè a endèks - "vann san preskripsyon" 91 00:05:25,960 --> 00:05:32,310 egziste anndan sa a etalaj yo rele sesyon, Lè sa a, ki sa mwen ap fè avèk li nan liy ki anba a? 92 00:05:32,310 --> 00:05:36,650 Ki sa ki se liy 18 ap fè? 93 00:05:36,650 --> 00:05:40,360 >> [Fèbl repons elèv] Ki sa ki nan sa? [Elèv] Sere valè an. Bon. 94 00:05:40,360 --> 00:05:45,800 Li nan estoke valè a ki nan nan sesyon dwa kounye a nan yon nouvo lokal varyab tanporè, 95 00:05:45,800 --> 00:05:48,250 $ Kontwa nan tout miniskil. 96 00:05:48,250 --> 00:05:50,770 Remake PHP se deja ke yo te yon ti kras parese isit la. 97 00:05:50,770 --> 00:05:55,550 Avi nou pa gen nenpòt ki mansyone nan int oswa flote oswa fisèl oswa yon bagay tankou sa 98 00:05:55,550 --> 00:06:00,480 paske PHP se chetif tape, annakò ak sa ou pa bezwen presize kalite a nan yon varyab, 99 00:06:00,480 --> 00:06:03,310 ak nan ka sa a isit la, mwen pa te menm te deklare li ankò. 100 00:06:03,310 --> 00:06:08,980 Mwen deklare li anndan nan sa yo aparèy òtopedik Curly ak kontrèman ak C, sa a se aktyèlman oke. 101 00:06:08,980 --> 00:06:13,800 Pa gen pwoblèm ki jan pwofondman pare solèy deklarasyon yon varyab a se nan PHP - 102 00:06:13,800 --> 00:06:16,650 andedan nan atèl Curly, andedan nan atèl Curly ak renmen an - 103 00:06:16,650 --> 00:06:21,230 li pral nan moman sa nan tan ki egziste pou rès pwogram nan, 104 00:06:21,230 --> 00:06:22,680 pou pi bon oswa pou vin pi mal. 105 00:06:22,680 --> 00:06:26,930 Se konsa, li imedyatman vin mondyal osito ke ou defini li kòm n ap fè isit la. 106 00:06:26,930 --> 00:06:31,620 >> Sinon, si mwen pa jwenn ke gen nan anything nan supèrglobal nan sesyon, 107 00:06:31,620 --> 00:06:34,680 Mwen aparamman inisyalizin sa a vann san preskripsyon varyab a 0, 108 00:06:34,680 --> 00:06:37,580 ensi jis asepte itilizatè a te janm gen isit la anvan. 109 00:06:37,580 --> 00:06:40,030 Lè sa a, sa a nan kou se incrementing kontwa an ki jan? 110 00:06:40,030 --> 00:06:44,480 Mwen mete ajou valè a ki sa ki andedan sa a etalaj asosyatif 111 00:06:44,480 --> 00:06:49,530 pa mete li egal a kèlkeswa sa kontwa kounye a se + 1. 112 00:06:49,530 --> 00:06:53,520 Si m 'desann isit la yo HTML ki nan paj la, li la aktyèlman trè senp. 113 00:06:53,520 --> 00:06:58,920 Tout sa mwen gen nan kò a nan paj sa a se, "Ou te vizite sit sa a pou-ak-se konsa fwa." 114 00:06:58,920 --> 00:07:00,350 Ak sa a se yon tise PHP. 115 00:07:00,350 --> 00:07:06,080 Si ou fè sa 00:07:12,600 Li nan reyèlman ekivalan a yon bagay tankou printf, ki nou te wè anpil fwa nan C, 117 00:07:12,600 --> 00:07:15,940 byenke menm jan ou ka konnen deja soti nan espèk a nan pset 7, 118 00:07:15,940 --> 00:07:20,160 ekri ak lèt ​​detache a tou se yon fonksyon ki jis simagri yon bagay ki soti, li pa sèvi ak aktyèlman kòd fòma, 119 00:07:20,160 --> 00:07:23,270 epi ou ka di reyèlman eko kòm byen. 120 00:07:23,270 --> 00:07:27,460 Yo ap tout janm konsa yon ti kras diferan menm si efè a nèt se alafen menm bagay la. 121 00:07:27,460 --> 00:07:31,270 Se konsa, sa a pou sèvi ak nan egal siy se jis sòt de yon fason elegant nan fè li 122 00:07:31,270 --> 00:07:34,910 plis suksen pase ou ta ka otreman kapab. 123 00:07:34,910 --> 00:07:38,370 Se konsa, ki nan tout sa sit sa a fè. Li simagri soti valè a nan vann san preskripsyon. 124 00:07:38,370 --> 00:07:40,550 Kijan sa a se tout aktyèlman rive? 125 00:07:40,550 --> 00:07:43,250 Ou ka sonje yon semenn oswa konsa Anons sa pibliye depi nou te kòmanse kap anba kapo a 126 00:07:43,250 --> 00:07:47,910 nan ki jan yon paj wèb travay pa lè l sèvi avèk sa a tab Enspektè. 127 00:07:47,910 --> 00:07:51,900 >> Chrome gen sa a tou de nan vèsyon an Mac, vèsyon an Windows, e menm vèsyon an Linux, 128 00:07:51,900 --> 00:07:59,510 ak Firefox ak IE gen mekanis ki sanble kote ou gen sa a debugjeur bati-an 129 00:07:59,510 --> 00:08:01,400 andedan nan navigatè a. 130 00:08:01,400 --> 00:08:03,040 Se pou nou pran yon gade nan sa ki annapre yo. 131 00:08:03,040 --> 00:08:06,960 Nou gen yon pakèt antye nan onglè isit la, ak sonje ke youn nan leftmost se eleman, 132 00:08:06,960 --> 00:08:10,700 e pa gen pwoblèm ki jan godawful HTML ak JavaScript se nan yon paj, 133 00:08:10,700 --> 00:08:15,710 sonje ke ak tab la Eleman ou ka aktyèlman navige HTML nan yerarchik 134 00:08:15,710 --> 00:08:17,050 ak bèl e byen. 135 00:08:17,050 --> 00:08:19,370 Se konsa, si w ap eseye aprann nan men yon sit entènèt tankou Google oswa Facebook 136 00:08:19,370 --> 00:08:22,370 oswa reyèlman nenpòt ki sit entènèt, reyalize ke w ap pwobableman pi byen 137 00:08:22,370 --> 00:08:26,360 gade nan kòd la sous nan fason sa a kòm opoze a gade sous la anvan tout koreksyon, 138 00:08:26,360 --> 00:08:29,580 ki kapab yon dezòd, menm jan nou te wè espesyalman sou sit Google la. 139 00:08:29,580 --> 00:08:32,220 Se konsa, si mwen olye klike sou tab la Rezo isit la, 140 00:08:32,220 --> 00:08:34,830 kite a wè sa k ap pase sou lè m 'ale nan paj sa a. 141 00:08:34,830 --> 00:08:38,669 Premye kite m 'klè kachèt m' yo. 142 00:08:38,669 --> 00:08:43,570 Mwen pral antre nan Settings nan Chrome ak Lè sa a, ale nan Istwa 143 00:08:43,570 --> 00:08:46,420 ak Lè sa a, Klè tout done navigation. 144 00:08:46,420 --> 00:08:48,170 Ou ka itilize yo fè sa pou lòt rezon, [ri] 145 00:08:48,170 --> 00:08:51,990 men lè li rive devlope sou sit entènèt, li la aktyèlman itil - 146 00:08:51,990 --> 00:08:55,980 si w ap ri ou konnen. [Ri] 147 00:08:55,980 --> 00:08:59,310 Li nan aktyèlman vrèman itil lè devlope sou sit entènèt paske reyalite a se 148 00:08:59,310 --> 00:09:04,100 bagay sa yo tankou bonbon ak bagay sa yo tankou dosye kach HTML, kach JavaScript dosye 149 00:09:04,100 --> 00:09:06,390 ka aktyèlman vin yon tèt fè mal gwo, paske si pou kèlkeswa rezon 150 00:09:06,390 --> 00:09:11,500 navigatè a deside Cache kèk dosye e ankò ou te fè chanjman nan dosye ki sou sèvè a 151 00:09:11,500 --> 00:09:14,670 men navigatè a pa t 'reyèlman reyalize ke te dosye a chanje 152 00:09:14,670 --> 00:09:19,060 ak Se poutèt sa pa aktyèlman re-telechaje li menm lè ou klike sou bouton ki Reload, 153 00:09:19,060 --> 00:09:23,210 youn nan fason yo jis asire ou ke fòt la se pa avèk kòd ou ki pi surefire, 154 00:09:23,210 --> 00:09:26,480 li nan ak konpòtman an nan navigatè a, se ale nan isit la nan navigatè ou a 155 00:09:26,480 --> 00:09:29,950 ak jis klè istwa a tout antye pou ke gen nan pa gen konfizyon. 156 00:09:29,950 --> 00:09:33,210 >> Lè sa a, si ou reyèlman vle yo Paranoya, kite navigatè a, rekòmanse li, 157 00:09:33,210 --> 00:09:35,660 ak Lè sa a, asire ou ke tout ap travay jan yo espere. 158 00:09:35,660 --> 00:09:38,820 Se konsa, nan kout, netwaye kachèt se yon bon bagay lè nou ap fè devlòpman. 159 00:09:38,820 --> 00:09:40,690 Se konsa, isit la nou gen tab la Network. 160 00:09:40,690 --> 00:09:46,020 Mwen te deja te vin vizite sit la nan 9 fwa, men kite m 'ale pi devan koulye a, epi klike Reload. 161 00:09:46,020 --> 00:09:47,500 Ak mwen tounen desann nan 0. 162 00:09:47,500 --> 00:09:52,100 Se pou nou aktyèlman wè kouman li se ke sa a se supèrglobal SESYON te aplike. 163 00:09:52,100 --> 00:09:55,990 Mwen pral klike sou 1 demann lan HTTP ki te fè a, 164 00:09:55,990 --> 00:09:58,810 ak fenèt sa a debogaj pèmèt m 'gade anndan an sa. 165 00:09:58,810 --> 00:10:01,970 Men mwen wè jis repons lan soti nan sèvè an, ki se pa enteresan. 166 00:10:01,970 --> 00:10:04,030 Mwen te wè sa a nan nenpòt ki nimewo nan fason. 167 00:10:04,030 --> 00:10:06,350 Men, sa ki nan teknikman enteresan yo Tèt yo. 168 00:10:06,350 --> 00:10:11,770 Si m 'desann isit la epi konsantre sou Tèt yo demann, epi klike sous vi, 169 00:10:11,770 --> 00:10:14,400 sa m ap pral wè se literalman demann lan HTTP 170 00:10:14,400 --> 00:10:17,250 ki jis te ale nan navigatè mwen nan sèvè a, 171 00:10:17,250 --> 00:10:21,400 JWENN yo te pawòl Bondye a fonksyonen ak Lè sa a, / counter.php yo te non an ranpli, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 jis ke yo te vèsyon an nan HTTP ki navigatè mwen an ap lè l sèvi avèk. 173 00:10:25,670 --> 00:10:31,070 Liy sa a isit la se yon rapèl ti kras nan navigatè nan sèvè ki sa non an nan sèvè a se 174 00:10:31,070 --> 00:10:33,020 ke li vle pou pale. 175 00:10:33,020 --> 00:10:38,200 Lè sa a, rès la nan sa a se pafwa enteresan, men se pa ki enpòtan kounye a. 176 00:10:38,200 --> 00:10:40,090 >> Sa a se jis kalite yon kiryozite. 177 00:10:40,090 --> 00:10:43,530 Skre menm si sa a se fisèl, nenpòt ki lè navigatè ou a vizit yon sit entènèt 178 00:10:43,530 --> 00:10:47,110 li se pou enfòme sèvè a ki sa navigatè w ap itilize 179 00:10:47,110 --> 00:10:50,040 epi ki sa sistèm opere w ap itilize ak sa ki vèsyon ladan l '. 180 00:10:50,040 --> 00:10:52,650 Se konsa, si ou te janm mande ki jan sit entènèt tankou CNN ak etajèr 181 00:10:52,650 --> 00:10:56,860 konnen ki sa ki pousantaj yo se nan Mac itilizatè sou entènèt itilizatè yo, PC, 182 00:10:56,860 --> 00:11:00,820 Itilizatè IE, itilizatè yo Chrome ak renmen an, li nan paske tout navigatè nou 183 00:11:00,820 --> 00:11:04,300 ap di chak sit entènèt yon sèl soti la ki sa nou yo ye. 184 00:11:04,300 --> 00:11:07,410 Li pa nesesèman gen enfòmasyon ki idantifye moun pèsonèlman, 185 00:11:07,410 --> 00:11:13,060 men li fè sa di sèvè a ki sa adrès IP ou ye epi kisa navigatè ak OS w ap itilize. 186 00:11:13,060 --> 00:11:14,720 Se konsa, ke se la li enfòmasyon sa a. 187 00:11:14,720 --> 00:11:19,960 Men, sa ki nan plis enteresan kounye a lè li rive sesyon sa yo se header nan repons. 188 00:11:19,960 --> 00:11:22,530 Kite m 'klike sou gade sous akote repons. 189 00:11:22,530 --> 00:11:24,590 Ki sa ki nan enteresan isit la se yon bagay kèk. 190 00:11:24,590 --> 00:11:27,580 1, nou te tounen yon kòd estati a 200. 191 00:11:27,580 --> 00:11:29,840 Nou pa janm wè sa a kòd estati paske sa vle di tout bagay byen. 192 00:11:29,840 --> 00:11:32,920 Sa vle di literalman oke nan kontra yon lòt bagay. 193 00:11:32,920 --> 00:11:36,380 Ki sa ki nan yon nimewo nou pafwa wè sa a, se move? [Elèv] 404. 194 00:11:36,380 --> 00:11:39,860 404, dosye pa jwenn, 403 ou ka baryè sou deja, 195 00:11:39,860 --> 00:11:43,660 ki sa yo entèdi, ki vle di ou bliye yon bagay chmod, gen plis chans. 196 00:11:43,660 --> 00:11:45,190 Ak gen nan yon pakèt moun sou lòt moun. 197 00:11:45,190 --> 00:11:47,760 >> Desann isit la, sa a se yon ti kras fou. 198 00:11:47,760 --> 00:11:52,340 Mwen vrèman jis te ekri sa a ranpli kèk minit de sa pa kole l 'nan jdi. 199 00:11:52,340 --> 00:11:57,100 Poukisa paj sa a ekspire nan lane 1981 anvan te gen vrèman se te yon sit entènèt? 200 00:11:58,010 --> 00:12:00,730 Ki sa ki ap pase la? 201 00:12:00,730 --> 00:12:04,390 >> [Fèbl elèv repons] koupon pou la tan. Men, poukisa? 202 00:12:06,110 --> 00:12:09,120 Li nan yon ti jan abitrè, men li la aktyèlman itil. 203 00:12:09,120 --> 00:12:15,500 Ki sa sa se li di l navigatè mwen an se sa a ranpli PHP ou te jis mande te deja ekspire. 204 00:12:15,500 --> 00:12:18,580 Anfèt, li ekspire 30 ane de sa. 205 00:12:18,580 --> 00:12:20,260 Men, sa ki ki vrèman vle di? 206 00:12:20,260 --> 00:12:22,500 Li jis vle di tan nan pwochen itilizatè a vizite paj sa a, 207 00:12:22,500 --> 00:12:25,540 si pa rupture oswa tape adrès URL la nan ba a adrès, 208 00:12:25,540 --> 00:12:28,010 asire w ke ou ale ak chache yon kopi nouvo nan li. 209 00:12:28,010 --> 00:12:30,840 Sa a se sòt de yon egzanp sou rsu kachèt, 210 00:12:30,840 --> 00:12:33,790 yon mo estipid ki jis vle di ap eseye dekouraje navigatè 211 00:12:33,790 --> 00:12:37,260 soti nan aktyèlman HTML caching ki nan te voye soti nan yon sèvè 212 00:12:37,260 --> 00:12:41,490 se konsa ke ou pa aksidantèlman frape rcharjeman ak Lè sa a, wè vèsyon an menm nan dosye a. 213 00:12:41,490 --> 00:12:43,730 Ou aktyèlman vle sèvè a voye yon kopi nouvo. 214 00:12:43,730 --> 00:12:47,440 Se konsa, reyalite a ke li nan 1981 jis vle di ke se sa ki aparèy la ap chwazi 215 00:12:47,440 --> 00:12:50,280 kòm yon dat abitrè nan tan lontan an. 216 00:12:50,280 --> 00:12:53,380 Men, liy la reyèl juicy se kounye a yon sèl sa a. 217 00:12:53,380 --> 00:12:57,550 Menm anvan 50 w ap pwobableman abitye avèk vagman bonbon. 218 00:12:57,550 --> 00:13:01,820 Kòm a kounye a, sitou pami sa yo ki mwens konfòtab oubyen nan ant, 219 00:13:01,820 --> 00:13:04,120 sa ki se yon bonbon nan konpreyansyon ou an kounye a 220 00:13:04,120 --> 00:13:06,980 menm si nou ap sou fè sa ou konprann plis teknik? 221 00:13:08,150 --> 00:13:10,070 Ki sa ki nan yon bonbon? Yeah. 222 00:13:10,070 --> 00:13:13,890 [Elèv] Enfòmasyon sou itilizatè a yo, renmen yo si yo te ekri non itilizatè yo oswa yon bagay. 223 00:13:13,890 --> 00:13:17,370 >> Bon. Li nan enfòmasyon sou itilizatè a, si yo te tape nan non itilizatè yo deja. 224 00:13:17,370 --> 00:13:21,190 Bonbon yo se yon fason kote serveurs ka sonje yon bagay sou yon itilizatè. 225 00:13:21,190 --> 00:13:25,810 Ak sa ki yon bonbon vrèman se se yon dosye tèks oswa kèk sekans bytes 226 00:13:25,810 --> 00:13:28,340 ki nan te plante pa sèvè a andedan nan navigatè ou a, 227 00:13:28,340 --> 00:13:31,960 ak andedan nan ki dosye oswa nan mitan moun bytes se kèk kalite idantifyan. 228 00:13:31,960 --> 00:13:35,640 Petèt li nan literalman non itilizatè ou, men ou pi souvan li nan yon bagay ki pi skre-ap chèche 229 00:13:35,640 --> 00:13:43,700 tankou bagay sa a isit la - bo8dal3ct ak pou fè - sa a fisèl alfa reyèlman gwo 230 00:13:43,700 --> 00:13:47,050 sa ki nan vrèman jis vle di ke yo gen yon idantifyan inik pou ou. 231 00:13:47,050 --> 00:13:49,790 Oswa ou ka panse a li kòm yon sòt de koupon pou men vityèl. 232 00:13:49,790 --> 00:13:53,020 Si ou ale nan kèk klib oswa yon pak amizman, sonje ke ou te aktyèlman peye 233 00:13:53,020 --> 00:13:55,850 e yo ale nan yo, yo mete yon ti kras fich wouj sou men ou nan kèk sòt, 234 00:13:55,850 --> 00:13:59,270 ak ki raple moun yo nan kontwa an ke ou te deja peye 235 00:13:59,270 --> 00:14:01,340 epi ou ka vini e li ale menm jan ou tanpri. 236 00:14:01,340 --> 00:14:04,250 Bonbon yo se yon ti kras menm jan an nan lespri ak sa yo ki. 237 00:14:04,250 --> 00:14:08,070 A premye fwa mwen te vizite sit entènèt sa a, jan mwen jis te fè apre netwaye kachèt m 'yo, 238 00:14:08,070 --> 00:14:11,620 sèvè a entènèt, aparèy la nan ka sa a, mete yon koupon pou achte sou men m ' 239 00:14:11,620 --> 00:14:15,030 ki gen non se PHPSESSID, sesyon ID, 240 00:14:15,030 --> 00:14:18,260 ki gen valè sa a fisèl alfa reyèlman long. 241 00:14:18,260 --> 00:14:22,470 >> Se konsa, sa a, se kounye a sòt de senbolize sou men m 'pou ke tan nan pwochen mwen frape Reload 242 00:14:22,470 --> 00:14:25,230 oswa manyèlman vizite URL sa nan yon navigatè, 243 00:14:25,230 --> 00:14:29,230 navigatè mwen an pa definisyon HTTP ki pral prezante koupon pou la men 244 00:14:29,230 --> 00:14:31,940 ankò, li ankò epi ankò. 245 00:14:31,940 --> 00:14:34,550 Se konsa, menm si sèvè a pa nesesèman konnen ki moun ki mwen menm, 246 00:14:34,550 --> 00:14:39,610 yo omwen konnen ke mwen itilizatè a menm oswa omwen, plis espesyalman, navigatè a menm. 247 00:14:39,610 --> 00:14:45,660 Se konsa, sa a se finalman ki jan se supèrglobal a SESYON aplike. 248 00:14:45,660 --> 00:14:51,200 Sèvè a pa gen okenn lide ki moun ou ye lè ou revize yon sit entènèt pou dezyèm lan oswa twazyèm fwa a 249 00:14:51,200 --> 00:14:53,410 sof si ou prezante sa a koupon pou men yo. 250 00:14:53,410 --> 00:14:55,530 Ak le pli vit ke ou prezante ke koupon pou men, 251 00:14:55,530 --> 00:14:59,370 sèvè wèb la esansyèlman ale nan yon baz done ti kras nan pwòp li yo 252 00:14:59,370 --> 00:15:06,040 ak chèk, oke, mwen te jis wè koupon pou la men nan bo8dal3ct itilizatè ak pou fè. 253 00:15:06,040 --> 00:15:09,850 Kite m 'wè sa ki enfòmasyon te pwogramè a ki estoke 254 00:15:09,850 --> 00:15:12,380 andedan nan supèrglobal a sou sa a itilizatè, 255 00:15:12,380 --> 00:15:17,000 ak Lè sa a, kite m 'asire w ke ke done se ankò andedan nan sesyon an supèrglobal 256 00:15:17,000 --> 00:15:19,830 pou ke pwogramè a kapab re-jwenn aksè ki done 257 00:15:19,830 --> 00:15:23,360 menm si li te mete kèk minit oswa èdtan Anons sa pibliye depi. 258 00:15:23,360 --> 00:15:26,150 Se konsa, nan lòt mo, bonbon, ki te resevwa yon rap move pou kèk tan 259 00:15:26,150 --> 00:15:29,990 paske nan ensekirite nan navigatè epi yo ka vrèman vyole vi prive nou yo ak tout sa a, 260 00:15:29,990 --> 00:15:31,900 yo gen aktyèlman gwo sèvis piblik paske san yo pa yo 261 00:15:31,900 --> 00:15:36,110 ou ta konstaman ap antre nan chak paj Facebook ou vizite 262 00:15:36,110 --> 00:15:40,680 oswa chak imel Gmail ou li si navigatè a pa t 'gen kèk fason pou sonje 263 00:15:40,680 --> 00:15:43,320 ke ou te deja otantifye. 264 00:15:43,320 --> 00:15:46,640 >> Se konsa, nan fason sa a bonbon yo te voye yo retounen ak lide atravè fil yo. 265 00:15:46,640 --> 00:15:52,470 Yon lòt kiryozite sou bonbon yo, espesyalman isit la, se ke sa a se konplètman nan klèr. 266 00:15:52,470 --> 00:15:54,930 Gen nan pa gen chifreman ale sou isit la tou sa, 267 00:15:54,930 --> 00:15:57,240 ak tout bon mwen sèvi ak HTTP nan moman an. 268 00:15:57,240 --> 00:16:00,890 Youn nan favorites moman nou yo nan CS50, ki se kounye a 2 ane de sa, 269 00:16:00,890 --> 00:16:04,750 te alantou tan an yon zouti ki rele Firesheep 'soti a. 270 00:16:04,750 --> 00:16:08,320 Sa a te yon moso nan lojisyèl gratis ki te fèt pa yon chèchè sekirite 271 00:16:08,320 --> 00:16:13,250 kòm yon apèl reveye-up pou kominote a vle di jis ki jan atrociously aplike 272 00:16:13,250 --> 00:16:17,900 mekanism validation sèten sou entènèt la te ye. 273 00:16:17,900 --> 00:16:22,880 Se konsa, pou kèk tan, Facebook te prèske antyèman sou HTTP, pa gen t. 274 00:16:22,880 --> 00:16:25,640 Ak menm si ou pa gen okenn lide ki jan kriptografik a travay, S yo an sekirite 275 00:16:25,640 --> 00:16:27,950 se konsa li vle di gen nan omwen kèk chifreman enplike nan sa. 276 00:16:27,950 --> 00:16:30,610 Facebook t 'sèvi ak ankripte non itilizatè yo ak modpas, 277 00:16:30,610 --> 00:16:33,560 men osito ke ou te gade ou pokes oswa mesaj ou a oswa manje nouvèl ou an, 278 00:16:33,560 --> 00:16:35,360 nan tout sa te kode. 279 00:16:35,360 --> 00:16:37,870 Se konsa, te Gmail jiskaske jis yon ane oswa 2 Anons sa pibliye depi. 280 00:16:37,870 --> 00:16:41,100 Nenpòt ki lè w ouvri sesyon an, se wi, yo te konn itilize an sekirite chifreman, 281 00:16:41,100 --> 00:16:44,300 men apre sa yo pa t '. Epi poukisa ta ka ke ta dwe ye? 282 00:16:44,300 --> 00:16:49,210 Poukisa nou pa jis itilize chifreman tout tan an nan ka itilize tankou sa a? 283 00:16:49,210 --> 00:16:53,700 Ki sa ki nan sa? Mwen panse ke m 'te tande yon bagay. [Elèv] Speed. 284 00:16:53,700 --> 00:16:56,250 Speed, dwa? Gen fason alantou sa a. 285 00:16:56,250 --> 00:16:59,610 Men, si ou jis kalite panse sou li lojikman, si ou ankripte yon bagay, 286 00:16:59,610 --> 00:17:01,820 sa ou dwe fè omwen yon ti kras plis travay. 287 00:17:01,820 --> 00:17:05,460 Nan pset 2 lè ou aplike Seza tande kòz oswa Vigenere oswa menm krak, 288 00:17:05,460 --> 00:17:07,760 jis enprime yon kòd se relativman fasil. 289 00:17:07,760 --> 00:17:12,040 Chifreman ak Lè sa a, enprime yon kòd minim mande travay yon ti jan plis. 290 00:17:12,040 --> 00:17:14,520 >>  Pou sit entènèt super popilè tankou Google ak Facebook, 291 00:17:14,520 --> 00:17:18,839 si ou gen fè plis travay pou chak itilizatè pou chak paj entènèt sèl yo vizite, 292 00:17:18,839 --> 00:17:20,520 ki jis pran plis tan CPU. 293 00:17:20,520 --> 00:17:22,920 Men, si ou bezwen plis tan CPU, ou ta ka bezwen plis Sèvè yo, 294 00:17:22,920 --> 00:17:24,270 ki vle di ou ta ka bezwen plis lajan. 295 00:17:24,270 --> 00:17:27,579 Se konsa, pou anpil ane sa a jis reyèlman pa t 'pi bon pratik. 296 00:17:27,579 --> 00:17:31,440 Moun ki ta sèvi ak SSL chifreman sèlman lè yo bezwen yo. 297 00:17:31,440 --> 00:17:34,960 Men, li te tounen soti, ak tankou sa a Bondye ansanm avè Firesheep te fè super klè, 298 00:17:34,960 --> 00:17:37,920 lè ou nèg ki gen kounye a sou Facebook kounye a - 299 00:17:37,920 --> 00:17:39,880 Soti nan kiryozite, se pou yo wè si ou pral fess leve. 300 00:17:39,880 --> 00:17:42,620 Si ou se sou Facebook kounye a nan kèk tab, menm si li pa foregrounded, 301 00:17:42,620 --> 00:17:46,610 se HTTP URL ou a oswa t? 302 00:17:46,610 --> 00:17:50,560 [Elèv yo miltip] S. S? [Ri] 303 00:17:50,560 --> 00:17:55,510 Oke. Nenpòt HTTP? Jis 1? Oke. 304 00:17:55,510 --> 00:17:58,940 Se konsa, tout moun nan nou ka Hack Facebook kont ke nèg la kounye a. 305 00:17:58,940 --> 00:18:04,100 Pou pati ki pi sa a te vin devni vire sou pa default, omwen nan kèk sit entènèt. 306 00:18:04,100 --> 00:18:08,120 Ak long istwa kout, si trafik entènèt ou an se pa chiffres, 307 00:18:08,120 --> 00:18:12,960 pa sèlman HTML a ale retounen ak lide atravè WiFis yo kode, 308 00:18:12,960 --> 00:18:16,760 Se konsa bagay sa yo tankou bonbon ale retounen ak lide nan tout syèl la 309 00:18:16,760 --> 00:18:18,940 san nenpòt fòm chifreman. 310 00:18:18,940 --> 00:18:23,540 Se konsa, si ou gen jis yon ti jan nan konprandr pwogram oswa yon ti jan nan Googling ladrès 311 00:18:23,540 --> 00:18:27,410 jwenn gratis lojisyèl ki fè sa, tout sa ou dwe fè se chita nan Starbuck 312 00:18:27,410 --> 00:18:30,680 oswa chita nan yon ayewopò, kote ki gen nan jeneralman kode fil 313 00:18:30,680 --> 00:18:36,070 ak jis gade pou mo kle tankou bonbon Mete-: oswa PHPSESSID 314 00:18:36,070 --> 00:18:39,300 paske si w gen konprandr nan teknik a jis gade fil la 315 00:18:39,300 --> 00:18:43,010 pou tout moun nan Bits yo ki pase nan tout syèl la pou sa a modèl, 316 00:18:43,010 --> 00:18:50,840 ou ka Lè sa a, di ke PHPSESSID nèg la k ap pase yo bo8dal ak pou fè. 317 00:18:50,840 --> 00:18:53,890 Lè sa a, ankò si ou se ase teknikman konprandr oswa ki gen zouti nan dwa, 318 00:18:53,890 --> 00:18:58,890 ou ka Lè sa a, jis rkonfigurasyon navigatè pwòp ou a kòmanse prezante ki koupon pou men 319 00:18:58,890 --> 00:19:05,030 Facebook.com, ak Facebook se jis ale nan asime ke ou se ke nèg 320 00:19:05,030 --> 00:19:09,880 paske tout sa yo konnen se pa ki moun ou ye, men ke ou gen sa a idantifyan inik. 321 00:19:09,880 --> 00:19:14,650 Se konsa, si ou vòlè ki idantifyan inik ak prezante li nan sèvè sit entènèt la kòm pwòp ou a, 322 00:19:14,650 --> 00:19:16,860 yo se jis pral montre w manje nouvèl moun sa a 323 00:19:16,860 --> 00:19:18,980 oswa mesaj moun sa a oswa pokes. 324 00:19:18,980 --> 00:19:23,190 >> Apre sa, mwen ta Google kounye a ki jan yo aktive t pou Facebook petèt. 325 00:19:23,190 --> 00:19:25,150 Men, li vrèman se kòm senp tankou sa. 326 00:19:25,150 --> 00:19:27,660 Se konsa, Facebook ak Google ak renmen an gen vinn reyèlman bon nan sa a, 327 00:19:27,660 --> 00:19:31,870 men kenbe yon grenn je deyò tout plis an pou nenpòt ki sou sit entènèt ou vizite ki pa itilize HTTP 328 00:19:31,870 --> 00:19:35,020 epi gen kèk kalite enfòmasyon sansib sou yo, 329 00:19:35,020 --> 00:19:37,490 si li nan finansye oswa pèsonèl oswa renmen an. 330 00:19:37,490 --> 00:19:43,180 Si yo pa ap sèvi ak sa a, byen petèt ka bonbon tankou sa a ap trè fasil yo vòlè li 331 00:19:43,180 --> 00:19:46,270 ak Lè sa a, fòje, e ke se ekzakteman ki sa Firesheep te fè sa. 332 00:19:46,270 --> 00:19:48,250 Ou pa t 'gen yo dwe yon pwogramè. 333 00:19:48,250 --> 00:19:51,680 Tout sa ou te fè te gen yon koneksyon entènèt, download zouti sa a gratis, 334 00:19:51,680 --> 00:19:56,490 epi ki sa li ta fè se ou ouvri sesyon an ak Lè sa a, li ta montre w non yo Facebook 335 00:19:56,490 --> 00:20:00,170 tout moun ki nan Sanders, nan sa a demonstrasyon an patikilye, ki ozalantou ou 336 00:20:00,170 --> 00:20:03,260 ak tout sa ou te fè te klike sou non yo ak lojisyèl an otomatik pwosesis la 337 00:20:03,260 --> 00:20:05,970 nan rnifle ki bonbon, prezante l 'bay Facebook kòm pwòp ou a, 338 00:20:05,970 --> 00:20:07,990 , epi, vwala, w ap louvri sesyon pous 339 00:20:07,990 --> 00:20:11,190 Se konsa, sa a se yon lòt youn nan moun ki "pa fè sa" ofisyèlman. 340 00:20:11,190 --> 00:20:14,660 Si ou gen rezo pwòp lakay ou, epi ou vle Tinker, pa tout vle di, 341 00:20:14,660 --> 00:20:17,530 men mwen reyalize sa a fè travèse liy la sou yon anviwònman nan inivèsite a. 342 00:20:17,530 --> 00:20:20,030 >> Men, objektif la isit la se vrèman mete aksan sou pa ki jan fè sa a 343 00:20:20,030 --> 00:20:22,320 men ki jan defann kont sa yo kalite bagay sa yo. 344 00:20:22,320 --> 00:20:26,180 Ak solisyon an trivial isit la, menm si li tèt li se defekte, 345 00:20:26,180 --> 00:20:31,360 se vrèman redwi itilizasyon nan nenpòt ki sit ki pa gen lè l sèvi avèk t toujou ap. 346 00:20:31,360 --> 00:20:34,520 Se konsa, sit tankou Facebook ak Google de pli zan pli gen kaz 347 00:20:34,520 --> 00:20:36,200 kote ou ka patisipe nan sa a sòt de bagay sa, 348 00:20:36,200 --> 00:20:40,000 ak bank yo te gen sa a pou ane pou rezon menm jan an. 349 00:20:40,000 --> 00:20:43,580 Se konsa, jis yon ti kras nan yon faktè pè si nou kapab. Men sa a li nan yon Nutshell. 350 00:20:43,580 --> 00:20:46,420 Sa a se ki jan yon sèvè sonje ki moun ou ye. 351 00:20:46,420 --> 00:20:50,760 Ak le pli vit ke yo ka sonje ki moun ou ye, yo ka sonje anyen sou ou 352 00:20:50,760 --> 00:20:56,140 ki te pwogramè a estoke andedan sa a supèrglobal espesyal ki rele $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 Ak pou pset 7 n ap sèvi ak li trivyalman jis sonje yon int, 354 00:20:59,750 --> 00:21:02,260 savwa ID a inik nan itilizatè a ki te louvri sesyon an, 355 00:21:02,260 --> 00:21:05,880 pou ke nou konnen yo te la lè sa a anvan. 356 00:21:05,880 --> 00:21:12,450 Nenpòt kesyon Lè sa a, sou sesyon oswa bonbon oswa tankou an? 357 00:21:12,450 --> 00:21:15,130 Firesheep pa travay kòm byen ankò, 358 00:21:15,130 --> 00:21:18,310 epi ou gen yo mete òdinatè w lan nan yon mòd espesyal dezòd 359 00:21:18,310 --> 00:21:20,700 se konsa w ap aktyèlman koute pou trafik san konte nou. 360 00:21:20,700 --> 00:21:23,940 Se konsa, si w ap kounye a Téléchargez Firesheep, reyalize li nan pa byen kòm fasil 361 00:21:23,940 --> 00:21:26,850 kòm li te yon fwa yo demontre. 362 00:21:26,850 --> 00:21:29,070 Tout dwa. Epi nou pa fè l 'nan Sanders. Fè li nan kay la. 363 00:21:29,070 --> 00:21:30,890 Baz done. 364 00:21:30,890 --> 00:21:33,580 Youn nan bagay sa yo nou te fè nan pset 7 trè fè espre 365 00:21:33,580 --> 00:21:37,780 te nou ba ou yon tab baz done modèl pou itilizatè yo ki gen kèk idantifikasyon itilizatè, 366 00:21:37,780 --> 00:21:41,020 kèk itilizatè non, ak kèk modpas chiffres ladan l '. 367 00:21:41,020 --> 00:21:44,520 Ak jan ou pral wè, si ou pa gen deja, w ap ale nan oblije chanje tab la yon ti jan. 368 00:21:44,520 --> 00:21:47,710 W ap ale nan gen ajoute kèk kachèt nan chak nan itilizatè yo nan ki tab, 369 00:21:47,710 --> 00:21:51,130 ak w ap ale nan gen ajoute yon lòt tab istwa, yon tab pòtfolyo, 370 00:21:51,130 --> 00:21:53,310 oswa petèt rele li yon lòt bagay. 371 00:21:53,310 --> 00:21:56,740 Men, an tèm de panse sou jan yo ka fè sa, kite la louvri moute zouti sa a 372 00:21:56,740 --> 00:22:00,570 ki nou itilize sou Vandredi, men si abitye, aparèy la vini ak yon zouti 373 00:22:00,570 --> 00:22:04,680 rele fpmyadmen ki se azar ekri nan PHP, 374 00:22:04,680 --> 00:22:07,950 men objektif li yo nan lavi a, apre mwen fin ouvri sesyon an isit la kòm jharvard ak wouj, 375 00:22:07,950 --> 00:22:15,160 se bay m 'yon fason user-zanmitay nan gade ak chanje baz done m' yo. 376 00:22:15,160 --> 00:22:18,040 >> Se baz done a ke mwen kouri sou aparèy la te rele miskl. 377 00:22:18,040 --> 00:22:23,420 Sa a se trè popilè, ak li nan yon baz done gratis louvri sous ki nan bèl fasil yo sèvi ak, 378 00:22:23,420 --> 00:22:25,620 sitou ak devan fini tankou sa a. 379 00:22:25,620 --> 00:22:29,350 Ki sa ki zouti sa a pèmèt m 'fè, pou egzanp, se Deploge alantou tab. 380 00:22:29,350 --> 00:22:30,890 Kite m 'ale pi devan epi fè sa. 381 00:22:30,890 --> 00:22:36,580 Nan vandredi nou te kreye yon tab rele elèv yo ki te super senp. 382 00:22:36,580 --> 00:22:41,680 Li te gen 3 kolòn - id, non, ak imel - epi mwen manyèlman eleman yon koup la ranje 383 00:22:41,680 --> 00:22:44,420 tankou David, ak Mike nan egzanp sa a an patikilye. 384 00:22:44,420 --> 00:22:47,290 Kite a pran sa yon ti jan pi lwen, epi kite nan asime ke nou vle sonje pi plis 385 00:22:47,290 --> 00:22:49,660 pase jis non ak imel sou yon itilizatè. 386 00:22:49,660 --> 00:22:53,090 Kite m 'klike sou Estrikti moute isit la nan tèt la. 387 00:22:53,090 --> 00:22:55,440 Epi ankò, pset nan mache ou swiv etap ou voulu isit la, 388 00:22:55,440 --> 00:22:58,150 Se konsa, pa enkyete w si kèk nan sa a se yon ti jan rapid. 389 00:22:58,150 --> 00:22:59,690 Lè sa a, mwen pral klike sou isit la. 390 00:22:59,690 --> 00:23:02,270 Mwen pral ajoute kèk nimewo nan kolòn apre imel 391 00:23:02,270 --> 00:23:04,130 paske mwen vle ajoute yon bagay tankou kay. 392 00:23:04,130 --> 00:23:06,640 Mwen bliye nan dosye kay yon elèv. 393 00:23:06,640 --> 00:23:11,400 Kite m 'klike sou Ale, epi kounye a nou gen fòm sa a ki malerezman se yon ti kras lajè de gòch a dwat, 394 00:23:11,400 --> 00:23:13,710 men mwen pral rele non an nan kay sa a jaden, 395 00:23:13,710 --> 00:23:16,050 ak Lè sa a, kalite la mwen kounye a gen yo chwazi. 396 00:23:16,050 --> 00:23:18,870 Se konsa, kite a gen yon konvesasyon kout sou kalite sa yo divès kalite nan miskl 397 00:23:18,870 --> 00:23:24,590 paske Lè nou konsidere ke PHP se chetif tape epi li sòt de jwe vit ak ki lage ak kalite, 398 00:23:24,590 --> 00:23:29,430 nan yon baz done espesyalman li nan super enpòtan nan sèvi ak aktyèlman sezisman nan avantaj ou 399 00:23:29,430 --> 00:23:33,260 paske youn nan miskl nan bagay sa yo ak motè baz done lòt kapab fè pou ou 400 00:23:33,260 --> 00:23:37,910 se asire ke ou pa mete done fos nan baz done ou. 401 00:23:37,910 --> 00:23:41,850 Sa a se sòt de erè gratis tcheke disponib nan ou. 402 00:23:41,850 --> 00:23:46,250 >> Pou kay nou evidamman pa vle li nan dwe yon int, ki se yon valè 32-bit nan miskl. 403 00:23:46,250 --> 00:23:49,810 Nou te fè pale yon ti tan nan Vandredi sou varchar, ki vle di pou longè varyab Char. 404 00:23:49,810 --> 00:23:54,720 Ki sa ki sa a? Sa a pèmèt ou presize ke ou vle sa a yo dwe yon afè de kèk sòt. 405 00:23:54,720 --> 00:23:56,840 Ou pa vrèman konnen davans konbyen tan li ye, se 406 00:23:56,840 --> 00:24:00,100 se konsa nou pral abitrèman di yon non kay kapab 255 karaktè, 407 00:24:00,100 --> 00:24:04,190 men ou ta ka ale ak 32 64, - nenpòt nimewo vrèman. 408 00:24:04,190 --> 00:24:10,700 Men, avantaj nan lè l sèvi avèk yon varchar sou yon jaden rele Char se ki sa? 409 00:24:10,700 --> 00:24:15,110 Jis entwitivman si mwen desann isit la, remake gen nan Char ak gen nan varchar. 410 00:24:15,110 --> 00:24:19,520 Varchar se longè varyab Char; Char se yon longè fiks Char. 411 00:24:19,520 --> 00:24:24,730 Se konsa, baze sèlman sou ki definisyon, sa ki nan avantaj la oswa dezavantaj ki genyen nan chak nan sa yo? 412 00:24:24,730 --> 00:24:30,490 Nan lòt mo, ki moun ki gen sousi pou distenksyon an, oswa poukisa ou ta dwe pran swen? 413 00:24:31,660 --> 00:24:35,750 >> Yeah. [Elèv] varchar gen fleksibilite plis men pran moute memwa plis. 414 00:24:35,750 --> 00:24:40,730 Bon. Varchar pran moute pi plis - Annou wè. Mwen pa si si m 'te tande ki dwat. 415 00:24:40,730 --> 00:24:42,360 Eske ou ka di ke yon fwa plis? 416 00:24:42,360 --> 00:24:45,850 [Elèv] m 'te di varchar pwobableman gen fleksibilite plis men li pran moute memwa plis. 417 00:24:45,850 --> 00:24:51,170 Enteresan. Oke. Varchar pwobableman ba ou fleksibilite plis men pran moute memwa plis. 418 00:24:51,170 --> 00:24:53,220 Lèt la se pa nesesèman verite. 419 00:24:53,220 --> 00:24:56,290 Sa depann de kontèks la, men kite a tounen vin jwenn sa. 420 00:24:56,290 --> 00:25:03,230 >> [Fèbl elèv repons] Egzakteman. 421 00:25:03,230 --> 00:25:06,900 Li nan aktyèlman ka a ki Char ap anjeneral itilize plis memwa 422 00:25:06,900 --> 00:25:10,950 paske yon Char, tankou nan C, se tankou yon fisèl, li nan yon etalaj de karaktè. 423 00:25:10,950 --> 00:25:13,690 Se konsa, si ou di yon jaden Char nan longè 255, 424 00:25:13,690 --> 00:25:16,910 baz done a ap literalman pral ba ou 255 karaktè. 425 00:25:16,910 --> 00:25:22,290 Men, si kay la fini moute yo te Mather ak 6 karaktè total, 426 00:25:22,290 --> 00:25:25,090 w ap gaspiye plis pase 200 karaktè. 427 00:25:25,090 --> 00:25:29,640 >> Se konsa, yon varchar efektivman sèlman itilize kòm karaktè anpil jan sa nesesè 428 00:25:29,640 --> 00:25:31,590 jiska yon kantite lajan maksimòm nan. 429 00:25:31,590 --> 00:25:35,470 Men, pri a ou peye se aktyèlman pèfòmans, potansyèlman. 430 00:25:35,470 --> 00:25:39,740 Si ou konnen an avans ke tout strings ou yo pral fè 8 karaktè - 431 00:25:39,740 --> 00:25:43,090 pou egzanp, ann sipoze ke ou mande pou modpas nan longè 8 - 432 00:25:43,090 --> 00:25:47,350 tèt la nan lè l sèvi avèk yon jaden Char sou okazyon, men se pa souvan, 433 00:25:47,350 --> 00:25:51,100 se ou presize yon longè fiks pou yon bagay tankou yon modpas 434 00:25:51,100 --> 00:25:53,300 paske koulye a baz done a kapab menm pi entelijan. 435 00:25:53,300 --> 00:25:58,160 Si li konnen ke chak jaden Char, chak fisèl nan yon kolòn se longè a menm, 436 00:25:58,160 --> 00:26:00,780 ou jwenn tounen karakteristik la nan aksè o aza. 437 00:26:00,780 --> 00:26:05,110 Ou ka sote alantou nan mitan jaden yo divès kalite Char nan tablo baz done ou 438 00:26:05,110 --> 00:26:07,940 paske panse a yon baz done kòm ranje ak kolòn. 439 00:26:07,940 --> 00:26:11,670 Se konsa, si chak youn nan strings yo genyen menm longè, 440 00:26:11,670 --> 00:26:17,820 ou konnen ke youn nan premye se nan multiple 0, youn nan pwochen se nan multiple 8 441 00:26:17,820 --> 00:26:20,240 ak Lè sa a, 16 ak Lè sa a, 24 ak pou fè. 442 00:26:20,240 --> 00:26:24,500 Se konsa, si tout strings yo yo se nan longè a menm, ou ka sote alantou anpil pi plis efikasite. 443 00:26:24,500 --> 00:26:26,710 Se konsa, ki ka yon benefis nan tèm de pèfòmans, 444 00:26:26,710 --> 00:26:29,420 men anjeneral ou pa gen liksye a pou konnen davans, 445 00:26:29,420 --> 00:26:32,170 konsa yon varchar se yon fason a ale. 446 00:26:32,170 --> 00:26:36,030 Isit la nan yon lòt detay ke menm Facebook li pran kouri nan evantyèlman. 447 00:26:36,030 --> 00:26:39,670 Antye yo se gwo, epi nou sòt de sèvi ak yo pa default nenpòt ki lè nou vle yon nonb, 448 00:26:39,670 --> 00:26:41,750 men li la sèlman 32 miyèt moso. 449 00:26:41,750 --> 00:26:46,210 >> E menm si Facebook pa byen gen 4 milya dola itilizatè yo kounye a, 450 00:26:46,210 --> 00:26:48,680 gen nan definitivman gen kèk moun ki deyò a la, ak kont miltip 451 00:26:48,680 --> 00:26:50,960 oswa kont ke yo te louvri, ak Lè sa a, fèmen, 452 00:26:50,960 --> 00:26:55,130 e konsa Facebook tèt li mwen kwè kèk ane de sa te gen nan tranzisyon soti nan int 453 00:26:55,130 --> 00:27:00,010 a, kòm se jistèman rele, bigen, ki se jis 64 Bits olye. 454 00:27:00,010 --> 00:27:02,230 Se konsa, sa a twò se yon desizyon konsepsyon. 455 00:27:02,230 --> 00:27:06,570 Ou ta dwe étonant chans si pwojè final ou vin demaraj, 456 00:27:06,570 --> 00:27:10,010 te 4 milya de dola ak 1 itilizatè yo, bay oswa pran, 457 00:27:10,010 --> 00:27:13,200 nan ka sa a lè l sèvi avèk antye ta kapab yon ti kras lwen. 458 00:27:13,200 --> 00:27:16,230 Men, an reyalite, tab itilizatè ou an se pwobableman amann ak antye. 459 00:27:16,230 --> 00:27:19,340 Men, pou yon bagay tankou pset 7, tankou tab istwa ou a, 460 00:27:19,340 --> 00:27:23,700 ou ka gen dè milye, dè milyon de itilizatè yo si ou évoluer nan etrade.com. 461 00:27:23,700 --> 00:27:26,020 Se konsa, Lè nou konsidere ke ou pa ta ka gen plis pase 4 milya dola itilizatè yo, 462 00:27:26,020 --> 00:27:30,070 sa yo itilizatè ou fè gen ka gen plis pase 4 milya dola tranzaksyon sou tan - 463 00:27:30,070 --> 00:27:33,200 achte epi li vann yo ak bagay nan istwa yo. 464 00:27:33,200 --> 00:27:38,090 Se konsa, si ou fè antisipe - ankò, sa yo, se pwoblèm bon gen si ou gen sa a done anpil - 465 00:27:38,090 --> 00:27:40,920 si ou fè antisipe done depase gwosè a nan yon int, 466 00:27:40,920 --> 00:27:47,740 ale ak yon bagay tankou bigen se yon direksyon pa souvan ase adopte pa konsèpteur 467 00:27:47,740 --> 00:27:49,710 paske moun figi ki pa a pral gen yon pwoblèm, 468 00:27:49,710 --> 00:27:51,930 men li la sa a fasil yo chwazi yon bagay pi gwo pase sa. 469 00:27:51,930 --> 00:27:55,380 Desimal nou ap lè l sèvi avèk nan, 7 pset ki espesifye presizyon fiks 470 00:27:55,380 --> 00:27:59,840 pou ou kapab evite pwoblèm yo ki enplike flote ak double ak ril ak renmen an. 471 00:27:59,840 --> 00:28:02,440 >> Lè sa a, gen nan kèk domèn lòt isit la. Nou pral balanse men nou an nan yo nan yon sèten mezi. 472 00:28:02,440 --> 00:28:07,270 Men, dat, lè tout gen yon fòma preskri nan miskl, 473 00:28:07,270 --> 00:28:10,830 ak avantaj nan dat estoke kòm dat ak pa varchars 474 00:28:10,830 --> 00:28:15,730 vle di ke baz done a ka aktyèlman Fomatè yo nan fòma diferan, 475 00:28:15,730 --> 00:28:18,800 si yon fòma ameriken oswa fòma Ewopeyen oswa tankou la - sepandan ou vle li - 476 00:28:18,800 --> 00:28:22,700 pi plis efikasite pase si se te jis kèk varchar jenerik. 477 00:28:22,700 --> 00:28:25,150 Lè sa a, gen nan kèk binè lòt, varbinary, tach. 478 00:28:25,150 --> 00:28:28,580 Sa yo se binè objè gwo, epi ou ka tou sere done binè 479 00:28:28,580 --> 00:28:30,750 kòm byen kòm done jewometrik nan yon baz done. 480 00:28:30,750 --> 00:28:34,350 Men, pou nou, nou pwal tipikman swen sou antye ak varchars ak renmen an. 481 00:28:34,350 --> 00:28:36,230 Se pou nou fini egzanp sa a ak kay la. 482 00:28:36,230 --> 00:28:40,030 House mwen pral abitrèman di yo pral 255 charaktèr. 483 00:28:40,030 --> 00:28:42,850 Lè sa a, valè default nou te ka fè sa. 484 00:28:42,850 --> 00:28:47,440 Nou te ka pa default mete tout moun ki nan Mather House, pou egzanp. 485 00:28:47,440 --> 00:28:49,710 Sa a se kijan nou te ka presize ki baz done a 486 00:28:49,710 --> 00:28:52,460 yo ta dwe asire ke yon moun toujou te gen yon valè. Men, mwen pral kite ki dwe. 487 00:28:52,460 --> 00:28:55,270 An reyalite, pou moun k ap viv nan lakou lekòl la, epi pa nan yon kay, 488 00:28:55,270 --> 00:28:59,590 petèt mwen aktyèlman vle presize ke valè a default pou kay se nil, 489 00:28:59,590 --> 00:29:04,890 ak Lè sa a, mwen bezwen yo tcheke ti kare sa a epi di baz done a li oke si kay itilizatè a se nil. 490 00:29:04,890 --> 00:29:07,270 >> Yon fwa ankò, sa a se yon lòt mekanis defans ou ka mete an plas 491 00:29:07,270 --> 00:29:10,590 pou w pa menm gen mete l 'nan kòd PHP ou nesesèman. 492 00:29:10,590 --> 00:29:14,630 Baz done a pral asire ke bagay sa yo oswa yo pa nil. 493 00:29:14,630 --> 00:29:17,310 Lè sa a, alafen, karakteristik. 494 00:29:17,310 --> 00:29:18,920 Okenn nan sa yo yo se reyèlman enpòtan. 495 00:29:18,920 --> 00:29:22,880 Binè, siye - pa youn nan sa yo gen rapò ak yon varchar. 496 00:29:22,880 --> 00:29:24,220 Main Index. 497 00:29:24,220 --> 00:29:27,320 nenpòt moun ki konnen oswa ou sonje oswa ou gen yon devine tankou sa ki yon endèks se 498 00:29:27,320 --> 00:29:29,510 pou yon bagay tankou kay? 499 00:29:29,510 --> 00:29:35,240 Sa a tou se aktyèlman yon desizyon konsepsyon enpòtan ak relativman fasil. 500 00:29:35,240 --> 00:29:39,200 Pou moun ki pa gen ankò wè li, nan Vandredi nou te pale yon ti tan sou kle prensipal. 501 00:29:39,200 --> 00:29:43,240 Nan yon tab baz done, yon kle prensipal se jaden an oswa kolòn 502 00:29:43,240 --> 00:29:46,270 ki inikman idantifye ranje nan tablo a. 503 00:29:46,270 --> 00:29:49,150 Se konsa, nan tablo a kounye a nou gen idantite, nou gen non ak anay. 504 00:29:49,150 --> 00:29:52,050 Kilès nan sa yo se kandida ki pi bon yo gen yon kle prensipal, 505 00:29:52,050 --> 00:29:55,810 wòl ki gen se inikman idantifye ranje? 506 00:29:55,810 --> 00:29:57,530 Pwobableman ID. 507 00:29:57,530 --> 00:29:59,930 Joui, nou te ka sèvi tou ak sa ki menm si? 508 00:29:59,930 --> 00:30:02,860 Petèt ou ta ka itilize imel paske nan teyori li nan inik 509 00:30:02,860 --> 00:30:05,380 sòf si moun yo yo pataje kont imel. 510 00:30:05,380 --> 00:30:09,980 Men, reyalite a se ke si w ap itilize yon ID nimerik tankou 1234, 511 00:30:09,980 --> 00:30:14,170 sa a, se sèlman 32 Bits, Lè nou konsidere ke yon adrès imel ta ka sa a bytes anpil oswa sa a bytes anpil. 512 00:30:14,170 --> 00:30:16,610 Se konsa, an tèm de efikasite pou Idantifyan inik, 513 00:30:16,610 --> 00:30:19,270 li gen tandans ka bon pratik jis yo sèvi ak yon int 514 00:30:19,270 --> 00:30:23,090 menm si ou gen kèk kandida fisèl ke ou ta ka joui itilize. 515 00:30:23,090 --> 00:30:26,760 >> Pou yon bagay tankou kay, sa pa ta dwe gen yon kle prensipal 516 00:30:26,760 --> 00:30:30,770 paske lè sa a sèlman 1 moun ka ap viv nan Mather ak 1 moun sou Currier ak renmen an. 517 00:30:30,770 --> 00:30:32,790 Menm jan tou, sa a pa ta dwe inik. 518 00:30:32,790 --> 00:30:37,830 Diferans ki genyen ant prensipal ak inik se ke nan ka a nan tab aktyèl nou an, 519 00:30:37,830 --> 00:30:42,620 ID ta dwe prensipal men imel se pa prensipal pou rezon ki fè yo nou jis mansyone - 520 00:30:42,620 --> 00:30:44,740 pèfòmans - men li ta dwe toujou inik. 521 00:30:44,740 --> 00:30:47,200 Se konsa, ou ka toujou aplike patikilarite san yo pa fè reklamasyon an 522 00:30:47,200 --> 00:30:49,520 ke li nan yon Super jaden enpòtan prensipal. 523 00:30:49,520 --> 00:30:52,610 Men, yon sèl sa a se byen itil: Index. 524 00:30:52,610 --> 00:30:56,180 Si ou konnen an avans pou pwojè final ou a, pou pset 7, oswa an jeneral, 525 00:30:56,180 --> 00:30:59,480 ki kay sa a jaden a pwal yon bagay ou rechèch sou yon anpil 526 00:30:59,480 --> 00:31:01,910 lè l sèvi avèk mo kle a chwazi oswa yon lòt bagay, 527 00:31:01,910 --> 00:31:05,180 Lè sa a, ou ka preemptively di baz done a nan travay majik li yo 528 00:31:05,180 --> 00:31:10,510 ak asire w ke li kreye nan memwa nenpòt estrikti done anpenpan nesesè 529 00:31:10,510 --> 00:31:13,770 nan akselere pwosesis rechèch ki baze sou kay la. 530 00:31:13,770 --> 00:31:17,860 Petèt li pral sèvi ak yon tab regle, petèt li pral sèvi ak yon lis lye. 531 00:31:17,860 --> 00:31:21,260 An reyalite, li gen tandans sèvi ak yon pye bwa, souvan yon estrikti ki rele yon B-pyebwa - 532 00:31:21,260 --> 00:31:24,090 pa yon pye bwa binè men yon B pyebwa-- ki se yon pye bwa yon bon lajè pòt 533 00:31:24,090 --> 00:31:27,370 ke ou ta ka wè nan yon klas tankou CS124, done estrikti klas la. 534 00:31:27,370 --> 00:31:31,800 Men, nan kout, ou pa gen enkyete sou ke lè l sèvi avèk lojisyèl entelijan baz done. 535 00:31:31,800 --> 00:31:35,890 Ou ka jis di li, "Index jaden sa a Se konsa, mwen kapab fè rechèch sou li pi plis efikasite." 536 00:31:35,890 --> 00:31:40,250 >> Si ou kite sa a la ak ou eseye pou fè rechèch pou tout moun ki nan baz done a ki ap viv nan Mather, 537 00:31:40,250 --> 00:31:42,710 li pral transfere nan rechèch lineyè. 538 00:31:42,710 --> 00:31:45,360 Men, si ou te gen 6,000 undergrads tout k ap viv nan kèk kay, 539 00:31:45,360 --> 00:31:47,900 w ap ale nan rechèch tab la tout antye jwenn Matherites yo, 540 00:31:47,900 --> 00:31:52,190 Lè nou konsidere ke si ou di Index, èspere ke li pral yon bagay fèmen nan yon rechèch logaritmik 541 00:31:52,190 --> 00:31:54,510 jwenn moun kalite elèv yo. 542 00:31:54,510 --> 00:31:56,750 Sa a se jis yon karakteristik gratis yo vire sou li a, 543 00:31:56,750 --> 00:31:59,530 menm si li vini nan yon pri nan kèk kantite lajan pou espas. 544 00:31:59,530 --> 00:32:02,690 Anfen, oto-Kantite, jaden sa a lavil Ayi a, 545 00:32:02,690 --> 00:32:05,830 ki jis vle di si li nan yon int ak ou pa vle pran swen kantite li tèt ou 546 00:32:05,830 --> 00:32:07,570 chak fwa gen yon itilizatè nouvo, tcheke sa, 547 00:32:07,570 --> 00:32:11,910 epi chak itilizatè ki vin antre pral otomatikman jwenn yon ID nouvo. 548 00:32:11,910 --> 00:32:15,620 Se pou nou klike sou Save, ak kounye a kite a jwenn fòt ak sa a konsepsyon. 549 00:32:15,620 --> 00:32:20,200 Si mwen ale nan browse, avi ke tou de Mike ak kay mwen an se nil. 550 00:32:20,200 --> 00:32:22,420 Mwen kapab itilize fpmyadmen l korije sa a manuelman. 551 00:32:22,420 --> 00:32:25,110 Mwen ka ale nan isit la ak kalite nan Mather ak Lè sa a, frape Antre, 552 00:32:25,110 --> 00:32:27,740 e kounye a, remake tab la se diferan. 553 00:32:27,740 --> 00:32:29,270 Men, remake mwen te kapab fè yon lòt bagay yo tou. 554 00:32:29,270 --> 00:32:33,530 ID David la se 1, se konsa fpmyadmen ankò se jis yon zouti administratif; 555 00:32:33,530 --> 00:32:35,970 sa a se pa yon bagay itilizatè ou yo janm ale nan wè. 556 00:32:35,970 --> 00:32:38,810 Se konsa, si mwen olye klike sou tab la SQL moute tèt - 557 00:32:38,810 --> 00:32:41,450 e ankò, pset 7, n ap entwodui ou nan plis nan sa yo queries - 558 00:32:41,450 --> 00:32:45,260 Mwen ka manyèlman egzekite SQL yo lòd, ki estriktire lang rechèch 559 00:32:45,260 --> 00:32:56,410 Itilizatè MIZAJOU SET kay = 'Pfoho' KI KOTE id = 1. 560 00:32:56,410 --> 00:33:00,830 Sa yo queries SQL yo, joliman ase, trè lizib de gòch a dwat. 561 00:33:00,830 --> 00:33:04,350 Mizajou tab la itilizatè yo, mete jaden an te rele kay an Pfoho 562 00:33:04,350 --> 00:33:06,830 kote ID itilizatè a se 1. 563 00:33:06,830 --> 00:33:11,480 Oswa mwen te kapab menm fè kote imel = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 Se konsa, lontan ke sa inikman idantifye m ', ki ta ka travay kòm byen. 565 00:33:14,860 --> 00:33:18,810 Men, ID gen tandans ka pi wo pèfòmans, kidonk kite a fè sa. 566 00:33:18,810 --> 00:33:22,950 Se pou nou klike sou Ale. Okay, lecture.users pa egziste. Ki sa ki nan erè mwen an? 567 00:33:22,950 --> 00:33:26,220 Ki sa ki nan tab la aktyèlman rele isit la? 568 00:33:26,220 --> 00:33:28,770 Yo rele li elèv yo jis paske se sa ki nou te fè sa moute isit la sou bò gòch tèt. 569 00:33:28,770 --> 00:33:31,860 Yo rele li elèv yo, pa itilizatè. Se konsa, klike sou Ale kounye a. 570 00:33:31,860 --> 00:33:34,330 1 ranje afekte. Rechèch te pran 0,01 segonn. 571 00:33:34,330 --> 00:33:38,010 Si m 'klike sou Browse, koulye a, kounye a lavi Malan nan Pfoho. 572 00:33:38,010 --> 00:33:42,070 Se konsa, sa a, se yon lòt gou nan SQL, men pset a pral mache ou atravè yon ti jan plis de sa. 573 00:33:42,070 --> 00:33:44,710 >> Genyen nan yon desizyon estipid mwen te deja te fè isit la. 574 00:33:44,710 --> 00:33:47,820 Mwen ta diskite ke sa a konsepsyon baz done se rezèvwa 575 00:33:47,820 --> 00:33:51,650 paske moun yo ki pi plis mwen ajoute sou tab la elèv yo, 576 00:33:51,650 --> 00:33:54,730 plis la nan nou mwen kòmanse ajoute, plis la nan TFs yo, mwen kòmanse ajoute, 577 00:33:54,730 --> 00:33:58,320 nou pwal kòmanse yo wè sa ki rdondans nan tablo sa a? 578 00:34:00,840 --> 00:34:06,020 >> Yeah. [Elèv] Wè ke li nan nan elèv yo, n ap sèvi ak menm bagay la tou [fèbl] 579 00:34:06,020 --> 00:34:07,360 Menm bagay la tou - Dwa, egzakteman. 580 00:34:07,360 --> 00:34:10,400 Se konsa, si 400 moun ki ap viv nan Mather, bay oswa pran, 581 00:34:10,400 --> 00:34:15,000 evantyèlman tablo sa a ki pral gen 400 ranje ki di "Mather," "Mather," 582 00:34:15,000 --> 00:34:16,590 "Mather," "Mather," "Mather." 583 00:34:16,590 --> 00:34:19,820 Nou ap gaspiye tout moun sa yo bytes, ak gen nan yon koup la takeaways la. 584 00:34:19,820 --> 00:34:23,080 1, gen nan ka a kwen fou kote si yon moun ap peye yon anpil lajan 585 00:34:23,080 --> 00:34:25,949 ak rnom Mather, nou genyen kounye a chanje tab antye baz done nou an. 586 00:34:25,949 --> 00:34:29,730 Sa pa a pral rive souvan, menm si Pfoho te yon fwa yo rele North House 15 ane de sa, 587 00:34:29,730 --> 00:34:32,310 se konsa li k ap pase. Men sa a pa tout sa ki irezistib. 588 00:34:32,310 --> 00:34:36,000 Plis irezistib pase yon ka kwen tankou sa yo ki an ki bezwen mete ajou done ki nan esansyèl 589 00:34:36,000 --> 00:34:41,150 pou yon baz done se poukisa w'ap estoke Mather ankò e ankò ak ankò e ankò? 590 00:34:41,150 --> 00:34:43,020 Sa a se yon anpil nan charaktèr, 6 charaktèr. 591 00:34:43,020 --> 00:34:45,500 Pa kapab nou fè menm pi bon pase sa, espesyalman pou Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 Se vre wi nou ka fè pi bon pase sa ki karaktè anpil. 593 00:34:48,320 --> 00:34:51,790 Poukisa nou pa jis asosye yon idantifyan inik avèk chak kay 594 00:34:51,790 --> 00:34:55,020 ak magazen ke pou chak itilizatè? Se konsa, kite a eseye sa a. 595 00:34:55,020 --> 00:35:00,610 Olye ke sèlman itilize tab la elèv yo, kite m 'ale jiska baz done konferans m' kanpe isit la sou bò gòch tèt. 596 00:35:00,610 --> 00:35:02,600 Avi isit la li di Kreye tab. 597 00:35:02,600 --> 00:35:04,550 Kite m 'kreye yon tab nouvo rele kay. 598 00:35:04,550 --> 00:35:08,880 Nimewo a nan kolòn a pwal 2. Antre. 599 00:35:08,880 --> 00:35:11,200 Koulye a, mwen gen 2 jaden yo. 600 00:35:11,200 --> 00:35:14,600 Mwen pral rele non sa a, epi li nan ale nan yon varchar longè 255, 601 00:35:14,600 --> 00:35:18,770 >> men sa a trè abitrè. Kite m 'mete sa a desann isit la konvansyon. 602 00:35:18,770 --> 00:35:22,840 Se konsa, mete yon ID moute isit la. Se pou nou bay chak kay yon idantifyan inik. 603 00:35:22,840 --> 00:35:25,360 Se pou nou bay chak kay yon non. 604 00:35:25,360 --> 00:35:30,980 Se pou nou presize ke idantifyan a pral siye jis pa konvansyon sèlman itilize nimewo ki pozitif. 605 00:35:30,980 --> 00:35:35,020 Se pou nou ale pi devan epi bay sa a yon oto-Kantite jaden pou kounye a. 606 00:35:35,020 --> 00:35:38,160 Epi fè nou bezwen lòt bagay lòt moun? 607 00:35:38,160 --> 00:35:41,010 Se pou nou ale pi devan epi klike sou Save. 608 00:35:41,010 --> 00:35:42,480 Koulye a, mwen gen yon dezyèm tab. 609 00:35:42,480 --> 00:35:45,860 Avi kòm yon sou kote sa a se yon ti kras skre SQL yo lòd, ki 610 00:35:45,860 --> 00:35:50,280 ke ou ta yo te oblije tape manuelman si se pa lè l sèvi avèk yon zouti administratif tankou fpmyadmen. 611 00:35:50,280 --> 00:35:51,990 Se konsa, yon lòt rezon ki nou sèvi ak li. 612 00:35:51,990 --> 00:35:55,480 Li nan sòt bèl bagay itil nan pedagojik paske ou ka klike sou alantou 613 00:35:55,480 --> 00:36:01,050 ak imajine kijan bagay travay pa jis kopye ak kole sa ki fpmyadmen te fè sa. 614 00:36:01,050 --> 00:36:04,150 Men, yo lòd, ki tablo kreye se sa ki te jis egzekite, ak isit la se tab avè m '. 615 00:36:04,150 --> 00:36:11,370 Kite m 'ale pi devan koulye a, epi sèvi ak kri SQL olye ke Senplifye pa klike tab la Mete. 616 00:36:11,370 --> 00:36:15,040 Kite m 'insert nan tout kay, 617 00:36:15,040 --> 00:36:22,230 ak mwen pral di non an nan kay la ki pral gen yon valè de 'Mather'. 618 00:36:22,230 --> 00:36:24,790 Sa a li. Sa a sentaks se yon ti kras pi plis skre. 619 00:36:24,790 --> 00:36:26,660 Sa a se non an nan jaden yo nou vle insert. 620 00:36:26,660 --> 00:36:30,390 Sa yo se valè yo nou vle insert nan sa yo jaden yo. Kite m 'klike sou Ale. 621 00:36:30,390 --> 00:36:34,410 1 ranje eleman te pran 0.02 segond. Kite m 'klike sou Browse kounye a. 622 00:36:34,410 --> 00:36:42,020 >> Avi si mwen klike sou Browse, gen nan Mather, ki gen ID se pa automatisation nimewo a 1. 623 00:36:42,020 --> 00:36:45,000 Kite m 'fè yon lòt. Kite m 'ale nan tab la SQL. 624 00:36:45,000 --> 00:36:52,950 Antre nan tout kay. Non an nan kay la ki pral gen yon valè de Pfoho ak pou fè. 625 00:36:52,950 --> 00:36:56,350 Ale non. Apre sa, mwen ka kontinye ap fè sa ankò, li ankò epi ankò. 626 00:36:56,350 --> 00:36:59,470 Oswa si w jwenn anwiye lè l sèvi avèk fpmyadmen, ou ka jis sèvi ak tab la Mete 627 00:36:59,470 --> 00:37:01,000 epi yo pa gen kalite SQL an anvan tout koreksyon. 628 00:37:01,000 --> 00:37:04,690 Ou ka jis Bang li soti pi vit lè ou tape, pou egzanp, Currier, Antre, 629 00:37:04,690 --> 00:37:07,610 e kounye a, si nou klike sou Browse, gen nan Currier ak yon ID nan 3. 630 00:37:07,610 --> 00:37:09,920 Se konsa, sa a se sa nou vle di pa kantite oto-. 631 00:37:09,920 --> 00:37:12,280 Men koulye a, nou gen ranje yon bagay nan elèv yo. 632 00:37:12,280 --> 00:37:16,240 Nan elèv yo sa ki ta dwe kalite a done nan jaden an kay kounye a ta dwe ye? 633 00:37:16,240 --> 00:37:19,450 Li ta dwe yon int, dwa? 634 00:37:19,450 --> 00:37:23,950 Se konsa, objektif la isit la se yo faktè soti, ki te rekonèt kòm nòmalize, tab yo 635 00:37:23,950 --> 00:37:27,940 pou ke nou pa estoke enfòmasyon sou redundantly nan nenpòt nan tab mwen. 636 00:37:27,940 --> 00:37:31,130 Epi ankò, chemen an nou tout nou te sou isit la se pral di Mather, Mather, 637 00:37:31,130 --> 00:37:34,220 Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, ki se trè redondants 638 00:37:34,220 --> 00:37:36,240 an tèm de gaspiyaj nan charaktèr yo. 639 00:37:36,240 --> 00:37:40,820 Se konsa, kite m 'ale pi devan epi chanje sa a pa klike Estrikti, 640 00:37:40,820 --> 00:37:44,620 ak kite m 'ale pi devan epi tcheke sou jaden an kay, klike sou Chanjman, 641 00:37:44,620 --> 00:37:46,990 e kounye a, mwen pral chanje sa a yo dwe genyen yon int. 642 00:37:46,990 --> 00:37:49,490 255 se pa enpòtan. 643 00:37:49,490 --> 00:37:54,010 Kite m 'ale pi devan epi di ke gen pwoblèm si li la toujou nil. Sove. 644 00:37:54,010 --> 00:37:55,870 Koulye a, elèv yo tab ki te chanje avèk siksè, 645 00:37:55,870 --> 00:37:59,090 ak avi ankò kay la se yon int. 646 00:37:59,090 --> 00:38:02,220 Kòm yon sou kote, inyore nimewo ki nan parantèz lè li rive antye. 647 00:38:02,220 --> 00:38:03,770 >> Sa a se pou rezon eritaj. 648 00:38:03,770 --> 00:38:06,920 Retounen nan jou a lè ou pa t 'gen GUIs, ou olye te gen yon anviwònman liy lòd, 649 00:38:06,920 --> 00:38:11,580 10 ak 11 respektivman espesifye konbyen karaktè yo ou ta dwe montre 650 00:38:11,580 --> 00:38:13,950 nan fennèt la tèminal aktyèlman montre jaden yo. 651 00:38:13,950 --> 00:38:19,150 Li te gen anyen fè avèk longè a ti jan nan jaden an reyèl, se konsa nou pral jis inyore ki pou kounye a. 652 00:38:19,150 --> 00:38:20,990 Koulye a, mwen gen yo ale nan tablo sa a. 653 00:38:20,990 --> 00:38:24,610 Men, si David ap viv nan Mather, kay pa ta dwe 0, 654 00:38:24,610 --> 00:38:27,350 ki se yon valè int default pi pre nil. 655 00:38:27,350 --> 00:38:29,810 Li ta dwe ap viv nan kay 1. 656 00:38:29,810 --> 00:38:36,870 Se pou nou abitrèman di ke Mike zan ki abite nan Pfoho, se konsa nimewo kay la 2. 657 00:38:36,870 --> 00:38:40,160 Koulye a, tab avè m 'sanble yon ti kras plis skre. 658 00:38:40,160 --> 00:38:41,960 Men, konsidere efikasite la. 659 00:38:41,960 --> 00:38:44,860 Mwen kounye a lè l sèvi avèk sèlman 32 Bits yo idantifye kay la, 660 00:38:44,860 --> 00:38:49,530 ki vle di gen nan sèlman 1 definisyon kanonyal nan kay Mather m 'ak Pfoho 661 00:38:49,530 --> 00:38:52,090 ak sa a, se nan tablo a kay. 662 00:38:52,090 --> 00:38:55,880 Se konsa, si mwen vle kounye a byen retounen sa yo tab, panse a li nan fason sa. 663 00:38:55,880 --> 00:39:01,980 Men mwen gen tab elèv yo m 'yo, ak sou bò men dwat-ou gen nan nimewo sa yo, 1 ak 2. 664 00:39:01,980 --> 00:39:04,180 1 se Mather, 2 se Pfoho. 665 00:39:04,180 --> 00:39:08,580 Nou gen moun ki nimewo menm nan tablo sa a lòt, yo rele kay, 666 00:39:08,580 --> 00:39:11,020 1 ak 2 ak 3 pou 3 moun ki kay. 667 00:39:11,020 --> 00:39:14,990 Ki sa nou kounye a vle fè se gen kapasite la nan kòd, PHP ak SQL, 668 00:39:14,990 --> 00:39:18,800 sòt nan byen retounen tab sa yo, kote si sa yo, se elèv yo ak sa yo, se kay yo, 669 00:39:18,800 --> 00:39:22,050 nou vle yon jan kanmenm konbine yo yon jan pou 1 liy moute ak 1, 670 00:39:22,050 --> 00:39:25,670 2 liy moute ak 2, ak pou nou kapab konnen ki kote David 671 00:39:25,670 --> 00:39:28,000 ak ki kote Mike ak ki kote tout lòt moun ap viv. 672 00:39:28,000 --> 00:39:31,850 Pou fè sa nou kapab egzekite yon sijè rechèch SQL tankou sa ki annapre yo. 673 00:39:31,850 --> 00:39:40,470 CHWAZI * KI SOTI NAN elèv yo antre nan kay SOU - 674 00:39:40,470 --> 00:39:43,000 Epi, koulye a sa ki jaden nou vle rantre nan sou? 675 00:39:43,000 --> 00:39:49,520 Se konsa, students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> Yon ti kras skre, men nan pati sa a vle di literalman kreye yon nouvo tab tanporè 677 00:39:54,150 --> 00:39:56,690 sa a, se rezilta a nan rantre nan elèv yo ak kay. 678 00:39:56,690 --> 00:40:00,340 Ak ki jan ou vle konbine konsèy yo nan dwèt mwen isit la? 679 00:40:00,340 --> 00:40:05,280 Fikse 'jaden kay egal a kay yo' elèv yo jaden ID. 680 00:40:05,280 --> 00:40:10,220 Men, si mwen kounye a klike sou Ale, mwen jwenn tounen ekzakteman ki sa mwen te espere. 681 00:40:10,220 --> 00:40:15,890 David se nan Mather, Mike se nan Pfoho, epi tou mwen te wè Idantifyan yo inik. 682 00:40:15,890 --> 00:40:18,640 Men, pwen an se kounye a mwen gen yon tab konplè. 683 00:40:18,640 --> 00:40:23,020 Se konsa, Takeaway a isit la pou pset 7 oswa vrèman pou pwojè a final: 684 00:40:23,020 --> 00:40:25,830 Si ou jwenn ke w ap estoke nenpòt moso nan enfòmasyon redundantly, 685 00:40:25,830 --> 00:40:28,850 si li nan yon kay, petèt li nan yon vil, eta, ak ZIP 686 00:40:28,850 --> 00:40:32,050 kote postal ka anjeneral, men se pa toujou ka itilize kòm yon idantifyan inik, 687 00:40:32,050 --> 00:40:35,810 ale nan fè egzèsis la mantalman ak Lè sa a, avèk yon bagay tankou fpmyadmen 688 00:40:35,810 --> 00:40:40,660 nan faktorizasyon soti ke done komen paske espesyalman kòm sit entènèt ou an ap vin pi plis ki byen te itilize 689 00:40:40,660 --> 00:40:45,440 ak pi popilè, sa a se ki jan ou asire w ke tout bagay se vit Super, 690 00:40:45,440 --> 00:40:51,930 pa bay baz done a kòm sijesyon anpil jan patikilarite ke posib. 691 00:40:51,930 --> 00:40:53,860 Sa se te yon anpil. 692 00:40:53,860 --> 00:40:59,010 Nenpòt kesyon? Tout dwa. Kite a pran yon ti repo-5 minit la epi argroup. 693 00:41:01,600 --> 00:41:03,540 Tout dwa. 694 00:41:03,540 --> 00:41:08,680 Sa ki anba la a se yon egzanp ki te itilize kèk ane de sa lè mwen te pran CS161, 695 00:41:08,680 --> 00:41:10,960 ki se sistèm operasyon klas la nan kolèj la 696 00:41:10,960 --> 00:41:15,160 ki se konnen pou yo etonan men yon kantite lajan fou nan travay ou, 697 00:41:15,160 --> 00:41:19,810 epi li konsantre reyèlman sou kèk nan pwoblèm yo ki ba-nivo ki rive nan sistèm operasyon 698 00:41:19,810 --> 00:41:22,700 epi tou li menm nan mond lan nan baz done. 699 00:41:22,700 --> 00:41:27,040 >> Istwa a ki te di pa pwofesè m 'yo, Margo Seltzer, ki ane yo te jan sa a. 700 00:41:27,040 --> 00:41:30,990 Sipoze ke ou gen yon frijidè dòtwa ti kras pou ou ak pou kolokasyon ou 701 00:41:30,990 --> 00:41:34,030 ak tou de nan nou vrèman renmen lèt. 702 00:41:34,030 --> 00:41:36,360 Se konsa, ou vin lakay nan jou klas yon sèl, kolokasyon ou a pa ankò a, 703 00:41:36,360 --> 00:41:39,650 ou louvri frijidè a, epi ou reyalize, "O modi, nou ap soti nan lèt." 704 00:41:39,650 --> 00:41:42,070 Se konsa, ou fèmen frijidè a, ou mache lòtbò lari a CVS 705 00:41:42,070 --> 00:41:45,830 epi pou yo jwenn nan liy ki de pli zan pli long yo achte kèk lèt ​​nan CVS. 706 00:41:45,830 --> 00:41:48,470 Pandan se tan, kolokasyon nou an ap vini nan kay la apre li oubyen nan klas li a, 707 00:41:48,470 --> 00:41:51,690 vin antre nan sal la, ouvè frijidè a reyèlman vle kèk lèt, 708 00:41:51,690 --> 00:41:54,130 ouvè frijidè a ak, "modi, pa gen okenn lèt." 709 00:41:54,130 --> 00:41:57,890 Se konsa, li oswa li fèmen frijidè a, ap mache soti nan pòt la, epi ale nan ABP 710 00:41:57,890 --> 00:42:00,910 oswa yon kote ki pase CVS kote ou pa ap ale nan frape nan chak lòt 711 00:42:00,910 --> 00:42:02,790 ale jwenn kèk lèt. 712 00:42:02,790 --> 00:42:04,820 Nan kou yon kèk minit pita, tou de nan nou jwenn tounen lakay 713 00:42:04,820 --> 00:42:07,740 e kounye a, ou gen lèt de fwa tankou anpil jan ou aktyèlman te vle. 714 00:42:07,740 --> 00:42:10,670 Epi yo te lèt, kounye a li pral ale move paske ou renmen lèt 715 00:42:10,670 --> 00:42:14,200 men ou pa fè sa vrèman tankou lèt, se konsa kounye a ou gen lèt twòp, se konsa li a pral tounen. 716 00:42:14,200 --> 00:42:16,830 Sa a se yon terib, sitiyasyon terib. 717 00:42:16,830 --> 00:42:22,920 Kisa ki ta kapab fin fè solisyon sa a sitiyasyon si ou te nan kay la kolokasyon an premye? Wi. 718 00:42:22,920 --> 00:42:25,970 [Elèv] Ou ta dwe te kite yon nòt. [Ri] 719 00:42:25,970 --> 00:42:28,090 Bon. Ou ta dwe te kite yon nòt. 720 00:42:28,090 --> 00:42:32,320 Ou ta dwe te mete yon nòt nan Post-li oswa tankou di, "Gone pou lèt," 721 00:42:32,320 --> 00:42:36,830 ak Lè sa a, kolokasyon ou concept ta yo te bloke sistèm nan pou aktyèlman fè sa. 722 00:42:36,830 --> 00:42:38,010 Oswa ou kapab ale 1 etap pi lwen. 723 00:42:38,010 --> 00:42:41,060 Ou te kapab literalman fèmen frijidè a ak kèk kalite kadna, 724 00:42:41,060 --> 00:42:44,870 e kounye a, yo pral kolokasyon ou literalman ap bloke soti nan frijidè a. 725 00:42:44,870 --> 00:42:48,520 Si nou jeneralizasyon tounen nan pwogramasyon, 726 00:42:48,520 --> 00:42:51,610 ou kapab pwèske panse a frijidè a kòm kèk kalite varyab oswa struct yon, 727 00:42:51,610 --> 00:42:53,500 kèk kalite veso pou jwenn enfòmasyon. 728 00:42:53,500 --> 00:42:58,290 Pwoblèm nan fondamantalman isit la se ke tou de nan nou yo te pèmèt yo enspekte 729 00:42:58,290 --> 00:43:02,370 oswa li eta a nan estrikti sa a done, 730 00:43:02,370 --> 00:43:08,050 men ou wè li nan diferan moman e ankò tou de nan nou te pran yon desizyon 731 00:43:08,050 --> 00:43:11,920 ki baze sou eta a nan mond lan nan moman sa a diferan nan tan. 732 00:43:11,920 --> 00:43:15,570 Se konsa, te ou fèmen akle frijidè a, ou ta gen omwen evite kolokasyon ou 733 00:43:15,570 --> 00:43:19,070 paske li te kapab enspekte eta a nan mond lan, 734 00:43:19,070 --> 00:43:22,530 Se konsa li oswa li pa t 'kapab te fè desizyon sa a menm. 735 00:43:22,530 --> 00:43:25,780 Se konsa, bazdone, kòm li vire soti yo, yo gen pwoblèm sa a toujou ap. 736 00:43:25,780 --> 00:43:31,050 >> Ann gade pou wè si nou kapab konstwi yon senaryo. 737 00:43:31,050 --> 00:43:34,310 Sipoze ke ou se sòt de yon nèg move ak ou ale nan Bank of America 738 00:43:34,310 --> 00:43:37,950 oswa youn nan kote ki lòt nan kare a ki gen yon koup ATM kòt a kòt, 739 00:43:37,950 --> 00:43:41,200 ak yon jan kanmenm ou kalkile konnen kouman ou kapab kopi yon kat ATM - pa tout sa ki difisil. 740 00:43:41,200 --> 00:43:42,730 Se jis nan yon teren mayetik. 741 00:43:42,730 --> 00:43:45,180 Se konsa, sa ou vle pou yo eseye fè se jwe jwèt sa a 742 00:43:45,180 --> 00:43:49,060 kote ou mete 1 kat nan 1 machin, yon lòt kat nan machin nan lòt, 743 00:43:49,060 --> 00:43:51,980 epi ou esansyèlman vle pou yo eseye retire lajan an menm tan, 744 00:43:51,980 --> 00:43:54,930 paske imajine ke istwa ale jan sa a. 745 00:43:54,930 --> 00:43:57,350 Machin nan sou bò gòch la pran kat ou epi ak PIN ou, 746 00:43:57,350 --> 00:44:00,240 ak Lè sa a, ou di, "Ban m '$ 100." 747 00:44:00,240 --> 00:44:04,790 Se ATM nan pwograme nan premye fè yon chwazi sou baz done li yo oswa ekivalan a - 748 00:44:04,790 --> 00:44:10,780 kèlkeswa sa baz done li nan lè l sèvi avèk - yo wè sa a itilizatè gen omwen $ 100 nan li oswa kont li? 749 00:44:10,780 --> 00:44:16,180 Si se konsa, Lè sa a, y'a krache soti $ a 100 ak soustraksyon $ 100 nan balans yo. 750 00:44:16,180 --> 00:44:20,470 Men, nan kou si gen nan machin miltip isit la oswa fason miltip nan enspekte 751 00:44:20,470 --> 00:44:23,560 eta a nan ki nan lemonn, vout la labank, yo wè konbyen lajan ou genyen, 752 00:44:23,560 --> 00:44:26,780 sipoze ke jis pa chans machin nan sou bò gòch la ak dwa pou 753 00:44:26,780 --> 00:44:30,140 tou de mande pou kesyon nan apeprè moman sa a menm nan tan. 754 00:44:30,140 --> 00:44:34,160 >> Lè sa a kapab sètènman rive. ATM yo se òdinatè jou sa yo. 755 00:44:34,160 --> 00:44:37,670 Se konsa, si machin nan sou bò gòch la di, "Wi, ou gen omwen $ 100," 756 00:44:37,670 --> 00:44:42,150 pandan se tan machin lan sou bò dwat la di, "Wi, ou gen omwen $ 100," 757 00:44:42,150 --> 00:44:47,420 Lè sa a, tou de peyi yo kontinye nan fini pwogram yo epi yo aktyèlman krache soti $ a 100 758 00:44:47,420 --> 00:44:50,820 ak di, "Précédemment ou te gen $ 200." 759 00:44:50,820 --> 00:44:54,890 -Kite m 'mete ajou varyab nan kounye a gen $ 100 ki rete nan kont lan. " 760 00:44:54,890 --> 00:44:58,780 Men, si tou de peyi yo te tcheke balans kont ou epi li te jwenn ke li nan $ 200 761 00:44:58,780 --> 00:45:02,000 ak tou de peyi yo Lè sa a, fè matematik la ak di 200 - 100, 762 00:45:02,000 --> 00:45:06,990 machin yo te potansyèlman krache soti de $ 100 bòdwo nan chak machin, 763 00:45:06,990 --> 00:45:11,360 men yo te sèlman mete ajou balans sòm kont ou yo dwe $ 100. 764 00:45:11,360 --> 00:45:15,130 Nan lòt mo, ou te pran soti $ 200, men paske yo enspekte eta a nan mond lan 765 00:45:15,130 --> 00:45:18,840 an menm tan ak Lè sa a, te pran yon desizyon ki baze sou ki valè, 766 00:45:18,840 --> 00:45:21,930 yo pa ta ka fè matematik la finalman kòrèkteman. 767 00:45:21,930 --> 00:45:25,520 Se konsa, nan yon sitiyasyon bank twò ou reyèlman vle gen kèk kalite blokaj 768 00:45:25,520 --> 00:45:28,450 pou ke le pli vit ke ou te tcheke eta a nan kèk varyab 769 00:45:28,450 --> 00:45:31,220 sa ki nan vrèman enpòtan, tankou balans kont ou, 770 00:45:31,220 --> 00:45:36,070 Pa kite nenpòt ki lòt moun pran desizyon ki baze sou sa jouk lè w ap fè ap fè bagay ou a, 771 00:45:36,070 --> 00:45:38,920 kote nan ka sa a ou se ATM la sou bò gòch la. 772 00:45:38,920 --> 00:45:41,160 Fèmen pòt tout lòt moun deyò. 773 00:45:41,160 --> 00:45:44,650 Ou ka aktyèlman reyalize sa a efè nan yon koup nan diferan fason. 774 00:45:44,650 --> 00:45:48,660 >> Fason pi senp nan miskl se yon liy nan SQL ke nou te ba ou 775 00:45:48,660 --> 00:45:52,030 nan spesifikasyon la ansanm pwoblèm ki sanble egzakteman tankou sa a. 776 00:45:52,030 --> 00:45:57,420 Antre nan tab la - kèlkeswa sa yo rele - yon id, senbòl yon, ak pati nan yon, yon nimewo de aksyon, 777 00:45:57,420 --> 00:45:59,660 valè sa yo, pou egzanp. 778 00:45:59,660 --> 00:46:03,370 Si ou pa te li espèk a ankò, sa a se yon egzanp ki enplike kouman ou ale sou 779 00:46:03,370 --> 00:46:07,340 achte 10 aksyon sa a stock peni pou Prezidan Skroob, 780 00:46:07,340 --> 00:46:10,340 ID itilizatè ki gen k ap pase yo nimewo a 7 la? 781 00:46:10,340 --> 00:46:14,070 Sa a di Antre NAN tab id sa a, senbòl, ak nimewo de aksyon 782 00:46:14,070 --> 00:46:18,200 nan 7, 'DVN.V', ak 10. 783 00:46:18,200 --> 00:46:21,510 Men, - men, men, men - liy nan dezyèm se youn nan enpòtan. 784 00:46:21,510 --> 00:46:26,310 SOU pataje duplikata MIZAJOU LEJANN = pataje + VALÈ (pataje). 785 00:46:26,310 --> 00:46:28,350 Se konsa, totalman skre-gade nan zye premye. 786 00:46:28,350 --> 00:46:31,990 Men, lefèt ke sa a sijè rechèch SQL, menm si li vlope sou 2 liy, 787 00:46:31,990 --> 00:46:35,920 se 1 sijè rechèch long, sa vle di li nan atomik 788 00:46:35,920 --> 00:46:41,000 nan sans ke sa a pral sijè rechèch swa pou egzekite tout ansanm oswa ou pa nan tout. 789 00:46:41,000 --> 00:46:45,100 Ak pa definisyon miskl, lè sa a jan yo aplike sa a sijè rechèch. 790 00:46:45,100 --> 00:46:51,010 Li se pa definisyon nan gid la garanti yo egzekite nan tout yon fwa oswa ou pa nan tout. 791 00:46:51,010 --> 00:46:54,020 Motivasyon an pou sa a se jan sa a. 792 00:46:54,020 --> 00:46:58,540 Si nan ka sa a ou yo ap eseye achte 10 aksyon nan stock, 793 00:46:58,540 --> 00:47:02,260 li nan kalite istwa a menm jan ak lèt ​​la, li nan kalite istwa a menm jan ak ATM lan. 794 00:47:02,260 --> 00:47:04,970 >> Si ou fè erè nan pa lè l sèvi avèk sa a sentaks 795 00:47:04,970 --> 00:47:09,610 men olye chwazi soti nan baz done a wè konbyen aksyon sa a stock peni 796 00:47:09,610 --> 00:47:13,750 Prezidan Skroob genyen, epi sipoze li gen 10 aksyon, 797 00:47:13,750 --> 00:47:19,330 ak Lè sa a, kèk dezyèm fann pita ou Lè sa a, fè yon deklarasyon MIZAJOU, 798 00:47:19,330 --> 00:47:24,810 ki se yon lòt deklarasyon nan SQL ki di ale pi devan epi ajoute 10 plis aksyon 799 00:47:24,810 --> 00:47:28,700 a 10 aktyèl l 'pou ke depreferans total la se 20, 800 00:47:28,700 --> 00:47:33,490 pwoblèm nan se paske nan sistèm baz done a jodi a ak paske nan òdinatè jodi a 801 00:47:33,490 --> 00:47:35,990 ou gen processeurs miltip, am miltip - 802 00:47:35,990 --> 00:47:38,920 nan lòt mo, òdinatè kapab literalman dwe ap fè bagay sa yo miltip nan yon fwa - 803 00:47:38,920 --> 00:47:44,270 gen nan pa gen garanti ke ou chwazi epi mete ajou ou nan ka sa a 804 00:47:44,270 --> 00:47:46,150 yo pral rive tounen nan tounen. 805 00:47:46,150 --> 00:47:49,140 Se konsa, yon senaryo move ta dwe ou fè chwazi a 806 00:47:49,140 --> 00:47:51,670 yo wè konbyen aksyon sa a stock peni Skroob genyen, 807 00:47:51,670 --> 00:47:54,710 ak Lè sa a, jis pa chans se yon lòt sijè rechèch baz done egzekite - 808 00:47:54,710 --> 00:47:57,740 petèt Skroob li yo nan yon lòt fenèt navigatè ap eseye achte 10 aksyon 809 00:47:57,740 --> 00:48:00,700 nan yon lòt fenèt nèt, anpil tankou ATM lan - 810 00:48:00,700 --> 00:48:05,410 ak sipoze ke yon lòt sijè rechèch vin nan ant chwazi epi mete ajou nan. 811 00:48:05,410 --> 00:48:10,210 Li ta ka ka a ki Skroob kounye a pèdi kèk nimewo de aksyon 812 00:48:10,210 --> 00:48:14,340 paske yon lòt pwosesis yo enspekte eta a nan mond l 'yo, 813 00:48:14,340 --> 00:48:17,800 oswa li vin pi plis pase sa li te pataje ta dwe gen. 814 00:48:17,800 --> 00:48:23,250 Nou pa pral antre Nap yo nan ekzakteman ki sa sa yo liy istwa patikilye ta kapab, 815 00:48:23,250 --> 00:48:28,380 men pwen an se si ou gen yo tcheke yon valè varyab ak Lè sa a, pran yon desizyon, 816 00:48:28,380 --> 00:48:32,500 si gen nan yon risk pou yon lòt moun fè yon bagay nan ant 2 moun ki deklarasyon, 817 00:48:32,500 --> 00:48:36,220 kòm ka rive nan multiproseseur sistèm, nan multicore sistèm, 818 00:48:36,220 --> 00:48:41,220 òdinatè ak abilite a fè bagay sa yo miltip nan yon fwa, move bagay ka rive 819 00:48:41,220 --> 00:48:44,530 ou tankou kont labank yo te debite mal, achte lèt de fwa tankou anpil, 820 00:48:44,530 --> 00:48:46,730 oswa nan ka sa a nimewo a mal de aksyon. 821 00:48:46,730 --> 00:48:48,370 Men, gen nan yon fason pi fasil yo panse sou sa a. 822 00:48:48,370 --> 00:48:53,290 >> Li sanble ke SQL sipòte tou, si ou konfigirasyon tab ou yo kòrèkteman, 823 00:48:53,290 --> 00:48:56,920 yon bagay yo rele tranzaksyon, ki mwen ta diskite se aktyèlman menm vin pi fasil yo konprann 824 00:48:56,920 --> 00:49:00,650 pase sa a, men se pa yon 1-revètman, kidonk li a aktyèlman yon ti jan pi plis enplike nan sa. 825 00:49:00,650 --> 00:49:04,960 Gen literalman yon deklarasyon nan SQL rele TRANZAKSYON kòmanse. 826 00:49:04,960 --> 00:49:08,300 Jis tankou gen nan CHWAZI, MIZAJOU, insert, efase, ak rantre nan ak yon pakèt moun sou lòt moun, 827 00:49:08,300 --> 00:49:10,970 gen mo kle tankou TRANZAKSYON kòmanse. 828 00:49:10,970 --> 00:49:13,560 Ak sa ou Lè sa a, fè nan yon kontèks pset 7 - 829 00:49:13,560 --> 00:49:17,270 ou pa bezwen fè sa pou pset 7; li nan fòmèlman disclaimed kòm pa nesesè, 830 00:49:17,270 --> 00:49:18,830 men pou pwojè final li kapab itil - 831 00:49:18,830 --> 00:49:22,820 si ou rele yon sijè rechèch nan TRANZAKSYON kòmanse epi Lè sa a, yon lòt sijè rechèch 832 00:49:22,820 --> 00:49:25,620 ak Lè sa a, yon lòt sijè rechèch ak Lè sa a, yon lòt, yon lòt, ak yon lòt, 833 00:49:25,620 --> 00:49:31,860 sa yo queries pa pral aktyèlman ka ekzekite jiskaske ou rele deklarasyon an SQL komèt, 834 00:49:31,860 --> 00:49:37,220 nan ki pwen, si li nan 2 deklarasyon oswa 20 deklarasyon yo, yo tout pral egzekite nan yon fwa, 835 00:49:37,220 --> 00:49:42,770 ki vle di pa gen yon lòt ka aksidantèlman achte lèt twòp oswa debi twòp lajan 836 00:49:42,770 --> 00:49:46,340 oswa achte aksyon twò anpil paske tout queries ou yo ap egzekite 837 00:49:46,340 --> 00:49:48,410 tounen nan fè bak nan do nan do. 838 00:49:48,410 --> 00:49:51,580 Ak sa a se super enpòtan, espesyalman lè w ap fè yon bagay tankou sa a. 839 00:49:51,580 --> 00:49:54,900 Sa se yon egzanp abitrè ki di nan kite l 'mete ajou kont lan bank 840 00:49:54,900 --> 00:50:00,200 pa mete yon balans egal a balans - $ 1000 kote nimewo kont lan se 2. 841 00:50:00,200 --> 00:50:04,260 Lè sa a, deklarasyon an dezyèm se kounye a kite a depoze ke $ 1000 842 00:50:04,260 --> 00:50:07,310 nan yon lòt moun nan kont labank ki gen nimewo kont se 1. 843 00:50:07,310 --> 00:50:10,400 >> Nan lòt mo, sa a se yon egzanp pafè nan kote ou vle asire 844 00:50:10,400 --> 00:50:13,590 ke tou de nan deklarasyon sa yo rive oswa ou pa nan tout 845 00:50:13,590 --> 00:50:15,450 paske otreman kliyan an ki pral jwenn vise 846 00:50:15,450 --> 00:50:17,670 ak w ap ale nan pran lajan yo epi yo pa depoze li yon lòt kote, 847 00:50:17,670 --> 00:50:20,470 , oubyen yon bank la ap pwal jwenn vise kote w ap ale nan depoze lajan an 848 00:50:20,470 --> 00:50:23,140 men se pa aktyèlman fè soustraksyon li nan kont itilizatè a la. 849 00:50:23,140 --> 00:50:25,810 Se konsa, ou vle tou de peyi yo al touye yo ansanm. 850 00:50:25,810 --> 00:50:29,140 Se konsa, antre nan tranzaksyon yo nan lemonn. 851 00:50:29,140 --> 00:50:31,360 Se konsa, sa a, se yon bagay kenbe nan do a nan lide ou, 852 00:50:31,360 --> 00:50:34,710 pa tèlman pou bi sa yo nan jis pwojè yon desizyon final, 853 00:50:34,710 --> 00:50:36,700 Men, si ou vle pran pwojè final ou a yon kote, 854 00:50:36,700 --> 00:50:39,040 si ou vle kòmanse moute kèk konpayi bò kote l ', 855 00:50:39,040 --> 00:50:41,270 si ou vle rezoud pwoblèm kèk gwoup elèv nan sou lakou lekòl la 856 00:50:41,270 --> 00:50:45,210 ak gen aktyèlman yon vivan, aktif sit entènèt, sa yo, se sòt nan nan pinèz sibtil ki ka leve 857 00:50:45,210 --> 00:50:49,480 si ou pa byen panse nan sa ki kapab rive si 2 moun 858 00:50:49,480 --> 00:50:54,190 yo ap eseye gen aksè a sit entènèt ou a nan literalman moman sa a menm nan tan, 859 00:50:54,190 --> 00:50:56,890 kote queries yo ka otreman jwenn reflete. 860 00:50:58,840 --> 00:51:01,420 >> Prepare w pou kèk JavaScript, yon kol ladan l '? 861 00:51:01,420 --> 00:51:04,320 Sa a se lang dènye nou an pou semès la. Tout dwa. 862 00:51:04,320 --> 00:51:09,940 Erezman, JavaScript sanble trè, trè, trè menm jan ak lang yo 2, C ak PHP, 863 00:51:09,940 --> 00:51:11,140 nou te fè konsa byen lwen. 864 00:51:11,140 --> 00:51:14,340 Gen nan pa gen JavaScript nan pset 7, men li la yon zouti itil èkstrèmeman 865 00:51:14,340 --> 00:51:18,840 lè li rive fè pwojè ki baze sou wèb final oswa vrèman jis wèb pwogramasyon plis jeneralman. 866 00:51:18,840 --> 00:51:20,950 Se konsa, yon BECA rapid sou yon bagay yo rele Dom. 867 00:51:20,950 --> 00:51:23,600 Isit la se yon paj super senp wèb ki vrèman jis di hello, mond 868 00:51:23,600 --> 00:51:25,970 tou de nan tit la ak nan kò a. 869 00:51:25,970 --> 00:51:29,270 Kòm dekoupaj an ki te sijere pou kèk tan, 870 00:51:29,270 --> 00:51:31,380 gen se vre yon yerachi nan paj entènèt. 871 00:51:31,380 --> 00:51:34,220 Mwen te kapab desine sa a brib menm nan HTML kòm yon pyebwa, 872 00:51:34,220 --> 00:51:37,470 panse tounen nan diskisyon nou an estrikti done nan C, jan sa a. 873 00:51:37,470 --> 00:51:40,710 Mwen gen kèk ne rasin espesyal ki rele ne la dokiman, 874 00:51:40,710 --> 00:51:43,650 epi nou pral wè analòg sa a nan JavaScript nan jis moman yon. 875 00:51:43,650 --> 00:51:48,330 Timoun nan premye ak sèlman pitit la ki nan ka sa a se tag nan HTML. 876 00:51:48,330 --> 00:51:49,880 Gen nan pa gen kat dirèk nan doktip a. 877 00:51:49,880 --> 00:51:53,170 Sa se yon bagay espesyal, konsa nou ta dwe jis inyore l lè li rive sa a Dom, 878 00:51:53,170 --> 00:51:55,810 dokiman sa a Modèl objè pyebwa. 879 00:51:55,810 --> 00:51:59,530 Remake HTML tag a, ki mwen te repwezante abitrèman kòm yon rektang, 880 00:51:59,530 --> 00:52:02,890 gen 2 timoun: tèt ak kò l. 881 00:52:02,890 --> 00:52:04,840 >> Moun sa yo ki ap menm jan trase kòm rektang. 882 00:52:04,840 --> 00:52:08,970 Li se enpòtan pictorially tèt sa a se nan kite nan kò a. 883 00:52:08,970 --> 00:52:11,960 Enplikasyon a se ke tèt vini an premye nan pyebwa sa a. 884 00:52:11,960 --> 00:52:14,910 Se konsa, gen nan aktyèlman yon kòmann-nan nan yon pyebwa lè ou rale l 'tankou sa a, 885 00:52:14,910 --> 00:52:17,460 menm si fòm yo ak etajèr yo se abitrè. 886 00:52:17,460 --> 00:52:20,360 Head pandan se tan gen yon pitit yon sèl rele tit, 887 00:52:20,360 --> 00:52:25,170 ak tit aktyèlman gen pwòp pitit li yo, ki se "hello, mond", 888 00:52:25,170 --> 00:52:32,210 kote mwen fè espre te trase kòm yon oval isit la fè li yon ti kras diferan de rektang lan. 889 00:52:32,210 --> 00:52:37,420 Sa yo rektang se eleman, Lè nou konsidere ke hello, lemonn yo se reyèlman yon ne tèks. 890 00:52:37,420 --> 00:52:39,850 Se konsa, li nan yon ne nan pye bwa a, men li la yon lòt kalite ne 891 00:52:39,850 --> 00:52:41,730 Se konsa, mwen te trase li abitrèman diferan. 892 00:52:41,730 --> 00:52:45,000 Menm jan an kò gen yon pitit ki rele hello, mond kòm byen, 893 00:52:45,000 --> 00:52:47,910 se konsa diferan ne menm si yo ap azar tèks la menm, 894 00:52:47,910 --> 00:52:52,100 men mwen te trase li lè l sèvi avèk fòm la menm. Se konsa, ki renmen le ki? 895 00:52:52,100 --> 00:52:56,820 Oke, sa ki nan bèl sou HTML se ke li gen sa a nati yerarchize. 896 00:52:56,820 --> 00:53:01,010 Ak sa ki nan bèl sou JavaScript ak patikilyèman bibliyotèk ki se gratis tou ki disponib 897 00:53:01,010 --> 00:53:07,120 ak popilè tankou jQuery, ou ka navige estrikti nan pyebwa konsa étonant fasil. 898 00:53:07,120 --> 00:53:11,790 Nenpòt nan bagay la nou te fè sa nan C ak endikasyon ak pye bwa travès ak recursing sou nœuds 899 00:53:11,790 --> 00:53:15,300 gòch pitit ak pitit dwat, tout nan yon toudenkou nou ka sòt de pran pou yo akòde 900 00:53:15,300 --> 00:53:19,450 tankou se te étonant Enstriktif si se pa yon ti jan fwistre 901 00:53:19,450 --> 00:53:22,470 men se pa prèske yon fason efikas yo ale sou pwogramasyon. 902 00:53:22,470 --> 00:53:24,470 Se konsa, avèk lang sa yo pi wo nivo tankou JavaScript 903 00:53:24,470 --> 00:53:28,340 nou pral kapab navige pye bwa sa a pi plis entwitivman. 904 00:53:28,340 --> 00:53:30,430 >> Ak tout bon sentaks a pral yo dwe byen familye ak yo. 905 00:53:30,430 --> 00:53:32,950 Si ou pat janm wè JavaScript anvan, sa a se yon referans reyèlman bon 906 00:53:32,950 --> 00:53:35,910 soti nan jan yo Mozilla, moun ki fè Firefox, 907 00:53:35,910 --> 00:53:38,370 Se konsa santi yo lib browse ki nan konvenyans ou. 908 00:53:38,370 --> 00:53:41,590 Ki sa ki w ap jwenn - ak sa yo glisad yo ki idantik ak sa nou te itilize lòt jou a - 909 00:53:41,590 --> 00:53:44,030 Menm jan an, prensipal la ale. 910 00:53:44,030 --> 00:53:47,010 Se konsa, lè w ekri yon pwogram nan JavaScript, pa gen okenn fonksyon prensipal. 911 00:53:47,010 --> 00:53:48,690 Ou jis kòmanse ekri kòd. 912 00:53:48,690 --> 00:53:51,660 Men, yon distenksyon ant kle JavaScript ak C ak PHP 913 00:53:51,660 --> 00:53:55,890 Lè nou konsidere ke se ke C ak PHP konsa byen lwen yo te egzekite bò sèvè 914 00:53:55,890 --> 00:53:59,180 pa aparèy la nan ka sa a oswa pi plis jeneralman pa yon sèvè, 915 00:53:59,180 --> 00:54:04,270 JavaScript nan konsepsyon se anjeneral egzekite pa yon navigatè. 916 00:54:04,270 --> 00:54:08,440 Nan lòt mo, ou ta ka ekri JavaScript kòd, kòm nou ap sou yo, 917 00:54:08,440 --> 00:54:13,080 sou yon sèvè nan aparèy la, men ou mete li nan mitan HTML ou a, nan mitan CSS ou a, 918 00:54:13,080 --> 00:54:16,100 nan mitan jif ou ak PNGs ou ak JPEGs ou 919 00:54:16,100 --> 00:54:19,170 konsa, lè itilizatè a vizite paj entènèt ou an, si w ap sèvi ak JavaScript, 920 00:54:19,170 --> 00:54:21,770 ki kòd JavaScript soti nan sèvè navigatè, 921 00:54:21,770 --> 00:54:24,540 ak li a navigatè a ki aktyèlman ègzekutra li. 922 00:54:24,540 --> 00:54:27,960 Se konsa, sa a gen enplikasyon enpòtan pou pwopriyete menm entelektyèl. 923 00:54:27,960 --> 00:54:32,600 Li nan kalite komik menm panse osijè de pwoteje IP ou an lè li rive JavaScript kòd 924 00:54:32,600 --> 00:54:37,560 paske pa nati nan lang lan li vin egzekite anjeneral bò navigatè. 925 00:54:37,560 --> 00:54:40,360 >> Ou ka déroute li, ki vle di ou kapab fè li gade fou ak lèd 926 00:54:40,360 --> 00:54:45,400 ki pa gen okenn blan, terib non varyab, fè li pi difisil pou moun yo nan vole IP ou an, 927 00:54:45,400 --> 00:54:48,120 men kle a se ke li se egzekite bò navigatè. 928 00:54:48,120 --> 00:54:51,790 Menm si kòm yon bò sèvè sou kote JavaScript ka itilize, 929 00:54:51,790 --> 00:54:54,480 ka a itilize ki pi komen kounye a se toujou sou navigatè a. 930 00:54:54,480 --> 00:54:59,800 Ak isit la a ki sa li sanble. Isit la se yon si-lòt bagay si-lòt konstwi jis tankou C, jis tankou PHP. 931 00:54:59,800 --> 00:55:02,420 Isit la se yon ekspresyon Boolean lè ou "oswa" 2 bagay sa yo ansanm. 932 00:55:02,420 --> 00:55:04,330 Isit la se lè ou "ak" 2 bagay sa yo ansanm. 933 00:55:04,330 --> 00:55:08,300 Isit la se yon deklarasyon switch, ki se menm jan ak PHP 934 00:55:08,300 --> 00:55:10,810 nan ke ou ka chanje sou diferan kalite valè yo. 935 00:55:10,810 --> 00:55:15,180 Pasan menm gen pou pasan isit la, ki fè yo estriktire idantik nan sa nou te wè anvan. 936 00:55:15,180 --> 00:55:18,110 Pandan ke pasan; nou te gen fè pandan y ap pasan. 937 00:55:18,110 --> 00:55:20,290 Varyab, tout tan se konsa yon ti kras diferan. 938 00:55:20,290 --> 00:55:24,560 Ou deklare varyab tankou ou fè nan PHP ak C, 939 00:55:24,560 --> 00:55:27,860 men menm jan an JavaScript chetif tape. 940 00:55:27,860 --> 00:55:32,730 Ou pa presize int oswa flote oswa fisèl oswa yon bagay tankou sa anjeneral. 941 00:55:32,730 --> 00:55:34,240 Ou ka presize var. 942 00:55:34,240 --> 00:55:38,040 Ou pa oblije presize var, men li gen enplikasyon si ou pa fè sa. 943 00:55:38,040 --> 00:55:42,000 Anjeneral, si ou retire okenn pati var, ou aksidantèlman kreye yon varyab mondyal olye pou yo lokal yo. 944 00:55:42,000 --> 00:55:46,420 Se konsa, kite m 'pwopoze ke ou prèske toujou jis di var ak Lè sa a, non an nan varyab la. 945 00:55:46,420 --> 00:55:48,740 Li pa yon kalite, li nan jis var pou varyab. 946 00:55:48,740 --> 00:55:52,930 Sa a ta dwe yon egzanp, si li nan 123 oswa "alo mond,". 947 00:55:52,930 --> 00:55:58,910 Matris yo prezan ak syntactically menm jan ak PHP. 948 00:55:58,910 --> 00:56:03,690 Mwen pral di nimewo var ak Lè sa a, mwen sèvi ak parantèz kare ankò nan deklare yon varyab 949 00:56:03,690 --> 00:56:08,870 ki gen kalite se etalaj ki gen nimewo sa yo an patikilye nan li separe pa vigil. 950 00:56:08,870 --> 00:56:11,740 Lè sa a, alafen, sa a se youn nan sèlman ki vrèman parèt diferan. 951 00:56:11,740 --> 00:56:16,700 Sonje byen, nan PHP nou ta te aplike yon etalaj asosyatif pou yon elèv 952 00:56:16,700 --> 00:56:20,220 tankou Zamyla ki ta ka gade tankou sa a, ki kote varyab la rele elèv yo. 953 00:56:20,220 --> 00:56:23,370 Parantèz yo kare vle di isit la vini yon etalaj. 954 00:56:23,370 --> 00:56:28,500 >> Lefèt ke mwen pa lè l sèvi avèk endis nimerik men strings - id, kay, ak non - 955 00:56:28,500 --> 00:56:30,990 vle di ke sa a se yon etalaj asosyatif, 956 00:56:30,990 --> 00:56:34,490 ak sa yo flèch ak egal a siy ak bracket a Incline 957 00:56:34,490 --> 00:56:37,310 vle di ke kle a se "id", valè a se 1; 958 00:56:37,310 --> 00:56:39,310 kle a se "kay", valè a se Winthrop House; 959 00:56:39,310 --> 00:56:41,800 kle a se "non", valè a se Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 Se konsa, gen nan 3 kle andedan sa a etalaj asosyatif, chak nan ki te gen valè pwòp li yo. 961 00:56:47,110 --> 00:56:52,880 Nou te wè ke nan, 7 pset oswa ou byento pral, nan JavaScript lide menm, 962 00:56:52,880 --> 00:56:55,220 Men, li la pral gade tankou sa a. 963 00:56:55,220 --> 00:57:00,070 Se konsa, var elèv - pa gen okenn siy dola e pa gen mansyone nan kalite toujou, men var - 964 00:57:00,070 --> 00:57:05,860 egal ak Lè sa a, louvri aparèy òtopedik Curly paske nan JavaScript lè ou gen pè valè kle yo, 965 00:57:05,860 --> 00:57:08,900 ou aktyèlman itilize yon bagay yo rele yon objè. 966 00:57:08,900 --> 00:57:13,490 Ak moun nan nou ki t 'pran APCS oswa tankou an ta ka sonje objè soti nan Java 967 00:57:13,490 --> 00:57:15,140 oswa kou lang menm jan an. 968 00:57:15,140 --> 00:57:17,880 JavaScript se pa Java, premye nan tout. 969 00:57:17,880 --> 00:57:21,600 Se te yon ane ekspre desizyon konsepsyon Anons sa pibliye depi frape nan yon lòt bagay ki te popilè, 970 00:57:21,600 --> 00:57:25,640 non li, menm si li pa gen okenn relasyon fondamantal nan Java tèt li. 971 00:57:25,640 --> 00:57:31,490 JavaScript gen objè, epi ou kreye yo pa fason pou notasyon a atèl Curly. 972 00:57:31,490 --> 00:57:36,710 Objè ki nan JavaScript yo se bèl anpil ekivalan a ranje asosyatif nan PHP 973 00:57:36,710 --> 00:57:40,030 lè li rive done estoke andedan nan yo. 974 00:57:40,030 --> 00:57:44,100 >> Men, menm plis pwisan nan JavaScript ou ka asosye trè fasil fonksyon 975 00:57:44,100 --> 00:57:48,040 andedan nan yon objè, epi menm si ou kapab fè sa a nan lòt lang yo, 976 00:57:48,040 --> 00:57:50,040 li nan byen yon paradigm ki komen yo, jan nou pral wè. 977 00:57:50,040 --> 00:57:54,380 Nan ti bout tan, sa a objè ki reprezante yon elèv, ki moun ki se patikilyèman Zamyla, 978 00:57:54,380 --> 00:58:00,380 epi li sanble Concept, jis syntactically diferan de sa a. 979 00:58:00,380 --> 00:58:03,840 Se pou nou sèvi ak aktyèlman JavaScript nan yon dosye. 980 00:58:03,840 --> 00:58:05,570 Li vire soti gen nan yon tag script. 981 00:58:05,570 --> 00:58:08,180 Nou te wè yon tag style ak nou te wè lòt balises HTML. 982 00:58:08,180 --> 00:58:11,510 Tag an script aktyèlman a pral gen kèk kòd JavaScript. 983 00:58:11,510 --> 00:58:15,500 Kite m 'ale nan aparèy la kote nou gen kèk kòd sous pre-fè fè yo. 984 00:58:15,500 --> 00:58:18,700 Mwen pa janm afiche li ankò sou sit entènèt la, men mwen pral fè sa apre klas la. 985 00:58:18,700 --> 00:58:21,770 Se pou nou louvri moute yon sèl sa a, blink.html. 986 00:58:21,770 --> 00:58:27,560 Retounen nan ane 1990 yo, te gen literalman yon tag HTML rele tag a bat je l, 987 00:58:27,560 --> 00:58:30,340 ak sa a se te youn nan etikèt yo ki pi bèl te fè twòp sou entènèt la 988 00:58:30,340 --> 00:58:36,140 kote ou ta vizite kèk ane 1990 paj wèb style ak kòmanse wè tèks flache ou tankou sa a, 989 00:58:36,140 --> 00:58:39,810 rezilta yo nan tag nan Marquis, ki te tèks pral tankou sa a. 990 00:58:39,810 --> 00:58:45,070 Youn nan fwa yo kèk kote te mond lan aktyèlman yo te dakò sou yon estanda entènèt, 991 00:58:45,070 --> 00:58:48,250 tout moun atravè Komisyon Konsèy la te touye tag a bat je kèk ane de sa. 992 00:58:48,250 --> 00:58:52,860 Men, nou ka reziste l 'ak JavaScript kòm yon demonstrasyon de pouvwa a ou gen 993 00:58:52,860 --> 00:58:56,660 lè ou ka ekri yon pwogram andedan nan yon paj entènèt. 994 00:58:56,660 --> 00:59:00,240 Premye kite a sote sou bagay la nouvo epi konsantre sèlman sou fin vye granmoun lan. 995 00:59:00,240 --> 00:59:01,780 >> Isit la se ansyen bagay yo nan sa a egzanp. 996 00:59:01,780 --> 00:59:06,350 Mwen gen yon tag HTML, yon tag tèt, ak yon tag tit. 997 00:59:06,350 --> 00:59:11,210 Lè sa a, mwen gen yon tag kò isit la ak yon div, ki rantre se jis yon divizyon rektangilè nan paj la 998 00:59:11,210 --> 00:59:14,720 ke mwen te bay yon ID inik abitrèman nan "bonjou" nan, 999 00:59:14,720 --> 00:59:18,320 jis pou mwen gen yon fason pou inikman refere li a li, ki gen kèk tèks trè senp: 1000 00:59:18,320 --> 00:59:20,220 hello, lemonn. 1001 00:59:20,220 --> 00:59:23,940 Koulye a, kite m 'woulo liv moute sou tèt sa a ranpli ak wè sa ki nouvo. 1002 00:59:23,940 --> 00:59:27,710 Premye bagay ki nan tèt nouvo moute se tag a script, 1003 00:59:27,710 --> 00:59:31,280 ak andedan nan avi a tag script Mwen te deklare yon fonksyon. 1004 00:59:31,280 --> 00:59:34,610 Deklare yon fonksyon nan JavaScript, trè sanblab yo PHP, 1005 00:59:34,610 --> 00:59:37,930 ou literalman ekri fonksyon Lè sa a, non an nan fonksyon an, parantèz, 1006 00:59:37,930 --> 00:59:40,400 e petèt kèk agiman si li pran nenpòt. 1007 00:59:40,400 --> 00:59:43,510 Lè sa a, mwen te gen atèl Curly mwen kòm dabitid, e kounye a, nou gen kèk kòd yon ti kras nouvo, 1008 00:59:43,510 --> 00:59:45,230 Men, kite a wè sa ki sa a vle di. 1009 00:59:45,230 --> 00:59:48,670 Se konsa, div var, sa a jis vle di, ban m 'yon varyab div rele. 1010 00:59:48,670 --> 00:59:50,530 Mwen te kapab rele l 'foo, men mwen te vle li yo dwe rele div 1011 00:59:50,530 --> 00:59:52,620 pou rezon ki pral klè nan yon dezyèm fwa. 1012 00:59:52,620 --> 00:59:57,480 Lè sa a, li vire soti nan JavaScript - ak sa a se JavaScript kòd entegre nan paj entènèt mwen an - 1013 00:59:57,480 --> 01:00:01,760 gen yon varyab espesyal mondyal nan kalite rele dokiman. 1014 01:00:01,760 --> 01:00:04,780 JavaScript se an reyalite yon lang objè-oryante. 1015 01:00:04,780 --> 01:00:07,230 Nou pa pral antre detay nan 50 moun yo sa sa vle di, 1016 01:00:07,230 --> 01:00:11,180 men pou kounye a konnen ke yon objè se bèl anpil tankou yon struct. 1017 01:00:11,180 --> 01:00:14,740 Tankou nou te wè fason tounen lè nan youn nan pwoblèm nan bonè kouche 1018 01:00:14,740 --> 01:00:17,150 kote nou mete yon anpil nan enfòmasyon ki nan yon struct, 1019 01:00:17,150 --> 01:00:21,330 Menm jan an se dokimante yon struct espesyal ki vini ak navigatè a, 1020 01:00:21,330 --> 01:00:24,810 vini ak nenpòt paj entènèt. Li pa yon bagay mwen te kreye. 1021 01:00:24,810 --> 01:00:28,210 Anndan nan estrikti sa a dokiman, menm si, ou gen pa sèlman done 1022 01:00:28,210 --> 01:00:30,010 men ou yo te genyen tou fonksyon. 1023 01:00:30,010 --> 01:00:34,090 >> Ak nenpòt ki lè ou gen yon fonksyon andedan yon estrikti, andedan nan yon objè, 1024 01:00:34,090 --> 01:00:36,490 sa yo rele yon metòd. Men, li la menm bagay la. 1025 01:00:36,490 --> 01:00:40,110 Yon metòd se yon fonksyon ki jis pou k ap pase yo andedan nan yon lòt bagay. 1026 01:00:40,110 --> 01:00:42,990 Se konsa, sa sa vle di ke sa a espesyal varyab mondyal rele dokiman 1027 01:00:42,990 --> 01:00:47,690 te yon fonksyon rele getElementById ki literalman fè sa. 1028 01:00:47,690 --> 01:00:52,460 Li pral fè ou jwenn yon eleman nan Dom a, pye bwa Dokiman Modèl objè, 1029 01:00:52,460 --> 01:00:55,520 ki gen ID a se nan sa a salitasyon ka. 1030 01:00:55,520 --> 01:00:59,200 Nan lòt mo, tout tan sa a nou te pase sou estrikti done vini nan jwe isit la. 1031 01:00:59,200 --> 01:01:01,400 Pòtre sa a nan yon Dom ke nou te gen yon moman de sa, 1032 01:01:01,400 --> 01:01:06,100 menm si paj la se yon ti kras diferan, si mwen te gen yon div nan foto sa a, 1033 01:01:06,100 --> 01:01:11,180 ki sa document.getElementById ta tounen vin jwenn mwen ta efektivman gen yon konsèy 1034 01:01:11,180 --> 01:01:15,440 rektang lan nan pye bwa a, yon referans a rektang lan nan pyebwa sa a. 1035 01:01:15,440 --> 01:01:18,410 Se konsa, sa a, se sa li vle di aktyèlman rele youn nan moun ki fonksyon. 1036 01:01:18,410 --> 01:01:21,960 Nan ka sa a ankò li nan yon DIV. Li pa yon kò oubyen tit yon. 1037 01:01:21,960 --> 01:01:26,480 Se konsa, kite a wè sa m 'Lè sa a, nou fè avèk sa div kounye a ke mwen genyen li andedan sa a div varyab rele. 1038 01:01:26,480 --> 01:01:32,580 Li sanble soti ak JavaScript ou gen kapasite nan ajistè CSS la nan paj ou a dynamique. 1039 01:01:32,580 --> 01:01:39,060 Up jouk koulye a, nan tout CSS la nou te fè, byen limite, se nan atribi style, 1040 01:01:39,060 --> 01:01:41,730 oswa kote lòt moun yo te nou mete CSS? 1041 01:01:42,730 --> 01:01:45,810 Mwen kalite yon sèl ki gate sa. Nan tag nan style nan tèt la nan dosye a. 1042 01:01:45,810 --> 01:01:49,180 Oswa yo te twazyèm plas te nan? 1043 01:01:50,710 --> 01:01:54,590 >> Yon dosye ekstèn, yon bagay. CSS. 1044 01:01:54,590 --> 01:01:56,730 Se konsa, sa yo yo se kote ki 3 nou te fè CSS konsa byen lwen, 1045 01:01:56,730 --> 01:01:59,310 men trape an se nou te difisil kode li tout. 1046 01:01:59,310 --> 01:02:04,060 Ou deside jan ou plonje nan pset 7, nou deside anvan konferans sa CSS nou ta dwe. 1047 01:02:04,060 --> 01:02:07,380 Men, si ou vle chanje CSS ou, ou ka aktyèlman fè sa 1048 01:02:07,380 --> 01:02:09,370 yon fwa ou gen yon lang programmation vrè. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - pa pwogramasyon lang yo. JavaScript se. 1050 01:02:13,910 --> 01:02:18,200 Se konsa, li sanble ke le pli vit ke ou gen youn nan moun ki rektang soti nan pye bwa a 1051 01:02:18,200 --> 01:02:23,050 rele Dom a, li gen tèt li kèk done andedan nan li. 1052 01:02:23,050 --> 01:02:27,820 Se konsa, div a ke mwen jis te pwan fwi pyebwa a gen sa nou ap rele yon pwopriyete andedan nan li 1053 01:02:27,820 --> 01:02:34,390 rele style, ak pwopriyete a style a gen tèt li yon pwopriyete rele vizibilite. 1054 01:02:34,390 --> 01:02:37,330 Mwen ta konnen sa a sèlman pa leve je l 'manyèl yon itilizatè CSS la. 1055 01:02:37,330 --> 01:02:41,160 Li vire soti gen yon vizibilite CSS pwopriyete ki fè sa li di. 1056 01:02:41,160 --> 01:02:44,530 Li fè yon bagay ki vizib oswa ou pa, ki vizib oswa ou pa. 1057 01:02:44,530 --> 01:02:46,810 Ak fason ou fè sa se sa a. 1058 01:02:46,810 --> 01:02:50,510 Mwen mande programatik si se vizibilite sa a div kache, 1059 01:02:50,510 --> 01:02:53,390 ki sa mwen kapab chanje li nan? Vizib. 1060 01:02:53,390 --> 01:02:58,840 Lòt Bagay si vizibilite a nan paj sa a pa anyen ki kache, lojikman mwen fè l 'kache. 1061 01:02:58,840 --> 01:03:04,070 Mwen pa gen okenn lide poutèt sa li an vizib epi li kache epi yo pa vizib ak envizib. 1062 01:03:04,070 --> 01:03:06,000 Sa a se te yon desizyon konsepsyon pòv sou wout la. 1063 01:03:06,000 --> 01:03:09,530 Men, sa yo se tout bon opoze nan CSS: vizib ak kache. 1064 01:03:09,530 --> 01:03:15,520 Tout sa a se sa vle di li chanje CSS la nan dosye mwen sou yo ak sou, sou yo ak sou 1065 01:03:15,520 --> 01:03:16,870 pou sa div an patikilye. 1066 01:03:16,870 --> 01:03:20,630 Men, ankò, sa a se yon fonksyon ki rele bat je. Lè yo fonksyon an bat je l rele? 1067 01:03:20,630 --> 01:03:24,080 Li sanble ke gen nan yon lòt fenèt espesyal mondyal varyab rele, 1068 01:03:24,080 --> 01:03:28,220 menm jan an nan lespri nan dokiman yo, men Lè nou konsidere ke dokiman an refere a paj entènèt ou an, 1069 01:03:28,220 --> 01:03:31,700 tankou pye bwa a Dom, HTML a ou voye nan sèvè a, 1070 01:03:31,700 --> 01:03:35,250 fenèt refere a chrome la bò kote l ', ba a adrès, ba a tit, 1071 01:03:35,250 --> 01:03:37,880 ak nan tout sa bagay alantou paj entènèt ou an. 1072 01:03:37,880 --> 01:03:42,800 >> Epi li sanble ke objè a fenèt gen yon andedan fonksyon espesyal nan li rele setInterval 1073 01:03:42,800 --> 01:03:44,360 ki fè sa li di. 1074 01:03:44,360 --> 01:03:48,600 Li pral mete yon entèval - nan ka sa a chak milisgond 500 - 1075 01:03:48,600 --> 01:03:52,270 ak, pran yon devine, sa ki li pral fè chak 500 milisgond? 1076 01:03:52,270 --> 01:03:55,240 Li nan ale nan egzekite ki bat je l fonksyon. 1077 01:03:55,240 --> 01:03:58,560 Ak sa ki nan bèl isit la se ke nou te ka fè sa nan C menm si nou pa janm te fè. 1078 01:03:58,560 --> 01:04:01,580 C fè sa ki gen yon bagay yo rele bagèt fonksyon kote ou ka pase fonksyon alantou 1079 01:04:01,580 --> 01:04:03,140 kòm agiman. 1080 01:04:03,140 --> 01:04:07,620 Menm jan an nan JavaScript ou ka pase non an nan yon fonksyon nan yon lòt fonksyon. 1081 01:04:07,620 --> 01:04:10,630 Ak Avi sa m ap fè a. Mwen pa fè sa. 1082 01:04:10,630 --> 01:04:14,380 Si m 'mete parantèz apre bat je a, ki ta ka vle di rele fonksyon an bat je. 1083 01:04:14,380 --> 01:04:17,430 Si m 'retire okenn pati yo, sa vle di isit la se fonksyon an bat je l 1084 01:04:17,430 --> 01:04:21,330 pou ke setInterval ka rele li chak milisgond 500. 1085 01:04:21,330 --> 01:04:28,200 Se konsa, rezilta nan fen, atròs si li se, se ke si mwen ale nan lokalost epi ale nan blink.html, 1086 01:04:28,200 --> 01:04:32,120 Mwen kounye a gen sa a fèt ankò epi ankò. 1087 01:04:32,120 --> 01:04:34,950 Men, si mwen aktyèlman Enspekte Eleman, kite la wè si nou ka wè sa. 1088 01:04:34,950 --> 01:04:38,550 Kite m 'Enspekte Eleman, kite m' desann jis yon ti jan, 1089 01:04:38,550 --> 01:04:44,320 kite m 'chwazi Eleman sou isit la, ak avi andedan kay la Dom nan enspektè Chrome a. 1090 01:04:44,320 --> 01:04:48,840 Li nan literalman chanje retounen ak lide chak milisgond 500. 1091 01:04:48,840 --> 01:04:55,660 Si nou ale nan zanmi nou an Nate, 1092 01:04:55,660 --> 01:05:00,020 si ou janm mande ki jan sa ap travay, menm jan lide ak yon entèval, 1093 01:05:00,020 --> 01:05:04,810 men Nate se aktyèlman fè pou sèvi trè efikas nan koulè nan ka sa a an patikilye isit la. 1094 01:05:04,810 --> 01:05:07,350 Se konsa, sa plis nou ka aktyèlman fè ak sa a? 1095 01:05:07,350 --> 01:05:09,990 Se pou nou louvri moute yon lòt egzanp ak eseye yon bagay 1096 01:05:09,990 --> 01:05:12,940 ki nan programe menm plis itil pase fè bagay yo bat je. 1097 01:05:12,940 --> 01:05:17,990 Kite m 'ale nan anyè fòm nou yo jodi a ak antre nan form0. 1098 01:05:17,990 --> 01:05:20,820 Sa a te fòm nan ugliest posib ke mwen te kapab vini ak, 1099 01:05:20,820 --> 01:05:23,290 ak kite m 'jis montre w sa li sanble nan yon navigatè. 1100 01:05:23,290 --> 01:05:28,960 >> Kite m 'ale nan lokalost / fòm, e sa se form0. 1101 01:05:28,960 --> 01:05:33,400 Sa a se yon super fòm lèd HTML ki gen yon jaden kèk pou email, pou modpas, 1102 01:05:33,400 --> 01:05:37,190 modpas, ak Lè sa a, yon ti kras toulède kaz dakò ak ou pou kèk tèm ak kondisyon. 1103 01:05:37,190 --> 01:05:41,350 Trape an se, si mwen ale nan fòm sa a epi mwen pa vle ba ou adrès imel m 'yo, 1104 01:05:41,350 --> 01:05:44,730 Mwen pa vle dakò ak ou pou tèm ak kondisyon petèt, mwen ka klike sou Anrejistre 1105 01:05:44,730 --> 01:05:46,920 epi li pèmèt m 'nan de tout fason. 1106 01:05:46,920 --> 01:05:50,800 Sa rive pou soumèt a yon dosye estipid PHP rele dump.php. 1107 01:05:50,800 --> 01:05:58,420 Tout sa li fè se enprime soti sa ki nan $ _GET jis pou fè dyagnostik. 1108 01:05:58,420 --> 01:06:01,580 Se te sa ki te soumèt pa itilizatè a jis kounye a. 1109 01:06:01,580 --> 01:06:05,010 Men, si nou aktyèlman vle valide soumèt fòm itilizatè a la. 1110 01:06:05,010 --> 01:06:06,530 Kite m 'ale nan vèsyon 1. 1111 01:06:06,530 --> 01:06:11,420 Sa a se form1.html. Li sanble estetik menm jan move, men avi kouman anpenpan li ye. 1112 01:06:11,420 --> 01:06:15,450 Si m 'klike sou Anrejistre san kolaborasyon, mwen jwenn rele nan. 1113 01:06:15,450 --> 01:06:17,320 "Ou dwe bay adrès imel ou." 1114 01:06:17,320 --> 01:06:21,670 Tout dwa. Se konsa, kite m 'eseye sa. Se konsa, malan@harvard.edu. Mwen pa bezwen yon modpas. 1115 01:06:21,670 --> 01:06:25,100 Anrejistre. "Ou dwe bay yon modpas." Tout dwa. 1116 01:06:25,100 --> 01:06:28,470 Se konsa, mwen pral ba ou yon modpas nan wouj. Anrejistre. 1117 01:06:28,470 --> 01:06:32,300 "Modpas pa matche ak." Mwen dwe kounye a tape nan isit la wouj. 1118 01:06:32,300 --> 01:06:35,710 Mwen aksidantèlman tcheke sa. Anrejistre. 1119 01:06:35,710 --> 01:06:39,860 "Ou dwe dakò ak tèm ak kondisyon." Tout dwa. Dakò la. Anrejistre. 1120 01:06:39,860 --> 01:06:43,700 Epi, koulye a li montre m 'pwodiksyon an dyagnostik sou la. 1121 01:06:43,700 --> 01:06:45,630 >> Se konsa, sa jis ki te pase? 1122 01:06:45,630 --> 01:06:48,330 Nou te gen kapasite sa a valide soumèt fòm. 1123 01:06:48,330 --> 01:06:51,420 An reyalite, si ou te fè plonje nan pset 7, gen nan yon fonksyon padone 1124 01:06:51,420 --> 01:06:54,620 ki fè li trè fasil a rele nan itilizatè a ak yon mesaj sou ekran an. 1125 01:06:54,620 --> 01:06:57,580 Mwen sèvi ak yon mekanis yon ti kras diferan, fonksyon an alèt, 1126 01:06:57,580 --> 01:07:03,690 ki se pa yon fonksyon ki nan te souri sou depi li fè mesaj trè lèd itilizatè. 1127 01:07:03,690 --> 01:07:05,710 Men, kite a wè sa m ap fè isit la. 1128 01:07:05,710 --> 01:07:09,620 Sa a se form1.html, ak avi ke mwen gen kèk sentaks trè familye: 1129 01:07:09,620 --> 01:07:12,920 tag nan kò, tag fòm, atribi aksyon, atribi metòd. 1130 01:07:12,920 --> 01:07:17,050 Men, remake mwen te bay fòm mwen yon ID inik pou konvenyans. 1131 01:07:17,050 --> 01:07:19,190 Lè sa a, mwen te gen yon jaden imel ki gen kalite a se tèks, 1132 01:07:19,190 --> 01:07:23,780 yon jaden modpas ki gen kalite a se modpas, jaden konfimasyon ki gen kalite a se modpas, 1133 01:07:23,780 --> 01:07:28,070 ak Lè sa a, yon toulède kaz ki gen non se akò sou isit la, kalite se toulède kaz. 1134 01:07:28,070 --> 01:07:30,380 Lè sa a, mwen te gen yon bouton soumèt. 1135 01:07:30,380 --> 01:07:33,050 Men, remake nan tèt la sa ki plis mwen gen. 1136 01:07:33,050 --> 01:07:35,810 Premye a tout, gen nan yon lòt pou sèvi ak tag a script. 1137 01:07:35,810 --> 01:07:40,520 Si ou gen kèk kòd JavaScript nan yon lòt dosye, jis tankou ak CSS ou ka gen ladan yo li. 1138 01:07:40,520 --> 01:07:44,530 Epi ou fè sa ak sous script, ak Lè sa a, remake mwen konekte aparamman 1139 01:07:44,530 --> 01:07:50,349 googleapis.com nan yon chemen trè long men non dosye ki gen fini nan jquery.min 1140 01:07:50,349 --> 01:07:52,420 pou minimòm. js. 1141 01:07:52,420 --> 01:07:55,969 jQuery se yon bibliyotèk super popilè pou JavaScript ki jis fè JavaScript 1142 01:07:55,969 --> 01:07:58,230 tout plis nan user-zanmitay yo itilize. 1143 01:07:58,230 --> 01:08:00,610 Li nan efektivman vin yon estanda defakto. 1144 01:08:00,610 --> 01:08:04,090 Se konsa, menm si sa w ap sou yo wè se pa pi bon kalite JavaScript se pou chak, 1145 01:08:04,090 --> 01:08:09,340 li se yon bibliyotèk ki sou tèt yon JavaScript anpil tankou bibliyotèk la CS50 se yon kouch 1146 01:08:09,340 --> 01:08:13,670 sou tèt de ba-nivo kòd C; reyalite a se prèske tout moun sou entènèt la sèvi ak li. 1147 01:08:13,670 --> 01:08:18,030 Se konsa, sa yo, se pa wou fòmasyon. Sa a se jis pi bon pratike jou sa yo. 1148 01:08:18,030 --> 01:08:22,830 Koulye a, remake ki anba a ki se tag script pwòp mwen an, ak avi sa m 'te fè isit la. 1149 01:08:22,830 --> 01:08:27,450 Li sanble ke jQuery fè yon bagay yon anpenpan ti kras. 1150 01:08:27,450 --> 01:08:29,660 JavaScript gen siy dola, men yo san sans. 1151 01:08:29,660 --> 01:08:32,870 >> Yo tankou lèt la A oswa B oswa C. 1152 01:08:32,870 --> 01:08:36,670 jQuery te senpleman te adopte konvansyon an oswa sòt de reklamasyon mete nan reyalite a 1153 01:08:36,670 --> 01:08:40,280 ki $ pral senbòl espesyal yo. 1154 01:08:40,280 --> 01:08:44,950 Se konsa, osito ke ou chaje sa a mondyal JavaScript dosye moute isit la ak tag a script, 1155 01:08:44,950 --> 01:08:49,080 ou gen aksè nan yon varyab espesyal mondyal ki nan rele $. 1156 01:08:49,080 --> 01:08:53,009 Li nan plis byen rele jQuery, men sa pa gade prèske kòm sexy kòm $. 1157 01:08:53,009 --> 01:08:56,250 Men, pa gen okenn siyifikasyon $ espesyal. Nan PHP li te gen espesyal sans. 1158 01:08:56,250 --> 01:08:58,440 Ou te gen nan genyen li nan devan yon varyab. 1159 01:08:58,440 --> 01:09:01,670 Sa a se jis yon bagay sexy yo ke yo te pran sou. 1160 01:09:01,670 --> 01:09:03,389 Ki sa ki pwal sou isit la? 1161 01:09:03,389 --> 01:09:08,830 Avi mwen pase fonksyon an jQuery mondyal mwen varyab dokiman 1162 01:09:08,830 --> 01:09:10,860 ak Lè sa a, m ap rele. pare. 1163 01:09:10,860 --> 01:09:15,480 Ki sa ki jQuery esansyèlman se li pèmèt ou pran kèk bagay JavaScript vaniy 1164 01:09:15,480 --> 01:09:17,889 tankou objè a dokiman, objè a fenèt, 1165 01:09:17,889 --> 01:09:20,790 epi si ou pase l 'nan fonksyon an jQuery - 1166 01:09:20,790 --> 01:09:24,429 e ankò, yo dwe klè, sa a se yon fonksyon ki rele jQuery - 1167 01:09:24,429 --> 01:09:28,240 ki sa li fè se li retounen ba ou yon vèsyon espesyal nan dokiman 1168 01:09:28,240 --> 01:09:30,700 ki gen fonctionnalités plis asosye ak li. 1169 01:09:30,700 --> 01:09:34,760 Se konsa, nan JavaScript kri pa gen okenn fonksyon pare, 1170 01:09:34,760 --> 01:09:37,810 Men, si ou pase dokiman fonksyon an jQuery an premye, 1171 01:09:37,810 --> 01:09:40,960 li retounen ba ou yon vèsyon espesyal nan objè a dokiman 1172 01:09:40,960 --> 01:09:43,030 ki gen plis karakteristik anpenpan. 1173 01:09:43,030 --> 01:09:48,230 Epi sa a, poukisa moun renmen li. Li jis fè bagay sa yo pi fasil fè, menm jan nou ap sou yo wè. 1174 01:09:48,230 --> 01:09:49,820 Se konsa, sa liy sa a nan kòd vle di? 1175 01:09:49,820 --> 01:09:52,690 Liy sa a nan kòd isit la vle di lè dokiman an se pare - 1176 01:09:52,690 --> 01:09:56,830 nan lòt mo, yon fwa yo fin navigatè a fè lekti sa a tèt dosye jouk anba - 1177 01:09:56,830 --> 01:09:59,200 ale pi devan epi egzekite fonksyon ki anba la a. 1178 01:09:59,200 --> 01:10:03,540 Ki sa ki nan vrèman enteresan nan JavaScript - ak PHP gen sa a kòm byen - 1179 01:10:03,540 --> 01:10:05,450 se fonksyon anonim. 1180 01:10:05,450 --> 01:10:10,560 Nan JavaScript ou ka deklare fonksyon ki pa gen okenn non, men yo fè gen yon kò. 1181 01:10:10,560 --> 01:10:12,570 Avi sa k ap pase isit la. 1182 01:10:12,570 --> 01:10:16,220 >> Sa a se yon fonksyon ki rele pare, ak li jis vle di fè bagay sa yo 1183 01:10:16,220 --> 01:10:20,220 lè paj wèb la antye se pare, lè li nan tout te li nan soti nan sèvè an. 1184 01:10:20,220 --> 01:10:23,090 Ki sa ou vle? Mwen vle egzekite yon ti moso nan kòd. 1185 01:10:23,090 --> 01:10:27,120 Remake ke nou pa vle egzekite sa a kòd touswit. 1186 01:10:27,120 --> 01:10:34,350 Si m 'manke sa a, sa a ta vle di imedyatman kòmanse egzekite liy sa yo nan kòd. 1187 01:10:34,350 --> 01:10:39,040 Men, lefèt ke m ap di pa gen okenn, pa gen okenn, pa gen okenn, vlope sa a nan yon fonksyon anonim tankou sa a 1188 01:10:39,040 --> 01:10:43,000 vle di pa egzekite li ankò; rele li evantyèlman. 1189 01:10:43,000 --> 01:10:45,430 Nou te wè sa a yon ti moman Anons sa pibliye depi nan egzanp anvan fòm nou yo. 1190 01:10:45,430 --> 01:10:49,990 Ki sa ki fonksyon t 'nou rele evantyèlman, 500 milisgond pita? Bat je l. 1191 01:10:49,990 --> 01:10:51,480 Se konsa, lide a menm. 1192 01:10:51,480 --> 01:10:53,950 Yon fwa ankò, menm si sa a sanble yon ti kras etranj, jis pran pou kounye a sou lafwa 1193 01:10:53,950 --> 01:10:57,060 ki deklare yon fonksyon anonim ki yo rele evantyèlman, 1194 01:10:57,060 --> 01:11:01,720 ou tou senpleman ekri fonksyon () { 1195 01:11:01,720 --> 01:11:05,380 Se konsa, sa kòd nou pral egzekite evantyèlman? Sa ki anba la. 1196 01:11:05,380 --> 01:11:10,460 Sa a tou sanble yon nouvo ti kras, men sa vle di isit la nan fonksyon an jQuery, 1197 01:11:10,460 --> 01:11:13,430 ak sa a kounye a se yon chemen kout. 1198 01:11:13,430 --> 01:11:18,830 Sa a brib nan HTML nan fon an nan ekran an nan kou gen kèk reprezantasyon pyebwa. 1199 01:11:18,830 --> 01:11:21,730 Li pa sa a. Paj sa a se pi plis enteresan pase sa hello, egzanp nan lemonn. 1200 01:11:21,730 --> 01:11:25,210 Men, gen nan kèk pye bwa ki koresponn ak sa a HTML. 1201 01:11:25,210 --> 01:11:28,910 Li ta yon doulè nan kou a yo gen aplike kèk kalite fonksyon repetitif 1202 01:11:28,910 --> 01:11:34,380 yo kòmanse nan ne rasin lan e Lè sa a, jwenn ne la ki gen ID se enskripsyon an. 1203 01:11:34,380 --> 01:11:38,340 Se konsa, sa jQuery fè super fasil pou nou se literalman sa a. 1204 01:11:38,340 --> 01:11:43,000 Ale vè lavan epi pou yo jwenn m 'nenpòt sa div oswa fòm kèlkeswa sa, kèlkeswa sa HTML eleman 1205 01:11:43,000 --> 01:11:45,820 an gen yon ID fè enskripsyon an. 1206 01:11:45,820 --> 01:11:52,440 Sa a se ekivalan a document.getElementById ('enskripsyon'). 1207 01:11:52,440 --> 01:11:54,170 >> Poukisa fè moun tankou jQuery? 1208 01:11:54,170 --> 01:12:00,110 Paske li nan pi kout kalite. Men, ki nan tout sa li ye. Li nan lide la menm. 1209 01:12:00,110 --> 01:12:02,630 Jwenn m 'tag la ki gen ID se enskripsyon an. 1210 01:12:02,630 --> 01:12:06,300 Men, lè se ke tag, ki k ap pase yo yon fòm, soumèt, 1211 01:12:06,300 --> 01:12:08,300 ale pi devan epi egzekite sa a kòd. 1212 01:12:08,300 --> 01:12:11,320 Se konsa, kite a pran yon sèl gade kounye a nan ki jan n ap fè validation fòm. 1213 01:12:11,320 --> 01:12:15,950 Sentaks la se Byensir skre an premye, men ki sa k ap pase? 1214 01:12:15,950 --> 01:12:21,050 Si liy sa a nan kòd la se laverite, mwen pral rele nan itilizatè a bay li oswa li adrès imel. 1215 01:12:21,050 --> 01:12:22,970 Se konsa, sa se liy sa a nan kòd? 1216 01:12:22,970 --> 01:12:25,560 $ Vle di jQuery. Koulye a, avi sa a. 1217 01:12:25,560 --> 01:12:27,920 Sa a se kalite tankou CSS. 1218 01:12:27,920 --> 01:12:33,370 Si ou te plonje nan CSS ankò, ou pral konnen ke sa a vle di eleman la ki gen ID se enskripsyon an. 1219 01:12:33,370 --> 01:12:39,840 Espas ki la vle di jwenn yon timoun oswa yon moun fanmi enskripsyon ki gen non se opinyon. 1220 01:12:39,840 --> 01:12:42,970 Lè sa a, bagay sa a nan kare parantèz se yon filtè ti kras. 1221 01:12:42,970 --> 01:12:47,010 E menm si sa a sanble skre, sa a jis vle di ale nan fòm la ki gen ID se enskripsyon yo, 1222 01:12:47,010 --> 01:12:51,230 ale nan andedan kay la eleman D 'de sa ki gen non se email, 1223 01:12:51,230 --> 01:12:55,440 ak Lè sa a, jwenn valè li yo, tou sa valè li k ap pase yo - 1224 01:12:55,440 --> 01:12:59,670 asdf si ki nan tout sa mwen tape oswa malan@harvard.edu si se sa mwen tape. 1225 01:12:59,670 --> 01:13:05,250 Se konsa, si valè ki te nan jaden imel fòm nan == pa gen anyen, rele nan itilizatè a. 1226 01:13:05,250 --> 01:13:09,700 Lòt Bagay si valè a nan jaden an modpas == pa gen anyen, rele nan itilizatè a. 1227 01:13:09,700 --> 01:13:19,520 >> Lòt Bagay si valè a nan jaden an modpas pa egal a valè a nan jaden an konfimasyon, 1228 01:13:19,520 --> 01:13:22,850 ki te eleman ki lòt fòm, rele nan itilizatè a. 1229 01:13:22,850 --> 01:13:25,680 Lè sa a, anfen - ak yon sèl sa a tou gen kèk sentaks nouvo nan pwòp li yo, 1230 01:13:25,680 --> 01:13:29,270 men yon fwa ou te wè li, li nan omwen yon ti kras plis rezonab - 1231 01:13:29,270 --> 01:13:34,060 lòt bagay si fòm lan ki gen ID se enskripsyon an gen yon eleman D 'ki gen non se akò 1232 01:13:34,060 --> 01:13:39,720 e li se tcheke wi, ale pi devan epi rele nan itilizatè a. 1233 01:13:39,720 --> 01:13:42,520 Se konsa, mwen totalman admèt sa a se konplètman akablan nan zye premye. 1234 01:13:42,520 --> 01:13:46,530 Li se yon anpil nan sentaks nouvo. Men, tout nan jQuery swiv sa yo kalite modèl. 1235 01:13:46,530 --> 01:13:49,880 E franchman, mwen pa t 'menm konnen sa a te egziste jiskaske yon kèk minit de sa. 1236 01:13:49,880 --> 01:13:53,640 Mwen Googled, "Ki jan ou fè tcheke si yon toulède kaz tcheke nan jQuery?" 1237 01:13:53,640 --> 01:13:55,680 ak sa a se sentaks a, paske gen nan diferan fason pou fè li 1238 01:13:55,680 --> 01:13:58,010 ak aktyèl kòd kri JavaScript. 1239 01:13:58,010 --> 01:14:01,030 Se konsa, kòm paj la trè premye nan Set Pwoblèm 7 mete aksan sou, 1240 01:14:01,030 --> 01:14:04,500 pset 7 se anpil yon egzèsis nan bootstrapping tèt ou 1241 01:14:04,500 --> 01:14:08,650 kote nou te bay, èspere ke, yon kad konseptyèl ekspresyon ak ki atake pset la. 1242 01:14:08,650 --> 01:14:12,280 >> Men, kòm se souvan ka a ak konsepsyon sit entènèt, li la jiska ou reyèlman pike alantou li, 1243 01:14:12,280 --> 01:14:16,680 enkòpore koupe de kòd ak egzanp nan sit entènèt la pou lontan ke ou site yo 1244 01:14:16,680 --> 01:14:17,960 pou chak tèm yo sou sa fèy an premye, 1245 01:14:17,960 --> 01:14:21,460 ak reyalize ke aprann HTML, CSS, JavaScript ak menm SQL 1246 01:14:21,460 --> 01:14:26,020 se vrèman vle di yo dwe sa a fè egzèsis nan kay kòm nou kòmanse pran sa yo wou fòmasyon an. 1247 01:14:26,020 --> 01:14:29,150 Ak reyalize twò gen nan anpil plis bagay ou ka fè ak yon navigatè. 1248 01:14:29,150 --> 01:14:33,790 Anndan nan pi fò nan eleman sa yo gen bagay lòt te rele pòtè evènman. 1249 01:14:33,790 --> 01:14:37,140 E menm si nou jis gade sa yo rele onsubmit ak onready, 1250 01:14:37,140 --> 01:14:40,310 ou ka fè bagay sa yo tankou onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 renmen lè itilizatè a manyen yon kle, ou ka koute pou sa ak moute kle. 1252 01:14:43,410 --> 01:14:45,940 Gmail gen rakoursi klavye. 1253 01:14:45,940 --> 01:14:49,490 Kouman fè Google aplike rakoursi klavye tankou C pou konpoze? 1254 01:14:49,490 --> 01:14:54,120 Yo koute pou evènman, menm jan yo ap rele, tankou onkeypress oswa onkeyup ak onkeydown. 1255 01:14:54,120 --> 01:14:56,360 Si ou janm plane sourit ou sou kèk opsyon meni 1256 01:14:56,360 --> 01:15:00,180 ak tout nan yon toudenkou vwala,, yon meni parèt oswa koulè a ​​grafik chanjman, 1257 01:15:00,180 --> 01:15:01,920 ki jan yo ap fè sa? 1258 01:15:01,920 --> 01:15:06,940 Olye de koute pou onready oswa onsubmit, ou koute pou onmouseover oswa onmouzawt. 1259 01:15:06,940 --> 01:15:10,920 >> Se konsa, nan kout, ak sa yo Basics trè senp ki nou te fèk kòmanse fè grate sifas la nan jounen jodi a 1260 01:15:10,920 --> 01:15:13,940 epi n ap plonje nan plis nan Mèkredi, ou gen, de pli zan pli, 1261 01:15:13,940 --> 01:15:17,530 pouvwa a aplike kalite ki nan bagay sa yo ke ou se deja abitye avèk yo. 1262 01:15:17,530 --> 01:15:21,620 Se konsa, kite a fini la, epi n ap kontinye sa a nan Mèkredi. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]