1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH Blumberg: Hi everyone. 3 00:00:07,030 --> 00:00:09,530 Ne jemi duke shkuar për të marrë filluar vetëm disa minuta në fillim 4 00:00:09,530 --> 00:00:11,738 pasi ne kemi një të tërë shumë e materialit të depërtonte. 5 00:00:11,738 --> 00:00:12,790 Unë jam Hannah. 6 00:00:12,790 --> 00:00:13,865 Unë jam një TF. 7 00:00:13,865 --> 00:00:16,239 Maria do të jetë bashkuar na në vetëm disa minuta. 8 00:00:16,239 --> 00:00:17,560 Ajo mëson seksionin e drejtë përpara. 9 00:00:17,560 --> 00:00:19,351 Unë mësoj drejtë seksion pas, kështu që ne jemi duke shkuar 10 00:00:19,351 --> 00:00:21,200 për ta mbajtur atë në orë e gjysmë. 11 00:00:21,200 --> 00:00:25,490 >> Pra, si ju do të shihni këtu, ne kemi mjaft të disa tema ne kemi nevojë për të marrë me, 12 00:00:25,490 --> 00:00:27,200 kështu që ne do të shkojnë pak shpejt. 13 00:00:27,200 --> 00:00:31,140 Por në qoftë se në çdo pikë të themi diçka shumë shpejt apo ju nuk e kuptoni, 14 00:00:31,140 --> 00:00:33,170 të ndjehen të lirë për të ndërprerë me pyetje. 15 00:00:33,170 --> 00:00:36,610 Ne duam që të jenë në gjendje për të bërë këtë një shqyrtojë seancë si të dobishme për të gjithë ju 16 00:00:36,610 --> 00:00:37,973 të jetë e mundur. 17 00:00:37,973 --> 00:00:38,920 Mbresëlënës. 18 00:00:38,920 --> 00:00:41,650 >> Pra, le të kërcej të drejtë në me disa tema që ne në fakt 19 00:00:41,650 --> 00:00:46,980 shumë, i mbuluar shkurtimisht për Quiz 0 në seancën e quiz 0. 20 00:00:46,980 --> 00:00:48,840 Pra, duke filluar me listat e lidhura. 21 00:00:48,840 --> 00:00:52,090 Pra, vetëm sigurohuni që ju keni disa njohuri themelore në lidhje me listat e lidhura 22 00:00:52,090 --> 00:00:55,110 dhe janë të rehatshme duke bërë disa operacioneve bazike. 23 00:00:55,110 --> 00:00:58,560 >> Pra, vetëm për të rishikuar, i lidhur Listat janë më mirë se vargjeve 24 00:00:58,560 --> 00:01:01,020 sepse ata mund të rritet në mënyrë dinamike. 25 00:01:01,020 --> 00:01:03,300 Pra, ne kemi këtë avantazh të madh. 26 00:01:03,300 --> 00:01:06,031 Ne kemi parë ato të përdorura në tabelat hash kur ne 27 00:01:06,031 --> 00:01:08,280 nuk e di saktësisht se sa gjëra që jeni do të duan 28 00:01:08,280 --> 00:01:10,900 për të futur në strukturën e të dhënave tona. 29 00:01:10,900 --> 00:01:15,700 Për fat të keq, ne kemi copa të lista e lidhur të gjithë kujtesën, 30 00:01:15,700 --> 00:01:20,820 kështu që ne nuk do të jetë domosdoshmërisht në gjendje të bëjë qasje në kohë të vazhdueshme 31 00:01:20,820 --> 00:01:22,502 për çdo element në listën e lidhur. 32 00:01:22,502 --> 00:01:24,210 Në mënyrë që të gjeni një element të veçantë, ne 33 00:01:24,210 --> 00:01:26,510 duhet të iterate gjitha rruga nga fillimi. 34 00:01:26,510 --> 00:01:30,610 Pra, mbani në mend se shumica e Operacionet themelore janë omega e 1. 35 00:01:30,610 --> 00:01:32,130 Pra, insert është vetëm do të marrë 1. 36 00:01:32,130 --> 00:01:37,520 Fshij do të marrë n që nga ne duhet të shkoj të gjetur atë nga lista. 37 00:01:37,520 --> 00:01:39,260 Dhe kërko mund të marrë, në më të keq, n. 38 00:01:39,260 --> 00:01:42,330 Ne nuk mund të bëjmë diçka si kërko binar në një listë të lidhur 39 00:01:42,330 --> 00:01:45,101 pasi ne nuk mund vetëm rastësisht të hidhen në mes. 40 00:01:45,101 --> 00:01:45,600 Ftohtë. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 Mbresëlënës. 43 00:01:48,960 --> 00:01:50,270 >> A pak e oxhaqet. 44 00:01:50,270 --> 00:01:53,980 Kjo, përsëri, doli në quiz 0, kështu që ju duhet të jenë super të rehatshme me të. 45 00:01:53,980 --> 00:01:57,210 Por për oxhaqet, ne ju kërkojmë për të kujtuar një pirg të tabaka. 46 00:01:57,210 --> 00:01:59,940 Dhe ajo do të jetë i pari në, të fundit jashtë. 47 00:01:59,940 --> 00:02:02,272 Pra, ne rafte gjërat në pirg, dhe pastaj 48 00:02:02,272 --> 00:02:04,980 në qoftë se ne jemi duke u përpjekur për të marrë diçka off-- që ne e quajmë popping jashtë 49 00:02:04,980 --> 00:02:06,581 stack-- kemi ardhur pjesa e sipërme. 50 00:02:06,581 --> 00:02:09,289 Dhe në qoftë se ne duam të vënë diçka në rafte, ne e quajmë atë shtyjnë. 51 00:02:09,289 --> 00:02:13,170 Pra, ajo është gjithmonë do të jetë në rritje deri nga thellësia si një pirg e tabaka. 52 00:02:13,170 --> 00:02:14,540 Mbresëlënës. 53 00:02:14,540 --> 00:02:17,607 >> Ne kemi zbatuar oxhaqet parë me të dy listat e lidhura dhe vargjeve. 54 00:02:17,607 --> 00:02:19,440 Nëse jeni të zbatimit me vargjeve, ju doni 55 00:02:19,440 --> 00:02:22,350 për t'u siguruar që të mbajnë gjurmët e të dyja përmasat dhe kapaciteti. 56 00:02:22,350 --> 00:02:27,540 Pra, madhësia do të jetë aktuale numër i gjërave në rafte tuaj, 57 00:02:27,540 --> 00:02:32,900 ndërsa kapaciteti është numri i përgjithshëm të gjërave që ju mund të ruajë në rafte tuaj. 58 00:02:32,900 --> 00:02:34,220 Ftohtë. 59 00:02:34,220 --> 00:02:35,767 >> Shumë të ngjashme, ne kemi rradhë. 60 00:02:35,767 --> 00:02:38,850 Në këtë rast, në vend të të menduarit në lidhje një pirg e tabaka, mendojnë për një linjë. 61 00:02:38,850 --> 00:02:40,697 Kjo do të jetë i pari në, së pari jashtë. 62 00:02:40,697 --> 00:02:42,780 Pra, nëse ju jeni rreshtuar për diçka në dyqan, 63 00:02:42,780 --> 00:02:46,920 ne shpresojmë se personi i parë në Linja do të jenë të ndihmuar së pari. 64 00:02:46,920 --> 00:02:49,350 >> Në vend të thënë shtytje dhe pop si të bëjmë për rafte, 65 00:02:49,350 --> 00:02:52,000 ne vetëm themi enqueue dhe dequeue. 66 00:02:52,000 --> 00:02:54,970 Dhe përsëri, në qoftë se ju jeni zbatimin e kjo me një grup, 67 00:02:54,970 --> 00:02:56,720 ne kemi nevojë për të mbajtur nën kontroll e jo vetëm madhësinë 68 00:02:56,720 --> 00:03:02,390 dhe kapaciteti, por edhe koka, që do të jetë e përparme e radhë sonë. 69 00:03:02,390 --> 00:03:03,010 Ftohtë. 70 00:03:03,010 --> 00:03:05,770 Çdo pyetje në ndonjë nga se? 71 00:03:05,770 --> 00:03:06,320 Mbresëlënës. 72 00:03:06,320 --> 00:03:07,640 Moving drejtë së bashku. 73 00:03:07,640 --> 00:03:08,564 >> OK, tavolina hash. 74 00:03:08,564 --> 00:03:10,605 Ja ku ai fillon të të marrë me të vërtetë interesante. 75 00:03:10,605 --> 00:03:14,150 Pra, një tabelë hash është një zbatim e një grup asociative. 76 00:03:14,150 --> 00:03:16,700 Pra, në thelb ajo që ka ndodhur po ne kemi gjithë këtë kontribut, 77 00:03:16,700 --> 00:03:18,750 dhe ne ju japim atë në një hash funksion i cili thotë: 78 00:03:18,750 --> 00:03:21,840 OK, kjo është ajo ku në tabelë hash ajo i përket. 79 00:03:21,840 --> 00:03:24,860 >> Kështu funksion të thjeshtë hash që ne kemi parë është vetëm duke thënë: 80 00:03:24,860 --> 00:03:28,170 OK, mendoj që ne duam të vënë vargjet në tryezën tonë hash. 81 00:03:28,170 --> 00:03:30,870 Dhe një ide të vërtetë të thjeshtë mund të jetë për të thënë, OK, 82 00:03:30,870 --> 00:03:34,350 le të vetëm të lloj nga Letra e parë e fjalës. 83 00:03:34,350 --> 00:03:37,570 Kështu që ju mund të shihni këtu, kemi marrë banane, ne kemi vënë atë nëpërmjet një funksion hash, 84 00:03:37,570 --> 00:03:40,190 dhe ai thotë, hej, se duhet të shkojnë në indeksin 1. 85 00:03:40,190 --> 00:03:45,120 >> Pra, ne mund të thelb të mendoj për një hash tavolinë si një bandë e kova të ndryshme. 86 00:03:45,120 --> 00:03:49,880 Dhe secili prej këtyre kova po shkon për të mbajtur kokën e një listë të lidhura. 87 00:03:49,880 --> 00:03:55,030 Dhe në këtë listë të lidhura është ku ne mund të në fakt të vënë pjesë të ndryshme të të dhënave. 88 00:03:55,030 --> 00:03:57,820 >> Pra, zhytje pak më shumë në një funksion hash, këtu është 89 00:03:57,820 --> 00:03:59,870 shembulli I vetëm përshkroi ku ne vetëm të thonë: 90 00:03:59,870 --> 00:04:02,460 OK, të marrë shkronjën e parë i fjalës dhe ne jemi 91 00:04:02,460 --> 00:04:03,990 duke shkuar për të zgjidhur atë në kova. 92 00:04:03,990 --> 00:04:08,490 Pra me sa duket, nuk do të jetë 26 kova, një për çdo letër e alfabetit. 93 00:04:08,490 --> 00:04:10,090 Pse nuk është ky një funksion i madh hash? 94 00:04:10,090 --> 00:04:13,461 Çfarë e bën këtë jo-ideal? 95 00:04:13,461 --> 00:04:13,960 Po. 96 00:04:13,960 --> 00:04:15,790 >> Audienca: Ju do të jeni të ketë goditjet. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH Blumberg: Po, pikërisht. 98 00:04:16,390 --> 00:04:18,000 Ju jeni do të ketë goditjet. 99 00:04:18,000 --> 00:04:18,954 Pra, kjo është një gjë. 100 00:04:18,954 --> 00:04:21,620 Dhe ne do të flasim rreth asaj se si ne mund të fix goditjet në vetëm një të dytë. 101 00:04:21,620 --> 00:04:23,980 Një tjetër problem me këtë Funksioni i veçantë hash 102 00:04:23,980 --> 00:04:25,980 është se ndryshe ynë kova do të jetë 103 00:04:25,980 --> 00:04:28,960 madhësive të mjaft në mënyrë drastike të ndryshme. 104 00:04:28,960 --> 00:04:33,840 >> Ne e dimë se ka një tërësi shumë më shumë fjalë që fillojnë me A se X, 105 00:04:33,840 --> 00:04:38,980 kështu që ne do të kemi shumë kova pabalancuar në tryezën tonë hash. 106 00:04:38,980 --> 00:04:40,050 Ftohtë. 107 00:04:40,050 --> 00:04:41,340 Pra, vërtet, le të kthehemi në pika e përplasjeve. 108 00:04:41,340 --> 00:04:42,900 Çfarë të bëjmë nëse ka një përplasje? 109 00:04:42,900 --> 00:04:44,490 >> Ne kemi një çift opsione të ndryshme. 110 00:04:44,490 --> 00:04:47,600 Pra, një, kështu që mendoj që ne jemi duke u përpjekur për të vënë kokrra të kuqe në tryezën tonë hash. 111 00:04:47,600 --> 00:04:50,370 Dhe ne shohim, oh, ne duam për ta vënë atë në listën 1, 112 00:04:50,370 --> 00:04:52,070 por banane tashmë jeton atje. 113 00:04:52,070 --> 00:04:53,110 Çfarë do të shkojmë për të bërë? 114 00:04:53,110 --> 00:04:54,560 Ne kemi dy opsione kryesore. 115 00:04:54,560 --> 00:04:58,050 >> Numër një është që ne mund të themi, OK, nuk ka vend në indeksin 1, 116 00:04:58,050 --> 00:05:03,210 por le të vetëm të vazhdoni të kërkoni përmes deri sa ne mund të gjeni një tjetër vend të hapur. 117 00:05:03,210 --> 00:05:08,490 Pra, ne do të themi, OK, le të vënë atë në vend të 3. 118 00:05:08,490 --> 00:05:09,240 Kjo është një opsion. 119 00:05:09,240 --> 00:05:11,470 Kjo është quajtur linear probing. 120 00:05:11,470 --> 00:05:15,500 >> Dhe një opsion i dytë është duke thënë, OK, mirë, le të vetëm të bëjë secili prej këtyre kova 121 00:05:15,500 --> 00:05:17,470 të jenë krerët e listave të lidhura. 122 00:05:17,470 --> 00:05:21,910 Dhe kjo është në rregull në qoftë se ka më shumë se një gjë në një kovë. 123 00:05:21,910 --> 00:05:23,820 Ne jemi vetëm duke shkuar për append atë mbi pjesën e përparme. 124 00:05:23,820 --> 00:05:26,032 Kështu që këtu ju mund të shihni, OK, kur futet Berry, ne 125 00:05:26,032 --> 00:05:28,240 vetëm mori banane, lloj i e shtyu atë mbi pak 126 00:05:28,240 --> 00:05:29,842 dhe hodhi një kokrra të kuqe në atje. 127 00:05:29,842 --> 00:05:31,050 Dhe kjo është gjithashtu krejtësisht në rregull. 128 00:05:31,050 --> 00:05:32,830 Kjo quhet chaining veçantë. 129 00:05:32,830 --> 00:05:38,100 Ju mund të mendoj për këtë si lloj i si një grup i krerëve të listave të lidhura. 130 00:05:38,100 --> 00:05:41,950 Çdo pyetje mbi hash tavolina, funksionet hash? 131 00:05:41,950 --> 00:05:44,290 Mbresëlënës. 132 00:05:44,290 --> 00:05:45,470 >> Pemë dhe mundohet. 133 00:05:45,470 --> 00:05:47,287 Pra, një pemë është çdo lloj e strukturës së të dhënave 134 00:05:47,287 --> 00:05:49,453 në të cilën ka disa lloj e hierarkisë ose disa lloj 135 00:05:49,453 --> 00:05:51,247 të rangut të objekteve tuaja të ndryshme. 136 00:05:51,247 --> 00:05:53,580 Dhe kjo do të bëhet super qartë kur ne shohim një shembull. 137 00:05:53,580 --> 00:05:56,960 Dhe ne pamë tentativa bashku me tavolina hash, në pset5-- 138 00:05:56,960 --> 00:06:00,700 e cila, përsëri, lojë krejtësisht të ndershme për këtë quiz-- si një tjetër dhënave 139 00:06:00,700 --> 00:06:03,110 struktura që ne mund dyqan gjëra të ndryshme. 140 00:06:03,110 --> 00:06:06,782 Ne rastin e fjalor, ne ruhet një bandë e fjalëve. 141 00:06:06,782 --> 00:06:08,240 Pra, le të marrin një vështrim në disa pemë. 142 00:06:08,240 --> 00:06:10,190 Pra, ky është një shembull i një pemë. 143 00:06:10,190 --> 00:06:13,105 Ajo ka një lloj strukture, kjo strukturë hierarkike, 144 00:06:13,105 --> 00:06:15,920 ku ju mund të shihni se kjo 1 nyje në krye 145 00:06:15,920 --> 00:06:20,750 ka një lloj të rangut të lart 2 dhe 3, të cilat janë më sipër 4, 5, 6 dhe 7, 146 00:06:20,750 --> 00:06:22,860 të cilat janë mbi 8 dhe 9. 147 00:06:22,860 --> 00:06:25,210 Pra, kjo është e gjitha ne do të thotë nga një pemë, kështu që ju mund vetëm lloj 148 00:06:25,210 --> 00:06:26,660 e kjo foto në kokën tuaj. 149 00:06:26,660 --> 00:06:29,050 >> Tani, ne kemi një çift të Pemët më të specializuara. 150 00:06:29,050 --> 00:06:31,070 Pra, një shembull është një pemë binare. 151 00:06:31,070 --> 00:06:33,290 Dhe një pemë binare është, përsëri, vetëm do të jetë 152 00:06:33,290 --> 00:06:37,040 një strukturë e të dhënave me një lloj të hierarki, por secili prej nyjeve 153 00:06:37,040 --> 00:06:38,650 mund të ketë më së shumti dy fëmijë. 154 00:06:38,650 --> 00:06:41,530 Kjo është ku fjala binar vjen nga. 155 00:06:41,530 --> 00:06:43,410 Pra, ky është një shembull i një pemë binare. 156 00:06:43,410 --> 00:06:45,720 Pra, kjo është një kategori e vogël e pemëve. 157 00:06:45,720 --> 00:06:48,960 >> Tani le të merrni edhe më specifike dhe flasim për kërkimin binar binar trees-- 158 00:06:48,960 --> 00:06:51,310 pemëve, në vend. 159 00:06:51,310 --> 00:06:56,430 Kështu që këtu ideja është jo vetëm që e bën çdo nyje kanë në shumicën e dy fëmijëve, 160 00:06:56,430 --> 00:07:00,300 por të gjithë fëmijët në e majtë do të jetë më i vogël 161 00:07:00,300 --> 00:07:03,450 dhe të gjithë fëmijët në e drejta do të jetë më e madhe. 162 00:07:03,450 --> 00:07:05,890 Pra njoftim vetëm tonë pemë binare, ka 163 00:07:05,890 --> 00:07:08,650 nuk ka marrëdhënie ndërmjet numrave. 164 00:07:08,650 --> 00:07:12,990 Por, në kërkimin tonë binar dru, ne shohim, OK, këtu është 44. 165 00:07:12,990 --> 00:07:17,080 Dhe çdo numër në të majtë të 44 është çdo gjë më të vogla dhe në të djathtë 166 00:07:17,080 --> 00:07:17,920 është më e madhe. 167 00:07:17,920 --> 00:07:20,130 >> Dhe që mban në çdo Niveli i pemës. 168 00:07:20,130 --> 00:07:24,810 Kështu që këtu, ky është më i vogël se 22 dhe kjo është më e madhe se 22. 169 00:07:24,810 --> 00:07:26,390 Dhe kjo është pema e kërkimit binare. 170 00:07:26,390 --> 00:07:28,900 Pse ne mendojmë se është quajtur një pemë binare e kërkimit? 171 00:07:28,900 --> 00:07:30,651 Çfarë algorithm e bën atë të ju kujtoj të? 172 00:07:30,651 --> 00:07:31,650 Audienca: kërko Binary. 173 00:07:31,650 --> 00:07:32,480 HANNAH Blumberg: kërko Binary. 174 00:07:32,480 --> 00:07:35,150 Sepse në qoftë se ju jeni në kërkim për një Numri i veçantë në këtë pemë, 175 00:07:35,150 --> 00:07:38,800 në çdo pikë, ju vetëm mund të trokas gjysma off nga pema, e cila është e madhe. 176 00:07:38,800 --> 00:07:43,800 Dhe kështu që do të na japë diçka që duket shumë si kërkim binar. 177 00:07:43,800 --> 00:07:45,870 Ndonje pyetje? 178 00:07:45,870 --> 00:07:47,570 Të gjithë të drejtë, të ftohtë. 179 00:07:47,570 --> 00:07:48,560 >> Të gjithë të drejtë, përpiqet. 180 00:07:48,560 --> 00:07:49,657 Gjithkush e preferuar. 181 00:07:49,657 --> 00:07:51,990 Pra, ky është shembulli që ne kemi parë një bandë në klasë. 182 00:07:51,990 --> 00:07:54,710 Dhe përsëri, kjo është vetëm një tjetër mënyrë që ne mund të ruajë të dhënat. 183 00:07:54,710 --> 00:07:57,530 Në rastin e fjalor, përsëri, kjo është vetëm do të jetë vargjet. 184 00:07:57,530 --> 00:08:00,870 Pra, le të shohim se çfarë kjo në fakt duket si në një nivel pak më të ulët. 185 00:08:00,870 --> 00:08:03,690 >> Pra, le të marrin një vështrim në një nyje në një Trie. 186 00:08:03,690 --> 00:08:07,532 Dhe ne shohim, OK, nuk po ndodh të jetë një Boolean dhe një nyje, 187 00:08:07,532 --> 00:08:09,170 një tregues për një nyje. 188 00:08:09,170 --> 00:08:11,400 Dhe ne shohim se Boolean quhet is_word. 189 00:08:11,400 --> 00:08:13,490 Pra, në thelb, kjo është do të korrespondojnë 190 00:08:13,490 --> 00:08:16,750 këtyre trekëndëshat të vogla të cilat thotë se, në qoftë se ju keni marrë këtu, 191 00:08:16,750 --> 00:08:19,100 ju keni gjetur një fjalë të plotë. 192 00:08:19,100 --> 00:08:23,670 >> Ne e dimë se "Turing" mbi këtu është një fjalë e plotë, 193 00:08:23,670 --> 00:08:28,030 ndërsa vetëm T-U-R nuk është një fjalë sepse ne nuk shohim se Delta pak. 194 00:08:28,030 --> 00:08:31,440 Dhe kjo delta pak, përsëri, korrespondon me këtë is_word, 195 00:08:31,440 --> 00:08:34,480 kjo is_word Boolean. 196 00:08:34,480 --> 00:08:36,320 Dhe pastaj ne kemi një grup të fëmijëve. 197 00:08:36,320 --> 00:08:39,860 Pra, në çdo nivel, ju kanë një nyje të veçantë, 198 00:08:39,860 --> 00:08:42,470 dhe që pikat nyje në një grup i tërë alfabetit. 199 00:08:42,470 --> 00:08:44,346 >> Kështu që ju mund të shihni, përsëri, në këtë picture-- Jam 200 00:08:44,346 --> 00:08:48,170 do të mbajë hedhur prapa dhe forth-- se kjo grup në krye 201 00:08:48,170 --> 00:08:51,640 ka një bandë e ndryshme nyjet vijnë off of it. 202 00:08:51,640 --> 00:08:57,140 Ajo ka 26, ose 27 nëse doni për të përfshirë një karakter ekstra. 203 00:08:57,140 --> 00:09:01,320 Dhe kjo na jep një mënyrë për të ruajtur të dhënat tona 204 00:09:01,320 --> 00:09:04,450 në një mënyrë që mund të shikohen në që ju mund të kërkoni super të shpejtë. 205 00:09:04,450 --> 00:09:06,650 Çfarë është lookup koha për një Trie? 206 00:09:06,650 --> 00:09:07,970 >> Audienca: [padëgjueshme]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH Blumberg: Po. 208 00:09:08,300 --> 00:09:09,550 Në teori, kjo është koha konstante. 209 00:09:09,550 --> 00:09:13,230 Kjo vetëm do të jetë madhësia e fjala që ju doni të kërkoni. 210 00:09:13,230 --> 00:09:15,950 Edhe në qoftë se ne shtoni një miliona më shumë fjalë për Trie tonë, 211 00:09:15,950 --> 00:09:18,160 kjo nuk do të na më gjatë për të përcaktuar 212 00:09:18,160 --> 00:09:19,690 në qoftë se një fjalë e dhënë është në Trie. 213 00:09:19,690 --> 00:09:21,412 Pra, kjo është vërtetë e bukur. 214 00:09:21,412 --> 00:09:23,697 >> Audienca: A ju vetëm nisja se array? 215 00:09:23,697 --> 00:09:24,780 Keni humbur një pikë ose dy. 216 00:09:24,780 --> 00:09:26,130 Vetëm mund të flasim për se për një të dytë? 217 00:09:26,130 --> 00:09:26,680 >> HANNAH Blumberg: Sigurisht, absolutisht. 218 00:09:26,680 --> 00:09:27,590 Pyetje e mirë. 219 00:09:27,590 --> 00:09:31,140 Pyetja ishte, ne kanë një rrjet që është 220 00:09:31,140 --> 00:09:34,180 do të ketë yll nyje si në krahasim me vetëm nyje, e drejtë? 221 00:09:34,180 --> 00:09:35,180 Ftohtë. 222 00:09:35,180 --> 00:09:37,990 Kështu që këtu ajo që ne jemi duke thënë është array tonë është vetëm 223 00:09:37,990 --> 00:09:40,035 do të jetë pointers në vargjeve të tjera. 224 00:09:40,035 --> 00:09:42,910 Pra, kjo është essentially-- atë lloj ndjehet si një listë e lidhur në këtë mënyrë 225 00:09:42,910 --> 00:09:46,620 ku secili prej këtyre fëmijëve vetëm pikë në nyjen e ardhshëm. 226 00:09:46,620 --> 00:09:49,030 >> Dhe mënyra që ne në fakt të përcaktojë, hej, OK, 227 00:09:49,030 --> 00:09:52,320 ne kemi përsëritur përmes një të tërë Fjala, është kjo fjalë në fjalor, 228 00:09:52,320 --> 00:09:54,476 ne vetëm kontrolluar këtë is_word. 229 00:09:54,476 --> 00:09:55,100 Pyetje e madhe. 230 00:09:55,100 --> 00:09:55,675 Po. 231 00:09:55,675 --> 00:09:56,216 Audienca: OK. 232 00:09:56,216 --> 00:09:57,470 Pra, çfarë ishte runtime për Trie? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH Blumberg: Sigurisht. 234 00:09:58,386 --> 00:10:01,852 Pra, në kohën e duhur për një Trie për lookup do të jetë kohë konstante. 235 00:10:01,852 --> 00:10:04,310 Pra, kjo është vetëm do të jetë Numri i shkronjave në fjalë. 236 00:10:04,310 --> 00:10:06,310 Kjo nuk është e varur mbi Madhësia e fjalor 237 00:10:06,310 --> 00:10:09,510 ose madhësia e strukturës së të dhënave. 238 00:10:09,510 --> 00:10:12,170 Kështu që këtu është një shembull i thjeshtë pak. 239 00:10:12,170 --> 00:10:15,430 >> Në këtë rast, ju mund të shihni se fjala bat është në fjalor 240 00:10:15,430 --> 00:10:18,900 dhe ju keni zoom, por ju nuk kanë diçka si kopshtin zoologjik. 241 00:10:18,900 --> 00:10:20,050 Si do ta bëjmë kopsht zoologjik? 242 00:10:20,050 --> 00:10:24,276 Si nuk kemi të shtoni kopsht zoologjik në tonë fjalor, të Trie tonë? 243 00:10:24,276 --> 00:10:24,776 Po. 244 00:10:24,776 --> 00:10:27,014 >> Audienca: Bëni is_word e vërtetë për [e padëgjueshme]. 245 00:10:27,014 --> 00:10:27,930 HANNAH Blumberg: Mirë. 246 00:10:27,930 --> 00:10:31,731 Pra, ne do të themi Z-O-O, dhe pastaj ne do të dëshironi të kontrolloni jashtë atë kuti si. 247 00:10:31,731 --> 00:10:32,230 I madh. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Le të krahasojmë shumë pak kohë përpiqet kundrejt tavolina hash. 250 00:10:37,930 --> 00:10:39,770 Mundohet janë me të vërtetë e madhe sepse, siç kemi thënë, 251 00:10:39,770 --> 00:10:41,610 ato ofrojnë në kohë konstante lookup. 252 00:10:41,610 --> 00:10:44,285 Por disavantazhi i madh është se ata janë humongous. 253 00:10:44,285 --> 00:10:46,160 Ju mund të merrni kuptim, edhe duke shikuar në të, 254 00:10:46,160 --> 00:10:48,454 se ajo do të marrë një sasi të madhe të kujtesës. 255 00:10:48,454 --> 00:10:50,620 Pra, ata do të jetë shumë më e madhe se tavolina hash, 256 00:10:50,620 --> 00:10:52,270 por ata do të japin na kohët shumë më të shpejtë lookup. 257 00:10:52,270 --> 00:10:54,478 Pra, kjo është lloj i juaj tradeoff, çfarë ju intereson, 258 00:10:54,478 --> 00:10:57,350 nëse kjo është shpejtësi apo kujtesës. 259 00:10:57,350 --> 00:11:02,251 Çdo pyetje në ndonjë nga se, të gjitha strukturave të C dhënave. 260 00:11:02,251 --> 00:11:02,750 Bukur. 261 00:11:02,750 --> 00:11:03,250 NE RREGULL. 262 00:11:03,250 --> 00:11:07,322 Ne jemi duke shkuar për të lëvizur për pak bit e zhvillimin e web me Maria. 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA: bukuroshe. 264 00:11:08,280 --> 00:11:09,036 NE RREGULL. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH Blumberg: Ju mund të përdorni laptop tim. 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: Bukur. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK, i ftohtë. 269 00:11:14,912 --> 00:11:17,120 Si ne shkojmë tani në web zhvillimit, ne biseduam pak 270 00:11:17,120 --> 00:11:20,680 në lidhje me ndryshimin e lejeve e dosjeve dhe directories 271 00:11:20,680 --> 00:11:24,190 në mënyrë që ato mund të jenë të arritshme përdoruesve të tjerë, në botë, 272 00:11:24,190 --> 00:11:28,640 dhe kështu që ne mund të shohim se si në thelb ne mund të përcjellë ato 273 00:11:28,640 --> 00:11:32,600 kur ne zhvillojmë gjëra të tilla si faqet e internetit se ne kemi qenë kryesisht duke bërë. 274 00:11:32,600 --> 00:11:36,400 >> Pra, ne pamë komandën chmod, cila është mënyra ndryshim, në thelb. 275 00:11:36,400 --> 00:11:39,300 Kjo është një komandë Linux dhe ajo ndryshon drejtat e hyrjes 276 00:11:39,300 --> 00:11:40,410 e objekteve skedar të sistemit. 277 00:11:40,410 --> 00:11:43,370 Dhe një objekt skedar sistemi është vetëm një directory, një fotografi, 278 00:11:43,370 --> 00:11:46,810 çdo gjë që ju mund të të ndryshojë lejet e. 279 00:11:46,810 --> 00:11:53,750 >> Pra, për të parë lejet fotografi, ne shkruani komandën ls, listë, -L. 280 00:11:53,750 --> 00:11:56,500 Dhe kur shkruani se, ne zakonisht shoh disa leje 281 00:11:56,500 --> 00:11:59,660 që duken lloj i si kjo para një emër directory. 282 00:11:59,660 --> 00:12:01,260 Pra, d referohet directory. 283 00:12:01,260 --> 00:12:05,930 Dhe pastaj ne kemi tre triads që në thelb 284 00:12:05,930 --> 00:12:11,675 referohen lejet e as një përdorues, një grup, apo bota. 285 00:12:11,675 --> 00:12:16,490 >> Llojet e lejeve që ne mund kanë për këto tri grupe të njerëzve 286 00:12:16,490 --> 00:12:20,830 janë ose r për të lexuar, w për shkruaj, dhe x për të ekzekutuar. 287 00:12:20,830 --> 00:12:23,650 Dhe ne mund të kemi ato për grupi dhe bota si. 288 00:12:23,650 --> 00:12:26,940 Gjë e ndërlikuar është se ndonjëherë kur shtypni komandën chmod, 289 00:12:26,940 --> 00:12:32,960 ne do të shkruani disa numrin që përbëhej nga tre bit. 290 00:12:32,960 --> 00:12:36,990 Pra, ne mund të bëjmë si 777 dhe që në thelb 291 00:12:36,990 --> 00:12:40,450 referuar vlerën e shtuar e secilit prej këtyre triads 292 00:12:40,450 --> 00:12:45,060 për shkak r do referohen 4, w do referohen 2, dhe x do referohen 1, 293 00:12:45,060 --> 00:12:50,020 kështu që kur shtuar lart, secila nga numrat do të zbresë në një numër kumulative 294 00:12:50,020 --> 00:12:52,750 në një vlerë kumulative midis 0 dhe 7. 295 00:12:52,750 --> 00:12:55,150 Pra, ne mund të kemi 0 për asnjë leje fare. 296 00:12:55,150 --> 00:12:58,200 Dhe që në thelb do të na japë lejet për të dyja përdoruesit, 297 00:12:58,200 --> 00:13:00,450 grupi, apo bota. 298 00:13:00,450 --> 00:13:02,620 Çdo pyetje mbi këtë deri më tani? 299 00:13:02,620 --> 00:13:05,331 >> Audienca: Ju thatë lexuar ishte 4? 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA: Po. 301 00:13:06,164 --> 00:13:07,568 Audienca: [padëgjueshme]. 302 00:13:07,568 --> 00:13:08,504 HANNAH Blumberg: Yup. 303 00:13:08,504 --> 00:13:11,790 Audienca: Dhe pastaj duke shtuar të gjithë atyre të tjerët do të tregojnë numrin tuaj. 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA: Po. 305 00:13:12,665 --> 00:13:14,970 Po. 306 00:13:14,970 --> 00:13:17,810 Këto janë pyetje të mëdha. 307 00:13:17,810 --> 00:13:20,490 Bukuroshe. 308 00:13:20,490 --> 00:13:25,340 Tjetra, ne u hodh në HTML dhe një pak më shumë në lidhje me zhvillimin e web. 309 00:13:25,340 --> 00:13:27,990 Pra HTML thjesht do të thotë HyperText Markup Language. 310 00:13:27,990 --> 00:13:30,460 Dhe kjo është markup gjuhë që është një standard 311 00:13:30,460 --> 00:13:32,720 se ajo është përdorur për të krijuar faqe web. 312 00:13:32,720 --> 00:13:35,750 >> Është quajtur një gjuhë markup për shkak se ajo nuk është përpiluar në fakt. 313 00:13:35,750 --> 00:13:40,310 Ajo nuk thotë se si disa kod duhet të ekzekutohet ose diçka të tillë. 314 00:13:40,310 --> 00:13:44,800 Ajo vetëm përcakton dhe përshkruan se si një web 315 00:13:44,800 --> 00:13:46,840 faqe duhet të jetë ngritur me secilën prej elementeve të tij 316 00:13:46,840 --> 00:13:48,460 dhe se si ata duhet të shikoni për përdoruesit. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Disa nga HTML tags që ne shkoi janë në vijim. 319 00:13:57,110 --> 00:14:00,500 Të gjitha dokumentet tona HTML filloi me html DOCTYPE. 320 00:14:00,500 --> 00:14:02,550 Atëherë ne gjithmonë kemi tag html. 321 00:14:02,550 --> 00:14:03,930 Ne kemi një kokë dhe një trup. 322 00:14:03,930 --> 00:14:07,890 Dhe është e rëndësishme që HTML ka kjo lloj strukture mbivendosur 323 00:14:07,890 --> 00:14:09,280 sepse kjo është shumë e qartë. 324 00:14:09,280 --> 00:14:13,200 Dhe atëherë bëhet shumë e qartë, kur ne nevojë për të hapur dhe në fakt tags ngushta. 325 00:14:13,200 --> 00:14:18,400 Dhe ne gjithmonë nevojë për të mbyllur tags që ne i kemi hapur. 326 00:14:18,400 --> 00:14:23,170 >> Dhe këtu kemi disa nga llojet i gjërave përpara se ne duam të kemi. 327 00:14:23,170 --> 00:14:26,580 Pra, ne kemi, për shembull, titulli i CS50. 328 00:14:26,580 --> 00:14:31,980 Dhe pastaj ne fakt mund të lidhë një fletë stil 329 00:14:31,980 --> 00:14:34,030 që përcakton se si ne stil faqen tonë të internetit. 330 00:14:34,030 --> 00:14:35,650 Kjo është CSS. 331 00:14:35,650 --> 00:14:39,320 Ne jemi duke shkuar për të shkuar mbi atë në Çifti i ardhshëm i slides si. 332 00:14:39,320 --> 00:14:42,580 >> Brenda trupit, ne kemi vendosur disa klasa dhe ID. 333 00:14:42,580 --> 00:14:45,860 Dhe si një kujtim, përsëri, ID janë unike dhe klasa 334 00:14:45,860 --> 00:14:47,390 mund të caktohet në objekte të shumta. 335 00:14:47,390 --> 00:14:52,110 Dhe kjo vetëm do të thotë se ne mund të përdorim klasa dhe kartat e identitetit 336 00:14:52,110 --> 00:14:55,860 brenda structures-- të tjera në mënyrë, për shembull, brenda dosjeve CSS apo stil 337 00:14:55,860 --> 00:15:00,940 sheets-- për t'iu referuar elementeve të veçanta dhe në thelb thonë se ne duam të stilit 338 00:15:00,940 --> 00:15:03,280 ose hartuar disa elemente në një farë mënyre të veçantë. 339 00:15:03,280 --> 00:15:06,440 Dhe ne i referohemi atyre nga ID dhe klasat e tyre. 340 00:15:06,440 --> 00:15:09,870 Dhe ne gjithashtu mund t'i referohet gjëra të ndryshme nga tags, si dhe, 341 00:15:09,870 --> 00:15:13,830 por ID dhe klasa vetëm na japin disa shkathtësi dhe çfarë konkretisht ne 342 00:15:13,830 --> 00:15:15,850 duan për t'iu referuar. 343 00:15:15,850 --> 00:15:19,620 >> Pra, vetëm një shembull. 344 00:15:19,620 --> 00:15:22,730 Ne mund të, përsëri, brenda një skedar CSS ku ne 345 00:15:22,730 --> 00:15:25,770 duan të përcaktojë disa style-- kështu ngjyra, fonts, 346 00:15:25,770 --> 00:15:30,340 dhe stuff like that-- mundemi përcaktojnë stilin për një trup. 347 00:15:30,340 --> 00:15:32,640 Kështu që do të përcaktojë atë për të gjithë tag trupit. 348 00:15:32,640 --> 00:15:36,160 Por pastaj ne gjithashtu mund të përcaktojë një stil për një #title. 349 00:15:36,160 --> 00:15:40,390 Dhe përsëri, hashtag referohet tonë ID dhe dot referohet klasën tonë. 350 00:15:40,390 --> 00:15:44,760 >> Dhe pastaj për .info, ne mund të rregulloni disa atribute. 351 00:15:44,760 --> 00:15:49,750 Dhe përsëri, kur ne të kthehemi, ne kishim tonë klasë të quajtur info dhe titulli ynë ID. 352 00:15:49,750 --> 00:15:53,422 Dhe ne mund të shohim se ne i referohemi atyre nga #title dhe .info. 353 00:15:53,422 --> 00:15:55,380 Audienca: A do të thoshit hashtag [? miratojnë mua? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: Na vjen keq? 355 00:15:55,725 --> 00:15:58,120 Audienca: A do të thoshit hashtag [? miratojnë mua? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: hashtag do të thotë ID, kështu #title 357 00:16:01,400 --> 00:16:07,890 i referohet çfarëdo elementeve kanë këtë ID quajtur titullin. 358 00:16:07,890 --> 00:16:10,735 Dhe pastaj dot referohet një klasë. 359 00:16:10,735 --> 00:16:14,590 Pra, .info referohet këtij elementi sepse ajo ka info të klasës. 360 00:16:14,590 --> 00:16:15,090 Yup. 361 00:16:15,090 --> 00:16:17,905 >> Audienca: Pse ju dallojë ato në HTML? 362 00:16:17,905 --> 00:16:20,985 Pse thua gjëra të caktuara janë ID dhe disa gjëra janë të klasës? 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA: Kjo është vetëm deri në ju, duke filluar 364 00:16:22,610 --> 00:16:24,151 HANNAH Blumberg: Përsëriteni pyetje. 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA: Oh, sorry. 366 00:16:25,370 --> 00:16:29,480 Pse ne dallojmë elemente të caktuara si kartat e identitetit dhe elemente të tjera si klasa? 367 00:16:29,480 --> 00:16:34,760 Kjo është vetëm për shkak se është me të vërtetë shpesh një zgjedhje të projektimit. 368 00:16:34,760 --> 00:16:38,520 Kjo ju jep një shumë të Shkathtësi në të qenit 369 00:16:38,520 --> 00:16:43,250 në gjendje të thonë se unë dua këtë artikull të veçantë të ketë këtë ID sepse ata duan 370 00:16:43,250 --> 00:16:45,300 për të bërë shumë gjëra me atë, dhe unë vetëm 371 00:16:45,300 --> 00:16:50,010 duan për të përcaktuar një stil, stil të caktuar ose ngjyrë çfarëdo për këtë artikull. 372 00:16:50,010 --> 00:16:52,630 Dhe mënyra për ta bërë këtë është vetëm duke i dhënë asaj një ID. 373 00:16:52,630 --> 00:16:55,060 >> Dhe pastaj në qoftë se unë dua që të ketë një çift i artikujve të ndryshme 374 00:16:55,060 --> 00:16:58,940 duke pasur që, në vend të shkuar dhe vendosjen their-- 375 00:16:58,940 --> 00:17:03,840 në vend të bërë atë me tag sepse tag do 376 00:17:03,840 --> 00:17:07,369 vendosur në qelizë për të gjithë tag për çdo kohë që tag është përdorur, 377 00:17:07,369 --> 00:17:09,740 ju mund të vendosni një klasë për objekte të shumta. 378 00:17:09,740 --> 00:17:15,109 Dhe pastaj vetëm hyni në atë klasë dhe të thonë Unë dua të stilit kjo klasë në këtë mënyrë. 379 00:17:15,109 --> 00:17:17,579 >> Dhe përsëri, klasa mund të të jenë artikuj të shumta të ndryshme 380 00:17:17,579 --> 00:17:21,150 dhe ID duhet të jetë unike. 381 00:17:21,150 --> 00:17:21,849 Pyetjet e Madhe. 382 00:17:21,849 --> 00:17:25,339 Ndonjë pyetje të tjera? 383 00:17:25,339 --> 00:17:26,220 OK, i tmerrshëm. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 Përsëri, kjo është se si këto përzgjedhësit janë të cekura në CSS, me hashtag, 386 00:17:35,330 --> 00:17:40,031 me dot, ose pa ndonjë gjë për caktimin e stilin e disa tag, 387 00:17:40,031 --> 00:17:40,530 si trup. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 Dhe këtu kemi të përgjithshme Sintaksa se si kjo është bërë. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> Për të përsëritur disa më të mirë praktikat për HTML dhe CSS, 392 00:17:55,680 --> 00:17:59,170 ne kemi nevojë për të, përsëri, në afërsi të gjithë tags HTML që ne të hapur. 393 00:17:59,170 --> 00:18:03,950 Dhe ajo që ne ju rekomanduar të bëjë për projektet tuaja finale, 394 00:18:03,950 --> 00:18:10,560 si dhe për CS50 Financave, është për të bërë Sigurohuni që të gjitha të HTML tuaj të vlefshëm. 395 00:18:10,560 --> 00:18:12,920 Dhe kjo është bërë me W3 Validator. 396 00:18:12,920 --> 00:18:16,940 >> Dhe pastaj çfarë kemi bërë dhe ajo që ne rekomandojmë bërë 397 00:18:16,940 --> 00:18:19,790 ndan stil, kështu që CSS nga Markup HTML. 398 00:18:19,790 --> 00:18:24,210 Pra, çdo gjë që ka të bëjë me mënyrën se si faqe juaj do të shikojmë me sy 399 00:18:24,210 --> 00:18:27,330 dhe se si ajo do të modifikohen duhet të shkoni në një dokument CSS. 400 00:18:27,330 --> 00:18:33,880 Dhe pastaj markup tuaj duke thënë se si gjërat janë në lidhje me njëri-tjetrin është HTML, 401 00:18:33,880 --> 00:18:37,550 dhe se duhet të shkoni në brendësi e dokumenteve tuaja HTML. 402 00:18:37,550 --> 00:18:38,590 Ndonje pyetje? 403 00:18:38,590 --> 00:18:39,226 MHM. 404 00:18:39,226 --> 00:18:42,628 >> Audienca: çfarë saktësisht po ndodh në me faqe vlefshmërinë 405 00:18:42,628 --> 00:18:47,945 kur ne jemi Vleresimin HTML që [e padëgjueshme] krijuar? 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA: Pra what-- mendoj se ju. 407 00:18:49,850 --> 00:18:53,020 Pra, çfarë saktësisht po ndodh më me faqe vlefshmërinë 408 00:18:53,020 --> 00:18:55,570 dhe pse nuk kemi nevojë për të bërë këtë? 409 00:18:55,570 --> 00:18:59,180 Në thelb, ne duhet të bëjmë që sepse shumë herë, browser-i juaj, 410 00:18:59,180 --> 00:19:01,390 nëse ju nuk mbyllni një tag ose diçka të tillë, 411 00:19:01,390 --> 00:19:05,680 shfletuesi juaj është ende do të bëjnë një faqe dhe mund të vazhdojnë të punojnë, 412 00:19:05,680 --> 00:19:10,840 por është praktikë e mirë për të siguruar që ju keni, përsëri, i mbyllur të gjitha tags tuaj, 413 00:19:10,840 --> 00:19:13,190 se të gjitha elementet tuaja janë mënyra se si ata duhet të jenë, 414 00:19:13,190 --> 00:19:18,470 dhe në thelb se kjo është nga konventat që janë caktuar. 415 00:19:18,470 --> 00:19:21,970 >> Kjo është, përsëri, vetëm një gjë që ju duhet 416 00:19:21,970 --> 00:19:24,040 të mësuarit për të bërë, në krahasim me të paturit 417 00:19:24,040 --> 00:19:25,696 Kodi sloppier dhe stuff like that. 418 00:19:25,696 --> 00:19:26,688 Po. 419 00:19:26,688 --> 00:19:27,680 Oh me falni. 420 00:19:27,680 --> 00:19:29,221 Mendova se ishin ngritur dorën tuaj. 421 00:19:29,221 --> 00:19:31,240 Audienca: Jo, unë kam qenë vetëm [e padëgjueshme]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> Audienca: Ju faleminderit. 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA: Sigurisht, ju falenderoj. 425 00:19:36,181 --> 00:19:41,680 Pra, përsëri, duke shkuar në në si informacioni është transferuar 426 00:19:41,680 --> 00:19:44,630 dhe modelet e komunikimit për të transferuar informacion. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP thjesht do të thotë Transmisionit Protokolli i kontrollit dhe IP 429 00:19:48,600 --> 00:19:51,260 i referohet Internet Protocol. 430 00:19:51,260 --> 00:19:54,275 Dhe kjo vetëm i referohet të dhënat mënyrë është dorëzuar. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> Në qoftë se ne kemi disa të dhëna që duhet të dorëzohet për ju, duke filluar kështu 433 00:20:02,710 --> 00:20:06,770 keni bërë një kërkesë për një server të caktuar. 434 00:20:06,770 --> 00:20:09,800 Për shembull, kur ne të përpiqet për të hyrë në cs50.net, 435 00:20:09,800 --> 00:20:12,420 kemi bërë një kërkesë për server CS50 dhe ne 436 00:20:12,420 --> 00:20:14,720 shihni se ne duam që të merrni ky lloj informacioni. 437 00:20:14,720 --> 00:20:19,294 Dhe pastaj janë të bazuara në këtë protokoll për mënyrën se si është dorëzuar ky informacion, 438 00:20:19,294 --> 00:20:21,460 server jep informacion kthehet tek ne, klienti. 439 00:20:21,460 --> 00:20:25,590 Dhe pastaj ne jemi në gjendje për të parë informacioni për faqe 440 00:20:25,590 --> 00:20:26,390 dhe pastaj e përdorin atë. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> Pra, atëherë Hypertext Transfer Protocol është vetëm një tjetër protokoll ose vendosur 443 00:20:33,050 --> 00:20:37,470 i konventave që përcakton se si shfletuesin web dhe web server 444 00:20:37,470 --> 00:20:38,890 duhet të komunikojë. 445 00:20:38,890 --> 00:20:43,730 Dhe duke i vënë këtë të gjithë së bashku, HTTP, përsëri, 446 00:20:43,730 --> 00:20:50,960 vetëm përcakton se si ky HyperText përcaktuar nga HTML që ne kemi qenë duke punuar atë, 447 00:20:50,960 --> 00:20:59,500 se si duhet të dorëzohet për ju dhe si se të dhënat që është dorëzuar për ju 448 00:20:59,500 --> 00:21:00,540 merr për ju. 449 00:21:00,540 --> 00:21:05,990 >> Dhe kjo është arsyeja pse, në qoftë se ju djema mbani mend nga një klasë, kemi pasur një shumë të kërkesave 450 00:21:05,990 --> 00:21:08,970 dhe kemi pasur një shumë të sintaksës për këto kërkesa se ne jemi 451 00:21:08,970 --> 00:21:10,250 do të shkoj për tani. 452 00:21:10,250 --> 00:21:13,270 Pra, përsëri, kur ne kemi dërguar një kërkesë në një server, 453 00:21:13,270 --> 00:21:15,920 ne kemi për të përcaktuar disa gjëra. 454 00:21:15,920 --> 00:21:18,520 Pra, ne kemi nevojë për të gjetur llojin e kërkesës që ne jemi vendosjen. 455 00:21:18,520 --> 00:21:22,180 Dhe përsëri, ne kemi, për shembull, GET është një lloj metode 456 00:21:22,180 --> 00:21:25,290 që ne kemi në kërkesën tonë. 457 00:21:25,290 --> 00:21:31,710 >> Dhe pastaj HTTP / 1.1 është vetëm protokoll që ne jemi duke përdorur aktualisht. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 Shumica e kohës, kjo do të protokollit që ne jemi duke përdorur. 460 00:21:36,890 --> 00:21:40,290 Pra, nëse ju keni një pyetje si kjo në quiz tuaj. 461 00:21:40,290 --> 00:21:43,120 Kjo është konventat që ne kemi deri më tani. 462 00:21:43,120 --> 00:21:46,580 >> Backslash referohet çfarë lloj e gjërave që ne jemi duke kërkuar. 463 00:21:46,580 --> 00:21:52,810 Pastaj, host tonë është, për shembull, në këtë rast, ne jemi duke u përpjekur për të shkuar në google.com. 464 00:21:52,810 --> 00:21:57,070 Pra, kjo është vlera për një host. 465 00:21:57,070 --> 00:21:59,330 Ky është një lloj i kërkesës që mund të dërgohen. 466 00:21:59,330 --> 00:22:02,890 >> Dhe pastaj një lloj i reagimit që mund të të dërgohen, përsëri, në bazë të këtij protokolli, 467 00:22:02,890 --> 00:22:05,190 është përsëri, HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 Pra, kjo është HTTP versioni përsëri. 469 00:22:07,150 --> 00:22:09,730 200 OK është vetëm kodi statusit. 470 00:22:09,730 --> 00:22:12,860 Dhe kjo OK është vetëm një frazë bazuar në këtë kod statusit. 471 00:22:12,860 --> 00:22:15,520 >> Dhe pastaj Content-Type referohet llojit 472 00:22:15,520 --> 00:22:20,295 që është kthyer për ju që është për këtë web faqe që ju merrni 473 00:22:20,295 --> 00:22:22,570 dhe se shfletuesin tënd mund të bëjnë më pas. 474 00:22:22,570 --> 00:22:24,401 Dhe kjo është teksti / html. 475 00:22:24,401 --> 00:22:26,660 >> Audienca: Çfarë do të thotë 1.1? 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA: Kjo është vetëm version of-- oh, çfarë do të thotë 1.1? 477 00:22:29,910 --> 00:22:37,075 Kjo është vetëm versioni, HTTP version i një protokolli që jeni duke përdorur. 478 00:22:37,075 --> 00:22:37,700 Pyetje e madhe. 479 00:22:37,700 --> 00:22:38,366 Pyetje të tjera? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> Audienca: A mund të përmbledhur Content-Type shpejtë e vërtetë? 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA: Kështu që është ajo server. 483 00:22:48,150 --> 00:22:51,020 lloji i information-- atë që është e tipi i përmbajtjes ishte pyetjet. 484 00:22:51,020 --> 00:22:53,400 Kështu që ishte lloji i Informacioni që ju të merrni përsëri 485 00:22:53,400 --> 00:22:58,200 nga serveri, llojin e të dhënat që shfletuesi mund pastaj 486 00:22:58,200 --> 00:23:00,604 bëjnë që ju jeni duke përdorur. 487 00:23:00,604 --> 00:23:03,020 Audienca: Është se ajo që kjo protokoll është e thënë që ju të bëni? 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA: Na vjen keq? 489 00:23:03,390 --> 00:23:05,380 Audienca: Është se ajo që thonë protokolli? 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA: The protocol-- 491 00:23:05,915 --> 00:23:07,940 Audienca: --what Content-Type është ose what-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA: Protokolli është i bazuar on-- çfarë është protokolli thënë ju? 493 00:23:12,040 --> 00:23:16,070 Kjo është vetëm mënyrë se ky informacion 494 00:23:16,070 --> 00:23:18,610 ishte dorëzuar për ju bazuar se çfarë lloj të protokollit 495 00:23:18,610 --> 00:23:21,830 u mori këtë informacion dorëzuar përsëri tek ju. 496 00:23:21,830 --> 00:23:23,500 A atë kuptim lloj? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH Blumberg: Ju mund të mendoj e protokollit 499 00:23:30,070 --> 00:23:33,300 si a-- unë mendoj Profesor Malan përshkroi atë 500 00:23:33,300 --> 00:23:36,910 në klasë, si lloj i si a-- është si ekuivalentin e shtrëngimet e duarve të njeriut. 501 00:23:36,910 --> 00:23:44,930 Thuaj, si, hej, unë jam një kërkesë dhe unë e di se si të trajtojë HTTP e versionit 1.1. 502 00:23:44,930 --> 00:23:48,770 Dhe pastaj server thotë: oh, OK, I-- dhe të dyja ekzistojnë. 503 00:23:48,770 --> 00:23:51,337 Unë gjithashtu e di se si të merren me HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 Dhe unë jam duke shkuar për të dhënë ju mbështetur disa përmbajtje. 505 00:23:53,170 --> 00:23:56,230 Në këtë rast, ajo do të jetë i tipit text / html. 506 00:23:56,230 --> 00:23:58,480 Pra, kjo është lloj i vetëm një mënyrë prej tyre për communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: Është vetëm duke konfirmuar se ju jeni 508 00:24:00,480 --> 00:24:03,290 të dy pas të njëjtën gjë protokoll dhe që të dy 509 00:24:03,290 --> 00:24:06,620 klienti dhe server-- kështu shfletuesi juaj dhe server-- 510 00:24:06,620 --> 00:24:09,280 lloj i di atë që ju jeni duke folur rreth dhe kanë 511 00:24:09,280 --> 00:24:12,557 konventa për kalimin në të dhënat. 512 00:24:12,557 --> 00:24:17,022 >> Audienca: Pra Content-Type part-- teksti Content-Type / html-- kjo është 513 00:24:17,022 --> 00:24:18,521 një pjesë e veçantë e të njëjtin mesazh? 514 00:24:18,521 --> 00:24:20,509 Apo është pjesë e le të themi, 200? 515 00:24:20,509 --> 00:24:22,010 A 200 Tregoni atyre se ose is-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA: 200 thotë se të gjithë shkuan në rregull. 517 00:24:23,770 --> 00:24:27,900 Dhe pastaj lloj përmbajtje është lloj i një pjesë e veçantë e të njëjtin mesazh, 518 00:24:27,900 --> 00:24:34,274 dhe duke thënë gjë që unë riatdhesuar ka këtë lloj tekst / html. 519 00:24:34,274 --> 00:24:35,690 Është vetëm duke i dhënë më shumë informacion. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Kanë ndonjë gjë për të shtuar? 522 00:24:39,995 --> 00:24:40,495 NE RREGULL. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Çdo pyetje të tjera në këtë? 525 00:24:46,530 --> 00:24:48,370 Mbresëlënës. 526 00:24:48,370 --> 00:24:54,070 Kështu që disa HTTP statuset e tjera që ne mund të marrë përveç 200 OK, 527 00:24:54,070 --> 00:24:59,500 ato që ne kemi parë ndoshta ndoshta shumë janë 403 dhe 404. 528 00:24:59,500 --> 00:25:05,190 Pra 404, në qoftë se ju ishin duke u përpjekur për të Qasje diçka që nuk ekziston. 529 00:25:05,190 --> 00:25:10,460 Kështu për shembull, në tuaj Psets CS50 Financave, 530 00:25:10,460 --> 00:25:15,640 në qoftë se ju kishte qenë i bërë quote.html dhe ju nuk keni se fotografi, 531 00:25:15,640 --> 00:25:19,740 por në vend të kësaj ju kishte quote.php, që do të rezultojë në një 404 Not Found 532 00:25:19,740 --> 00:25:21,600 sepse skedari mund të mos ekzistojë. 533 00:25:21,600 --> 00:25:25,690 >> Për një 403 të ndaluara, që i referohet lejeve. 534 00:25:25,690 --> 00:25:31,150 Pra, në qoftë se disa skedari nuk është i lexueshëm nga bota, ju mund të merrni një 403 kthye. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 Disa të tjerë që ju mund të get-- 301, u vendos përgjithmonë; 537 00:25:37,810 --> 00:25:41,300 302, Gjetur; 304, modifikuar; 400, Kërkesë Bad; 538 00:25:41,300 --> 00:25:47,330 dhe Gabim Server pastaj i brendshëm për 500 dhe 503, Shërbimi i padisponueshëm. 539 00:25:47,330 --> 00:25:48,140 Po. 540 00:25:48,140 --> 00:25:51,490 >> Audienca: A do të pritet të mësuar përmendësh të gjitha ato statuse? 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA: Unë do të ketë ato në fletë mashtrojnë tuaj. 542 00:25:53,739 --> 00:25:55,146 [Qeshura] 543 00:25:55,146 --> 00:25:59,954 Audienca: A jemi pritet të e di se çfarë shkakton secilin? 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA: A janë ata? 545 00:26:00,995 --> 00:26:03,870 HANNAH Blumberg: për ato që ne i kemi drejtuar into-- Pra, pyetja was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA: A janë ata pritet të e di se çfarë secili prej këtyre statusit 547 00:26:08,010 --> 00:26:09,330 Kodet mund të jetë shkaktuar nga? 548 00:26:09,330 --> 00:26:13,240 Pra, për ato që kemi përdorur dhe vrapoi në, unë do të thoja, po. 549 00:26:13,240 --> 00:26:16,610 Pra, ne kemi parë patjetër 200 OK dhe leksione atë në psets. 550 00:26:16,610 --> 00:26:19,071 Ne kemi parë 403, 404. 551 00:26:19,071 --> 00:26:20,550 Për ato të tjera? 552 00:26:20,550 --> 00:26:22,690 >> HANNAH Blumberg: Unë do të thonë se 500 duket lojë të ndershme. 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500, po. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH Blumberg: Po. 555 00:26:24,246 --> 00:26:27,006 Vetëm kanë një ndjenjë të përgjithshme e çfarë shkakton ato. 556 00:26:27,006 --> 00:26:28,880 Dhe gjithashtu vetëm nga këto emra, ju mund të lloj 557 00:26:28,880 --> 00:26:32,890 si të bëjë një hamendësim si për çfarë në fakt ka shkaktuar ato. 558 00:26:32,890 --> 00:26:36,919 Për shembull, të shkojë përgjithmonë, ndoshta file u zhvendos përgjithmonë. 559 00:26:36,919 --> 00:26:39,328 >> Audienca: Por në një të mëparshme provimit, ka pasur një mënyrë 560 00:26:39,328 --> 00:26:41,050 si mund të na presin për të përgjigjen se? 561 00:26:41,050 --> 00:26:42,883 >> HANNAH Blumberg: Kjo ishte me vlerë zero pikë. 562 00:26:42,883 --> 00:26:45,870 Pyetja mbi 418 në ibrik çaji është teknikisht një status HTTP, 563 00:26:45,870 --> 00:26:47,090 por ajo ishte me vlerë zero pikë. 564 00:26:47,090 --> 00:26:48,320 Natyrisht, ju nuk jeni pritet të dinë ata. 565 00:26:48,320 --> 00:26:49,670 >> Audienca: A është kjo një e vërtetë? 566 00:26:49,670 --> 00:26:51,970 >> HANNAH Blumberg: Kjo është një e vërtetë një, por kjo nuk do të thotë asgjë. 567 00:26:51,970 --> 00:26:52,700 Është vetëm një shaka. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Njerëzit internetit janë qesharake. 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA: pyetje e Madhe, djema. 571 00:26:59,680 --> 00:27:01,452 Ndonjë pyetje të tjera? 572 00:27:01,452 --> 00:27:04,891 >> Audienca: Çfarë është gabim i brendshëm server? 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA: Brendshme gabim server vetëm 574 00:27:06,640 --> 00:27:10,050 do të thotë se ju keni qenë paaftë për të komunikuar 575 00:27:10,050 --> 00:27:13,400 me serverin për disa arsye. 576 00:27:13,400 --> 00:27:15,400 Pra, kjo nuk është domosdoshmërisht diçka që ka të bëjë 577 00:27:15,400 --> 00:27:19,170 me klientin ose diçka të tillë. 578 00:27:19,170 --> 00:27:22,170 Unë nuk di ndonjë shembull të veçantë se ne kemi shkuar mbi të shpjeguar, 579 00:27:22,170 --> 00:27:23,000 por vërtet. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH Blumberg: Sigurisht. 581 00:27:23,250 --> 00:27:25,625 Kështu për shembull, si le thonë se ju jeni duke punuar në mashup 582 00:27:25,625 --> 00:27:30,440 dhe një server Google zbriti për disa arsye, një ndërprerje të energjisë, le të themi. 583 00:27:30,440 --> 00:27:33,400 Kjo do të jetë një server të brendshëm gabim ose disa lloj of-- doja t'ju 584 00:27:33,400 --> 00:27:34,630 nuk do të merrni një përgjigje mbrapa. 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA: Po. 586 00:27:35,260 --> 00:27:37,050 Kjo është vetëm kur ju jeni paaftë për të komunikuar 587 00:27:37,050 --> 00:27:40,299 me serverin për disa arsye sepse e ajo shkon poshtë apo ndonjë arsye tjetër. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 Pra, duke kërcyer në PHP. 590 00:27:47,690 --> 00:27:49,930 PHP, HTML ndryshe, është një gjuhë programimi. 591 00:27:49,930 --> 00:27:54,820 Dhe kemi filluar duke e përdorur atë, sepse kjo është shumë e dobishme për zhvillimin e web. 592 00:27:54,820 --> 00:27:56,940 >> Ne së pari e përdorur atë në CS50 Financave. 593 00:27:56,940 --> 00:28:02,240 Dhe kjo në thelb na ndihmon të sjellë së bashku këtë Markup, dizajni, 594 00:28:02,240 --> 00:28:07,460 dhe se si ne fakt përdorin informacionin për të shfaqur gjërat në një web faqe. 595 00:28:07,460 --> 00:28:11,870 Pra, PHP vetvete do të thotë PHP Hypertext Preprocessor, 596 00:28:11,870 --> 00:28:15,360 kështu që kjo është një backnorym rekursive në vetvete. 597 00:28:15,360 --> 00:28:22,330 Dhe hapjen tags për PHP ne e majta dhe shigjeta e drejtë me pikëpyetje 598 00:28:22,330 --> 00:28:23,060 dhe php. 599 00:28:23,060 --> 00:28:25,890 >> Pra, ne kemi parë tashmë një bandë e saj. 600 00:28:25,890 --> 00:28:29,150 Tani, ne jemi vetëm duke shkuar për të shkuar mbi disa nga gjërat themelore në lidhje me të. 601 00:28:29,150 --> 00:28:32,280 Pra, me PHP, variablit Emrat fillojnë me shenjën e dollarit. 602 00:28:32,280 --> 00:28:35,660 Ne nuk e specifikon, përsëri, një variabël të tipit më. 603 00:28:35,660 --> 00:28:38,450 Ashtu si ne e bëmë me C, ne nuk kemi nevojë për të bërë këtë. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Ne mund të bëjmë një bandë e ndryshme gjëra me variablat. 606 00:28:44,490 --> 00:28:47,750 Ne mund të vënë ato së bashku nga concatenating ato 607 00:28:47,750 --> 00:28:52,900 me dot simbol, i cili ne nuk mund të bëjmë në C përsëri. 608 00:28:52,900 --> 00:28:57,490 Përsëri, ne kemi një shkathtësi pak më shumë me PHP në drejtim të variablave. 609 00:28:57,490 --> 00:29:00,080 Përsëri, ne nuk kemi një funksion kryesor. 610 00:29:00,080 --> 00:29:03,370 >> Dhe PHP interpretohet në krahasim me hartuar, 611 00:29:03,370 --> 00:29:09,970 Pra, vetëm se si ne e bëjnë për C fotografi, ne nuk kemi për të bërë këtë për PHP. 612 00:29:09,970 --> 00:29:15,440 Por më tepër, mënyra se gjuha është drejtuar në vetvete, ajo është interpretuar. 613 00:29:15,440 --> 00:29:18,550 Dhe pastaj shtypur lirshëm thjesht do të thotë se ne 614 00:29:18,550 --> 00:29:22,490 nuk duhet të specifikoni një ndryshore llojin dhe llojet e ndryshueshme 615 00:29:22,490 --> 00:29:25,415 janë kuptuar në kohën e duhur. 616 00:29:25,415 --> 00:29:29,185 >> Audienca: Por çfarë keni them me dot varg? 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA: Sigurisht. 618 00:29:30,060 --> 00:29:37,660 Kur ne duam të vënë gjërat together-- kështu që në qoftë se kemi pasur disa ndryshore që 619 00:29:37,660 --> 00:29:41,500 kishte vlerën e 3 dhe ne kishim një tjetër variabël që kishte vlerën e vargut, 620 00:29:41,500 --> 00:29:45,920 ne mund të vënë variablat së bashku duke vënë një njollë në mes tyre 621 00:29:45,920 --> 00:29:46,970 dhe concatenating tyre. 622 00:29:46,970 --> 00:29:52,670 Ose ne mund të krijojë një e quajti ndryshueshme 623 00:29:52,670 --> 00:29:56,900 dhe e vënë atë së bashku me concatenating dy vargjet. 624 00:29:56,900 --> 00:30:00,680 >> Pra, nëse do të kishim një varg në të dyfishtë kuotat dhe ne kemi vënë një pikë pas saj, 625 00:30:00,680 --> 00:30:03,660 dhe pastaj kemi pasur një varg, që do të krijojë një varg krejt. 626 00:30:03,660 --> 00:30:05,242 >> Audienca: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA LATVIA: A ishte kjo qartë? 628 00:30:06,450 --> 00:30:07,099 Audienca: Po. 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA: OK. 630 00:30:07,890 --> 00:30:08,766 Po. 631 00:30:08,766 --> 00:30:11,146 >> Audienca: Kur ju thoni interpretohet sesa hartuar, 632 00:30:11,146 --> 00:30:14,160 jeni duke folur për ju nuk e bëni duhet të jetë sa më specifik kur 633 00:30:14,160 --> 00:30:15,906 është fjala për PHP kundrejt C? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA: Kur themi interpretohet në krahasim me hartuar, 636 00:30:20,710 --> 00:30:21,850 çfarë ne do të thotë? 637 00:30:21,850 --> 00:30:26,220 Kështu që do të thotë se ne nuk kemi nevojë fotografi ekzekutueshme për të kandiduar PHP. 638 00:30:26,220 --> 00:30:29,870 Kjo do të thotë se ajo shkon si ajo shkon. 639 00:30:29,870 --> 00:30:31,650 A ka kjo kuptim? 640 00:30:31,650 --> 00:30:32,495 Pak me shume. 641 00:30:32,495 --> 00:30:34,620 HANNAH Blumberg: Pra ju mund të mendoj për një përkthyesi 642 00:30:34,620 --> 00:30:38,980 si një tjetër program që është përgjegjës për të shkuar rresht pas rreshti nëpërmjet PHP 643 00:30:38,980 --> 00:30:42,745 dhe në fakt e përdorur, në krahasim për hartimin e të gjitha poshtë në binar. 644 00:30:42,745 --> 00:30:46,050 Ajo në fakt nuk do të thotë asgjë për mënyrën se si specifike ne duhet të jetë. 645 00:30:46,050 --> 00:30:49,470 Ne ende duhet të jetë i saktë, dhe nuk harroni pikëpresje tuaj, dhe sigurohuni 646 00:30:49,470 --> 00:30:51,470 ju keni shenjën tuaj dollar, dhe gjëra të tilla si kjo. 647 00:30:51,470 --> 00:30:52,240 Pyetje e mirë. 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA: Po. 649 00:30:53,115 --> 00:30:55,590 Pra, rresht pas rreshti, si krahasim me me C fotografi, 650 00:30:55,590 --> 00:30:59,100 ne duhet të bëjmë të gjithë finale para se ne fakt mund të kandidojë atë. 651 00:30:59,100 --> 00:31:00,360 Ky është dallimi kryesor. 652 00:31:00,360 --> 00:31:02,655 Por përsëri, ne nuk mund të me të vërtetë të jetë më pak specifik. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 Pra vargjeve në PHP përfaqësojnë në fakt një hartë urdhëruar. 655 00:31:13,950 --> 00:31:17,550 >> Pra vlerat e vargjeve shok me çelësat. 656 00:31:17,550 --> 00:31:23,350 Dy mënyra për të deklaruar një grup, bazuar në këtë sintaksë, 657 00:31:23,350 --> 00:31:26,380 ne mund të jetë më i qartë në duke thënë se ne kemi një rrjet 658 00:31:26,380 --> 00:31:31,010 dhe ne e kemi këtë key1 që hartave të kjo value1, key2 se harta value2. 659 00:31:31,010 --> 00:31:34,660 Ose ne vetëm mund të krijojë një rrjet që përmban vlerat e vetë 660 00:31:34,660 --> 00:31:38,360 dhe pastaj çelësat janë kuptohet në një mënyrë. 661 00:31:38,360 --> 00:31:40,000 Çdo pyetje mbi këtë? 662 00:31:40,000 --> 00:31:42,500 >> Audienca: Çfarë do të çelësat të jetë në shembullin e dytë? 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0, 1, 2, 3? 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA ZLATKOVA: Për shembull, kjo është vetëm çelësat në këtë nuk shprehin domosdoshmërisht 667 00:31:55,780 --> 00:31:56,550 të bëjë një ndryshim. 668 00:31:56,550 --> 00:32:01,720 Ata vetëm të përcaktojë se si ju mund të përdorin vlerat në brendësi të saj. 669 00:32:01,720 --> 00:32:08,660 Pra, nëse kemi pasur një foreach lak në PHP që do të 670 00:32:08,660 --> 00:32:14,760 të na lejojë të kalojnë nëpër të gjitha vlerat, ne mund të kalojnë nëpër të gjitha vlerat, 671 00:32:14,760 --> 00:32:19,570 edhe sikur të kishim apo nuk e kishte përcaktuar një çelës të veçantë brenda e faqes 672 00:32:19,570 --> 00:32:20,820 Sintaksa mëparshme. 673 00:32:20,820 --> 00:32:23,460 >> Pra, edhe me këtë lloj e grup, ne ende mund të 674 00:32:23,460 --> 00:32:26,260 kanë një lak foreach që shkon nëpër çdo 675 00:32:26,260 --> 00:32:31,240 e vlerave në kyç në rrjet. 676 00:32:31,240 --> 00:32:36,180 Pra, sintaksë e një foreach loop, ne fillojmë me një grup. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 Kjo variabël $ arr është array ynë aktual që përcaktohet në rrëshqitje mëparshëm 679 00:32:43,900 --> 00:32:47,550 si vlerë që fjalë për fjalë shkon me secilin nga vlerat, 680 00:32:47,550 --> 00:32:50,122 pa marrë parasysh nëse kemi pasur një çelës apo jo. 681 00:32:50,122 --> 00:32:53,080 Dhe pastaj ne mund të bëjmë diçka me vlera brenda lak foreach. 682 00:32:53,080 --> 00:32:57,730 Pra, përsëri, nëse do të kishim një grup si kjo këtu created-- 683 00:32:57,730 --> 00:33:03,270 kështu që ne kemi çelësin e foo dhe vlerës së bar, çelësi i Bazit dhe vlera e qux-- 684 00:33:03,270 --> 00:33:09,730 ne mund të kemi një lak foreach që kalon nëpër rrjet, si vlera kyçe 685 00:33:09,730 --> 00:33:11,900 dhe pastaj të bëjë diçka me çelësin dhe / ose vlerë. 686 00:33:11,900 --> 00:33:15,980 Por ne nuk domosdoshmërisht gjithmonë duhet të ketë një foreach sythe që 687 00:33:15,980 --> 00:33:19,410 kalon nëpër rrjet si hartë kyç në vlerë. 688 00:33:19,410 --> 00:33:26,060 Ne mund të shkojnë nëpër array foreach loop si vlerë. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH Blumberg: Dhe unë mendoj to-- ishte pyetja juaj, çfarë 690 00:33:28,990 --> 00:33:31,229 është indeksi i nënkuptuar? 691 00:33:31,229 --> 00:33:31,895 Audienca: Kinda. 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: Oh. 693 00:33:32,240 --> 00:33:33,406 HANNAH Blumberg: Po, po. 694 00:33:33,406 --> 00:33:36,150 Pra, në thelb, në qoftë se ju nuk e specifikoni një kyç, ajo do të jetë 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA: Po. 696 00:33:37,140 --> 00:33:41,718 Ashtu si me C, është zero indeksuar në qoftë se ju nuk e specifikoni një çelës. 697 00:33:41,718 --> 00:33:42,384 Audienca: Më vjen keq. 698 00:33:42,384 --> 00:33:43,827 A mund të provoni duke folur pak louder? 699 00:33:43,827 --> 00:33:45,270 Unë jam ka një grimë të vogël e probleme dëgjimi gjithçka. 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA: Unë jam aq i keq. 701 00:33:46,478 --> 00:33:48,439 Po, natyrisht. 702 00:33:48,439 --> 00:33:50,230 Pra, ju doni për mua për të shkuar mbi këtë përsëri? 703 00:33:50,230 --> 00:33:51,680 Apo është this-- 704 00:33:51,680 --> 00:33:54,930 Audienca: Pra, në slide-- mëparshme nëse ju mund të shkoni vetëm mbrapa për një sekondë. 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA: Sigurisht, më vjen keq. 706 00:33:57,313 --> 00:33:59,237 Audienca: Pra dytë array këtu nuk ka 707 00:33:59,237 --> 00:34:04,135 duket se kanë një vlerë të kyç, dicka e tille [? causation. ?] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA: E drejta, e drejtë. 709 00:34:05,343 --> 00:34:07,608 Audienca: Pra, si e bën atë punë kur ju thonë se kjo është e gjitha ose asnjë. 710 00:34:07,608 --> 00:34:08,969 Për mua, që duket si një [? foo?] tashmë. 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA: Po, po. 712 00:34:10,093 --> 00:34:12,969 Pra, përsëri, kjo është një Harta urdhëroi në këtë kuptim 713 00:34:12,969 --> 00:34:15,639 se nuk janë kuptuar, për shembull, indekset 714 00:34:15,639 --> 00:34:20,159 ketu mund të kuptohet si 0, 1, 2, 3. 715 00:34:20,159 --> 00:34:25,929 Përsëri, kjo është të paturit e ata Indekset është ekuivalente ynë 716 00:34:25,929 --> 00:34:28,980 e të pasurit çelësat planifikuara mbi vlerat. 717 00:34:28,980 --> 00:34:34,710 Pra, nëse çelësi jonë ishte 0-- keq. 718 00:34:34,710 --> 00:34:36,524 >> HANNAH Blumberg: Jo, Ka shkruaj këtu. 719 00:34:36,524 --> 00:34:36,929 Është vërtetë me të vërtetë e bukur. 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: Kjo është e madhe. 721 00:34:37,460 --> 00:34:38,260 NE RREGULL. 722 00:34:38,260 --> 00:34:49,489 Pra, përsëri, $ arr 0 do të jetë çelësi për vlerën 1. 723 00:34:49,489 --> 00:34:51,138 0 do të jetë kyç për vlerën 1. 724 00:34:51,138 --> 00:34:51,971 Audienca: Më vjen keq. 725 00:34:51,971 --> 00:34:53,190 Është e padukshme. 726 00:34:53,190 --> 00:34:53,659 >> HANNAH Blumberg: Në rregull, Nevermind. 727 00:34:53,659 --> 00:34:54,980 Shkumës ishte një ide e keqe. 728 00:34:54,980 --> 00:34:58,030 Unë të marrë atë përsëri. 729 00:34:58,030 --> 00:35:01,425 Ju mund të mendoj për çelësat si 0 hartave me vlerën 1. 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA: Po. 731 00:35:02,300 --> 00:35:04,630 Kështu që kjo eshte 0, kjo eshte 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Këto mund të jenë çelësat tuaj. 733 00:35:05,760 --> 00:35:10,020 Ju mund të mendoj për ato as-- vërtet. 734 00:35:10,020 --> 00:35:12,740 Pra, në vend që çelësat qarta, ata janë 735 00:35:12,740 --> 00:35:17,180 lloj i kuptuar si indekset duke filluar nga 0. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Shkumësi nuk e ka ndihmuar. 738 00:35:24,820 --> 00:35:25,722 Po. 739 00:35:25,722 --> 00:35:30,914 >> Audienca: Për lak foreach, në qoftë se ne të kërkuar për të parë si vlerë, 740 00:35:30,914 --> 00:35:33,245 ajo vetëm do indeks automatikisht me 0? 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: Po. 742 00:35:34,120 --> 00:35:35,745 Ajo do të kalojnë nëpër secilën prej vlerave. 743 00:35:35,745 --> 00:35:39,130 Audienca: [padëgjueshme] si 0 apo do që vetëm të bëjë 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA: Ju do të keni për të thënë si shenjë e dollarit dhe pastaj 745 00:35:43,710 --> 00:35:46,266 disa Emri ndryshueshme, vlera. 746 00:35:46,266 --> 00:35:47,182 Audienca: [padëgjueshme]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA: Na vjen keq? 749 00:35:50,964 --> 00:35:52,839 Audienca: Na vjen keq, unë jam vetëm duke u përpjekur për të kujtuar. 750 00:35:52,839 --> 00:35:57,190 Si do ta bëni këtë në qoftë se ju mund ta bëjë këtë automatikisht indeksimit është vetëm 0 e? 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVA: Pra, si do ta bëni këtë në qoftë se ju nuk keni emra të veçanta të rëndësishme? 752 00:36:00,780 --> 00:36:01,710 >> Audienca: Po. 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA: Ju vetëm do të define-- them vetëm veten si një emër. 754 00:36:07,820 --> 00:36:17,950 Pra, në psets tuaj, ju djema fuqi mos harroni rresht foreach $ sa $ rreshtave, 755 00:36:17,950 --> 00:36:24,610 kemi krijuar ourself këtë rreshtin $ thënë ne duam të shkojnë nëpër rresht si $ rreshta. 756 00:36:24,610 --> 00:36:28,360 Edhe pse ne nuk kemi kjo $ qartë rreshtave të përcaktuara, 757 00:36:28,360 --> 00:36:31,990 ne mund të shkoni vetëm dhe thonë se kjo mund të jetë çelësi jonë, 758 00:36:31,990 --> 00:36:33,615 dhe vetëm të shkojnë me secilin nga vlerat. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> Audienca: Pra, është vlera e një variabël i ri ne jemi duke krijuar për të ruajtur [e padëgjueshme]? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: Pra, nuk është në thelb një variabël i ri. 763 00:36:49,990 --> 00:37:00,310 Kjo është një variabël që i referohet brenda e vektorit te secilit prej tyre. 764 00:37:00,310 --> 00:37:02,060 HANNAH Blumberg: Është e një emër i ri variabël. 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: Po, kjo është një emër i ri ndryshueshme, 766 00:37:04,018 --> 00:37:06,680 por kjo nuk është inherently-- vërtet. 767 00:37:06,680 --> 00:37:08,950 Është vetëm një variabël i ri që ju mund të bëni atë. 768 00:37:08,950 --> 00:37:12,680 Pra, vetëm sa bëjmë ne e bëmë $ rresht si $ rreshta, rreshtat 769 00:37:12,680 --> 00:37:17,980 ishte një emër të ri ndryshueshme që ne mund të krijojë në lak foreach tonë. 770 00:37:17,980 --> 00:37:22,065 Ajo nuk duhet të preexist para kësaj. 771 00:37:22,065 --> 00:37:25,777 >> Audienca: A mund të shkoni nëpër logjikë për secilin, duke përdorur shembullin atje? 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: MHM. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 Oh me falni. 775 00:37:32,080 --> 00:37:33,780 Ja shembulli. 776 00:37:33,780 --> 00:37:34,280 I sigurt. 777 00:37:34,280 --> 00:37:38,950 Pra, për çdo array-- kështu kjo do të thotë të shkojnë në këtë grup 778 00:37:38,950 --> 00:37:43,930 si çelës value-- që po ndodh të kalojnë nëpër këtë rrjet 779 00:37:43,930 --> 00:37:49,480 dhe i pari shkoni dhe të merrni foo, The foo kyç dhe bar vlera. 780 00:37:49,480 --> 00:37:51,570 Dhe pastaj në të dytë përsëritje e për lak, 781 00:37:51,570 --> 00:37:55,090 ajo do të shkojë nëpër dhe për të marrë Baz kyç dhe qux vlera. 782 00:37:55,090 --> 00:38:00,512 Dhe pastaj ju mund të bëni diçka me secilës prej tyre ose të dy prej tyre. 783 00:38:00,512 --> 00:38:03,488 >> Audienca: Pra, ideja prapa të paturit e një pikë kyçe për vlerën, 784 00:38:03,488 --> 00:38:07,470 çfarë ju të përfundojë qasjen? 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA: Cila është ideja të paturit e një duke treguar çelësi i vlerësojnë? 786 00:38:10,680 --> 00:38:16,400 Kjo është vetëm një konventë, një tjetër mënyrë për të shkuar nëpër rrjet 787 00:38:16,400 --> 00:38:22,600 dhe duke qenë në gjendje për të hyrë as kyç ose vlera ose të dy dhe përdorimin e tyre. 788 00:38:22,600 --> 00:38:27,100 >> Audienca: Cili është roli për të urdhërojë që foreach shkon në? 789 00:38:27,100 --> 00:38:29,250 Pra, nëse ne ishim të shtuar Elementet në grup më vonë, 790 00:38:29,250 --> 00:38:32,140 do ata të jenë të parët quajtur në grup foreach, 791 00:38:32,140 --> 00:38:33,750 apo do të ishte më vonë? 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA: Pra, çfarë është urdhri që foreach 793 00:38:37,770 --> 00:38:39,210 lak kalon nëpër një grup në? 794 00:38:39,210 --> 00:38:42,220 Ajo shkon përmes e parë element me elementin e fundit, 795 00:38:42,220 --> 00:38:43,400 në elementin e fundit të shtuar. 796 00:38:43,400 --> 00:38:48,020 Në qoftë se ju shtoni elemente më vonë, ata do të të accessed-- elementët e parë do të 797 00:38:48,020 --> 00:38:51,410 të arrihen si i pari elementet e vektorit, 798 00:38:51,410 --> 00:38:57,620 dhe pastaj ju do të shkoni nëpër secilën nga elementet si lloj i një ordered-- 799 00:38:57,620 --> 00:39:02,930 jo një urdhër, por mënyra se si ata janë vënë në rrjet. 800 00:39:02,930 --> 00:39:06,855 >> Audienca: Elementet Pra reja janë shtuar më vonë? 801 00:39:06,855 --> 00:39:10,680 Pra, ata janë added-- ata do të jenë të fundit në [? përsëritje. ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA: Elementet e reja can-- në thelb, kur elemente të reja janë shtuar, 803 00:39:14,280 --> 00:39:16,520 ata janë shtuar në fundin e vektorit? 804 00:39:16,520 --> 00:39:17,632 >> Audienca: Po. 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: Unë besoj se kaq. 806 00:39:18,840 --> 00:39:20,850 Po. 807 00:39:20,850 --> 00:39:24,330 Dhe pastaj me lak tuaj foreach, pasi ju keni shtuar elemente të reja 808 00:39:24,330 --> 00:39:26,790 dhe ju shkoni nëpërmjet tyre, elementet e reja do të 809 00:39:26,790 --> 00:39:30,930 të jetë accessed-- elementin e ri, nëse është e shtoi fundit, kjo do të arrihen e kaluar. 810 00:39:30,930 --> 00:39:34,416 >> Audienca: vetëm mund të jepni një shembull për diçka që do të [e padëgjueshme] 811 00:39:34,416 --> 00:39:37,404 me diçka me vlerë si [padëgjueshme] ose vlerë, 812 00:39:37,404 --> 00:39:38,910 pëlqen se si ju do të format atë? 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA: Sigurisht. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 A mund të jap një shembull të asaj që ne do të bëjmë me vlerë? 816 00:39:46,410 --> 00:39:52,440 Pra, çfarë ju djema mund të jetë njohur me është se ne kemi kaluar nëpër një rrjet 817 00:39:52,440 --> 00:39:55,380 dhe të shtypura në thelb secili prej elementeve, 818 00:39:55,380 --> 00:40:00,910 për shembull, si nje pjese e nje Lista e urdhëroi apo diçka që. 819 00:40:00,910 --> 00:40:02,674 A do të kishte kuptim apo duam to-- 820 00:40:02,674 --> 00:40:04,340 Audienca: A mund të shtypura këto vlera jashtë? 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: Po, ne mund të shtypura dhe pastaj në thelb $ vlerë sepse në 822 00:40:13,220 --> 00:40:16,570 se vlera specifike, ne do të jetë shtypjen e vlerës brendësi të saj. 823 00:40:16,570 --> 00:40:20,150 Pra, në qoftë se ne ishim në përsëritje tonë të parë e saj dhe ne të shtypura vlerë $, 824 00:40:20,150 --> 00:40:23,775 ne do të jetë shtypje bar. 825 00:40:23,775 --> 00:40:27,020 >> Audienca: A ka edhe për sythe në PHP ose vetëm sythe foreach? 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: Nuk ka edhe për sythe në PHP. 827 00:40:30,430 --> 00:40:33,399 Dhe logjika e tyre është kryesisht njëjtë si ajo që ju keni qenë duke përdorur për të. 828 00:40:33,399 --> 00:40:34,690 Audienca: Pra, vlera e saj është i pavlefshëm. 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA: Është si të njëjta. 830 00:40:35,090 --> 00:40:35,590 Po. 831 00:40:35,590 --> 00:40:37,747 Audienca: Unë jam vetëm duke shkuar për të pyetur. 832 00:40:37,747 --> 00:40:39,695 Pra, kur ju të deklarojë një grup, ju nuk keni nevojë 833 00:40:39,695 --> 00:40:42,617 për të treguar se çfarë madhësia ajo do të të jetë, që do të thotë që ju mund të vetëm 834 00:40:42,617 --> 00:40:44,417 shtoni dhe marr me vete elemente [padëgjueshme]. 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA: Yup. 836 00:40:45,250 --> 00:40:45,750 Yup. 837 00:40:45,750 --> 00:40:46,251 Pikërisht. 838 00:40:46,251 --> 00:40:48,875 Kur ne të deklarojë një grup, ne nuk kanë nevojë të them se çfarë madhësia është, 839 00:40:48,875 --> 00:40:51,022 kështu që ne mund të shtoni vetëm elemente mbi atë më vonë si. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Më shumë pyetje? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 Pra, duke sjellë PHP dhe HTML së bashku, atë që kemi seen-- mirë, 844 00:41:05,950 --> 00:41:15,130 për shembull, në këtë shembull, ne kemi një formë HTML që ka një fushë të dhëna. 845 00:41:15,130 --> 00:41:18,830 >> Dhe fushën e futjes është vetëm emri dhe pastaj ajo ka një buton Submit. 846 00:41:18,830 --> 00:41:26,040 Dhe kur ju shtypni Submit button, në dosjen tonë hello.php, 847 00:41:26,040 --> 00:41:32,130 sepse metodë për formën është merrni, ne mund të hyni çdo gjë që është në emrin e 848 00:41:32,130 --> 00:41:40,360 nga ky merrni ndryshore globale që is-- sintaksë sepse është $ _GET. 849 00:41:40,360 --> 00:41:44,520 Dhe pastaj ne mund të hyni çfarëdo input përdorues brenda atë formë për emrin 850 00:41:44,520 --> 00:41:47,410 duke specifikuar emrin e asaj fushe. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Çdo pyetje të tjera ose ndonjë Pyetjet në këtë shembull të veçantë? 853 00:41:55,060 --> 00:41:58,275 >> Audienca: Ku është PHP? 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA: Këtu. 855 00:41:59,150 --> 00:42:01,150 Pra, kjo është tag jonë hapje për PHP. 856 00:42:01,150 --> 00:42:01,530 >> Audienca: Oh, e drejtë. 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: Po. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH Blumberg:? = Është stenografi për këtë është PHP dhe vetëm jehonë. 860 00:42:09,609 --> 00:42:10,150 Audienca: Oh. 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: Po, sorry. 862 00:42:10,720 --> 00:42:12,040 Unë duhet të ketë bërë të qartë. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH Blumberg: Print. 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA: Është vetëm funksioni që na lejon të shkruar diçka. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Pyetje e madhe. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 Pra going-- po. 869 00:42:25,495 --> 00:42:31,940 >> Audienca: A do të jetë mjaft pak e kodim dorës së PHP dhe HTML 870 00:42:31,940 --> 00:42:33,450 në quiz 1? 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA: Nuk mund të jetë një sasi mjaftë e interpretimit 873 00:42:38,810 --> 00:42:43,330 e PHP dhe HTML, jo domosdoshmërisht si një sasi të madhe të kodim, 874 00:42:43,330 --> 00:42:46,960 edhe pse ju mund të keni për të shkruar një foreach loop, edhe pse, një për lak. 875 00:42:46,960 --> 00:42:49,790 Çdo të sythe që kemi mbuluar këtu është lojë të ndershme. 876 00:42:49,790 --> 00:42:51,889 Dhe kjo është kryesisht ajo. 877 00:42:51,889 --> 00:42:53,430 HANNAH Blumberg: Unë do të jenë të përgatitur. 878 00:42:53,430 --> 00:42:57,010 Në të njëjtën mënyrë që ne të kërkuar që ju të shkruaj një bandë e C funksioneve në quiz 0, 879 00:42:57,010 --> 00:42:59,766 Unë do të jenë të përgatitur për të bërë të njëjtë në PHP dhe JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: Po. 881 00:43:00,640 --> 00:43:03,210 HANNAH Blumberg: Unë do të thoja një little-- si ne nuk jemi 882 00:43:03,210 --> 00:43:06,251 do të bëjë që ju të shkruani një HTML madhe faqe vetëm për shkak se është pak 883 00:43:06,251 --> 00:43:08,240 i lodhshëm, por ju mund të keni pjesë. 884 00:43:08,240 --> 00:43:09,310 Kjo është lojë krejtësisht të ndershme. 885 00:43:09,310 --> 00:43:11,082 Ashtu si faqe të vogël HTML, plotësisht i drejtë. 886 00:43:11,082 --> 00:43:11,623 Audienca: OK. 887 00:43:11,623 --> 00:43:13,814 Si në lidhje me në JavaScript, si dhe? 888 00:43:13,814 --> 00:43:14,730 HANNAH Blumberg: Po. 889 00:43:14,730 --> 00:43:15,250 Lojë të ndershme javascript-së. 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: Po. 891 00:43:15,635 --> 00:43:16,801 Kjo është lojë krejtësisht të ndershme. 892 00:43:16,801 --> 00:43:19,280 HANNAH Blumberg: Ne do të merrni me atë në si 10 minuta. 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL, përsëri, Strukturuar Query Language. 894 00:43:23,750 --> 00:43:28,651 Ajo në thelb na lejon të menaxhuar të dhënat e në menaxhimin e bazës së të dhënave relacionale një 895 00:43:28,651 --> 00:43:29,150 sistem. 896 00:43:29,150 --> 00:43:31,149 Kjo thjesht do të thotë në thelb se ne kemi diku 897 00:43:31,149 --> 00:43:37,980 për të ruajtur disa të dhëna që ne mund të dëshironi të përdorur në një faqe interneti apo në ndonjë formë tjetër. 898 00:43:37,980 --> 00:43:42,190 Dhe pastaj ne kemi pyetje për të marrë informacion nga database tonë, 899 00:43:42,190 --> 00:43:44,320 ose për të futur informacion në to. 900 00:43:44,320 --> 00:43:47,560 Një shumë e zakonshme ones-- UPDATE, INSERT, SELECT, dhe DELETE. 901 00:43:47,560 --> 00:43:50,790 >> Pra për UPDATE, kjo është sintaksa për përditësimin e të dhënave në një bazë të dhënash. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Përditësimi këtë tabelë të quajtur tabelë duke thënë SET 904 00:43:57,340 --> 00:44:04,170 ne mund të vënë disa vlera në të gjitha rreshta për diçka tjetër të barabartë. 905 00:44:04,170 --> 00:44:09,410 Pra, ne mund të specifikojë gjithashtu disa të veçanta shënimet që ne duam për të modifikuar 906 00:44:09,410 --> 00:44:11,240 dhe që mund të jetë duke përdorur KU. 907 00:44:11,240 --> 00:44:16,380 Dhe ne mund të specifikojë se ne duam vetëm për të modifikojë disa rreshtave ku shtëpia për, 908 00:44:16,380 --> 00:44:19,830 në qoftë se kemi pasur një tabelë të nxënësve dhe të gjithë studentët kishin shtëpi, 909 00:44:19,830 --> 00:44:24,890 kështu që ne do të modifikojë vetëm disa vlera ku një shtëpi barabartë Currier, 910 00:44:24,890 --> 00:44:25,430 për shembull. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> Për INSERT, ne mund të futni Vlerat e caktuara në një tryezë. 913 00:44:31,800 --> 00:44:35,150 Pra, INSERT INTO tryezë, dhe pastaj vlerat, 914 00:44:35,150 --> 00:44:39,080 dhe pastaj në kllapa, ne të specifikojë cilat vlera ju doni të futur. 915 00:44:39,080 --> 00:44:43,220 Pra, INSERT INTO tavolinë, col1 dhe col2, vlera është val1 dhe val2. 916 00:44:43,220 --> 00:44:48,930 Pra, kjo fut në thelb një rresht të ri në një tabelë që përmban vlerat 1 dhe 2 917 00:44:48,930 --> 00:44:50,850 nën kolonat 1 dhe 2. 918 00:44:50,850 --> 00:44:54,760 >> Dhe pastaj ne jemi duke shkuar për të shkuar mbi një shembull të shpejtë se si kjo duket 919 00:44:54,760 --> 00:44:56,310 si në database tonë pak. 920 00:44:56,310 --> 00:44:58,685 Por, kjo pyetje e fundit që unë mendoj se ne jemi duke shkuar për të shkuar mbi, 921 00:44:58,685 --> 00:45:01,450 SELECT, ajo vetëm na lejon për të zgjedhur e të dhënave nga një tavolinë 922 00:45:01,450 --> 00:45:03,080 për të ndoshta të përdorin atë më pas. 923 00:45:03,080 --> 00:45:05,830 Dhe mënyrën se si ne të bërë këtë është që ne vetëm të ruajtur atë në disa ndryshore. 924 00:45:05,830 --> 00:45:07,780 Dhe pastaj ne ndoshta mund të përdorni atë përsëri. 925 00:45:07,780 --> 00:45:10,260 >> Pra, do të thotë yll SELECT zgjidhni të gjitha. 926 00:45:10,260 --> 00:45:13,280 Kjo është vetëm një stenografi për zgjedhjen e të gjithë. 927 00:45:13,280 --> 00:45:19,760 NGA tabelë ku, ne jemi në kërkim për disa kushte të veçanta, 928 00:45:19,760 --> 00:45:22,290 Pra, ku kolona e barabartë diçka, për shembull. 929 00:45:22,290 --> 00:45:24,410 Nëse ne vetëm të kërkuar për të zgjidhni të gjitha nga tabela, 930 00:45:24,410 --> 00:45:28,400 kjo vetëm përzgjedh gjitha rubrikat dhe të gjithë rreshtat nga një tryezë. 931 00:45:28,400 --> 00:45:32,040 >> Dhe pastaj fshini nga tryezë KU col barabartë diçka, 932 00:45:32,040 --> 00:45:36,440 kjo vetëm fshin disa rresht nga tryezën tonë 933 00:45:36,440 --> 00:45:38,860 ku ne kemi disa kushte specifike. 934 00:45:38,860 --> 00:45:41,870 Në këtë rast, kushtet janë kolonë është e barabartë me diçka. 935 00:45:41,870 --> 00:45:43,460 Pra, vetëm një shembull të shpejtë të kësaj. 936 00:45:43,460 --> 00:45:49,100 Në qoftë se ne kemi këtë tabelë të drejtë këtu dhe ne futur atë në një tavolinë, këto vlera, 937 00:45:49,100 --> 00:45:50,400 që do të futur një rresht të ri. 938 00:45:50,400 --> 00:45:56,380 Dhe në qoftë se ne kishim auto-rritje të, kjo do të vetëm ardhura ID nga 0 deri në 1 deri në 2. 939 00:45:56,380 --> 00:46:00,010 >> Nëse ne të gjithë të zgjedhur nga studentët, atë vetëm kthen të gjitha fushat dhe të gjitha rreshtave. 940 00:46:00,010 --> 00:46:02,430 Ku vit është më i madh se ose e barabartë me vitin 2016, 941 00:46:02,430 --> 00:46:04,390 që vetëm do të kthehen Hannah dhe veten. 942 00:46:04,390 --> 00:46:08,360 Dhe pastaj, nëse ne vetëm të përzgjedhur id vit dhe vit nga studentët 943 00:46:08,360 --> 00:46:11,710 ku shtëpia është Cabot House, që do të, përsëri, kthehen Ana dhe veten. 944 00:46:11,710 --> 00:46:14,430 >> Pastaj në qoftë se ne fshirë nga studentët ku emri është e barabartë me Rob, 945 00:46:14,430 --> 00:46:16,760 që do të fshini të gjithë rresht. 946 00:46:16,760 --> 00:46:19,696 Dhe pastaj në qoftë se ne të vendosur emri, studentët UPDATE 947 00:46:19,696 --> 00:46:21,570 Emri SET barabartë me Daven KU shtëpi është e barabartë 948 00:46:21,570 --> 00:46:27,010 Cabot House, që do të shkojë në këto rreshta dhe pastaj update emrin. 949 00:46:27,010 --> 00:46:31,470 >> Dhe pastaj disa lloje të SQL të dhënat janë CHAR, VARCHAR, INT, dhe noton. 950 00:46:31,470 --> 00:46:32,760 Këto janë lojë të ndershme. 951 00:46:32,760 --> 00:46:36,740 Unë do të shkoj përsëri dhe sigurohuni që ju e dini 952 00:46:36,740 --> 00:46:40,930 dhe kanë ata në mashtrojnë fletë tuaj, çfarë secili prej këtyre karaktereve 953 00:46:40,930 --> 00:46:44,140 janë përdorur për të, çfarë keni përdorur ato në psets tuaja, 954 00:46:44,140 --> 00:46:48,050 dhe sigurohuni që ju jeni të njohur dhe të rehatshme me të paturit e për të zgjedhur 955 00:46:48,050 --> 00:46:51,450 nga llojet e ndryshme të të dhënave në pset tuaj. 956 00:46:51,450 --> 00:46:51,950 Po. 957 00:46:51,950 --> 00:46:54,300 >> Audienca: Çka është ruajtur që tavolinë? 958 00:46:54,300 --> 00:46:57,119 Po, ku është ruajtur kjo tryezë? 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA: E pra, tani, ajo nuk është ruajtur. 960 00:46:59,160 --> 00:47:00,700 Gjithsesi, ku ruhet kjo tryezë? 961 00:47:00,700 --> 00:47:04,503 Por ajo mund të ruhet në një bazë të dhënash SQL. 962 00:47:04,503 --> 00:47:07,330 >> Audienca: Dhe ku është baza e të dhënave SQL? 963 00:47:07,330 --> 00:47:11,200 Në kompjuter, internet diku, server? 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA: Kjo mund të jetë një numër i gjërave të ndryshme. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH Blumberg: Kemi interfaced me Tabelat SQL kryesisht me phpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 Pra, ne mund të pyesim një server për të ruajtur ato për ne. 967 00:47:22,060 --> 00:47:23,830 Ne mund të ruajtur ato në kompjuterin tonë. 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA: Kjo varet vetëm nga si ju doni të bëni atë për veten tuaj. 969 00:47:27,950 --> 00:47:30,075 Por, ne kemi qenë ruajtjen ato, siç u përmend Hannah, 970 00:47:30,075 --> 00:47:31,755 në phpMyAdmin, e cila është në internet. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 Dhe pastaj mënyra që ne përdorim PHP dhe SQL, ne dyqan atë 973 00:47:39,280 --> 00:47:43,450 në disa ndryshore ajo që ne kemi kërkohet për. 974 00:47:43,450 --> 00:47:48,370 >> Pra, nëse kemi zgjedhur të gjithë nga historia ku user_id barabartë seancën e id, 975 00:47:48,370 --> 00:47:53,900 që do të zgjidhni të gjitha rreshtave për person të veçantë i cili 976 00:47:53,900 --> 00:47:58,327 është regjistruar në nga historia tavolinë dhe zgjidhur ato në rreshta. 977 00:47:58,327 --> 00:48:00,410 Një gjë e ftohtë të dini është që funksion CS50 e query 978 00:48:00,410 --> 00:48:02,180 mbron kundër tags SQL injeksion. 979 00:48:02,180 --> 00:48:07,420 Kjo thjesht do të thotë se kjo e bën të sigurt input që është futur është e saktë 980 00:48:07,420 --> 00:48:09,920 dhe se personi që po hyn input 981 00:48:09,920 --> 00:48:15,100 nuk është duke u përpjekur për të dhëna disa me qëllim të keq Kodi për ose të bjerë tavolinat tona 982 00:48:15,100 --> 00:48:17,305 ose fshini çdo gjë brenda database tonë. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> Një pasqyrë të shpejtë të Model Model Shiko Kontrolluesi, 985 00:48:23,400 --> 00:48:27,360 kjo është vetëm një mënyrë e organizimit dhe të menduarit në lidhje me kodin. 986 00:48:27,360 --> 00:48:29,100 Kjo është përsëri një paradigmë të projektimit. 987 00:48:29,100 --> 00:48:33,380 Çfarë kjo do të thotë është se ne can-- dhe kjo është praktikë e mirë 988 00:48:33,380 --> 00:48:37,790 për të ndarë pjesë të ndryshme i kodit tonë dhe atë që ata 989 00:48:37,790 --> 00:48:40,530 kontrolluar në këto tre paradigmat. 990 00:48:40,530 --> 00:48:46,700 >> Pra mendimi ynë është më shpesh tonë templates, faqosje ynë, rruga 991 00:48:46,700 --> 00:48:48,260 që ne kemi vendosur se si kodi ynë duket. 992 00:48:48,260 --> 00:48:55,190 Kjo është kryesisht dosjet tona CSS dhe mënyra që ne të përcaktuar hartimin e kodit tonë, 993 00:48:55,190 --> 00:48:55,710 në thelb. 994 00:48:55,710 --> 00:48:59,280 Kontrollues ynë është kryesisht se çfarë ne kemi qenë duke bërë me PHP fotografi. 995 00:48:59,280 --> 00:49:03,030 Pra, përsëri, duke punuar me informacioni që ne kemi 996 00:49:03,030 --> 00:49:06,700 dhe përcaktimin se si informacion është përdorur, 997 00:49:06,700 --> 00:49:10,660 dhe pastaj duke kaluar këtë informacion ose në pamje ose modelit. 998 00:49:10,660 --> 00:49:13,880 Dhe modeli i, mënyra që ne kemi qenë duke e përdorur është e ka qenë baza e të dhënave tona, 999 00:49:13,880 --> 00:49:17,510 kështu që ku informacioni ynë është ruajtur kështu që ajo ka diku 1000 00:49:17,510 --> 00:49:21,490 për të jetuar në, dhe ndonjë nga kodin që lidhet me rrugën 1001 00:49:21,490 --> 00:49:25,410 që ne të merrni këtë informacion ose mënyrë që ne update këtë informacion. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> Pra, në modelin MVC, HTTP kërkesa janë dërguar në një web server. 1004 00:49:33,200 --> 00:49:36,220 Pastaj, interpreton kontrollues kërkesa nga përdoruesit 1005 00:49:36,220 --> 00:49:38,260 dhe pastaj validates dhëna përdoruesi. 1006 00:49:38,260 --> 00:49:41,580 Është fakultative se ne kemi kontrollues të komunikuar 1007 00:49:41,580 --> 00:49:44,000 me një model, kështu që diçka si database tonë 1008 00:49:44,000 --> 00:49:47,500 ose disa funksionalitete të tjera se relays informacion. 1009 00:49:47,500 --> 00:49:50,340 Dhe pastaj në fund, kontrollues kalon informacion mbi pikëpamjen 1010 00:49:50,340 --> 00:49:52,090 në mënyrë që mund të jetë dhënë dhe se ajo mund të 1011 00:49:52,090 --> 00:49:55,860 bëhen të dukshme për çdo person qasjes në web faqe. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> Ndonje pyetje? 1014 00:50:01,340 --> 00:50:01,840 Mbresëlënës. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 Pra, përsëri, modeli, funksioni i saj, përsëri, 1017 00:50:08,469 --> 00:50:11,260 është ruajtje e vazhdueshme e informacionit, menaxhimin dhe organizimin e të dhënave. 1018 00:50:11,260 --> 00:50:13,890 Dhe ajo që kemi parë deri tani është baza e të dhënave MySQL 1019 00:50:13,890 --> 00:50:16,200 dhe çdo fotografi të dhënave që mund të përdorin. 1020 00:50:16,200 --> 00:50:20,580 >> Shiko, paraqitja e informacionit për përdoruesi, UI, ose user interface. 1021 00:50:20,580 --> 00:50:22,350 Dhe shembulli i kësaj është HTML. 1022 00:50:22,350 --> 00:50:23,950 Dhe pastaj ne mund të kemi PHP minimale. 1023 00:50:23,950 --> 00:50:28,360 Pra, një për lak që iterates mbi të dhënat që janë të shtypura nga 1024 00:50:28,360 --> 00:50:30,720 është pjesë e mendimit, si krahasim me kontrollues. 1025 00:50:30,720 --> 00:50:35,660 Dhe pastaj një shumë e dosjeve tona PHP bien në kategorinë kontrollues. 1026 00:50:35,660 --> 00:50:38,410 Ajo vetëm trajton kërkesat e përdoruesit dhe merr informacion nga modeli. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> Hedhur në Dokumentin Modeli objekt, kjo vetëm 1029 00:50:45,590 --> 00:50:47,700 i referohet mënyrës HTML Dokumentet janë të organizuar. 1030 00:50:47,700 --> 00:50:51,600 Dhe ata janë të organizuar në një pemë strukturë që ka një hierarki. 1031 00:50:51,600 --> 00:50:56,720 Pra, nëse ne kemi qasje në [e padëgjueshme] përfaqësimi i dokumentit, 1032 00:50:56,720 --> 00:51:02,750 ne mund të punojnë me dokumentin, si ne manipuluar objekte në thelb. 1033 00:51:02,750 --> 00:51:06,630 >> Dhe për të bërë këtë një pak më të qarta, kur 1034 00:51:06,630 --> 00:51:10,540 ne kemi një shumë të tonë tags ndryshme të përgjigjet 1035 00:51:10,540 --> 00:51:12,590 të rrugëve të ndryshme në pemë tonë. 1036 00:51:12,590 --> 00:51:17,070 Dhe pastaj për këtë shembull, ne kanë filluar nyjen dokument. 1037 00:51:17,070 --> 00:51:20,010 Ne kemi, pra, nyje ynë HTML që ndan në kokë dhe në trup. 1038 00:51:20,010 --> 00:51:22,810 Kokë ka titullin dhe pastaj titulli përmban hello, botën. 1039 00:51:22,810 --> 00:51:24,860 Dhe trupi ynë përmban vetëm hello, bota po ashtu. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> Pra, çdo pyetje në ndonjë nga gjëra që ne të mbuluara deri tani? 1042 00:51:31,900 --> 00:51:35,891 Dhe nëse jo, Hannah do të marrë përsipër me JavaScript. 1043 00:51:35,891 --> 00:51:36,390 Mbresëlënës. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH Blumberg: OK, cool. 1045 00:51:37,473 --> 00:51:40,980 Nëse diçka vjen deri me PHP ose HTML, ose ndonjë gjëra Maria mbuluar, 1046 00:51:40,980 --> 00:51:42,700 ne gjithmonë mund të bëj një pauzë. 1047 00:51:42,700 --> 00:51:46,430 Ne jemi duke bërë më të mirë në prapë kohë, kështu awesome. 1048 00:51:46,430 --> 00:51:48,770 Dhe vetëm për të shkuar mbrapa me të vërtetë shpejt me këtë, 1049 00:51:48,770 --> 00:51:51,010 në qoftë se ju shikoni në çdo Provimi i vitit të kaluar, kjo 1050 00:51:51,010 --> 00:51:54,120 vjen deri either-- këtu është disa HTML, e bëjnë këtë diagram. 1051 00:51:54,120 --> 00:51:58,380 Apo këtu është ky diagram, të bëjë disa HTML, kështu që patjetër praktikë që. 1052 00:51:58,380 --> 00:52:01,500 Dhe pastaj kjo është një garantuar pyetje që ju mund të merrni të drejtë. 1053 00:52:01,500 --> 00:52:02,000 Ftohtë. 1054 00:52:02,000 --> 00:52:04,510 Pra, le të flasim për JavaScript dhe se si ajo është pak 1055 00:52:04,510 --> 00:52:09,130 ndryshe nga gjuhë si PHP dhe C, të dy gjuhët kemi parë më parë. 1056 00:52:09,130 --> 00:52:10,780 Pra numër një, ajo është shtypur lirshëm. 1057 00:52:10,780 --> 00:52:14,630 Kjo është si PHP, por ndryshe nga C. 1058 00:52:14,630 --> 00:52:15,890 >> Është një gjuhë interpretuar. 1059 00:52:15,890 --> 00:52:19,870 Përsëri, kjo është si PHP, ndryshe nga C. Dhe kjo 1060 00:52:19,870 --> 00:52:24,630 do të na lejojë të use-- atë punon me të vërtetë bukur me faqet e internetit. 1061 00:52:24,630 --> 00:52:28,350 Ajo do të na lejojë për të manipuluar përmbajtja dhe se si ajo duket 1062 00:52:28,350 --> 00:52:30,300 dhe atë që bën. 1063 00:52:30,300 --> 00:52:32,330 >> Ne jemi duke shkuar për të parë pak e Ajax. 1064 00:52:32,330 --> 00:52:36,140 Kjo na lejon të komunikojnë asynchronously me servera të ndryshëm 1065 00:52:36,140 --> 00:52:37,950 dhe për të marrë informacion. 1066 00:52:37,950 --> 00:52:42,820 Dhe kjo është ajo që me të vërtetë ndan JavaScript nga PHP dhe C 1067 00:52:42,820 --> 00:52:45,590 është se ajo është klient-side. 1068 00:52:45,590 --> 00:52:49,860 Të dy PHP dhe C janë zakonisht server-side. 1069 00:52:49,860 --> 00:52:51,960 >> Për pjesën më të madhe dhe pothuajse tërësisht çfarë 1070 00:52:51,960 --> 00:52:53,900 ne kemi parë, të paktën në kjo klasë, JavaScript 1071 00:52:53,900 --> 00:52:57,040 vepron në klient-side, që do të thotë se shfletuesi është në fakt 1072 00:52:57,040 --> 00:52:58,597 përgjegjës për drejtimin e tij. 1073 00:52:58,597 --> 00:53:01,180 Dhe kjo do të thotë se ne nuk bëjmë nevojë për të bashkëvepruar me server. 1074 00:53:01,180 --> 00:53:04,380 Pra, kjo do të thotë se mund të jetë shumë më të shpejtë sepse kjo është në fakt vetëm se është Chrome, 1075 00:53:04,380 --> 00:53:10,420 kjo është Safari, Firefox-i është, çdo gjë që përdorni të vërtetë drejtimin tuaj JavaScript. 1076 00:53:10,420 --> 00:53:12,290 >> Audienca: Çfarë do të thotë asinkron? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH Blumberg: Ah, çfarë do asynchronously do të thotë? 1078 00:53:13,620 --> 00:53:14,250 Pyetje e madhe. 1079 00:53:14,250 --> 00:53:17,890 Asynchronously means-- mirë, përmbajtja në të cilën 1080 00:53:17,890 --> 00:53:22,140 ne përdorim është, në rregull, ne janë duke krijuar një web faqe 1081 00:53:22,140 --> 00:53:23,860 dhe ne kemi nevojë për të marrë disa informata. 1082 00:53:23,860 --> 00:53:28,250 Pra, me shembullin e mashup, disa informata që ne të mund të dëshironi 1083 00:53:28,250 --> 00:53:30,580 është tituj neni. 1084 00:53:30,580 --> 00:53:33,330 Tani, ne could-- një mundësi është për të bërë atë sinkrone 1085 00:53:33,330 --> 00:53:37,940 dhe kjo do të thotë Le të ndaluar, shkoni merrni artikullin, 1086 00:53:37,940 --> 00:53:41,275 merrni artikull mbrapa, dhe pastaj bëjnë, por që do të jetë me të vërtetë i ngadalshëm. 1087 00:53:41,275 --> 00:53:44,150 Kjo do të jetë një përdorues përvojë e keqe sepse ju vetëm do të jetë i ulur 1088 00:53:44,150 --> 00:53:46,630 atje duke pritur për diçka për t'u përgjigjur. 1089 00:53:46,630 --> 00:53:50,020 >> Asynchronously do të thotë që ne do të vazhdojë duke shkuar në lidhje me biznesin tonë, 1090 00:53:50,020 --> 00:53:52,529 pasqyrim faqe, dhe ne do të dërgoj një kërkesë 1091 00:53:52,529 --> 00:53:54,570 që është lloj i do të ndodhin në sfond. 1092 00:53:54,570 --> 00:53:57,610 Unë mendoj se ne përdorim shembullin në Leksioni i quajtur Rob dhe duke thënë: 1093 00:53:57,610 --> 00:53:59,980 hej, ju mund të shikoni këtë ide për mua dhe të kthehet në mua, 1094 00:53:59,980 --> 00:54:02,870 në krahasim me vetëm mua duke pritur në telefon. 1095 00:54:02,870 --> 00:54:07,020 Pra asynchronously do të thotë kjo ndodh në sfond larg nesh 1096 00:54:07,020 --> 00:54:08,676 paralelisht. 1097 00:54:08,676 --> 00:54:10,400 >> Pyetje e madhe. 1098 00:54:10,400 --> 00:54:11,830 Ndonje gje tjeter? 1099 00:54:11,830 --> 00:54:12,330 I madh. 1100 00:54:12,330 --> 00:54:15,020 Ne do të kërcejnë më shumë në Kërkesat asinkron me Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> Audienca: A JavaScript-- ku bën ajo bie me Model-View-Controller? 1102 00:54:18,287 --> 00:54:19,620 HANNAH Blumberg: pyetje e madhe. 1103 00:54:19,620 --> 00:54:23,320 Ku bie JavaScript me Model-View-Controller? 1104 00:54:23,320 --> 00:54:23,930 Hm. 1105 00:54:23,930 --> 00:54:28,350 Unë mendoj se mund të fall-- kështu që ne nuk bëjmë zakonisht 1106 00:54:28,350 --> 00:54:31,340 si për të pllaquris atë në se paradigmë, por unë mendoj unë do them, 1107 00:54:31,340 --> 00:54:34,280 OK, kështu JavaScript në fakt do të lejojë 1108 00:54:34,280 --> 00:54:37,587 ne për të mbledhur të dhëna, interpretojnë të dhënat, në të vërtetë të bëjë 1109 00:54:37,587 --> 00:54:38,920 gjëra kuptimplota me të dhënat. 1110 00:54:38,920 --> 00:54:41,100 Në këtë mënyrë, ajo është shumë e kontrollit-si. 1111 00:54:41,100 --> 00:54:43,900 >> Por ajo gjithashtu do të na lejojë të shfaqin gjëra dhe të shtypura gjëra. 1112 00:54:43,900 --> 00:54:47,021 Në këtë mënyrë, kjo është shumë pikëpamje të ngjashme. 1113 00:54:47,021 --> 00:54:47,520 Po. 1114 00:54:47,520 --> 00:54:51,710 Pra, kjo është lloj i si PHP në ku ajo mund të lloj të jenë të dyja. 1115 00:54:51,710 --> 00:54:53,330 Pyetje e mirë. 1116 00:54:53,330 --> 00:54:55,209 Ndonje gje tjeter? 1117 00:54:55,209 --> 00:54:56,000 Të gjithë të drejtë, i tmerrshëm. 1118 00:54:56,000 --> 00:54:57,120 Moving drejtë së bashku. 1119 00:54:57,120 --> 00:54:59,110 >> Pra, le të shohim një shembull se si ne mund të përdorim 1120 00:54:59,110 --> 00:55:02,250 JavaScript në një nga programet tona të internetit. 1121 00:55:02,250 --> 00:55:05,680 Kështu që unë do të konsideroj këtë index.html me një bandë e HTML. 1122 00:55:05,680 --> 00:55:08,800 Dhe gjë që unë dua që ju të përqëndrohet në është ky tag script. 1123 00:55:08,800 --> 00:55:13,280 Dhe kjo thotë: OK, unë dua të drejtuar disa JavaScript dhe këtu është vendi ku ai jeton. 1124 00:55:13,280 --> 00:55:15,400 Ajo jeton në hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> Dhe shumë e shumë si CSS, ne mund të vënë JavaScript në HTML. 1126 00:55:21,120 --> 00:55:24,000 Pse mund të duam për të ndarë atë? 1127 00:55:24,000 --> 00:55:24,500 Po. 1128 00:55:24,500 --> 00:55:25,486 >> Audienca: lehtë për të rishkruar? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH Blumberg: Po. 1130 00:55:26,402 --> 00:55:28,450 Është më e lehtë për t'u përdorur të gjithë faqet e ndryshme të internetit. 1131 00:55:28,450 --> 00:55:29,980 Ajo mban gjëra të pastër. 1132 00:55:29,980 --> 00:55:32,090 Është vetëm praktikë e mirë. 1133 00:55:32,090 --> 00:55:32,590 Mbresëlënës. 1134 00:55:32,590 --> 00:55:33,930 Përgjigje e mirë. 1135 00:55:33,930 --> 00:55:36,690 Aq të mirë, kështu që kjo po ndodh të jetë index.html ynë. 1136 00:55:36,690 --> 00:55:39,430 Dhe pastaj poshtë këtu është tonë vogël skedë pak JavaScript. 1137 00:55:39,430 --> 00:55:42,410 >> Dhe e gjithë kjo thotë se është vigjilent Përshëndetje, bota. 1138 00:55:42,410 --> 00:55:46,040 Pra, ajo që ndodh është kur Kjo faqe renders-- 1139 00:55:46,040 --> 00:55:49,680 kështu që në qoftë se ju shkoni në çfarëdo faqen kjo is-- gjithçka që do të ndodhë 1140 00:55:49,680 --> 00:55:53,330 po ajo do të thotë, OK, unë jam duke shkuar për të drejtuar këtë kod JavaScript. 1141 00:55:53,330 --> 00:55:56,370 Dhe ky kod JavaScript vetëm thotë vigjilent Përshëndetje, bota. 1142 00:55:56,370 --> 00:55:59,090 Kështu që unë jam duke shkuar për të marrë këtë miqësore pak pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Ftohtë? 1144 00:56:00,360 --> 00:56:04,746 Kjo është lloj i si tonë të parë JavaScript program, Përshëndetje tonë, bota. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Le të shikojmë pak më shumë në lidhje me atë Sintaksa e JavaScript duket si. 1147 00:56:12,190 --> 00:56:16,330 Dhe konkretisht, le të krahasojmë atë me C dhe PHP, të cilat ne kemi parë më parë. 1148 00:56:16,330 --> 00:56:20,610 >> Në JavaScript, ne do të kemi var, emri i variablit, dhe pastaj 1149 00:56:20,610 --> 00:56:21,690 vlera e saj aktuale. 1150 00:56:21,690 --> 00:56:26,170 Dhe ne nuk specifikon një lloj, vetëm si në PHP, por shumë ndryshe në C. 1151 00:56:26,170 --> 00:56:28,850 Kështu për shembull, në qoftë se ne të kërkuar për të ruajtur vlerën e 50, 1152 00:56:28,850 --> 00:56:32,490 në C, ne do të duhet të them, hej, C, unë dua një numër të plotë, 1153 00:56:32,490 --> 00:56:35,076 Unë jam duke shkuar për të thirrur atë Unë, dhe vlera e saj është 50. 1154 00:56:35,076 --> 00:56:36,450 Në PHP, kjo është pak më e lehtë. 1155 00:56:36,450 --> 00:56:41,880 Ne themi, hej, unë dua një ndryshore i kërkova dhe vlera e saj është 50. 1156 00:56:41,880 --> 00:56:45,890 Shumë të ngjashme, në JavaScript, ne them hej, unë dua një variabël i kërkova, 1157 00:56:45,890 --> 00:56:47,080 vlera e saj është 50. 1158 00:56:47,080 --> 00:56:52,140 Çdo herë pasuese që unë e përdor unë, unë nuk kam nevojë për të shkruar var. 1159 00:56:52,140 --> 00:56:53,810 Është vetëm unë nga ky moment. 1160 00:56:53,810 --> 00:56:58,660 Në të njëjtën mënyrë, në C, ku pasi ne themi int i, ne vetëm përdorim i. 1161 00:56:58,660 --> 00:57:00,340 Ftohtë? 1162 00:57:00,340 --> 00:57:01,800 Në rregull. 1163 00:57:01,800 --> 00:57:03,710 >> Duke shkuar për në sythe, për fat të mirë, këto pothuajse 1164 00:57:03,710 --> 00:57:06,720 shikoni exactly-- Unë mendoj se ata janë të njëjtë si atë 1165 00:57:06,720 --> 00:57:09,799 unazore do të duket si në diçka si C ku tuaj për lak 1166 00:57:09,799 --> 00:57:11,840 do të ketë tre parts-- një initialization, 1167 00:57:11,840 --> 00:57:13,640 një kusht, dhe një update. 1168 00:57:13,640 --> 00:57:15,340 Një lak, ndërsa, ajo duket e njëjtë e saktë. 1169 00:57:15,340 --> 00:57:16,390 Ne vetëm t'i jepte një kusht. 1170 00:57:16,390 --> 00:57:18,264 >> Dhe një për ta bërë, ndërsa lak, përsëri, saktësisht e njëjtë. 1171 00:57:18,264 --> 00:57:20,190 Ne u japim atë një kusht. 1172 00:57:20,190 --> 00:57:24,510 Le të thonë se unë të kërkuar për të iterate over-- Unë doja të bëja diçka pesë herë. 1173 00:57:24,510 --> 00:57:27,840 Në C, ne mund të shkruani për init i barabartë me 0. 1174 00:57:27,840 --> 00:57:30,480 i është më pak se 5, i ++. 1175 00:57:30,480 --> 00:57:34,240 Dallimi i vetëm, në JavaScript, në vend të thënë int i barabartë me 0, 1176 00:57:34,240 --> 00:57:36,820 ne themi var i barabartë me 0. 1177 00:57:36,820 --> 00:57:38,370 Bukur. 1178 00:57:38,370 --> 00:57:41,320 Ky është i vetmi ndryshim. 1179 00:57:41,320 --> 00:57:43,200 Çdo pyetje në ndonjë nga se? 1180 00:57:43,200 --> 00:57:44,160 Po. 1181 00:57:44,160 --> 00:57:48,480 >> Audienca: Pra, në PHP, është e njëjta gjë, me përjashtim por si një variabël? 1182 00:57:48,480 --> 00:57:49,564 Apo ishte kjo një shembull var? 1183 00:57:49,564 --> 00:57:50,480 HANNAH Blumberg: Po. 1184 00:57:50,480 --> 00:57:52,310 Pra në PHP, ajo do të jetë një shenjë dollar. 1185 00:57:52,310 --> 00:57:59,450 Kështu ajo do të $ i të barabartëve 0, $ i është më pak se 5, $ i ++. 1186 00:57:59,450 --> 00:58:02,490 Pyetje e madhe. 1187 00:58:02,490 --> 00:58:04,570 >> Tani le të flasim për Deklaratat funksion. 1188 00:58:04,570 --> 00:58:07,010 Në C, kur kemi deklaruar një funksion, ne i dha një emër 1189 00:58:07,010 --> 00:58:08,490 dhe ne ia dha disa parametra. 1190 00:58:08,490 --> 00:58:10,670 Dhe në fillim, kemi shkruar llojin. 1191 00:58:10,670 --> 00:58:12,440 Në JavaScript, të gjithë ne duhet të bëni është të shkruani 1192 00:58:12,440 --> 00:58:15,080 funksioni fjalen që thotë, hej, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 Unë jam gati për të përcaktuar një funksion. 1194 00:58:16,570 --> 00:58:18,520 >> Në këtë rast, ajo ka shumë emrin. 1195 00:58:18,520 --> 00:58:20,820 Dhe ai merr dy argumente, x dhe y. 1196 00:58:20,820 --> 00:58:23,280 Vini re se ne nuk e kujdesit për llojet e x dhe y. 1197 00:58:23,280 --> 00:58:26,280 Dhe ashtu si C, ne kemi kjo fjalen kthim, 1198 00:58:26,280 --> 00:58:29,140 kështu që ne mund të bëjmë diçka si kthimit x dhe y. 1199 00:58:29,140 --> 00:58:32,540 >> Dhe tani pasi kemi shkruar këtë për herë të parë funksion, ne mund të përdorim shumë kudo. 1200 00:58:32,540 --> 00:58:34,740 Dhe kjo është krejtësisht në rregull. 1201 00:58:34,740 --> 00:58:37,530 Një gjë me të vërtetë ftohtë në lidhje JavaScript që është shumë ndryshe nga C 1202 00:58:37,530 --> 00:58:40,770 është se funksionon mund të trajtohen si vlera. 1203 00:58:40,770 --> 00:58:43,895 Pra, ne mund të bëjmë diçka si këtu ku unë mendoj unë të mbuluar këtë up-- 1204 00:58:43,895 --> 00:58:46,400 I mbuluar shumën var part-- dhe ne vetëm tha 1205 00:58:46,400 --> 00:58:49,850 Funksioni xy barabartë kthimit x plus y. 1206 00:58:49,850 --> 00:58:52,140 >> Kjo është ajo që do të quhet një funksion anonim. 1207 00:58:52,140 --> 00:58:53,920 Kjo është një funksion pa një emër. 1208 00:58:53,920 --> 00:58:56,290 Ndërsa ky thotë funksion shuma, blah, blah, blah, 1209 00:58:56,290 --> 00:58:59,340 kjo do të thoshte vetëm funksionin. 1210 00:58:59,340 --> 00:59:02,020 Por tani, edhe pse unë kam ky funksion anonim, 1211 00:59:02,020 --> 00:59:03,630 se funksioni është me të vërtetë vetëm një vlerë. 1212 00:59:03,630 --> 00:59:05,160 Ne mund të trajtojnë atë si një vlerë. 1213 00:59:05,160 --> 00:59:10,180 >> Pra, ne mund ta ruani atë në një variabël të njëjtën gjë mënyrë ne mund të ruani 50 në një variabël. 1214 00:59:10,180 --> 00:59:13,870 Pra, ne mund të themi, OK, unë dua një ndryshueshme, ajo që quhet shuma, 1215 00:59:13,870 --> 00:59:16,011 dhe kjo është ky funksion. 1216 00:59:16,011 --> 00:59:18,760 Pra, këto dy gjëra janë në të vërtetë do të bëjë të njëjtën gjë e saktë, 1217 00:59:18,760 --> 00:59:21,576 por sintaksa është pak të ndryshme dhe lloji i një shënim fun. 1218 00:59:21,576 --> 00:59:22,076 Po. 1219 00:59:22,076 --> 00:59:25,548 >> Audienca: Pra, ju mund të telefononi një funksion që ishte anonim duke thënë: 1220 00:59:25,548 --> 00:59:28,244 kllapa sum 2, 5? 1221 00:59:28,244 --> 00:59:29,160 HANNAH Blumberg: Po. 1222 00:59:29,160 --> 00:59:32,280 Ju mund të telefononi këtë anonim funksion në të njëjtën mënyrë. 1223 00:59:32,280 --> 00:59:33,350 Ju do të bëni shumë (2, 5) ;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 Kjo do të ishte krejtësisht në rregull. 1226 00:59:38,200 --> 00:59:41,575 >> Në qoftë se unë nuk e kam bërë shuma var barabartë funksion, në qoftë se unë vetëm të fshihet 1227 00:59:41,575 --> 00:59:45,480 this-- Unë e di se është në dorën time, por të pretendojë Unë fshihet this-- pastaj 1228 00:59:45,480 --> 00:59:46,964 se funksioni është lloj i vetëm shkuar. 1229 00:59:46,964 --> 00:59:49,630 Ju kurrë nuk mund të përdorni atë përsëri për shkak ju nuk keni një emër për të. 1230 00:59:49,630 --> 00:59:53,497 Është e vështirë për t'iu referuar diçkaje ju nuk e dini se çfarë për të thirrur. 1231 00:59:53,497 --> 00:59:54,080 Pyetje e mirë. 1232 00:59:54,080 --> 00:59:54,580 Po. 1233 00:59:54,580 --> 00:59:59,580 >> Audienca: A mund të referencës shumë në vende të tjera me vlerë të x plus y? 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH Blumberg: A mund të shuma referencë në vende të tjera 1235 01:00:01,940 --> 01:00:03,360 me x vlerës plus y? 1236 01:00:03,360 --> 01:00:05,130 Unë nuk jam plotësisht i sigurt se çfarë ju thotë. 1237 01:00:05,130 --> 01:00:10,582 >> Audienca: Pra, e kaluara juaj gjysmë-anonim funksion është shuma është e barabartë me kjo 1238 01:00:10,582 --> 01:00:14,452 funksion anonim, kështu që shuma është tani një variabël që ju can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH Blumberg: E drejta. 1240 01:00:15,410 --> 01:00:18,980 Pra, shuma është e ndryshueshme, por kjo është actually-- 1241 01:00:18,980 --> 01:00:23,770 kështu që shuma është një ndryshore të cilit Vlera është funksioni. 1242 01:00:23,770 --> 01:00:27,030 Pra, kjo është një funksion, që është lloj i një gjë e pazakontë për të përfundojë kokën tuaj rreth 1243 01:00:27,030 --> 01:00:29,880 që ne kemi qenë duke luajtur me C dhe ju nuk mund ta bëni atë në C. 1244 01:00:29,880 --> 01:00:32,679 Por tani ne mund të telefononi mbledhë njëjtën mënyrë ne mund ta quajmë shumë këtu. 1245 01:00:32,679 --> 01:00:33,220 Audienca: OK. 1246 01:00:33,220 --> 01:00:33,970 HANNAH Blumberg: Po. 1247 01:00:33,970 --> 01:00:34,553 Pyetje e mirë. 1248 01:00:34,553 --> 01:00:35,438 Po. 1249 01:00:35,438 --> 01:00:39,862 >> Audienca: Pra, ne nuk e përdorim prototipa në PHP ose JavaScript? 1250 01:00:39,862 --> 01:00:42,070 HANNAH Blumberg: Jo, ne nuk kanë nevojë të përdorin prototipa, 1251 01:00:42,070 --> 01:00:43,880 sidomos në JavaScript. 1252 01:00:43,880 --> 01:00:49,380 Pra, një praktikë e keqe gjë që unë jam i do të thotë se ju nuk duhet të bëni 1253 01:00:49,380 --> 01:00:52,620 është që ju nuk keni për të shkruar var I = 50. 1254 01:00:52,620 --> 01:00:54,840 Ju vetëm mund të fillojnë të bëjnë I = 50. 1255 01:00:54,840 --> 01:00:57,490 Dhe vetëm do të bëjë unë një ndryshore globale. 1256 01:00:57,490 --> 01:01:00,550 >> Është praktikë shumë e keqe për kurrë nuk thonë explicity var unë, 1257 01:01:00,550 --> 01:01:01,800 por kjo është diçka që ju mund të bëni. 1258 01:01:01,800 --> 01:01:03,591 Përkthyesi nuk është do të çirrem në ju. 1259 01:01:03,591 --> 01:01:05,920 JavaScript është shumë i ngjashëm, ju mund të bëni çfarë të doni. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 Oh me falni. 1262 01:01:09,800 --> 01:01:10,300 Ka dy. 1263 01:01:10,300 --> 01:01:12,150 Në pantallona portokalli. 1264 01:01:12,150 --> 01:01:13,190 Shkoni përpara. 1265 01:01:13,190 --> 01:01:14,390 >> Audienca: Jo, ju shkoni në fillim. 1266 01:01:14,390 --> 01:01:16,765 >> Audienca: Jo, unë isha vetëm duke thënë Unë nuk e kam dorën time deri. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 NE RREGULL. 1269 01:01:20,748 --> 01:01:26,604 Pra, nëse ju keni qenë të thirrur që për herë të parë, tani të përmbledhur, 1270 01:01:26,604 --> 01:01:29,864 ne e quajmë atë në të njëjtën mënyrë, x, y, si çdo herë të vetme? 1271 01:01:29,864 --> 01:01:30,780 HANNAH Blumberg: Po. 1272 01:01:30,780 --> 01:01:32,572 Pra, këto dy thelb bëjë të njëjtën gjë. 1273 01:01:32,572 --> 01:01:35,113 Audienca: Dhe çfarë është përparësi e përdorimit të një ose tjetër? 1274 01:01:35,113 --> 01:01:37,500 HANNAH Blumberg: Nuk ka avantazh e përdorur një ose tjetrit. 1275 01:01:37,500 --> 01:01:40,080 Unë vetëm të kërkuar për të treguar ju dy pjesë të ndryshme të sintaksës. 1276 01:01:40,080 --> 01:01:42,770 Shumë herë ku anonim Funksionet e kanë një qëllim 1277 01:01:42,770 --> 01:01:48,220 është nëse argumenti në një tjetër Funksioni duhet të jetë një funksion. 1278 01:01:48,220 --> 01:01:50,600 Dhe ne do të shohim se në vetëm një të dytë me Ajax. 1279 01:01:50,600 --> 01:01:53,577 >> Pra, nëse kjo nuk ka bërë asnjë kuptim, ruajtur atë në pjesën e prapme të kokës. 1280 01:01:53,577 --> 01:01:55,660 Kjo është ku një anonim funksion mund të jetë e dobishme 1281 01:01:55,660 --> 01:01:58,284 sepse kjo nuk është e vërtetë vlerë duke i dhënë asaj një emër që ne jemi vetëm 1282 01:01:58,284 --> 01:01:59,443 do të përdorin atë një herë. 1283 01:01:59,443 --> 01:02:00,370 Po. 1284 01:02:00,370 --> 01:02:03,635 >> Audienca: Në qoftë se x dhe y të ndryshojë më vonë në, do të përmbledhur të ndryshojë si? 1285 01:02:03,635 --> 01:02:06,510 HANNAH Blumberg: Nëse x dhe y ndryshim më vonë, do të përmbledhur të ndryshojë si? 1286 01:02:06,510 --> 01:02:08,840 Pra, kjo është në fakt unë mendoj diçka që është, 1287 01:02:08,840 --> 01:02:12,260 përsëri, ajo vetëm ndjehet shumë e ndryshme nga C. Kjo nuk është një vlerë. 1288 01:02:12,260 --> 01:02:13,620 Kjo nuk është 5. 1289 01:02:13,620 --> 01:02:15,550 Është vetëm funksion vetë. 1290 01:02:15,550 --> 01:02:19,110 Pra, sa më shpejt që ju jep atë parametrave, atëherë ju do të vërtetë të llogaritur një vlerë. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA: Dhe pastaj ju mund të telefononi funksionin 1292 01:02:21,193 --> 01:02:23,272 dhe e përdorin atë për të marrë disa vlera. 1293 01:02:23,272 --> 01:02:24,230 HANNAH Blumberg: E drejta. 1294 01:02:24,230 --> 01:02:25,250 Pikërisht. 1295 01:02:25,250 --> 01:02:25,863 Po. 1296 01:02:25,863 --> 01:02:27,946 >> Audienca: Pra, nëse ju vetëm ruajtur atë në variablin, 1297 01:02:27,946 --> 01:02:31,430 si var x është e barabartë me shumën e dy values-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH Blumberg: Po. 1299 01:02:32,420 --> 01:02:35,320 Kështu që ju mund të bëni vetëm shumë var është e barabartë me shumën e dy vlerave. 1300 01:02:35,320 --> 01:02:37,670 Po. 1301 01:02:37,670 --> 01:02:38,680 Ndonjë pyetje të tjera? 1302 01:02:38,680 --> 01:02:39,642 Po. 1303 01:02:39,642 --> 01:02:42,047 >> Audienca: Por dua që ngatërruar shumë dhe shumë? 1304 01:02:42,047 --> 01:02:45,062 Ashtu si në qoftë se ju e quani shumë tuaj ndryshueshme, do ta thërrasë shumën funksion? 1305 01:02:45,062 --> 01:02:45,895 HANNAH Blumberg: Mm. 1306 01:02:45,895 --> 01:02:46,395 Mm. 1307 01:02:46,395 --> 01:02:51,253 Nëse ju bëri diçka të si, shuma e barabartë me shumën e 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> Audienca: Po. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH Blumberg: Unë besoj se do ta prishësh vlerën e shumës. 1310 01:02:56,465 --> 01:02:59,290 Pra, një tjetër interesante gjë rreth JavaScript 1311 01:02:59,290 --> 01:03:02,950 është se një variabël i vetëm mund të marrë në një bandë e llojeve të ndryshme. 1312 01:03:02,950 --> 01:03:03,790 Praktikë e keqe. 1313 01:03:03,790 --> 01:03:06,280 Ju nuk duhet të bëjë diçka si ajo që sapo thatë. 1314 01:03:06,280 --> 01:03:10,240 >> Por në C, në qoftë se i është vendosur barabartë me një numër të plotë, 1315 01:03:10,240 --> 01:03:13,570 ne e dimë se kjo nuk është do të bëhet një varg. 1316 01:03:13,570 --> 01:03:15,670 Ky nuk është rasti në JavaScript. 1317 01:03:15,670 --> 01:03:17,770 Po, pyetje e mirë. 1318 01:03:17,770 --> 01:03:20,151 Ndonje gje tjeter? 1319 01:03:20,151 --> 01:03:20,650 Në rregull. 1320 01:03:20,650 --> 01:03:21,850 Të bësh të gjithë të drejtë në kohë. 1321 01:03:21,850 --> 01:03:23,050 Mbajtja e shkuar. 1322 01:03:23,050 --> 01:03:25,200 Në rregull. 1323 01:03:25,200 --> 01:03:27,780 >> Nëse ne shikojmë në një grup në JavaScript, këtu është 1324 01:03:27,780 --> 01:03:30,250 një shembull të shpejtë të një grup të strings. 1325 01:03:30,250 --> 01:03:31,967 Dhe vargjeve mund të rritet në mënyrë dinamike. 1326 01:03:31,967 --> 01:03:33,675 Ata nuk kanë një Madhësia fikse në të njëjtën mënyrë 1327 01:03:33,675 --> 01:03:37,990 se ata e bëjnë në C. Ne mund të hyni në Elementet me vetëm kllapa katrore. 1328 01:03:37,990 --> 01:03:41,720 >> Që duket shumë si PHP dhe shumë si C, ku ne mund të themi, në këtë rast, 1329 01:03:41,720 --> 01:03:48,360 nëse kam kërkuar fjalën JavaScript, unë do të mos arr kllapa katrore me 0, 1, 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 Dhe pastaj, nëse ju kujtohet në C kur ne kërkuar për të marrë gjatësinë e një grup, 1332 01:03:55,390 --> 01:03:56,820 ajo ishte me të vërtetë i bezdisshëm. 1333 01:03:56,820 --> 01:03:58,460 Por në JavaScript, super të lehtë. 1334 01:03:58,460 --> 01:03:59,910 Të gjithë ne bëjmë, .length. 1335 01:03:59,910 --> 01:04:01,120 Jep gjatesite. 1336 01:04:01,120 --> 01:04:01,892 Kjo eshte. 1337 01:04:01,892 --> 01:04:03,140 >> Audienca: Kjo është e thjeshtë. 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH Blumberg: Po, e bën jetën tuaj një shumë më e lehtë. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK, nuk object-- atje. 1341 01:04:11,560 --> 01:04:15,480 Objektet në JavaScript të ndjehen shumë si structs në C 1342 01:04:15,480 --> 01:04:18,280 dhe vargjeve associative në PHP. 1343 01:04:18,280 --> 01:04:20,270 Pra, ajo që ne kemi parë një Shumë është JSON, e cila 1344 01:04:20,270 --> 01:04:23,150 qëndron për JavaScript Object simbol. 1345 01:04:23,150 --> 01:04:25,550 Dhe kjo është në thelb një mënyrë e strukturimin e të dhënave tona. 1346 01:04:25,550 --> 01:04:27,880 >> Pra, le të shohim një shembull, ndoshta më e lehtë. 1347 01:04:27,880 --> 01:04:32,540 Kështu që këtu është një shembull i një objekti që ruan klasën, CS50. 1348 01:04:32,540 --> 01:04:37,790 Dhe kur them klasë, dua të them natyrisht, nuk like-- vërtet, kursin, CS50. 1349 01:04:37,790 --> 01:04:40,730 Dhe ju do të shihni se çdo gjë në objekt 1350 01:04:40,730 --> 01:04:43,526 do të jenë të përmbajtura në formatimin e teksteve kaçurrel. 1351 01:04:43,526 --> 01:04:48,260 >> Dhe ne të fillojnë të shoqërojnë emrat fushë ose çelësat me vlera të ndryshme. 1352 01:04:48,260 --> 01:04:52,920 Kështu që ju mund të filloni për të parë se si ky lloj i ndjehet si një grup associative në PHP. 1353 01:04:52,920 --> 01:04:57,450 Pra, ne jemi duke shkuar për të lidhen në fushë apo emri kryesor, natyrisht, me vargun, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Ne do të kemi një instruktor. 1356 01:04:59,940 --> 01:05:00,940 Ne do të kemi TFS. 1357 01:05:00,940 --> 01:05:05,240 Ne do të kemi numrin e psets dhe ne do të ketë regjistruar. 1358 01:05:05,240 --> 01:05:10,720 Dhe një gjë e ftohtë të vihet në dukje është e gjitha e këto gjëra kanë lloje të ndryshme, 1359 01:05:10,720 --> 01:05:12,020 dhe kjo është krejtësisht në rregull. 1360 01:05:12,020 --> 01:05:15,330 >> Kjo është në rregull për një objekt, në fakt, ajo ndoshta pritet për një objekt 1361 01:05:15,330 --> 01:05:19,620 të ketë një kombinim të strings dhe numra dhe Booleans dhe vargjeve 1362 01:05:19,620 --> 01:05:23,420 dhe çdo gjë tjetër që ju mund duan të kenë brenda objektit tuaj. 1363 01:05:23,420 --> 01:05:28,570 Dhe vini re se këto do të jenë të emrat ose çelësat, dhe pastaj ne vetëm 1364 01:05:28,570 --> 01:05:30,300 vendosi atë të barabartë me një zorrë e trashë të vogël. 1365 01:05:30,300 --> 01:05:32,015 >> Audienca: Çfarë saktësisht do të thotë JSON? 1366 01:05:32,015 --> 01:05:33,890 HANNAH Blumberg: Çfarë saktësisht do të thotë JSON? 1367 01:05:33,890 --> 01:05:36,470 JSON vetëm qëndron për JavaScript simbol Object. 1368 01:05:36,470 --> 01:05:38,430 Kjo është vetëm një mënyrë e formatimit. 1369 01:05:38,430 --> 01:05:40,040 Po. 1370 01:05:40,040 --> 01:05:41,800 Kjo është një mënyrë e formatimit të dhënat tona. 1371 01:05:41,800 --> 01:05:43,620 >> Në C, kjo është structs. 1372 01:05:43,620 --> 01:05:45,800 Në PHP, është e vargjeve associative. 1373 01:05:45,800 --> 01:05:47,120 Në JavaScript, ne kemi objekte. 1374 01:05:47,120 --> 01:05:48,969 >> Audienca: Pra CS50 është një objekt? 1375 01:05:48,969 --> 01:05:51,010 HANNAH Blumberg: CS50 është objekti në këtë rast. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 Tani, si nuk kemi të vërtetë qasje ato fusha apo ndryshuar ato fusha. 1378 01:05:57,880 --> 01:06:03,920 Për shembull, mendoj se ne kemi vendosur keni kërkuar një pak pset këtë semestër. 1379 01:06:03,920 --> 01:06:06,300 Në vend të nëntë, ne jemi vetëm do të ketë tetë. 1380 01:06:06,300 --> 01:06:08,240 Si do të ndryshojë kjo? 1381 01:06:08,240 --> 01:06:09,436 >> Oh, mënyrë e gabuar. 1382 01:06:09,436 --> 01:06:11,060 Ka dy mënyra që ne mund të bëjmë atë. 1383 01:06:11,060 --> 01:06:13,490 Numër një është me dot simbol dhe numri dy 1384 01:06:13,490 --> 01:06:15,750 është me katror simbol kllapa. 1385 01:06:15,750 --> 01:06:19,720 Kështu, për shembull, në qoftë se unë donte të ndryshonte apo qasje 1386 01:06:19,720 --> 01:06:26,820 fusha psets në objektin tonë CS50, çfarë do të bëj është CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 kështu emri i objektit dot emri i fushës ose kyç. 1388 01:06:30,770 --> 01:06:37,120 >> Shumë të ngjashme, është pikërisht ekuivalent për të bërë CS50, dhe pastaj 1389 01:06:37,120 --> 01:06:42,050 në formatimin e teksteve katrore, psets. 1390 01:06:42,050 --> 01:06:42,837 Ftohtë? 1391 01:06:42,837 --> 01:06:44,298 Po. 1392 01:06:44,298 --> 01:06:47,707 >> Audienca: Pra, është JSON teknikisht JavaScript ende, 1393 01:06:47,707 --> 01:06:51,814 edhe pse në psets ne ndarë it out [e padëgjueshme]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH Blumberg: Sigurisht. 1395 01:06:52,730 --> 01:06:56,290 Pra, pyetja është, janë JavaScript dhe JSON ekuivalente? 1396 01:06:56,290 --> 01:07:00,750 Pra JSON është simbol, në thelb rruga që kemi shkruar jashtë 1397 01:07:00,750 --> 01:07:02,700 një objekt prej JavaScript. 1398 01:07:02,700 --> 01:07:05,190 Pra, ata nuk janë të njëjtë. 1399 01:07:05,190 --> 01:07:08,950 >> Unë do të thoja JavaScript, atje janë objekte në JavaScript. 1400 01:07:08,950 --> 01:07:12,590 JSON merr ato objekte dhe printon ato dhe tregon ato 1401 01:07:12,590 --> 01:07:15,160 ose dyqanet e tyre në një mënyrë të bukur. 1402 01:07:15,160 --> 01:07:18,110 Pra JSON nuk është një programimit gjuha mënyra se JavaScript është. 1403 01:07:18,110 --> 01:07:20,900 Kjo është vetëm simbol për objektet tona në JavaScript. 1404 01:07:20,900 --> 01:07:21,400 Po. 1405 01:07:21,400 --> 01:07:24,144 >> Audienca: Pra, çfarë saktësisht [Padëgjueshme] përfunduar? 1406 01:07:24,144 --> 01:07:25,060 HANNAH Blumberg: Sigurisht. 1407 01:07:25,060 --> 01:07:27,727 Pra, kjo në fakt nuk bën asgjë. 1408 01:07:27,727 --> 01:07:28,935 Kjo është vetëm një mënyrë për të hyrë. 1409 01:07:28,935 --> 01:07:31,393 Pra, le të thonë se ne të kërkuar për të ndryshuar numri i përcakton problemit 1410 01:07:31,393 --> 01:07:32,450 nga nëntë deri në tetë. 1411 01:07:32,450 --> 01:07:34,383 Çfarë bëjmë ne është të bëjë diçka si CS50.psets = 8 ;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> Po, pyetje e madhe. 1414 01:07:39,400 --> 01:07:40,733 Kjo është vetëm për të treguar ju sintaksë. 1415 01:07:40,733 --> 01:07:43,620 A nuk të vërtetë të bëjë asgjë të dobishme. 1416 01:07:43,620 --> 01:07:46,085 Ndonje pyetje? 1417 01:07:46,085 --> 01:07:48,210 Moving drejtë së bashku. 1418 01:07:48,210 --> 01:07:51,960 >> Pra, le të shohim në një shembull të shpejtë të si JavaScript punon sepse ju thashë se 1419 01:07:51,960 --> 01:07:55,170 bën të gjitha këto gjëra të ftohtë dhe na lejon për të modifikuar web pages. 1420 01:07:55,170 --> 01:07:56,970 Le të vërtetë të shohin atë në veprim. 1421 01:07:56,970 --> 01:07:59,850 Pra, të marrë, për shembull, këtë fotografi HTML. 1422 01:07:59,850 --> 01:08:04,350 >> Dhe gjëja unë dua që ju të përqëndrohet në është ky tag të veçantë, e cila është një buton, 1423 01:08:04,350 --> 01:08:06,182 me id search_button. 1424 01:08:06,182 --> 01:08:08,670 Është vetëm në faqen e. 1425 01:08:08,670 --> 01:08:10,690 Pra, tani le të shohim se çfarë ne fakt mund të bëjmë. 1426 01:08:10,690 --> 01:08:12,560 >> E pra, mendoj kur ju klikoni butonin, 1427 01:08:12,560 --> 01:08:16,010 ne duam të bërë një alert-- keni klikuar butonin. 1428 01:08:16,010 --> 01:08:17,840 Le të shohim se si ne mund të bëjmë atë. 1429 01:08:17,840 --> 01:08:23,869 Pra window.onload-- kjo nuk është diçka që ju keni parë në klasë, prandaj 1430 01:08:23,869 --> 01:08:26,180 nuk do të duhet të dini se për quiz. 1431 01:08:26,180 --> 01:08:33,660 Por kjo në thelb thotë, OK, thirrje këtë funksion kur ngarkesat dritare. 1432 01:08:33,660 --> 01:08:35,080 >> Pra, kjo është vetëm lloj i kodit setup. 1433 01:08:35,080 --> 01:08:36,390 Mos u shqetësoni aq shumë për këtë. 1434 01:08:36,390 --> 01:08:39,170 Ajo që unë dua që ju të përqëndrohet në është në këtu. 1435 01:08:39,170 --> 01:08:44,020 Ne themi var searchButton barabartë document.getElementByID search_button. 1436 01:08:44,020 --> 01:08:46,450 >> Pra, si ju mund të me mend, Çfarë kjo nuk është ai thotë: 1437 01:08:46,450 --> 01:08:50,920 OK, shkoni gjeni elementin me ID search_button. 1438 01:08:50,920 --> 01:08:52,790 Dhe tani ne kemi se element aktual dhe unë jam 1439 01:08:52,790 --> 01:08:56,279 duke shkuar për të ruajtur atë në një searchButton ndryshueshme. 1440 01:08:56,279 --> 01:09:00,651 Dhe tani ne fakt mund të përdorni këtë element dhe për të ndryshuar atë, apo qasje vlerat e saj, 1441 01:09:00,651 --> 01:09:01,359 gjëra të tilla si se. 1442 01:09:01,359 --> 01:09:04,649 Ne fakt mund të fillojë të angazhohen me web faqe. 1443 01:09:04,649 --> 01:09:10,330 >> Kështu që këtu unë them, OK, tani që unë kam që buton, kur ajo është klikuar, 1444 01:09:10,330 --> 01:09:12,859 quajmë këtë funksion anonim. 1445 01:09:12,859 --> 01:09:16,811 Pra, kjo është ajo ku anonim funksione të bëhen të dobishme. 1446 01:09:16,811 --> 01:09:18,060 Dhe çfarë do funksioni bëj? 1447 01:09:18,060 --> 01:09:20,529 E pra, ajo vetëm e quan këtë Funksioni vigjilent dhe ai thotë: 1448 01:09:20,529 --> 01:09:22,910 keni klikuar butonin Kërko. 1449 01:09:22,910 --> 01:09:29,670 >> Pra, çfarë do të ndodhë në qoftë se unë shkoj kudo kjo HTML jeton dhe unë klikoni butonin, 1450 01:09:29,670 --> 01:09:33,729 Unë do të merrni një alarm dashuroj pak që thotë se keni klikuar butonin. 1451 01:09:33,729 --> 01:09:40,710 Pra, gjërat të përqëndrohet në here-- document.getElementByID 1452 01:09:40,710 --> 01:09:44,960 merr një HTML veçantë element me ID e dhënë. 1453 01:09:44,960 --> 01:09:48,529 Dhe tani ne mund të vendosni çfarë duhet të ndodhë kur 1454 01:09:48,529 --> 01:09:50,702 se elementi i veçantë është klikuar. 1455 01:09:50,702 --> 01:09:52,670 >> Audienca: Ne duhet të vënë të gjitha që në? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH Blumberg: Na vjen keq? 1457 01:09:53,162 --> 01:09:55,130 >> Audienca: A kemi të fizikisht kod të gjithë këtë? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH Blumberg: A kemi të fizikisht kod të gjithë këtë? 1459 01:09:56,340 --> 01:09:56,839 Po. 1460 01:09:56,839 --> 01:09:58,120 A nuk është ky lloj i bezdisshëm? 1461 01:09:58,120 --> 01:10:00,032 Kjo është një shumë të kodit. 1462 01:10:00,032 --> 01:10:01,574 >> Audienca: Ju mund të importojë diçka. 1463 01:10:01,574 --> 01:10:02,532 HANNAH Blumberg: E drejta. 1464 01:10:02,532 --> 01:10:03,610 Ne mund të përdorim diçka. 1465 01:10:03,610 --> 01:10:08,140 Dhe në particular-- oh, kjo është thënë mua unë kam për të mësuar seksion. 1466 01:10:08,140 --> 01:10:11,061 Në veçanti, le të përdorin bibliotekën jQuery, 1467 01:10:11,061 --> 01:10:13,060 sepse kjo ishte me të vërtetë gjatë dhe të vërtetë i bezdisshëm 1468 01:10:13,060 --> 01:10:16,860 dhe unë dua të jem në gjendje për të lehtësuar atë dhe e bëjnë atë më të shkurtër dhe më e lehtë për të shkruar. 1469 01:10:16,860 --> 01:10:19,810 >> Pra, jQuery është një bibliotekë JavaScript. 1470 01:10:19,810 --> 01:10:24,930 Pra JavaScript është programimi gjuhë; jQuery është një bibliotekë. 1471 01:10:24,930 --> 01:10:27,190 Dhe kjo e bën një bandë e gjëra të lehtë. 1472 01:10:27,190 --> 01:10:33,230 Kjo e bën duke ndryshuar dhe duke shkuar nëpër një dokument HTML shumë më të lehtë. 1473 01:10:33,230 --> 01:10:35,030 >> Kjo e bën më të lehtë trajtimin e ngjarjeve. 1474 01:10:35,030 --> 01:10:37,580 Kjo e bën më të lehtë animacion dhe kjo e bën më të lehtë Ajax. 1475 01:10:37,580 --> 01:10:40,140 Pra, le të hidhen në dy ato gjëra tani. 1476 01:10:40,140 --> 01:10:40,900 Më falni. 1477 01:10:40,900 --> 01:10:42,620 Para se të bëjmë, disa sintaksë themelore. 1478 01:10:42,620 --> 01:10:46,870 >> Kjo është ajo që më quan të biblioteka jQuery duken si. 1479 01:10:46,870 --> 01:10:50,520 Ne përdorim këtë dollar sign-- asnjë shenjë lidhje në PHP, 1480 01:10:50,520 --> 01:10:56,030 vetëm inconvenient-- emrin e një përzgjedhës, dot, dhe pastaj një veprim. 1481 01:10:56,030 --> 01:10:58,860 Pra, le të shohim disa shembuj konkretë për këtë. 1482 01:10:58,860 --> 01:11:02,980 >> Pra, kjo në fakt është e njëjta Kodi nga rrëshqitje ngjarje. 1483 01:11:02,980 --> 01:11:08,740 Pra, kjo e gjatë, gjë e shëmtuar bëhet kjo shumë nicer, gjë më të vogla. 1484 01:11:08,740 --> 01:11:10,370 Pra, le të përpiqemi për të thyer këtë poshtë. 1485 01:11:10,370 --> 01:11:17,090 Kjo thotë, OK, jQuery-- kjo dollar sign-- jQuery, gjeni më dritaren. 1486 01:11:17,090 --> 01:11:18,480 Pra, kjo është përzgjedhës. 1487 01:11:18,480 --> 01:11:21,800 >> Kur ajo ngarkesa, e quajmë këtë funksion. 1488 01:11:21,800 --> 01:11:23,880 Pra, kjo është gjithçka brenda. 1489 01:11:23,880 --> 01:11:24,380 NE RREGULL. 1490 01:11:24,380 --> 01:11:25,740 Deri më tani, në mënyrë të mirë? 1491 01:11:25,740 --> 01:11:26,750 Në rregull. 1492 01:11:26,750 --> 01:11:32,970 >> Tani, jQuery, të më gjesh mua të gjë me ID search_button. 1493 01:11:32,970 --> 01:11:36,090 Dhe çfarë është klikuar, quajmë këtë funksion. 1494 01:11:36,090 --> 01:11:37,900 Dhe pastaj ky funksion të saktësisht të njëjtë. 1495 01:11:37,900 --> 01:11:41,052 Vetëm të bëjë një grimë të vogël e gatishmërie, keni klikuar butonin Kërko. 1496 01:11:41,052 --> 01:11:42,650 >> Pra, kjo është me të vërtetë e bukur. 1497 01:11:42,650 --> 01:11:46,260 Me të vërtetë kondensohen dhe thjeshton kodin tonë. 1498 01:11:46,260 --> 01:11:49,030 Si e di se është ID search_button 1499 01:11:49,030 --> 01:11:50,960 dhe jo si klasit search_button? 1500 01:11:50,960 --> 01:11:52,024 >> Audienca: hashtag? 1501 01:11:52,024 --> 01:11:52,940 HANNAH Blumberg: Po. 1502 01:11:52,940 --> 01:11:56,450 Ky simbol hash, kjo është vetëm si CSS. 1503 01:11:56,450 --> 01:12:00,080 Pra mbani mend, me CSS, kur ne donte të zgjidhni diçka me ID, 1504 01:12:00,080 --> 01:12:01,590 kemi përdorur shenjën paund. 1505 01:12:01,590 --> 01:12:05,400 Dhe kur ne të kërkuar për të zgjedhur diçka nga klasa, ne përdorim dot. 1506 01:12:05,400 --> 01:12:06,870 I madh. 1507 01:12:06,870 --> 01:12:08,230 Ka kuptim? 1508 01:12:08,230 --> 01:12:11,500 Pra, jQuery është menduar të vetëm të bëjë jetën tonë më të lehtë. 1509 01:12:11,500 --> 01:12:12,000 Po. 1510 01:12:12,000 --> 01:12:15,660 >> Audienca: Pra, unë jam pak i hutuar si për të se si punon funksion anonim. 1511 01:12:15,660 --> 01:12:19,027 A keni emrin këtë anonymouse funksion, funksionon? 1512 01:12:19,027 --> 01:12:20,594 Si është quajtur? 1513 01:12:20,594 --> 01:12:21,510 HANNAH Blumberg: Sigurisht. 1514 01:12:21,510 --> 01:12:25,812 Pra funksion është vetëm një fjalen që thotë, unë jam gati për të përcaktuar një funksion. 1515 01:12:25,812 --> 01:12:26,520 Audienca: Oh, OK. 1516 01:12:26,520 --> 01:12:27,353 HANNAH Blumberg: OK? 1517 01:12:27,353 --> 01:12:32,120 Dhe pastaj ne të kalojë atë si një Argumenti to-- le të marrin 1518 01:12:32,120 --> 01:12:37,040 kjo one-- brendshme të klikoni funksionit. 1519 01:12:37,040 --> 01:12:39,420 Pra, vërtet, kështu që këtë funksion, ky funksion anonim, 1520 01:12:39,420 --> 01:12:40,910 të bëhet një argument aktual. 1521 01:12:40,910 --> 01:12:43,632 Pra mbani mend në JavaScript, ne mund të trajtojnë funksionet si vlera. 1522 01:12:43,632 --> 01:12:44,340 Audienca: Oh, OK. 1523 01:12:44,340 --> 01:12:45,256 HANNAH Blumberg: Po. 1524 01:12:45,256 --> 01:12:46,035 Më pëlqen se "oh". 1525 01:12:46,035 --> 01:12:47,490 Bukur. 1526 01:12:47,490 --> 01:12:49,915 Pyetje të tjera? 1527 01:12:49,915 --> 01:12:50,505 Kohë? 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA: Mirë. 1529 01:12:51,380 --> 01:12:52,760 Të mirë. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH Blumberg: mbresëlënës. 1531 01:12:54,210 --> 01:12:55,720 Disa jQuery shpejtë dobishme. 1532 01:12:55,720 --> 01:12:57,559 Unë nuk jam duke shkuar për të shkuar nëpërmjet të gjitha këto. 1533 01:12:57,559 --> 01:12:59,350 Këto slides do të jetë Up Online pak 1534 01:12:59,350 --> 01:13:02,040 më vonë, kështu që ju mund të kontrolloni ajo se pak më vonë. 1535 01:13:02,040 --> 01:13:07,120 Por në thelb, gjenerali model mban ku ne themi: 1536 01:13:07,120 --> 01:13:11,510 OK, hej, jQuery, këtu është e mia përzgjedhës dhe atëherë këtu është një veprim. 1537 01:13:11,510 --> 01:13:15,940 Dhe ju mund të bëni gjëra të tilla si qasje të Vlera e një forme, hyni në disa HTML, 1538 01:13:15,940 --> 01:13:19,195 Kontrolli i çfarë ndodh kur përdoruesi paraqet një formë, gjëra të tilla si kjo. 1539 01:13:19,195 --> 01:13:20,106 Po. 1540 01:13:20,106 --> 01:13:22,090 >> Audienca: Pra, në provim, ne do të duhet 1541 01:13:22,090 --> 01:13:25,066 të di mjaft shumë nga dokumentacioni jQuery. 1542 01:13:25,066 --> 01:13:31,018 Pra, duke pasur parasysh që ne të kopjoni / paste jQuery dokumentacioni të mashtrojnë fletë tonë, 1543 01:13:31,018 --> 01:13:32,506 Ku është tërhequr vija? 1544 01:13:32,506 --> 01:13:33,957 Ashtu si sa nuk kemi nevojë të dimë? 1545 01:13:33,957 --> 01:13:35,290 HANNAH Blumberg: pyetje e madhe. 1546 01:13:35,290 --> 01:13:37,765 Pyetja është në thelb duke pasur parasysh se ju 1547 01:13:37,765 --> 01:13:41,330 nuk mund të hyni në dokumentacionin jQuery gjatë testit, sa duhet të 1548 01:13:41,330 --> 01:13:41,830 di? 1549 01:13:41,830 --> 01:13:45,540 Ne nuk do të presin që ju të vijnë me disa funksion të rastit 1550 01:13:45,540 --> 01:13:47,240 që ne do të ju presin për Google. 1551 01:13:47,240 --> 01:13:52,930 >> Gjërat që janë lojë të ndershme janë të unë do të thonë lloj vetëm e sintaksës së përgjithshme, 1552 01:13:52,930 --> 01:13:58,310 qenë në gjendje për të zgjedhur nga ID dhe nga class-- kështu që ashtu si CSS. 1553 01:13:58,310 --> 01:14:01,876 Dhe pastaj funksionet aktuale themself, ne do të ngjarë të ju them. 1554 01:14:01,876 --> 01:14:02,376 Po. 1555 01:14:02,376 --> 01:14:05,591 >> Audienca: Pra, kur ju zgjidhni nga klasa do të thotë dot. 1556 01:14:05,591 --> 01:14:06,840 HANNAH Blumberg: Po, pikërisht. 1557 01:14:06,840 --> 01:14:07,340 Të mirë. 1558 01:14:07,340 --> 01:14:10,461 Kur ju zgjidhni nga klasa, ajo do për t'u dot në vend të shenjës paund. 1559 01:14:10,461 --> 01:14:10,960 Po. 1560 01:14:10,960 --> 01:14:12,710 >> Audienca: A do ju shkoni mbi diferencën 1561 01:14:12,710 --> 01:14:14,310 midis përzgjedhjen nga ID dhe nga klasa? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH Blumberg: Sigurisht. 1563 01:14:14,560 --> 01:14:17,510 Dallimi në mes përzgjedhjen ID dhe përzgjedhjes nga klasa. 1564 01:14:17,510 --> 01:14:20,685 Pra, siç tha Maria një pak më parë, ka 1565 01:14:20,685 --> 01:14:26,280 mund të jetë vetëm një element HTML me një ID të caktuar, kurse klasë, 1566 01:14:26,280 --> 01:14:29,740 ajo na lejon të grupit një bandë elementet e ndryshme së bashku, 1567 01:14:29,740 --> 01:14:34,300 kështu që gjërat që janë të lidhura, por jo të njëjtë. 1568 01:14:34,300 --> 01:14:35,685 A do të përgjigjet në pyetjen? 1569 01:14:35,685 --> 01:14:36,200 Mbresëlënës. 1570 01:14:36,200 --> 01:14:37,194 Po. 1571 01:14:37,194 --> 01:14:40,680 >> Audienca: Çfarë ndodh nëse keni të shumëfishta gjërat që janë në të njëjtën klasë? 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH Blumberg: Çfarë ndodh në qoftë se ju keni gjëra të shumta që 1573 01:14:42,150 --> 01:14:43,280 janë të njëjta klasë? 1574 01:14:43,280 --> 01:14:45,829 Kështu, për shembull, në qoftë se ne jemi vetëm duke përdorur JavaScript të pastër, 1575 01:14:45,829 --> 01:14:48,120 ne do të bëjmë diçka si document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 Dhe pastaj çfarë që në fakt bën është kthimet një grup i elementeve. 1578 01:14:56,320 --> 01:14:59,517 >> Dhe ju duhet ose të iterate mbi ata ose të gjejnë të cilat një që ju dëshironi. 1579 01:14:59,517 --> 01:15:01,350 Kjo nuk do të japë një element i vetëm. 1580 01:15:01,350 --> 01:15:03,450 Ajo do të ju jap një grup i elementeve. 1581 01:15:03,450 --> 01:15:05,280 Pyetje e madhe. 1582 01:15:05,280 --> 01:15:07,700 Ndonje gje tjeter? 1583 01:15:07,700 --> 01:15:09,520 Mbresëlënës. 1584 01:15:09,520 --> 01:15:12,860 >> Kështu që unë mendoj se në qoftë se ju jeni të njohur me çdo jQuery ju pashë në pset, 1585 01:15:12,860 --> 01:15:15,600 ju duhet të jetë mirë për të shkuar. 1586 01:15:15,600 --> 01:15:16,325 Pyetje? 1587 01:15:16,325 --> 01:15:17,610 Oh, jo. 1588 01:15:17,610 --> 01:15:18,859 Unë me të vërtetë kam për të mësuar. 1589 01:15:18,859 --> 01:15:19,358 Qetësohuni. 1590 01:15:19,358 --> 01:15:20,035 Ajo do të jetë mirë. 1591 01:15:20,035 --> 01:15:20,660 Unë do të merrni atje. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> Le të flasim për Ajax. 1594 01:15:26,870 --> 01:15:31,350 Pra, Ajax do të jetë a-- mirë, le të fillojë me atë që qëndron për. 1595 01:15:31,350 --> 01:15:32,350 Kjo është një akronim. 1596 01:15:32,350 --> 01:15:35,855 Ajo qëndron për Asynchronous JavaScript dhe XML. 1597 01:15:35,855 --> 01:15:39,800 Dhe XML është në thelb do të jetë [Padëgjueshme] me një lloj të dhënave tona. 1598 01:15:39,800 --> 01:15:42,100 Por ne nuk e kemi përdorur në të vërtetë XML. 1599 01:15:42,100 --> 01:15:43,430 Në vend të kësaj, ne vetëm përdorni JSON. 1600 01:15:43,430 --> 01:15:48,350 >> Pra, në thelb, është disa data-- asinkron, JavaScript, dhe të dhënat, 1601 01:15:48,350 --> 01:15:50,040 në këtë rast, JSON. 1602 01:15:50,040 --> 01:15:52,820 Dhe qëllimi ynë, siç kemi përmendur pak më herët, 1603 01:15:52,820 --> 01:15:56,880 është që të jetë në gjendje për të bërë një kërkesë, kanë bërë që kërkesa 1604 01:15:56,880 --> 01:16:00,700 gjë e saj në sfond, por vazhdojnë 1605 01:16:00,700 --> 01:16:02,550 bëjë çdo gjë që ne kemi qenë duke synuar për të bërë. 1606 01:16:02,550 --> 01:16:06,650 Dhe pastaj, kur ky informacion është gati, atëherë ne do të inkorporojë atë. 1607 01:16:06,650 --> 01:16:08,470 >> Pra, le të shohim se çfarë kjo në fakt duket si. 1608 01:16:08,470 --> 01:16:11,210 Dhe kjo, ju duhet të jetë pak e njohur 1609 01:16:11,210 --> 01:16:13,680 nga pset8, një që ju sapo u kthye në. 1610 01:16:13,680 --> 01:16:16,200 Kështu që këtu është një jQuery vlefshme Funksioni që të mund të 1611 01:16:16,200 --> 01:16:18,250 dua të di? Për këtë shenjë dollarit. 1612 01:16:18,250 --> 01:16:21,500 Pra, ajo thotë funksion jQuery, .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> Dhe çfarë ky funksion nuk është ajo merr një URL dhe disa parameters-- 1614 01:16:25,020 --> 01:16:28,000 kështu që unë mendoj se në rastin e pset8, ajo ishte si, 1615 01:16:28,000 --> 01:16:33,520 URL ishte articles.php dhe Parametrat ishte shkojnë = një kod postar. 1616 01:16:33,520 --> 01:16:41,580 Dhe ai thotë, në rregull, të bëjë një kërkesë kjo URL me parametrat e dhëna. 1617 01:16:41,580 --> 01:16:43,480 Dhe kjo ndodh vetëm. 1618 01:16:43,480 --> 01:16:47,730 >> Kur ajo përfundon, është ose do të përfundojë me sukses 1619 01:16:47,730 --> 01:16:49,370 ose ajo do të dështojë. 1620 01:16:49,370 --> 01:16:53,480 Pra, kjo është ekuivalente e thirrjes Rob dhe kërkoni atë për të bërë diçka. 1621 01:16:53,480 --> 01:17:00,260 Dhe atëherë kur ai e thërret përsëri, ai është ose duke shkuar për të thonë se unë jam bërë ose kam dështuar. 1622 01:17:00,260 --> 01:17:04,030 >> Pra, në rastin kur ju jeni bërë, ju thoni, OK, unë jam bërë. 1623 01:17:04,030 --> 01:17:05,980 Dhe pastaj ju e quani këtë funksion. 1624 01:17:05,980 --> 01:17:08,915 Në këtë rast, ajo do të jetë një funksion që merr disa informata. 1625 01:17:08,915 --> 01:17:12,890 Një ne zakonisht e intereson është të dhënave, të dhënat që ne ishim kthyer në fakt 1626 01:17:12,890 --> 01:17:15,900 si rezultat i quajtur .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> Dhe ju mund të bëni diçka me të. 1628 01:17:17,470 --> 01:17:23,670 Pra, në rastin e pset8, ne e shfaqur atë si një listë. 1629 01:17:23,670 --> 01:17:29,050 Fail do të jetë një funksion që quhet nëse kërkesa dështon 1630 01:17:29,050 --> 01:17:30,450 për çfarëdo arsye. 1631 01:17:30,450 --> 01:17:35,104 Dhe në rastin e pset8, ne vetëm console.log atë. 1632 01:17:35,104 --> 01:17:36,020 Ndonjë pyetje për këtë? 1633 01:17:36,020 --> 01:17:36,300 Po. 1634 01:17:36,300 --> 01:17:39,633 >> Audienca: A mund të përdorni vetëm funksion theta në vend të funksionit, textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH Blumberg: Sigurisht. 1637 01:17:44,380 --> 01:17:46,713 Pra, vërtet, unë mendoj në pset, ne vetëm e pa të dhëna të funksionit. 1638 01:17:46,713 --> 01:17:48,700 Pra, kjo është vetëm the-- po, OK. 1639 01:17:48,700 --> 01:17:50,510 Kjo është ajo që pamë në pset. 1640 01:17:50,510 --> 01:17:51,480 Kjo është krejtësisht në rregull. 1641 01:17:51,480 --> 01:17:54,210 >> Këto janë vetëm nëse do të donit për të tërhequr më shumë informacion, 1642 01:17:54,210 --> 01:17:57,190 këto janë gjëra që ju mund të merrni nga .getJSON. 1643 01:17:57,190 --> 01:17:59,040 Pyetje e mirë. 1644 01:17:59,040 --> 01:17:59,706 Ndonje gje tjeter? 1645 01:17:59,706 --> 01:18:00,206 Po. 1646 01:18:00,206 --> 01:18:01,787 >> Audienca: Pra .getJSON është Ajax? 1647 01:18:01,787 --> 01:18:02,620 HANNAH Blumberg: OK. 1648 01:18:02,620 --> 01:18:05,700 Pra, kjo është lloj i një pjese ndërlikuar. 1649 01:18:05,700 --> 01:18:12,390 Kjo është një funksion jQuery që lejon që ju të bëni thirrje asinkron. 1650 01:18:12,390 --> 01:18:16,080 Dhe ata që e quan asinkron, kjo është ajo që ne kemi qenë duke iu referuar si Ajax. 1651 01:18:16,080 --> 01:18:16,850 Po. 1652 01:18:16,850 --> 01:18:20,185 Kjo mori mua një kohë vërtet të gjatë për zbërthej kur isha student. 1653 01:18:20,185 --> 01:18:21,560 Audienca: Mund të them se përsëri? 1654 01:18:21,560 --> 01:18:22,476 HANNAH Blumberg: Po. 1655 01:18:22,476 --> 01:18:23,630 Mund të them se përsëri? 1656 01:18:23,630 --> 01:18:29,010 Ky funksion .getJSON, ajo është një funksion jQuery. 1657 01:18:29,010 --> 01:18:31,970 Dhe kjo do të bëjë një telefonatë asinkron. 1658 01:18:31,970 --> 01:18:35,700 Dhe këto thirrje asinkron, ne kemi janë duke iu referuar atyre si Ajax. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> Ndonjë pyetje të tjera? 1661 01:18:41,872 --> 01:18:43,330 Ne kemi vetëm disa minuta të mbetura. 1662 01:18:43,330 --> 01:18:45,080 Dhe Maria-së do të përfundojnë me sigurinë 1663 01:18:45,080 --> 01:18:47,464 dhe pastaj ne jemi duke shkuar të jetë vetëm për bërë. 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: mbresëlënës, OK. 1665 01:18:48,630 --> 01:18:54,030 Pra, kjo is-- vetëm të marrë një çift i sekondave të parë mbi këtë. 1666 01:18:54,030 --> 01:18:56,750 Dhe kjo nuk është diçka me të vërtetë e madhe. 1667 01:18:56,750 --> 01:18:59,430 Dhe mund dikush të më thoni pse? 1668 01:18:59,430 --> 01:19:05,650 Çfarë po ndodh në foo dhe mund mund të potencialisht të rezultojë në diçka të keqe, 1669 01:19:05,650 --> 01:19:06,770 dhe atë që është quajtur? 1670 01:19:06,770 --> 01:19:07,270 Po. 1671 01:19:07,270 --> 01:19:10,391 Audienca: Nëse argumenti se kjo është kaloi në është më shumë se 12 karaktere, 1672 01:19:10,391 --> 01:19:11,454 ajo mund të del nga shtrati. 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA: E drejta. 1674 01:19:12,370 --> 01:19:14,180 Përsosur. 1675 01:19:14,180 --> 01:19:15,384 Si quhet? 1676 01:19:15,384 --> 01:19:16,300 Ju përmendët atë. 1677 01:19:16,300 --> 01:19:16,840 >> Audienca: Buffer overflow. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: Yup, tampon del nga shtrati. 1679 01:19:18,381 --> 01:19:21,230 Pra, kjo është diçka që ne e referohen si tampon del nga shtrati. 1680 01:19:21,230 --> 01:19:25,500 Dhe ne shohim se brenda e foo, ne kemi përcaktuar tampon tonë, c, 1681 01:19:25,500 --> 01:19:27,240 me një madhësi prej 12. 1682 01:19:27,240 --> 01:19:32,680 Megjithatë, në kryesore, ne nuk e bëjmë kontrolloni në asnjë mënyrë në të gjitha 1683 01:19:32,680 --> 01:19:36,480 nëse argv1-- në mënyrë që ishte Argumenti i dytë. 1684 01:19:36,480 --> 01:19:39,630 Ne nuk e kontrolloni nëse Madhësia e saj është e përshtatshme. 1685 01:19:39,630 --> 01:19:43,380 >> Pra, nëse do të kishim një përdorues veçanërisht me qëllim të keq 1686 01:19:43,380 --> 01:19:47,170 që vënë në disa argumentin që ishte më shumë se 12, dhe pastaj potencialisht 1687 01:19:47,170 --> 01:19:50,850 përtej kufijve të që Argumenti, kishte disa kod ekzekutues 1688 01:19:50,850 --> 01:19:55,570 se ai ishte duke u përpjekur për të bërë diçka të keqe me të; atëherë kjo, çfarë do të ndodhte, 1689 01:19:55,570 --> 01:19:59,310 do ta pranoj kthimin adresa e funksionit foo, 1690 01:19:59,310 --> 01:20:04,370 shkaktuar funksionin kur kthyer për të ekzekutuar atë kod. 1691 01:20:04,370 --> 01:20:07,540 Dhe pastaj gjëra të këqija mund të ndodhë. 1692 01:20:07,540 --> 01:20:09,850 A ka kjo kuptim për të gjithë? 1693 01:20:09,850 --> 01:20:12,424 >> Dhe si mund të mbrojë kundër kësaj? 1694 01:20:12,424 --> 01:20:13,090 Ndonjë sugjerim? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 Në thelb, brenda potencialisht foo, si 1697 01:20:21,890 --> 01:20:28,294 mund të kontrolloni për t'u siguruar ne që kjo nuk mund të ndodhë? 1698 01:20:28,294 --> 01:20:33,879 >> Audienca: Nëse madhësia 12 është tejkaluar, ju do të siguroj kujtesë shtesë? 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA: Suggestion është, ndajë kujtim shtesë të madhësisë tejkaluar. 1700 01:20:37,170 --> 01:20:39,800 Në fakt, ne mund të bëjmë diçka shumë të thjeshtë se kaq, si edhe. 1701 01:20:39,800 --> 01:20:44,870 Ne mund të merrni vetëm gjatësinë string e argumentit që është futur, 1702 01:20:44,870 --> 01:20:48,590 kontrolloni nëse kjo është më pak se ose e barabartë me 12-- 1703 01:20:48,590 --> 01:20:50,790 e cila është ajo që ne duam atë të jetë për shkak se ne nuk duam 1704 01:20:50,790 --> 01:20:52,373 ajo të tejkalojë kufijtë e tampon tonë. 1705 01:20:52,373 --> 01:20:55,690 Dhe pastaj në qoftë se ajo nuk ka, ne mund të punojnë me argumentin. 1706 01:20:55,690 --> 01:21:00,296 Dhe pastaj nëse bën atë, ne fakt duan të Yello potencialisht në përdoruesit. 1707 01:21:00,296 --> 01:21:01,670 Por, kjo është se si ne do ta bëjmë atë. 1708 01:21:01,670 --> 01:21:02,443 Po. 1709 01:21:02,443 --> 01:21:04,360 >> Audienca: Mund të shpjegojë Quick vërtetë memcpy? 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA: Oh, sorry. 1711 01:21:05,443 --> 01:21:06,040 Po. 1712 01:21:06,040 --> 01:21:11,290 Memcpy merr çfarëdo is-- vjen keq, OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy merr çdo gjë që është në bar, çdo gjë që është miratuar 1714 01:21:15,850 --> 01:21:18,050 mbi foo si argumenti command line. 1715 01:21:18,050 --> 01:21:19,440 Pra, kjo do të marrë argv1. 1716 01:21:19,440 --> 01:21:21,420 Argv1 quhet bar këtu. 1717 01:21:21,420 --> 01:21:24,453 Pra, kjo do të marrë bar dhe ajo do të kopje atë në c. 1718 01:21:24,453 --> 01:21:25,402 >> Audienca: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: Dhe kjo do të copy-- Argumenti i tretë i referohet vetëm 1720 01:21:28,360 --> 01:21:30,601 për të se sa ajo do të kopje në c. 1721 01:21:30,601 --> 01:21:31,142 Audienca: Ah. 1722 01:21:31,142 --> 01:21:33,030 Pra, kopjimi këtij dikujt të gjithë atë, atëherë. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: Po, kjo është kopjimit të gjithë atë. 1724 01:21:34,310 --> 01:21:34,810 Yep. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Së pari, ne sigurohemi bar nuk është i barabartë me null sepse kjo është një akrep. 1727 01:21:41,910 --> 01:21:44,680 Pastaj ne të merrni gjatësinë e string bar. 1728 01:21:44,680 --> 01:21:47,530 Ne jemi të sigurt se kjo është me pak se ose te barabarte me 12. 1729 01:21:47,530 --> 01:21:50,070 Dhe pastaj, sepse ne kemi e bëri të sigurt, ne mund të vërtetë 1730 01:21:50,070 --> 01:21:53,122 memcpy dhe të jetë i sigurt se kjo është në rregull. 1731 01:21:53,122 --> 01:21:53,705 Ndonje pyetje? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 I madh. 1734 01:21:58,690 --> 01:22:00,400 Kam dy pyetje vërtetë apo e rreme. 1735 01:22:00,400 --> 01:22:05,470 A mund dikush të më thoni menjëherë nëse këto janë të vërteta apo të rreme? 1736 01:22:05,470 --> 01:22:07,460 Po, kjo është e rreme. 1737 01:22:07,460 --> 01:22:07,960 Pikërisht. 1738 01:22:07,960 --> 01:22:09,330 Dy prej tyre janë të rreme. 1739 01:22:09,330 --> 01:22:12,682 Pra, duke përdorur një fjalëkalim të vetme është ide e kurrë me të vërtetë mirë 1740 01:22:12,682 --> 01:22:14,890 sepse në qoftë se dikush e di fjalëkalimin tuaj, ata mund vetëm 1741 01:22:14,890 --> 01:22:16,260 hyni në të gjitha llogaritë tuaja të tjera. 1742 01:22:16,260 --> 01:22:19,260 Dhe pastaj ikona të bëjë asgjë për të garantuar sigurinë. 1743 01:22:19,260 --> 01:22:24,900 Ne zakonisht duhet të shikoni për HTTPS në vend të HTTP dhe URL. 1744 01:22:24,900 --> 01:22:28,560 >> Dhe disa lloje të tjera të Sulmet që ne i kemi përmendur, 1745 01:22:28,560 --> 01:22:31,390 që Davidi të ka përmendur në leksion, sulmet SQL injeksion. 1746 01:22:31,390 --> 01:22:37,310 Ne tashmë e pamë se në qoftë se ne nuk-- Funksioni CS50 query bën të sigurt që SQL 1747 01:22:37,310 --> 01:22:39,530 Sulmet injeksion nuk mund të ndodhë. 1748 01:22:39,530 --> 01:22:42,640 Por nëse ne nuk ishin duke përdorur CS50, të japin kuotën, mbyll thonjëzat "në pyetje", 1749 01:22:42,640 --> 01:22:46,830 ne do të duhet të bëni të sigurtë që të dhëna përdoruesi nuk është në fakt një SQL 1750 01:22:46,830 --> 01:22:49,670 pyetje që do të shkaktojë gjithë tavolina tona për të rënë 1751 01:22:49,670 --> 01:22:54,070 apo diçka të keqe për të ndodhë me database tonë. 1752 01:22:54,070 --> 01:22:56,790 >> Rrëmbimi Sesioni është një lloj sulmi 1753 01:22:56,790 --> 01:23:05,940 që ndodh kur disa të këqija Personi përdor sesionin e disa viktimave 1754 01:23:05,940 --> 01:23:08,740 ID për të hyrë në informacionin e login. 1755 01:23:08,740 --> 01:23:13,620 Pra, një shembull shumë të parëndësishme e që është si në qoftë se ne kemi një kompjuter publik, 1756 01:23:13,620 --> 01:23:21,120 atëherë personi i keq shkrimet në dhe pastaj ata kanë cookie-t që janë të ruajtur. 1757 01:23:21,120 --> 01:23:23,380 Dhe cookies nuk do të ndryshojë për seancë. 1758 01:23:23,380 --> 01:23:27,620 >> Pastaj ne kemi viktima të shkojnë në dhe pastaj hyni në faqen e internetit. 1759 01:23:27,620 --> 01:23:30,290 Cookies nuk do të ndryshojë për një seancë të caktuar. 1760 01:23:30,290 --> 01:23:33,060 Dhe pastaj viktima shkrimet në në faqen e internetit dhe pastaj të largohet. 1761 01:23:33,060 --> 01:23:36,190 Dhe atëherë personi i cili shkon prapa atëherë mund të ende përdorin ID e tyre sesion 1762 01:23:36,190 --> 01:23:37,430 për të hyrë në informacionin e tyre. 1763 01:23:37,430 --> 01:23:40,050 Pra, kjo është një shembull i si që mund të ndodhë. 1764 01:23:40,050 --> 01:23:45,570 >> Dhe atëherë unë nuk do të shqetësohen shumë në lidhje me kodi të veçantë ose ndonjë gjë 1765 01:23:45,570 --> 01:23:49,270 si ajo që mund të shkaktojnë këtë, por duke pasur një lloj ideje se çfarë 1766 01:23:49,270 --> 01:23:51,400 variablat e përfshira në këtë janë. 1767 01:23:51,400 --> 01:23:53,897 Dhe pastaj manipuluar header të dhënave është një tjetër lloj sulmi 1768 01:23:53,897 --> 01:23:55,230 që ka David ka biseduar rreth. 1769 01:23:55,230 --> 01:23:59,730 Dhe vetëm ajo i referohet çfarë mund të ndodhë kur 1770 01:23:59,730 --> 01:24:04,300 përgjigja, HTTP përgjigje brenda kokë tonë 1771 01:24:04,300 --> 01:24:05,720 nuk është pastruar si duhet. 1772 01:24:05,720 --> 01:24:14,340 >> Dhe ndonjë nga fields-- për shembull, në qoftë se dikush overwrites një kokë 1773 01:24:14,340 --> 01:24:18,860 Vlerat për të përmbajë asgjë më shumë se çfarë duhet contain-- dhe në fakt 1774 01:24:18,860 --> 01:24:22,720 përmbajnë, për shembull, një 200 Kodi status OK, atëherë ata 1775 01:24:22,720 --> 01:24:26,890 potencialisht mund të bëjë me qëllim të keq gjëra kur ata nuk jemi duke menduar për. 1776 01:24:26,890 --> 01:24:30,815 Por unë nuk do të shqetësohen shumë shumë për kodin specifik 1777 01:24:30,815 --> 01:24:34,110 që mund të shkaktojë kjo, vetëm lloj i të kuptuarit 1778 01:24:34,110 --> 01:24:37,290 të nivelit të lartë gjëra të tilla si se. 1779 01:24:37,290 --> 01:24:39,570 >> Unë mendoj se kjo është e gjitha që ne kemi për të mbuluar. 1780 01:24:39,570 --> 01:24:40,090 Amazing. 1781 01:24:40,090 --> 01:24:43,310 Çdokush keni ndonjë pyetje në ndonjë nga gjërat që kemi mbuluar? 1782 01:24:43,310 --> 01:24:44,213 Po. 1783 01:24:44,213 --> 01:24:48,077 >> Audienca: Pra, një lloj më shumë pyetje logjistike. 1784 01:24:48,077 --> 01:24:53,400 Është përmbajtja e fokusuar kryesisht gjërat sipas quiz 1? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: Pra, Pyetja është, është përmbajtja 1786 01:24:55,730 --> 01:24:59,720 përqendruar kryesisht në gjërat pas quiz 1? 1787 01:24:59,720 --> 01:25:06,070 Pra, fokusi është në pas quiz 1, me përjashtim 1788 01:25:06,070 --> 01:25:10,914 që ne duhet të përqëndrohet në gjëra në pset5 dhe shumë nga strukturat e të dhënave 1789 01:25:10,914 --> 01:25:11,580 që ne të mbuluar. 1790 01:25:11,580 --> 01:25:14,300 Dhe ne nuk mund të themi se mund të injorojë asgjë para 1791 01:25:14,300 --> 01:25:17,120 se për shkak se ajo është ndërtuar mbi atë si të mirë. 1792 01:25:17,120 --> 01:25:21,845 >> Pra, të përqëndrohet në atë, plus material pset5 si të lidhura, duke përfshirë listat, oxhaqet, 1793 01:25:21,845 --> 01:25:23,720 rradhë, dhe çdo gjë Ana kaloi. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH Blumberg: E drejta. 1795 01:25:24,050 --> 01:25:27,450 Po, kemi shkuar mbi të gjitha gjëra C Në fillim shumë shpejt. 1796 01:25:27,450 --> 01:25:29,090 Por sigurohuni që të shqyrtojë atë. 1797 01:25:29,090 --> 01:25:32,700 Kthehu mbrapa dhe të shikojnë quiz 0. 1798 01:25:32,700 --> 01:25:36,110 >> Një çift shënime më logjistike, vetëm ndërsa ne kemi vëmendjen tuaj. 1799 01:25:36,110 --> 01:25:39,100 Ne do të kemi orarin e punës si në hënën dhe të martën natën. 1800 01:25:39,100 --> 01:25:41,540 Ata do të jenë në MD 119. 1801 01:25:41,540 --> 01:25:44,220 Kjo është e gjitha në faqen e internetit, kështu që në qoftë se ju nuk e dëgjoni atë, nuk shqetësohet. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA: 08:30 deri ora 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH Blumberg: Po, 08:30 deri ora 11:00. 1804 01:25:46,260 --> 01:25:46,910 Ne do të jetë atje. 1805 01:25:46,910 --> 01:25:48,368 Ne do të jetë atje për t'iu përgjigjur pyetjeve. 1806 01:25:48,368 --> 01:25:49,480 Është dridhura bukur dhe argëtim. 1807 01:25:49,480 --> 01:25:53,240 Ju djema mund të kërkoni ndonjë pyetje që ju keni në quiz 1. 1808 01:25:53,240 --> 01:25:55,740 Dhe quiz 1 është në E mërkurë, fat aq të mirë. 1809 01:25:55,740 --> 01:25:59,770 Nëse keni ndonjë pyetje, ndoshta vijnë bisedoni me ne këtu një-në-një. 1810 01:25:59,770 --> 01:26:00,880 Ftohtë. 1811 01:26:00,880 --> 01:26:01,630 Faleminderit shumë. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA: Thanks so much, djema. 1813 01:26:02,880 --> 01:26:03,480 >> Audienca: Yay. 1814 01:26:03,480 --> 01:26:05,930 >> [Duartrokitje] 1815 01:26:05,930 --> 01:26:07,530