1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [MUSIC Playing] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH: Hi, të gjithë. 5 00:00:12,700 --> 00:00:15,866 Faleminderit djema aq shumë për të ardhur nga në mot të neveritshme për quiz një 6 00:00:15,866 --> 00:00:16,910 të shqyrtojë seancë. 7 00:00:16,910 --> 00:00:20,020 Si ju djema e di, quiz një është kjo e mërkurë. 8 00:00:20,020 --> 00:00:22,209 Pra, ne jemi duke shkuar për të shkuar përmes një bandë e temave. 9 00:00:22,209 --> 00:00:24,000 Davin: Hej, mund të them diçka të vërtetë të shpejtë? 10 00:00:24,000 --> 00:00:25,215 HANNAH: Yeah, Davin-së shkuar për të thënë diçka të vërtetë të shpejtë. 11 00:00:25,215 --> 00:00:25,780 Davin: Më vjen keq. 12 00:00:25,780 --> 00:00:29,490 Vetëm të shpejtë të vërtetë, në qoftë se ju keni pyetje për quiz, ju mund të shkoni online. 13 00:00:29,490 --> 00:00:32,420 Shko në 2014 një kuiz, për quiz. 14 00:00:32,420 --> 00:00:34,680 Atë e mori logjistikës për ku të shkoni, kur për të shkuar. 15 00:00:34,680 --> 00:00:38,100 Nëse ju jeni të regjistruar në të njëjtën kohë, ne jemi do të kemi një quiz grim në 05:30. 16 00:00:38,100 --> 00:00:40,350 Ose në qoftë se ju më dërgoi një çështje, ju keni disa çështje të tjera. 17 00:00:40,350 --> 00:00:42,640 Por 05:30 është make-up Koha më e mërkurë. 18 00:00:42,640 --> 00:00:44,540 Por në qoftë se ju keni pyetje, pyetje të përgjithshme, 19 00:00:44,540 --> 00:00:45,748 internet ka të gjitha logjistikës. 20 00:00:45,748 --> 00:00:47,690 Pra kontrolloni aty pari. 21 00:00:47,690 --> 00:00:49,070 >> HANNAH: mbresëlënës. 22 00:00:49,070 --> 00:00:53,030 Kështu që këtu është lista e madhe e temave se ne jemi duke shkuar për të shkuar deri sot. 23 00:00:53,030 --> 00:00:57,390 Unë jam duke shkuar për të mbuluar të gjitha të C sende, e cila është se kolonë të parë. 24 00:00:57,390 --> 00:01:00,710 Pra sende C se ne i mbuluar pas quiz zero. 25 00:01:00,710 --> 00:01:05,459 Duke filluar me një listë të lidhura, e cila përfshin pointers. 26 00:01:05,459 --> 00:01:07,668 >> Në rregull, kështu që ne pamë këtë në seancën e fundit të shqyrtimit, 27 00:01:07,668 --> 00:01:10,000 kështu që unë jam duke shkuar për të shkuar nëpërmjet kjo është pak më të shpejtë. 28 00:01:10,000 --> 00:01:13,500 Vetëm të ngrenë dorën tuaj nëse doni mua për të ngadalësojë ose të adresuar diçka më tej. 29 00:01:13,500 --> 00:01:17,150 Por ne i përdorim listat e lidhur sepse kemi filluar në C me vargjeve. 30 00:01:17,150 --> 00:01:20,920 Dhe vargjeve janë të mëdha, por Problemi është se ata kanë një madhësi të caktuar. 31 00:01:20,920 --> 00:01:24,925 Listat e lidhura të na lejojë për të krijuar mesme dinamike strukturat e të dhënave. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> Dhe ne kemi operacionet tona themelore, insert, fshini, dhe kërko. 34 00:01:32,320 --> 00:01:36,780 Dhe ne mund të bëjmë insert në Rasti më i keq kohë konstante 35 00:01:36,780 --> 00:01:39,140 në qoftë se ne vetëm vënë atë në fillim. 36 00:01:39,140 --> 00:01:45,220 Fshij dhe kërko, më i keq Rasti i madh oh e kohës n. 37 00:01:45,220 --> 00:01:47,140 Pra, përsëri, vetëm për të rrokullisje nëpër këto foto, 38 00:01:47,140 --> 00:01:50,860 Unë e di që kemi parë këto kohë të fundit, por ne duan të mbajnë gjurmët e listës sonë të lidhura 39 00:01:50,860 --> 00:01:53,440 nga mbajtja e kreu i listës sonë të lidhura. 40 00:01:53,440 --> 00:01:55,580 Sepse ne e dimë se secili një nga nyjet tona 41 00:01:55,580 --> 00:01:58,610 është vetëm do të tregojnë për nyje tjetër në listën tonë të lidhura. 42 00:01:58,610 --> 00:02:00,460 >> Pra, kjo është se si ne të mbajnë gjurmët. 43 00:02:00,460 --> 00:02:02,910 Edhe pse këto nuk janë pjesë e vazhdueshme e kujtesës, 44 00:02:02,910 --> 00:02:07,410 ne mund t'i gjeni duke i drejtë duke ndjekur shigjetat ndryshme. 45 00:02:07,410 --> 00:02:09,800 Këtu është struktura jonë për një listë nyje të lidhura. 46 00:02:09,800 --> 00:02:11,440 Ne e pamë këtë herë të fundit. 47 00:02:11,440 --> 00:02:13,080 Ne kemi nyje tonë struct. 48 00:02:13,080 --> 00:02:14,340 Dhe ajo ka dy veti. 49 00:02:14,340 --> 00:02:17,020 Numri një, aktual Vlera ne duam të ruajtur. 50 00:02:17,020 --> 00:02:18,290 Në këtë rast, është një numër të plotë. 51 00:02:18,290 --> 00:02:21,100 Kjo mund të jetë një varg, ajo mund të të jetë një char, çdo gjë që ju dëshironi. 52 00:02:21,100 --> 00:02:24,710 Dhe pastaj, ne duhet të mbajnë gjurmët e nyje tjetër në listën tonë të lidhura. 53 00:02:24,710 --> 00:02:29,797 Kështu që do të jetë një treguesin në nyjen e ardhshëm. 54 00:02:29,797 --> 00:02:31,880 Nëse keni qenë vetëm duke bërë kërko, siç kam thënë më parë, 55 00:02:31,880 --> 00:02:34,900 ju do të keni për të ndjekur shigjetat tuaja poshtë. 56 00:02:34,900 --> 00:02:40,720 Futje, ju do të mbani gjurmët e ku pjesa tjetër e listës suaj është. 57 00:02:40,720 --> 00:02:44,150 Dhe ju doni të përcjellim në kokë të tregojnë për elementin tonë të re, e cila 58 00:02:44,150 --> 00:02:46,640 në këtë rast është një, dhe pastaj një do të nxjerr 59 00:02:46,640 --> 00:02:49,480 të mbetur të lista lidhur. 60 00:02:49,480 --> 00:02:52,996 Pra, përsëri, unë e di se kjo është pak bit e një përsëritje nga quiz zero. 61 00:02:52,996 --> 00:02:55,370 Pra, ne duhet të jemi shumë të kujdesshëm për rendin në të cilën ne 62 00:02:55,370 --> 00:03:00,390 bëjnë këto pointings kështu që ne nuk bëjmë të humbur gjurmët e pasme të listës. 63 00:03:00,390 --> 00:03:04,122 OK, ndonjë pyetje me vetëm i lidhur në formë individuale listat? 64 00:03:04,122 --> 00:03:06,060 Awesome, OK, cool. 65 00:03:06,060 --> 00:03:09,410 >> Deri tani, ne jemi duke shkuar për të shkuar mbi diçka vetëm pak më e komplikuar, 66 00:03:09,410 --> 00:03:10,920 i lidhur dyfish listat. 67 00:03:10,920 --> 00:03:13,680 Pra, përveç mbajtjes udhë e nyjeve të ardhshëm, 68 00:03:13,680 --> 00:03:16,220 ne gjithashtu duam të mbajtur nën e nyjeve kaluar. 69 00:03:16,220 --> 00:03:19,580 Dhe kjo na lejon për të, në qoftë se ne jemi në një pikë në listën tonë të lidhura, 70 00:03:19,580 --> 00:03:23,110 jo vetëm të shkojnë përpara, por gjithashtu iterate prapa. 71 00:03:23,110 --> 00:03:25,220 Sepse siç e pamë në një listë e lidhur në formë individuale, 72 00:03:25,220 --> 00:03:27,980 në qoftë se ne ishim në një nyje, dhe të gjithë një e papritur, ne kemi vendosur, 73 00:03:27,980 --> 00:03:30,160 në të vërtetë, unë dua të shkoj në e drejtë nyjen para meje, 74 00:03:30,160 --> 00:03:32,034 ju do të keni për të shkuar të gjithë mënyrë mbrapa në kokë 75 00:03:32,034 --> 00:03:35,710 dhe iterate përmes derisa ju të gjetur nyjen ju po kërkoni. 76 00:03:35,710 --> 00:03:37,680 >> Pra, kjo i bën gjërat pak më e lehtë si ne jemi 77 00:03:37,680 --> 00:03:39,670 duke u përpjekur për të iterate përmes listën tonë të lidhura. 78 00:03:39,670 --> 00:03:47,870 Por kjo kërkon që ne të mbajnë gjurmët e njërit më akrep, kështu që një yll më shumë nyje. 79 00:03:47,870 --> 00:03:50,830 Në rregull, kështu që këtu vjen pjesa fun. 80 00:03:50,830 --> 00:03:55,600 Ne jemi duke shkuar për të praktikuar zbatimin hequr për listat e lidhura dyfish. 81 00:03:55,600 --> 00:03:58,660 Pra, kjo është diçka që është lojë tërësisht e drejtë për quiz. 82 00:03:58,660 --> 00:04:00,750 Ajo ka treguar deri në kuize të fundit. 83 00:04:00,750 --> 00:04:04,220 Pra, patjetër të jenë të përgatitur të kodit pak në C. 84 00:04:04,220 --> 00:04:07,900 Mos harroni se me gjithë kjo PHP argëtim dhe JavaScript, 85 00:04:07,900 --> 00:04:10,560 ne ende duhet të mbani mend për të bërë C. Pra pastrohen deri në atë 86 00:04:10,560 --> 00:04:12,146 nëse ju jeni ndjeheni ndryshkur. 87 00:04:12,146 --> 00:04:14,580 >> Në rregull, le të shohim nëse ne mund të bëjmë këtë. 88 00:04:14,580 --> 00:04:16,312 OK, cool. 89 00:04:16,312 --> 00:04:18,600 Pra, ne jemi duke shkuar për të provoni për të redaktuar të drejtë në këtu, 90 00:04:18,600 --> 00:04:20,707 dhe shpresojmë se kjo shkon siç është planifikuar. 91 00:04:20,707 --> 00:04:23,915 Në rregull, ka njeri të dëshironi të jepni mua një sugjerim se si unë duhet të fillojë? 92 00:04:23,915 --> 00:04:27,030 Vetëm supozim unë jam duke e bërë është se unë tashmë 93 00:04:27,030 --> 00:04:30,180 kanë një strukturë të përcaktuar, një I tregoi në faqen e fundit, 94 00:04:30,180 --> 00:04:31,420 në rrëshqitje e fundit. 95 00:04:31,420 --> 00:04:39,250 Dhe unë jam ruajtjen kreun e lidhura tim listë në disa treguesin e quajtur listë. 96 00:04:39,250 --> 00:04:42,190 Do që ndokush të merrni mua filloi? 97 00:04:42,190 --> 00:04:45,410 >> AUDIENCA: A mund të krijojë një të ri nyje për të thirrur nëpër lista? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH: mbresëlënës, kështu ne jemi duke shkuar për të krijuar 99 00:04:46,410 --> 00:04:47,951 një nyje të re të zvarritem nëpër lista. 100 00:04:47,951 --> 00:04:48,570 Më pëlqen kjo. 101 00:04:48,570 --> 00:04:50,799 Unë vetëm do të thërrasë atë akrep nëse kjo është në rregull. 102 00:04:50,799 --> 00:04:52,340 Dhe ku duhet ajo fillimisht të fillojë? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> AUDIENCA: Ndoshta në kreu i listës. 105 00:04:59,840 --> 00:05:00,590 HANNAH: Beautiful. 106 00:05:00,590 --> 00:05:03,670 Ne duam të fillojë në kokë, i cili Unë i thashë do të jetë i ruajtur në listë. 107 00:05:03,670 --> 00:05:04,170 Awesome. 108 00:05:04,170 --> 00:05:05,220 Deri më tani, në mënyrë të mirë. 109 00:05:05,220 --> 00:05:08,260 Dhe tani, qëllimi ynë është që të iterate nëpër lista 110 00:05:08,260 --> 00:05:12,870 deri sa të gjejmë nyjen me Vlera n se ne duam të fshini. 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> Pra, tani është pjesa ku ne duam të iterate nëpër. 113 00:05:15,910 --> 00:05:19,488 Can anyone sugjerojnë një mënyrë për të iterate nëpër? 114 00:05:19,488 --> 00:05:20,979 >> AUDIENCA: Një lak. 115 00:05:20,979 --> 00:05:21,840 >> HANNAH: Një lak. 116 00:05:21,840 --> 00:05:22,620 Unë e dua atë. 117 00:05:22,620 --> 00:05:25,550 Në mënyrë të veçantë, ne mund të provoni një lak, ndërsa. 118 00:05:25,550 --> 00:05:30,919 OK, dhe ne e dimë se ne kemi arritur fundi i listës sonë kur është çfarë? 119 00:05:30,919 --> 00:05:32,210 AUDIENCA: Kur akrep është null. 120 00:05:32,210 --> 00:05:33,418 HANNAH: Kur akrep është null. 121 00:05:33,418 --> 00:05:34,320 Beautiful, I love it. 122 00:05:34,320 --> 00:05:35,110 OK, cool. 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 Pra vjen keq nëse mbajtëse ime bounding është lloj duke u pakësuar në ekran. 125 00:05:43,190 --> 00:05:44,090 Ne e solli atë përsëri. 126 00:05:44,090 --> 00:05:46,610 OK, cool. 127 00:05:46,610 --> 00:05:48,690 Çfarë ndodh më pas? 128 00:05:48,690 --> 00:05:51,950 >> Pra, ne e dimë që ne duam të fshini nyjë që ka vlerë n. 129 00:05:51,950 --> 00:05:56,340 Pra, le të gjej rastin kur është e ne në të vërtetë të gjeni nyje tonë. 130 00:05:56,340 --> 00:05:57,840 Pra, si do që unë të kontrolloni se? 131 00:05:57,840 --> 00:06:02,210 Unë do të them vetëm nëse akrep, dhe pastaj nëse unë doni të merrni vlerën nga akrep, 132 00:06:02,210 --> 00:06:08,940 Unë vetëm mund shigjetë n, është e barabartë n, parametrin 133 00:06:08,940 --> 00:06:14,490 që kemi dhënë në këtë funksion, nyjë që ne duam të vërtetë fshini. 134 00:06:14,490 --> 00:06:17,090 Çdo pyetje deri deri këtu? 135 00:06:17,090 --> 00:06:18,360 Dakord. 136 00:06:18,360 --> 00:06:24,140 OK, kështu që tani le të nxjerrë një foto të shpejtë në tabelën në mënyrë të dukshëm kjo. 137 00:06:24,140 --> 00:06:30,710 >> Pra, le të thonë se nuk ka nyje tonë të bukur. 138 00:06:30,710 --> 00:06:34,480 Dhe kjo ka një vlerë, unë do të them vetëm katër. 139 00:06:34,480 --> 00:06:40,340 Dhe kjo tregon për tjetër nyje në listën tonë të lidhura. 140 00:06:40,340 --> 00:06:42,220 Dhe nuk ka asgjë para tij. 141 00:06:42,220 --> 00:06:45,800 Pra, ne kemi previous tonë duke treguar për asgjë. 142 00:06:45,800 --> 00:06:48,110 Në këtë rast, ne pikë prapa. 143 00:06:48,110 --> 00:06:50,960 OK, vetëm ngritjen tim i lidhur listë mbi këtu. 144 00:06:50,960 --> 00:06:53,630 Dhe ne kemi një listë që tregon në këtë strukturë për të filluar me. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 Unë do të tërheq një më shumë për hir të plotësisë. 147 00:07:00,485 --> 00:07:04,209 148 00:07:04,209 --> 00:07:06,117 OK. 149 00:07:06,117 --> 00:07:07,480 Unë do të theksoj këtë përpara. 150 00:07:07,480 --> 00:07:09,550 Dhe unë do të theksoj se një prapa. 151 00:07:09,550 --> 00:07:10,360 Oops, sorry. 152 00:07:10,360 --> 00:07:12,710 Yeah, mori kjo prapa. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 A atë përsëri. 155 00:07:16,967 --> 00:07:18,330 OK, atje ne do të shkojmë. 156 00:07:18,330 --> 00:07:19,910 Në rregull, e mori atë. 157 00:07:19,910 --> 00:07:21,780 OK, këtu është fotografia jonë. 158 00:07:21,780 --> 00:07:24,860 >> OK, kështu që ne duam të marrin në konsideratë dy raste. 159 00:07:24,860 --> 00:07:27,330 Rasti i parë është nëse nyje ne duam të fshini 160 00:07:27,330 --> 00:07:29,420 është që në fillim të listës sonë. 161 00:07:29,420 --> 00:07:34,070 Dhe pastaj, rasti i dytë që ne duam për t'u marrë parasysh është nëse është e kudo tjetër. 162 00:07:34,070 --> 00:07:37,660 Unë e kuptoj se kjo a tërësisht i çrregullt duke tërhequr me gjithë erasing tim, 163 00:07:37,660 --> 00:07:40,400 por shpresojmë se ne do të përpiqemi për të të bërë këtë të qartë me disa kodin. 164 00:07:40,400 --> 00:07:45,450 >> OK, kështu që le të mbulojë çështjen ku kemi gjetur nyje tonë, 165 00:07:45,450 --> 00:07:48,900 dhe kjo është në shumë filloni nga listën tonë të lidhura. 166 00:07:48,900 --> 00:07:50,810 Dikush të më jepni një sugjerim këtu si për atë 167 00:07:50,810 --> 00:07:54,684 Unë duhet të bëjë në fakt të hequr nyje tonë? 168 00:07:54,684 --> 00:07:55,970 Kjo është pak i ndërlikuar. 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> AUDIENCA: Ju keni për të marrë nyje që do të jetë para saj 171 00:07:59,628 --> 00:08:01,794 dhe të bëjë atë të tregojnë për një të tillë që do të jetë pas saj, 172 00:08:01,794 --> 00:08:03,004 dhe të marrë nyjen që do të ishte pas saj dhe të bëjë 173 00:08:03,004 --> 00:08:04,554 ajo pikë në nyjen para saj. 174 00:08:04,554 --> 00:08:05,220 HANNAH: Pikërisht. 175 00:08:05,220 --> 00:08:10,640 OK, kështu që ky është rasti where-- ne kemi dy raste. 176 00:08:10,640 --> 00:08:14,100 Ne kemi rastin ku e nyjë që ne jemi duke kërkuar për 177 00:08:14,100 --> 00:08:18,270 është front i listës. 178 00:08:18,270 --> 00:08:23,110 OK, dhe pastaj rasti që t'ju përshkruar është ndryshe, e drejtë? 179 00:08:23,110 --> 00:08:24,500 Është diku tjetër në listë. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 Pra, ju tha, ne kemi nevojë për të shikoni në nyjen e mëparshëm, 182 00:08:32,840 --> 00:08:36,500 dhe të bëjë nyjen e mëparshme tregojnë për nyjen e ardhshëm. 183 00:08:36,500 --> 00:08:40,510 Pra, le të thonë se ne jemi duke u përpjekur për të marrë nga pesë 184 00:08:40,510 --> 00:08:43,059 në vizatim tim shumë të çrregullt mbi këtu. 185 00:08:43,059 --> 00:08:47,530 Ne duam të sigurohemi që katër tani vë në gjashtë. 186 00:08:47,530 --> 00:08:49,590 Katër-së pika të ardhshëm në gjashtë. 187 00:08:49,590 --> 00:08:52,150 Dhe gjashtë pikat e mëparshme të katër. 188 00:08:52,150 --> 00:08:53,960 Kjo është qëllimi ynë këtu, apo jo? 189 00:08:53,960 --> 00:08:56,150 Kjo është ajo që unë mendoj se ju tha pak më shumë atje. 190 00:08:56,150 --> 00:08:58,450 >> OK, kështu që le të marrë atë copë të parë. 191 00:08:58,450 --> 00:09:02,300 Le të bëjmë të ketë akrep i mëparshëm i mëparshëm. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 Pra, katër të ardhshëm duhet të tregojnë për çfarë? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 Pikërisht, në këtë rast, gjashtë. 196 00:09:14,900 --> 00:09:18,470 Pra, ne duhet të themi treguesin, tjetër. 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 Dakord. 199 00:09:21,150 --> 00:09:24,870 Pra, le të heqin qafe këtë foto shëmtuar dhe të përpiqen për të nxjerrë një të pak nicer. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 Ne kemi kokën listën tonë këtu. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 Dhe që tregon për nyjen e parë në lista jonë e lidhur, që kemi thënë është katër. 204 00:09:42,740 --> 00:09:45,620 Ja nyje ynë i dytë, pesë. 205 00:09:45,620 --> 00:09:47,307 Dhe nyje ynë i tretë, gjashtë. 206 00:09:47,307 --> 00:09:50,265 Vetëm duke u përpjekur për të nxjerrë të njëjtën gjë e saktë foto, vetëm pak më shumë pastër. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 OK, kështu që katër të ardhshëm fillimisht vë në pesë. 209 00:09:56,280 --> 00:09:58,620 Pesë-së pika të ardhshëm në gjashtë. 210 00:09:58,620 --> 00:10:00,170 Gjashtë pikat e mëparshme për pesë. 211 00:10:00,170 --> 00:10:02,470 Dhe pesë-së pikat e mëparshme të katër. 212 00:10:02,470 --> 00:10:03,360 Aq shumë nicer! 213 00:10:03,360 --> 00:10:04,530 OK, cool. 214 00:10:04,530 --> 00:10:07,770 >> Deri tani, ajo që ne e bëmë vetëm këtu, kjo linjë e kodit, 215 00:10:07,770 --> 00:10:12,680 e cila thotë akrep mëparshme tjetër, kështu që çfarë do të thotë kjo? 216 00:10:12,680 --> 00:10:17,540 Kjo do të thotë në qoftë se ne jemi duke kërkuar në pesë, shkoni në nyjen e mëparshëm, 217 00:10:17,540 --> 00:10:21,970 dhe është e ardhshëm duhet tani pikë në pesë të ardhshëm. 218 00:10:21,970 --> 00:10:27,840 Pra, në thelb, ajo që kjo është bërë po që është fshirja e këtij shigjetë 219 00:10:27,840 --> 00:10:29,640 dhe duke e bërë të kaloni djathtas mbi pesë. 220 00:10:29,640 --> 00:10:31,360 A është kjo e qartë? 221 00:10:31,360 --> 00:10:33,200 Unë e di se mund të jetë pak skematik. 222 00:10:33,200 --> 00:10:34,480 Unë shoh disa nyje kokë. 223 00:10:34,480 --> 00:10:35,390 Kjo është e mirë. 224 00:10:35,390 --> 00:10:36,670 OK, cool. 225 00:10:36,670 --> 00:10:39,590 Tani, çfarë është hapi tjetër? 226 00:10:39,590 --> 00:10:42,060 >> Unë e kam rivendosur tjetër. 227 00:10:42,060 --> 00:10:45,297 Tani, cila shigjetë tjetër nuk kam nevojë për të ndryshuar? 228 00:10:45,297 --> 00:10:46,130 Kjo e drejtë këtu. 229 00:10:46,130 --> 00:10:47,560 Gjashtë-së mëparshme. 230 00:10:47,560 --> 00:10:50,620 Ne nuk duam gjashtë e mëparshme për pikë në pesë më. 231 00:10:50,620 --> 00:10:54,580 Ne duam që ajo të nxjerr në katër. 232 00:10:54,580 --> 00:10:56,190 A se foto kuptim? 233 00:10:56,190 --> 00:10:58,370 Pra, tani ne fakt mund të marrë pesë out. 234 00:10:58,370 --> 00:10:59,370 Pra, le të marrë atë copë. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 Çfarë duhet të bëj para se unë rivendosni gjashtë-së mëparshme në katër? 237 00:11:11,180 --> 00:11:14,360 Çdo ide atje? 238 00:11:14,360 --> 00:11:17,369 >> AUDIENCA: Free nyjen mes ata duke vendosur që ajo të null? 239 00:11:17,369 --> 00:11:17,910 HANNAH: Best. 240 00:11:17,910 --> 00:11:21,100 Definitely, qëllimi ynë përfundimtar është do të jetë për të liruar nyjen. 241 00:11:21,100 --> 00:11:22,490 Pra, ne mund të bëjmë atë të drejtë këtu. 242 00:11:22,490 --> 00:11:23,540 Akrep falas. 243 00:11:23,540 --> 00:11:24,810 Absolutisht. 244 00:11:24,810 --> 00:11:29,160 Por edhe para se, le të just-- drejtën tonë qëllimi 245 00:11:29,160 --> 00:11:38,730 këtu është për të vendosur treguesin e ardhshme mëparshme e barabartë me treguesin e mëparshme. 246 00:11:38,730 --> 00:11:40,760 Unë e di se kjo është duke u mbuluar. 247 00:11:40,760 --> 00:11:45,440 OK, le të take-- cool. 248 00:11:45,440 --> 00:11:46,990 A mund të gjithë të shohin këtë linjë fund? 249 00:11:46,990 --> 00:11:47,840 Apo është super i vogël? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> Pra, para se të ekzekutojë kjo linjë këtu, ne duam 252 00:11:54,300 --> 00:11:58,375 për të siguruar se tregues tjetër nuk është i pavlefshëm. 253 00:11:58,375 --> 00:12:00,500 Sepse nëse akrep tjetër është null, çfarë lloj të gabimit 254 00:12:00,500 --> 00:12:02,727 do të shkoj kur unë të përpiqet për të referencë një tregues null? 255 00:12:02,727 --> 00:12:03,560 AUDIENCA: faji seg. 256 00:12:03,560 --> 00:12:05,660 HANNAH: Një faji seg, të bukur. 257 00:12:05,660 --> 00:12:09,690 OK, kështu që nëse kjo nuk është e null, atëherë ne mund të rishkruhet. 258 00:12:09,690 --> 00:12:14,420 Dhe ne kemi gjashtë pikë përsëri në katër. 259 00:12:14,420 --> 00:12:17,440 Pyetjet Deri në këtë pikë? 260 00:12:17,440 --> 00:12:17,940 Po? 261 00:12:17,940 --> 00:12:19,814 >> AUDIENCA: Në juaj e parë nëse deklarate, a keni 262 00:12:19,814 --> 00:12:23,817 do të thotë që të ketë arrow tjetër, ose [e padëgjueshme]? 263 00:12:23,817 --> 00:12:25,150 HANNAH: Unë do të thotë akrep shigjetë n. 264 00:12:25,150 --> 00:12:30,270 Pra, në thelb, ajo që unë jam duke u përpjekur për të bërë po them, nyjen aktual që unë jam 265 00:12:30,270 --> 00:12:34,100 iterating mbi, nyjen aktual që Unë jam duke kërkuar në, unë jam ruajtjen në treguesin. 266 00:12:34,100 --> 00:12:37,630 Dhe unë dua të di akrep-së vlera, e cila në këtë rast është n. 267 00:12:37,630 --> 00:12:39,500 Dhe unë dua të shoh, është nyjë Unë jam duke kërkuar 268 00:12:39,500 --> 00:12:42,790 për nyjen unë jam duke synuar për të fshini? 269 00:12:42,790 --> 00:12:47,657 Pra, kjo është arsyeja pse ne kemi këtu treguesin n. 270 00:12:47,657 --> 00:12:49,857 >> AUDIENCA: Pra shigjetë shkuar deri n, keni vendosur vlerën 271 00:12:49,857 --> 00:12:52,058 dhe ruajtur atë në një nyje të quajtur n? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH: Pra, kjo është si në qoftë se unë jam duke kaluar nëpër këtë listë të lidhura 274 00:12:58,820 --> 00:13:00,310 dhe duke treguar për pesë. 275 00:13:00,310 --> 00:13:03,600 Nëse unë dua të të marrë atë vlerë, në qoftë se Unë dua që të merrni këtë numër, 5, 276 00:13:03,600 --> 00:13:06,400 Unë kam për të bërë tregues shigjetë n. 277 00:13:06,400 --> 00:13:06,900 I ftohtë? 278 00:13:06,900 --> 00:13:07,900 Vërtet. 279 00:13:07,900 --> 00:13:11,200 >> AUDIENCA: është n emrin e variablit? 280 00:13:11,200 --> 00:13:11,700 HANNAH: Po. 281 00:13:11,700 --> 00:13:14,870 Pra, nëse ne rrokullisje prapa një rrëshqitje, n është emri 282 00:13:14,870 --> 00:13:18,660 të vlerës brenda e nyje në listën tonë të lidhura. 283 00:13:18,660 --> 00:13:21,510 Dhe unë e di se ajo mund të marrë pak pak konfuze sepse ne gjithashtu 284 00:13:21,510 --> 00:13:24,680 janë duke e quajtur gjënë që ne duam të fshini n. 285 00:13:24,680 --> 00:13:26,717 Pra, kjo është ajo ku se një linjë vjen nga. 286 00:13:26,717 --> 00:13:27,671 Vërtet? 287 00:13:27,671 --> 00:13:31,010 >> AUDIENCA: Çfarë keni [E padëgjueshme] si ata punojnë? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 Një tregues [e padëgjueshme]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH: Sigurisht. 291 00:13:37,520 --> 00:13:40,027 A jeni duke folur about-- cila linjë? 292 00:13:40,027 --> 00:13:41,526 AUDIENCA: Linja e fundit [e padëgjueshme]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH: Sure, OK. 295 00:13:45,250 --> 00:13:48,540 Pra, le të shohim në foto në mënyrë që të përpiqen për të shpjeguar këtë. 296 00:13:48,540 --> 00:13:51,030 Më vjen keq, për kamera, pyetja ishte 297 00:13:51,030 --> 00:13:54,580 mund të shpjegoj treguesin shigjetë tregues tjetër i mëparshëm. 298 00:13:54,580 --> 00:14:01,510 OK, kështu që le të thonë se ne jemi në pesë dhe qëllimi ynë është që të fshini pesë. 299 00:14:01,510 --> 00:14:07,240 Pra treguesin e ardhshme, të cilat nga këto tre nyjet e bën që të na japë? 300 00:14:07,240 --> 00:14:10,840 Kjo na sjell në nyjen e gjashtë, e drejtë? 301 00:14:10,840 --> 00:14:16,490 >> OK, kështu që tani që ne jemi duke i kërkuar për gjashtë-së mëparshme. 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 Dhe ne jemi duke resetting kjo të jenë të barabartë me katër, 304 00:14:20,210 --> 00:14:23,214 i cili ka ndodhur të jetë pesë të mëparshme. 305 00:14:23,214 --> 00:14:25,180 Unë e di, kjo është super e vështirë të mbajnë gjurmët e. 306 00:14:25,180 --> 00:14:29,286 Unë me të vërtetë ju rekomandojmë që të nxjerrë fotot nëse ju merrni një pyetje si kjo. 307 00:14:29,286 --> 00:14:30,242 Po? 308 00:14:30,242 --> 00:14:32,617 >> AUDIENCA: A është arsyeja që ne nuk kemi një [e padëgjueshme]? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH: Pikërisht. 311 00:14:38,570 --> 00:14:44,800 Pra, pyetja ishte, pse bëni ne nuk duhet të kontrolloni këtu? 312 00:14:44,800 --> 00:14:48,160 Pse nuk kemi nevojë të kontrolloni se akrep i mëparshëm nuk është i barabartë me null? 313 00:14:48,160 --> 00:14:50,070 Dhe kjo është për shkak se ne kemi tashmë të ndara nga 314 00:14:50,070 --> 00:14:52,490 rasti nëse akrep-së në fillim. 315 00:14:52,490 --> 00:14:54,060 Pyetje shumë e mirë. 316 00:14:54,060 --> 00:14:56,880 Çdo gjë tjetër në këtë? 317 00:14:56,880 --> 00:14:57,380 OK, cool. 318 00:14:57,380 --> 00:14:58,360 Pra, le të përfundojë atë. 319 00:14:58,360 --> 00:14:59,890 Ne jemi pothuajse atje. 320 00:14:59,890 --> 00:15:01,310 >> Pra, çfarë nëse ajo është në krye? 321 00:15:01,310 --> 00:15:03,360 Çfarë nëse në vend të duke u përpjekur të fshini pesë, 322 00:15:03,360 --> 00:15:06,240 ne në të vërtetë të kërkuar për të fshini katër? 323 00:15:06,240 --> 00:15:07,270 Çfarë do të më duhet të bëj? 324 00:15:07,270 --> 00:15:09,610 E pra, unë dua të rivendosur kokën time për çfarë? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Shout atë? 327 00:15:15,585 --> 00:15:16,710 AUDIENCA: njëra pas saj. 328 00:15:16,710 --> 00:15:17,460 HANNAH: Beautiful. 329 00:15:17,460 --> 00:15:26,430 OK, kështu që ne duan lista që do të vënë në për çfarëdo akrep nyje ynë tjetër është. 330 00:15:26,430 --> 00:15:29,040 I mirë. 331 00:15:29,040 --> 00:15:30,810 Dhe vetëm për plotësinë-së hir, ne do të 332 00:15:30,810 --> 00:15:35,590 dëshironi të kontrolloni se sa kohë që lista jonë nuk është null, sa kohë që lista jonë nuk është 333 00:15:35,590 --> 00:15:42,730 bosh, atëherë ne duam të vendosur ynë i mëparshëm i barabartë për të null. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 Pyetje deri tani? 336 00:15:50,230 --> 00:15:53,205 Një hap larg from--? 337 00:15:53,205 --> 00:15:55,530 >> AUDIENCA: A do të ishte nëse lista nuk është e barabartë tek null? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH: Po, ju jeni plotësisht të drejtë. 339 00:15:56,950 --> 00:15:58,130 Unë jam aq i keq. 340 00:15:58,130 --> 00:16:00,040 Është lista nuk është e barabartë me null. 341 00:16:00,040 --> 00:16:01,915 Awesome. 342 00:16:01,915 --> 00:16:04,245 Duke u përpjekur për të sjellë këtë të gjithë në ekran. 343 00:16:04,245 --> 00:16:06,870 Është lloj i bie off. 344 00:16:06,870 --> 00:16:07,730 Na vjen keq, djema. 345 00:16:07,730 --> 00:16:11,874 Dhe e fundit por jo më pak, të gjithë ne duhet të bëni është kthimi. 346 00:16:11,874 --> 00:16:12,840 OK. 347 00:16:12,840 --> 00:16:15,400 Kjo ishte një shumë e mbushur në të vërtetë shpejt. 348 00:16:15,400 --> 00:16:16,800 Merrni një të dytë për të parë këtë pa. 349 00:16:16,800 --> 00:16:18,216 Më tregoni nëse keni ndonjë pyetje. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 Vërtet? 352 00:16:20,732 --> 00:16:26,940 >> AUDIENCA: Nëse lista është në kreu, then-- prisni, Nevermind. 353 00:16:26,940 --> 00:16:27,700 >> HANNAH: OK, mirë. 354 00:16:27,700 --> 00:16:30,987 Pra, kjo është në qoftë listë është në krye, ne hiqni atë për çdo gjë që ne e futur. 355 00:16:30,987 --> 00:16:31,486 Vërtet? 356 00:16:31,486 --> 00:16:33,777 >> AUDIENCA: A mund të shpjegojë parë nëse deklarata përsëri? 357 00:16:33,777 --> 00:16:36,149 Nëse tregues të n është e barabartë me n? 358 00:16:36,149 --> 00:16:36,690 HANNAH: Sigurisht. 359 00:16:36,690 --> 00:16:42,780 Pra, qëllimi ynë i këtij funksioni të tërë është të fshini nyjen që ka vlerë n. 360 00:16:42,780 --> 00:16:47,460 Pra, nëse ne gjejmë, si ne jemi iterating përmes listën tonë, 361 00:16:47,460 --> 00:16:51,770 nyjë me vlerës n, kjo është e një ne duam të fshini. 362 00:16:51,770 --> 00:16:57,286 Pra të gjithë e fshirjes ndodh brenda asaj i madh nëse deklaratë. 363 00:16:57,286 --> 00:16:58,593 A që ka kuptim? 364 00:16:58,593 --> 00:16:59,480 Ftohtë. 365 00:16:59,480 --> 00:16:59,990 Vërtet? 366 00:16:59,990 --> 00:17:02,864 >> AUDIENCA: Ndoshta ju thjesht nuk mund të shihni ajo, por mos ju gjithashtu nevojë për një linjë të 367 00:17:02,864 --> 00:17:06,024 për Scroll nëpër lista? 368 00:17:06,024 --> 00:17:06,690 HANNAH: mbresëlënës. 369 00:17:06,690 --> 00:17:10,896 Le të sjellë kjo deri pak, dhe ne do të hedhin atë të drejtë në pjesën e poshtme. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 Ndoshta bordi do të kemi qenë një ide pak më të mirë. 372 00:17:15,490 --> 00:17:17,829 Pra, si do të lëvizë treguesin përpara? 373 00:17:17,829 --> 00:17:20,184 >> AUDIENCA: Pointer është e barabartë me treguesin plus një. 374 00:17:20,184 --> 00:17:21,599 >> HANNAH: Beautiful. 375 00:17:21,599 --> 00:17:25,050 Kështu që na lejon të vazhdojnë iterating përmes. 376 00:17:25,050 --> 00:17:26,251 OK. 377 00:17:26,251 --> 00:17:27,750 AUDIENCA: A nuk do të ndodhë ndonjë tjetër? 378 00:17:27,750 --> 00:17:29,028 HANNAH: Një herë më shumë? 379 00:17:29,028 --> 00:17:32,444 AUDIENCA: A nuk do të ketë një tjetër pasi i madh i vjetër në qoftë se 380 00:17:32,444 --> 00:17:35,519 Deklarata [e padëgjueshme]? 381 00:17:35,519 --> 00:17:36,310 HANNAH: Cila pjesë? 382 00:17:36,310 --> 00:17:38,350 Më vjen keq. 383 00:17:38,350 --> 00:17:41,800 >> AUDIENCA: traversal, nuk duhet të ketë një tjetër? 384 00:17:41,800 --> 00:17:43,550 HANNAH: Ju absolutisht mund të ketë një tjetër. 385 00:17:43,550 --> 00:17:46,930 Sepse unë kam të drejtë të kthimit atje, ju nuk keni nevojë për një tjetër. 386 00:17:46,930 --> 00:17:48,760 Por vërtet, pyetje e mirë. 387 00:17:48,760 --> 00:17:50,170 OK, po? 388 00:17:50,170 --> 00:17:52,878 AUDIENCA: A mund të mendoni për treguesin që lëvizin nëpër lista 389 00:17:52,878 --> 00:17:56,610 si duke marrë mbi vlerën i çdo nyje në listë? 390 00:17:56,610 --> 00:18:00,650 Apo duhet të mendojnë për atë si lloj i jashtëm në listë? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH: Ose një është e mirë, unë mendoj. 392 00:18:02,350 --> 00:18:05,880 Mënyra unë të imagjinojmë se është Unë them, OK, unë jam akrep. 393 00:18:05,880 --> 00:18:06,520 Dhe kjo është më. 394 00:18:06,520 --> 00:18:07,150 Kjo është dora ime. 395 00:18:07,150 --> 00:18:09,960 Unë jam duke shkuar për pikë për të ndryshëm gjërat që unë dua për të iterate nëpër. 396 00:18:09,960 --> 00:18:12,270 Së pari, unë jam duke shkuar për pikë në krye të listës. 397 00:18:12,270 --> 00:18:14,144 Dhe kjo tregon mua unë jam do të tregojnë për katër. 398 00:18:14,144 --> 00:18:18,060 Dhe kështu unë, duke qenë i jashtëm në listë, I mund pikë në secilin prej këtyre elementëve. 399 00:18:18,060 --> 00:18:19,520 Kështu që unë mendoj për veten si pointer. 400 00:18:19,520 --> 00:18:21,645 Audienca: Pra, kur ju fshini një nga ato elemente, 401 00:18:21,645 --> 00:18:23,404 ju fshini veten, kështu që të flasin. 402 00:18:23,404 --> 00:18:24,070 HANNAH: Pikërisht. 403 00:18:24,070 --> 00:18:25,920 Pra, ju fshini gjë ju jeni duke treguar. 404 00:18:25,920 --> 00:18:28,340 Kështu në shembullin që ne pamë ku ne jemi 405 00:18:28,340 --> 00:18:31,670 duke u përpjekur të fshini pesë, kur unë jam duke treguar për pesë, 406 00:18:31,670 --> 00:18:34,200 Unë dua të fshini gjë që unë jam duke treguar për. 407 00:18:34,200 --> 00:18:35,870 Saktësisht e drejtë. 408 00:18:35,870 --> 00:18:36,577 Po? 409 00:18:36,577 --> 00:18:39,410 AUDIENCA: A e kemi marrë kujdesin e rast ku n nuk është në lista? 410 00:18:39,410 --> 00:18:40,460 HANNAH: Nëse n nuk është në lista? 411 00:18:40,460 --> 00:18:43,501 E gjithë kjo do të ndodhë është që ju jeni do të iterate nëpër dhe Iterate 412 00:18:43,501 --> 00:18:47,616 përmes, dhe pastaj, ju do të jeni për të marrë në treguesin duke u null, 413 00:18:47,616 --> 00:18:48,990 dhe pastaj ju do të jeni për të bërë. 414 00:18:48,990 --> 00:18:50,812 >> Audienca: Pra, a kemi asgjë për t'u kthyer? 415 00:18:50,812 --> 00:18:51,520 HANNAH: Ne mund. 416 00:18:51,520 --> 00:18:54,500 Mënyra se nëse përcaktohet kjo funksion, unë vetëm them se ajo kthehet 417 00:18:54,500 --> 00:18:55,770 të pavlefshme pa dallim. 418 00:18:55,770 --> 00:18:58,360 Por ju mund të keni diçka si u kthyer një numër të plotë, 419 00:18:58,360 --> 00:19:00,920 dhe e kanë atë të kthehen negativ 1 nëse ajo dështon. 420 00:19:00,920 --> 00:19:03,070 Diçka si kjo. 421 00:19:03,070 --> 00:19:04,494 Pyetjet with-- po? 422 00:19:04,494 --> 00:19:05,410 Audienca: [padëgjueshme]? 423 00:19:05,410 --> 00:19:05,993 HANNAH: Na vjen keq? 424 00:19:05,993 --> 00:19:07,419 Audienca: [padëgjueshme]? 425 00:19:07,419 --> 00:19:07,960 HANNAH: Sigurisht. 426 00:19:07,960 --> 00:19:11,730 Pra, kjo është actual-- dikur ne kemi bërë e gjithë kjo punë e lëviz 427 00:19:11,730 --> 00:19:16,530 të gjitha këto shigjeta përreth, e tërë ynë Qëllimi ishte për të hequr qafe të nyjeve 428 00:19:16,530 --> 00:19:18,230 që ne po kërkoni. 429 00:19:18,230 --> 00:19:21,610 Pra në këtë rast, duke çliruar akrep, në qoftë se unë jam duke treguar për pesë, 430 00:19:21,610 --> 00:19:24,670 kjo është si fshirja e kësaj nyje e mesme. 431 00:19:24,670 --> 00:19:27,250 Kjo është pjesë e lirë akrep. 432 00:19:27,250 --> 00:19:29,090 Se kuptim? 433 00:19:29,090 --> 00:19:31,390 >> Audienca: Pra menduar edhe ju nuk e [e padëgjueshme]? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH: Pra, ne mori në fillim kemi pasur disa lista që ishte already-- 435 00:19:36,060 --> 00:19:37,220 ata kishin vënë këtë së bashku. 436 00:19:37,220 --> 00:19:39,761 Pra, në mënyrë për të ndërtuar këtë listë, ata duhet të kem [e padëgjueshme]. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 Ftohtë. 439 00:19:42,750 --> 00:19:44,490 Çdo gjë tjetër me këtë? 440 00:19:44,490 --> 00:19:46,386 Po? 441 00:19:46,386 --> 00:19:49,204 >> AUDIENCA: Çfarë nëse lista nuk e barabartë me linjë të null? 442 00:19:49,204 --> 00:19:49,704 [E padëgjueshme]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH: E drejta këtu? 445 00:19:53,080 --> 00:19:53,840 AUDIENCA: Po. 446 00:19:53,840 --> 00:19:57,370 HANNAH: OK, të gjitha unë jam duke bërë po unë jam vetëm duke u siguruar 447 00:19:57,370 --> 00:20:03,250 që para se unë të përpiqet për të listën dereference, para se unë të përpiqet për të hyrë mëparshme, 448 00:20:03,250 --> 00:20:07,210 Unë dua të bëni të sigurtë që kjo nuk është e null kështu që unë nuk do të marrë një defekt seg. 449 00:20:07,210 --> 00:20:08,400 Ftohtë. 450 00:20:08,400 --> 00:20:10,820 >> OK, unë e di se kjo ishte mjaft një shumë për të marrë përmes. 451 00:20:10,820 --> 00:20:14,950 Pra, kjo rrëshqitje do të jetë vënë në dispozicion për ju. 452 00:20:14,950 --> 00:20:17,341 Kështu që ju mund të shkoni nëpër atë në më shumë detaje. 453 00:20:17,341 --> 00:20:17,841 Po? 454 00:20:17,841 --> 00:20:19,749 >> AUDIENCA: Pse listë [e padëgjueshme]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH: Sigurisht. 457 00:20:24,670 --> 00:20:27,390 Pra listë me të vërtetë tregon për ky element e drejtë këtu, 458 00:20:27,390 --> 00:20:29,200 elementi i parë në lista. 459 00:20:29,200 --> 00:20:30,748 Pra, ajo nuk mund të ketë një të kaluar. 460 00:20:30,748 --> 00:20:31,736 Po? 461 00:20:31,736 --> 00:20:35,194 >> AUDIENCA: A pikë tregues në të njëjtën adrese ne memorie? 462 00:20:35,194 --> 00:20:38,404 A do të tregojnë të njëjtën gjë adresë në memorie si nyjen 463 00:20:38,404 --> 00:20:40,640 se ajo është duke treguar për? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH: Po, ai vë në në këtë nyje në kujtesë. 465 00:20:43,865 --> 00:20:47,190 >> AUDIENCA: E drejta, kështu që kur ju [e padëgjueshme]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH: Në një kuptim, po. 467 00:20:50,580 --> 00:20:51,280 OK. 468 00:20:51,280 --> 00:20:52,997 Në rregull, le të shkojë së bashku me këtë. 469 00:20:52,997 --> 00:20:55,330 Dhe në qoftë se ju keni më shumë pyetje, rrinë përreth në fund, 470 00:20:55,330 --> 00:20:57,130 dhe ne mund të shkoni nëpër atë përsëri. 471 00:20:57,130 --> 00:20:58,120 OK, cool. 472 00:20:58,120 --> 00:21:00,490 Tani, ne kemi marrë për të lëvizur në të përpunojnë tavolina, tentativa 473 00:21:00,490 --> 00:21:04,940 dhe pemët, të cilat ju mori super njohur me të në p-set pesë, SPELLER. 474 00:21:04,940 --> 00:21:11,020 >> Pra tabelë hash është vetëm një array me lista të lidhura në formë individuale 475 00:21:11,020 --> 00:21:14,050 ose dyfish i lidhur listat që vijnë jashtë të saj. 476 00:21:14,050 --> 00:21:16,380 Pra, ne kemi një lloj i array associative. 477 00:21:16,380 --> 00:21:21,280 Dhe si ne e dimë që këto vargjeve kova për të marrë në, 478 00:21:21,280 --> 00:21:24,137 ne përdorim një funksion hash. 479 00:21:24,137 --> 00:21:26,470 Pra në këtë rast, mund dikush me mend se çfarë funksionin hash 480 00:21:26,470 --> 00:21:28,636 do të bazohet vetëm në disa i hyrje dhe dalje? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> AUDIENCA: Numri Letra e alfabetit. 483 00:21:33,194 --> 00:21:33,860 HANNAH: Pikërisht. 484 00:21:33,860 --> 00:21:36,160 Ajo vetëm vë ata në rend alfabetik. 485 00:21:36,160 --> 00:21:39,280 Çdo gjë që fillon me një A është vënë në kovë e parë. 486 00:21:39,280 --> 00:21:43,340 Çdo gjë me një B është vënë në kovë i dytë, e kështu me radhë, dhe kështu me radhë. 487 00:21:43,340 --> 00:21:45,620 Awesome, OK. 488 00:21:45,620 --> 00:21:48,980 Dhe një funksion hash është çdo funksion që merr me një fjalë 489 00:21:48,980 --> 00:21:51,910 dhe do të ju tregojnë se çfarë kovë ajo i takon në. 490 00:21:51,910 --> 00:21:55,150 Kështu që hyrja në tonë array ajo i takon në. 491 00:21:55,150 --> 00:21:58,080 >> Kështu që çdo herë që unë të jap të mia hash funksionojë një fjalë, 492 00:21:58,080 --> 00:22:00,660 ajo duhet të më thoni të njëjtën gjë vendosni çdo herë të vetme. 493 00:22:00,660 --> 00:22:03,270 Pra, nëse ne përdorim funksionin hash nga rrëshqitje mëparshme 494 00:22:03,270 --> 00:22:05,950 ku ne jemi zgjidhja nga Letra e parë e alfabetit, 495 00:22:05,950 --> 00:22:08,230 çdo herë që unë të jap tim Funksioni hash "mollë", 496 00:22:08,230 --> 00:22:10,180 ajo duhet gjithmonë të më kthejë 0. 497 00:22:10,180 --> 00:22:12,890 Pra, nëse unë kam një mollë për të vënë në tryezën time hash, 498 00:22:12,890 --> 00:22:17,700 në qoftë se unë jap "mollë" për funksionin tim hash, ajo duhet të them, të shkojnë e vënë atë në kovë 0. 499 00:22:17,700 --> 00:22:19,980 Nëse unë jam duke kërkuar për një mollë në tryezën time hash 500 00:22:19,980 --> 00:22:24,340 dhe unë them, ku mollë trimëritë jetojnë, ju kërkoni funksionin tuaj hash. 501 00:22:24,340 --> 00:22:26,900 Dhe ai thotë, të shkojnë në kovë 0. 502 00:22:26,900 --> 00:22:29,150 Të gjithë të drejtë? 503 00:22:29,150 --> 00:22:32,660 Pyetjet me funksione të hash? 504 00:22:32,660 --> 00:22:34,570 Awesome. 505 00:22:34,570 --> 00:22:37,320 >> Këtu është një pak më shumë shpjegim i detajuar 506 00:22:37,320 --> 00:22:39,570 i asaj që një funksion hash mund të duket si. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 Dakord. 509 00:22:42,960 --> 00:22:45,960 Tani, problemi me hash Funksionet është në një botë ideale, 510 00:22:45,960 --> 00:22:48,870 ne do të kemi vetëm një të tillë gjë në çdo kovë. 511 00:22:48,870 --> 00:22:50,900 Por në realitet, nuk ka jo vetëm një fjalë 512 00:22:50,900 --> 00:22:54,280 që fillon me A. Nuk është vetëm një fjalë që fillon me B. Pra 513 00:22:54,280 --> 00:22:56,960 në këtë rast, nëse ne papritmas merrni "kokrra të kuqe," 514 00:22:56,960 --> 00:22:58,710 dhe ne duam të vënë atë në tryezën tonë hash, 515 00:22:58,710 --> 00:23:03,640 dhe ne e shohim, oh, jo, banane është tashmë atje, çfarë po ne gonna të bëjmë? 516 00:23:03,640 --> 00:23:05,900 >> E pra, ne kemi dy opsione. 517 00:23:05,900 --> 00:23:07,990 Mundësia e parë është linear probing, që 518 00:23:07,990 --> 00:23:11,100 thjesht do të thotë shkoni gjeni kovë tjetër bosh. 519 00:23:11,100 --> 00:23:14,100 Shko gjej hyrjen tjetër array bosh. 520 00:23:14,100 --> 00:23:15,750 Dhe vetëm vënë "kokrra të kuqe" atje. 521 00:23:15,750 --> 00:23:18,880 Kështu që unë e di se është menduar të shkoj me banane në kovë një. 522 00:23:18,880 --> 00:23:22,155 Por vetëm vënë atë në kovë tre, sepse kovë tre është bosh. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 Një tjetër alternativë është ndoshta çfarë ju të zbatojë 525 00:23:26,680 --> 00:23:29,220 në p-vendosur tuaj, ku ju kishte chaining veçantë. 526 00:23:29,220 --> 00:23:33,990 Pra, secili prej kova tuaja, secili prej elementeve tuaja array, 527 00:23:33,990 --> 00:23:38,410 jo vetëm që mban një fjalë, por në të vërtetë mban një tregues për një listë të fjalëve. 528 00:23:38,410 --> 00:23:41,880 Kështu që nëse keni pasur banane në tryezën tuaj të hash 529 00:23:41,880 --> 00:23:44,740 dhe ju papritmas të kërkuar për të shtuar kokrra të kuqe, nuk ka problem. 530 00:23:44,740 --> 00:23:51,110 Vetëm shtuar kokrra më në fund, ose tek fillimi, e listën tuaj të lidhura. 531 00:23:51,110 --> 00:23:54,040 OK, awesome. 532 00:23:54,040 --> 00:23:58,490 Pyetjet me hash tavolina para se të shkojnë në? 533 00:23:58,490 --> 00:23:59,850 >> Dakord. 534 00:23:59,850 --> 00:24:01,070 Pemë dhe mundohet. 535 00:24:01,070 --> 00:24:07,980 OK, kështu që kjo ishte një tjetër opsion për zbatimin dictionary. 536 00:24:07,980 --> 00:24:09,100 Ju mund të ketë bërë një provoni. 537 00:24:09,100 --> 00:24:13,420 Pra, kjo është një lloj i veçantë i pemës që sillet si një tabelë hash shumë-nivelit. 538 00:24:13,420 --> 00:24:16,862 Pra, ju do të shihni foto ku ju keni një rrjet që 539 00:24:16,862 --> 00:24:19,320 tregon për një bandë e vargjeve që tregojnë për një bandë e vargjeve 540 00:24:19,320 --> 00:24:20,390 që tregojnë për një bandë e vargjeve. 541 00:24:20,390 --> 00:24:23,140 Dhe ne do të shohim pikërisht ajo që do të duken si në një rrëshqitje të ardhmen. 542 00:24:23,140 --> 00:24:26,070 Dhe më në përgjithësi, një pemë është vetëm ndonjë strukturë e të dhënave 543 00:24:26,070 --> 00:24:29,710 në të cilën dhënave është i organizuar në disa hierarki. 544 00:24:29,710 --> 00:24:32,610 Pra, ku kemi parë ne kemi një lloj i të kuptuarit 545 00:24:32,610 --> 00:24:36,130 i një niveli të lartë, një nivel tjetër, një nivel tjetër, një nivel tjetër. 546 00:24:36,130 --> 00:24:39,690 Pra, kjo është ndoshta më e qartë me disa shembuj specifike. 547 00:24:39,690 --> 00:24:40,880 Kështu që këtu është pemë tonë. 548 00:24:40,880 --> 00:24:42,970 Ju mund të shihni se ajo ka nivele të veçanta 549 00:24:42,970 --> 00:24:45,480 që ne të fillojmë me atë nyjen rrënjë, një. 550 00:24:45,480 --> 00:24:47,640 Dhe ne mund të shkojnë poshtë nëpër pemë tonë. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> Një pemë binare është një lloj i veçantë i pemës. 553 00:24:53,910 --> 00:24:56,770 Dhe vetëm specifikim për një pemë binare 554 00:24:56,770 --> 00:25:01,130 është se çdo nyjë ka në shumicën e dy gjethe. 555 00:25:01,130 --> 00:25:03,960 Pra, ju nuk jeni duke shkuar për të parë ndonjë e këto nyje të ketë tre ose katër 556 00:25:03,960 --> 00:25:06,880 ose disa numër tjetër i lë. 557 00:25:06,880 --> 00:25:11,310 Dhe pastaj edhe më specifik është një pemë e kërkimit binar 558 00:25:11,310 --> 00:25:18,010 ku çdo nyje në të majtë të nyje do të ketë një vlerë më të vogël. 559 00:25:18,010 --> 00:25:21,180 Dhe çdo vlerë të e drejtë do të jetë më e madhe. 560 00:25:21,180 --> 00:25:26,900 Pra, nëse ju shihni 44 është në rrënjë tonë, në të majtë, 11, 22, dhe 33 561 00:25:26,900 --> 00:25:28,940 janë të gjitha më pak se rrënjë tonë. 562 00:25:28,940 --> 00:25:33,890 Dhe në të djathtë janë të gjitha Numrat bigger-- 66, 55, dhe 77. 563 00:25:33,890 --> 00:25:37,380 Dhe kjo pronë është e vërtetë në çdo nivel të pemës. 564 00:25:37,380 --> 00:25:42,690 >> Pra, kur të shkojmë poshtë në 22, 11, dhe 33, ende 11 565 00:25:42,690 --> 00:25:46,950 është më i vogël se 22 dhe 33 është më e madhe se 22. 566 00:25:46,950 --> 00:25:50,160 Dhe kjo e bën më të lehtë për të kërkuar sepse në qoftë se ne jemi duke kërkuar për një numër, 567 00:25:50,160 --> 00:25:53,877 ne e dimë saktësisht se cila degë për të ndjekur poshtë. 568 00:25:53,877 --> 00:25:56,210 Pra kjo duhet të ju kujtoj një pak bit e kërkimit binar. 569 00:25:56,210 --> 00:25:56,967 Vërtet? 570 00:25:56,967 --> 00:25:58,835 >> Audienca: Pra, kur ju jeni përshkruar binare, 571 00:25:58,835 --> 00:26:00,587 ju tha se ka në shumicën e dy gjethe? 572 00:26:00,587 --> 00:26:01,170 HANNAH: Mm-hm. 573 00:26:01,170 --> 00:26:02,580 AUDIENCA: Mund të ketë më pak? 574 00:26:02,580 --> 00:26:03,121 HANNAH: Po. 575 00:26:03,121 --> 00:26:06,720 Pra, le të themi, për shembull, ju nuk kanë numër çift të gjërave 576 00:26:06,720 --> 00:26:11,791 dhe ju nuk mund të mbush up gjitha tuaj gjethet, kjo është në rregull në qoftë se një ka një të tillë. 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 Awesome. 579 00:26:12,789 --> 00:26:15,930 Çdo pyetje të tjera në pemë? 580 00:26:15,930 --> 00:26:16,670 OK. 581 00:26:16,670 --> 00:26:20,110 >> Mbrapsht në përpiqet tona si unë isha duke folur për pak më herët, 582 00:26:20,110 --> 00:26:23,900 se si ne kemi këto vargjeve multi-nivelit. 583 00:26:23,900 --> 00:26:26,280 Pra në këtë rast, ne fillojmë në krye. 584 00:26:26,280 --> 00:26:29,030 Dhe ne mund të ndjekim ndonjë fjalë e dhënë poshtë. 585 00:26:29,030 --> 00:26:30,780 Pra, le të thonë se kemi dashur për të kërkuar Turing. 586 00:26:30,780 --> 00:26:34,380 Ne të fillojë në T, të ndjekë atë poshtë për një grup që përmban U, 587 00:26:34,380 --> 00:26:37,350 dhe të ndjekë atë poshtë derisa ne arritur këtë delta të vogël që 588 00:26:37,350 --> 00:26:39,060 na tregon, po, ju gjetur një fjalë. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 Qartë mbi përpiqet? 591 00:26:44,120 --> 00:26:48,138 Çdo gjë për të shkuar atje? 592 00:26:48,138 --> 00:26:48,908 Po? 593 00:26:48,908 --> 00:26:51,866 AUDIENCA: A simbolin e deltës kanë për të zënë hapësirë ​​në kuadër të provoni? 594 00:26:51,866 --> 00:26:54,532 HANNAH: Yeah, kështu që ajo nuk ka domosdoshmërisht edhe duhet të jetë një delta. 595 00:26:54,532 --> 00:26:57,760 Por ne kemi nevojë për një mënyrë për të them tonë computer-- vjen keq, 596 00:26:57,760 --> 00:27:01,130 kështu që ne e dimë se TUR nuk është një fjalë. 597 00:27:01,130 --> 00:27:04,180 Sepse le të thonë se ne nuk kemi ky koncept i një delta, ky koncept 598 00:27:04,180 --> 00:27:09,850 e urime, ju gjetur një fjalë, ajo do të shkonte nëpër dhe iterate T-U-R, 599 00:27:09,850 --> 00:27:11,300 dhe pastaj thonë, awesome, kam gjetur atë! 600 00:27:11,300 --> 00:27:12,670 Ajo duhet të jetë një fjalë. 601 00:27:12,670 --> 00:27:13,720 Por kjo nuk është e vërtetë. 602 00:27:13,720 --> 00:27:15,310 Ne duam gjithë Turing të jetë një fjalë. 603 00:27:15,310 --> 00:27:17,760 Pra, ne duhet të kemi diçka në fund që thotë, urime, 604 00:27:17,760 --> 00:27:19,051 ju keni gjetur një fjalë të ligjshme. 605 00:27:19,051 --> 00:27:21,680 Audienca: Pra, nëse keni pasur si 26 shkronja në alfabetin, 606 00:27:21,680 --> 00:27:24,560 do të ju në fakt kanë 27 çelësat në provoni tuaj? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH: mbresëlënës, vërtet. 608 00:27:26,010 --> 00:27:28,210 Kështu që në të vërtetë, unë mendoj se do të jetë në rrëshqitje të ardhshëm. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 Ku në qoftë se ju keni një nyje në provoni tuaj, ju jeni 611 00:27:32,880 --> 00:27:35,800 do të ketë 27 fëmijë në vend të 26. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 Çdo pyetje me se? 614 00:27:40,050 --> 00:27:40,550 Vërtet? 615 00:27:40,550 --> 00:27:44,569 AUDIENCA: Pse mundohet të marrë kështu hapësirë ​​shumë më [e padëgjueshme] si ju shkoni? 616 00:27:44,569 --> 00:27:47,629 Pse është konsideruar të jetë [e padëgjueshme]? 617 00:27:47,629 --> 00:27:48,170 HANNAH: Sigurisht. 618 00:27:48,170 --> 00:27:48,790 Le të kthehemi. 619 00:27:48,790 --> 00:27:52,350 Pyetja është, pse janë mundohet aq shumë më të madhe 620 00:27:52,350 --> 00:27:54,620 se diçka si një tabelë hash. 621 00:27:54,620 --> 00:27:57,790 Kështu për secilën nga këto nivele, edhe në qoftë se ata nuk janë tërhequr këtu, 622 00:27:57,790 --> 00:28:01,250 ju duhet të keni të gjitha 26 karaktere. 623 00:28:01,250 --> 00:28:04,420 Dhe arsyeja që ju nuk mund thonë, oh, por si për Turing, unë 624 00:28:04,420 --> 00:28:07,570 nuk duhet të ketë ndonjë nga ato njëjtat gjëra në nivelin e U. pra, 625 00:28:07,570 --> 00:28:11,390 nëse papritmas ju të kërkuar për të shtuar diçka që ishte si T-H, 626 00:28:11,390 --> 00:28:14,800 ju do të duhet të ketë aftësi të shtuar këtë fjalë. 627 00:28:14,800 --> 00:28:17,330 Pra, për çdo shkronjë të vetme, ju jeni do të ketë 628 00:28:17,330 --> 00:28:19,730 që të ketë një bandë e vargjeve që vijnë jashtë të saj. 629 00:28:19,730 --> 00:28:24,060 Kështu që ju mund të shihni se si ajo do të merrni me të vërtetë i madh, të vërtetë të shpejtë. 630 00:28:24,060 --> 00:28:26,560 Çdo pyetje të tjera? 631 00:28:26,560 --> 00:28:28,980 Dakord. 632 00:28:28,980 --> 00:28:29,832 Vërtet? 633 00:28:29,832 --> 00:28:33,210 >> AUDIENCA: Kur janë të mundohet më shpejt se tavolina hash? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH: Kur janë të mundohet më shpejt se tavolina hash? 635 00:28:36,280 --> 00:28:39,120 Pra, nëse keni pasur një të vërtetë Funksioni i keq hash. 636 00:28:39,120 --> 00:28:41,840 Pra, le të thonë se unë kam qenë si, këtu është funksion juaj hash. 637 00:28:41,840 --> 00:28:43,660 Pa marrë parasysh se çfarë fjalë të më japësh, unë jam gjithmonë 638 00:28:43,660 --> 00:28:47,740 duke shkuar për të vënë atë në array hyrjes 0. 639 00:28:47,740 --> 00:28:52,000 Dhe kështu ne fund me vetëm vënien çdo gjë në një listë të madhe të lidhura gjatë. 640 00:28:52,000 --> 00:28:58,740 Dhe kështu një kohë lookup do të marrë në të keqe n në qoftë se është në fund të listës sonë. 641 00:28:58,740 --> 00:29:03,150 Me përpjekje, ne vetëm duhet të iterate përmes letrave në fjalë. 642 00:29:03,150 --> 00:29:07,080 Pra, edhe në qoftë se ne kemi shtuar një bandë më shumë fjalë për të provoni tonë, 643 00:29:07,080 --> 00:29:09,620 ajo nuk do të na merr më gjatë për të gjetur një fjalë të veçantë. 644 00:29:09,620 --> 00:29:11,750 >> Të gjithë ne duhet të bëni është, për shembull, në këtë rast, 645 00:29:11,750 --> 00:29:17,170 le të thonë se ne jemi duke kërkuar për zoom, ne vetëm do të duhet të iterate mbi 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, katër letra. 647 00:29:19,840 --> 00:29:22,250 Pra, kjo është vetëm Gjatësia e fjalës zoom. 648 00:29:22,250 --> 00:29:25,400 Nuk ka rëndësi se sa shumë më shumë fjalë ne kemi vënë në këtë përpjekje. 649 00:29:25,400 --> 00:29:30,225 Ne gjithmonë mund të merrni atë në këto katër hapa. 650 00:29:30,225 --> 00:29:31,215 Awesome. 651 00:29:31,215 --> 00:29:32,205 Po? 652 00:29:32,205 --> 00:29:34,185 >> Audienca: Pra [e padëgjueshme] është një grup, apo jo? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH: Mm-hm. 654 00:29:35,322 --> 00:29:37,155 AUDIENCA: Nëse ju jeni kërkoni për [e padëgjueshme], 655 00:29:37,155 --> 00:29:40,929 do të ju duhet të kalojnë nëpër array juaj për të gjetur [e padëgjueshme]? 656 00:29:40,929 --> 00:29:41,470 HANNAH: Sigurisht. 657 00:29:41,470 --> 00:29:44,000 AUDIENCA: A nuk qe marrë më shumë kohë? 658 00:29:44,000 --> 00:29:46,370 HANNAH: Nëse unë jam duke shkuar për të thonë se array ime është gjithmonë 659 00:29:46,370 --> 00:29:49,250 do të jenë A, B, C, D, E, F, G, blah blah blah, 660 00:29:49,250 --> 00:29:51,630 kështu që në qoftë se unë gjithmonë e di se është e në të njëjtën mënyrë të saktë, 661 00:29:51,630 --> 00:29:53,880 në qoftë se unë gjithmonë e di se është e në rend alfabetik, 662 00:29:53,880 --> 00:29:57,860 Unë mund të them vetëm O është numër kështu dhe kështu në alfabetin. 663 00:29:57,860 --> 00:29:59,620 Vetëm të hidhen në atë vend. 664 00:29:59,620 --> 00:30:01,860 Sepse mos harroni, me vargjeve, ne mund të hyni 665 00:30:01,860 --> 00:30:06,590 ndonjë element i këtij grup në konstante kohë në qoftë se ne e dimë se ku ne jemi duke kërkuar. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 Vërtet? 668 00:30:09,580 --> 00:30:12,005 >> AUDIENCA: Të mëparshme rrëshqas [e padëgjueshme] 27, 669 00:30:12,005 --> 00:30:14,430 por 26 për një të parë. 670 00:30:14,430 --> 00:30:15,400 >> HANNAH: Na vjen keq? 671 00:30:15,400 --> 00:30:18,800 >> AUDIENCA: A nuk është e para një 0, kështu që nuk do të ishte 26? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH: Sure, kështu që kur themi 27, kjo është e do të na japin indekset 0 përmes 26. 673 00:30:24,900 --> 00:30:28,220 Por në qoftë se ju në të vërtetë të mbështeteni ato jashtë, ajo do të jetë 27. 674 00:30:28,220 --> 00:30:30,007 Pyetje e mirë. 675 00:30:30,007 --> 00:30:30,590 Çdo gjë tjetër? 676 00:30:30,590 --> 00:30:31,200 Vërtet? 677 00:30:31,200 --> 00:30:34,420 >> Audienca: Pra, janë mundohet ngadalshme se tavolina hash? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH: Mundohet do të jetë, në teori, më të shpejtë se tabelat hash 679 00:30:37,920 --> 00:30:39,760 por marrin më shumë memorie. 680 00:30:39,760 --> 00:30:40,534 Vërtet? 681 00:30:40,534 --> 00:30:41,450 Audienca: [padëgjueshme]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH: Më vjen keq, unë nuk e kam dëgjuar ju. 684 00:30:47,484 --> 00:30:48,400 Audienca: [padëgjueshme]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0 në 25 të jep 26. 687 00:30:54,100 --> 00:30:56,958 >> HANNAH: 0 në 25 do ju jap 26, e drejtë. 688 00:30:56,958 --> 00:30:58,457 >> AUDIENCA: Dhe pastaj [e padëgjueshme]. 689 00:30:58,457 --> 00:30:59,040 HANNAH: E drejta. 690 00:30:59,040 --> 00:31:04,760 Pra, numri që ne jemi duke specifikuar është numër i gjërave në array tonë. 691 00:31:04,760 --> 00:31:07,260 Pra, në qoftë se ne kemi 27, është e do të na jap 0 692 00:31:07,260 --> 00:31:10,620 përmes 26, e cila do t'i japë na dhomë për të, në këtë rast, 693 00:31:10,620 --> 00:31:12,770 Unë nuk jam përfshirë një apostrof. 694 00:31:12,770 --> 00:31:17,040 Pra, ne jemi duke marrë 0 përmes 25 janë të 26 shkronjat e para të alfabetit, 695 00:31:17,040 --> 00:31:18,990 ose të gjitha 26 shkronjat e alfabetit. 696 00:31:18,990 --> 00:31:21,190 Dhe pastaj kjo e fundit gjë, në hyrje 26, është 697 00:31:21,190 --> 00:31:24,598 do të jetë çeku të shënojë, apo delta. 698 00:31:24,598 --> 00:31:26,960 Çdo gjë tjetër? 699 00:31:26,960 --> 00:31:29,130 Awesome. 700 00:31:29,130 --> 00:31:30,020 Keni humbur hapësirën time. 701 00:31:30,020 --> 00:31:31,020 OK, cool. 702 00:31:31,020 --> 00:31:33,240 >> Pra, ne tashmë e preku këtë. 703 00:31:33,240 --> 00:31:37,430 Por tregtia e madhe off në mes të përpiqet dhe tabelat hash 704 00:31:37,430 --> 00:31:39,720 është se përpiqet të sigurojë, në teori, konstante kërkoni 705 00:31:39,720 --> 00:31:42,890 herë, por përdorin një tërësi shumë të kujtesës. 706 00:31:42,890 --> 00:31:46,495 Në rregull, tani ne kemi pak Strukturat më pak të komplikuara, 707 00:31:46,495 --> 00:31:49,640 dhe ne do të bëhet me C, dhe ne do të lëvizin drejtë së bashku. 708 00:31:49,640 --> 00:31:51,930 >> Pra, oxhaqet, ne pamë këtë në leksionin ku ju 709 00:31:51,930 --> 00:31:55,020 të ketë diçka si një rafte e tabaka aty ku është 710 00:31:55,020 --> 00:31:57,330 gjëja e fundit që ju vënë në rafte është duke shkuar 711 00:31:57,330 --> 00:31:59,500 të jetë gjëja e parë që ju të marrë jashtë. 712 00:31:59,500 --> 00:32:02,880 Pra, kjo është ajo që me të vërtetë përcakton një pirg është se gjëja e fundit që ju vënë në 713 00:32:02,880 --> 00:32:06,080 do të jetë i parë gjë që ju të marrë jashtë. 714 00:32:06,080 --> 00:32:09,279 Dhe terminologjia që ne përdorim në qoftë se ne jemi duke shkuar për të vënë diçka, 715 00:32:09,279 --> 00:32:12,070 në qoftë se ne jemi duke shkuar për të shtuar diçka për rafte ynë, ne e quajmë atë shtyjnë. 716 00:32:12,070 --> 00:32:14,970 Dhe në qoftë se ne të marrë diçka off, ne e quajmë atë popping. 717 00:32:14,970 --> 00:32:17,080 Dhe në qoftë se ne jemi duke shkuar për zbatojë një pirg, ne 718 00:32:17,080 --> 00:32:20,660 duhet të jetë i sigurt për të mbajtur gjurmët e të dy madhësi dhe kapacitet. 719 00:32:20,660 --> 00:32:24,940 Kështu numri i përgjithshëm i elementeve ne mund mbajë dhe numri aktual i elementeve 720 00:32:24,940 --> 00:32:27,880 që ne po mbajnë. 721 00:32:27,880 --> 00:32:29,885 >> Dhe shumë në mënyrë të ngjashme, ne kemi radhët e gjata. 722 00:32:29,885 --> 00:32:34,510 Dhe vetëm ndryshim është në vend të me oxhaqet, 723 00:32:34,510 --> 00:32:37,630 ne tha gjëja e fundit që ne kemi vënë në është gjëja e parë që ne të marrë jashtë. 724 00:32:37,630 --> 00:32:40,940 Pra me rradhë, gjëja e parë që ne kemi vënë në 725 00:32:40,940 --> 00:32:43,129 do të jetë Gjëja e parë që ne të marrë jashtë. 726 00:32:43,129 --> 00:32:45,420 Pra, kjo është si në qoftë se ju jeni në të vërtetë rreshtuar në një dyqan 727 00:32:45,420 --> 00:32:48,140 dhe ju jeni duke u ndihmuar, atëherë personi i parë në linjë 728 00:32:48,140 --> 00:32:50,880 duhet të jetë personi i parë që do të ndihmohen. 729 00:32:50,880 --> 00:32:52,220 Kështu që do të ishte një radhë. 730 00:32:52,220 --> 00:32:55,880 >> Pra, ne duhet të mbajnë gjurmët e madhësia, kapaciteti dhe koka pasi ne jemi të 731 00:32:55,880 --> 00:33:01,130 do të marrë të gjithë jashtë pjesën e përparme nga lista vend e prapme. 732 00:33:01,130 --> 00:33:03,480 Pyetjet për se? 733 00:33:03,480 --> 00:33:06,330 Çdo pyetje C që janë të ju mërzit? 734 00:33:06,330 --> 00:33:09,590 Strukturat e të dhënave, asnjë nga që stuff fun? 735 00:33:09,590 --> 00:33:10,530 Në rregull, cool. 736 00:33:10,530 --> 00:33:14,120 Kështu që unë do t'ia dorëzojë atë Alison për hidhen në një programim më shumë. 737 00:33:14,120 --> 00:33:15,965 >> ALISON: Oh, ne do të shohim. 738 00:33:15,965 --> 00:33:17,370 Ne do të shohim se si edhe unë bëj këtu. 739 00:33:17,370 --> 00:33:21,410 OK, unë jam duke shkuar për të përpiqen dhe të fluturojnë përmes këtij stuff, djema. 740 00:33:21,410 --> 00:33:24,540 Hannah shkoi shumë në thellësi mbi të gjitha thesaret e. 741 00:33:24,540 --> 00:33:26,900 Unë do të përpiqem të jap ju një pasqyrë të shpejtë shpërthim 742 00:33:26,900 --> 00:33:31,290 kështu që ne mund të merrni për të Davin me gjithë e fun JavaScript dhe sigurisë gjëra 743 00:33:31,290 --> 00:33:33,380 që ndoshta ju në të vërtetë duan të dëgjojnë më shumë për. 744 00:33:33,380 --> 00:33:36,600 >> OK, siç tha Ana, nëse ju keni ndonjë pyetje, 745 00:33:36,600 --> 00:33:39,170 Unë jam duke shkuar shumë shpejt, ju lutem, më lejoni të di. 746 00:33:39,170 --> 00:33:42,114 Unë do të përgjigjem pyetjeve si të nevojshme. 747 00:33:42,114 --> 00:33:45,280 Pra, për të filluar, ne jemi duke shkuar për të filluar me ndoshta një nga gjërat e para 748 00:33:45,280 --> 00:33:48,730 ju mësuar me web programimi, lejet. 749 00:33:48,730 --> 00:33:52,720 Pra, chmod, ju djema duhet të kemi qenë mjeshtra në këtë me të gjitha web të 750 00:33:52,720 --> 00:33:54,870 programimi që ju keni qenë duke bërë kohët e fundit. 751 00:33:54,870 --> 00:33:57,320 Kjo është në thelb vetëm një komandë që ndryshon lejet 752 00:33:57,320 --> 00:34:00,779 ose lejet e qasjes e objekteve tona të skedarëve të sistemit. 753 00:34:00,779 --> 00:34:02,570 Sigurisht, që në fakt shohim këto, nëse ju jeni 754 00:34:02,570 --> 00:34:04,910 të ketë ndonjë problem me këto gjatë përcakton tuaj me probleme, 755 00:34:04,910 --> 00:34:11,460 ju mund të keni përdorur ls -l, e cila është e gjatë, për të marrë lloj view i si kjo, 756 00:34:11,460 --> 00:34:14,209 ku ju në të vërtetë të shihni të gjithë lejet për një skedar. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> Dhe me të vërtetë, ne jemi vetëm duke shkuar për të shkuar përmes shumë shpejt vetëm goxha 759 00:34:20,732 --> 00:34:21,940 shumë ajo që secili prej tyre të thotë. 760 00:34:21,940 --> 00:34:24,481 Pra, ne kemi d të drejtë këtu, që vetëm qëndron për directory. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 Natyrisht drejtë këtu, shohim rwx, e cila është i lexueshëm, shkrueshme, dhe i ekzekutueshëm. 763 00:34:31,739 --> 00:34:37,090 Këto mund gjithashtu të përfaqësohet si copa, të cilat ne do të merrni në në faqen tjetër. 764 00:34:37,090 --> 00:34:40,699 Pra, secili treshe që kemi parë këtu, kështu që është tre triads. 765 00:34:40,699 --> 00:34:48,120 Ne kemi rwx, r asgjë x dhe r asgjë x për këtë fotografi të parë. 766 00:34:48,120 --> 00:34:49,690 Është kjo strukturë përgjithësi. 767 00:34:49,690 --> 00:34:50,940 >> Pra, ne kemi disa direktori. 768 00:34:50,940 --> 00:34:53,999 Ne kemi disa grup të përdoruesit me këto leje. 769 00:34:53,999 --> 00:34:57,040 Disa grup që ka këto lejet, dhe një botë që ka një leje. 770 00:34:57,040 --> 00:34:59,420 Ju mund të mendoj për këto si një treshe. 771 00:34:59,420 --> 00:35:01,130 Ju mund të mendoj për këto si tre bit. 772 00:35:01,130 --> 00:35:04,060 Kështu që ata mund të mbajnë vlerat diku nga 0 deri 773 00:35:04,060 --> 00:35:07,350 në 7, e cila është arsyeja pse nganjëherë ne kishim ju bëni chmod 774 00:35:07,350 --> 00:35:17,510 600 në vend të chmod rw çfarëdo. 775 00:35:17,510 --> 00:35:19,170 Ne do të marrë në një shembull atje. 776 00:35:19,170 --> 00:35:24,260 Por në thelb, ju mund të mendoni e këto si ose vetëm rwx, 777 00:35:24,260 --> 00:35:28,520 ose ju mund të mendoni për to si disa numër ku ky i pari këtu 778 00:35:28,520 --> 00:35:31,480 përfaqëson një numër ndërmjet 0 dhe 7, kjo dyta 779 00:35:31,480 --> 00:35:33,970 përfaqëson një numër ndërmjet 0 dhe 7, dhe nje tretë 780 00:35:33,970 --> 00:35:38,245 përfaqëson një numër mes 0 dhe 7, OK? 781 00:35:38,245 --> 00:35:42,700 >> r ka një vlerë prej 4. w me një vlerë prej 2, dhe x 782 00:35:42,700 --> 00:35:49,230 ka një vlerë prej 1, e cila është pse ky Leja këtu do të chmod 700. 783 00:35:49,230 --> 00:35:53,520 Sepse në këtë rast këtu, ajo thotë se ne kanë bit e parë atje është kthyer më. 784 00:35:53,520 --> 00:35:55,380 Pra, ne kemi 4 për të lexuar. 785 00:35:55,380 --> 00:35:58,730 Bit i dytë është kthyer në për w, i cili është 2, kështu tani kemi 6. 786 00:35:58,730 --> 00:36:02,070 Dhe e treta bit është kthyer në për x, e cila është 1, kështu që ne të merrni shtatë. 787 00:36:02,070 --> 00:36:04,820 Dhe sigurisht, grupi ynë dhe botën tonë janë çdo 0. 788 00:36:04,820 --> 00:36:07,770 Pra, kjo është edhe ekuivalent i chmod 700. 789 00:36:07,770 --> 00:36:12,081 Dhe unë patjetër do të përpiqet të kuptojnë hartës mes atyre. 790 00:36:12,081 --> 00:36:14,080 Unë nuk jam i sigurt nëse ajo ka dalë në një quiz para, 791 00:36:14,080 --> 00:36:18,590 por kjo do të ishte një Pyetja që unë mund të kërkoj. 792 00:36:18,590 --> 00:36:22,110 >> Vetëm pak shkuar edhe më tej në chmod këtu, këtu 793 00:36:22,110 --> 00:36:27,730 është i përgjithshëm shumë Struktura e një thirrje chmod. 794 00:36:27,730 --> 00:36:29,500 Pra natyrisht, ne kemi chmod këtu. 795 00:36:29,500 --> 00:36:34,410 Referencat, çfarë kjo i referohet është të cilët janë ne i dhënë këto leje për 796 00:36:34,410 --> 00:36:36,570 ose të cilët janë duke marrë ne këto lejet larg nga. 797 00:36:36,570 --> 00:36:44,330 Pra, ne kemi një këtu në lejet, si ne kemi dhënë ju chmod një plus x, 798 00:36:44,330 --> 00:36:45,440 si ne do të shohim së shpejti. 799 00:36:45,440 --> 00:36:48,460 a do të thotë vetëm të japë këto specifik lejet për të gjithë. 800 00:36:48,460 --> 00:36:49,600 Jepu atyre për të gjithë. 801 00:36:49,600 --> 00:36:55,370 Pra, ju shumë mirë mund të duhet me u plus x ose g plus x ose o plus x ose të shumëfishta 802 00:36:55,370 --> 00:36:55,870 saj. 803 00:36:55,870 --> 00:36:59,280 Kështu që pjesa e parë është gjithmonë do të jetë referenca. 804 00:36:59,280 --> 00:37:03,220 Kush jemi ne duke i dhënë këto leje për të, ose të cilët janë ne duke marrë ata larg nga? 805 00:37:03,220 --> 00:37:04,850 >> E dyta është operator. 806 00:37:04,850 --> 00:37:07,350 Pra ju djema kanë trajtuar kryesisht me plus. 807 00:37:07,350 --> 00:37:12,140 Kjo i jep leje për kush ju jeni duke i dhënë ato, 808 00:37:12,140 --> 00:37:14,840 ndërsa minus, logjikisht, heq ato. 809 00:37:14,840 --> 00:37:16,880 Pra, asgjë tepër të tmerrshme atje. 810 00:37:16,880 --> 00:37:23,060 Dhe pastaj modes është ajo që kemi biseduar për me lexim, shkrim, ose ekzekutimin. 811 00:37:23,060 --> 00:37:29,070 Pra, një plus x thotë jap ekzekutueshme lejet për të gjithë. 812 00:37:29,070 --> 00:37:33,430 Dhe pastaj, sigurisht, në të cilën skedari apo direktoriumi. 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 Çdo njeri i mirë me chmod? 815 00:37:36,010 --> 00:37:37,850 Jo shumë i keq? 816 00:37:37,850 --> 00:37:42,417 >> OK, kështu HTML, ndonjë nga ju janë vjetër të mjaftueshme to-- MySpace moshë? 817 00:37:42,417 --> 00:37:44,750 I dërguar këtë për seksionin tim, dhe fjalë për fjalë gjysma e popullit 818 00:37:44,750 --> 00:37:45,790 më shikoi sikur isha i çmendur. 819 00:37:45,790 --> 00:37:47,498 Dhe unë kam qenë si, djemtë, ne nuk jemi se i vjetër. 820 00:37:47,498 --> 00:37:48,910 Come on. 821 00:37:48,910 --> 00:37:53,360 Pra HyperText Markup Language, kjo është sinqerisht vetëm një mënyrë për ju 822 00:37:53,360 --> 00:37:57,990 për të shfaqur disa gjëra në web. 823 00:37:57,990 --> 00:37:59,210 Pra, është një gjuhë markup. 824 00:37:59,210 --> 00:38:00,640 Kjo nuk është një gjuhë e shkruar. 825 00:38:00,640 --> 00:38:02,160 Nuk ka asnjë logjikë në të. 826 00:38:02,160 --> 00:38:05,710 Kjo është thjesht për të ndryshuar Mënyra diçka shfaqet. 827 00:38:05,710 --> 00:38:07,670 OK, kështu që kjo është një e rëndësishme dallim për të bërë. 828 00:38:07,670 --> 00:38:12,030 Është konsideruar një gjuhë markup, jo një gjuhë e shkruar. 829 00:38:12,030 --> 00:38:15,100 >> Pra, këtu ne kemi tags tona HTML. 830 00:38:15,100 --> 00:38:20,390 Në këtë rrëshqitje janë ndoshta më të ato që ju duhet të jenë të njohur me 831 00:38:20,390 --> 00:38:22,390 dhe të jetë me të vërtetë të rehatshme me. 832 00:38:22,390 --> 00:38:25,700 Pra, natyrisht, ne kemi HTML tag tonë, e cila 833 00:38:25,700 --> 00:38:29,930 përcakton se çdo gjë në ndërmjet këtyre dy do të jenë të HTML. 834 00:38:29,930 --> 00:38:33,070 Ne kemi disa lidhje, e cila padyshim do të ju jap 835 00:38:33,070 --> 00:38:34,990 një lidhje me një faqe web të jashtëm. 836 00:38:34,990 --> 00:38:37,520 Disa titulli, brenda kokën tonë këtu. 837 00:38:37,520 --> 00:38:40,020 Dhe ne kemi trupin tonë me h1, e cila është një kokë, 838 00:38:40,020 --> 00:38:42,260 kështu ajo do të bëjë atë të mirë dhe të guximshme dhe më të mëdha. 839 00:38:42,260 --> 00:38:46,040 Dhe atëherë, ne kemi disa p, e cila është një paragraf. 840 00:38:46,040 --> 00:38:49,000 Ju ndoshta duhet të dini dhe të jenë të njohur me gjëra të 841 00:38:49,000 --> 00:38:54,030 si se si ju futur një figurë, janë ka ndonjë klasat e tjera header? 842 00:38:54,030 --> 00:38:57,240 Unë patjetër do të jetë rehat me div. 843 00:38:57,240 --> 00:39:00,840 Pra, këto kanë shumicën e etiketave se ju duhet të jenë të njohur me të. 844 00:39:00,840 --> 00:39:04,370 Por sigurisht, si me çdo gjë në CS 50, lista nuk është shteruese. 845 00:39:04,370 --> 00:39:08,200 Pra, sigurohuni që ju të pastrohen deri në atë. 846 00:39:08,200 --> 00:39:13,260 >> CSS, kështu CSS, në qoftë se ndonjë nga ju të shikojnë seminar ime nga dy javë më parë, 847 00:39:13,260 --> 00:39:16,250 është me të vërtetë vetëm një mënyrë të stilit faqen tuaj web? 848 00:39:16,250 --> 00:39:18,950 OK, kështu që ne kemi disa gjuhë markup. 849 00:39:18,950 --> 00:39:23,220 HTML, që kujdeset vetëm tekstin dhe ku ajo mund të jetë në faqe. 850 00:39:23,220 --> 00:39:25,760 Por CSS është me të vërtetë ajo që e bën atë mjaft. 851 00:39:25,760 --> 00:39:30,690 Ju mund të keni këto në HTML tuaj Fotografi të, por si ne do të flasim për më vonë, 852 00:39:30,690 --> 00:39:32,660 Unë jam goxha i sigurt se mund të jetë rrëshqitje tjetër, ajo 853 00:39:32,660 --> 00:39:35,620 Është praktikë e zakonshme, dhe në të vërtetë praktikë që ne me të vërtetë të inkurajuar, 854 00:39:35,620 --> 00:39:40,670 për ju për të mbajtur ata të ndarë kur ne flasim për MVC dhe atë të tërë paradigmë. 855 00:39:40,670 --> 00:39:42,490 Kjo është me të vërtetë ajo që kjo ushqen në. 856 00:39:42,490 --> 00:39:46,110 >> Pra, CSS është vetëm një mënyrë për të bëjë gjëra të duken bukur. 857 00:39:46,110 --> 00:39:50,500 Gjërat këtu, si Trupi dhe #title dhe info, 858 00:39:50,500 --> 00:39:54,340 këto janë quajtur selectors dhe çfarë ata bëjnë është që ata të zgjidhni gjëra të veçanta 859 00:39:54,340 --> 00:39:59,260 brenda dosjen tuaj HTML dhe të aplikojnë çfarëdo stil, 860 00:39:59,260 --> 00:40:04,090 çfarëdo lloj gjëra që ju duan, për atë element të veçantë të web tuaj 861 00:40:04,090 --> 00:40:04,590 faqe. 862 00:40:04,590 --> 00:40:08,820 Pra këtu, ne kemi një ngjyrë sfond dhe një ngjyrë 863 00:40:08,820 --> 00:40:12,450 dhe një familje font që është duke u aplikohet për çdo gjë që është në trup. 864 00:40:12,450 --> 00:40:15,530 Pra, nëse kemi shikuar përsëri këtu, atë nuk do të zbatohet për titullin. 865 00:40:15,530 --> 00:40:22,340 Ajo do të zbatohen vetëm për atë që është në këto selektorë të trupit, OK? 866 00:40:22,340 --> 00:40:25,250 >> Me titullin këtu, kjo është e do të jetë e njëjta gjë, 867 00:40:25,250 --> 00:40:28,410 ngjyra e tekstit duke qenë blu është vetëm do 868 00:40:28,410 --> 00:40:33,870 të ndikojë në atë që është brenda të Selectors titullin. 869 00:40:33,870 --> 00:40:36,580 Si dhe info këtu, Teksti do të jetë rozë, 870 00:40:36,580 --> 00:40:38,600 çfarëdo e info, e cila është e drejtë këtu. 871 00:40:38,600 --> 00:40:40,860 Pra, e vetmja gjë që do të jetë rozë në këtë faqe 872 00:40:40,860 --> 00:40:44,100 është data, e hënë, nëntor 17, 2014. 873 00:40:44,100 --> 00:40:48,770 OK, kështu CSS është vetëm një mënyrë për të kanë më shumë kontroll over-- po? 874 00:40:48,770 --> 00:40:51,850 >> AUDIENCA: Pse ju keni për të përdorur hash me titullin? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH: rrëshqitje Tjetra, premtoj! 876 00:40:55,170 --> 00:40:56,810 Ne do të merrni atje. 877 00:40:56,810 --> 00:40:59,830 Pra, kjo është arsyeja pse ne duhet të përdorim hash. 878 00:40:59,830 --> 00:41:03,429 Pra Selectors të marrë në tre kryesore Format që ne flasim për të ju djema rreth. 879 00:41:03,429 --> 00:41:05,595 Unë fyou doni të mësoni më shumë, ka shumë atje. 880 00:41:05,595 --> 00:41:07,540 Ka dokumentacion i madh CSS. 881 00:41:07,540 --> 00:41:12,680 Ka një emër tag, e cila ka të bëjë me vetëm tags normale tuaja në HTML. 882 00:41:12,680 --> 00:41:17,210 Pra, H1, p, div, H2, ato llojet e gjërave. 883 00:41:17,210 --> 00:41:20,320 Dhe ne mund të emrit vetëm ato siç është. 884 00:41:20,320 --> 00:41:22,650 Pra, siç e shohim këtu me trup, kjo është një tag normal. 885 00:41:22,650 --> 00:41:26,660 Pra, ne mund vetëm të vënë trupin kur ne jemi duke folur në dosjen tonë CSS. 886 00:41:26,660 --> 00:41:29,730 >> Me titullin, të gjithë arsye ne keni këtë hash është që ne kemi atë që është e 887 00:41:29,730 --> 00:41:31,010 konsideruar një ID. 888 00:41:31,010 --> 00:41:35,400 Pra një ID duhet të jetë gjithmonë unik brenda faqes tuaj HTML 889 00:41:35,400 --> 00:41:37,930 kështu që kur ju jeni duke iu referuar të, ju 890 00:41:37,930 --> 00:41:41,990 e di se ju jeni vetëm duke iu referuar për një gjë të veçantë. 891 00:41:41,990 --> 00:41:46,270 Pra, në këtë rast këtu, me tonë h1 këtu, CS 50 seancë shqyrtimi, 892 00:41:46,270 --> 00:41:47,810 ne kemi një id të titullit. 893 00:41:47,810 --> 00:41:54,280 Kështu që në mënyrë të vetëm referohen se copë HTML sonë, ne bëjmë një titull hash. 894 00:41:54,280 --> 00:41:58,080 Vetëm me anë të konventës, ID janë përcaktuar me një hash në frontin e tyre. 895 00:41:58,080 --> 00:42:01,650 Në të njëjtën mënyrë, ne shohim info këtu është një klasë. 896 00:42:01,650 --> 00:42:06,070 Dhe kështu klasë me CSS është caktuar si një dot klasë 897 00:42:06,070 --> 00:42:08,895 ose dot çfarëdo që është klasë. 898 00:42:08,895 --> 00:42:10,850 Pra, në këtë rast këtu, është e info. 899 00:42:10,850 --> 00:42:13,090 >> Kështu që unë të marrë atë përsëri. 900 00:42:13,090 --> 00:42:16,200 Të dyja këto do të ishin rozë për CSS tonë këtu 901 00:42:16,200 --> 00:42:18,430 sepse ata të dy kanë një klasë e info. 902 00:42:18,430 --> 00:42:23,070 Dhe në dosjen tonë CSS, ne kemi caktuar se çdo gjë me një klasë të info 903 00:42:23,070 --> 00:42:24,120 do të jetë rozë. 904 00:42:24,120 --> 00:42:25,968 A ka kjo kuptim? 905 00:42:25,968 --> 00:42:27,435 Po? 906 00:42:27,435 --> 00:42:30,731 >> AUDIENCA: Nëse ju do të bëni çdo gjë në të bardhën e trupit, 907 00:42:30,731 --> 00:42:32,814 dhe pastaj ju të përpiqet të bëjë diçka brenda tij blu, 908 00:42:32,814 --> 00:42:34,770 do që të shkaktojë probleme? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH: Pra CSS është fletët Cascading style. 910 00:42:37,310 --> 00:42:40,730 Pra, çdo gjë që është në drejtim të fund do të kenë përparësi. 911 00:42:40,730 --> 00:42:44,080 Pra, nëse ju bëni diçka me trupin, dhe ju bëni çdo gjë të bardhë, 912 00:42:44,080 --> 00:42:49,300 dhe pastaj më vonë për ju të ndryshojë titullin ose ju ndryshojë tekstin brenda trupit, 913 00:42:49,300 --> 00:42:50,560 ajo overwrites se. 914 00:42:50,560 --> 00:42:55,360 Pra, çdo gjë drejt fund do të kenë përparësi. 915 00:42:55,360 --> 00:42:56,730 Po? 916 00:42:56,730 --> 00:42:59,627 >> Audienca: Dhe ID janë unike, por klasa mund të jetë më shumë? 917 00:42:59,627 --> 00:43:00,210 HANNAH: E drejta. 918 00:43:00,210 --> 00:43:06,320 Pra ID duhet të jetë unike, dhe klasa mund referohen si shumë gjëra si ju dëshironi. 919 00:43:06,320 --> 00:43:07,580 Çdo pyetje të tjera? 920 00:43:07,580 --> 00:43:09,800 Po. 921 00:43:09,800 --> 00:43:11,210 >> Audienca: [padëgjueshme]. 922 00:43:11,210 --> 00:43:13,509 Unë jam i pyesin nëse që bën një dallim. 923 00:43:13,509 --> 00:43:15,217 HANNAH: Më vjen keq, çfarë ishte pyetja? 924 00:43:15,217 --> 00:43:18,960 AUDIENCA: Ka vogël "F" dhe kapital "F." 925 00:43:18,960 --> 00:43:21,440 HANNAH: Pra dallimi midis të vogël "f" dhe kapitalit "F" 926 00:43:21,440 --> 00:43:22,606 nuk duhet të bëjë një ndryshim. 927 00:43:22,606 --> 00:43:26,330 Pra, "f" do të jetë 15 ose mënyrë. 928 00:43:26,330 --> 00:43:28,130 Cool, ndonjë gjë tjetër? 929 00:43:28,130 --> 00:43:29,930 Çdo njeri i mirë, CSS? 930 00:43:29,930 --> 00:43:30,850 Po? 931 00:43:30,850 --> 00:43:31,790 >> AUDIENCA: Më vjen keq. 932 00:43:31,790 --> 00:43:35,550 A mund të kemi një klasë dhe një ID? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH: Po, mundeni. 934 00:43:38,030 --> 00:43:40,420 Gjërat mund të ketë edhe një klasë dhe një ID. 935 00:43:40,420 --> 00:43:44,670 Dhe unë rekomandoj testimin këto në tuaj. 936 00:43:44,670 --> 00:43:50,480 CSS ju do të mësojnë më mirë vetëm duke e bërë diçka, faqe shumë e thjeshtë web, 937 00:43:50,480 --> 00:43:53,440 hartimin e disa CSS, dhe vetëm duke parë se si ata ndërveprojnë. 938 00:43:53,440 --> 00:43:56,970 Dhe ju do të fitoni një shumë të mirë, ndjenjë intuitive për mënyrën se si funksionon. 939 00:43:56,970 --> 00:43:58,810 >> OK, të gjithë mirë me CSS? 940 00:43:58,810 --> 00:44:01,280 Ju jeni të gjithë duke shkuar për të bërë Faqet e internetit të bukura me CSS tani. 941 00:44:01,280 --> 00:44:05,460 OK, praktikat më të mira, vetëm gjëra për të mbajtur në mend, gjëra 942 00:44:05,460 --> 00:44:09,810 that-- kjo është arsyeja pse ne dok ju për projektuesi dhe gjësend. 943 00:44:09,810 --> 00:44:11,820 Pra mbyllni të gjitha tags tuaj HTML. 944 00:44:11,820 --> 00:44:14,840 Pra, nëse ju keni një trup të hapur, nuk duhet të jetë një organ i ngushtë. 945 00:44:14,840 --> 00:44:18,180 Nëse ju keni një paragraf të hapur, duhet të ketë një paragraf i afërt. 946 00:44:18,180 --> 00:44:19,555 Kontrollo për të parë faqen tuaj validates. 947 00:44:19,555 --> 00:44:23,330 Ju djema duhet të jenë shumë të njohur me këtë nga p-set shtatë 948 00:44:23,330 --> 00:44:26,350 me CS 50 financë me validator W3. 949 00:44:26,350 --> 00:44:28,340 Dhe siç kam thënë më parë, një nga paradigmat tona të mëdha 950 00:44:28,340 --> 00:44:33,780 është e ndarë stilin tuaj me CSS nga Markup tuaj, e cila është HTML. 951 00:44:33,780 --> 00:44:36,900 Dhe pastaj, sigurisht, ne kemi kjo XKCD madhe poshtë këtu. 952 00:44:36,900 --> 00:44:38,280 Yay, lehtësim komik! 953 00:44:38,280 --> 00:44:41,340 >> OK, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 Në mes të këtyre dhe HTTP, në thelb ata janë të dy protokollet. 955 00:44:44,650 --> 00:44:46,810 Kështu që ju mund vetëm të mendoj prej tyre si një grup rregullash 956 00:44:46,810 --> 00:44:50,110 që qeverisin se si gjërat lëvizin nëpër internet. 957 00:44:50,110 --> 00:44:53,410 Pra kontrollit të transmetimit protokoll, ose protokoll të internetit, 958 00:44:53,410 --> 00:44:57,280 është vetëm një mënyrë për t'u siguruar se të dhënat e merr ku ajo do 959 00:44:57,280 --> 00:45:00,030 dhe që ne e dimë nëse ne jemi ndonjëherë të humbur të dhënave. 960 00:45:00,030 --> 00:45:03,520 Pra, në qoftë se ju djema mendoni përsëri në leksionin disa javë më parë me Davidin 961 00:45:03,520 --> 00:45:06,980 ku kemi pasur katër zarf, ata u regjistruan të gjithë si një nga katër, 962 00:45:06,980 --> 00:45:11,300 dy nga katër, tre nga katër, katër prej katër, kjo është vetëm një grup rregullash. 963 00:45:11,300 --> 00:45:13,830 Ne i thamë, në rregull, sa herë që ne jemi dërgimin e më shumë se një pako, 964 00:45:13,830 --> 00:45:16,610 ne do të numërojmë ajo me çfarë numri është 965 00:45:16,610 --> 00:45:19,040 dhe sa totale që përdoruesi duhet të merrni. 966 00:45:19,040 --> 00:45:22,540 >> Dhe kjo është vetëm duke u thënë kush po merr të dhënat e nëse ata 967 00:45:22,540 --> 00:45:26,120 kanë marrë çdo gjë, ose nëse diçka kam humbur gjatë rrugës. 968 00:45:26,120 --> 00:45:28,840 Dhe ata duhet të pyesni për atë përsëri. 969 00:45:28,840 --> 00:45:31,140 Kjo është me të vërtetë vetëm një grup i rregullave. 970 00:45:31,140 --> 00:45:33,650 Kjo është se si ju mund të mendoni për atë, OK? 971 00:45:33,650 --> 00:45:37,700 Dhe gjithashtu, ai specifikon portit, i cili ju djema can-- unë njoh gjatë ligjëratës, 972 00:45:37,700 --> 00:45:39,170 ata kishin një listë e tërë e porteve. 973 00:45:39,170 --> 00:45:41,630 Por ne nuk kemi këtu tani. 974 00:45:41,630 --> 00:45:45,290 >> Protokoll kështu HyperText transfer është, përsëri, kjo është një tjetër protokoll. 975 00:45:45,290 --> 00:45:48,630 Pra, kjo është një tjetër grup rregullash që drejtojnë, në këtë rast, 976 00:45:48,630 --> 00:45:51,130 si HyperText është transferuar. 977 00:45:51,130 --> 00:45:54,340 Pra, ai vetëm i lejon shfletuesit për të folur me serverat e internetit. 978 00:45:54,340 --> 00:45:56,910 Dhe siç kemi thënë këtu, është si shtrëngimet e duarve të njeriut. 979 00:45:56,910 --> 00:46:00,480 Është vetëm një mënyrë për të qeverisur si web server është 980 00:46:00,480 --> 00:46:02,690 duke shkuar për të bashkëvepruar me shfletuesin tuaj. 981 00:46:02,690 --> 00:46:05,660 Dhe ne kemi vetëm disa shembuj. 982 00:46:05,660 --> 00:46:09,100 Ne kemi disa kërkesa këtu ku GET është metodë. 983 00:46:09,100 --> 00:46:13,760 Ne kemi HTTP 1,1, e cila është version protokoll për ne. 984 00:46:13,760 --> 00:46:17,230 Dhe pastaj, host, e cila është çfarë ne jemi në të vërtetë duke u përpjekur për të hyrë. 985 00:46:17,230 --> 00:46:21,800 Dhe pastaj, siç e shihni këtu, ne marrë disa përgjigje me këtë 200 986 00:46:21,800 --> 00:46:25,032 OK si kodit tonë HTTP përgjigje. 987 00:46:25,032 --> 00:46:27,240 Ne kemi një listë të madhe që unë jam duke shkuar për të tërhequr deri në një të dytë 988 00:46:27,240 --> 00:46:29,430 se ju djema duhet të jenë të njohur me të. 989 00:46:29,430 --> 00:46:35,750 Dhe ne e kemi këtë të tipit Përmbajtja e tekstit / HTML, që vetëm thotë se çfarë lloji i të dhënave 990 00:46:35,750 --> 00:46:39,990 po ne marrjen nga serveri, OK? 991 00:46:39,990 --> 00:46:44,230 Kjo mikpritës dhe ky lloj përmbajtja janë pjesë e HTTP headers. 992 00:46:44,230 --> 00:46:49,610 Ju mund të keni sa pak apo sa më pak që të nevojshme për kontekstin e asaj që 993 00:46:49,610 --> 00:46:50,580 ju jeni që kanë të bëjnë me të. 994 00:46:50,580 --> 00:46:53,371 Ndonjëherë ju do të keni një shumë të Informacioni që vjen nga serveri juaj. 995 00:46:53,371 --> 00:46:56,040 Ndoshta ata janë duke kërkuar një shumë e informacionit nga përdoruesit. 996 00:46:56,040 --> 00:46:57,600 Ajo ndryshon në varësi të kontekstit. 997 00:46:57,600 --> 00:47:01,144 Nëse ju shikoni në CS 50 Studimit, ka shumë më shumë për këtë. 998 00:47:01,144 --> 00:47:03,060 Por ne kemi një shumë për të marrë nëpër, kështu që unë jam duke shkuar 999 00:47:03,060 --> 00:47:05,760 për të shkuar drejtë përpara nëse kjo është në rregull me ju djema? 1000 00:47:05,760 --> 00:47:07,960 Ftohtë. 1001 00:47:07,960 --> 00:47:08,460 Të mbajë në. 1002 00:47:08,460 --> 00:47:11,182 Unë patjetër duhet që listë e tërë of-- huh! 1003 00:47:11,182 --> 00:47:13,140 Unë nuk e di pse kjo është të gjithë rrugën mbi këtu. 1004 00:47:13,140 --> 00:47:15,660 Unë mendova se fjalë për fjalë u zhvendos atë ndërsa unë isha sitting-- 1005 00:47:15,660 --> 00:47:16,540 >> Davin: A doni të mësojë atë? 1006 00:47:16,540 --> 00:47:17,420 Apo ju doni mua për të mësuar atë? 1007 00:47:17,420 --> 00:47:20,010 >> AUDIENCA: Unë mendova që ne mund të vetëm tregoni atyre për të filluar me. 1008 00:47:20,010 --> 00:47:22,210 Unë do të thotë, ju mund të shkoni në ato më tej, por unë 1009 00:47:22,210 --> 00:47:26,030 mendoi ajo bëri më shumë kuptim që nga I ishte vetëm duke folur për HTTP statuseve. 1010 00:47:26,030 --> 00:47:28,200 Kështu që këtu është e gjithë lista. 1011 00:47:28,200 --> 00:47:31,730 Unë mendoj se çfarë do të ndodhë është Davin do të shkojë në ato më vonë. 1012 00:47:31,730 --> 00:47:35,330 Por ka një listë e tërë, një vrojtim i shije që do të vijnë. 1013 00:47:35,330 --> 00:47:41,640 OK, ne jemi duke shkuar për blow-- kjo po ndodh të jetë një kurs përplasje PHP si asnjë tjetër. 1014 00:47:41,640 --> 00:47:44,874 >> Pra PHP, HyperText preprocessor, kjo është një backronym rekursive, 1015 00:47:44,874 --> 00:47:46,540 që do të thotë ajo u quajt diçka tjetër. 1016 00:47:46,540 --> 00:47:49,050 Dhe pastaj ata ishin si, kjo nuk ka të vërtetë të bëjë kuptim. 1017 00:47:49,050 --> 00:47:52,210 Pra, ata të quajtur vetëm it-- dhe kjo ishte një akronim, 1018 00:47:52,210 --> 00:47:54,840 kështu ata vetëm e bëri atë PHP preprocessor HyperText, e cila 1019 00:47:54,840 --> 00:47:55,980 vetëm nuk ka kuptim. 1020 00:47:55,980 --> 00:47:57,714 Histori Fun. 1021 00:47:57,714 --> 00:47:58,880 Kjo është një gjuhë programimi. 1022 00:47:58,880 --> 00:48:02,360 Pra, sa më shumë që unë theksoj se HTML nuk është një gjuhë programimi, 1023 00:48:02,360 --> 00:48:05,350 kjo është një gjuhë markup, PHP është një gjuhë programimi. 1024 00:48:05,350 --> 00:48:07,422 Si e dini se kjo është sepse nuk ka logjikë. 1025 00:48:07,422 --> 00:48:08,380 Ka conditionals. 1026 00:48:08,380 --> 00:48:12,750 Ne kemi variablave, ndërsa ne kanë asnjë nga ato gjëra në HTML. 1027 00:48:12,750 --> 00:48:16,960 >> Në rregull, atëherë ne e kemi këtë pak bit këtu që është si një shije të PHP. 1028 00:48:16,960 --> 00:48:20,510 Pra bazat, emrat e ndryshueshme të fillojë me një shenjë të dollarit. 1029 00:48:20,510 --> 00:48:21,500 Shumë njerëz si ajo. 1030 00:48:21,500 --> 00:48:22,371 Kujton us parave. 1031 00:48:22,371 --> 00:48:22,995 Kjo është e gjitha e madhe. 1032 00:48:22,995 --> 00:48:25,280 Ne të gjithë duam PHP. 1033 00:48:25,280 --> 00:48:28,020 Pra, ne nuk e specifikon një lloji më i ndryshueshëm-së. 1034 00:48:28,020 --> 00:48:29,995 Ajo është e vendosur në kohë të kandidojë. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 Përkthyesi do të jetë si, oh, ne vetëm do të vazhdojë deri, 1037 00:48:35,890 --> 00:48:39,565 dhe në përputhje me kontekstin, ne do të shohim se çfarë lloje të llojeve 1038 00:48:39,565 --> 00:48:41,560 këto variabla duhet të keni. 1039 00:48:41,560 --> 00:48:42,815 Nuk ka asnjë funksion kryesor. 1040 00:48:42,815 --> 00:48:43,690 Gjërat vetëm do të kandidojë. 1041 00:48:43,690 --> 00:48:47,851 Ju djema me importin tuaj në tuaj p-set kaluar, ju do të vëreni këtë. 1042 00:48:47,851 --> 00:48:49,350 Nuk ishte me të vërtetë një funksion kryesor. 1043 00:48:49,350 --> 00:48:52,070 Ju vetëm shkruante çfarë ju të kërkuar për të ndodhë. 1044 00:48:52,070 --> 00:48:53,280 Dhe ajo vetëm lloj i ndodhur. 1045 00:48:53,280 --> 00:48:56,760 Pra, kjo është PHP për ju. 1046 00:48:56,760 --> 00:48:59,180 >> Vargjeve janë shumë të ngjashme. 1047 00:48:59,180 --> 00:49:01,270 Ne ende e kanë këtë kllapa. 1048 00:49:01,270 --> 00:49:05,940 Këtu, ne kemi disa ndryshore i quajtur arr, dhe është e barabartë 1049 00:49:05,940 --> 00:49:08,540 to-- ne kemi normal ynë simbol kllapa. 1050 00:49:08,540 --> 00:49:10,630 Dhe ne kemi disa vlera të rëndësishme. 1051 00:49:10,630 --> 00:49:14,630 Dhe ndryshim i madh ndërmjet C dhe PHP vargjeve 1052 00:49:14,630 --> 00:49:19,330 është se ne mund të kemi këtë associate-- ne mund të lidhin vlerat për të çelësat. 1053 00:49:19,330 --> 00:49:22,440 Pra, në vend të vetëm duke pasur një grup që është indeksuar 1054 00:49:22,440 --> 00:49:26,630 nga numri apo pozicioni i këtij elementi në grup, 1055 00:49:26,630 --> 00:49:29,060 ne fakt mund të shoqërojnë atë me një çelës. 1056 00:49:29,060 --> 00:49:36,700 Ku ne mund të themi, OK, unë dua çdo gjë vlera shoqërohet me fruta. 1057 00:49:36,700 --> 00:49:39,280 Dhe ndoshta ne kemi fruta shkoi në banane. 1058 00:49:39,280 --> 00:49:41,760 Kështu ajo do të kthehet banane për ne. 1059 00:49:41,760 --> 00:49:44,100 >> Por në thelb, më gjë e fuqishme në lidhje me këtë 1060 00:49:44,100 --> 00:49:47,960 është se në qoftë se ju djema mbani mend demo nga leksion ku ne thelb 1061 00:49:47,960 --> 00:49:53,050 speller rishkroi në PHP, dhe ajo lookup was-- ishte me të vërtetë ashtu si, 1062 00:49:53,050 --> 00:49:55,007 ekziston ky kyç? 1063 00:49:55,007 --> 00:49:56,590 Kjo është me të vërtetë lloji i fuqisë së tij. 1064 00:49:56,590 --> 00:49:58,560 Ju nuk keni nevojë për të iterate përmes array tuaj. 1065 00:49:58,560 --> 00:50:00,311 Ju nuk keni nevojë të dini çfarë hapësirë ​​është në. 1066 00:50:00,311 --> 00:50:01,976 Kjo mund të jetë në fund ose fillim. 1067 00:50:01,976 --> 00:50:04,790 Për sa kohë që ju e dini çelësin që është e lidhur me vlere, 1068 00:50:04,790 --> 00:50:09,740 PHP vetëm mund të nxjerr se vlera e drejtë të kthehet nga ju, OK? 1069 00:50:09,740 --> 00:50:12,960 >> Dhe pastaj, ne gjithashtu sapo kanë vetëm sepse ne 1070 00:50:12,960 --> 00:50:16,750 mund të ketë palë kyçe me vlerë nuk do të thotë që ju keni për të. 1071 00:50:16,750 --> 00:50:19,180 Ju gjithashtu mund të krijojë vetëm një grup normal si këtu, 1072 00:50:19,180 --> 00:50:21,540 në të poshtme, ku është vetëm një, dy, tre, kater. 1073 00:50:21,540 --> 00:50:22,510 Këto janë vlerat tona. 1074 00:50:22,510 --> 00:50:25,320 Dhe në fakt, çelësat e tyre janë indekset. 1075 00:50:25,320 --> 00:50:26,830 Pra, çelësi për një të tillë do të jetë zero. 1076 00:50:26,830 --> 00:50:28,610 Kyç për dy do të jenë një. 1077 00:50:28,610 --> 00:50:31,910 Kështu me radhë e kështu me radhë, përveç nëse ju në mënyrë eksplicite të caktojë një kyç, 1078 00:50:31,910 --> 00:50:34,630 ju mund të supozojmë se Vlera është vetëm indeksi i tyre. 1079 00:50:34,630 --> 00:50:37,290 A do të ketë kuptim për të gjithë? 1080 00:50:37,290 --> 00:50:38,070 Nuk ka pyetje? 1081 00:50:38,070 --> 00:50:38,930 Awesome. 1082 00:50:38,930 --> 00:50:44,420 >> OK, foreach është një mënyrë për të iterate përmes vargjeve tuaja. 1083 00:50:44,420 --> 00:50:47,490 Pra, ne kemi diçka këtu, vetëm struktura përgjithësi. 1084 00:50:47,490 --> 00:50:51,020 Pra foreach, emri i array tonë, si çdo gjë 1085 00:50:51,020 --> 00:50:53,930 ju doni të telefononi çdo element në grup tuaj, 1086 00:50:53,930 --> 00:50:57,270 dhe ne mund të bëjmë diçka me që element apo me atë vlerë. 1087 00:50:57,270 --> 00:50:58,680 Pra, ne kemi një shembull këtu. 1088 00:50:58,680 --> 00:51:05,770 Ne kemi një associative grup me këto dy shënimeve 1089 00:51:05,770 --> 00:51:10,080 me bar duke u lidhur me foo dhe qux duke u lidhur me Baz. 1090 00:51:10,080 --> 00:51:12,180 Pra çelësat janë të foo dhe baz. 1091 00:51:12,180 --> 00:51:13,650 Vlerat janë bar dhe qux. 1092 00:51:13,650 --> 00:51:18,560 Pra foreach, ne kemi koleksion tonë këtu, si palë e vlerës kryesore. 1093 00:51:18,560 --> 00:51:21,560 Kjo na lejon për qasje të dy kyç dhe vlera. 1094 00:51:21,560 --> 00:51:23,680 Ndoshta ju vetëm duan vlera, në të cilin rast 1095 00:51:23,680 --> 00:51:27,640 ju mund të bëni ashtu si arr si vlerë $, dhe pastaj ju 1096 00:51:27,640 --> 00:51:30,640 janë vetëm të qasjes në vlerën si ju iterate nëpër. 1097 00:51:30,640 --> 00:51:32,600 Por, ndoshta, për disa arsye, ju doni çelësin, 1098 00:51:32,600 --> 00:51:35,460 cila është arsyeja pse unë zgjodha ky shembull në vend. 1099 00:51:35,460 --> 00:51:40,240 Kështu që ju mund të vërtetë të manipuluar kyç dhe vlera në këtë rast. 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 Pyetje? 1102 00:51:41,905 --> 00:51:44,279 >> AUDIENCA: Nëse dëshironi të vetëm manipuluar çelësin, do të 1103 00:51:44,279 --> 00:51:45,910 ju duhet të bëni foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON: E drejta. 1105 00:51:47,360 --> 00:51:50,560 Pra, në qoftë se ju të kërkuar për të manipuluar vetëm çelësin, 1106 00:51:50,560 --> 00:51:53,680 ju ende do të duhet kjo Sintaksa sepse në qoftë se ju vetëm 1107 00:51:53,680 --> 00:51:56,930 kanë arr si diçka, si një gjë, është e 1108 00:51:56,930 --> 00:52:00,070 do të supozojmë që ju dëshironi vlera, jo kyç. 1109 00:52:00,070 --> 00:52:06,780 Pra, nëse ndonjëherë ju vetëm duhet vetëm si arr si, ndoshta kjo është si $ element, 1110 00:52:06,780 --> 00:52:11,670 ajo do të supozojmë se ju jeni duke i kërkuar për vetëm vlera në secilën pikë. 1111 00:52:11,670 --> 00:52:13,879 Nëse ju doni të qartë të bëjë diçka me kyç, 1112 00:52:13,879 --> 00:52:16,170 edhe në qoftë se ju nuk do të jeni të të bëjë asgjë me vlerë, 1113 00:52:16,170 --> 00:52:18,430 keni nevojë për këtë strukturë që ne kemi këtu 1114 00:52:18,430 --> 00:52:22,330 ku ju jeni duke kërkuar në mënyrë eksplicite për të dy çelësit dhe vlerë. 1115 00:52:22,330 --> 00:52:24,170 Pyetje e madhe. 1116 00:52:24,170 --> 00:52:25,940 Çdo gjë tjetër? 1117 00:52:25,940 --> 00:52:27,490 Ftohtë. 1118 00:52:27,490 --> 00:52:29,911 >> Në rregull, PHP dhe HTML. 1119 00:52:29,911 --> 00:52:31,410 Oh, ne jemi kthyer në p-vendosur shtatë përsëri. 1120 00:52:31,410 --> 00:52:35,380 Pra kjo duhet të duket pak i njohur. 1121 00:52:35,380 --> 00:52:41,760 Pra, kjo është një formë e thjeshtë HTML se ka ndonjë emër të dhëna e përshëndetje. 1122 00:52:41,760 --> 00:52:43,820 Dhe ne shohim ne kemi metodën tonë të MERRNI. 1123 00:52:43,820 --> 00:52:47,430 Dhe në qoftë se ne kujtojmë nga p-set tonë, kur kjo formë është dorëzuar, 1124 00:52:47,430 --> 00:52:58,130 ajo dërgon një grup të quajtur $ _GET që ka të gjitha këto inputeve ose variablave nga 1125 00:52:58,130 --> 00:53:00,490 formë që duhet të jetë manipuluar në PHP tonë. 1126 00:53:00,490 --> 00:53:03,320 Pra në këtë rast, përdoruesit do të vënë në emër të tyre. 1127 00:53:03,320 --> 00:53:04,370 Ata dërgojë atë. 1128 00:53:04,370 --> 00:53:07,810 Dhe ne shohim se ne të merrni disa rrjet këtu. 1129 00:53:07,810 --> 00:53:09,080 Ne kemi rrjet tonë Teklif. 1130 00:53:09,080 --> 00:53:11,510 Dhe ne jemi të qasjes emrin. 1131 00:53:11,510 --> 00:53:15,070 >> Kështu që thotë, OK, më jep Vlera që është i lidhur me emrin, 1132 00:53:15,070 --> 00:53:16,550 të përmendur duke qenë kyç këtu. 1133 00:53:16,550 --> 00:53:21,400 Dhe se harta direkt në çfarë kemi thënë emrin tonë input është. 1134 00:53:21,400 --> 00:53:28,960 Pra, kjo është duke ju dhënë çelësin për çfarë do të jetë në rrjet tuaj këtu. 1135 00:53:28,960 --> 00:53:31,220 A do të ketë kuptim për të gjithë? 1136 00:53:31,220 --> 00:53:32,070 Po? 1137 00:53:32,070 --> 00:53:36,240 >> AUDIENCA: A emri në GET referohen në vijën e purpurt në [e padëgjueshme]? 1138 00:53:36,240 --> 00:53:37,740 >> ALISON: Ajo i referohet ky këtu. 1139 00:53:37,740 --> 00:53:43,840 Pra, kjo fushë drejtë këtu, ajo i referohet këtij emri këtu. 1140 00:53:43,840 --> 00:53:47,800 Pra, kjo mund të ishte quajtur si numri i telefonit, ose çfarëdo. 1141 00:53:47,800 --> 00:53:51,790 Ky emër në të vërtetë thotë, çfarë po ju duke e quajtur këtë fushë? 1142 00:53:51,790 --> 00:53:53,600 Si po ju do të referohen në këtë fushë? 1143 00:53:53,600 --> 00:53:57,670 Dhe ky emër është në të vërtetë pëlqen, ne jemi duke thënë këtë fushë quhet emri. 1144 00:53:57,670 --> 00:53:59,224 Kjo është se si ne jemi duke shkuar për të hyrë në të. 1145 00:53:59,224 --> 00:54:02,070 >> Audienca: Pra, është ajo donte, Emri input është e barabartë me Bob, and-- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON: E drejta, atëherë ju do të merrni Bob atje poshtë. 1147 00:54:04,380 --> 00:54:06,090 Exactly. 1148 00:54:06,090 --> 00:54:07,800 Gjithkush i ftohtë? 1149 00:54:07,800 --> 00:54:10,990 Në rregull, kështu GET kundrejt POST, këto janë dy mënyra kryesore 1150 00:54:10,990 --> 00:54:14,880 që ne të kalojë të dhënat në një kërkesë HTTP. 1151 00:54:14,880 --> 00:54:17,370 Ju djema duhet të keni parë të dyja këto me shpresë. 1152 00:54:17,370 --> 00:54:20,940 Pra me MERRNI, informatat është kaluar përmes URL. 1153 00:54:20,940 --> 00:54:23,490 Pra, nëse ju ndonjëherë të bëni Google kërkimet, YouTube, ju do të 1154 00:54:23,490 --> 00:54:25,130 ndoshta vëreni disa pikëpyetje. 1155 00:54:25,130 --> 00:54:28,230 Dhe pastaj, të gjitha fjalët që ju vetëm vënë në atje. 1156 00:54:28,230 --> 00:54:31,410 Dhe POST kalon të dhënat në trup HTTP mesazhit. 1157 00:54:31,410 --> 00:54:36,922 Pra ndryshe nga MERRNI, ju lloj i konsiderojnë se të dhënat është e fshehur nga përdoruesit. 1158 00:54:36,922 --> 00:54:38,630 Por ajo që është me të vërtetë i rëndësishëm për të kuptuar 1159 00:54:38,630 --> 00:54:44,040 është se kjo është ende po aq e pasigurtë sa MERRNI. 1160 00:54:44,040 --> 00:54:48,780 Analogji Më pëlqen të përdorin është nëse ju keni numrin e llogarisë tuaj bankare 1161 00:54:48,780 --> 00:54:52,795 dhe ju shkruani atë në pjesën e jashtme një zarf, që është goxha i pasigurt. 1162 00:54:52,795 --> 00:54:55,920 Nëse ju do të shkruani atë në një copë letër dhe e vënë atë brenda në zarf, 1163 00:54:55,920 --> 00:54:58,850 është ende e vërtetë e pasigurt sepse të gjithë ju duhet të bëni është hapur që deri 1164 00:54:58,850 --> 00:55:03,480 dhe të kërkoni në përmbajtjen aktuale i mesazhit të parë se. 1165 00:55:03,480 --> 00:55:08,310 Pra, kjo është "fshehur", dhe njerëz si për të mendoj se është e sigurt, por kjo nuk është e vërtetë. 1166 00:55:08,310 --> 00:55:11,000 Dhe unë jam i sigurt se do të Davin merrni në se më shumë, ndoshta. 1167 00:55:11,000 --> 00:55:12,850 Por kjo është një e rëndësishme dallim për të bërë 1168 00:55:12,850 --> 00:55:15,820 dhe diçka me të vërtetë e mirë për të kuptuar. 1169 00:55:15,820 --> 00:55:19,220 >> OK, SQL, Structured Query Language. 1170 00:55:19,220 --> 00:55:22,220 Të gjitha gjëra që që kemi parë deri kohët e fundit! 1171 00:55:22,220 --> 00:55:25,400 Pra, kjo është në thelb i projektuar vetëm, padyshim, për menaxhimin e të dhënave. 1172 00:55:25,400 --> 00:55:30,560 Ju djema pasur shumë përvojë me kjo në tryezat tuaja me PHP MyAdmin. 1173 00:55:30,560 --> 00:55:34,100 Dhe ka katër pyetje të shpeshta që ne duam që ju djema të dini. 1174 00:55:34,100 --> 00:55:37,304 Pra, nuk ka update, insert, zgjidhni, dhe fshini. 1175 00:55:37,304 --> 00:55:38,970 Prandaj sigurohuni që ju e dini se ata me të vërtetë mirë. 1176 00:55:38,970 --> 00:55:40,960 Ne jemi duke shkuar për të shkuar nëpërmjet tyre të vërtetë të shpejtë. 1177 00:55:40,960 --> 00:55:44,340 >> Pra rinovuar, me të vërtetë, si çfarë ju mund të mendoni se e bën atë, 1178 00:55:44,340 --> 00:55:46,740 ajo vetëm përditëson të dhënat në bazën e të dhënave tuaja. 1179 00:55:46,740 --> 00:55:48,750 Pra, ne kemi disa shembuj këtu. 1180 00:55:48,750 --> 00:55:53,310 Ky është i përgjithshëm Struktura e një pyetje update. 1181 00:55:53,310 --> 00:55:56,150 Pra, ne update në tryezë se ne jemi duke folur rreth. 1182 00:55:56,150 --> 00:56:00,520 Dhe ne duam të vendosur sigurtë vlerat, kolona të caktuara 1183 00:56:00,520 --> 00:56:02,600 e barabartë me vlerat specifike. 1184 00:56:02,600 --> 00:56:07,500 Pra, kjo vetëm përditësime në tryezë, duke ndryshuar Vlerat në të gjitha rreshtave në këtë rast. 1185 00:56:07,500 --> 00:56:13,690 Pra, në këtë poshtë këtu, një aktuale shembull, ne kemi insert-- sorry. 1186 00:56:13,690 --> 00:56:17,630 Kjo rrëshqitje avancuar pa mua e kuptuar atë. 1187 00:56:17,630 --> 00:56:22,230 >> Pra, kjo tabelë updates vendosur col1 i barabartë të val1 ku shtëpia është e barabartë me "korrier". 1188 00:56:22,230 --> 00:56:25,300 Çfarë kjo nuk është ajo vetëm ndryshon, ajo vetëm 1189 00:56:25,300 --> 00:56:28,130 përditëson këto vlera në vende të veçanta. 1190 00:56:28,130 --> 00:56:32,300 Pra, në këtë një të parë, ajo ndryshon këto Vlerat për çdo gjë në tryezën tuaj, 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 Ajo do të ndryshojë kjo kolonë për çdo hyrje të vetme, 1193 00:56:35,820 --> 00:56:37,020 për çdo rresht të vetëm. 1194 00:56:37,020 --> 00:56:40,840 Por kjo ku, ju mund të të mendojnë për atë si një përcaktim. 1195 00:56:40,840 --> 00:56:44,020 Pra, ajo është vetëm do të ndryshojë ajo në vende shumë specifike. 1196 00:56:44,020 --> 00:56:47,840 Pra, në p-vendosur shtatë, kur ju ndoshta përditësuar sasinë e parave të gatshme 1197 00:56:47,840 --> 00:56:53,050 që përdoruesit e juaj kishte, ju ndoshta kishte disa ku ID e barabartë ID seancë, e drejtë? 1198 00:56:53,050 --> 00:56:55,280 >> Sepse ju nuk duan të ndryshojë shumën e parave të gatshme 1199 00:56:55,280 --> 00:56:57,630 për çdo person i cili ishte duke përdorur faqen tuaj te internetit. 1200 00:56:57,630 --> 00:57:00,480 Ju të kërkuar për të ndryshuar atë për një personi konkret, ky person duke qenë 1201 00:57:00,480 --> 00:57:02,410 kush ishte duke e përdorur atë në atë kohë. 1202 00:57:02,410 --> 00:57:04,320 E drejtë? 1203 00:57:04,320 --> 00:57:07,510 OK, kështu insert, insert Vlerat e caktuara në tavolina. 1204 00:57:07,510 --> 00:57:11,650 Kjo është si kur ju jeni duke krijuar një përdorues të ri fringo. 1205 00:57:11,650 --> 00:57:14,240 Struktura e përgjithshme këtu është futur në çfarëdo tryezë 1206 00:57:14,240 --> 00:57:15,680 ne jemi duke folur për. 1207 00:57:15,680 --> 00:57:18,910 Vlerat, duke qenë vlerat që ne në të vërtetë doni të futur. 1208 00:57:18,910 --> 00:57:23,060 OK, kështu që ne shohim këtu, ne kanë futur në tryezë. 1209 00:57:23,060 --> 00:57:27,790 Kjo është kolona të veçanta me vlerat e tyre përgjigjej. 1210 00:57:27,790 --> 00:57:29,940 Pra kjo thotë, insert një rresht i ri që përmban 1211 00:57:29,940 --> 00:57:33,660 Vlerat val1 dhe val2 nën këto kolona të veçanta. 1212 00:57:33,660 --> 00:57:39,240 >> Kështu që ndoshta ju vetëm dëshironi të plotësoni nga gjysma e gjërave në këtë rresht. 1213 00:57:39,240 --> 00:57:41,150 Kjo është ajo që këtu lejon kjo pjesë ju bëni. 1214 00:57:41,150 --> 00:57:43,280 Kjo ju lejon të vërtetë të përcaktuar se cila pjesë. 1215 00:57:43,280 --> 00:57:44,244 Po? 1216 00:57:44,244 --> 00:57:52,150 >> AUDIENCA: A mund ti vetëm [e padëgjueshme] qelizat në rreshtin [e padëgjueshme]? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON: Nëse ju vetëm plotësoni në pjesë të caktuara të rresht tuaj, 1218 00:57:55,000 --> 00:57:57,480 Pjesa tjetër e këtyre qelizave janë vetëm bosh. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 Për sa kohë që ju lejojnë ata që të të jetë bosh, kjo nuk është një problem. 1221 00:58:05,660 --> 00:58:09,570 Nëse ju të përpiqet për të hyrë në ato, është e do të kthehen disa element i zbrazët. 1222 00:58:09,570 --> 00:58:13,850 Por është e rëndësishme të dini që në tryeza të caktuara, 1223 00:58:13,850 --> 00:58:16,690 ata kanë për të të lejohet të jetë null. 1224 00:58:16,690 --> 00:58:18,890 Ju mund të keni drejtuar në një Problemi gjatë p-vendosur tuaj 1225 00:58:18,890 --> 00:58:21,320 sepse ne nuk i la asnjë e vlerat e tua të jenë të null. 1226 00:58:21,320 --> 00:58:26,110 Por ju mund të specifikoni një Vlera opsionale në tryezën tuaj. 1227 00:58:26,110 --> 00:58:29,640 >> OK, zgjidhni, kështu që kjo është vetëm një mënyrë për të marrë 1228 00:58:29,640 --> 00:58:33,790 të dhëna specifike nga një tavolinë në disa identifikues që ju dëshironi. 1229 00:58:33,790 --> 00:58:37,990 Pra, zgjidhni yll nga tryeza ku col barabartë diçka thjesht do të thotë, 1230 00:58:37,990 --> 00:58:43,820 më jepni të gjitha të dhënat që lidhen ku kjo kolonë të veçantë është e vërtetë. 1231 00:58:43,820 --> 00:58:49,020 Pra yll në këtë rast do të kthejë të gjithë rresht për ju, OK? 1232 00:58:49,020 --> 00:58:54,880 >> Dhe pastaj, në këtë rast, zgjidhni yll nga tabelë vetëm ju jep të gjithë tabelën. 1233 00:58:54,880 --> 00:58:58,940 Dhe pastaj, fshini padyshim, ajo vetëm fshin rresht nga tabela. 1234 00:58:58,940 --> 00:59:01,320 Pra fshini nga tabela, çfarëdo tryezë ne jemi 1235 00:59:01,320 --> 00:59:06,830 referenca, ku disa të veçanta Identifikuesi ose disa kusht është e vërtetë. 1236 00:59:06,830 --> 00:59:07,720 Po? 1237 00:59:07,720 --> 00:59:08,700 >> AUDIENCA: Pyetje. 1238 00:59:08,700 --> 00:59:10,699 Pse jeni duke përdorur të dyfishtë Kuotat, dhe nëse ju 1239 00:59:10,699 --> 00:59:13,600 të bëjë kuotat e dyfishtë apo të vetme Kuotat, e bën atë të bëjë një ndryshim? 1240 00:59:13,600 --> 00:59:18,235 >> ALISON: Kuotat e dyfishta apo Kuotat e vetme nuk e bën një ndryshim në SQL. 1241 00:59:18,235 --> 00:59:19,610 Unë mendova se pashë një pyetje tjetër. 1242 00:59:19,610 --> 00:59:20,814 Po? 1243 00:59:20,814 --> 00:59:25,070 >> AUDIENCA: A nuk të ndikojë çfarë merr arratis nga pyetje? 1244 00:59:25,070 --> 00:59:27,945 >> ALISON: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> Rob: Çfarë do të thotë nga ikur nga pyetje? 1246 00:59:31,410 --> 00:59:36,870 >> AUDIENCA: Nëse dikush ka një pyetje të vetme në formën of-- 1247 00:59:36,870 --> 00:59:39,862 >> Rob: Nëse dikush do të vënë një kuotë të vetme në, 1248 00:59:39,862 --> 00:59:43,560 pastaj sa kohë që ju jeni sanitizing input tuaj, atëherë kjo nuk ka rëndësi. 1249 00:59:43,560 --> 00:59:46,205 Por nëse ju jeni duke përdorur një të vetme japin kuotën e dhe ju jeni gabimisht 1250 00:59:46,205 --> 00:59:47,914 ikin inputet tuaja, atëherë po, ata duhet 1251 00:59:47,914 --> 00:59:51,079 për të vënë një kuotë të vetme në mënyrë për të thyer Kodi juaj. në qoftë se ju përdorni kuotat e dyfishtë, 1252 00:59:51,079 --> 00:59:53,580 ata kanë nevojë për të vënë një të dyfishtë japin kuotën e tyre për të thyer kodin tuaj. 1253 00:59:53,580 --> 00:59:56,163 Por për aq kohë sa ju shpëtojnë gjëra si duhet, kjo nuk ka rëndësi. 1254 00:59:56,163 --> 00:59:59,220 Është vetëm do të jenë të përkthyera në simbolin e saktë gjithsesi. 1255 00:59:59,220 --> 01:00:02,332 >> AUDIENCA: Çfarë do të thotë ikje? 1256 01:00:02,332 --> 01:00:04,040 ALISON: E pra, si sanitizing dhe shpëtojnë. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 Provimi që ne kemi, XKCD i madh komik që ata të tërheqë deri ku ju keni, 1259 01:00:13,820 --> 01:00:15,629 oh-- 1260 01:00:15,629 --> 01:00:16,670 Rob: Është rrëshqitje e kaluar. 1261 01:00:16,670 --> 01:00:18,500 ALISON: Është rrëshqitje e fundit, me të vërtetë? 1262 01:00:18,500 --> 01:00:20,200 Oh my god. 1263 01:00:20,200 --> 01:00:21,780 Ka ne do të shkojmë, të përsosur. 1264 01:00:21,780 --> 01:00:27,900 OK, kështu që në thelb, ju mund të injektojnë diçka në këtë query SQL 1265 01:00:27,900 --> 01:00:30,560 ku ajo prishet tuaj Kodi, apo si David tregoi 1266 01:00:30,560 --> 01:00:38,460 në klasë, në qoftë se ne kemi disa të vetme quote 1 është e barabartë me 1 dhe në qoftë se në kodin tonë, 1267 01:00:38,460 --> 01:00:41,230 ne vetëm drejtpërdrejt kopje që në, dhe ne kemi një kuotë mbaron të vetme, 1268 01:00:41,230 --> 01:00:44,740 ajo që ndodh është që ne të merrni disa shprehje që 1269 01:00:44,740 --> 01:00:48,680 vlerëson të vërtetë që do të le dikush të hyjë database tonë 1270 01:00:48,680 --> 01:00:51,720 dhe për të marrë të dhënat që ne nuk duan që ata të marrin. 1271 01:00:51,720 --> 01:00:54,240 Pra sanitizing inputet thjesht do të thotë duke u siguruar 1272 01:00:54,240 --> 01:00:57,680 që ne po ikin këto karaktere dhe përcaktimin e tyre 1273 01:00:57,680 --> 01:01:01,720 si gërma dhe jo gjërat e që duhet të lejohet 1274 01:01:01,720 --> 01:01:04,990 që do të merret fjalë për fjalë si deklaratën tonë SQL. 1275 01:01:04,990 --> 01:01:09,980 >> Pra, gjëja e madhe që thamë se ju djema duhet të jetë duke përdorur 1276 01:01:09,980 --> 01:01:13,650 ishin chars veçanta HTML, e cila është diçka 1277 01:01:13,650 --> 01:01:15,730 që ju mund të dëshironi të hidhni një sy në. 1278 01:01:15,730 --> 01:01:17,240 OK, fshini. 1279 01:01:17,240 --> 01:01:19,450 Llojet e të dhënave, kjo të gjithë do të jetë online. 1280 01:01:19,450 --> 01:01:23,510 Që nga viti ne kemi lënë 15 minuta, unë jam vetëm do të shkojnë drejtë nëpër këtë. 1281 01:01:23,510 --> 01:01:28,500 PHP dhe SQL, në thelb kjo është vetëm kemi pasur një funksion query që 1282 01:01:28,500 --> 01:01:31,520 ndihmuar në mbrojtjen kundër këto sulme me qëllim të keq. 1283 01:01:31,520 --> 01:01:33,970 Pra, sa herë që ju përdorni pyetje, ne ishim duke u siguruar 1284 01:01:33,970 --> 01:01:36,560 se gjërat janë pastruar dhe gjësend. 1285 01:01:36,560 --> 01:01:41,070 >> MVC është vetëm një paradigmë të projektimit, kështu model, pikëpamje, kontrollues. 1286 01:01:41,070 --> 01:01:44,200 Është vetëm një mënyrë për të mbajtur gjërat e bukur dhe të ndarë në të njëjtën mënyrë 1287 01:01:44,200 --> 01:01:47,100 që ne priren të faktor Kodi jashtë në funksionet. 1288 01:01:47,100 --> 01:01:53,390 Kjo është vetëm një kornizë e web design që ju lejon të bëni të njëjtën gjë. 1289 01:01:53,390 --> 01:01:54,760 Unë jam duke shkuar për të kaloni këtë. 1290 01:01:54,760 --> 01:01:58,530 >> Kjo është diçka që unë do të ishte super i qetë me. 1291 01:01:58,530 --> 01:02:01,132 Kjo është një tabelë e madhe pak atje. 1292 01:02:01,132 --> 01:02:03,090 Kjo ju jep funksionin shembull i modelit. 1293 01:02:03,090 --> 01:02:05,473 Unë jam vetëm duke shkuar nëpër këtë, sepse unë me të vërtetë duan Davin të jetë në gjendje për të folur. 1294 01:02:05,473 --> 01:02:07,140 Nëse keni ndonjë pyetje, ju lutem mos ngurroni. 1295 01:02:07,140 --> 01:02:07,931 Unë do të jetë këtu pas. 1296 01:02:07,931 --> 01:02:10,360 Vetëm të vijnë të bisedojnë me mua. 1297 01:02:10,360 --> 01:02:13,380 Me këtë, ne kemi HTTP statuse. 1298 01:02:13,380 --> 01:02:16,270 Dhe Davin-së do të hidhte në erë nëpër këtë në 15 minuta. 1299 01:02:16,270 --> 01:02:17,560 Kjo do të jetë i madh. 1300 01:02:17,560 --> 01:02:18,893 >> Davin: OK. 1301 01:02:18,893 --> 01:02:20,312 Uh, mic juaj? 1302 01:02:20,312 --> 01:02:22,210 Vërtet. 1303 01:02:22,210 --> 01:02:23,336 Më vjen keq. 1304 01:02:23,336 --> 01:02:24,460 ALISON: Rruga për të jenë të përgatitur. 1305 01:02:24,460 --> 01:02:25,335 Davin: Jo, unë jam i gatshëm. 1306 01:02:25,335 --> 01:02:25,860 Unë jam i gatshëm. 1307 01:02:25,860 --> 01:02:28,790 Le të bëjmë këtë. 1308 01:02:28,790 --> 01:02:29,290 Është gati. 1309 01:02:29,290 --> 01:02:30,041 OK. 1310 01:02:30,041 --> 01:02:30,540 Më vjen keq. 1311 01:02:30,540 --> 01:02:31,664 I derdhur kafe mbi veten time. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 Unë nuk e di nëse unë jam më shumë mërzitur se unë shoh pa kuptim, 1314 01:02:38,210 --> 01:02:40,600 apo që unë nuk kam kafe më. 1315 01:02:40,600 --> 01:02:44,480 Gjithsesi, vetëm një njoftim i shpejtë për fletë ju djema keni. 1316 01:02:44,480 --> 01:02:47,994 Pra, kjo fletë ju djema keni nuk është e zyrtar se çfarë është në quiz. 1317 01:02:47,994 --> 01:02:49,660 Kjo është zyrtar se çfarë është në quiz. 1318 01:02:49,660 --> 01:02:52,520 Gjithashtu, në faqen e internetit, ne them ju, OK, kjo do të jetë në quiz. 1319 01:02:52,520 --> 01:02:55,020 Pra, në pak fletë mashtrojnë ju keni, nuk zyrtar. 1320 01:02:55,020 --> 01:02:56,690 Dhe ka gabime në të. 1321 01:02:56,690 --> 01:03:01,490 Pra, jo më e mirë për të vetëm verbërisht përdorin atë. 1322 01:03:01,490 --> 01:03:04,390 Pra, vërtet, kjo është se. 1323 01:03:04,390 --> 01:03:05,980 Pra, le të marrë në këtë të shpejtë të vërtetë. 1324 01:03:05,980 --> 01:03:07,420 >> Kështu HTTP statuse. 1325 01:03:07,420 --> 01:03:10,430 Pra, çfarë ndodh kur website, çdo gjë është në rregull. 1326 01:03:10,430 --> 01:03:11,144 OK e çdo gjëje. 1327 01:03:11,144 --> 01:03:13,310 Çdo gjë vjen përsëri në ju në mënyrë që ju dëshironi që ajo të. 1328 01:03:13,310 --> 01:03:15,370 Ju merrni një 200 OK. 1329 01:03:15,370 --> 01:03:19,250 301, ku kemi parë se 301 para? 1330 01:03:19,250 --> 01:03:20,890 Prisni, çfarë është lart? 1331 01:03:20,890 --> 01:03:23,250 Më vjen keq. 1332 01:03:23,250 --> 01:03:24,980 Ne pamë leksion unë kallaji gjatë sigurinë. 1333 01:03:24,980 --> 01:03:30,690 Pra gjatë sigurinë, kështu që nëse David shtypur në http dhe pastaj u përpoq për të shkuar në cs50.net, 1334 01:03:30,690 --> 01:03:31,940 ju jeni do të shihni 301 lëvizur. 1335 01:03:31,940 --> 01:03:32,440 Përse? 1336 01:03:32,440 --> 01:03:35,570 Për shkak se ajo do të përcjellim ju automatikisht për HTTPS tonë. 1337 01:03:35,570 --> 01:03:38,649 >> Pra 301 lëvizur, vetëm se është në thelb një redirection. 1338 01:03:38,649 --> 01:03:40,190 Dhe ju mund të mendoni për atë si kjo. 1339 01:03:40,190 --> 01:03:43,790 Ndonjë nga statuset që fillojnë me 2-të, ato janë si, OK, OK çdo gjë së. 1340 01:03:43,790 --> 01:03:46,530 Ndonjë nga statuset që fillojnë me 3, ato janë redirection. 1341 01:03:46,530 --> 01:03:49,571 Statuse që fillojnë me 4, që do të thotë ka disa lloj gabimi klientit. 1342 01:03:49,571 --> 01:03:52,440 Statuse që fillojnë me 5, kjo është një lloj i gabimit server. 1343 01:03:52,440 --> 01:03:54,680 Kështu që ju lloj i prishur , statuset si kjo. 1344 01:03:54,680 --> 01:03:59,120 Pra, jo jo 304 modifikuara, kështu që në tuaj server.c p-grupe, kështu që le të thonë se ju 1345 01:03:59,120 --> 01:04:00,600 cat.html ngarkuar. 1346 01:04:00,600 --> 01:04:03,360 Çdo gjë vjen mbrapa, ju merrni 200s, OK, i madh. 1347 01:04:03,360 --> 01:04:04,540 >> Le të thonë se ju rifreskohen atë. 1348 01:04:04,540 --> 01:04:07,310 E pra, brenda se cat.html, ju keni një JPEG. 1349 01:04:07,310 --> 01:04:09,520 E pra, kjo nuk është JPEG do të merrni reloaded. 1350 01:04:09,520 --> 01:04:12,140 Ju nuk jeni duke shkuar për të postoj një tjetër GET kërkesën për serverit, 1351 01:04:12,140 --> 01:04:13,980 dhe pastaj të merrni të gjithë këtë informacion përsëri. 1352 01:04:13,980 --> 01:04:17,560 Ajo do të vetëm be-- se imazhi është do të jetë kopje e ruajtur në kompjuterin tuaj. 1353 01:04:17,560 --> 01:04:19,540 Dhe kështu që imazhi do të jetë një 304. 1354 01:04:19,540 --> 01:04:20,720 Pra, ajo nuk i është ndryshuar për herë. 1355 01:04:20,720 --> 01:04:24,600 Nëse ju pastaj të mbyllur jashtë, i qartë cookies, dhe pastaj refresh 1356 01:04:24,600 --> 01:04:27,490 dhe të përpiqen për të ngarkuar atë faqe përsëri, ju jeni do të shihni 200s. 1357 01:04:27,490 --> 01:04:28,910 Ju nuk jeni duke shkuar për të parë se 304. 1358 01:04:28,910 --> 01:04:32,340 >> 400, kërkesë e keqe, e vërtetë i shpejtë, si në qoftë se ju 1359 01:04:32,340 --> 01:04:34,880 ishin duke shkuar për të dërguar një JSON objekt në server 1360 01:04:34,880 --> 01:04:38,090 dhe objekti juaj JSON ishte i pasaktë, ju do të shihni diçka të tillë. 1361 01:04:38,090 --> 01:04:39,000 403, i ndaluar. 1362 01:04:39,000 --> 01:04:40,330 Kur do të shihni një e ndaluar? 1363 01:04:40,330 --> 01:04:41,394 Ndoshta Ndoshta? 1364 01:04:41,394 --> 01:04:42,060 AUDIENCA: chmod. 1365 01:04:42,060 --> 01:04:42,950 Davin: chmod, vërtet. 1366 01:04:42,950 --> 01:04:44,730 Pra, ju nuk keni vendosur lejet e saktë. 1367 01:04:44,730 --> 01:04:45,577 404, nuk gjendet. 1368 01:04:45,577 --> 01:04:46,410 Është vetëm jo aty. 1369 01:04:46,410 --> 01:04:48,670 Pra, nëse ju shkruani në e gabuar URL. 1370 01:04:48,670 --> 01:04:53,500 500, gabim i brendshëm server, server ndoshta nuk është konfiguruar si duhet. 1371 01:04:53,500 --> 01:04:56,260 Jo diçka në fund tuaj, por diçka në anën e serverit. 1372 01:04:56,260 --> 01:04:57,240 Dhe 503? 1373 01:04:57,240 --> 01:04:59,502 Shumë njerëz e pa 503s në p-set fundit. 1374 01:04:59,502 --> 01:05:00,460 Kur do që të ndodhë? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 Kam dëgjuar pëshpëritjet. 1377 01:05:05,660 --> 01:05:07,767 >> AUDIENCA: Kur Google vendos ju jeni një robot. 1378 01:05:07,767 --> 01:05:10,350 Davin: Yeah, kur Google vendos ju jeni një robot, ju merrni 503s. 1379 01:05:10,350 --> 01:05:11,560 Pra, kjo është një mbingarkesë. 1380 01:05:11,560 --> 01:05:14,620 Nëse ju keni kërkuar nga serveri shumë, është zakonisht i përkohshëm. 1381 01:05:14,620 --> 01:05:15,560 Dhe shumica prej jush vënë re atë. 1382 01:05:15,560 --> 01:05:16,185 Pra, ju e pa 503. 1383 01:05:16,185 --> 01:05:19,282 Ju mund të keni marrë pak pushim, atëherë 503s shkoi larg, 1384 01:05:19,282 --> 01:05:20,490 dhe çdo gjë ishte në rregull. 1385 01:05:20,490 --> 01:05:26,640 >> Gabe: Real shpejtë, kur e bëni ju djema 500 në ndoshta ky problem të fundit të vendosur? 1386 01:05:26,640 --> 01:05:27,954 Po? 1387 01:05:27,954 --> 01:05:30,906 >> AUDIENCA: Zakonisht në qoftë se server ka një dosje të humbur 1388 01:05:30,906 --> 01:05:34,650 ose [e padëgjueshme] e tyre makinë [e padëgjueshme]. 1389 01:05:34,650 --> 01:05:38,870 >> Gabe: Pra, ajo mund të jetë një konfiguracion çështje në PHP tuaj në serverin tuaj. 1390 01:05:38,870 --> 01:05:42,250 Por ajo mund të jetë vetëm diçka si pikëpresje se juaj harruar. 1391 01:05:42,250 --> 01:05:44,130 Nëse ju jeni të shtypni PHP, disa sintaksë e gabuar 1392 01:05:44,130 --> 01:05:46,000 mund të merrni ju diçka të tillë. 1393 01:05:46,000 --> 01:05:46,960 OK? 1394 01:05:46,960 --> 01:05:48,610 >> Davin: Best. 1395 01:05:48,610 --> 01:05:51,180 A doni mua për të bërë vetëm deri AJAX? 1396 01:05:51,180 --> 01:05:52,950 >> Gabe: [padëgjueshme]. 1397 01:05:52,950 --> 01:05:53,450 Davin: OK. 1398 01:05:53,450 --> 01:05:54,230 Pra, çfarë është DOM? 1399 01:05:54,230 --> 01:05:55,290 Çfarë do të qëndrojë për DOM? 1400 01:05:55,290 --> 01:05:56,990 >> AUDIENCA: Modeli Document objekt. 1401 01:05:56,990 --> 01:05:57,490 Davin: Bukur. 1402 01:05:57,490 --> 01:06:00,775 Dhe pse nuk na pëlqen? 1403 01:06:00,775 --> 01:06:02,670 Awesome. 1404 01:06:02,670 --> 01:06:06,651 E drejtë, kështu që ajo vetëm na lejon për qasje HTML, hyni në faqen tonë shumë shpejt. 1405 01:06:06,651 --> 01:06:07,150 Përse? 1406 01:06:07,150 --> 01:06:09,980 Sepse ne jemi duke e trajtuar tonë faqe, duke e trajtuar tags tona HTML, 1407 01:06:09,980 --> 01:06:11,730 trajtimin e çdo gjë si në qoftë se ata janë objekte. 1408 01:06:11,730 --> 01:06:13,710 Nëse ne jemi duke i trajtuar ata si ata janë objekte, atëherë çfarë mund të bëjmë? 1409 01:06:13,710 --> 01:06:15,210 E pra, ne mund të telefononi funksionet mbi ta. 1410 01:06:15,210 --> 01:06:16,460 Dhe kjo është e rëndësishme pse? 1411 01:06:16,460 --> 01:06:19,200 E pra, sepse ne jemi duke shkuar për të përdorur JavaScript për të rinovuar HTML tonë, 1412 01:06:19,200 --> 01:06:20,500 Përditëso këto objekte. 1413 01:06:20,500 --> 01:06:23,869 Pra, nëse ne i trajtojmë ato si objekte, ne pastaj mund të telefononi funksionet mbi ta. 1414 01:06:23,869 --> 01:06:26,660 Unë jam duke shkuar për të marrë në këtë pak më shumë kur unë shkoj në JavaScript, 1415 01:06:26,660 --> 01:06:30,510 por ju kemi parë të gjithë si document.getElementByID. 1416 01:06:30,510 --> 01:06:32,870 Pra dokument është tuaj element, të merrni element me ID, 1417 01:06:32,870 --> 01:06:35,087 kështu që ju jeni do të shikojmë për disa ID në një tag HTML. 1418 01:06:35,087 --> 01:06:36,920 Dhe pastaj, ju mund të bëni diçka tjetër për atë. 1419 01:06:36,920 --> 01:06:40,089 Për shembull, si document.body, atëherë ju mund të append fëmijë. 1420 01:06:40,089 --> 01:06:41,630 Pra, ju jeni do të gjeni dokumentin. 1421 01:06:41,630 --> 01:06:42,340 Ju keni dokumentin. 1422 01:06:42,340 --> 01:06:43,629 Ju do të jeni për të gjetur trupin. 1423 01:06:43,629 --> 01:06:44,420 Ju gjeti trupin. 1424 01:06:44,420 --> 01:06:46,545 Dhe pastaj, ju jeni do të telefononi disa funksion në të. 1425 01:06:46,545 --> 01:06:50,312 Pra append fëmijë, dhe ju mund të append disa HTML në fund brenda trupit tuaj. 1426 01:06:50,312 --> 01:06:52,520 Pra, në thelb, ju jeni vetëm e trajtuar atë si një objekt. 1427 01:06:52,520 --> 01:06:54,515 Ju jeni duke e trajtuar HTML tags si një objekt. 1428 01:06:54,515 --> 01:06:57,071 Dhe kjo e bën shumë të lehtë dhe të shpejtë për të shkuar nëpërmjet tyre. 1429 01:06:57,071 --> 01:06:59,070 Por ajo gjithashtu ju lejon për të thirrur funksione në to 1430 01:06:59,070 --> 01:07:04,410 kështu që ju mund të manipulojë dhe për të ndryshuar elementet. 1431 01:07:04,410 --> 01:07:10,162 >> Gabe: Duke pasur parasysh këtë, pse është i tillë JavaScript një gjuhë e bukur për të bashkëvepruar me HTML? 1432 01:07:10,162 --> 01:07:12,870 Shanset janë, kur njerëzit ishin zgjedhur gjuha për shfletuesit, 1433 01:07:12,870 --> 01:07:14,990 për anën e klientit, JavaScript është me të vërtetë e bukur, 1434 01:07:14,990 --> 01:07:16,765 kjo është me të vërtetë mirë në trajtimin e objekteve. 1435 01:07:16,765 --> 01:07:20,620 Dhe objektet janë lloj i pëlqen objektet që shfaqen në HTML, 1436 01:07:20,620 --> 01:07:23,940 kështu që është shumë e lehtë për JavaScript për të bërë atë lloj të trajtimit. 1437 01:07:23,940 --> 01:07:24,440 Davin: Bukur. 1438 01:07:24,440 --> 01:07:25,670 Kështu që këtu është vetëm një shembull. 1439 01:07:25,670 --> 01:07:29,020 Kështu që unë mendoj në quiz e vitit të kaluar, ose ndoshta dy vjet më parë, ne 1440 01:07:29,020 --> 01:07:30,840 kërkuar që ju të krijoni një pemë. 1441 01:07:30,840 --> 01:07:32,660 Pra, kjo është pikërisht ajo që ju do të bëni. 1442 01:07:32,660 --> 01:07:34,255 Pra, ju filloni me dokument. 1443 01:07:34,255 --> 01:07:36,130 Dhe pastaj ju në thelb vetëm shikoni në tags. 1444 01:07:36,130 --> 01:07:38,100 Pra, nëse ju shikoni, ne të fillojë me një tag HTML. 1445 01:07:38,100 --> 01:07:41,660 Dhe pastaj, ju merrni të dhëna rreth asaj se si për të bëni këtë bazuar në vulë. 1446 01:07:41,660 --> 01:07:43,870 Pra lloj kreu i degëve off. 1447 01:07:43,870 --> 01:07:46,242 Brenda kokës, ne kemi tjetër tag për titull. 1448 01:07:46,242 --> 01:07:47,450 Pra, atëherë, ne kemi një tag titullin. 1449 01:07:47,450 --> 01:07:49,760 Dhe brenda kësaj, ne kemi disa string. 1450 01:07:49,760 --> 01:07:52,210 Dhe kështu që ne përfaqësojmë një varg në një rreth. 1451 01:07:52,210 --> 01:07:54,010 Dhe të gjithë tags janë në sheshe. 1452 01:07:54,010 --> 01:07:56,270 >> Dhe në qoftë se ju shikoni, nëse ne mendojnë për këtë si një pemë, 1453 01:07:56,270 --> 01:07:58,730 dhe le të themi se HTML është një prind, pastaj kokë dhe trup 1454 01:07:58,730 --> 01:07:59,772 do të jenë vëllezërit e motrat. 1455 01:07:59,772 --> 01:08:01,813 Ata janë të dy do të jetë bijtë e atij prindi. 1456 01:08:01,813 --> 01:08:03,620 Pra, për shkak se ata janë të të dy vëllezërit e motrat, ata janë 1457 01:08:03,620 --> 01:08:06,590 do të jetë lloj tjetër të njëri-tjetrin në modelin tonë pemë. 1458 01:08:06,590 --> 01:08:08,590 Dhe pastaj, ju në thelb të bëjë të njëjtën gjë e saktë. 1459 01:08:08,590 --> 01:08:13,512 Pra, nuk është e vështirë, por ne kemi kërkuar pyetje si kjo para në quiz. 1460 01:08:13,512 --> 01:08:15,220 Gabe: A askënd keni pyetje deri tani? 1461 01:08:15,220 --> 01:08:16,357 A është e mirë? 1462 01:08:16,357 --> 01:08:16,856 Davin: Best. 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScript, OK, gjëra të mira. 1465 01:08:21,600 --> 01:08:24,069 Pra JavaScript, çfarë është JavaScript? 1466 01:08:24,069 --> 01:08:28,370 E pra, JavaScript is-- është e komplikuar, por këto 1467 01:08:28,370 --> 01:08:30,727 janë disa nga pikat kryesore që ju duhet të mbani në mend. 1468 01:08:30,727 --> 01:08:31,810 Së pari, është e shtypur lirshëm. 1469 01:08:31,810 --> 01:08:33,529 Çfarë do të thotë? 1470 01:08:33,529 --> 01:08:35,596 Pra PHP was-- vërtet, çfarë është lart? 1471 01:08:35,596 --> 01:08:39,854 >> AUDIENCA: Ju nuk keni për të në mënyrë eksplicite shtet çfarë lloji i variablit është. 1472 01:08:39,854 --> 01:08:40,479 Davin: Perfect. 1473 01:08:40,479 --> 01:08:43,270 Kështu që ai tha se ju nuk keni për të përcaktojë qartë llojin e ndryshores. 1474 01:08:43,270 --> 01:08:44,160 Kjo është saktësisht e drejtë. 1475 01:08:44,160 --> 01:08:49,700 Pra në C, në qoftë se kam pasur int i barabartë me 50, pastaj në PHP, kjo është vetëm si kjo, $ i, 1476 01:08:49,700 --> 01:08:50,550 është e barabartë me 50. 1477 01:08:50,550 --> 01:08:54,319 Pastaj në JavaScript, çfarë do të ishte thirrje? 1478 01:08:54,319 --> 01:08:55,260 Var, e drejtë? 1479 01:08:55,260 --> 01:08:56,566 Ajo do të jetë si var i barabartë me 50. 1480 01:08:56,566 --> 01:08:58,649 Por ju nuk duhet të jenë të si, OK, kjo është një int. 1481 01:08:58,649 --> 01:09:00,350 OK, kjo është një string. 1482 01:09:00,350 --> 01:09:01,731 Nuk ka nevojë për të bërë këtë. 1483 01:09:01,731 --> 01:09:02,939 Është një gjuhë interpretuar. 1484 01:09:02,939 --> 01:09:04,904 Pra, çfarë do të thotë kjo? 1485 01:09:04,904 --> 01:09:06,340 >> AUDIENCA: Jo hartuar. 1486 01:09:06,340 --> 01:09:10,470 >> Davin: Çfarë nuk i hartuar do të thotë? 1487 01:09:10,470 --> 01:09:11,392 Vërtet? 1488 01:09:11,392 --> 01:09:15,336 >> AUDIENCA: Ju nuk keni për të ristrukturuar kodin 1489 01:09:15,336 --> 01:09:18,294 për të marrë atë gati për kompjuter për të drejtuar atë. 1490 01:09:18,294 --> 01:09:23,144 Ajo është marrë vetëm në kohën e Ekzekutimi dhe kompjuter [e padëgjueshme]. 1491 01:09:23,144 --> 01:09:25,560 Davin: Yeah, kështu që ajo do të të kalojë përmes një përkthyesi. 1492 01:09:25,560 --> 01:09:26,750 Por ju jeni saktësisht e drejtë. 1493 01:09:26,750 --> 01:09:28,319 Kështu që ju kurrë nuk do të jeni për të hartuar atë, e drejtë? 1494 01:09:28,319 --> 01:09:30,399 Kur ju u bën tuaj PHP dhe kodin JavaScript, 1495 01:09:30,399 --> 01:09:31,365 ju kurrë nuk e quajti përpiloni. 1496 01:09:31,365 --> 01:09:33,779 Ju kurrë nuk quhet diçka si bërë ose diçka të tillë. 1497 01:09:33,779 --> 01:09:34,800 Kjo për shkak se është interpretuar. 1498 01:09:34,800 --> 01:09:37,319 Pra, çdo herë që ajo shkon përmes shfletuesit, ajo shkon përmes një përkthyesi. 1499 01:09:37,319 --> 01:09:40,370 Dhe kjo do të interpretojnë atë vetëm në kohë reale e drejtë larg për ju. 1500 01:09:40,370 --> 01:09:43,770 Pra cilat janë disa pozitive dhe negative për të pasur një gjuhë të interpretohet 1501 01:09:43,770 --> 01:09:45,258 dhe që ka një gjuhë të hartuar? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 Pra compiling-- vërtet, çfarë është lart? 1504 01:09:50,540 --> 01:09:52,444 >> AUDIENCA: interpretohet është më i ngadalshëm. 1505 01:09:52,444 --> 01:09:53,319 Davin: Në çfarë kuptimi? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> AUDIENCA: Pas jush përpiloj, ju nuk keni 1508 01:09:59,091 --> 01:10:04,400 për të bërë ndonjë hap shtesë për të ekzekutuar ajo, ndërsa ky [e padëgjueshme]. 1509 01:10:04,400 --> 01:10:05,570 >> Davin: E drejta, e përsosur. 1510 01:10:05,570 --> 01:10:08,386 Pra, çfarë ju tha është në thelb që përpiluan atë, 1511 01:10:08,386 --> 01:10:10,760 kur ju përpilojnë, ju keni një shumë i shpenzimeve upfront, e drejtë? 1512 01:10:10,760 --> 01:10:11,760 Ju jeni do të përpiloj atë. 1513 01:10:11,760 --> 01:10:13,750 Por pasi ju përpiloj atë, compiler do të zgjedh atë. 1514 01:10:13,750 --> 01:10:14,840 Ajo do të jetë i shpejtë. 1515 01:10:14,840 --> 01:10:16,170 Ajo do të në thelb të jetë aq shpejt sa ajo mund të jetë. 1516 01:10:16,170 --> 01:10:18,830 Me interpretimin, ju kurrë kanë atë kosto upfront. 1517 01:10:18,830 --> 01:10:22,260 Përkundrazi, ajo do të jetë pak më e ngadalshme çdo herë të vetme që ju të interpretuar atë. 1518 01:10:22,260 --> 01:10:24,940 Dhe ju jeni do të duhet të interpretojnë atë çdo herë të vetme. 1519 01:10:24,940 --> 01:10:27,114 Pra, në vend të kësaj një kosto kohë, tani ju jeni 1520 01:10:27,114 --> 01:10:29,530 do të keni për të interpretuar atë çdo herë faqe bën. 1521 01:10:29,530 --> 01:10:31,890 >> Pra përkthyesit janë të mira sepse ju nuk keni për të hartuar atë, 1522 01:10:31,890 --> 01:10:33,980 por ata janë keq në se çdo Herën e faqe ngarkesa, është e 1523 01:10:33,980 --> 01:10:35,771 do të duhet të interpretojnë këtë JavaScript. 1524 01:10:35,771 --> 01:10:40,520 Dhe ajo do të kandidojë pak më ngadalë se në qoftë se keni qenë për të hartuar atë. 1525 01:10:40,520 --> 01:10:43,044 Ju lejon të communicate-- oh, prisni. 1526 01:10:43,044 --> 01:10:44,960 Përdoret për të manipuluar përmbajtja dhe pamja. 1527 01:10:44,960 --> 01:10:46,043 Ne vetëm biseduar për atë. 1528 01:10:46,043 --> 01:10:47,250 Ai përdor DOM. 1529 01:10:47,250 --> 01:10:49,930 AJAX, ne do të merrni në AJAX në pak. 1530 01:10:49,930 --> 01:10:51,520 Dhe pastaj, kjo është pala e klientit. 1531 01:10:51,520 --> 01:10:53,110 Pra PHP është anë server. 1532 01:10:53,110 --> 01:10:54,360 JavaScript është anë klient. 1533 01:10:54,360 --> 01:10:57,780 Cilat janë pozitive për këtë? 1534 01:10:57,780 --> 01:10:58,280 Ajo thotë atë. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 Është e shpejtë, e drejtë? 1537 01:11:02,780 --> 01:11:05,282 Sepse ju nuk keni to-- kjo është më e shpejtë. 1538 01:11:05,282 --> 01:11:07,490 Ju nuk keni për të komunikuar me disa pajisje të tjera. 1539 01:11:07,490 --> 01:11:08,790 Nëse ju jeni vetëm në tuaj klient, ju kurrë nuk jeni të 1540 01:11:08,790 --> 01:11:11,280 do të keni për të shkuar dhe parë se çfarë është në server 1541 01:11:11,280 --> 01:11:13,150 dhe pastaj të raportojnë përsëri ose diçka të tillë. 1542 01:11:13,150 --> 01:11:15,410 Pra, pala klienti tenton të të jetë pak më të shpejtë. 1543 01:11:15,410 --> 01:11:17,910 >> Gabe: Po, por kjo nuk do të thotë PHP është 1544 01:11:17,910 --> 01:11:20,440 më shpejt se JavaScript apo diçka të ngjashme. 1545 01:11:20,440 --> 01:11:23,270 Ata të drejtuar lloj në të njëjtën Shpejtësia shkak se ata janë të dy 1546 01:11:23,270 --> 01:11:24,490 Gjuhë të interpretuar. 1547 01:11:24,490 --> 01:11:26,680 Gjë që është i ngadalshëm këtu është kërkesë. 1548 01:11:26,680 --> 01:11:28,870 Pra, ju jeni në të vërtetë duke shkuar gjithë rrugës mbi të Brazilit 1549 01:11:28,870 --> 01:11:31,460 për të marrë disa informata që jeton atje. 1550 01:11:31,460 --> 01:11:34,590 Por PHP dhe JavaScript, ata lloj i drejtuar në të njëjtën shpejtësi. 1551 01:11:34,590 --> 01:11:37,930 Kjo nuk është se njëri është më shpejt se tjetri. 1552 01:11:37,930 --> 01:11:40,600 Kjo, gjithashtu, pyetje mashtrim këtu. 1553 01:11:40,600 --> 01:11:47,338 Pra JavaScript kurrë nuk bëhet e Kodi makinë, e vërtetë apo e rreme? 1554 01:11:47,338 --> 01:11:48,590 >> AUDIENCA: False. 1555 01:11:48,590 --> 01:11:49,090 Gabe: False. 1556 01:11:49,090 --> 01:11:51,298 Ajo ka për të bërë makinë Kodi shkak code makinë është 1557 01:11:51,298 --> 01:11:53,210 e vetmja gjë makinë kupton. 1558 01:11:53,210 --> 01:11:55,800 Edhe pse kjo nuk është hartuar, ajo ende bëhet Kodi makinë 1559 01:11:55,800 --> 01:11:59,120 sepse përkthyesi është vetëm një program që shkon rresht pas rreshti 1560 01:11:59,120 --> 01:12:02,170 dhe transformon atë në linjë diçka kompjuteri e kupton. 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 Ftohtë. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> Davin: Këtu është vetëm një shumë bazë përshëndetje botërore programin JavaScript. 1565 01:12:12,890 --> 01:12:15,590 Kështu që unë nuk e di if-- ju kam parë këtë. 1566 01:12:15,590 --> 01:12:17,630 Por ju vetëm duhet HTML këtu. 1567 01:12:17,630 --> 01:12:21,020 Dhe në vend të vërtetë vënë JavaScript në tags shkrimit, 1568 01:12:21,020 --> 01:12:22,810 kështu që ju do të normalisht vënë atë në kokë. 1569 01:12:22,810 --> 01:12:24,030 Ju keni tags script. 1570 01:12:24,030 --> 01:12:24,870 Ju heqin atë atje. 1571 01:12:24,870 --> 01:12:28,350 Të gjithë ne kemi bërë këtu është që ne kemi lidhur in-- kështu që ne kemi lidhur në një skedar JavaScript 1572 01:12:28,350 --> 01:12:29,137 si kjo. 1573 01:12:29,137 --> 01:12:30,470 Dhe ju keni bërë gjithë këtë, apo jo? 1574 01:12:30,470 --> 01:12:34,740 Pra, kur ju jeni duke përdorur jQuery dhe underscore.js në p-set e fundit, 1575 01:12:34,740 --> 01:12:38,700 ju nuk keni ton e kodit deri në tags tuaj script, deri në kokën tuaj. 1576 01:12:38,700 --> 01:12:41,415 Ju mund të bëni atë, por në vend të kësaj ju jeni vetëm duke e lidhur atë në. 1577 01:12:41,415 --> 01:12:43,540 Dhe ju jeni duke e lidhur atë në Ashtu si ju bëni me CSS. 1578 01:12:43,540 --> 01:12:50,186 Pra, ai thjesht e bën më të lehtë për të lexuar kështu Kodi juaj nuk është si 1000 rreshta të gjatë 1579 01:12:50,186 --> 01:12:52,310 me ton të funksioneve që ju nuk mund të jeni duke përdorur. 1580 01:12:52,310 --> 01:12:53,518 >> Në vend të kësaj, ju vetëm të lidhë atë në. 1581 01:12:53,518 --> 01:12:55,050 Ajo compartmentalizes atë. 1582 01:12:55,050 --> 01:13:00,110 Është si duke shkruar disa header fotografi, dhe pastaj duke përfshirë edhe atë header skedarin në C. 1583 01:13:00,110 --> 01:13:01,620 Mendoni se vetëm si kjo. 1584 01:13:01,620 --> 01:13:02,680 Pra, çfarë do të bëni këtë? 1585 01:13:02,680 --> 01:13:04,560 E pra, kjo do të kandidojë. 1586 01:13:04,560 --> 01:13:05,410 Ajo do të njoftuar. 1587 01:13:05,410 --> 01:13:08,020 Pra, ju jeni do të merrni pak pop up quajtur botë Hello. 1588 01:13:08,020 --> 01:13:11,420 Pyetje të shpejtë, vetëm kontrolloni mendje e shëndoshë, kështu që ju të shihni këtu në trup, 1589 01:13:11,420 --> 01:13:13,160 them trupit, HTML këtu. 1590 01:13:13,160 --> 01:13:14,080 Çfarë vjen e para? 1591 01:13:14,080 --> 01:13:16,864 A kam shoh trupin, HTML këtu, ose mund ta shoh alarm i parë? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> AUDIENCA: Alert. 1594 01:13:20,820 --> 01:13:21,470 >> Davin: E drejta. 1595 01:13:21,470 --> 01:13:22,110 Ai thotë vigjilent. 1596 01:13:22,110 --> 01:13:22,610 Përse? 1597 01:13:22,610 --> 01:13:24,470 >> AUDIENCA: Sepse ju shkojnë nga lart poshtë. 1598 01:13:24,470 --> 01:13:25,600 >> Davin: Po. 1599 01:13:25,600 --> 01:13:26,100 Perfect. 1600 01:13:26,100 --> 01:13:29,207 Kështu thotë ai, ju shkoni nga lart fund, e cila është absolutisht e saktë. 1601 01:13:29,207 --> 01:13:30,790 Ju jeni do të shkojnë nga lart poshtë. 1602 01:13:30,790 --> 01:13:34,790 Dhe në JavaScript, jQuery, ju keni një funksion që është onload si, ose gati, 1603 01:13:34,790 --> 01:13:38,030 dhe që thotë, OK, prisni derisa të gjithë i këtij HTML është ngarkuar. 1604 01:13:38,030 --> 01:13:39,580 Dhe pastaj, telefononi JavaScript. 1605 01:13:39,580 --> 01:13:42,190 Sepse ne nuk kemi se këtu, Gjëja e parë që do të ndodhë 1606 01:13:42,190 --> 01:13:43,920 po ajo do të shkojnë nga lart poshtë. 1607 01:13:43,920 --> 01:13:46,310 Ajo do të goditur se JS telefononi, ajo do të të njoftuar. 1608 01:13:46,310 --> 01:13:49,510 Pasi që ju klikoni OK, që vigjilent shkon larg. 1609 01:13:49,510 --> 01:13:53,600 Atëherë ajo do të tregojë ju HTML trupi këtu. 1610 01:13:53,600 --> 01:13:54,590 E bukur. 1611 01:13:54,590 --> 01:14:00,880 >> OK, kështu që vetëm i vërtetë i shpejtë, shkrim në JavaScript është e super të shpejtë. 1612 01:14:00,880 --> 01:14:02,710 Në mënyrë për të deklaruar një variabël, emri var. 1613 01:14:02,710 --> 01:14:07,070 Pra në C, ju keni int i, ju keni për të deklaruar se çfarë lloj tipi është. 1614 01:14:07,070 --> 01:14:08,040 PHP, $. 1615 01:14:08,040 --> 01:14:08,755 JavaScript, var. 1616 01:14:08,755 --> 01:14:09,630 Kemi biseduar për këtë. 1617 01:14:09,630 --> 01:14:11,020 Në rregull, le të shkojnë. 1618 01:14:11,020 --> 01:14:12,510 >> Unazore, të njëjtën gjë. 1619 01:14:12,510 --> 01:14:14,230 E njëjta gjë. 1620 01:14:14,230 --> 01:14:18,165 Deklaratat funksion, kështu ashtu si ju kam parë në C. 1621 01:14:18,165 --> 01:14:21,290 E vetmja gjë që i ndryshëm është kështu kur ju merrni për gjuhët e tjera të programimit, 1622 01:14:21,290 --> 01:14:24,780 si kur ju keni marrë 51 semestrin e ardhshëm dhe ju jeni duke bërë me OCAML, 1623 01:14:24,780 --> 01:14:26,690 ju mund të merren me funksione anonime. 1624 01:14:26,690 --> 01:14:28,240 Pra, kjo është pikërisht ajo që ju kemi këtu. 1625 01:14:28,240 --> 01:14:31,560 Pra, ju doni për të vënë në fjalë, një lloj i vlerës së shumës. 1626 01:14:31,560 --> 01:14:33,870 Por ju mund të bëni vetëm atë një herë. 1627 01:14:33,870 --> 01:14:37,310 Pra, ju nuk doni të telefononi atë funksion Shuma, t'i jepte një deklaratë funksion. 1628 01:14:37,310 --> 01:14:39,830 Në vend të kësaj, ju vetëm e përdorin atë si një funksion anonim. 1629 01:14:39,830 --> 01:14:42,469 Dhe ju e kam parë këtë shumë. 1630 01:14:42,469 --> 01:14:44,510 Ju do të shihni një shembull të kjo në një slides çift. 1631 01:14:44,510 --> 01:14:45,597 Yeah, ne do të shohim. 1632 01:14:45,597 --> 01:14:46,430 Gabe: Pyetje e mirë. 1633 01:14:46,430 --> 01:14:50,660 Kur mund të doni të përdorni një funksion anonim këtu? 1634 01:14:50,660 --> 01:14:54,111 Në thelb, kur ju doni diçka, si një ngjarje, që të ndodhë. 1635 01:14:54,111 --> 01:14:55,860 Pra, kur miu është klikuar, për shembull, 1636 01:14:55,860 --> 01:14:57,790 ju doni disa funksion që do të quhet. 1637 01:14:57,790 --> 01:15:00,570 Pra, ju të kalojë të ngjarjes mbajtës, ju të kalojë të ngjarjes, 1638 01:15:00,570 --> 01:15:02,870 lloj, funksion që ju doni që do të quhet. 1639 01:15:02,870 --> 01:15:04,710 Dhe çfarë ju jeni duke kaluar është si, në fund 1640 01:15:04,710 --> 01:15:08,757 e ditës, vetëm një tregues për që udhëzim, në funksion. 1641 01:15:08,757 --> 01:15:11,090 Pra, kjo nuk është si ju jeni duke kaluar i gjithë kodi, ashtu siç 1642 01:15:11,090 --> 01:15:12,173 një tregues të funksionit. 1643 01:15:12,173 --> 01:15:17,871 Dhe pastaj, kur dikush klikimeve mouse, pastaj se funksioni merr quajtur. 1644 01:15:17,871 --> 01:15:22,340 >> Davin: Vargjeve, kështu që ju të ketë një deklaratë array. 1645 01:15:22,340 --> 01:15:23,990 Pastaj, një grup për të vënë gjërat në. 1646 01:15:23,990 --> 01:15:25,769 Real i shpejtë, çfarë do të shtypura nga kjo? 1647 01:15:25,769 --> 01:15:27,060 Çfarë do element i tretë jetë? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> AUDIENCA: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> Davin: E drejta, ajo do të ishte "JS." 1651 01:15:33,940 --> 01:15:35,760 Prisni, të shkojnë prapa. 1652 01:15:35,760 --> 01:15:37,100 Çfarë është gjatësia? 1653 01:15:37,100 --> 01:15:38,117 >> AUDIENCA: Tre. 1654 01:15:38,117 --> 01:15:38,950 Davin: Tre, e drejtë? 1655 01:15:38,950 --> 01:15:40,210 Pikërisht ajo që ju mendoni. 1656 01:15:40,210 --> 01:15:42,072 OK, tani shkoni. 1657 01:15:42,072 --> 01:15:43,530 Vargjeve, ju mund të shtoni gjëra për ta. 1658 01:15:43,530 --> 01:15:45,395 Kështu që ju mund të shkoni përtej kufijtë e tyre fillestare. 1659 01:15:45,395 --> 01:15:46,740 Vetëm diçka për të mbajtur në mend. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, ata janë pak pak më shumë falës në drejtim të gjërave 1661 01:15:49,760 --> 01:15:50,570 si kjo. 1662 01:15:50,570 --> 01:15:54,260 Objekte, shumë shumë si structs në C, shumë 1663 01:15:54,260 --> 01:15:56,590 si vargjeve associative në PHP. 1664 01:15:56,590 --> 01:15:58,720 Ju keni pasur të gjithë përvojë me këtë. 1665 01:15:58,720 --> 01:16:01,880 Pra JSON, kur ju jeni duke kaluar JSON mbrapa dhe me radhë në p-set tetë, 1666 01:16:01,880 --> 01:16:03,260 kjo është objekt tuaj. 1667 01:16:03,260 --> 01:16:06,290 >> Pra, vërtet, shembull, shembull i vërtetë i shpejtë. 1668 01:16:06,290 --> 01:16:07,880 Këtu është një objekt. 1669 01:16:07,880 --> 01:16:12,700 Mënyrë që ju referencë kjo objekt, kështu që vetëm të vërtetë të shpejtë, 1670 01:16:12,700 --> 01:16:18,630 le të thonë se unë të kërkuar për të gjetur jashtë, OK, çfarë është kurs? 1671 01:16:18,630 --> 01:16:20,681 Dhe kështu emri objekt këtu është CS50. 1672 01:16:20,681 --> 01:16:23,180 Dhe pastaj në qoftë se unë kishte një associative array, si do ta bëj këtë? 1673 01:16:23,180 --> 01:16:24,580 Unë do të jetë duke përdorur një çelës, e drejtë? 1674 01:16:24,580 --> 01:16:26,030 Kështu që unë kam emrin e vektorit. 1675 01:16:26,030 --> 01:16:30,160 Unë kam kllapa, citate, çelës, Kuotat fund, fund kllapa, 1676 01:16:30,160 --> 01:16:33,610 dhe që do të referencës që element brenda array tim associative. 1677 01:16:33,610 --> 01:16:37,646 Si mund të cekura Sigurisht brenda objektit time? 1678 01:16:37,646 --> 01:16:39,170 Çdokush e di? 1679 01:16:39,170 --> 01:16:40,622 >> Audienca: [padëgjueshme]. 1680 01:16:40,622 --> 01:16:41,784 >> Davin: Si është puna? 1681 01:16:41,784 --> 01:16:42,700 AUDIENCA: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 Davin: E drejta, vërtet. 1683 01:16:43,510 --> 01:16:45,320 Pra CS50.course. 1684 01:16:45,320 --> 01:16:48,770 Pra mënyrë ju referencë gjëra brenda një objekt JSON është me një pikë. 1685 01:16:48,770 --> 01:16:53,114 >> AUDIENCA: Ju mund të përdorni array sintaksë. 1686 01:16:53,114 --> 01:16:54,050 >> Davin: OK, gjobë. 1687 01:16:54,050 --> 01:16:57,544 >> Gabe: Ju mund të përdorni CS50 kllapa, string, si thonjëza. 1688 01:16:57,544 --> 01:16:59,210 AUDIENCA: Unë mendoj se është identike me PHP. 1689 01:16:59,210 --> 01:17:00,293 Gabe: Është e njëjta gjë. 1690 01:17:00,293 --> 01:17:02,487 Davin: Fine! 1691 01:17:02,487 --> 01:17:03,945 Por ju do të shihni këtë vende të tjera. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 Yeah, kështu që do të mbajë. 1694 01:17:10,480 --> 01:17:13,330 Kjo është ajo që unë vetëm tha. 1695 01:17:13,330 --> 01:17:17,840 Pra, në një shembull JavaScript jQuery. 1696 01:17:17,840 --> 01:17:19,440 Pra, kjo është DOM im, e drejtë? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 Real i shpejtë, kështu që unë kam një kreu, përshëndetje botë, trupi. 1699 01:17:25,410 --> 01:17:26,160 Unë kam një buton. 1700 01:17:26,160 --> 01:17:27,870 Ajo thotë se "shtytje mua", kështu që unë dua të shtyjë atë. 1701 01:17:27,870 --> 01:17:29,745 Dhe unë dua të bëj diçka kur është e klikuar. 1702 01:17:29,745 --> 01:17:31,220 E drejtë, e ardhshëm. 1703 01:17:31,220 --> 01:17:34,630 >> E drejtë, kështu që kjo është e mia JavaScript. 1704 01:17:34,630 --> 01:17:37,790 Pra jQuery është vetëm një e lehtë mënyrë për të shkruar JavaScript. 1705 01:17:37,790 --> 01:17:40,920 Pra kjo, dhe atë që unë jam duke shkuar për të treguar ju i ardhshëm, do të jetë jQuery, 1706 01:17:40,920 --> 01:17:41,930 janë identike. 1707 01:17:41,930 --> 01:17:43,990 Kështu ata do të bëjnë të njëjtat gjëra. 1708 01:17:43,990 --> 01:17:45,974 Vetëm jQuery ka tendencë të jetë pak më e lehtë. 1709 01:17:45,974 --> 01:17:47,140 Njerëzit kanë tendencë për të si ajo më shumë. 1710 01:17:47,140 --> 01:17:48,390 Ajo ka një shumë të funksionalitetit. 1711 01:17:48,390 --> 01:17:49,830 Pra, njerëzit kanë tendencë për të përdorur jQuery. 1712 01:17:49,830 --> 01:17:53,270 Ju të gjithë e përdorur jQuery në p-set fundit. 1713 01:17:53,270 --> 01:17:54,270 Pra, çfarë do të bëni këtë? 1714 01:17:54,270 --> 01:17:56,580 Çfarë do të këtë JavaScript-- kështu kjo është vetëm plain JavaScript. 1715 01:17:56,580 --> 01:17:57,430 Çfarë do të bëni këtë? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 Çfarë do të bëni? 1718 01:18:03,450 --> 01:18:04,890 >> Pra, së pari, ju shihni onload dritare. 1719 01:18:04,890 --> 01:18:05,390 E drejtë? 1720 01:18:05,390 --> 01:18:06,640 Pra, ne nuk e shohim se më parë. 1721 01:18:06,640 --> 01:18:09,380 Pra, kjo do të pres derisa tërë ngarkesa dritare. 1722 01:18:09,380 --> 01:18:12,770 Kështu ajo do të presë deri në ngarkesës HTML, të gjitha imazhet 1723 01:18:12,770 --> 01:18:13,770 para se ajo nuk bën asgjë. 1724 01:18:13,770 --> 01:18:16,050 Pra, le të thonë se DOM jonë ka ngarkuar. 1725 01:18:16,050 --> 01:18:17,270 Çdo gjë është atje. 1726 01:18:17,270 --> 01:18:19,080 Pastaj çfarë do të ndodhë? 1727 01:18:19,080 --> 01:18:19,922 Vërtet? 1728 01:18:19,922 --> 01:18:22,880 >> AUDIENCA: Button shfaqet. 1729 01:18:22,880 --> 01:18:25,201 >> Davin: Butoni është tashmë atje. 1730 01:18:25,201 --> 01:18:26,700 Yeah, kështu button-së tashmë atje. 1731 01:18:26,700 --> 01:18:31,190 Por kjo do të thotë, OK, në qoftë se unë klikoni butonin, 1732 01:18:31,190 --> 01:18:33,650 kështu button është tashmë aty, si kjo HTML tag. 1733 01:18:33,650 --> 01:18:35,980 Prisni, të shkojnë prapa vërtetë të shpejtë. 1734 01:18:35,980 --> 01:18:39,470 Kjo etiketë e drejtë e drejtë këtu është do të jetë një buton tashmë. 1735 01:18:39,470 --> 01:18:40,810 Ka tashmë një buton. 1736 01:18:40,810 --> 01:18:44,120 Por pastaj, JavaScript tag, të drejtë këtu, 1737 01:18:44,120 --> 01:18:46,160 ajo thotë, OK, unë dua për të marrë element me ID, 1738 01:18:46,160 --> 01:18:50,300 kështu button kërko vetëm thotë, OK, unë dua të ndajë këtë variabël për atë buton. 1739 01:18:50,300 --> 01:18:53,120 Kështu që variabël është vetëm një Mënyra më e lehtë për të hyrë në atë buton. 1740 01:18:53,120 --> 01:18:57,300 Dhe unë them, OK, në qoftë se unë klikoni se button, kështu që në qoftë se unë klikoni atë element, 1741 01:18:57,300 --> 01:18:59,560 dhe ky element i referohet button, në qoftë se unë klikoni atë, 1742 01:18:59,560 --> 01:19:00,875 atëherë unë dua për të thirrur një funksion. 1743 01:19:00,875 --> 01:19:03,500 Këtu është një nga ata anonim Funksionet ne ishim duke folur për. 1744 01:19:03,500 --> 01:19:04,840 >> Vetëm thirrje disa funksion. 1745 01:19:04,840 --> 01:19:08,840 Brenda atë funksion, në thelb diçka që ne kemi parë shumë, alarm. 1746 01:19:08,840 --> 01:19:10,477 Ju klikoni butonin e kërkimit. 1747 01:19:10,477 --> 01:19:12,060 Ajo do të në thelb kanë një buton. 1748 01:19:12,060 --> 01:19:13,040 Ju click it. 1749 01:19:13,040 --> 01:19:14,040 Ju merrni atë vigjilent. 1750 01:19:14,040 --> 01:19:14,850 X jashtë. 1751 01:19:14,850 --> 01:19:15,754 Kjo ishte. 1752 01:19:15,754 --> 01:19:16,254 Vërtet? 1753 01:19:16,254 --> 01:19:21,980 >> Audienca: Pra, nëse ju vënë script [E padëgjueshme], tag script në HTML tuaj? 1754 01:19:21,980 --> 01:19:24,300 >> Davin: Ju mund të vënë script drejt tag në kokë 1755 01:19:24,300 --> 01:19:30,667 sepse ju e keni këtë onload. 1756 01:19:30,667 --> 01:19:32,000 Është gjithashtu që ju të keni një klik. 1757 01:19:32,000 --> 01:19:34,166 Kështu ajo do të presë deri në ju klikoni për diçka. 1758 01:19:34,166 --> 01:19:37,470 Por onload është vetëm që të jetë e sigurt, për të bërë siguruar që gjithçka ngarkesa në HTML tuaj 1759 01:19:37,470 --> 01:19:38,170 paraprakisht. 1760 01:19:38,170 --> 01:19:39,247 Vërtet? 1761 01:19:39,247 --> 01:19:40,330 Ju doni të thoni diçka? 1762 01:19:40,330 --> 01:19:41,080 >> Gabe: [padëgjueshme]. 1763 01:19:41,080 --> 01:19:42,485 Davin: Po. 1764 01:19:42,485 --> 01:19:45,426 >> AUDIENCA: shmang Pra onload përcaktimin butonin e kërkimit ndryshueshme 1765 01:19:45,426 --> 01:19:49,930 nga vetëm duke thënë document.getElementByID kërko buton dot [e padëgjueshme]. 1766 01:19:49,930 --> 01:19:52,320 >> Davin: Definitely, por pastaj string tuaj vetëm merr të madh. 1767 01:19:52,320 --> 01:19:55,553 Pikërisht, kështu që kjo është vetëm për të bëjë më të lehtë për ju, vërtet. 1768 01:19:55,553 --> 01:19:56,053 Po? 1769 01:19:56,053 --> 01:19:57,886 >> AUDIENCA: Nga kemi krijuar window.onload? 1770 01:19:57,886 --> 01:19:58,951 Ose document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> Davin: Po, ka. 1772 01:20:00,590 --> 01:20:02,094 Po, atje është, i kontrolluar. 1773 01:20:02,094 --> 01:20:03,710 >> Gabe: Jo për ta që të intereson. 1774 01:20:03,710 --> 01:20:06,970 >> Davin: OK, kështu që unë jam duke shkuar për të të treguar ty anyway. 1775 01:20:06,970 --> 01:20:11,005 Pra, në thelb, vetëm në përgjithësi, kështu që window.onload pret deri DOM tuaj, të gjithë 1776 01:20:11,005 --> 01:20:12,180 HTML tuaj, ngarkesa. 1777 01:20:12,180 --> 01:20:13,513 Ajo pret deri imazhet ngarkesën tuaj. 1778 01:20:13,513 --> 01:20:14,930 Ajo pret deri ngarkesa të çdo gjë. 1779 01:20:14,930 --> 01:20:18,410 document.ready, ajo vetëm pret deri ngarkesa tuaja DOM. 1780 01:20:18,410 --> 01:20:22,190 Pasi HTML është e gjitha atje, dikur DOM juaj është atje, fillon running. 1781 01:20:22,190 --> 01:20:23,400 Kjo është vetëm ndryshim. 1782 01:20:23,400 --> 01:20:24,700 >> Gabe: mendje e shëndoshë Quick kontrolloni këtu. 1783 01:20:24,700 --> 01:20:29,060 Pra, kjo mund të shihet lloj si një linjë e kodit, e drejtë? 1784 01:20:29,060 --> 01:20:33,600 Sepse është e window.onload është e barabartë me një bandë e stuff. 1785 01:20:33,600 --> 01:20:39,030 Kur JavaScript lexon këtë, e vërtetë ose false, funksioni merr ekzekutuar. 1786 01:20:39,030 --> 01:20:40,020 False. 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 Çfarë ndodh këtu, ju jeni vetëm duke kaluar ky funksion si një funksione anonime 1789 01:20:44,470 --> 01:20:45,300 të window.onload. 1790 01:20:45,300 --> 01:20:48,480 Dhe atëherë kur është ajo shkon që në fakt të marrë të ekzekutuar? 1791 01:20:48,480 --> 01:20:49,600 Kur ngarkesa dritare. 1792 01:20:49,600 --> 01:20:50,420 Kjo është një ngjarje. 1793 01:20:50,420 --> 01:20:52,460 Pra, kjo është jus t gjë që ne jemi duke folur për më herët, e drejtë? 1794 01:20:52,460 --> 01:20:54,580 Pra, kur ngjarja ndodh, funksion ndodh. 1795 01:20:54,580 --> 01:20:55,746 E njëjta gjë me OnClick. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> Davin: OK, kështu që dikush e mori larg document.ready. 1798 01:21:03,130 --> 01:21:04,698 Por kjo do të jetë same-- saktë 1799 01:21:04,698 --> 01:21:06,864 AUDIENCA: shenjë dollar, që është një document.ready. 1800 01:21:06,864 --> 01:21:07,710 Kjo është një shkurtore. 1801 01:21:07,710 --> 01:21:08,501 >> Davin: Oh, kjo është? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 OK, kështu që kjo do të thotë document.ready, shkurtore. 1804 01:21:15,500 --> 01:21:19,660 Por kjo është e njëjtë si window.onload me përjashtim të asaj diference të vogël 1805 01:21:19,660 --> 01:21:20,680 Unë jua kisha thënë. 1806 01:21:20,680 --> 01:21:21,870 Dhe kjo është jQuery. 1807 01:21:21,870 --> 01:21:25,190 Pra, kjo është e njëjtë e saktë thing-- kjo është JavaScript. 1808 01:21:25,190 --> 01:21:29,500 Kjo është just-- disa njerëz mendojnë për atë si një peshë më të lehta, version të hijshme 1809 01:21:29,500 --> 01:21:32,370 se ka shumë funksionalitetit që ju ndoshta do të jetë duke përdorur. 1810 01:21:32,370 --> 01:21:34,500 Pra, kjo do të bëjë të njëjtën gjë e saktë. 1811 01:21:34,500 --> 01:21:37,110 >> Pra, gjëra për të lloj të nxjerr në pah. 1812 01:21:37,110 --> 01:21:40,364 Kështu në shembullin tjetër, ne kishte document.getElementByID, 1813 01:21:40,364 --> 01:21:42,280 kështu që kemi pasur këtë të gjatë varg që do të marrë 1814 01:21:42,280 --> 01:21:44,290 element nga çfarëdo ID ajo ka. 1815 01:21:44,290 --> 01:21:46,470 Kjo është zëvendësuar me këtë thirrje të drejtë këtu. 1816 01:21:46,470 --> 01:21:50,860 Kështu që ju shihni shenjën e dollarit, atëherë ju shihni kuotë, hashtag. 1817 01:21:50,860 --> 01:21:52,370 Hashtag është gjithmonë një përzgjedhës. 1818 01:21:52,370 --> 01:21:54,730 Ajo thotë, në rregull, kjo ka të bëjë me një ID. 1819 01:21:54,730 --> 01:21:56,120 Çfarë është përzgjedhës për një klasë? 1820 01:21:56,120 --> 01:21:57,190 >> AUDIENCA: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> Davin: Dot, e drejtë. 1822 01:21:57,960 --> 01:22:01,950 Nëse ju jeni vetëm do të zgjidhni një tag, çfarë është ajo? 1823 01:22:01,950 --> 01:22:03,310 Është vetëm tag, saktësisht. 1824 01:22:03,310 --> 01:22:05,560 Dhe ju mund të përdorni atë këtu, po ashtu. 1825 01:22:05,560 --> 01:22:08,560 >> Gabe: Dhe nga tag, ne do të thotë si div, për shembull, ose kokë. 1826 01:22:08,560 --> 01:22:11,500 >> Davin: Ose organ ose p ose diçka të tillë, vërtet. 1827 01:22:11,500 --> 01:22:14,390 Pra këtu, OK, në vend të thënë document.getElementByID, 1828 01:22:14,390 --> 01:22:16,500 kjo është vetëm saktë të njëjtën gjë. 1829 01:22:16,500 --> 01:22:17,990 Vetëm në jQuery, kjo është më e shkurtër. 1830 01:22:17,990 --> 01:22:19,860 Kështu që është e thjeshtë. 1831 01:22:19,860 --> 01:22:23,420 Kështu, pra, jo më shumë onClick, vetëm klikoni. 1832 01:22:23,420 --> 01:22:26,320 funksion jQuery, e quajmë këtë funksion. 1833 01:22:26,320 --> 01:22:27,580 Alert është e njëjtë e saktë. 1834 01:22:27,580 --> 01:22:29,452 Pra, kjo është pak më të vogla, apo pak bit 1835 01:22:29,452 --> 01:22:32,410 më të shkurtër, një popull pak bit-- mendoj kjo është pak më e lehtë për të shkruar jashtë, 1836 01:22:32,410 --> 01:22:34,600 pak më e lehtë për të kuptuar. 1837 01:22:34,600 --> 01:22:35,640 Por kjo është jQuery. 1838 01:22:35,640 --> 01:22:37,887 Shumë njerëz të marrë pak pak i hutuar dhe i shqetësuar 1839 01:22:37,887 --> 01:22:40,220 dhe ata të mendojnë, OK, jQuery është e ndryshme se sa JavaScript. 1840 01:22:40,220 --> 01:22:42,136 Më duhet të mbani mend këto dy gjëra të ndryshme. 1841 01:22:42,136 --> 01:22:42,740 Kjo nuk është. 1842 01:22:42,740 --> 01:22:45,315 Unë do të thotë, është e sintaksë e ndryshme. 1843 01:22:45,315 --> 01:22:46,970 Por jQuery është JavaScript. 1844 01:22:46,970 --> 01:22:50,050 Është vetëm një dukje të version më mirë se 1845 01:22:50,050 --> 01:22:51,967 mund të jetë më e lehtë për të kuptoj që njerëzit përdorin. 1846 01:22:51,967 --> 01:22:53,716 Gabe: Po, për të qenë i ndershëm, që shenjë dollar 1847 01:22:53,716 --> 01:22:57,240 që ju shihni në jQuery, kjo është vetëm emrin e një funksioni që jQuery përcakton. 1848 01:22:57,240 --> 01:22:58,614 Ajo nuk ka ndonjë gjë të veçantë. 1849 01:22:58,614 --> 01:23:03,140 A Është vetëm emri i funksionit, ashtu si ju mund të përcaktojë shenjën e dollarit. 1850 01:23:03,140 --> 01:23:05,670 >> Davin: Yeah, kështu që ka folur për këtë. 1851 01:23:05,670 --> 01:23:06,680 Disa gjëra të dobishme. 1852 01:23:06,680 --> 01:23:10,414 Unë isha duke kërkuar mbrapa në kuize të vjetra. 1853 01:23:10,414 --> 01:23:13,080 Në kuize çift të fundit, ata kanë kishte për të përdorur gjëra të tilla si kjo. 1854 01:23:13,080 --> 01:23:15,230 Pra document.ready, kështu sigurohuni që çdo gjë është 1855 01:23:15,230 --> 01:23:17,410 ngarkuar para jush fillojnë të bëjnë gjëra. 1856 01:23:17,410 --> 01:23:20,120 Zgjidh një ID, ose zgjidhni një klasë, ajo vetëm do të 1857 01:23:20,120 --> 01:23:24,020 të jetë quote dot disa klasit, kuotë fund. 1858 01:23:24,020 --> 01:23:26,580 Submit, kështu që nëse ju jeni paraqitur një formë dhe thirrjen e 1859 01:23:26,580 --> 01:23:28,830 ky funksion pas formën e dorëzon. 1860 01:23:28,830 --> 01:23:34,210 Vlera, kështu që le të thonë se unë kam një formë nënshtrim, si një emër përdoruesi, një email, 1861 01:23:34,210 --> 01:23:34,950 çfarëdo. 1862 01:23:34,950 --> 01:23:36,010 Unë kisha një kuti teksti. 1863 01:23:36,010 --> 01:23:37,670 Kështu që unë jam duke shtypur në atë kutinë e tekstit. 1864 01:23:37,670 --> 01:23:42,170 E pra, në qoftë se ju doni të merrni vlerën nga se kutinë e tekstit, ju përdorni dot val. 1865 01:23:42,170 --> 01:23:44,050 Dhe pastaj, poshtë këtu, dot HTML është i njëjtë 1866 01:23:44,050 --> 01:23:47,710 është si dokument dot getElementByID dot innerHTML. 1867 01:23:47,710 --> 01:23:50,890 Kështu që do të kthehen ju HTML nga ajo ID. 1868 01:23:50,890 --> 01:23:55,080 Këtu, ju vetëm përdorni disa ID ose çfarëdo dot HTML. 1869 01:23:55,080 --> 01:23:56,930 Që do të merrni nga HTML atë element. 1870 01:23:56,930 --> 01:24:00,130 Në qoftë se ju të kërkuar për të pastaj të ndryshojë atë HTML, ju mund të kalojë atë diçka. 1871 01:24:00,130 --> 01:24:05,600 Pra, ju do të jetë si dot HTML, dhe pastaj brenda, citate, HTML e re apo diçka. 1872 01:24:05,600 --> 01:24:07,490 >> Gabe: OK, kështu AJAX. 1873 01:24:07,490 --> 01:24:10,347 Unë me të vërtetë si për të kuptuar AJAX me të vërtetë mirë. 1874 01:24:10,347 --> 01:24:12,430 Kështu që unë dua të ju djema të kuptoj AJAX me të vërtetë mirë. 1875 01:24:12,430 --> 01:24:14,221 Sepse në qoftë se ju bëni, ju jeni shumë e shumë të shkuar 1876 01:24:14,221 --> 01:24:16,810 për të kuptuar çdo gjë që ka të bëjë me HTTP, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript sepse të gjitha vjen së bashku në AJAX. 1878 01:24:21,080 --> 01:24:25,130 AJAX nuk është një gjuhë. 1879 01:24:25,130 --> 01:24:27,000 AJAX është një teknikë. 1880 01:24:27,000 --> 01:24:31,690 Dhe ai përdor shumë mjete të ndryshme. 1881 01:24:31,690 --> 01:24:35,090 AJAX qëndron për asinkron XML JavaScript. 1882 01:24:35,090 --> 01:24:36,730 Pra metodë, gjuha, të dhënat. 1883 01:24:36,730 --> 01:24:40,610 >> Pra, gjuhë kryesore që ne përdorim në AJAX për të shkaktuar gjithçka 1884 01:24:40,610 --> 01:24:42,830 dhe për të trajtuar çdo gjë më vonë është JavaScript. 1885 01:24:42,830 --> 01:24:45,160 Kjo është arsyeja pse ajo lidhet shumë afër JavaScript. 1886 01:24:45,160 --> 01:24:49,810 Dhe pastaj asinkron është sepse ne nuk e bëjmë atë 1887 01:24:49,810 --> 01:24:51,980 të gjitha menjëherë kur ne jemi ngarkimit faqe. 1888 01:24:51,980 --> 01:24:57,190 Kjo është gjëja që ne mund bëjë gjëra lloj paralelisht. 1889 01:24:57,190 --> 01:24:59,725 Ideja kryesore prapa AJAX është që ju doni 1890 01:24:59,725 --> 01:25:02,170 kjo për të marrë disa informata specifike. 1891 01:25:02,170 --> 01:25:06,450 Për shembull, kur ju jeni të shtypni i ri Emri përdorues kur ju të regjistruar një emër përdoruesi, 1892 01:25:06,450 --> 01:25:08,520 Emri im përdorues është abc123. 1893 01:25:08,520 --> 01:25:11,671 Dhe pastaj, në fund të formë, ju duhet të klikoni Submit. 1894 01:25:11,671 --> 01:25:14,420 Dhe ajo kishte për të shkuar në server, dhe pastaj kontrolloni nëse në bazën e të dhënave, 1895 01:25:14,420 --> 01:25:15,594 abc123 është tashmë atje. 1896 01:25:15,594 --> 01:25:18,510 Dhe nëse kjo është tashmë atje, ai thotë se, Emri përdorues tashmë në bazën e të dhënave. 1897 01:25:18,510 --> 01:25:21,010 Dhe ata, ju duhet të plotësoni nga të gjithë formën përsëri. 1898 01:25:21,010 --> 01:25:23,110 Dhe kjo ishte e vërtetë, të vërtetë e keqe. 1899 01:25:23,110 --> 01:25:25,440 >> Dhe pastaj njerëzit thonë, OK, pse nuk mund ne vetëm 1900 01:25:25,440 --> 01:25:29,560 bëni një HTTP kërkesë të vogël për të vetëm shikoni për të parë nëse ky përdorues është në bazën e të dhënave 1901 01:25:29,560 --> 01:25:32,080 para përdorues kishte për paraqesë të gjithë formularin? 1902 01:25:32,080 --> 01:25:36,350 Kështu për shembull, kur përdorues përfundon shtypja abc123, 1903 01:25:36,350 --> 01:25:39,660 le të vetëm të shkojnë në server a pak bit dhe vetëm të marrë një e vërtetë apo e rreme 1904 01:25:39,660 --> 01:25:43,080 nga serveri për të parë nëse kjo është një emër i vlefshëm përdorues apo jo. 1905 01:25:43,080 --> 01:25:49,250 OK, kështu që kjo është një nga kryesore përdor nga AJAX në ditët e sotme ende. 1906 01:25:49,250 --> 01:25:52,130 >> Davin: Pra i vërtetë i shpejtë, në një thirrje Ajax në jQuery, 1907 01:25:52,130 --> 01:25:54,770 ju mund ditur se ju duan që ajo të jetë sinkron. 1908 01:25:54,770 --> 01:25:56,330 Ju nuk duhet ta bëjë këtë. 1909 01:25:56,330 --> 01:25:57,640 Por ju mund të bëni atë. 1910 01:25:57,640 --> 01:25:59,277 Dhe në qoftë se ju e bëri atë, çfarë do të ndodhë? 1911 01:25:59,277 --> 01:26:01,610 E pra, për shembull, kur ju jeni duke marrë lajme apo çfarëdo, 1912 01:26:01,610 --> 01:26:05,464 shfletuesi juaj është vetëm do të presë derisa që tërë thirrje është e plotë 1913 01:26:05,464 --> 01:26:08,130 në vend të lejuar të bëjë tjetër gjërat e drejtë pas ju click it. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> Gabe: Kjo nuk është duke kaluar më. 1916 01:26:17,115 --> 01:26:19,681 Oh my god. 1917 01:26:19,681 --> 01:26:20,180 Na vjen keq! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 Yup. 1920 01:26:23,601 --> 01:26:25,350 "Në të kaluarën, klient të nevojshme për kërkesë 1921 01:26:25,350 --> 01:26:26,840 tërë përmbajtja e një faqe interneti. " 1922 01:26:26,840 --> 01:26:28,210 Kjo është ajo që kam thënë. 1923 01:26:28,210 --> 01:26:30,070 Kjo na lejon të dërgoni GET shtesë ose POST 1924 01:26:30,070 --> 01:26:32,140 Kërkesat pa pasur nevojë për të rifreskoni shfletuesin tonë. 1925 01:26:32,140 --> 01:26:34,806 Pra, në fund të ditës, ne jemi në të vërtetë duke e bërë një HTTP kërkesa 1926 01:26:34,806 --> 01:26:35,740 këtu duke përdorur JavaScript. 1927 01:26:35,740 --> 01:26:39,700 Sepse para, ne kemi përdorur vetëm JavaScript-in për të ndryshuar HTML që tashmë kishte ardhur. 1928 01:26:39,700 --> 01:26:43,110 Dhe tani, ne mund të përdorni atë për të kryesh me serverat e internetit si. 1929 01:26:43,110 --> 01:26:46,140 Mënyrë kjo ndodh është që ne kemi klientin. 1930 01:26:46,140 --> 01:26:47,340 Davin është një klient. 1931 01:26:47,340 --> 01:26:50,797 Dhe ai i ka të gjitha të JavaScript-in running sepse HTML është memec. 1932 01:26:50,797 --> 01:26:51,630 JavaScript është e zgjuar. 1933 01:26:51,630 --> 01:26:54,690 Pra davin Davin ka zgjuar i tij pjesë dhe pjesa e tij memec. 1934 01:26:54,690 --> 01:26:57,590 Ai do të përdorin pjesën e tij të zgjuar tani. 1935 01:26:57,590 --> 01:27:00,860 Ai do të përdorin JavaScript të kërkesës, për shembull, 1936 01:27:00,860 --> 01:27:04,340 nëse abc123 është në bazës së të dhënave apo jo. 1937 01:27:04,340 --> 01:27:08,450 >> Pra Davin, ju lutem, ju vetëm më dërgoni një kërkesë HTTP. 1938 01:27:08,450 --> 01:27:09,197 Falemnderit. 1939 01:27:09,197 --> 01:27:10,530 Pra, ai vetëm i dërgoi një kërkesë HTTP. 1940 01:27:10,530 --> 01:27:11,270 Ju shikoni se? 1941 01:27:11,270 --> 01:27:14,700 Dhe kjo është vetëm në të njëjtën mënyrë që çdo kërkesë HTTP është dërguar. 1942 01:27:14,700 --> 01:27:16,830 Shfletues, Google Chrome apo diçka, është 1943 01:27:16,830 --> 01:27:19,570 do të shohim se Davin-së duke u përpjekur për të dërguar një kërkesë HTTP, 1944 01:27:19,570 --> 01:27:20,930 do të ndihmojë HM pak. 1945 01:27:20,930 --> 01:27:23,950 Dhe kjo do të shkoj të gjitha rrugën në server. 1946 01:27:23,950 --> 01:27:27,370 Tani, server do të ketë PHP këtu, apo ndonjë gjuhë tjetër. 1947 01:27:27,370 --> 01:27:29,990 Ashtu si në një HTTP kërkesë normale. 1948 01:27:29,990 --> 01:27:31,950 Kjo është shumë e shumë një HTTP kërkesë normal. 1949 01:27:31,950 --> 01:27:33,658 >> Dhe pastaj, server është duke shkuar për të thënë, OK, 1950 01:27:33,658 --> 01:27:37,270 Davin dëshiron mua për të kontrolluar nëse kjo abc123 është në bazën e të dhënave. 1951 01:27:37,270 --> 01:27:38,310 Shkoni flisni me modelin. 1952 01:27:38,310 --> 01:27:41,310 Modeli i thotë se ajo nuk është. abc123 është një emër i mirë përdorues. 1953 01:27:41,310 --> 01:27:47,940 Dhe pastaj, web server do të përdorin PHP që të merr një formë të dosjes. 1954 01:27:47,940 --> 01:27:52,280 Kjo mund të jetë fjalë për fjalë vetëm një fotografi që përmban "po" në të, ose "jo, 1955 01:27:52,280 --> 01:27:53,315 ose diçka të tillë. 1956 01:27:53,315 --> 01:27:54,190 Ajo mund të jetë çdo skedar. 1957 01:27:54,190 --> 01:27:57,080 >> Kjo mund të jetë si unë jam duke shkuar për të dërgoni Davin një foto të një rosë 1958 01:27:57,080 --> 01:28:01,200 nëse kjo është në bazën e të dhënave dhe dërgoni një foto të një lloj brejtësi 1959 01:28:01,200 --> 01:28:02,420 nëse kjo nuk është në bazën e të dhënave. 1960 01:28:02,420 --> 01:28:04,294 Kjo do të ishte lloj i memec, por ajo do të punojë. 1961 01:28:04,294 --> 01:28:07,030 OK, kështu që unë dërgoj një rosë të Davin. 1962 01:28:07,030 --> 01:28:08,150 Davin mori një rosë. 1963 01:28:08,150 --> 01:28:13,330 Dhe tani, që po shkon për të trajtuar rosë? 1964 01:28:13,330 --> 01:28:16,390 Pjesa zgjuar Davin-së përsëri, kështu JavaScript, e drejtë? 1965 01:28:16,390 --> 01:28:18,620 JavaScript dërguar kërkesë, dhe JavaScript 1966 01:28:18,620 --> 01:28:22,300 është duke shkuar për të marrë kërkesën dhe interpretojnë atë në disa forma. 1967 01:28:22,300 --> 01:28:26,630 >> Dhe në këtë kuptim, ajo do të them, OK, nëse rosë atëherë unë jam i mirë. 1968 01:28:26,630 --> 01:28:30,770 Nëse lloj brejtësi, atëherë unë jam duke shkuar për të thënë, jo, emri i përdoruesit tashmë 1969 01:28:30,770 --> 01:28:31,970 ekziston në bazën e të dhënave. 1970 01:28:31,970 --> 01:28:33,845 Por zakonisht, ju nuk jeni duke shkuar për të dërguar një rosë. 1971 01:28:33,845 --> 01:28:36,740 Ju jeni do të dërgojë diçka pak më të zgjuar. 1972 01:28:36,740 --> 01:28:40,320 Dhe ajo që ne përdorim është XML. 1973 01:28:40,320 --> 01:28:42,690 Dhe më shumë kohët e fundit, ne përdorim JSON. 1974 01:28:42,690 --> 01:28:45,629 JSON është vetëm JavaScript Simbol objekt, i cili 1975 01:28:45,629 --> 01:28:47,670 është në thelb ju merrni një Gjithë objekt JavaScript. 1976 01:28:47,670 --> 01:28:50,820 Dhe ju vënë atë në një skedar, ashtu si se objekt CS50 se ju djema e pa. 1977 01:28:50,820 --> 01:28:53,090 Ju vënë atë në një skedar, dhe ju dërgoni atë mbi të Davin. 1978 01:28:53,090 --> 01:28:55,850 >> Pra në këtë rast, unë do të të bëjë një objekt të aktivizoni Java 1979 01:28:55,850 --> 01:28:59,570 dhe vetëm thonë, përdoruesi ekziston, po. 1980 01:28:59,570 --> 01:29:01,630 Ose përdoruesi ekziston, nr. 1981 01:29:01,630 --> 01:29:02,810 Dhe dërgoni atë përsëri tek ai. 1982 01:29:02,810 --> 01:29:03,830 Dhe pse JSON? 1983 01:29:03,830 --> 01:29:07,330 Për shkak të personit i cili është marrja e kjo është 1984 01:29:07,330 --> 01:29:10,030 do të përdorin JavaScript për të trajtuar përgjigje. 1985 01:29:10,030 --> 01:29:14,970 Dhe JavaScript punon aq mirë sepse është quajtur JavaScript Object simbol. 1986 01:29:14,970 --> 01:29:15,470 E drejtë? 1987 01:29:15,470 --> 01:29:19,660 Pra, ai vetëm mund të telefononi një funksion dhe për të marrë ky objekt i bukur nga e përgjigjes. 1988 01:29:19,660 --> 01:29:22,890 Dhe pastaj, ai do të di nëse se përdoruesi është në bazën e të dhënave apo jo. 1989 01:29:22,890 --> 01:29:25,230 >> Kështu që ju shikoni, të gjithë atë që vjen së bashku në web server, 1990 01:29:25,230 --> 01:29:28,450 dhe pastaj nuk ka një HTTP të kërkesës dhe një HTTP përgjigje dhe çdo gjë. 1991 01:29:28,450 --> 01:29:30,600 Prandaj sigurohuni që ju djema kuptojnë këtë thirrje AJAX 1992 01:29:30,600 --> 01:29:37,260 sepse ajo ju ndihmon të kuptoni të gjithë i koncepteve ne jemi duke folur rreth. 1993 01:29:37,260 --> 01:29:40,260 >> Kështu që këtu është një shembull i AJAX me jQuery. 1994 01:29:40,260 --> 01:29:42,130 Dhe këtu, kemi të bëjmë me get JSON. 1995 01:29:42,130 --> 01:29:45,660 Pra, ne nuk jemi duke u përpjekur për të marrë një Imazhi i një mace këtu, ose një rosë. 1996 01:29:45,660 --> 01:29:48,110 Ne jemi duke u përpjekur për të marrë një fotografi JSON. 1997 01:29:48,110 --> 01:29:51,184 Dhe pastaj ne presim deri ajo është bërë, dot bërë. 1998 01:29:51,184 --> 01:29:52,850 Kjo do të thotë unë jam duke pritur për përgjigjen. 1999 01:29:52,850 --> 01:29:54,180 Ajo mund të marrë një kohë pak. 2000 01:29:54,180 --> 01:29:56,360 Pastaj, ju shihni një ngarkim të vogël. 2001 01:29:56,360 --> 01:29:59,340 Nëse ju doni të bëni atë në faqen tuaj te internetit. 2002 01:29:59,340 --> 01:30:01,440 Pra dot bërë, dhe pastaj çfarë ndodh kur është bërë? 2003 01:30:01,440 --> 01:30:04,040 Ju të kalojë në një anonim funksion, ashtu si kemi parë më parë. 2004 01:30:04,040 --> 01:30:07,800 Sepse bëhet është një ngjarje, vetëm si klikuar një mouse apo çfarëdo, 2005 01:30:07,800 --> 01:30:08,710 për jQuery. 2006 01:30:08,710 --> 01:30:13,710 Pra, ju të kalojë në këtë funksion me të dhëna, text, statusin, dhe jqXHR. 2007 01:30:13,710 --> 01:30:15,790 Dhe në thelb, kjo është vetëm disa variabla 2008 01:30:15,790 --> 01:30:22,160 që ju mund të përdorni më vonë që të ketë Statusi i HTTP kërkesës, 2009 01:30:22,160 --> 01:30:24,470 të dhëna që ajo që po ndodh për të dërguar përsëri tek ju. 2010 01:30:24,470 --> 01:30:28,740 Pra, atëherë ju mund të më vonë në interpretojë dhe të bëjë diçka kuptimplotë me të. 2011 01:30:28,740 --> 01:30:30,240 Dhe nëse kjo dështon, kur mund të dështojnë? 2012 01:30:30,240 --> 01:30:33,780 E pra, kur HTTP kërkesë jep ju një 500 ose diçka të tillë. 2013 01:30:33,780 --> 01:30:37,420 Pastaj, ajo do të ju them Statusi, çfarë lloj i dështimit që ishte, 2014 01:30:37,420 --> 01:30:38,420 dhe të gjitha llojet e gjërave. 2015 01:30:38,420 --> 01:30:40,630 Ju duhet të bëni të sigurtë për të trajtuar të dyja rastet, 2016 01:30:40,630 --> 01:30:42,770 ndryshe program shkon i çmendur. 2017 01:30:42,770 --> 01:30:45,820 >> Davin: Pra, vërtet, kjo është pikërisht çfarë ke parë më i fundit p-vendosur tuaj. 2018 01:30:45,820 --> 01:30:49,720 Thirrja aktual AJAX është në JSON get. 2019 01:30:49,720 --> 01:30:50,587 Kjo është thirrje. 2020 01:30:50,587 --> 01:30:52,920 Dhe pastaj, dot bëhet është si ajo kontrollon nëse është e suksesshme. 2021 01:30:52,920 --> 01:30:55,620 Nëse është i suksesshëm, ju doni për të bërë diçka me të dhënat. 2022 01:30:55,620 --> 01:30:59,290 Ju merrni mbrapa nga se Të dhënat JSON kërkesë. 2023 01:30:59,290 --> 01:31:00,600 Kjo është ajo që ju të merrni përsëri. 2024 01:31:00,600 --> 01:31:04,470 Pra, nëse ju kujtohet nga p-vendosur tuaj, një shumë prej jush ishin si të të dhënave kllapa i 2025 01:31:04,470 --> 01:31:06,302 apo çfarëdo, dot lidhje ose titull. 2026 01:31:06,302 --> 01:31:08,260 Çfarëdo që të vjen përsëri nga ajo JSON, çfarëdo 2027 01:31:08,260 --> 01:31:11,020 fushat janë në atë objekt JSON, kjo është ajo që ju jeni duke marrë mbrapsht. 2028 01:31:11,020 --> 01:31:12,394 Data është ajo që ju jeni duke u kthyer. 2029 01:31:12,394 --> 01:31:15,510 Statusi Tekst, vetëm diçka që lejon ju e dini se çfarë ka ndodhur. 2030 01:31:15,510 --> 01:31:20,570 Dhe pastaj, jqXHR, kjo është vetëm jQuery XML HTTP kërkesë. 2031 01:31:20,570 --> 01:31:21,990 Kjo është vetëm si një objekt. 2032 01:31:21,990 --> 01:31:23,932 Dhe pastaj dështojnë, ashtu si Gabe tha. 2033 01:31:23,932 --> 01:31:27,140 Gabe: Në shembullin tonë të vogël e abc123 vetëm për të parë nëse kjo është në bazën e të dhënave 2034 01:31:27,140 --> 01:31:32,260 ose jo, të dhënat do të jetë diçka të ju do të bëjë, në qoftë se të dhënat dot emër përdoruesi ekziston, 2035 01:31:32,260 --> 01:31:37,720 cila është ajo që PHP juaj krijuara për ju, në qoftë se emri i të dhënave dot përdoruesi ekziston, atëherë 2036 01:31:37,720 --> 01:31:40,880 Unë jam duke shkuar për të njoftuar, përdorues Emri tashmë ekziston. 2037 01:31:40,880 --> 01:31:44,300 Tjetër, unë jam vetëm duke shkuar për të le të përdorues të vazhdojë të plotësojë formularin. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK, të sigurisë, cool. 2040 01:31:50,820 --> 01:31:52,060 >> Davin: Duan mua për të? 2041 01:31:52,060 --> 01:31:54,500 >> Gabe: Më pëlqen këtë. 2042 01:31:54,500 --> 01:31:57,680 Pra, diçka që duket e njohur. 2043 01:31:57,680 --> 01:31:59,750 Ne jemi bërë gati. 2044 01:31:59,750 --> 01:32:02,670 Pra, kjo është vetëm shembulli ju djema e pa në klasë. 2045 01:32:02,670 --> 01:32:04,860 Ju keni qenë duke përdorur argv1 këtu. 2046 01:32:04,860 --> 01:32:06,460 Kjo është si një argument command line. 2047 01:32:06,460 --> 01:32:09,270 Dhe ne jemi duke MEM kopjimi se në një tampon të madhësisë 12. 2048 01:32:09,270 --> 01:32:12,560 Çfarë është problemi këtu? 2049 01:32:12,560 --> 01:32:13,660 Buffer del nga shtrati! 2050 01:32:13,660 --> 01:32:15,400 Sepse ne kemi një tampon të madhësisë 12. 2051 01:32:15,400 --> 01:32:18,400 argv1 mund të ketë një madhësi prej dy miliardë. 2052 01:32:18,400 --> 01:32:19,960 Ne nuk bëjmë asnjë kontrollin e kufirit. 2053 01:32:19,960 --> 01:32:24,970 Pra, ne mund të kopjoni një shumë të kujtesës. 2054 01:32:24,970 --> 01:32:28,630 Dhe ne do të jetë veçanërisht e keq për këtë. 2055 01:32:28,630 --> 01:32:32,600 Çfarë mund të bëjmë që është e shumë, shumë do të thotë në këtë rast? 2056 01:32:32,600 --> 01:32:33,278 Po? 2057 01:32:33,278 --> 01:32:36,528 AUDIENCA: Një pjesë e dy miliardë gjërave përmban kodin ekzekutueshme që kthen 2058 01:32:36,528 --> 01:32:38,127 [E padëgjueshme]. 2059 01:32:38,127 --> 01:32:38,710 Gabe: Pikërisht. 2060 01:32:38,710 --> 01:32:41,110 Pra, kjo është lloj i gjë që njerëzit përdorin 2061 01:32:41,110 --> 01:32:43,344 të jailbreak një iPhone, për shembull. 2062 01:32:43,344 --> 01:32:44,260 Pra atë lloj gjë. 2063 01:32:44,260 --> 01:32:48,610 Sepse ju mund të bëni vetëm pajisjen ekzekutojë ndonjë kod që ju pëlqen. 2064 01:32:48,610 --> 01:32:50,247 Fix, kështu fix është e lehtë. 2065 01:32:50,247 --> 01:32:51,330 Vetëm shikoni për caqeve. 2066 01:32:51,330 --> 01:32:53,455 Ju kontrolloni për null sepse ne gjithmonë kontrolloni for null 2067 01:32:53,455 --> 01:32:54,940 kur ne jemi që kanë të bëjnë me tela. 2068 01:32:54,940 --> 01:32:57,840 Dhe pastaj, ju të marrë gjatësia string para. 2069 01:32:57,840 --> 01:33:00,150 Dhe në qoftë se të vargut Gjatësia është një varg i vlefshëm 2070 01:33:00,150 --> 01:33:03,700 gjatësi, e cila është brenda 0 dhe 12, atëherë ne jemi të mirë. 2071 01:33:03,700 --> 01:33:07,144 >> Davin: Nëse ju nuk e shikoni për null, i vërtetë i shpejtë, çfarë do të ndodhë? 2072 01:33:07,144 --> 01:33:07,810 Ajo do të Seg faj. 2073 01:33:07,810 --> 01:33:10,850 Pse do të Seg faj? 2074 01:33:10,850 --> 01:33:12,510 Për shkak se ju jeni duke bërë thirrje strlen mbi null. 2075 01:33:12,510 --> 01:33:13,010 Gabe: Po. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 Vërtetë apo e rreme, duke përdorur një Fjalëkalimi është një ide e mirë. 2078 01:33:19,630 --> 01:33:20,430 >> AUDIENCA: False. 2079 01:33:20,430 --> 01:33:21,150 >> Gabe: False. 2080 01:33:21,150 --> 01:33:23,870 Përdor shumë fjalëkalime, dhe, ato të mëdha të gjata. 2081 01:33:23,870 --> 01:33:26,050 Icons dry të garantuar sigurinë. 2082 01:33:26,050 --> 01:33:27,080 >> AUDIENCA: False. 2083 01:33:27,080 --> 01:33:27,749 >> Gabe: False. 2084 01:33:27,749 --> 01:33:28,790 Kjo nuk do të thotë asgjë. 2085 01:33:28,790 --> 01:33:30,480 Është vetëm një ikonë. 2086 01:33:30,480 --> 01:33:32,824 SSL mbron kundër një njeri në sulmin e mesme. 2087 01:33:32,824 --> 01:33:33,490 AUDIENCA: False. 2088 01:33:33,490 --> 01:33:34,110 Gabe: False. 2089 01:33:34,110 --> 01:33:35,355 OK, kështu që të gjithë ata që janë të rreme. 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 E bukur. 2092 01:33:39,490 --> 01:33:40,220 [E padëgjueshme] 2093 01:33:40,220 --> 01:33:42,500 Dua të flas për këtë? 2094 01:33:42,500 --> 01:33:43,259 Rradha juaj. 2095 01:33:43,259 --> 01:33:45,050 Davin: Llojet e sulmeve, njeri në mes. 2096 01:33:45,050 --> 01:33:47,134 Çfarë është një njeri në sulmin e mesme? 2097 01:33:47,134 --> 01:33:48,050 Audienca: [padëgjueshme]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 Davin: Nëse ju dërgoni një HTTP kërkesë, ata mund të bëjnë këtë, apo jo? 2100 01:33:54,020 --> 01:33:57,890 Por në qoftë se ju jeni dërguar HTTPS, ata ndoshta nuk do të jetë në gjendje të bëjë këtë. 2101 01:33:57,890 --> 01:33:59,952 Ka shumë pika të së bashku lidhjen tuaj. 2102 01:33:59,952 --> 01:34:00,660 Ju keni routers. 2103 01:34:00,660 --> 01:34:01,746 Ju keni serverat DNS. 2104 01:34:01,746 --> 01:34:04,120 Nëse dikush është në gjendje të fizikisht shikoni se çfarë ju jeni dërguar, 2105 01:34:04,120 --> 01:34:06,140 kështu që dikush është në gjendje të në të vërtetë të marrë në mes jush, 2106 01:34:06,140 --> 01:34:08,840 klienti, dhe server, dhe është në gjendje për të parë se çfarë ju jeni dërguar, 2107 01:34:08,840 --> 01:34:10,298 ky është një njeri në sulmin e mesme. 2108 01:34:10,298 --> 01:34:14,287 Pra, për të parë se çfarë ju jeni duke u përpjekur për të marrë nga server, apo është në gjendje të see-- më keq, 2109 01:34:14,287 --> 01:34:16,620 ju mund të jetë në gjendje për të parë biskota apo diçka të tillë. 2110 01:34:16,620 --> 01:34:19,290 >> Kështu për shembull, në qoftë se ju nuk jeni duke përdorur SSL, ai 2111 01:34:19,290 --> 01:34:21,900 mund të jetë në gjendje për të parë biskota ID tuaj sesion. 2112 01:34:21,900 --> 01:34:25,460 Dhe kjo quhet sesion rrëmbimi sepse ai e sheh cookies tuaj të identitetit, 2113 01:34:25,460 --> 01:34:28,317 dhe atëherë ai është në gjendje të shkojnë në atë website dhe pretendon të jetë ju. 2114 01:34:28,317 --> 01:34:31,150 Sepse ashtu si në PHP, mbani mend kur ne regjistrohet në, çfarë bëjmë ne? 2115 01:34:31,150 --> 01:34:33,340 Ne kemi vendosur ID e sesionit të barabartë me ID. 2116 01:34:33,340 --> 01:34:34,810 Kështu që ju identifikon. 2117 01:34:34,810 --> 01:34:38,300 Kjo është arsyeja pse ju mund të shihni portofolin tuaj dhe portofoli jo gjithkush tjetër. 2118 01:34:38,300 --> 01:34:42,320 >> E pra, nëse unë jam në gjendje për të marrë atë cookie, atëherë unë mund të hyni mbi atë faqe. 2119 01:34:42,320 --> 01:34:45,380 Dhe pastaj, unë vetëm mund të shihni stuff tuaj dhe të fillojnë blerjen dhe shitjen e stuff. 2120 01:34:45,380 --> 01:34:46,800 Pra, kjo është seancë rrëmbimi. 2121 01:34:46,800 --> 01:34:50,810 Por ju nuk duhet të jetë në gjendje to-- kështu ju mund të përdorin njeriun në sulmin e mesme 2122 01:34:50,810 --> 01:34:52,290 edhe në qoftë se ata janë duke përdorur SSL. 2123 01:34:52,290 --> 01:34:53,520 Por ju nuk duhet të jetë në gjendje për të. 2124 01:34:53,520 --> 01:34:56,580 Nëse ata janë duke përdorur SSL, ju nuk mund sesion rrëmbej. 2125 01:34:56,580 --> 01:34:58,927 Përse? 2126 01:34:58,927 --> 01:35:01,135 Sepse kjo është e gjitha e koduar, e drejtë? nëse është e koduar, 2127 01:35:01,135 --> 01:35:03,509 dhe unë jam ende një burrë në e mesme, unë ende të marrë të dhënat tuaja. 2128 01:35:03,509 --> 01:35:04,279 Kjo është në rregull. 2129 01:35:04,279 --> 01:35:05,070 Por është e koduar. 2130 01:35:05,070 --> 01:35:07,750 Kështu që unë nuk mund të vërtetë e përdorin atë. 2131 01:35:07,750 --> 01:35:09,840 Pra, kjo është dy. 2132 01:35:09,840 --> 01:35:11,544 >> Real i shpejtë, kërkesa faqe kryq falsifikim. 2133 01:35:11,544 --> 01:35:13,960 Kjo është vetëm nëse ka një lidhje dhe se lidhja bën diçka 2134 01:35:13,960 --> 01:35:14,890 se ju nuk mendoj se ajo duhet të bëjë. 2135 01:35:14,890 --> 01:35:18,150 Kështu për shembull, në qoftë se lidhja ishte shkuar për të blerë aksione ose shitur aksione, 2136 01:35:18,150 --> 01:35:19,360 dhe ju nuk e dini se. 2137 01:35:19,360 --> 01:35:22,040 Ju klikuar mbi link, i dërgoi një kërkesë, bleu 2138 01:35:22,040 --> 01:35:24,240 ose shitur diçka që ju nuk do të thotë për të bërë. 2139 01:35:24,240 --> 01:35:25,120 Kjo është se. 2140 01:35:25,120 --> 01:35:30,720 >> Site scripting Kryqi, kështu që këtu, ju jeni duke kaluar në nëpërmjet q ndryshueshme, 2141 01:35:30,720 --> 01:35:33,510 në vend të kalimit në një lloj e vlerës, ndoshta q është si një emër. 2142 01:35:33,510 --> 01:35:36,560 Pra, në vend të kalimit të barabartëve q Davin ose diçka të tillë, 2143 01:35:36,560 --> 01:35:38,740 në qoftë se ju nuk e përdorni HTML chars të veçanta, në qoftë se ju 2144 01:35:38,740 --> 01:35:43,100 nuk e shpëtojnë këtë për t'u siguruar se është OK, atëherë unë do të mund të kalojë në vend të kësaj, 2145 01:35:43,100 --> 01:35:46,910 le të themi në këtu unë jam duke thënë print ose diçka të tillë, 2146 01:35:46,910 --> 01:35:51,070 atëherë unë do të mund të kalojë në këtu një thirrje script. 2147 01:35:51,070 --> 01:35:53,140 >> Kështu, pra, në vend të vetëm marrjen e një ndryshore, 2148 01:35:53,140 --> 01:35:54,960 Unë atëherë do të ekzekutojë këtë thirrje script. 2149 01:35:54,960 --> 01:35:57,065 Pra, brenda këtij shkrimit telefononi, çfarë do të bëni? 2150 01:35:57,065 --> 01:36:00,190 Dokumenti dot vend, që do të të ndryshojë vendndodhjen e dokumentit. 2151 01:36:00,190 --> 01:36:02,290 Kështu që unë jam duke shkuar për të përcjellim për diku tjetër. 2152 01:36:02,290 --> 01:36:08,170 Është quajtur djalë i keq në ky shembull, shumë i mirë. 2153 01:36:08,170 --> 01:36:10,536 Nuk mund të mendoj të fjalës. 2154 01:36:10,536 --> 01:36:12,410 Dhe pastaj, çfarë është edhe më keq është se unë jam duke shkuar 2155 01:36:12,410 --> 01:36:16,832 për të vendosur pastaj cookie, e cila është disa variabël unë kam në këtë website. 2156 01:36:16,832 --> 01:36:19,040 Unë jam duke shkuar për të vendosur atë të barabartë në dokument dot cookie. 2157 01:36:19,040 --> 01:36:20,660 Prandaj, unë jam duke shkuar për të vjedhur cookie tuaj. 2158 01:36:20,660 --> 01:36:22,951 Dhe unë jam duke shkuar për të përcjellim disa informata në një faqe interneti 2159 01:36:22,951 --> 01:36:25,120 që ju nuk duhet të qasjes. 2160 01:36:25,120 --> 01:36:29,250 Dhe kjo ndodh sepse të gjithë ju jeni nuk ikin atë që kam parë. 2161 01:36:29,250 --> 01:36:29,910 Vërtet? 2162 01:36:29,910 --> 01:36:32,160 >> Audienca: Pra, vetëm për të bëjnë që qartë, është e 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com se është e ndjeshme për këtë. 2164 01:36:37,550 --> 01:36:39,300 Kështu që lidhja mund të shfaqen në çdo faqe të dhënë. 2165 01:36:39,300 --> 01:36:42,200 Dikush klikimeve në të, shkon në vulnerable.com. 2166 01:36:42,200 --> 01:36:43,700 Ju keni një cookie të vulnerable.com. 2167 01:36:43,700 --> 01:36:46,670 Le të thonë se Facebook është të pambrojtur, kështu facebook.com. 2168 01:36:46,670 --> 01:36:48,310 Ju keni Facebook cookie tuaj. 2169 01:36:48,310 --> 01:36:50,925 Çfarë kjo është bërë, ju jeni shkuar në facebook.com, 2170 01:36:50,925 --> 01:36:53,990 ajo është menjëherë Përcjellin ju të badguy.com, 2171 01:36:53,990 --> 01:36:57,182 por duke përfshirë informacionin tuaj cookie. 2172 01:36:57,182 --> 01:36:59,310 Pra, kjo është një përcjellim të shpejtë, por Facebook cookie tuaj 2173 01:36:59,310 --> 01:37:02,572 është e përfshirë me atë ridrejtimi, dhe kjo është se si ata [e padëgjueshme]. 2174 01:37:02,572 --> 01:37:04,280 Gabe: Yeah, nuk ka disa gjëra shumë mesatare 2175 01:37:04,280 --> 01:37:06,070 që njerëzit mund të bëni në qoftë se ka kjo. 2176 01:37:06,070 --> 01:37:09,190 Për shembull, në qoftë se lejohet Facebook të gjithë të ndryshojë emrin tuaj të përdoruesit, 2177 01:37:09,190 --> 01:37:11,680 dhe ata nuk kanë bërë ndonjë kontrolle mendje e shëndoshë, kështu që ju 2178 01:37:11,680 --> 01:37:16,810 mund të futur një gjë JavaScript që ndryshon imazhin tuaj në një lloj brejtësi. 2179 01:37:16,810 --> 01:37:22,590 Dhe që fut të njëjtin JavaScript-in në të gjithë që pikëpamjet faqen tuaj. 2180 01:37:22,590 --> 01:37:26,400 Pra, gjithkush që sheh faqen tuaj ka të njëjtën gjë në emër të përdoruesit. 2181 01:37:26,400 --> 01:37:30,104 Dhe për shkak se kjo është një virus, ajo përhapet në mënyrë eksponenciale. 2182 01:37:30,104 --> 01:37:32,270 Davin: Ne do të kaloni fundit një, dhe pastaj ne jemi duke bërë. 2183 01:37:32,270 --> 01:37:34,120 Pra, kjo është vetëm një tjetër shembull. 2184 01:37:34,120 --> 01:37:36,120 Pra, kjo është se ata nuk janë të ikin tryezën e tyre SQL. 2185 01:37:36,120 --> 01:37:37,090 Kështu që ju mund të heq dorë. 2186 01:37:37,090 --> 01:37:38,805 Pra, ju doni të shpëtuar gjërat. 2187 01:37:38,805 --> 01:37:44,010 Kjo ishte shembulli i mëparshëm me scripting kryq faqes. 2188 01:37:44,010 --> 01:37:45,430 Na vjen keq ne u zhvillua një pak vonë. 2189 01:37:45,430 --> 01:37:46,870 Nesër, më vjen keq! 2190 01:37:46,870 --> 01:37:48,560 Nesër, ne kemi orarin e punës. 2191 01:37:48,560 --> 01:37:50,870 Kështu orë zyrës në Cabbot 8:00-11:00. 2192 01:37:50,870 --> 01:37:55,240 Orët zyra janë në mënyrë rigoroze për pyetje quiz. 2193 01:37:55,240 --> 01:37:56,587