1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [Musika nagpe-play] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 Hannah: Hi, sa lahat. 5 00:00:12,700 --> 00:00:15,866 Salamat guys kaya magkano para sa darating out sa karima-rimarim na panahon para sa pagsusulit isa 6 00:00:15,866 --> 00:00:16,910 suriin ang session. 7 00:00:16,910 --> 00:00:20,020 Bilang ka guys alam, quiz isa ay ito Miyerkules. 8 00:00:20,020 --> 00:00:22,209 Kaya kami ay pagpunta sa pumunta sa pamamagitan ng grupo ng mga paksa. 9 00:00:22,209 --> 00:00:24,000 DAVIN: Uy, ang maaari kong sabihin isang bagay na tunay mabilis? 10 00:00:24,000 --> 00:00:25,215 Hannah: Oo, Davin ng pagpunta upang sabihin ng isang bagay na tunay na mabilis. 11 00:00:25,215 --> 00:00:25,780 DAVIN: Paumanhin. 12 00:00:25,780 --> 00:00:29,490 Totoong mabilis, kung mayroon kang mga katanungan tungkol sa pagsusulit, maaari kang pumunta sa online. 13 00:00:29,490 --> 00:00:32,420 Pumunta sa 2,014 pagsusulit isa, tungkol sa pagsusulit. 14 00:00:32,420 --> 00:00:34,680 Ang nakuha ko logistik tungkol sa kung saan pupunta, kapag pumunta. 15 00:00:34,680 --> 00:00:38,100 Kung sabay-sabay na naka-enroll, hindi namin Magiging makeup quiz sa 05:30. 16 00:00:38,100 --> 00:00:40,350 O kung nagpadala ka sa akin ng isang isyu, mayroon kang ilang iba pang mga isyu. 17 00:00:40,350 --> 00:00:42,640 Ngunit 05:30 ay ang make-up oras sa Miyerkules. 18 00:00:42,640 --> 00:00:44,540 Ngunit kung mayroon kang mga tanong, pangkalahatang tanong, 19 00:00:44,540 --> 00:00:45,748 online na mayroon ng lahat ng logistik. 20 00:00:45,748 --> 00:00:47,690 Kaya suriin muna doon. 21 00:00:47,690 --> 00:00:49,070 >> Hannah: Kahanga-hanga. 22 00:00:49,070 --> 00:00:53,030 Kaya narito ang malaking listahan ng mga paksa na kami ay pagpunta sa pumunta hanggang ngayon. 23 00:00:53,030 --> 00:00:57,390 Pupunta ako upang masakop ang lahat ng mga C mga bagay-bagay, na kung saan ay ang unang haligi. 24 00:00:57,390 --> 00:01:00,710 Kaya ang mga bagay C na namin sakop pagkatapos ng pagsusulit zero. 25 00:01:00,710 --> 00:01:05,459 Nagsisimula sa isang naka-link na listahan, na kabilang ang mga payo. 26 00:01:05,459 --> 00:01:07,668 >> Ang lahat ng mga karapatan, kaya nakita namin na ito sa huling sesyon ng pagsusuri, 27 00:01:07,668 --> 00:01:10,000 kaya ako pupunta upang pumunta sa pamamagitan ng ito ay isang maliit na bit mas mabilis. 28 00:01:10,000 --> 00:01:13,500 Taasan lamang ang iyong mga kamay kung ako gusto mong pabagalin o address ng isang bagay na higit pa. 29 00:01:13,500 --> 00:01:17,150 Ngunit kami gumamit ng naka-link na mga listahan dahil Nagsimula kami sa C sa array. 30 00:01:17,150 --> 00:01:20,920 At array ay mahusay, ngunit ang problema ay mayroon sila ng isang nakapirming laki. 31 00:01:20,920 --> 00:01:24,925 Naka-link na mga listahan-daan sa amin upang lumikha ng pabagu-bagong sized na mga istraktura ng data. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> At mayroon kaming mga pangunahing pagpapatakbo, ipasok, tanggalin, at maghanap. 34 00:01:32,320 --> 00:01:36,780 At maaari naming gawin insert sa pinakamasama kaso pare-pareho ang oras 35 00:01:36,780 --> 00:01:39,140 kung ilalagay lang namin ito sa pinakadulo simula. 36 00:01:39,140 --> 00:01:45,220 Tanggalin at maghanap, pinakamalala kaso malaki oh ng n oras. 37 00:01:45,220 --> 00:01:47,140 Kaya muli, upang i-flip lamang sa pamamagitan ng mga larawan, 38 00:01:47,140 --> 00:01:50,860 Alam ko nakita natin ang mga huling oras, ngunit namin Gusto upang masubaybayan ang aming listahan na naka-link 39 00:01:50,860 --> 00:01:53,440 sa pamamagitan ng pagpapanatili ng track ng ulo ng aming mga listahan na naka-link. 40 00:01:53,440 --> 00:01:55,580 Dahil alam namin na ang bawat isa sa aming mga node 41 00:01:55,580 --> 00:01:58,610 ay lamang ng pagpunta upang tumuro sa susunod na node sa aming listahan na naka-link. 42 00:01:58,610 --> 00:02:00,460 >> Kaya na kung paano namin subaybayan. 43 00:02:00,460 --> 00:02:02,910 Kahit na ang mga ito ay hindi tuloy-tuloy na piraso ng memorya, 44 00:02:02,910 --> 00:02:07,410 maaari naming mahanap ang mga ito sa pamamagitan lamang pagsunod sa iba't ibang mga arrow. 45 00:02:07,410 --> 00:02:09,800 Heto ang aming istraktura para sa naka-link na listahan na node. 46 00:02:09,800 --> 00:02:11,440 Nakita namin ang huling oras. 47 00:02:11,440 --> 00:02:13,080 Mayroon kaming aming struct node. 48 00:02:13,080 --> 00:02:14,340 At mayroon itong dalawang katangian. 49 00:02:14,340 --> 00:02:17,020 Numero ng isa, ang aktwal na halaga na nais naming mag-imbak. 50 00:02:17,020 --> 00:02:18,290 Sa kasong ito, ito ay isang integer. 51 00:02:18,290 --> 00:02:21,100 Ito ay maaaring maging isang string, ng dati maging isang pansamantalang trabaho, kahit anong gusto mo. 52 00:02:21,100 --> 00:02:24,710 At pagkatapos, mayroon kaming upang masubaybayan sa susunod na node sa aming listahan na naka-link. 53 00:02:24,710 --> 00:02:29,797 Kaya na magiging isang pointer sa susunod na node. 54 00:02:29,797 --> 00:02:31,880 Kung ikaw ay lamang ng paggawa paghahanap, tulad ng sinabi ko bago, 55 00:02:31,880 --> 00:02:34,900 kailangan mong i-sundin ang mga arrow pababa. 56 00:02:34,900 --> 00:02:40,720 Insertion, gusto mong subaybayan ng kung saan ang natitira sa iyong listahan ay. 57 00:02:40,720 --> 00:02:44,150 At gusto mong i-redirect ang ulo upang ituro sa mga bagong elemento, na 58 00:02:44,150 --> 00:02:46,640 sa kasong ito ay isa, at pagkatapos ay ituro ang isang 59 00:02:46,640 --> 00:02:49,480 upang natitira sa naka-link na listahan. 60 00:02:49,480 --> 00:02:52,996 Kaya muli, alam ko na ito ay isang maliit na bit ng isang umuulit na mula sa pagsusulit zero. 61 00:02:52,996 --> 00:02:55,370 Kaya mayroon kaming upang maging maingat tungkol sa pagkakasunud-sunod kung namin 62 00:02:55,370 --> 00:03:00,390 gawin ang mga pointings kaya hindi namin mawala sa pagsubaybay ng likod ng listahan. 63 00:03:00,390 --> 00:03:04,122 OK, ang anumang mga katanungan na may isa-isa lang na naka-link listahan? 64 00:03:04,122 --> 00:03:06,060 Galing, OK, cool. 65 00:03:06,060 --> 00:03:09,410 >> Kaya ngayon, kami ay pagpunta sa pumunta sa isang bagay bahagyang lang mas komplikado, 66 00:03:09,410 --> 00:03:10,920 doble naka-link na mga listahan. 67 00:03:10,920 --> 00:03:13,680 Kaya bilang karagdagan sa pagpapanatiling track ng susunod na node, 68 00:03:13,680 --> 00:03:16,220 Gusto din namin na subaybayan ng nakaraang node. 69 00:03:16,220 --> 00:03:19,580 At ito ay nagbibigay-daan sa amin upang, kung hindi kami sa ilang mga punto sa aming listahan na naka-link, 70 00:03:19,580 --> 00:03:23,110 pumunta hindi lamang pasulong, ngunit umulit din pabalik. 71 00:03:23,110 --> 00:03:25,220 Dahil bilang nakita natin sa isang walang katulong na naka-link listahan, 72 00:03:25,220 --> 00:03:27,980 kung namin ang ilang mga node, at biglang-bigla, nagpasya kaming, 73 00:03:27,980 --> 00:03:30,160 talaga, gusto kong pumunta sa ang node bago mismo sa akin, 74 00:03:30,160 --> 00:03:32,034 kailangan mong i-pumunta ang lahat ang paraan pabalik sa ulo 75 00:03:32,034 --> 00:03:35,710 at umulit sa pamamagitan ng hanggang sa nakita mo ang node na iyong hinahanap. 76 00:03:35,710 --> 00:03:37,680 >> Kaya ito ay gumagawa ng mga bagay bahagyang mas madali bilang hindi namin 77 00:03:37,680 --> 00:03:39,670 sinusubukan mong umulit sa pamamagitan ng aming listahan na naka-link. 78 00:03:39,670 --> 00:03:47,870 Ngunit ito ay nangangailangan sa amin upang masubaybayan ang isang higit pa pointer, kaya isa pang node bituin. 79 00:03:47,870 --> 00:03:50,830 Ang lahat ng mga karapatan, kaya dito narito ang masayang bahagi. 80 00:03:50,830 --> 00:03:55,600 Kami ay pagpunta sa pagsasanay sa pagpapatupad alisin para doble naka-link na listahan. 81 00:03:55,600 --> 00:03:58,660 Kaya ito ay isang bagay na talagang patas na laro para sa pagsusulit. 82 00:03:58,660 --> 00:04:00,750 Ito ay nagpakita up sa mga nakaraang pagsusulit. 83 00:04:00,750 --> 00:04:04,220 Kaya nga dapat ihanda sa code nang kaunti sa C. 84 00:04:04,220 --> 00:04:07,900 Huwag kalimutan na sa lahat ang nakatutuwang PHP at JavaScript, 85 00:04:07,900 --> 00:04:10,560 pa rin mayroon kaming matandaan gawin C. Kaya mag-ayos sa na 86 00:04:10,560 --> 00:04:12,146 kung pakiramdam mo ay kalawangin. 87 00:04:12,146 --> 00:04:14,580 >> Ang lahat ng mga karapatan, sabihin makita kung maaari naming gawin ito. 88 00:04:14,580 --> 00:04:16,312 OK, cool. 89 00:04:16,312 --> 00:04:18,600 Kaya kami ay pagpunta sa subukan i-edit sa mismong dito, 90 00:04:18,600 --> 00:04:20,707 at sana ito napupunta bilang binalak. 91 00:04:20,707 --> 00:04:23,915 Ang lahat ng mga karapatan, ay nais ang sinuman na ninyo ako isang mungkahi bilang sa kung paano ko dapat magsimula? 92 00:04:23,915 --> 00:04:27,030 Ang tanging palagay ako paggawa ay na ko na 93 00:04:27,030 --> 00:04:30,180 nagbigay ng isang istraktura, ang isa akong nagpakita sa huling pahina, 94 00:04:30,180 --> 00:04:31,420 sa huling slide. 95 00:04:31,420 --> 00:04:39,250 At ako sa pag-iimbak ang ulo ng aking naka-link listahan sa ilang pointer na tinatawag na listahan. 96 00:04:39,250 --> 00:04:42,190 Gusto ba upang makapagsimula sa akin? 97 00:04:42,190 --> 00:04:45,410 >> Madla: Maaari kang lumikha ng isang bagong node na tumawag sa listahan? 98 00:04:45,410 --> 00:04:46,410 >> Hannah: Kahanga-hanga, kaya kami ay pagpunta sa gumawa 99 00:04:46,410 --> 00:04:47,951 isang bagong node na i-crawl sa listahan. 100 00:04:47,951 --> 00:04:48,570 Gusto ko na. 101 00:04:48,570 --> 00:04:50,799 Makikita tawagan ko lang ito kung pointer na OK lang. 102 00:04:50,799 --> 00:04:52,340 At kung saan dapat itong orihinal na magsimula? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> Madla: Malamang sa ang ulo ng listahan. 105 00:04:59,840 --> 00:05:00,590 Hannah: Maganda. 106 00:05:00,590 --> 00:05:03,670 Gusto naming magsisimula sa ulo, na Sinabi ko ay pagpunta sa ay naka-imbak sa listahan. 107 00:05:03,670 --> 00:05:04,170 Kahanga-hanga. 108 00:05:04,170 --> 00:05:05,220 Sa ngayon, kaya mabuti. 109 00:05:05,220 --> 00:05:08,260 At ngayon, ang aming layunin ay umulit sa listahan 110 00:05:08,260 --> 00:05:12,870 hanggang sa mahanap namin ang node sa halaga n na gusto naming tanggalin. 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> Kaya ngayon ay ang bahagi kung saan gusto naming upang umulit sa pamamagitan ng. 113 00:05:15,910 --> 00:05:19,488 Maaari sinuman iminumungkahi ng paraan upang umulit sa pamamagitan? 114 00:05:19,488 --> 00:05:20,979 >> Madla: Ang isang loop. 115 00:05:20,979 --> 00:05:21,840 >> Hannah: Isang loop. 116 00:05:21,840 --> 00:05:22,620 Gustung-gusto ko ito. 117 00:05:22,620 --> 00:05:25,550 Sa partikular, maaari naming subukang isang habang loop. 118 00:05:25,550 --> 00:05:30,919 OK, at alam namin na naabot na namin ang Sa dulo ng aming listahan kapag ano? 119 00:05:30,919 --> 00:05:32,210 Madla: Kapag pointer ay null. 120 00:05:32,210 --> 00:05:33,418 Hannah: Kapag pointer ay null. 121 00:05:33,418 --> 00:05:34,320 Maganda, gustung-gusto ko ito. 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 Kaya paumanhin kung ang aking bounding suhay ay uri ng lagas screen. 125 00:05:43,190 --> 00:05:44,090 Dinala namin ito pabalik. 126 00:05:44,090 --> 00:05:46,610 OK, cool. 127 00:05:46,610 --> 00:05:48,690 Ano ang susunod? 128 00:05:48,690 --> 00:05:51,950 >> Kaya alam namin na gusto naming tanggalin ang node na may halaga n. 129 00:05:51,950 --> 00:05:56,340 Kaya makahanap ng mga kaso kung saan ipaalam talaga naming makita ang aming mga node. 130 00:05:56,340 --> 00:05:57,840 Kaya kung paano Gusto ko suriin na? 131 00:05:57,840 --> 00:06:02,210 Gusto ko lang sabihin kung pointer, at pagkatapos ay kung ako nais upang makuha ang halaga sa labas ng pointer, 132 00:06:02,210 --> 00:06:08,940 Ako arrow lamang n, katumbas n, ang parameter 133 00:06:08,940 --> 00:06:14,490 na ibinigay namin sa function na ito, ang node na gusto naming talagang tanggalin. 134 00:06:14,490 --> 00:06:17,090 Ang anumang mga katanungan hanggang dito? 135 00:06:17,090 --> 00:06:18,360 Lahat ng karapatan. 136 00:06:18,360 --> 00:06:24,140 OK, gumuhit ng isang mabilis na larawan kaya ngayon hayaan sa board upang maisalarawan ito. 137 00:06:24,140 --> 00:06:30,710 >> Kaya sabihin nating mayroon ang aming kaibig-ibig na node. 138 00:06:30,710 --> 00:06:34,480 At mayroon itong isang halaga, lamang Sasabihin kong apat. 139 00:06:34,480 --> 00:06:40,340 At tumuturo sa tabi node sa aming listahan na naka-link. 140 00:06:40,340 --> 00:06:42,220 At walang bago ito ay. 141 00:06:42,220 --> 00:06:45,800 Kaya mayroon namin ang aming mga nakaraang mga na tumuturo sa wala. 142 00:06:45,800 --> 00:06:48,110 Sa kasong ito, ituro namin pabalik. 143 00:06:48,110 --> 00:06:50,960 OK, pagse-set up lamang ang aking listahan na naka-link sa paglipas dito. 144 00:06:50,960 --> 00:06:53,630 At mayroon kaming isang listahan na tumuturo sa istraktura na ito upang magsimula sa. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 Kukunin ko gumuhit ng isa pang para sa ang alang-alang ng pagiging kumpleto. 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 Kukunin ko ituro ito pasulong. 150 00:07:07,480 --> 00:07:09,550 At kukunin ko na ituro na ang isa pabalik. 151 00:07:09,550 --> 00:07:10,360 Oops, paumanhin. 152 00:07:10,360 --> 00:07:12,710 Oo, nakuha ko ito pabalik. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 Gawin itong muli. 155 00:07:16,967 --> 00:07:18,330 OK, may pumunta namin. 156 00:07:18,330 --> 00:07:19,910 Ang lahat ng mga karapatan, nakuha ko. 157 00:07:19,910 --> 00:07:21,780 OK, narito ang ating larawan. 158 00:07:21,780 --> 00:07:24,860 >> OK, kaya gusto naming isaalang-alang ang dalawang mga kaso. 159 00:07:24,860 --> 00:07:27,330 Ang unang kaso ay kung ang node gusto naming tanggalin 160 00:07:27,330 --> 00:07:29,420 ay sa pinakadulo simula ng aming listahan. 161 00:07:29,420 --> 00:07:34,070 At pagkatapos, ang pangalawang kaso na gusto naming isaalang-alang ay kung saan pa man. 162 00:07:34,070 --> 00:07:37,660 Nauunawaan ko na ito ng ganap walang ayos ng pagguhit sa lahat ng aking mga bura, 163 00:07:37,660 --> 00:07:40,400 ngunit sana ay susubukan naming gumawa ito malinaw na may ilang mga code. 164 00:07:40,400 --> 00:07:45,450 >> OK, masakop ang kaso nang sa gayon hayaan kung saan nakita namin ang aming mga node, 165 00:07:45,450 --> 00:07:48,900 at ito ay sa pinakadulo magsimula ng aming mga listahan na naka-link. 166 00:07:48,900 --> 00:07:50,810 Sinuman ninyo ako ng suggestion dito kung ano 167 00:07:50,810 --> 00:07:54,684 Ang dapat kong gawin upang aktwal na alisin ang aming node? 168 00:07:54,684 --> 00:07:55,970 Ito ay isang maliit na nakakalito. 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> Madla: Mayroon kang gumawa ng mga node na magiging bago ito 171 00:07:59,628 --> 00:08:01,794 at gumawa ng ituro ito sa isa na magiging matapos na ito, 172 00:08:01,794 --> 00:08:03,004 at gawin ang mga node na ay magiging matapos na ito at gumawa ng mga 173 00:08:03,004 --> 00:08:04,554 ituro ito sa node bago ito. 174 00:08:04,554 --> 00:08:05,220 Hannah: Mismong. 175 00:08:05,220 --> 00:08:10,640 OK, kaya ito ang kaso where-- mayroon kaming dalawang mga kaso. 176 00:08:10,640 --> 00:08:14,100 Mayroon kaming kaso kung saan ang node na kaming naghahanap ng para sa 177 00:08:14,100 --> 00:08:18,270 ay ang harapan ng listahan. 178 00:08:18,270 --> 00:08:23,110 OK, at pagkatapos ay ang kaso na inilarawan ay kung hindi man, i-right? 179 00:08:23,110 --> 00:08:24,500 Ito ay sa iba pang lugar sa listahan. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 Kaya't sinabi sa iyo, kailangan namin upang tingnan ang node nakaraang, 182 00:08:32,840 --> 00:08:36,500 at gawin ang mga nakaraang node ituro sa susunod na node. 183 00:08:36,500 --> 00:08:40,510 Kaya sabihin nating kami sinusubukan na kumuha ng limang 184 00:08:40,510 --> 00:08:43,059 sa aking pinaka-maraming kalat guhit sa paglipas dito. 185 00:08:43,059 --> 00:08:47,530 Gusto naming siguraduhin na ang apat na ngayon tumuturo sa anim. 186 00:08:47,530 --> 00:08:49,590 Apat sa tabi ng mga punto upang anim. 187 00:08:49,590 --> 00:08:52,150 At anim na nakaraang mga punto sa apat. 188 00:08:52,150 --> 00:08:53,960 Iyon ay ang aming layunin dito, tama? 189 00:08:53,960 --> 00:08:56,150 Ito ay kung ano ang tingin ko sa iyo Sinabi lamang doon. 190 00:08:56,150 --> 00:08:58,450 >> OK, kaya hayaan makakuha ng na unang piraso. 191 00:08:58,450 --> 00:09:02,300 Ay gawin ang mga may Hayaang nakaraang pointer nakaraang. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 Kaya dapat ituro ang apat sa tabi ng kung ano? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 Eksakto, sa kasong ito, anim. 196 00:09:14,900 --> 00:09:18,470 Kaya dapat naming sabihin pointer, sa susunod. 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 Lahat ng karapatan. 199 00:09:21,150 --> 00:09:24,870 Kaya Hinahayaan ng mapupuksa ang pangit na larawan at subukan upang gumuhit ng isang bahagyang nicer isa. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 Mayroon kaming aming head listahan dito. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 At na tumuturo sa unang node sa ang aming listahan na naka-link, na sinabi namin ay apat. 204 00:09:42,740 --> 00:09:45,620 Narito ang aming ikalawang node, lima. 205 00:09:45,620 --> 00:09:47,307 At ang aming ikatlong node, anim. 206 00:09:47,307 --> 00:09:50,265 Nagsusubok lang iguhit ang eksaktong parehong larawan, lamang ng kaunti pa nang malinis. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 OK, kaya apat na susunod Orihinal na tumuturo sa limang. 209 00:09:56,280 --> 00:09:58,620 Limang ng susunod na mga punto sa anim. 210 00:09:58,620 --> 00:10:00,170 Anim na nakaraang mga punto sa limang. 211 00:10:00,170 --> 00:10:02,470 At limang ng nakaraang mga punto sa apat. 212 00:10:02,470 --> 00:10:03,360 Kaya magkano nicer! 213 00:10:03,360 --> 00:10:04,530 OK, cool. 214 00:10:04,530 --> 00:10:07,770 >> Kaya ngayon, ano ang ginawa namin lamang dito, ang linya ng code, 215 00:10:07,770 --> 00:10:12,680 na sabi ni pointer nakaraang susunod, kaya kung ano ang ibig sabihin na? 216 00:10:12,680 --> 00:10:17,540 Nangangahulugan iyon na kung kaming naghahanap sa limang, pumunta sa nakaraang node, 217 00:10:17,540 --> 00:10:21,970 at ito ay susunod dapat ngayon punto sa limang sa tabi. 218 00:10:21,970 --> 00:10:27,840 Kaya mahalagang, kung ano na ginagawa ay na binubura ang arrow 219 00:10:27,840 --> 00:10:29,640 at ginagawa itong laktawan karapatan sa paglipas ng limang. 220 00:10:29,640 --> 00:10:31,360 Malinaw ba iyon? 221 00:10:31,360 --> 00:10:33,200 Alam ko na maaaring maging isang maliit na bit na hindi buo. 222 00:10:33,200 --> 00:10:34,480 Nakakakita ako ng ilang nods head. 223 00:10:34,480 --> 00:10:35,390 Iyon ay mabuti. 224 00:10:35,390 --> 00:10:36,670 OK, cool. 225 00:10:36,670 --> 00:10:39,590 Ngayon, kung ano ang susunod na hakbang? 226 00:10:39,590 --> 00:10:42,060 >> -Reset ko na ang susunod. 227 00:10:42,060 --> 00:10:45,297 Ngayon, na iba pang mga arrow kailangan kong baguhin? 228 00:10:45,297 --> 00:10:46,130 Isa ito dito mismo. 229 00:10:46,130 --> 00:10:47,560 Anim na nakaraang. 230 00:10:47,560 --> 00:10:50,620 Hindi namin nais anim na naunang upang tumuro sa limang na ngayon. 231 00:10:50,620 --> 00:10:54,580 Gusto naming ito upang tumuro sa apat. 232 00:10:54,580 --> 00:10:56,190 Ba na larawan kabuluhan? 233 00:10:56,190 --> 00:10:58,370 Kaya ngayon maaari naming aktwal na tumagal ng limang out. 234 00:10:58,370 --> 00:10:59,370 Kaya hayaan makakuha ng piraso iyon. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 Ano ang dapat kong gawin bago ako -reset ang anim na nakaraang apat? 237 00:11:11,180 --> 00:11:14,360 Ang anumang mga ideya doon? 238 00:11:14,360 --> 00:11:17,369 >> Madla: Libreng mga node sa pagitan ng ang mga ito sa pamamagitan ng pagtatakda nito sa null? 239 00:11:17,369 --> 00:11:17,910 Hannah: Cool. 240 00:11:17,910 --> 00:11:21,100 Talagang, ang aming pagtatapos layunin ay magiging upang magbakante ang node. 241 00:11:21,100 --> 00:11:22,490 Kaya maaari naming gawin iyon dito mismo. 242 00:11:22,490 --> 00:11:23,540 Libreng pointer. 243 00:11:23,540 --> 00:11:24,810 Oo naman. 244 00:11:24,810 --> 00:11:29,160 Ngunit kahit bago iyon, just-- ng aming layunin mismo ipaalam 245 00:11:29,160 --> 00:11:38,730 dito ay upang i-set pointer sa tabi nakaraang katumbas ng pointer nakaraang. 246 00:11:38,730 --> 00:11:40,760 Alam ko na ito ay nagsisimula sakop up. 247 00:11:40,760 --> 00:11:45,440 OK, na take-- cool na ipaalam. 248 00:11:45,440 --> 00:11:46,990 Maaari makita ng lahat ang bottom line na ito? 249 00:11:46,990 --> 00:11:47,840 O kaya ay ito sobrang napakaliit? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> Kaya bago namin maisagawa ang linyang ito dito, gusto naming 252 00:11:54,300 --> 00:11:58,375 upang matiyak na pointer susunod ay hindi null. 253 00:11:58,375 --> 00:12:00,500 Dahil kung pointer susunod ay walang bisa, kung anong uri ng error 254 00:12:00,500 --> 00:12:02,727 makakakuha ako kapag sinusubukan kong isangguni ang isang null pointer? 255 00:12:02,727 --> 00:12:03,560 Madla: Seg kasalanan. 256 00:12:03,560 --> 00:12:05,660 Hannah: Isang seg fault, maganda. 257 00:12:05,660 --> 00:12:09,690 OK, kaya kung hindi iyon walang bisa, pagkatapos ay maaari naming i-reset. 258 00:12:09,690 --> 00:12:14,420 At mayroon kaming muli ng anim na punto sa apat. 259 00:12:14,420 --> 00:12:17,440 Mga Tanong up hanggang sa puntong ito? 260 00:12:17,440 --> 00:12:17,940 Oo? 261 00:12:17,940 --> 00:12:19,814 >> Madla: Sa iyong unang kung pahayag, ginawa mo 262 00:12:19,814 --> 00:12:23,817 ibig sabihin na magkaroon ang mga arrow sa tabi, o [hindi marinig]? 263 00:12:23,817 --> 00:12:25,150 Hannah: sinadya ko pointer arrow n. 264 00:12:25,150 --> 00:12:30,270 Kaya talaga, kung ano ang sinusubukan ko na gawin ay sabihin, ang kasalukuyang node na ako ay 265 00:12:30,270 --> 00:12:34,100 iterating sa paglipas ng, ang kasalukuyang node na Naghahanap ako sa, ako sa pag-iimbak sa pointer. 266 00:12:34,100 --> 00:12:37,630 At gusto kong malaman pointer ng halaga, na sa kasong ito ay n. 267 00:12:37,630 --> 00:12:39,500 At gusto kong makita, ay ang node Naghahanap ako 268 00:12:39,500 --> 00:12:42,790 para sa mga node ako pagpuntirya tanggalin? 269 00:12:42,790 --> 00:12:47,657 Kaya na ang dahilan kung bakit mayroon kaming dito pointer n. 270 00:12:47,657 --> 00:12:49,857 >> Madla: Kaya ang arrow ng pagpunta sa n, itatakda mo ang halaga 271 00:12:49,857 --> 00:12:52,058 at mag-imbak ito sa isang node tinatawag n? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> Hannah: Kaya tulad ng kung ako ay pagpunta sa pamamagitan ng naka-link na listahan 274 00:12:58,820 --> 00:13:00,310 at nagtuturo sa limang. 275 00:13:00,310 --> 00:13:03,600 Kung gusto ko upang makakuha ng halagang iyon, kung Gusto kong makakuha ng mga numero na iyon, 5, 276 00:13:03,600 --> 00:13:06,400 Kailangan kong gawin pointer arrow n. 277 00:13:06,400 --> 00:13:06,900 Cool? 278 00:13:06,900 --> 00:13:07,900 Oo. 279 00:13:07,900 --> 00:13:11,200 >> Madla: ba n ang pangalan ng variable? 280 00:13:11,200 --> 00:13:11,700 Hannah: Oo. 281 00:13:11,700 --> 00:13:14,870 Kaya kung i-flip namin pabalik isa slide, n ay ang pangalan 282 00:13:14,870 --> 00:13:18,660 ng halaga sa loob ng node sa aming listahan na naka-link. 283 00:13:18,660 --> 00:13:21,510 At alam ko maaari itong makakuha ng isang maliit na bit nakakalito dahil kami rin 284 00:13:21,510 --> 00:13:24,680 tumatawag ang bagay na gusto naming tanggalin n. 285 00:13:24,680 --> 00:13:26,717 Kaya na kung saan na isang linya ay mula sa. 286 00:13:26,717 --> 00:13:27,671 Oo? 287 00:13:27,671 --> 00:13:31,010 >> Madla: Ano ang mayroon kang [Hindi marinig] kung paano sila gumagana? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 Ang isang pointer [hindi marinig]? 290 00:13:35,780 --> 00:13:37,520 >> Hannah: Oo naman. 291 00:13:37,520 --> 00:13:40,027 Sigurado ka about-- na linya ng pakikipag-usap? 292 00:13:40,027 --> 00:13:41,526 Madla: Ang huling linya [hindi marinig]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> Hannah: Oo naman, OK. 295 00:13:45,250 --> 00:13:48,540 Kaya tingnan natin ang larawan sa ipaalam Upang subukan upang ipaliwanag ito. 296 00:13:48,540 --> 00:13:51,030 Sorry, para sa camera, ang tanong ay 297 00:13:51,030 --> 00:13:54,580 maaari naming ipaliwanag pointer na arrow sa tabi ng pointer nakaraang. 298 00:13:54,580 --> 00:14:01,510 OK, kaya sabihin nating kami sa limang at ang aming layunin ay upang tanggalin ang lima. 299 00:14:01,510 --> 00:14:07,240 Kaya pointer susunod, kung alin sa mga tatlong nodes ay na nagbibigay sa atin? 300 00:14:07,240 --> 00:14:10,840 Na pinagsasama-amin sa ika-anim na node, tama? 301 00:14:10,840 --> 00:14:16,490 >> OK, kaya ngayon hinihiling namin sa para sa nakaraang anim na iyon. 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 At kami ay pag-reset ito upang maging katumbas sa apat, 304 00:14:20,210 --> 00:14:23,214 na nangyari sa maging limang ng nakaraang. 305 00:14:23,214 --> 00:14:25,180 Alam ko, ito ay sobrang mahirap na subaybayan ng. 306 00:14:25,180 --> 00:14:29,286 Ko talagang inirerekumenda kang gumuhit ng mga larawan kung makakuha ka ng isang katanungan na tulad nito. 307 00:14:29,286 --> 00:14:30,242 Oo? 308 00:14:30,242 --> 00:14:32,617 >> Madla: ba ang dahilan na wala kaming isang [hindi marinig]? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> Hannah: Mismong. 311 00:14:38,570 --> 00:14:44,800 Kaya ang tanong ay, bakit hindi namin kailangan upang suriin dito? 312 00:14:44,800 --> 00:14:48,160 Bakit hindi na kailangan namin upang suriin na pointer nakaraang ay hindi katumbas ng null? 313 00:14:48,160 --> 00:14:50,070 At ito ay dahil hindi namin na pinaghihiwalay out 314 00:14:50,070 --> 00:14:52,490 Sa kaso kung ang pointer ng sa pinakadulo simula. 315 00:14:52,490 --> 00:14:54,060 Mabuti tanong. 316 00:14:54,060 --> 00:14:56,880 Ano pa dito? 317 00:14:56,880 --> 00:14:57,380 OK, cool. 318 00:14:57,380 --> 00:14:58,360 Kaya tapusin na natin ito ipaalam. 319 00:14:58,360 --> 00:14:59,890 Humihingi kami ng halos doon. 320 00:14:59,890 --> 00:15:01,310 >> Kaya kung ano kung ito ay sa ulo? 321 00:15:01,310 --> 00:15:03,360 Paano kung sa halip na sinusubukang tanggalin ang limang, 322 00:15:03,360 --> 00:15:06,240 talaga namin nais na tanggalin ang apat? 323 00:15:06,240 --> 00:15:07,270 Ano ang kailangan kong gawin? 324 00:15:07,270 --> 00:15:09,610 Well, gusto kong i-reset ang aking ulo sa kung ano? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Mag-shout out ito? 327 00:15:15,585 --> 00:15:16,710 Madla: Ang isa pagkatapos nito. 328 00:15:16,710 --> 00:15:17,460 Hannah: Maganda. 329 00:15:17,460 --> 00:15:26,430 OK, kaya ililista namin nais na tumuturo kung ano ang aming pointer susunod na node ay. 330 00:15:26,430 --> 00:15:29,040 Mahusay. 331 00:15:29,040 --> 00:15:30,810 At para lamang sa pagiging kumpleto ng alang-alang, kami ay 332 00:15:30,810 --> 00:15:35,590 nais na suriin na ang hangga't ang aming listahan Hindi null, hangga't ang aming listahan ay hindi 333 00:15:35,590 --> 00:15:42,730 walang laman, pagkatapos ay nais naming i-set aming nakaraang katumbas ng null. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 Tanong sa ngayon? 336 00:15:50,230 --> 00:15:53,205 Isang hakbang ang layo from--? 337 00:15:53,205 --> 00:15:55,530 >> Madla: Gusto itong maging kung listahan ay hindi katumbas ng null? 338 00:15:55,530 --> 00:15:56,950 >> Hannah: Oo, ikaw ay ganap na karapatan sa iyo. 339 00:15:56,950 --> 00:15:58,130 Ako kaya paumanhin. 340 00:15:58,130 --> 00:16:00,040 Ay listahan ay hindi kapantay sa null. 341 00:16:00,040 --> 00:16:01,915 Kahanga-hanga. 342 00:16:01,915 --> 00:16:04,245 Sinusubukang upang dalhin ito sa lahat sa screen. 343 00:16:04,245 --> 00:16:06,870 Uri Ito ay sa lagas. 344 00:16:06,870 --> 00:16:07,730 Paumanhin, guys. 345 00:16:07,730 --> 00:16:11,874 At huling ngunit hindi bababa sa, lahat ng mayroon kaming gawin ay ibinalik. 346 00:16:11,874 --> 00:16:12,840 OK. 347 00:16:12,840 --> 00:16:15,400 Iyon ay isang maraming crammed sa tunay mabilis. 348 00:16:15,400 --> 00:16:16,800 Sumakay ng ilang sandali upang tumingin ito sa ibabaw. 349 00:16:16,800 --> 00:16:18,216 Sabihin sa akin kung mayroon kang anumang mga katanungan. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 Oo? 352 00:16:20,732 --> 00:16:26,940 >> Madla: Kung list sa ulo, then-- maghintay, Di bale na. 353 00:16:26,940 --> 00:16:27,700 >> Hannah: OK, magandang. 354 00:16:27,700 --> 00:16:30,987 Kaya ito ay kung ang listahan ay sa ulo, inaalis namin ito sa kung anong ipinasok na namin. 355 00:16:30,987 --> 00:16:31,486 Oo? 356 00:16:31,486 --> 00:16:33,777 >> Madla: Maaari mong ipaliwanag ang unang kung muli statement? 357 00:16:33,777 --> 00:16:36,149 Kung ang pointer sa n ay katumbas ng n? 358 00:16:36,149 --> 00:16:36,690 Hannah: Oo naman. 359 00:16:36,690 --> 00:16:42,780 Kaya ang aming layunin ng buong function ay tanggalin ang node na may halaga n. 360 00:16:42,780 --> 00:16:47,460 Kaya kung makita namin, pati kami iterating sa pamamagitan ng aming listahan, 361 00:16:47,460 --> 00:16:51,770 ang node sa halaga n, na ang gusto naming tanggalin. 362 00:16:51,770 --> 00:16:57,286 Kaya ang lahat ng mga pagtanggal mangyayari sa loob ng na malaki kung statement. 363 00:16:57,286 --> 00:16:58,593 Sinusuportahan ba na may katuturan? 364 00:16:58,593 --> 00:16:59,480 Ayos. 365 00:16:59,480 --> 00:16:59,990 Oo? 366 00:16:59,990 --> 00:17:02,864 >> Madla: Marahil hindi lamang ang makakakita ito, ngunit huwag kailangan mo rin ng isang linya 367 00:17:02,864 --> 00:17:06,024 para sa pag-scroll sa listahan? 368 00:17:06,024 --> 00:17:06,690 Hannah: Kahanga-hanga. 369 00:17:06,690 --> 00:17:10,896 Ni dalhin ito up ng isang maliit na bit Hayaan, at ipapakita namin itapon na karapatan sa ibaba. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 Siguro sa board ay nai naging isang bahagyang mas mahusay na ideya. 372 00:17:15,490 --> 00:17:17,829 Kaya kung paano Gusto ko ilipat ang pointer ng pasulong? 373 00:17:17,829 --> 00:17:20,184 >> Madla: Pointer ay katumbas ng pointer plus one. 374 00:17:20,184 --> 00:17:21,599 >> Hannah: Maganda. 375 00:17:21,599 --> 00:17:25,050 Kaya na nagbibigay-daan sa amin upang patuloy iterating sa pamamagitan ng. 376 00:17:25,050 --> 00:17:26,251 OK. 377 00:17:26,251 --> 00:17:27,750 Madla: Gusto hindi magkaroon ng isang tao? 378 00:17:27,750 --> 00:17:29,028 Hannah: Isa pang oras? 379 00:17:29,028 --> 00:17:32,444 Madla: Gusto hindi magkakaroon ng isang tao pagkatapos ng malaking gulang kung 380 00:17:32,444 --> 00:17:35,519 pahayag [hindi marinig]? 381 00:17:35,519 --> 00:17:36,310 Hannah: Aling mga bahagi? 382 00:17:36,310 --> 00:17:38,350 Sorry. 383 00:17:38,350 --> 00:17:41,800 >> Madla: Ang traversal, Hindi dapat magkaroon ng isang tao? 384 00:17:41,800 --> 00:17:43,550 Hannah: Ikaw talagang ay maaaring magkaroon ng isang tao. 385 00:17:43,550 --> 00:17:46,930 Dahil mayroon akong isang pabalik na karapatan doon, hindi mo kailangang isang tao. 386 00:17:46,930 --> 00:17:48,760 Pero oo, mahusay na pinag-uusapan. 387 00:17:48,760 --> 00:17:50,170 OK, yes? 388 00:17:50,170 --> 00:17:52,878 Madla: Maaari ba kaming isipin na pointer na gumagalaw sa listahan 389 00:17:52,878 --> 00:17:56,610 bilang pagkuha sa halaga ng bawat node sa listahan? 390 00:17:56,610 --> 00:18:00,650 O kaya dapat naming isipin na ito bilang uri ng mga panlabas na sa listahan? 391 00:18:00,650 --> 00:18:02,350 >> Hannah: Alinman sa isa ay pinong, tingin ko. 392 00:18:02,350 --> 00:18:05,880 Ang paraan isipin ko ito ay Sabihin ko, OK, ako pointer. 393 00:18:05,880 --> 00:18:06,520 At ako ito. 394 00:18:06,520 --> 00:18:07,150 Ito ang aking kamay. 395 00:18:07,150 --> 00:18:09,960 Pupunta ako sa nagtuturo sa iba't ibang mga bagay na gusto kong umulit sa pamamagitan ng. 396 00:18:09,960 --> 00:18:12,270 Una, pupunta ako upang tumuro patungo sa ulo ng listahan. 397 00:18:12,270 --> 00:18:14,144 At ang sinasabi sa akin ako ay pagpunta upang tumuro sa apat. 398 00:18:14,144 --> 00:18:18,060 At kaya ako, pagiging panlabas na sa listahan, Maaari ko bang ituro sa bawat isa sa mga sangkap na ito. 399 00:18:18,060 --> 00:18:19,520 Kaya tingin ko ng aking sarili bilang pointer. 400 00:18:19,520 --> 00:18:21,645 Madla: Kaya kapag tinanggal mo isa sa mga elementong iyon, 401 00:18:21,645 --> 00:18:23,404 mong tanggalin ang iyong sarili, sa gayon na magsalita. 402 00:18:23,404 --> 00:18:24,070 Hannah: Mismong. 403 00:18:24,070 --> 00:18:25,920 Kaya tanggalin mo ang bagay ka na tumuturo sa. 404 00:18:25,920 --> 00:18:28,340 Kaya sa halimbawa na Nakita namin kung saan kami ay 405 00:18:28,340 --> 00:18:31,670 sinusubukang tanggalin ang limang, kapag ako nagtuturo sa limang, 406 00:18:31,670 --> 00:18:34,200 Gusto kong tanggalin ang bagay ako na tumuturo sa. 407 00:18:34,200 --> 00:18:35,870 Akmang-akma. 408 00:18:35,870 --> 00:18:36,577 Oo? 409 00:18:36,577 --> 00:18:39,410 Madla: Nakarating na nagsagawa kami ang bahala sa kaso kung saan n ay wala sa listahan? 410 00:18:39,410 --> 00:18:40,460 Hannah: Kung n ay wala sa listahan? 411 00:18:40,460 --> 00:18:43,501 Lahat na pupuntahan mangyari ay ikaw pagpunta upang umulit sa pamamagitan ng at umulit 412 00:18:43,501 --> 00:18:47,616 sa pamamagitan ng, at pagkatapos, na iyong pupuntahan upang makapunta sa pointer pagiging walang bisa, 413 00:18:47,616 --> 00:18:48,990 at pagkatapos na iyong pupuntahan dapat gawin. 414 00:18:48,990 --> 00:18:50,812 >> Madla: Kaya kailangan namin upang bumalik anumang bagay? 415 00:18:50,812 --> 00:18:51,520 Hannah: kami dati. 416 00:18:51,520 --> 00:18:54,500 Ang paraan na kung tinukoy ito function, lang sabihin ko na ito ay nagbabalik 417 00:18:54,500 --> 00:18:55,770 magpawalang-bisa sa anuman. 418 00:18:55,770 --> 00:18:58,360 Ngunit maaari kang magkaroon ng isang bagay tulad ng mga bumabalik na isang integer, 419 00:18:58,360 --> 00:19:00,920 at ito bumalik 1 mga negatibong kapag nabigo ito. 420 00:19:00,920 --> 00:19:03,070 Isang bagay tulad na. 421 00:19:03,070 --> 00:19:04,494 Mga Tanong with-- yes? 422 00:19:04,494 --> 00:19:05,410 Madla: [hindi marinig]? 423 00:19:05,410 --> 00:19:05,993 Hannah: Paumanhin? 424 00:19:05,993 --> 00:19:07,419 Madla: [hindi marinig]? 425 00:19:07,419 --> 00:19:07,960 Hannah: Oo naman. 426 00:19:07,960 --> 00:19:11,730 Kaya iyon ang actual-- sa sandaling hindi namin tapos na lahat sa trabahong ito ng paglilipat 427 00:19:11,730 --> 00:19:16,530 lahat ng mga arrow na ito sa paligid, ang aming buong layunin ay upang mapupuksa ang mga node 428 00:19:16,530 --> 00:19:18,230 na kaming naghahanap ng para sa. 429 00:19:18,230 --> 00:19:21,610 Kaya sa kasong ito, pagbabakante pointer, kung ako nagtuturo sa limang, 430 00:19:21,610 --> 00:19:24,670 ito ay tulad ng binubura ang gitnang node. 431 00:19:24,670 --> 00:19:27,250 Iyan ang libreng pointer bahagi. 432 00:19:27,250 --> 00:19:29,090 Iyon make kahulugan? 433 00:19:29,090 --> 00:19:31,390 >> Madla: Kaya kahit naisip ginawa mo Hindi [hindi marinig]? 434 00:19:31,390 --> 00:19:36,060 >> Hannah: Kaya ipinapalagay namin sa simula kami ay may ilang mga listahan na already-- 435 00:19:36,060 --> 00:19:37,220 sila ay ilagay ito nang magkasama. 436 00:19:37,220 --> 00:19:39,761 Kaya upang bumuo ng mga ito listahan, must've sila [hindi marinig]. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 Ayos. 439 00:19:42,750 --> 00:19:44,490 Ano pa na may ito? 440 00:19:44,490 --> 00:19:46,386 Oo? 441 00:19:46,386 --> 00:19:49,204 >> Madla: Paano kung ang listahan hindi katumbas ng null line? 442 00:19:49,204 --> 00:19:49,704 [Hindi marinig]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 Hannah: I-right dito? 445 00:19:53,080 --> 00:19:53,840 Madla: Oo. 446 00:19:53,840 --> 00:19:57,370 Hannah: OK, ako lahat ako paggawa ay ako na tinitiyak lamang 447 00:19:57,370 --> 00:20:03,250 na bago kong subukan sa listahan dereference, bago sinusubukan kong i-access ang nakaraang, 448 00:20:03,250 --> 00:20:07,210 Gusto kong siguraduhin na hindi null kaya hindi ako makakuha ng isang seg fault. 449 00:20:07,210 --> 00:20:08,400 Ayos. 450 00:20:08,400 --> 00:20:10,820 >> OK, alam ko na ito ay medyo Marami upang makakuha ng sa pamamagitan ng. 451 00:20:10,820 --> 00:20:14,950 Kaya slide na ito ay magiging gagawing magagamit sa iyo. 452 00:20:14,950 --> 00:20:17,341 Kaya maaari kang pumunta sa pamamagitan ng ito nang mas detalyado. 453 00:20:17,341 --> 00:20:17,841 Oo? 454 00:20:17,841 --> 00:20:19,749 >> Madla: Bakit inaayos ng listahan [hindi marinig]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 Hannah: Oo naman. 457 00:20:24,670 --> 00:20:27,390 Kaya ba talagang tumuturo sa listahan ang sangkap dito mismo, 458 00:20:27,390 --> 00:20:29,200 sa unang elemento sa listahan. 459 00:20:29,200 --> 00:20:30,748 Kaya hindi ito maaaring magkaroon ng mga nakaraang. 460 00:20:30,748 --> 00:20:31,736 Oo? 461 00:20:31,736 --> 00:20:35,194 >> Madla: ba ang pointer punto sa parehong address sa memory? 462 00:20:35,194 --> 00:20:38,404 Ituro ba ito sa parehong address sa memorya bilang node 463 00:20:38,404 --> 00:20:40,640 na ito ay nagtuturo sa? 464 00:20:40,640 --> 00:20:43,865 >> Hannah: Oo, tumuturo ito sa node sa memorya. 465 00:20:43,865 --> 00:20:47,190 >> Madla: Mag-right, kaya kapag nag-[hindi marinig]? 466 00:20:47,190 --> 00:20:50,580 >> Hannah: Sa isang katuturan, oo. 467 00:20:50,580 --> 00:20:51,280 OK. 468 00:20:51,280 --> 00:20:52,997 Ang lahat ng mga karapatan, na patuloy sa paglakad na may ganitong ipaalam. 469 00:20:52,997 --> 00:20:55,330 At kung mayroon kang higit pang mga tanong, manatili sa paligid sa dulo, 470 00:20:55,330 --> 00:20:57,130 at maaari naming pumunta muli sa pamamagitan nito. 471 00:20:57,130 --> 00:20:58,120 OK, cool. 472 00:20:58,120 --> 00:21:00,490 Ngayon, makuha namin upang lumipat sa sa hash talahanayan, pagsubok, 473 00:21:00,490 --> 00:21:04,940 at mga puno, na nakuha mo super pamilyar sa sa p-set limang, speller. 474 00:21:04,940 --> 00:21:11,020 >> Kaya hash talahanayan ay isa lamang array na may isa-isa naka-link na mga listahan 475 00:21:11,020 --> 00:21:14,050 o doble naka-link na mga listahan ng darating na off nito. 476 00:21:14,050 --> 00:21:16,380 Kaya mayroon kaming ilang mga pag-uuri ng nag-uugnay array. 477 00:21:16,380 --> 00:21:21,280 At kung paano namin alam kung alin sa mga array mga bucket upang makakuha ng in sa, 478 00:21:21,280 --> 00:21:24,137 gumagamit kami ng hash. 479 00:21:24,137 --> 00:21:26,470 Kaya sa kasong ito, maaari sinuman hulaan kung ano ang hash 480 00:21:26,470 --> 00:21:28,636 ay ibabatay lamang sa ilang ng input at output? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> Madla: Letter numero ng alpabeto. 483 00:21:33,194 --> 00:21:33,860 Hannah: Mismong. 484 00:21:33,860 --> 00:21:36,160 Inilalagay lamang ito sa kanila sa alpabetikong order. 485 00:21:36,160 --> 00:21:39,280 Lahat ng bagay na nagsisimula sa isang A ay ilagay sa unang bucket. 486 00:21:39,280 --> 00:21:43,340 Lahat may B ay ilalagay sa pangalawang bucket, iba pa, at iba pa. 487 00:21:43,340 --> 00:21:45,620 Galing, OK. 488 00:21:45,620 --> 00:21:48,980 At isang hash ay anumang function na tumatagal sa isang salita 489 00:21:48,980 --> 00:21:51,910 at sasabihin sa iyo kung ano ang Bucket ito ay kabilang sa. 490 00:21:51,910 --> 00:21:55,150 Kaya kung aling mga entry sa aming array ito ay kabilang sa. 491 00:21:55,150 --> 00:21:58,080 >> Kaya sa tuwing Ibinibigay ko ang aking hash function na ang isang salita, 492 00:21:58,080 --> 00:22:00,660 Dapat sabihin dito sa akin ang parehong ilagay bawat solong oras. 493 00:22:00,660 --> 00:22:03,270 Kaya kung gagamitin namin ang mga hash mula sa nakaraang slide 494 00:22:03,270 --> 00:22:05,950 kung saan kami naka-uuri-uri ng unang titik ng alpabeto, 495 00:22:05,950 --> 00:22:08,230 sa bawat oras na bigyan ko ang aking hash "mansanas," 496 00:22:08,230 --> 00:22:10,180 dapat itong palaging magbibigay sa akin pabalik 0. 497 00:22:10,180 --> 00:22:12,890 Kaya kung mayroon akong isang mansanas upang ilagay sa aking hash talahanayan, 498 00:22:12,890 --> 00:22:17,700 kung bibigyan ako "apple" sa aking hash, dapat itong sabihin, pumunta ilagay ito sa bucket 0. 499 00:22:17,700 --> 00:22:19,980 Kapag ako ay naghahanap para sa isang mansanas sa aking hash talahanayan 500 00:22:19,980 --> 00:22:24,340 at sabihin ko, kung saan maaari mansanas live na, hilingin mo ang iyong hash. 501 00:22:24,340 --> 00:22:26,900 At sinasabi nito, pumunta sa bucket 0. 502 00:22:26,900 --> 00:22:29,150 Ang lahat ng mga karapatan? 503 00:22:29,150 --> 00:22:32,660 Mga Tanong may hash function? 504 00:22:32,660 --> 00:22:34,570 Kahanga-hanga. 505 00:22:34,570 --> 00:22:37,320 >> Narito ang isang bahagyang higit pa detalyadong paliwanag 506 00:22:37,320 --> 00:22:39,570 ng kung ano ang maaaring maging hitsura ng hash tulad. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 Lahat ng karapatan. 509 00:22:42,960 --> 00:22:45,960 Ngayon, ang problema sa hash mga function ay nasa isang perpektong mundo, 510 00:22:45,960 --> 00:22:48,870 Gusto naming magkaroon ng isa lamang bagay sa bawat bucket. 511 00:22:48,870 --> 00:22:50,900 Ngunit sa katotohanan, may Hindi isang salita lamang 512 00:22:50,900 --> 00:22:54,280 na nagsisimula sa A. Mayroong hindi lamang ng isang salita na nagsisimula sa B. Kaya 513 00:22:54,280 --> 00:22:56,960 sa kasong ito, kung namin biglang makakuha ng "isang itlog ng isda," 514 00:22:56,960 --> 00:22:58,710 at gusto naming ilagay ito sa aming hash table, 515 00:22:58,710 --> 00:23:03,640 at nakita namin, oh, hindi, banana ay pa doon, kung ano ang gonna namin gawin? 516 00:23:03,640 --> 00:23:05,900 >> Well, mayroon kaming dalawang mga pagpipilian. 517 00:23:05,900 --> 00:23:07,990 Ang unang opsyon ay linear probing, na 518 00:23:07,990 --> 00:23:11,100 Nangangahulugan lamang sasamang hanapin sa susunod na walang laman bucket. 519 00:23:11,100 --> 00:23:14,100 Pumunta mahanap ang susunod na walang laman ang entry ng array. 520 00:23:14,100 --> 00:23:15,750 At ilagay lamang ang "isang itlog ng isda" doon. 521 00:23:15,750 --> 00:23:18,880 Kaya alam ko ito ay dapat pumunta sa saging sa bucket isa. 522 00:23:18,880 --> 00:23:22,155 Ngunit ilagay lang ito sa tatlong bucket, dahil bucket tatlong ay walang laman. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 Ang isa pang pagpipilian ay marahil kung ano ang ipapatupad 525 00:23:26,680 --> 00:23:29,220 sa iyong p-set, kung saan mo Nagkaroon hiwalay na chaining. 526 00:23:29,220 --> 00:23:33,990 Kaya bawat isa sa iyong mga bucket, bawat isa sa iyong mga elemento array, 527 00:23:33,990 --> 00:23:38,410 pagpipigil hindi lamang ng isang salita, pero sa totoo hold ang isang pointer sa isang listahan ng mga salita. 528 00:23:38,410 --> 00:23:41,880 Kaya kung mayroon kang saging sa iyong talahanayan ng hash 529 00:23:41,880 --> 00:23:44,740 at biglang na gusto mo upang magdagdag ng isang itlog ng isda, walang problema. 530 00:23:44,740 --> 00:23:51,110 Magdagdag lamang ng isang itlog ng isda sa sa dulo, o sa sa simula, ng iyong listahan ng naka-link. 531 00:23:51,110 --> 00:23:54,040 OK,-hanga. 532 00:23:54,040 --> 00:23:58,490 Mga Tanong may hash mga talahanayan bago kami pumunta sa? 533 00:23:58,490 --> 00:23:59,850 >> Lahat ng karapatan. 534 00:23:59,850 --> 00:24:01,070 Mga Puno at pagsubok. 535 00:24:01,070 --> 00:24:07,980 OK, kaya ito ay isa pang pagpipilian para sa pagpapatupad ng diksyunaryo. 536 00:24:07,980 --> 00:24:09,100 Maaari mo pa nakakagawa ng try. 537 00:24:09,100 --> 00:24:13,420 Kaya ito ay isang espesyal na uri ng puno na behaves tulad ng isang multi-level hash talahanayan. 538 00:24:13,420 --> 00:24:16,862 Kaya makikita mo ang larawan kung saan mayroon kang isang array na 539 00:24:16,862 --> 00:24:19,320 tumuturo sa isang bungkos ng array puntong iyon sa isang bungkos ng array 540 00:24:19,320 --> 00:24:20,390 puntong iyon sa isang bungkos ng array. 541 00:24:20,390 --> 00:24:23,140 At kami makita kung ano mismo na magiging ganito ang hitsura sa isang susunod na slide. 542 00:24:23,140 --> 00:24:26,070 At higit pa sa pangkalahatan, ng isang puno lamang ang anumang mga istraktura ng data 543 00:24:26,070 --> 00:24:29,710 kung saan ang data ay nakaayos sa ilang hierarchy. 544 00:24:29,710 --> 00:24:32,610 Kaya kung saan nakita natin na mayroon kami isang uri ng pag-unawa 545 00:24:32,610 --> 00:24:36,130 ng isang tuktok na antas, ang susunod na antas, isang susunod na antas, ang susunod na antas. 546 00:24:36,130 --> 00:24:39,690 Kaya ito ay marahil pinaka malinaw may ilang mga tukoy na halimbawa. 547 00:24:39,690 --> 00:24:40,880 Kaya narito ang aming tree. 548 00:24:40,880 --> 00:24:42,970 Maaari mong makita na ito May partikular na mga antas 549 00:24:42,970 --> 00:24:45,480 na sisimulan namin ang may ugat na node, isa. 550 00:24:45,480 --> 00:24:47,640 At maaari naming bumaba sa pamamagitan ng aming tree. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> Ang isang binary puno ay isang partikular na uri ng tree. 553 00:24:53,910 --> 00:24:56,770 At ang tanging pagtutukoy para sa isang binary puno 554 00:24:56,770 --> 00:25:01,130 ay na ang bawat node ay hindi hihigit sa dalawang dahon. 555 00:25:01,130 --> 00:25:03,960 Kaya hindi ka pagpunta upang makita ang anumang ng mga node ay may tatlo o apat 556 00:25:03,960 --> 00:25:06,880 o ilang iba pang mga bilang ng mga dahon. 557 00:25:06,880 --> 00:25:11,310 At pagkatapos ay kahit na mas tiyak ay isang binary paghahanap puno 558 00:25:11,310 --> 00:25:18,010 kung saan ang bawat node sa kaliwa ng mga node ay pagpunta sa may mas maliit ng halaga. 559 00:25:18,010 --> 00:25:21,180 At ang bawat halaga sa kanan ay magiging mas malaki. 560 00:25:21,180 --> 00:25:26,900 Kaya kung makikita mo ang 44 ay sa aming mga ugat, sa kaliwa, 11, 22, at 33 561 00:25:26,900 --> 00:25:28,940 ang lahat na mas mababa sa aming mga ugat. 562 00:25:28,940 --> 00:25:33,890 At sa kanan ay ang lahat numero bigger-- 66, 55, at 77. 563 00:25:33,890 --> 00:25:37,380 At ari-arian na ito pagpipigil totoo sa bawat antas ng tree. 564 00:25:37,380 --> 00:25:42,690 >> Kaya kapag pumunta kami pababa sa 22, 11, at 33, 11 pa rin 565 00:25:42,690 --> 00:25:46,950 Mas maliit sa 22 at 33 ay mas malaki kaysa 22. 566 00:25:46,950 --> 00:25:50,160 At ito ginagawang mas madali upang maghanap dahil kung kaming naghahanap para sa isang numero, 567 00:25:50,160 --> 00:25:53,877 alam namin eksakto kung aling mga sangay upang sundin pababa. 568 00:25:53,877 --> 00:25:56,210 Kaya ito ay dapat ipaalala sa iyo ng Medyo ng binary paghahanap. 569 00:25:56,210 --> 00:25:56,967 Oo? 570 00:25:56,967 --> 00:25:58,835 >> Madla: Kaya kapag ikaw ay naglalarawan ng binary, 571 00:25:58,835 --> 00:26:00,587 ang sinabi mo ito ay hindi hihigit sa dalawang dahon? 572 00:26:00,587 --> 00:26:01,170 Hannah: MM-Hm. 573 00:26:01,170 --> 00:26:02,580 Madla: Puwede itong magkaroon ng mas kaunting? 574 00:26:02,580 --> 00:26:03,121 Hannah: Oo. 575 00:26:03,121 --> 00:26:06,720 Kaya sabihin nating, halimbawa, Hindi magkaroon ng isang kahit na bilang ng mga bagay 576 00:26:06,720 --> 00:26:11,791 at hindi ka maaaring punan up ang lahat ng iyong dahon, ito ay pinong kung ang isa ay may isa. 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 Kahanga-hanga. 579 00:26:12,789 --> 00:26:15,930 Anumang iba pang mga katanungan sa mga puno? 580 00:26:15,930 --> 00:26:16,670 OK. 581 00:26:16,670 --> 00:26:20,110 >> Bumalik sa aming pagsubok bilang ako ay pakikipag-usap tungkol sa isang kaunti mas maaga, 582 00:26:20,110 --> 00:26:23,900 kung paano namin may mga array multi-level. 583 00:26:23,900 --> 00:26:26,280 Kaya sa kasong ito, sisimulan namin sa tuktok. 584 00:26:26,280 --> 00:26:29,030 At maaari naming sundin ang anumang ibinigay na salita pababa. 585 00:26:29,030 --> 00:26:30,780 Kaya sabihin nating gusto naming upang tumingin para sa Turing. 586 00:26:30,780 --> 00:26:34,380 Simulan namin sa T, sundin ito pababa sa isang array na naglalaman U, 587 00:26:34,380 --> 00:26:37,350 at sundin ito pababa hanggang namin maabot ang maliit na delta na 588 00:26:37,350 --> 00:26:39,060 Sinasabi sa atin, oo, nakita mo ang isang salita. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 I-clear sa pagsubok? 591 00:26:44,120 --> 00:26:48,138 Kahit ano upang pumunta doon? 592 00:26:48,138 --> 00:26:48,908 Oo? 593 00:26:48,908 --> 00:26:51,866 Madla: ba ang simbolo ng delta mag-ookupa espasyo sa loob ng try? 594 00:26:51,866 --> 00:26:54,532 Hannah: Oo, kaya hindi talaga kahit kailangan na maging isang delta. 595 00:26:54,532 --> 00:26:57,760 Ngunit kailangan namin ng ilang paraan upang sasabihin natin sa ating computer-- ng paumanhin, 596 00:26:57,760 --> 00:27:01,130 kaya na alam namin na Tur ay hindi isang salita. 597 00:27:01,130 --> 00:27:04,180 Dahil sabihin nating hindi namin ginawa magkaroon ito konsepto ng isang delta, konseptong ito 598 00:27:04,180 --> 00:27:09,850 ng pagbati, ang nahanap mo ang isang salita, Gusto ito pumunta sa pamamagitan at umulit T-U-R, 599 00:27:09,850 --> 00:27:11,300 at pagkatapos ay sabihin, kahanga-hangang, nakita ko ito! 600 00:27:11,300 --> 00:27:12,670 Dapat din itong maging isang salita. 601 00:27:12,670 --> 00:27:13,720 Ngunit ito ay talagang hindi. 602 00:27:13,720 --> 00:27:15,310 Gusto naming buong Turing na isang salita. 603 00:27:15,310 --> 00:27:17,760 Kaya dapat mayroon kaming isang bagay sa end na nagsasabing, binabati kita, 604 00:27:17,760 --> 00:27:19,051 nakakita ka ng lehitimong salita. 605 00:27:19,051 --> 00:27:21,680 Madla: Kaya kung mayroon ka na tulad ng 26 titik sa alpabeto, 606 00:27:21,680 --> 00:27:24,560 Gusto talaga mayroon kang 27 mga susi sa iyong try? 607 00:27:24,560 --> 00:27:26,010 >> Hannah: Galing, oo. 608 00:27:26,010 --> 00:27:28,210 Kaya talaga, sa tingin ko na Magiging sa susunod na slide. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 Saan kung mayroon kang isang node sa iyong try, handa ka 611 00:27:32,880 --> 00:27:35,800 pagpunta sa magkaroon ng 27 mga bata sa halip na 26. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 Ang anumang mga katanungan na may na? 614 00:27:40,050 --> 00:27:40,550 Oo? 615 00:27:40,550 --> 00:27:44,569 Madla: Bakit pagsubok tumagal ng hanggang kaya magkano ang espasyo [hindi marinig] bilang ka pumunta? 616 00:27:44,569 --> 00:27:47,629 Bakit itinuturing na ito upang maging [hindi marinig]? 617 00:27:47,629 --> 00:27:48,170 Hannah: Oo naman. 618 00:27:48,170 --> 00:27:48,790 Sabihin bumalik. 619 00:27:48,790 --> 00:27:52,350 Ang tanong ay, kung bakit mga pagsubok kaya magkano ang mas malaking 620 00:27:52,350 --> 00:27:54,620 kaysa sa isang bagay tulad ng isang hash table. 621 00:27:54,620 --> 00:27:57,790 Kaya para sa bawat isa sa mga antas, kahit na hindi sila iginuhit dito, 622 00:27:57,790 --> 00:28:01,250 kailangan mong magkaroon ang lahat ng 26 mga character. 623 00:28:01,250 --> 00:28:04,420 At ang dahilan na hindi magagawa sabihin, oh, ngunit tulad ng para sa Turing, ako 624 00:28:04,420 --> 00:28:07,570 Hindi kailangang magkaroon ng alinman sa mga parehong bagay sa antas ng U. Well, 625 00:28:07,570 --> 00:28:11,390 kung biglang gusto mong idagdag isang bagay na tulad ng T-H, 626 00:28:11,390 --> 00:28:14,800 Gusto kailangan mong magkaroon ng kakayahan ng pagdagdag ng naturang salita. 627 00:28:14,800 --> 00:28:17,330 Kaya para sa bawat solong titik, ka ng pagpunta sa may 628 00:28:17,330 --> 00:28:19,730 na magkaroon ng isang bungkos ng array na nanggagaling off ng mga ito. 629 00:28:19,730 --> 00:28:24,060 Kaya maaari mong makita kung paano gusto ito makakuha ng talagang malaki, talagang mabilis. 630 00:28:24,060 --> 00:28:26,560 Anumang iba pang mga katanungan? 631 00:28:26,560 --> 00:28:28,980 Lahat ng karapatan. 632 00:28:28,980 --> 00:28:29,832 Oo? 633 00:28:29,832 --> 00:28:33,210 >> Madla: Kapag pagsubok mas mabilis kaysa sa hash talahanayan? 634 00:28:33,210 --> 00:28:36,280 >> Hannah: Kapag pagsubok mas mabilis kaysa sa hash talahanayan? 635 00:28:36,280 --> 00:28:39,120 Kaya kung mayroon kang isang talagang masamang hash. 636 00:28:39,120 --> 00:28:41,840 Kaya sabihin nating ako ay tulad, narito ang iyong hash. 637 00:28:41,840 --> 00:28:43,660 Anuman ang salita bigyan mo ako, lagi ako 638 00:28:43,660 --> 00:28:47,740 pagpunta sa ilagay ito sa array entry 0. 639 00:28:47,740 --> 00:28:52,000 At kaya napupunta kami sa pamamagitan lamang ng paglalagay ng lahat sa isang malaking listahan ng mahaba-link. 640 00:28:52,000 --> 00:28:58,740 At kaya ng lookup oras ay tumagal sa pinakamalala n kung ito ay sa pinakadulo ng aming listahan. 641 00:28:58,740 --> 00:29:03,150 Gamit ang try, mayroon lang namin na umulit sa pamamagitan ng mga titik sa salita. 642 00:29:03,150 --> 00:29:07,080 Kaya kahit na nagdagdag kami ng isang bungkos higit pang mga salita sa aming try, 643 00:29:07,080 --> 00:29:09,620 ito ay hindi kumuha sa amin anumang mas mahaba upang mahanap ang isang partikular na salita. 644 00:29:09,620 --> 00:29:11,750 >> Ang lahat ng mayroon kaming gawin ay, para sa Halimbawa, sa kasong ito, 645 00:29:11,750 --> 00:29:17,170 sabihin nating kaming naghahanap ng mga zoom, Gusto naming mayroon lamang upang umulit sa paglipas ng 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, apat na titik. 647 00:29:19,840 --> 00:29:22,250 Kaya ito lamang ang haba ng salita zoom. 648 00:29:22,250 --> 00:29:25,400 Hindi mahalaga kung gaano karaming higit pang mga salita naming ilagay sa try. 649 00:29:25,400 --> 00:29:30,225 Maaari Palagi kaming makakuha ng mga ito sa mga apat na hakbang. 650 00:29:30,225 --> 00:29:31,215 Kahanga-hanga. 651 00:29:31,215 --> 00:29:32,205 Oo? 652 00:29:32,205 --> 00:29:34,185 >> Madla: Kaya [hindi marinig] ay isang array, tama? 653 00:29:34,185 --> 00:29:35,322 >> Hannah: MM-Hm. 654 00:29:35,322 --> 00:29:37,155 Madla: Kung ikaw ay naghahanap ng [hindi marinig], 655 00:29:37,155 --> 00:29:40,929 Gusto kailangan mong pumunta sa pamamagitan ng ang iyong array upang mahanap ang [hindi marinig]? 656 00:29:40,929 --> 00:29:41,470 Hannah: Oo naman. 657 00:29:41,470 --> 00:29:44,000 Madla: Hindi na kumuha ng mas maraming oras? 658 00:29:44,000 --> 00:29:46,370 Hannah: Kung pupuntahan ko sabihin na ang aking array ay palaging 659 00:29:46,370 --> 00:29:49,250 magiging A, B, C, D, E, F, G, blah blah blah, 660 00:29:49,250 --> 00:29:51,630 kaya kung lagi kong malaman ito sa parehong eksaktong pagkakasunod-sunod, 661 00:29:51,630 --> 00:29:53,880 kung palagi kong malaman ito sa alpabetikong pagkakasunod-sunod, 662 00:29:53,880 --> 00:29:57,860 Maaari ko lang sabihin O ang numero ng sa gayon sa alpabeto. 663 00:29:57,860 --> 00:29:59,620 Tumalon lamang sa lugar na iyon. 664 00:29:59,620 --> 00:30:01,860 Dahil tandaan, may array, maaari naming ma-access ang 665 00:30:01,860 --> 00:30:06,590 anumang elemento ng array na sa pare-pareho oras kung alam namin kung saan kami hinahanap. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 Oo? 668 00:30:09,580 --> 00:30:12,005 >> Madla: Sa nakaraang -slide [hindi marinig] 27, 669 00:30:12,005 --> 00:30:14,430 ngunit 26 para sa unang isa. 670 00:30:14,430 --> 00:30:15,400 >> Hannah: Paumanhin? 671 00:30:15,400 --> 00:30:18,800 >> Madla: Ay hindi ang unang isa 0, nito ay hindi ito 26? 672 00:30:18,800 --> 00:30:24,900 >> Hannah: Oo naman, kaya kapag sinabi naming 27, na pagpunta sa bigyan kami ng mga indeks ng 0 sa pamamagitan ng 26. 673 00:30:24,900 --> 00:30:28,220 Ngunit kung aktwal mong bilangin mga palabas, ito ay magiging 27. 674 00:30:28,220 --> 00:30:30,007 Magandang katanungan. 675 00:30:30,007 --> 00:30:30,590 Ano pa? 676 00:30:30,590 --> 00:30:31,200 Oo? 677 00:30:31,200 --> 00:30:34,420 >> Madla: Kaya ang mga pagsubok mas mabagal kaysa sa hash talahanayan? 678 00:30:34,420 --> 00:30:37,920 >> Hannah: sinusubukan ay magiging, sa teorya, mas mabilis kaysa sa hash talahanayan 679 00:30:37,920 --> 00:30:39,760 pero mas maraming memory. 680 00:30:39,760 --> 00:30:40,534 Oo? 681 00:30:40,534 --> 00:30:41,450 Madla: [hindi marinig]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> Hannah: Sorry, hindi ko narinig mo. 684 00:30:47,484 --> 00:30:48,400 Madla: [hindi marinig]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0-25 ay nagbibigay sa iyo 26. 687 00:30:54,100 --> 00:30:56,958 >> Hannah: 0-25 gagawin magbibigay sa iyo ng 26, i-right. 688 00:30:56,958 --> 00:30:58,457 >> Madla: At pagkatapos ay [hindi marinig]. 689 00:30:58,457 --> 00:30:59,040 Hannah: I-right. 690 00:30:59,040 --> 00:31:04,760 Kaya ang bilang namin na tumutukoy ay ang bilang ng mga bagay sa aming array. 691 00:31:04,760 --> 00:31:07,260 Kaya kung mayroon kaming 27, ito ay pagpunta sa magbibigay sa amin ng 0 692 00:31:07,260 --> 00:31:10,620 sa pamamagitan ng 26, na kung saan ay magbibigay sa amin kuwarto para sa, sa kasong ito, 693 00:31:10,620 --> 00:31:12,770 Hindi ako kabilang ang isang kudlit. 694 00:31:12,770 --> 00:31:17,040 Kaya namin ang nakukuha 0 hanggang 25 ay ang unang 26 titik ng alpabeto ng, 695 00:31:17,040 --> 00:31:18,990 o ang lahat ng 26 titik ng alpabeto. 696 00:31:18,990 --> 00:31:21,190 At pagkatapos ay ang huling bagay, sa entry 26, ay 697 00:31:21,190 --> 00:31:24,598 magiging sa check mark, o ang delta. 698 00:31:24,598 --> 00:31:26,960 Ano pa? 699 00:31:26,960 --> 00:31:29,130 Kahanga-hanga. 700 00:31:29,130 --> 00:31:30,020 Nawala ang aking espasyo. 701 00:31:30,020 --> 00:31:31,020 OK, cool. 702 00:31:31,020 --> 00:31:33,240 >> Kaya namin na hinawakan sa ito. 703 00:31:33,240 --> 00:31:37,430 Ngunit ang malaking kalakalan-off sa pagitan ng pagsubok at hash talahanayan 704 00:31:37,430 --> 00:31:39,720 ay na pagsubok magbigay ng, sa teorya, pare-pareho hanapin 705 00:31:39,720 --> 00:31:42,890 beses ngunit gumamit ng isang buong maraming memory. 706 00:31:42,890 --> 00:31:46,495 Ang lahat ng mga karapatan, ngayon kami ay may bahagyang mas komplikadong mga kaayusan, 707 00:31:46,495 --> 00:31:49,640 at makikita gawin namin sa C, at kami ilipat ang karapatan kasama. 708 00:31:49,640 --> 00:31:51,930 >> Kaya stack, nakita namin na ito magbigay ng panayam sa kung saan mo 709 00:31:51,930 --> 00:31:55,020 May isang bagay tulad ng isang stack ng mga trays kung saan 710 00:31:55,020 --> 00:31:57,330 ang huling bagay na inilagay mo sa stack ay pagpunta 711 00:31:57,330 --> 00:31:59,500 upang maging ang unang bagay na magdadala sa iyo off. 712 00:31:59,500 --> 00:32:02,880 Kaya iyon ang talagang tumutukoy sa isang stack ay ang huling bagay na inilagay mo sa 713 00:32:02,880 --> 00:32:06,080 ay magiging unang bagay na magdadala sa iyo off. 714 00:32:06,080 --> 00:32:09,279 At ang mga terminolohiya na ginagamit namin kung kami ay pagpunta sa ilagay ang isang bagay, 715 00:32:09,279 --> 00:32:12,070 kung kami ay pagpunta sa magdagdag ng isang bagay sa ang aming stack, tinatawag namin na pagtulak. 716 00:32:12,070 --> 00:32:14,970 At kung tumagal kami ng isang bagay -off, tinatawag namin itong popping. 717 00:32:14,970 --> 00:32:17,080 At kung kami ay pagpunta sa ipatupad ang stack, namin 718 00:32:17,080 --> 00:32:20,660 kailangan mong siguraduhin na subaybayan ang mga pareho ang laki at ang kapasidad. 719 00:32:20,660 --> 00:32:24,940 Kaya ang kabuuang bilang ng mga elemento ng aming makakaya matagal at ang kasalukuyang numero ng mga elemento 720 00:32:24,940 --> 00:32:27,880 na aming hinahawakan. 721 00:32:27,880 --> 00:32:29,885 >> At napaka katulad, mayroon kaming queues. 722 00:32:29,885 --> 00:32:34,510 At ang tanging pagkakaiba ay sa halip na sa mga stack, 723 00:32:34,510 --> 00:32:37,630 Sinabi namin ang huling bagay ilalagay namin sa ay ang unang bagay na lubos naming off. 724 00:32:37,630 --> 00:32:40,940 Kaya sa queues, ang ang unang bagay na inilalagay namin sa 725 00:32:40,940 --> 00:32:43,129 ay magiging ang ang unang bagay na lubos naming out. 726 00:32:43,129 --> 00:32:45,420 Kaya ito ay tulad ng kung ikaw ay talaga lining up sa isang tindahan 727 00:32:45,420 --> 00:32:48,140 at na kayo ay nakatulong, pagkatapos ay ang unang tao sa linya 728 00:32:48,140 --> 00:32:50,880 ay dapat na ang unang tao na nakatulong. 729 00:32:50,880 --> 00:32:52,220 Kaya na ay magiging isang queue. 730 00:32:52,220 --> 00:32:55,880 >> Kaya kailangan namin upang subaybayan ang laki, kakayahan, at ulo dahil hindi kami 731 00:32:55,880 --> 00:33:01,130 pagpunta sa tumagal ng lahat ng tao sa may unahan ng listahan sa halip na sa likod. 732 00:33:01,130 --> 00:33:03,480 Mga Tanong sa iyon? 733 00:33:03,480 --> 00:33:06,330 Anumang C mga tanong na Iniistorbo iyo? 734 00:33:06,330 --> 00:33:09,590 Mga istraktura ng data, alinman sa na nakakatuwang bagay? 735 00:33:09,590 --> 00:33:10,530 Ang lahat ng mga karapatan, cool. 736 00:33:10,530 --> 00:33:14,120 Kaya makikita ipasa ko ito sa paglipas ng sa Alison sa tumalon sa ilang higit pang mga programming. 737 00:33:14,120 --> 00:33:15,965 >> Alison: Oh, ipapakita namin makita. 738 00:33:15,965 --> 00:33:17,370 Susubukan naming makita kung gaano kahusay ang gagawin ko dito. 739 00:33:17,370 --> 00:33:21,410 OK, pupunta ako upang subukan at lumipad sa pamamagitan ng mga bagay-bagay na ito, guys. 740 00:33:21,410 --> 00:33:24,540 Nagpunta Hannah napaka sa lalim sa lahat ng kanyang mga bagay. 741 00:33:24,540 --> 00:33:26,900 Pupunta ako sa subukan upang bigyan ka ng isang mabilis na pangkalahatang-ideya sabog 742 00:33:26,900 --> 00:33:31,290 upang maaari naming makapunta sa Davin sa lahat ang saya ng JavaScript at seguridad bagay 743 00:33:31,290 --> 00:33:33,380 na siguro mo talaga nais na makarinig nang higit pa tungkol. 744 00:33:33,380 --> 00:33:36,600 >> OK, tulad ng sinabi Hannah, kung mayroon kang anumang mga katanungan, 745 00:33:36,600 --> 00:33:39,170 Pupunta ako masyadong mabilis, mangyaring, ipaalam sa akin. 746 00:33:39,170 --> 00:33:42,114 Ako ay sagutin ang mga tanong kung kinakailangan. 747 00:33:42,114 --> 00:33:45,280 Kaya upang simulan, kami ay pagpunta sa magsimula sa Marahil isa sa mga unang bagay 748 00:33:45,280 --> 00:33:48,730 Natutunan mo sa web programming, na pahintulot. 749 00:33:48,730 --> 00:33:52,720 Dapat pa kaya chmod, mo guys Masters sa ito sa lahat ng mga web 750 00:33:52,720 --> 00:33:54,870 programming na iyong Na-paggawa kani-kanina lamang. 751 00:33:54,870 --> 00:33:57,320 Ito ay isa lamang na utos lamang na nagbabago ang mga pahintulot 752 00:33:57,320 --> 00:34:00,779 o ang mga pahintulot ng access sa aming mga bagay na file system. 753 00:34:00,779 --> 00:34:02,570 Siyempre, sa aktwal makita ang mga ito, kung ikaw ay 754 00:34:02,570 --> 00:34:04,910 pagkakaroon ng anumang mga problema sa mga sa panahon ng iyong mga hanay ng problema, 755 00:34:04,910 --> 00:34:11,460 maaaring ginamit mo l -l, na kung saan ay mahaba, upang makuha ang uri ng view ng tulad nito, 756 00:34:11,460 --> 00:34:14,209 kung saan mo talaga makita ang lahat ng ang mga pahintulot para sa isang file. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> At talagang, kami ay lamang ng pagpunta sa pumunta sa pamamagitan ng medyo mabilis na medyo lamang 759 00:34:20,732 --> 00:34:21,940 magkano kung ano ang ibig sabihin ng bawat isa sa mga ito. 760 00:34:21,940 --> 00:34:24,481 Kaya na d namin dito mismo, na lamang ay kumakatawan sa direktoryo. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 Malinaw dito mismo, makikita natin rwx, na ay nababasa, writeable, at executable. 763 00:34:31,739 --> 00:34:37,090 Ang mga ay maaari ring katawanin bilang mga piraso, na aming makakuha sa sa susunod na pahina. 764 00:34:37,090 --> 00:34:40,699 Kaya sa bawat isang bagay na may tatlong bahagi na nakita natin dito, kaya tatlong triads. 765 00:34:40,699 --> 00:34:48,120 Kami ay rwx, r walang x at r walang x para sa unang file. 766 00:34:48,120 --> 00:34:49,690 Ito ay ang pangkalahatang istraktura. 767 00:34:49,690 --> 00:34:50,940 >> Kaya mayroon kaming ilang mga direktoryo. 768 00:34:50,940 --> 00:34:53,999 Mayroon kaming ilang mga grupo ng gumagamit may mga pahintulot na ito. 769 00:34:53,999 --> 00:34:57,040 Ang ilang mga pangkat na may mga pahintulot na ito, at isang mundo na may pahintulot. 770 00:34:57,040 --> 00:34:59,420 Maaari mong isipin na ito bilang isang isang bagay na may tatlong bahagi. 771 00:34:59,420 --> 00:35:01,130 Maaari mong isipin na ito bilang mga tatlong piraso. 772 00:35:01,130 --> 00:35:04,060 Kaya maaari silang hawakan halaga kahit saan mula 0 hanggang 773 00:35:04,060 --> 00:35:07,350 hanggang 7, na ang dahilan kung bakit minsan namin ay may gawin mo chmod 774 00:35:07,350 --> 00:35:17,510 600 sa halip ng chmod RW kahit anong. 775 00:35:17,510 --> 00:35:19,170 Susubukan naming makakuha ng sa isang halimbawa doon. 776 00:35:19,170 --> 00:35:24,260 Ngunit isa lamang, maaari mong isipin ng mga bilang alinman sa rwx lamang, 777 00:35:24,260 --> 00:35:28,520 o maaari mong isipin ang mga ito bilang ilang mga numero kung saan ang unang isa dito 778 00:35:28,520 --> 00:35:31,480 ay kumakatawan sa isang numero sa pagitan ng 0 at 7, ang pangalawang isa 779 00:35:31,480 --> 00:35:33,970 ay kumakatawan sa isang numero sa pagitan ng 0 at 7, at ang ikatlong isa 780 00:35:33,970 --> 00:35:38,245 ay kumakatawan sa isang numero sa pagitan ng 0 at 7, OK? 781 00:35:38,245 --> 00:35:42,700 >> May halaga ng 4. w r May isang halaga ng 2, at x 782 00:35:42,700 --> 00:35:49,230 May isang halaga ng 1, na siyang dahilan kung bakit ito pahintulot dito ay chmod 700. 783 00:35:49,230 --> 00:35:53,520 Dahil sa kasong ito dito, sinasabi nito na tayo na ang unang bit doon ay Binaligtad nang on. 784 00:35:53,520 --> 00:35:55,380 Kaya mayroon kaming 4 para nabasa na. 785 00:35:55,380 --> 00:35:58,730 Ang pangalawang bit ay Binaligtad nang sa para sa w, na 2, kaya ngayon ay mayroon kaming 6. 786 00:35:58,730 --> 00:36:02,070 At ang ikatlong bit ay Binaligtad nang sa para sa x, na kung saan ay 1, kaya makakakuha tayo ng pitong. 787 00:36:02,070 --> 00:36:04,820 At siyempre, ang aming grupo at ating mundo ay bawat 0. 788 00:36:04,820 --> 00:36:07,770 Kaya ito rin ang katumbas ng chmod 700. 789 00:36:07,770 --> 00:36:12,081 At gusto kong subukan Siguradong sa maunawaan ang pagma-map sa pagitan ng mga iyon. 790 00:36:12,081 --> 00:36:14,080 Hindi ako sigurado kung ito ay may makabuo ng sa isang pagsusulit bago, 791 00:36:14,080 --> 00:36:18,590 ngunit magiging isang tanong na maaaring kong tanungin. 792 00:36:18,590 --> 00:36:22,110 >> Lang nang kaunti ng pagpunta kahit higit sa chmod dito, dito 793 00:36:22,110 --> 00:36:27,730 ay ang napaka-general istraktura ng chmod tawag. 794 00:36:27,730 --> 00:36:29,500 Kaya siyempre, na-chmod namin dito. 795 00:36:29,500 --> 00:36:34,410 Mga sanggunian, ano ito ay tumutukoy sa ay na binibigyan namin ang mga pahintulot sa 796 00:36:34,410 --> 00:36:36,570 o na namin ang pagkuha mga pahintulot ang layo mula sa. 797 00:36:36,570 --> 00:36:44,330 Kaya mayroon kaming dito sa pahintulot, tulad ng binigyan ka namin ng chmod ng plus x, 798 00:36:44,330 --> 00:36:45,440 dahil kakailanganin namin makita sa lalong madaling panahon. 799 00:36:45,440 --> 00:36:48,460 isang lamang ay nangangahulugan na nagbibigay sa mga partikular na mga pahintulot sa lahat. 800 00:36:48,460 --> 00:36:49,600 Bigyan ang mga ito sa lahat. 801 00:36:49,600 --> 00:36:55,370 Kaya na maaari mong nang mahusay may u plus x o g plus x o o plus x o maramihang 802 00:36:55,370 --> 00:36:55,870 hinggil doon. 803 00:36:55,870 --> 00:36:59,280 Kaya ang unang bahagi ay palaging magiging mga sanggunian. 804 00:36:59,280 --> 00:37:03,220 Sino binibigyan namin ang mga pahintulot sa, o na namin ang pagkuha sa kanila ang layo mula sa? 805 00:37:03,220 --> 00:37:04,850 >> Ang ikalawang isa ay ang operator. 806 00:37:04,850 --> 00:37:07,350 Kaya mo guys na karamihan ay Aaksyunan plus. 807 00:37:07,350 --> 00:37:12,140 Ito ay nagbibigay sa mga pahintulot sa kahit sino ka pagbibigay sa kanila, 808 00:37:12,140 --> 00:37:14,840 samantalang ang minus, lohikal, inaalis ang mga ito. 809 00:37:14,840 --> 00:37:16,880 Kaya masyadong kakila-kilabot wala doon. 810 00:37:16,880 --> 00:37:23,060 At pagkatapos mode ay kung ano usapan natin ang tungkol sa pagbabasa, pagsusulat, o e-execute. 811 00:37:23,060 --> 00:37:29,070 Kaya plus x nangangahulugan bigyan executable mga pahintulot sa lahat. 812 00:37:29,070 --> 00:37:33,430 At pagkatapos ay, siyempre, kung saan tiyak na file o direktoryo. 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 Ang bawat tao'y maganda sa chmod? 815 00:37:36,010 --> 00:37:37,850 Huwag masyadong masama? 816 00:37:37,850 --> 00:37:42,417 >> OK, kaya ang HTML, alinman sa iyo ay hustong gulang to-- edad MySpace? 817 00:37:42,417 --> 00:37:44,750 Ipinadala ko ito sa aking seksyon, at literal kalahati ng mga tao 818 00:37:44,750 --> 00:37:45,790 tumingin sa akin tulad ng ako ay mabaliw. 819 00:37:45,790 --> 00:37:47,498 At ako ay tulad ng, guys, hindi namin na gulang. 820 00:37:47,498 --> 00:37:48,910 Halika sa. 821 00:37:48,910 --> 00:37:53,360 Kaya Hypertext Markup Language, ito ay totoo lang ng paraan para sa iyo 822 00:37:53,360 --> 00:37:57,990 upang ipakita ang ilang mga bagay sa web. 823 00:37:57,990 --> 00:37:59,210 Kaya ito ay isang markup language. 824 00:37:59,210 --> 00:38:00,640 Ito ay hindi isang wika scripting. 825 00:38:00,640 --> 00:38:02,160 Walang logic sa loob nito. 826 00:38:02,160 --> 00:38:05,710 Ito ay simpleng upang baguhin ang paraan ng isang bagay ay ipinapakita. 827 00:38:05,710 --> 00:38:07,670 OK, kaya na ang isang mahalagang pagtatangi dapat gawin. 828 00:38:07,670 --> 00:38:12,030 Ito ay itinuturing na isang markup language, hindi isang wika scripting. 829 00:38:12,030 --> 00:38:15,100 >> Kaya dito mayroon kaming mga tag na HTML. 830 00:38:15,100 --> 00:38:20,390 Sa slide na ito ay malamang na ang karamihan sa mga mga na dapat ay pamilyar sa 831 00:38:20,390 --> 00:38:22,390 at maging tunay na maginhawa para sa iyo. 832 00:38:22,390 --> 00:38:25,700 Kaya malinaw naman, mayroon kaming ang aming HTML tag, na 833 00:38:25,700 --> 00:38:29,930 designates na ang lahat sa sa pagitan ng dalawang ay magiging HTML. 834 00:38:29,930 --> 00:38:33,070 Mayroon kaming ilang mga link, na malinaw naman ay magbibigay sa iyo 835 00:38:33,070 --> 00:38:34,990 ng isang link sa isang panlabas na web page. 836 00:38:34,990 --> 00:38:37,520 Ang ilang mga pamagat, sa loob ng aming ulo dito. 837 00:38:37,520 --> 00:38:40,020 At mayroon kaming katawan na may h1, na isang header, 838 00:38:40,020 --> 00:38:42,260 kaya makikita ito gawin itong maganda at naka-bold at mas malaki. 839 00:38:42,260 --> 00:38:46,040 At pagkatapos, mayroon kaming ilang mga p, na isang talata. 840 00:38:46,040 --> 00:38:49,000 Dapat mong malamang alam at maging pamilyar sa mga bagay 841 00:38:49,000 --> 00:38:54,030 tulad ng kung paano mo ipasok ang isang imahe, ay Mayroon bang anumang iba pang header ng klase? 842 00:38:54,030 --> 00:38:57,240 Gusto ko talagang maging kumportable sa div. 843 00:38:57,240 --> 00:39:00,840 Kaya ang mga may karamihan ng mga tag na dapat ay pamilyar sa iyo. 844 00:39:00,840 --> 00:39:04,370 Ngunit siyempre, tulad ng sa lahat ng bagay sa CS 50, ang listahan ay hindi malawakan. 845 00:39:04,370 --> 00:39:08,200 Kaya tiyaking ka mag-ayos sa iyon. 846 00:39:08,200 --> 00:39:13,260 >> CSS, kaya CSS, kung ang alinman sa mong panoorin ang aking mga seminar mula sa dalawang linggo nakaraan, 847 00:39:13,260 --> 00:39:16,250 ay talagang lamang ng isang paraan Estilo sa iyong web page? 848 00:39:16,250 --> 00:39:18,950 OK, kaya mayroon kaming ilang mga markup language. 849 00:39:18,950 --> 00:39:23,220 HTML, na tumatagal ng pag-aalaga ng lang ang teksto at kung saan maaari itong maging sa pahina. 850 00:39:23,220 --> 00:39:25,760 Ngunit CSS ay talagang kung ano ang ginagawang mas kaakit-akit. 851 00:39:25,760 --> 00:39:30,690 Maaari kang magkaroon ng mga ito sa iyong HTML mga file, ngunit bilang ay namin makipag-usap tungkol sa ibang pagkakataon, 852 00:39:30,690 --> 00:39:32,660 Ako ay medyo sigurado maaari itong ang susunod na slide, ito 853 00:39:32,660 --> 00:39:35,620 karaniwang kasanayan, at talagang kasanayan na namin talagang hinihikayat, 854 00:39:35,620 --> 00:39:40,670 para sa iyo upang panatilihin pinaghiwalay ang mga ito kapag namin makipag-usap tungkol sa MVC at ang buong tularan. 855 00:39:40,670 --> 00:39:42,490 Iyan ay talagang kung ano ang feed sa. 856 00:39:42,490 --> 00:39:46,110 >> Kaya ang CSS ay isang paraan lamang upang gumawa ng mga bagay na tumingin kaakit-akit. 857 00:39:46,110 --> 00:39:50,500 Ang mga bagay dito, tulad ng katawan at #title at .info, 858 00:39:50,500 --> 00:39:54,340 ito ay tinatawag na tagapili at kung ano ang ginagawa nila ay piliin ang mga ito tukoy na bagay 859 00:39:54,340 --> 00:39:59,260 sa loob ng iyong HTML file at ilapat ang anumang estilo, 860 00:39:59,260 --> 00:40:04,090 kahit anong uri ng mga bagay na gusto mo, sa partikular na elemento ng iyong web 861 00:40:04,090 --> 00:40:04,590 na pahina. 862 00:40:04,590 --> 00:40:08,820 Kaya dito, mayroon kaming kulay ng background at kulay 863 00:40:08,820 --> 00:40:12,450 at isang pamilya ng font na pagiging mailapat sa anumang ay sa katawan. 864 00:40:12,450 --> 00:40:15,530 Kaya kung kami ay tumingin muli rito, hindi umaaplay sa mga pamagat. 865 00:40:15,530 --> 00:40:22,340 Ito ay nalalapat lamang sa kung ano ang sa mga katawan tagapili, OK? 866 00:40:22,340 --> 00:40:25,250 >> Gamit ang pamagat dito, ito ay magiging ang parehong bagay, 867 00:40:25,250 --> 00:40:28,410 ang kulay ng teksto pagiging asul ay pupunta lamang 868 00:40:28,410 --> 00:40:33,870 upang maapektuhan kung ano ang loob ang tagapili pamagat. 869 00:40:33,870 --> 00:40:36,580 Pati na rin ang impormasyon dito, ang teksto ay magiging kulay-rosas, 870 00:40:36,580 --> 00:40:38,600 kahit anong ng impormasyon, na dito mismo. 871 00:40:38,600 --> 00:40:40,860 Kaya ang tanging bagay na ay magiging kulay rosas sa pahinang ito 872 00:40:40,860 --> 00:40:44,100 ay petsa, Lunes Nobyembre 17, 2014. 873 00:40:44,100 --> 00:40:48,770 OK, kaya CSS ay isang paraan lamang upang Mayroon oo mas higit na kontrol over--? 874 00:40:48,770 --> 00:40:51,850 >> Madla: Bakit kailangan mo gamitin ang hash na may pamagat? 875 00:40:51,850 --> 00:40:55,170 >> Hannah: Susunod na slide, ipinapangako! 876 00:40:55,170 --> 00:40:56,810 Susubukan naming makarating doon. 877 00:40:56,810 --> 00:40:59,830 Kaya ito ang dahilan kung bakit mayroon kaming upang gamitin ang hash. 878 00:40:59,830 --> 00:41:03,429 Kaya tagapili tumagal sa tatlong pangunahing mga form na makipag-usap namin sa iyo guys tungkol sa. 879 00:41:03,429 --> 00:41:05,595 Fyou ko nais upang matuto nang higit pa, napakaraming out doon. 880 00:41:05,595 --> 00:41:07,540 May mahusay na dokumentasyon ng CSS. 881 00:41:07,540 --> 00:41:12,680 Mayroong isang name tag, na kung saan ay gawin sa pamamagitan lamang ng iyong normal na mga tag sa HTML. 882 00:41:12,680 --> 00:41:17,210 Kaya h1, p, div, h2, mga uri ng mga bagay. 883 00:41:17,210 --> 00:41:20,320 At maaari naming lamang pangalanan ang mga ito nang walang pagbabago. 884 00:41:20,320 --> 00:41:22,650 Kaya bilang makita namin dito sa katawan, ito ay isang normal na tag. 885 00:41:22,650 --> 00:41:26,660 Kaya maaari lamang naming ilagay katawan kapag kami ay pakikipag-usap sa aming mga CSS file. 886 00:41:26,660 --> 00:41:29,730 >> Gamit ang pamagat, ang buong dahilan namin Mayroon ito ng hash ay mayroon kaming kung ano ang 887 00:41:29,730 --> 00:41:31,010 isinasaalang-alang ng ID. 888 00:41:31,010 --> 00:41:35,400 Kaya isang ID dapat palaging magiging natatanging sa loob ng iyong pahina ng HTML 889 00:41:35,400 --> 00:41:37,930 nang sa gayon ay kapag ikaw ay nagre-refer na ito, ikaw 890 00:41:37,930 --> 00:41:41,990 malaman na lamang ka nagre-refer na sa isang partikular na bagay. 891 00:41:41,990 --> 00:41:46,270 Kaya sa kasong ito dito, gamit ang aming h1 dito, CS 50 review session, 892 00:41:46,270 --> 00:41:47,810 mayroon kaming isang id ng pamagat. 893 00:41:47,810 --> 00:41:54,280 Kaya upang sumangguni lamang sa na piraso ng aming HTML, mayroon kaming isang pamagat hash. 894 00:41:54,280 --> 00:41:58,080 Sa pamamagitan lamang ng convention, mga ID ay itinalagang may hash sa harap ng mga ito. 895 00:41:58,080 --> 00:42:01,650 Sa katulad na paraan, makikita natin impormasyon dito ay isang klase. 896 00:42:01,650 --> 00:42:06,070 At kaya klase sa CSS ay itinalaga bilang isang tuldok klase 897 00:42:06,070 --> 00:42:08,895 o tuldok ang kahit anong klase na. 898 00:42:08,895 --> 00:42:10,850 Kaya sa kasong ito dito, ito ay info. 899 00:42:10,850 --> 00:42:13,090 >> Kaya kumuha ako ng ito pabalik. 900 00:42:13,090 --> 00:42:16,200 Pareho sa mga ito ay magiging Mga kulay rosas na para sa aming mga CSS dito 901 00:42:16,200 --> 00:42:18,430 dahil pareho silang may isang klase ng impormasyon. 902 00:42:18,430 --> 00:42:23,070 At sa aming mga CSS file, na itinalaga kami na kahit ano sa isang klase ng impormasyon 903 00:42:23,070 --> 00:42:24,120 ay dapat pink. 904 00:42:24,120 --> 00:42:25,968 Ba na magkaroon ng kahulugan? 905 00:42:25,968 --> 00:42:27,435 Oo? 906 00:42:27,435 --> 00:42:30,731 >> Madla: Kung kayo ay upang gawing lahat ng bagay sa katawan puti, 907 00:42:30,731 --> 00:42:32,814 at pagkatapos ay subukang mong gumawa ng mga isang bagay sa loob nito ang bughaw, 908 00:42:32,814 --> 00:42:34,770 Gusto na magdulot ng mga problema? 909 00:42:34,770 --> 00:42:37,310 >> Hannah: Kaya CSS ay style cascading sheet. 910 00:42:37,310 --> 00:42:40,730 Kaya kahit anong ay patungo sa ibaba ay ang mananaig. 911 00:42:40,730 --> 00:42:44,080 Kaya kung gagawin mo ng isang bagay sa katawan, at kang magsagawa ng mga puting lahat, 912 00:42:44,080 --> 00:42:49,300 at pagkatapos ay sa ibang pagkakataon sa mong baguhin ang pamagat o babaguhin mo ang teksto sa loob ng katawan, 913 00:42:49,300 --> 00:42:50,560 overwrites ito na. 914 00:42:50,560 --> 00:42:55,360 Kaya kahit ano patungo sa ibaba ay ang mananaig. 915 00:42:55,360 --> 00:42:56,730 Oo? 916 00:42:56,730 --> 00:42:59,627 >> Madla: At ID ay natatangi, ngunit klase ay maaaring maging higit pa? 917 00:42:59,627 --> 00:43:00,210 Hannah: I-right. 918 00:43:00,210 --> 00:43:06,320 Kaya dapat na natatangi ID, at mga klase ay maaaring -refer sa bilang ng maraming mga bagay hangga't gusto mo. 919 00:43:06,320 --> 00:43:07,580 Anumang iba pang mga katanungan? 920 00:43:07,580 --> 00:43:09,800 Oo. 921 00:43:09,800 --> 00:43:11,210 >> Madla: [hindi marinig]. 922 00:43:11,210 --> 00:43:13,509 Ako nagtataka kung na gumagawa ng isang pagkakaiba. 923 00:43:13,509 --> 00:43:15,217 Hannah: Sorry, kung ano ang pinag-uusapan? 924 00:43:15,217 --> 00:43:18,960 Madla: May maliit "F" at capital "F." 925 00:43:18,960 --> 00:43:21,440 Hannah: Kaya ang pagkakaiba sa pagitan ng maliit na "f" at capital "F" 926 00:43:21,440 --> 00:43:22,606 hindi dapat gumawa ng isang pagkakaiba. 927 00:43:22,606 --> 00:43:26,330 Kaya "f" ay magiging 15 alinman paraan. 928 00:43:26,330 --> 00:43:28,130 Mahusay, kahit ano? 929 00:43:28,130 --> 00:43:29,930 Ang bawat tao'y mabuti, CSS? 930 00:43:29,930 --> 00:43:30,850 Oo? 931 00:43:30,850 --> 00:43:31,790 >> Madla: Paumanhin. 932 00:43:31,790 --> 00:43:35,550 Puwede kang isang klase at isang ID? 933 00:43:35,550 --> 00:43:38,030 >> Hannah: Oo, magagawa mo na. 934 00:43:38,030 --> 00:43:40,420 Bagay na maaaring parehong magkaroon ng isang klase at isang ID. 935 00:43:40,420 --> 00:43:44,670 At masidhing kong inirerekumendang sinusubukan ang mga ito sa iyong sariling. 936 00:43:44,670 --> 00:43:50,480 CSS ay pinakamahusay na kang matuto sa pamamagitan lamang ng paggawa ng isang bagay, napaka-simpleng web page, 937 00:43:50,480 --> 00:43:53,440 pagguhit ng ilang CSS, at lamang nakakakita kung paano sila nakikipag-ugnayan. 938 00:43:53,440 --> 00:43:56,970 At magkakaroon ka ng isang magandang, intuitive pakiramdam para sa kung paano ito gumagana. 939 00:43:56,970 --> 00:43:58,810 >> OK, lahat maganda sa CSS? 940 00:43:58,810 --> 00:44:01,280 Handa ka pagpunta sa gawin magandang website na may CSS ngayon. 941 00:44:01,280 --> 00:44:05,460 OK, pinakamahusay na kasanayan, tulad lamang mga bagay na dapat tandaan, mga bagay 942 00:44:05,460 --> 00:44:09,810 that-- ito ang dahilan kung bakit namin i-dock mo para sa designer at watnat. 943 00:44:09,810 --> 00:44:11,820 Kaya isara ang lahat ng iyong mga tag na HTML. 944 00:44:11,820 --> 00:44:14,840 Kaya kung mayroon kang isang bukas na katawan, dapat ay may malapit katawan. 945 00:44:14,840 --> 00:44:18,180 Kung mayroon kang isang bukas na talata, dapat ay may malapit na talata. 946 00:44:18,180 --> 00:44:19,555 Suriin upang makita na napatunayan ang iyong mga pahina. 947 00:44:19,555 --> 00:44:23,330 Dapat maging napaka-pamilyar sa iyo guys may ito mula p-set pitong 948 00:44:23,330 --> 00:44:26,350 may CS 50 pinansya sa W3 validator. 949 00:44:26,350 --> 00:44:28,340 At tulad ng sinabi ko bago, isa sa aming malaking paradigms 950 00:44:28,340 --> 00:44:33,780 ay naghihiwalay sa iyong mga istilo na may CSS mula sa iyong markup, na HTML. 951 00:44:33,780 --> 00:44:36,900 At pagkatapos ay, siyempre, mayroon kaming ang magandang XKCD pababa dito. 952 00:44:36,900 --> 00:44:38,280 Ayos, comic relief! 953 00:44:38,280 --> 00:44:41,340 >> OK, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 Sa pagitan ng mga ito at HTTP, talaga ang mga ito ay parehong mga protocol. 955 00:44:44,650 --> 00:44:46,810 Kaya maaari mong isipin lamang sa kanila bilang isang hanay ng mga panuntunan 956 00:44:46,810 --> 00:44:50,110 na namamahala sa kung paano bagay ilipat sa buong internet. 957 00:44:50,110 --> 00:44:53,410 Kaya transmisyon control protocol, o internet protocol, 958 00:44:53,410 --> 00:44:57,280 ay isang paraan lamang upang matiyak nakakakuha na data kung saan ito ang nangyayari 959 00:44:57,280 --> 00:45:00,030 at alam namin kung kailanman namin ang nawawalang data. 960 00:45:00,030 --> 00:45:03,520 Kaya kung guys sa tingin pabalik sa panayam ilang linggo na nakalipas na may David 961 00:45:03,520 --> 00:45:06,980 kung saan namin ay may apat na sobre, ang mga ito ay lahat ng bilang na tulad ng isa sa apat na, 962 00:45:06,980 --> 00:45:11,300 dalawa sa apat, tatlo sa apat, apat sa apat, ito ay isang hanay lamang ng mga panuntunan. 963 00:45:11,300 --> 00:45:13,830 Sinabi namin, OK, sa tuwing kami ay pagpapadala ng higit sa isang packet, 964 00:45:13,830 --> 00:45:16,610 kami ay pagpunta sa numero ito sa kung ano ang numero ng ito ay 965 00:45:16,610 --> 00:45:19,040 at kung gaano karaming mga kabuuang na dapat makuha ng gumagamit. 966 00:45:19,040 --> 00:45:22,540 >> At ito ay lamang na nagsasabi kung sinuman ay tumatanggap sa data kung sila 967 00:45:22,540 --> 00:45:26,120 nakuha mo ang lahat o kung isang bagay Kaka nawala sa kahabaan ng paraan. 968 00:45:26,120 --> 00:45:28,840 At kailangan nila upang humingi itong muli. 969 00:45:28,840 --> 00:45:31,140 Ito ay talagang isang hanay lamang ng mga panuntunan. 970 00:45:31,140 --> 00:45:33,650 Iyon ay kung paano mo maaaring isipin na ito, OK? 971 00:45:33,650 --> 00:45:37,700 At din, tinutukoy nito ang port, na ka guys can-- alam ko sa panahon ng panayam, 972 00:45:37,700 --> 00:45:39,170 sila ay nagkaroon ng isang buong listahan ng mga daungan. 973 00:45:39,170 --> 00:45:41,630 Ngunit wala kaming sila dito ngayon. 974 00:45:41,630 --> 00:45:45,290 >> Kaya hypertext transfer protocol ay, muli, ito ay isa pang protocol. 975 00:45:45,290 --> 00:45:48,630 Kaya isa pang hanay ng mga panuntunan na namamahala, sa kasong ito, 976 00:45:48,630 --> 00:45:51,130 paano hypertext ay inilipat. 977 00:45:51,130 --> 00:45:54,340 Kaya nagbibigay-daan ito lamang browser upang makipag-usap sa mga web server. 978 00:45:54,340 --> 00:45:56,910 At tulad ng sinabi namin dito, ito ay tulad ng handshaking tao. 979 00:45:56,910 --> 00:46:00,480 Ito ay lamang ng isang paraan upang pamahalaan kung paano ang web server ay 980 00:46:00,480 --> 00:46:02,690 pagpunta sa makipag-ugnayan sa iyong browser. 981 00:46:02,690 --> 00:46:05,660 At mayroon kaming lang ng ilang mga halimbawa. 982 00:46:05,660 --> 00:46:09,100 Mayroon kaming ilang mga kahilingan dito kung saan GET ay ang pamamaraan. 983 00:46:09,100 --> 00:46:13,760 Mayroon kaming HTTP 1.1, na bersyon ng protocol para sa amin. 984 00:46:13,760 --> 00:46:17,230 At pagkatapos, ang host, na siya talaga naming sinusubukan mong i-access. 985 00:46:17,230 --> 00:46:21,800 At pagkatapos, tulad ng nakikita mo rito, namin makakuha ng ilang mga tugon sa 200 986 00:46:21,800 --> 00:46:25,032 OK ng aming code ng tugon ng HTTP. 987 00:46:25,032 --> 00:46:27,240 Mayroon kaming isang malaking listahan pupuntahan ko upang hilahin sa isang segundo 988 00:46:27,240 --> 00:46:29,430 na iyong guys ay dapat na pamilyar sa iyo. 989 00:46:29,430 --> 00:46:35,750 At mayroon kaming ito uri ng nilalaman ng teksto / HTML, na lamang ang sinasabi kung anong uri ng data 990 00:46:35,750 --> 00:46:39,990 ay namin natatanggap mula sa server, OK? 991 00:46:39,990 --> 00:46:44,230 Ang host at ang uri ng nilalaman ay bahagi ng header ng HTTP. 992 00:46:44,230 --> 00:46:49,610 Maaari kang magkaroon ng kaunting o kasing liit ng kailangan para sa konteksto ng kung ano 993 00:46:49,610 --> 00:46:50,580 ka pagharap sa. 994 00:46:50,580 --> 00:46:53,371 Minsan magkakaroon ka ng maraming impormasyon na nanggagaling mula sa iyong server. 995 00:46:53,371 --> 00:46:56,040 Siguro sila ay humihiling ng maraming ng impormasyon mula sa user. 996 00:46:56,040 --> 00:46:57,600 Ito ay nag-iiba depende sa konteksto. 997 00:46:57,600 --> 00:47:01,144 Kung tumingin ka sa CS 50 Pag-aaral, maraming higit sa na. 998 00:47:01,144 --> 00:47:03,060 Ngunit kami ay may maraming upang makakuha ng sa pamamagitan ng, kaya ako pupunta 999 00:47:03,060 --> 00:47:05,760 upang pumunta karapatan maaga kung na OK lang sa iyo guys? 1000 00:47:05,760 --> 00:47:07,960 Ayos. 1001 00:47:07,960 --> 00:47:08,460 Sandali. 1002 00:47:08,460 --> 00:47:11,182 Mayroon akong tiyak na buong listahan of-- huh! 1003 00:47:11,182 --> 00:47:13,140 Hindi ko alam kung bakit ito ang lahat ng mga paraan sa paglipas dito. 1004 00:47:13,140 --> 00:47:15,660 Akala ko literal ko inilipat ito habang ako ay sitting-- 1005 00:47:15,660 --> 00:47:16,540 >> DAVIN: Nais mo bang magturo ito? 1006 00:47:16,540 --> 00:47:17,420 O ang gusto sa akin upang turuan ito? 1007 00:47:17,420 --> 00:47:20,010 >> Madla: Akala ko dati namin ipakita lamang ang mga ito na magsimula sa. 1008 00:47:20,010 --> 00:47:22,210 Ibig kong sabihin, maaari kang pumunta sa ito pa, ngunit ko 1009 00:47:22,210 --> 00:47:26,030 Naisip ginawa itong mas kamalayan dahil ako ay pakikipag-usap lamang tungkol sa mga katayuan ng HTTP. 1010 00:47:26,030 --> 00:47:28,200 Kaya narito ang buong listahan. 1011 00:47:28,200 --> 00:47:31,730 Sa tingin ko kung ano ang nangyayari sa mangyari ay Davin ay pagpunta sa pumunta sa mga ito sa ibang pagkakataon. 1012 00:47:31,730 --> 00:47:35,330 Ngunit mayroong isang buong listahan, isang preview ng panlasa darating. 1013 00:47:35,330 --> 00:47:41,640 OK, kami ay pagpunta sa blow-- ito ay pagpunta upang maging isang pag-crash PHP kurso tulad ng walang iba pang mga. 1014 00:47:41,640 --> 00:47:44,874 >> Kaya PHP, hypertext preprocessor, ito ay isang recursive backronym, 1015 00:47:44,874 --> 00:47:46,540 na nangangahulugan na ito ay pinangalanang ibang bagay. 1016 00:47:46,540 --> 00:47:49,050 At pagkatapos ay sila ay tulad, ito Hindi talaga magkaroon ng kahulugan. 1017 00:47:49,050 --> 00:47:52,210 Kaya pinangalanan lamang sila it-- at ito ay isang acronym, 1018 00:47:52,210 --> 00:47:54,840 kaya ginawa ito PHP lang nila hypertext preprocessor, na 1019 00:47:54,840 --> 00:47:55,980 lamang ay hindi gumagawa ng kahulugan. 1020 00:47:55,980 --> 00:47:57,714 Masaya kuwento. 1021 00:47:57,714 --> 00:47:58,880 Ito ay isang programming language. 1022 00:47:58,880 --> 00:48:02,360 Kaya hangga't bigyang-diin ko na HTML ay hindi isang programming language, 1023 00:48:02,360 --> 00:48:05,350 ito ay isang markup language, PHP ay isang programming language. 1024 00:48:05,350 --> 00:48:07,422 Paano mo malalaman na ito ay dahil may logic. 1025 00:48:07,422 --> 00:48:08,380 May conditionals. 1026 00:48:08,380 --> 00:48:12,750 Mayroon kaming mga variable, samantalang kami may wala sa mga bagay sa HTML. 1027 00:48:12,750 --> 00:48:16,960 >> Ang lahat ng mga karapatan, pagkatapos ay mayroon kaming maliit na ito bit dito na tulad ng isang lasa ng PHP. 1028 00:48:16,960 --> 00:48:20,510 Kaya mga pangunahing kaalaman, variable na mga pangalan magsimula sa isang dolyar sign. 1029 00:48:20,510 --> 00:48:21,500 Maraming tao ang may gusto nito. 1030 00:48:21,500 --> 00:48:22,371 Reminds sa atin ng pera. 1031 00:48:22,371 --> 00:48:22,995 Napakaganda lahat. 1032 00:48:22,995 --> 00:48:25,280 Namin ang lahat ng nais na PHP. 1033 00:48:25,280 --> 00:48:28,020 Kaya hindi namin tukuyin ang isang uri ng variable na ngayon ni. 1034 00:48:28,020 --> 00:48:29,995 Ito ay natukoy sa run oras. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 Ang interpreter ay magiging tulad ng, naku, makikita tumakbo lang namin sa pamamagitan ng, 1037 00:48:35,890 --> 00:48:39,565 at ayon sa konteksto, ipapakita namin makita kung anong uri ng mga uri 1038 00:48:39,565 --> 00:48:41,560 ang mga variable na kailangang magkaroon. 1039 00:48:41,560 --> 00:48:42,815 Walang pangunahing pag-andar. 1040 00:48:42,815 --> 00:48:43,690 Mga bagay ay tatakbo lamang. 1041 00:48:43,690 --> 00:48:47,851 Ikaw guys gamit ang iyong pag-import sa iyong huling p-set, mapapansin mo ito. 1042 00:48:47,851 --> 00:48:49,350 Nagkaroon hindi talagang isang pangunahing pag-andar. 1043 00:48:49,350 --> 00:48:52,070 Nagsulat lang kung ano ang kang gustong mangyari. 1044 00:48:52,070 --> 00:48:53,280 At ito lamang ang uri ng nangyari. 1045 00:48:53,280 --> 00:48:56,760 Kaya na PHP para sa iyo. 1046 00:48:56,760 --> 00:48:59,180 >> Ang mga array ay halos katulad na. 1047 00:48:59,180 --> 00:49:01,270 Mayroon pa kaming ito bracket. 1048 00:49:01,270 --> 00:49:05,940 Dito, mayroon kaming ilang mga variable tinatawag na arr, at ito ay katumbas ng 1049 00:49:05,940 --> 00:49:08,540 to-- mayroon namin ang aming normal bracket pagtatanda. 1050 00:49:08,540 --> 00:49:10,630 At mayroon kaming ilang mga pangunahing halaga. 1051 00:49:10,630 --> 00:49:14,630 At ang malaking pagkakaiba sa pagitan ng C at PHP array 1052 00:49:14,630 --> 00:49:19,330 ay magkaroon kami ng mga ito associate-- maaari naming iugnay ang mga halaga sa mga key. 1053 00:49:19,330 --> 00:49:22,440 Kaya sa halip na lamang nagkakaroon isang array na ay na-index 1054 00:49:22,440 --> 00:49:26,630 sa pamamagitan ng bilang o ng posisyon ng elemento na sa array, 1055 00:49:26,630 --> 00:49:29,060 maaari naming aktwal na iugnay ito sa isang susi. 1056 00:49:29,060 --> 00:49:36,700 Kung saan kami maaaring sabihin, OK, gusto kong kahit anong halaga ay kaugnay ng prutas. 1057 00:49:36,700 --> 00:49:39,280 At siguro mayroon kaming nagpunta prutas sa saging. 1058 00:49:39,280 --> 00:49:41,760 Kaya nais itong bumalik saging sa amin. 1059 00:49:41,760 --> 00:49:44,100 >> Ngunit talaga, ang pinaka malakas na bagay tungkol dito 1060 00:49:44,100 --> 00:49:47,960 ay kung ikaw guys tandaan ang demo mula sa panayam kung saan kami talaga 1061 00:49:47,960 --> 00:49:53,050 rewrote speller sa PHP, at ito was-- lookup ay talagang lamang gusto, 1062 00:49:53,050 --> 00:49:55,007 umiiral ang key na ito? 1063 00:49:55,007 --> 00:49:56,590 Iyon ay talagang uri ng kapangyarihan nito. 1064 00:49:56,590 --> 00:49:58,560 Hindi mo kailangang upang umulit sa pamamagitan ng iyong array. 1065 00:49:58,560 --> 00:50:00,311 Hindi mo na kailangang malaman ano na espasyo ito ay nasa. 1066 00:50:00,311 --> 00:50:01,976 Ito ay maaaring maging sa dulo o simula. 1067 00:50:01,976 --> 00:50:04,790 Hangga't alam mo ang key na kaugnay sa ang halaga, 1068 00:50:04,790 --> 00:50:09,740 PHP maaari lamang dumura halaga na kanan-back out sa iyo, OK? 1069 00:50:09,740 --> 00:50:12,960 >> At pagkatapos, kami din lamang mayroon dahil lang namin 1070 00:50:12,960 --> 00:50:16,750 ay maaaring magkaroon ng mga pares ng key na halaga ay hindi nangangahulugan na ikaw ay may sa. 1071 00:50:16,750 --> 00:50:19,180 Maaari ka ring lumikha lamang isang normal na array tulad dito, 1072 00:50:19,180 --> 00:50:21,540 sa ibaba, kung saan ito ay lamang ng isa, dalawa, tatlo, apat. 1073 00:50:21,540 --> 00:50:22,510 Iyon ang aming mga halaga. 1074 00:50:22,510 --> 00:50:25,320 At sa katunayan, ang kanilang mga susi ay ang mga indeks. 1075 00:50:25,320 --> 00:50:26,830 Kaya ang susi para sa isa ay zero. 1076 00:50:26,830 --> 00:50:28,610 Ang susi para sa dalawang ay magiging isa. 1077 00:50:28,610 --> 00:50:31,910 Kaya sa at iba pa, maliban kung kung tahasan mong magtalaga ng isang key, 1078 00:50:31,910 --> 00:50:34,630 maaari mong ipalagay na ang halaga ay ang kanilang mga index lamang. 1079 00:50:34,630 --> 00:50:37,290 Ba na magkaroon ng kahulugan sa lahat? 1080 00:50:37,290 --> 00:50:38,070 Wala pang mga tanong? 1081 00:50:38,070 --> 00:50:38,930 Kahanga-hanga. 1082 00:50:38,930 --> 00:50:44,420 >> OK, foreach ay isang paraan upang umulit sa pamamagitan ng iyong array. 1083 00:50:44,420 --> 00:50:47,490 Kaya mayroon kaming isang bagay dito, lamang ang pangkalahatang istraktura. 1084 00:50:47,490 --> 00:50:51,020 Kaya foreach, ang pangalan ng ang aming array, bilang kahit anong 1085 00:50:51,020 --> 00:50:53,930 Gusto mo upang tawagan ang isa't sangkap sa iyong array, 1086 00:50:53,930 --> 00:50:57,270 at maaari naming gawin ang isang bagay na may na elemento o sa halaga na iyon. 1087 00:50:57,270 --> 00:50:58,680 Kaya mayroon kaming isang halimbawa dito. 1088 00:50:58,680 --> 00:51:05,770 Mayroon kaming isang nag-uugnay array gamit ang dalawang mga entry 1089 00:51:05,770 --> 00:51:10,080 may bar nauugnay sa foo at qux nauugnay sa baz. 1090 00:51:10,080 --> 00:51:12,180 Kaya key ay foo at baz. 1091 00:51:12,180 --> 00:51:13,650 Ang mga value ay bar at qux. 1092 00:51:13,650 --> 00:51:18,560 Kaya foreach, mayroon kaming aming array dito, pati na ang susi pares ng halaga. 1093 00:51:18,560 --> 00:51:21,560 Ito ay nagpapahintulot sa amin na i-access pareho ang susi at halaga. 1094 00:51:21,560 --> 00:51:23,680 Siguro gusto mo lamang ang halaga, kung saan 1095 00:51:23,680 --> 00:51:27,640 maaari mong gawin tulad arr bilang $ halaga, at pagkatapos ay sa iyo 1096 00:51:27,640 --> 00:51:30,640 -a-access lamang ang halaga bilang umulit iyo sa pamamagitan ng. 1097 00:51:30,640 --> 00:51:32,600 Pero siguro, para sa ilang kadahilanang ito, nais mo ang key, 1098 00:51:32,600 --> 00:51:35,460 na ang dahilan kung bakit ko pinili halimbawang ito sa halip. 1099 00:51:35,460 --> 00:51:40,240 Kaya maaari mong aktwal na manipulahin susi at halaga sa kasong ito. 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 Tanong? 1102 00:51:41,905 --> 00:51:44,279 >> Madla: Kung nais mong manipulahin lamang ang susi, ay 1103 00:51:44,279 --> 00:51:45,910 kailangan mo lang gawin foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> Alison: I-right. 1105 00:51:47,360 --> 00:51:50,560 Kaya kung nais na manipulahin lang ang key, 1106 00:51:50,560 --> 00:51:53,680 mangangailangan ito ka pa rin syntax dahil kung lamang 1107 00:51:53,680 --> 00:51:56,930 Mayroon arr bilang isang bagay, bilang isang bagay, ito ay 1108 00:51:56,930 --> 00:52:00,070 pagpunta sa ipagpalagay na nais mong ang halaga, hindi ang susi. 1109 00:52:00,070 --> 00:52:06,780 Kaya kung sakaling ikaw ay tulad lamang ng arr bilang, marahil ito ay tulad ng $ elemento, 1110 00:52:06,780 --> 00:52:11,670 ito ay pagpunta sa ipagpalagay na ikaw ay nagtatanong para lamang sa halaga sa bawat punto. 1111 00:52:11,670 --> 00:52:13,879 Kung malinaw na gusto mo upang gawin ang isang bagay gamit ang key, 1112 00:52:13,879 --> 00:52:16,170 kahit na hindi ka naka-pagpunta sa gumawa ng anumang bagay na may halaga, 1113 00:52:16,170 --> 00:52:18,430 kailangan mo ng istraktura na ito mayroon kaming dito 1114 00:52:18,430 --> 00:52:22,330 kung saan tahasan mong hinihiling para sa parehong mga key at ang halaga. 1115 00:52:22,330 --> 00:52:24,170 Mahusay na tanong. 1116 00:52:24,170 --> 00:52:25,940 Ano pa? 1117 00:52:25,940 --> 00:52:27,490 Ayos. 1118 00:52:27,490 --> 00:52:29,911 >> Ang lahat ng mga karapatan, PHP at HTML. 1119 00:52:29,911 --> 00:52:31,410 Oh, hindi namin pabalik sa p-set muli pitong. 1120 00:52:31,410 --> 00:52:35,380 Kaya ito ay dapat magmukhang medyo pamilyar. 1121 00:52:35,380 --> 00:52:41,760 Kaya ito ay ilang simpleng form na HTML na may ilang mga pangalan ng halo-input. 1122 00:52:41,760 --> 00:52:43,820 At nakita namin na mayroon kami sa aming mga pamamaraan ng GET. 1123 00:52:43,820 --> 00:52:47,430 At kung tandaan namin mula sa aming p-set, kapag ang form na ito ay isinumite, 1124 00:52:47,430 --> 00:52:58,130 nagpapadala ito ng isang array na tinatawag na $ _GET na may lahat ng mga input o mga variable mula sa 1125 00:52:58,130 --> 00:53:00,490 ang form na dapat ay manipulahin sa aming PHP. 1126 00:53:00,490 --> 00:53:03,320 Kaya sa kasong ito, ang user ay maglalagay sa kanilang pangalan. 1127 00:53:03,320 --> 00:53:04,370 Isumite ang mga ito dito. 1128 00:53:04,370 --> 00:53:07,810 At nakita namin na makuha namin ang ilang mga array dito. 1129 00:53:07,810 --> 00:53:09,080 Mayroon kaming aming GET array. 1130 00:53:09,080 --> 00:53:11,510 At kami ay pag-access ng pangalan. 1131 00:53:11,510 --> 00:53:15,070 >> Kaya na nagsasabing, OK, ako ang halaga na kaugnay sa pangalan, 1132 00:53:15,070 --> 00:53:16,550 pangalanan ang pagiging key dito. 1133 00:53:16,550 --> 00:53:21,400 At na mapa nang direkta sa kung ano Sinabi namin ang aming pangalan input ay. 1134 00:53:21,400 --> 00:53:28,960 Kaya ito ay nagbibigay sa iyo ng ang susi sa kung ano ay magiging sa iyong array dito. 1135 00:53:28,960 --> 00:53:31,220 Ba na magkaroon ng kahulugan sa lahat? 1136 00:53:31,220 --> 00:53:32,070 Oo? 1137 00:53:32,070 --> 00:53:36,240 >> Madla: ba ang pangalan sa Kumuha sumangguni sa mga lilang linya sa [hindi marinig]? 1138 00:53:36,240 --> 00:53:37,740 >> Alison: Ito ay tumutukoy sa ito dito. 1139 00:53:37,740 --> 00:53:43,840 Kaya patlang na ito dito mismo, ito ay tumutukoy sa pangalan na ito dito. 1140 00:53:43,840 --> 00:53:47,800 Kaya ito ay maaaring may pangalang tulad ng numero ng telepono, o anumang. 1141 00:53:47,800 --> 00:53:51,790 Ang pangalan na ito talaga ang sinasabi, ano mo sa pagtawag patlang na ito? 1142 00:53:51,790 --> 00:53:53,600 Paano ka pagpunta sa sumangguni sa patlang na ito? 1143 00:53:53,600 --> 00:53:57,670 At ang pangalang ito ay talagang gusto, hindi namin sinasabi ang patlang na ito ay tinatawag na pangalan. 1144 00:53:57,670 --> 00:53:59,224 Iyon ay kung paano namin pagpunta upang ma-access ito. 1145 00:53:59,224 --> 00:54:02,070 >> Madla: Kaya ay nais na ito, pangalan ng input ay katumbas Bob, and-- 1146 00:54:02,070 --> 00:54:04,380 >> Alison: I-right, pagkatapos mo Gusto makuha ni Bob down na doon. 1147 00:54:04,380 --> 00:54:06,090 Mismong. 1148 00:54:06,090 --> 00:54:07,800 Ang bawat tao'y cool? 1149 00:54:07,800 --> 00:54:10,990 Ang lahat ng mga karapatan, sa gayon GET kumpara sa POST, ang mga ito ay ang dalawang pangunahing mga paraan 1150 00:54:10,990 --> 00:54:14,880 na dumadaan kami ng data sa isang HTTP na kahilingan. 1151 00:54:14,880 --> 00:54:17,370 Dapat na nakita mo guys ang parehong mga sana. 1152 00:54:17,370 --> 00:54:20,940 Kaya sa GET, ang impormasyon Lumipas pamamagitan ng URL. 1153 00:54:20,940 --> 00:54:23,490 Kaya kung sakaling gagawin mo sa Google paghahanap, YouTube, kakailanganin mong 1154 00:54:23,490 --> 00:54:25,130 Marahil na ang ilang mga tandang pananong. 1155 00:54:25,130 --> 00:54:28,230 At pagkatapos, ang lahat ng mga salita na inilagay mo lamang doon. 1156 00:54:28,230 --> 00:54:31,410 At POST dumadaan ang data sa katawan ng HTTP mensahe. 1157 00:54:31,410 --> 00:54:36,922 Kaya hindi tulad ng GET, ikaw uri ng isaalang-alang na ang data na nakatago mula sa user. 1158 00:54:36,922 --> 00:54:38,630 Ngunit kung ano talaga Mahalagang maunawaan 1159 00:54:38,630 --> 00:54:44,040 ay na ito ay pa rin tulad ng hindi ligtas na bilang GET. 1160 00:54:44,040 --> 00:54:48,780 Ang pagkakatulad gusto kong gamitin ay kung mayroon kang numero ng iyong account sa bangko 1161 00:54:48,780 --> 00:54:52,795 at isulat ito sa labas ng isang sobre, na Kahanga hindi ligtas. 1162 00:54:52,795 --> 00:54:55,920 Kung kayo ay upang isulat ito sa isang piraso ng papel at ilagay ito sa loob ng sobre, 1163 00:54:55,920 --> 00:54:58,850 talaga hindi ligtas dahil pa rin ang kailangan mo lang gawin ay buksan na up 1164 00:54:58,850 --> 00:55:03,480 at tumingin sa aktwal na nilalaman ng mensahe upang makita na. 1165 00:55:03,480 --> 00:55:08,310 Kaya ito ay "nakatagong," at mga taong katulad sa sa tingin ito ay ligtas, ngunit ito ay talagang hindi. 1166 00:55:08,310 --> 00:55:11,000 At ako sigurado Davin habilin dumapo na higit pa, siguro. 1167 00:55:11,000 --> 00:55:12,850 Ngunit ito ay isang mahalagang pagkakaiba upang gumawa ng 1168 00:55:12,850 --> 00:55:15,820 at isang bagay na talagang mahusay na maunawaan. 1169 00:55:15,820 --> 00:55:19,220 >> OK, SQL, nakabalangkas na Query Wika. 1170 00:55:19,220 --> 00:55:22,220 Ang lahat ng mga bagay-bagay na nasaksihan namin sa gayon kamakailan! 1171 00:55:22,220 --> 00:55:25,400 Kaya ito ay isa lamang dinisenyo lamang, malinaw naman, para sa pamamahala ng data. 1172 00:55:25,400 --> 00:55:30,560 Ikaw guys ay nagkaroon ng maraming karanasan sa ito sa iyong table na may PHP MyAdmin. 1173 00:55:30,560 --> 00:55:34,100 At mayroong apat na mga karaniwang katanungan na nais namin sa iyo guys malaman. 1174 00:55:34,100 --> 00:55:37,304 Kaya walang update, insert, piliin ang at tanggalin. 1175 00:55:37,304 --> 00:55:38,970 Kaya tiyaking alam mo ang mga talagang mahusay. 1176 00:55:38,970 --> 00:55:40,960 Kami ay pagpunta sa pumunta sa pamamagitan ng mga ito ay talagang mabilis. 1177 00:55:40,960 --> 00:55:44,340 >> Kaya mag-update, talaga, bilang kung ano maaari mong isipin na ginagawa nito, 1178 00:55:44,340 --> 00:55:46,740 -a-update ito lamang ang data sa iyong database. 1179 00:55:46,740 --> 00:55:48,750 Kaya mayroon kaming ilang mga halimbawa dito. 1180 00:55:48,750 --> 00:55:53,310 Ito ang pangkalahatang istraktura ng isang query update. 1181 00:55:53,310 --> 00:55:56,150 Kaya naming ina-update ang talahanayan na pinag-uusapan natin ang tungkol. 1182 00:55:56,150 --> 00:56:00,520 At gusto naming i-set ang ilang mga mga halaga, ang ilang mga hanay 1183 00:56:00,520 --> 00:56:02,600 katumbas ng partikular na halaga. 1184 00:56:02,600 --> 00:56:07,500 Kaya ina-update lang ito sa table, pagbabago mga halaga sa lahat ng mga hilera sa kasong ito. 1185 00:56:07,500 --> 00:56:13,690 Kaya sa isang ito pababa dito, isang aktwal na Halimbawa, mayroon kaming insert-- paumanhin. 1186 00:56:13,690 --> 00:56:17,630 Slide na advanced walang ako napagtatanto ito. 1187 00:56:17,630 --> 00:56:22,230 >> Kaya itakda col1 katumbas ito ng mga update talahanayan sa VAL1 kung saan ay katumbas ng house "Currier." 1188 00:56:22,230 --> 00:56:25,300 Ano ang isang ito gumagana ay nagbabago lamang ito, ito lamang 1189 00:56:25,300 --> 00:56:28,130 -a-update ang mga halagang ito sa partikular na mga lugar. 1190 00:56:28,130 --> 00:56:32,300 Kaya sa una, nagbago ang mga mga halaga para sa lahat ng bagay sa iyong talahanayan, 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 Ito ay pagpunta upang baguhin ito hanay para sa bawat solong entry, 1193 00:56:35,820 --> 00:56:37,020 para sa bawat solong hilera. 1194 00:56:37,020 --> 00:56:40,840 Ngunit ito kung saan, maaari mong isipin na ito bilang isang Qualifier. 1195 00:56:40,840 --> 00:56:44,020 Kaya itong ibang mapupuntahan kundi upang baguhin ito sa napaka-tukoy na mga lugar. 1196 00:56:44,020 --> 00:56:47,840 Kaya sa p-set pitong, kapag nag siguro na-update na ang halaga ng cash 1197 00:56:47,840 --> 00:56:53,050 na nagkaroon ng iyong user, malamang na nagkaroon ilang kung saan ay katumbas ng ID ng session ID, tama? 1198 00:56:53,050 --> 00:56:55,280 >> Dahil hindi ka nais na baguhin ang halaga ng cash 1199 00:56:55,280 --> 00:56:57,630 para sa lahat ng taong ay gumagamit ng iyong website. 1200 00:56:57,630 --> 00:57:00,480 Nais mo bang baguhin ito para sa isa partikular na tao, ang taong iyon sa pagiging 1201 00:57:00,480 --> 00:57:02,410 kahit sino ay gamitin ito sa oras na iyon. 1202 00:57:02,410 --> 00:57:04,320 Mag-right? 1203 00:57:04,320 --> 00:57:07,510 OK, kaya magpasok, ipasok ang ang ilang mga halaga sa talahanayan. 1204 00:57:07,510 --> 00:57:11,650 Ito ay tulad ng kapag ikaw ay paglikha ng isang bagong tatak ng user. 1205 00:57:11,650 --> 00:57:14,240 Ang pangkalahatang istraktura dito ay ipasok sa kahit anong mesa 1206 00:57:14,240 --> 00:57:15,680 kami ay pakikipag-usap tungkol sa. 1207 00:57:15,680 --> 00:57:18,910 Mga Halaga, pagiging ang mga halaga na talaga namin nais na ipasok. 1208 00:57:18,910 --> 00:57:23,060 OK, sa gayon ay makita namin dito, namin Na ipasok sa table. 1209 00:57:23,060 --> 00:57:27,790 Ito ay tiyak na mga hanay na may corresponded kanilang mga halaga. 1210 00:57:27,790 --> 00:57:29,940 Kaya ito ang sinasabi, insert ng isang bagong hilera na naglalaman ng 1211 00:57:29,940 --> 00:57:33,660 mga halaga VAL1 at VAL2 sa ilalim ng ang mga tiyak na hanay. 1212 00:57:33,660 --> 00:57:39,240 >> Kaya marahil gusto mo lamang na punan ang kalahati ng mga bagay sa hanay na ito. 1213 00:57:39,240 --> 00:57:41,150 Iyon ay kung ano ang nagbibigay-daan dito bahaging ito gawin mo. 1214 00:57:41,150 --> 00:57:43,280 Hinahayaan ka nitong talaga matukoy kung aling mga bahagi. 1215 00:57:43,280 --> 00:57:44,244 Oo? 1216 00:57:44,244 --> 00:57:52,150 >> Madla: Maaari bang mo lamang [hindi marinig] mga cell sa hanay [hindi marinig]? 1217 00:57:52,150 --> 00:57:55,000 >> Alison: Kung punan mo lamang sa ilang mga bahagi ng iyong hilera, 1218 00:57:55,000 --> 00:57:57,480 ang natitirang bahagi ng mga selula ay lamang walang laman. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 Hangga't pinapayagan mo ang mga ito sa walang laman, ito ay hindi isang problema. 1221 00:58:05,660 --> 00:58:09,570 Kung sinubukan mong i-access ang mga ito, ito ay pagpunta upang bumalik sa ilang mga walang laman na element. 1222 00:58:09,570 --> 00:58:13,850 Pero ito ay mahalagang malaman na sa ilang mga talahanayan, 1223 00:58:13,850 --> 00:58:16,690 sila ay pinapahintulutan upang maging null. 1224 00:58:16,690 --> 00:58:18,890 Maaaring makatagpo ng isang problema sa panahon ng iyong p-set 1225 00:58:18,890 --> 00:58:21,320 dahil hindi namin na ipaalam sa anumang ng iyong mga halaga null. 1226 00:58:21,320 --> 00:58:26,110 Ngunit maaari mong tukuyin ang isang opsyonal na halaga sa iyong talahanayan. 1227 00:58:26,110 --> 00:58:29,640 >> OK, piliin, kaya ito ay lamang ng isang paraan ng pagkuha ng 1228 00:58:29,640 --> 00:58:33,790 partikular na data mula sa isang talahanayan sa ang ilang mga pantukoy na gusto mo. 1229 00:58:33,790 --> 00:58:37,990 Kaya piliin ang bituin mula sa talahanayan kung saan siya ay katumbas ng isang bagay lamang ay nangangahulugan na, 1230 00:58:37,990 --> 00:58:43,820 bigyan ako ang lahat ng mga data na nauugnay kung saan ang partikular na hanay ay totoo. 1231 00:58:43,820 --> 00:58:49,020 Kaya habilin ang bituin sa kasong ito ibalik ang buong hilera sa iyo, OK? 1232 00:58:49,020 --> 00:58:54,880 >> At pagkatapos, sa kasong ito, piliin bituin mula sa talahanayan ay nagbibigay lamang sa iyo ang buong table. 1233 00:58:54,880 --> 00:58:58,940 At pagkatapos, tanggalin malinaw naman, lamang Tinatanggal ang mga hilera mula sa talahanayan. 1234 00:58:58,940 --> 00:59:01,320 Kaya tanggalin mula sa talahanayan, kahit anong mesa kami 1235 00:59:01,320 --> 00:59:06,830 na tumutukoy sa, kung saan ang ilang mga tukoy na pantukoy o ilang kondisyon ay totoo. 1236 00:59:06,830 --> 00:59:07,720 Oo? 1237 00:59:07,720 --> 00:59:08,700 >> Madla: Tanong. 1238 00:59:08,700 --> 00:59:10,699 Bakit mo gamit ang double quote, at kung 1239 00:59:10,699 --> 00:59:13,600 gawin double quote o single quote, aabutin gumawa ng isang pagkakaiba? 1240 00:59:13,600 --> 00:59:18,235 >> Alison: I-double quote o solong quote ay hindi gumagawa ng isang pagkakaiba sa SQL. 1241 00:59:18,235 --> 00:59:19,610 Akala ko Nakita ko ng isa pang tanong. 1242 00:59:19,610 --> 00:59:20,814 Oo? 1243 00:59:20,814 --> 00:59:25,070 >> Madla: Hindi ito makakaapekto sa kung ano ang maipo-escaped mula sa query? 1244 00:59:25,070 --> 00:59:27,945 >> Alison: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> Rob: Ano ang ibig mong sabihin sa pamamagitan ng escaped mula sa query? 1246 00:59:31,410 --> 00:59:36,870 >> Madla: Kung may isang taong may solong query sa anyo of-- 1247 00:59:36,870 --> 00:59:39,862 >> Rob: Kung may isang tao na para bang ilagay ang isang solong quote sa, 1248 00:59:39,862 --> 00:59:43,560 pagkatapos ay bilang hangga't naka-sanitizing iyong input, kung gayon ito ay hindi mahalaga. 1249 00:59:43,560 --> 00:59:46,205 Ngunit kung gumagamit ka ng isang solong quote at ikaw ay hindi tama 1250 00:59:46,205 --> 00:59:47,914 escaping iyong input, pagkatapos ay oo, kailangan nila 1251 00:59:47,914 --> 00:59:51,079 upang ilagay ang isang solong quote upang masira ang iyong code. kung gumagamit ka ng mga double quote, 1252 00:59:51,079 --> 00:59:53,580 kailangan nila upang maglagay ng double Ilagay sa mga sipi na putulin ang iyong code. 1253 00:59:53,580 --> 00:59:56,163 Ngunit hangga't makatakas sa mga bagay tama, hindi mahalaga. 1254 00:59:56,163 --> 00:59:59,220 Ito ang nangyayari lang i-translate sa tamang simbolo pa rin. 1255 00:59:59,220 --> 01:00:02,332 >> Madla: Ano ang ibig sabihin ng pagtakas? 1256 01:00:02,332 --> 01:00:04,040 Alison: Well, tulad ng sanitizing at makatakas. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 Ang pagsusulit na mayroon kami, ang mahusay na XKCD comic na makuha ang mga ito kung saan mayroon kang, 1259 01:00:13,820 --> 01:00:15,629 oh-- 1260 01:00:15,629 --> 01:00:16,670 Rob: Ito ang huling slide. 1261 01:00:16,670 --> 01:00:18,500 Alison: Ito ang huling slide, talaga? 1262 01:00:18,500 --> 01:00:20,200 Oh aking diyos. 1263 01:00:20,200 --> 01:00:21,780 May pumunta kami, perpekto. 1264 01:00:21,780 --> 01:00:27,900 OK, kaya isa lamang, maaari kang mag-iniksyon isang bagay sa ito SQL query 1265 01:00:27,900 --> 01:00:30,560 kung saan ito Pinaghihiwa iyong code, o bilang Nagpakita si David 1266 01:00:30,560 --> 01:00:38,460 sa klase, kung kami ay may ilang mga solong quote 1 ay katumbas ng 1 at kung sa aming code, 1267 01:00:38,460 --> 01:00:41,230 lamang direktang kopyahin namin na sa, at mayroon kaming isang pangwakas na single quote, 1268 01:00:41,230 --> 01:00:44,740 kung ano ang mangyayari ay makakakuha tayo ng ang ilang mga expression na 1269 01:00:44,740 --> 01:00:48,680 sinusuri sa true na habilin hayaan ang sinuman ipasok ang aming database 1270 01:00:48,680 --> 01:00:51,720 at kumuha ng data na aming ayaw ang mga ito upang makakuha ng. 1271 01:00:51,720 --> 01:00:54,240 Kaya sanitizing ang input Nangangahulugan lamang na tinitiyak 1272 01:00:54,240 --> 01:00:57,680 na escaping namin ang mga character at pagtatalaga ng mga ito 1273 01:00:57,680 --> 01:01:01,720 bilang char at hindi bagay na dapat na pinapayagan 1274 01:01:01,720 --> 01:01:04,990 upang madala literal bilang aming SQL pahayag. 1275 01:01:04,990 --> 01:01:09,980 >> Kaya ang sisikat na sinabi namin na iyong guys ay dapat na gamit 1276 01:01:09,980 --> 01:01:13,650 mga HTML mga espesyal na karakter, kung saan ay isang bagay 1277 01:01:13,650 --> 01:01:15,730 na maaaring gusto mong tingnan. 1278 01:01:15,730 --> 01:01:17,240 OK, tanggalin. 1279 01:01:17,240 --> 01:01:19,450 Uri ng data, ito ay ang lahat ng naka-online. 1280 01:01:19,450 --> 01:01:23,510 Dahil namin 15 minuto ang natitira, ako lamang ng pagpunta sa pumunta karapatan sa pamamagitan ng ito. 1281 01:01:23,510 --> 01:01:28,500 PHP at SQL, isa lamang ito lamang nagkaroon kami ng isang function query na 1282 01:01:28,500 --> 01:01:31,520 Nakatulong maprotektahan laban mga nakahahamak na pag-atake. 1283 01:01:31,520 --> 01:01:33,970 Kaya sa tuwing ginagamit mo ang query, nagsasagawa kami ay sigurado 1284 01:01:33,970 --> 01:01:36,560 na mga bagay ay sanitized at watnat. 1285 01:01:36,560 --> 01:01:41,070 >> MVC lamang ang disenyo tularan, kaya modelo, view, controller. 1286 01:01:41,070 --> 01:01:44,200 Ito ay lamang ng isang paraan upang panatilihin ang mga bagay maganda at maghiwalay sa parehong paraan 1287 01:01:44,200 --> 01:01:47,100 na may posibilidad namin upang magfa-factor ang code na ito sa function. 1288 01:01:47,100 --> 01:01:53,390 Ito ay lamang ng isang web disenyo balangkas na nagbibigay-daan sa iyo upang gawin ang parehong bagay. 1289 01:01:53,390 --> 01:01:54,760 Pupunta ako sa laktawan ito. 1290 01:01:54,760 --> 01:01:58,530 >> Ito ay isang bagay na ako ay magiging sobrang umaliw sa. 1291 01:01:58,530 --> 01:02:01,132 Ito ay isang mahusay na maliit na talahanayan doon. 1292 01:02:01,132 --> 01:02:03,090 Nagbibigay ito sa iyo ng pag-andar Halimbawa ng modelo. 1293 01:02:03,090 --> 01:02:05,473 Lamang ako pupunta sa pamamagitan na ito dahil ako Gusto talaga Davin para makapag-usap. 1294 01:02:05,473 --> 01:02:07,140 Kung mayroon kang anumang mga katanungan, mangyaring huwag mag-atubiling. 1295 01:02:07,140 --> 01:02:07,931 Makikita ko ba dito pagkatapos. 1296 01:02:07,931 --> 01:02:10,360 Lang bakit makipag-usap sa akin. 1297 01:02:10,360 --> 01:02:13,380 Gamit na, mayroon kaming mga katayuan ng HTTP. 1298 01:02:13,380 --> 01:02:16,270 At Davin ng pagpunta sa pumutok sa pamamagitan ng sa 15 minuto. 1299 01:02:16,270 --> 01:02:17,560 Ito ay magiging mahusay. 1300 01:02:17,560 --> 01:02:18,893 >> DAVIN: OK. 1301 01:02:18,893 --> 01:02:20,312 Uh, ang iyong mic? 1302 01:02:20,312 --> 01:02:22,210 Oo. 1303 01:02:22,210 --> 01:02:23,336 Sorry. 1304 01:02:23,336 --> 01:02:24,460 Alison: Way upang maging handa. 1305 01:02:24,460 --> 01:02:25,335 DAVIN: Hindi, handa na akong. 1306 01:02:25,335 --> 01:02:25,860 Handa na ako. 1307 01:02:25,860 --> 01:02:28,790 Ay gawin ito Hayaan. 1308 01:02:28,790 --> 01:02:29,290 Ito ay handa na. 1309 01:02:29,290 --> 01:02:30,041 OK. 1310 01:02:30,041 --> 01:02:30,540 Sorry. 1311 01:02:30,540 --> 01:02:31,664 Bubo ko ng kape sa aking sarili. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 Hindi ko alam kung ako higit pa Nababahala na tumingin ako nakakatawa, 1314 01:02:38,210 --> 01:02:40,600 o na wala akong nakikita kape. 1315 01:02:40,600 --> 01:02:44,480 Pa Rin, lamang ng isang mabilis na anunsyo tungkol sa sheet na iyong guys mayroon. 1316 01:02:44,480 --> 01:02:47,994 Kaya sheet na ito mayroon kang guys ay hindi ang opisyal kung ano ang nasa mga pagsusulit. 1317 01:02:47,994 --> 01:02:49,660 Ito ang opisyal kung ano ang nasa mga pagsusulit. 1318 01:02:49,660 --> 01:02:52,520 Gayundin, sa website, sabihin natin mo, OK, ito ay magiging sa pagsusulit. 1319 01:02:52,520 --> 01:02:55,020 Kaya sa mga maliit na impostor sheet mayroon ka, hindi opisyal. 1320 01:02:55,020 --> 01:02:56,690 At may mga pagkakamali dito. 1321 01:02:56,690 --> 01:03:01,490 Kaya pinakamahusay na huwag nang walang taros gamitin lamang ito. 1322 01:03:01,490 --> 01:03:04,390 Kaya oo, iyan ay na. 1323 01:03:04,390 --> 01:03:05,980 Kaya sabihin makakuha sa ito tunay na mabilis. 1324 01:03:05,980 --> 01:03:07,420 >> Kaya katayuan ng HTTP. 1325 01:03:07,420 --> 01:03:10,430 Kaya kung ano ang mangyayari kapag ang website, ang lahat ng bagay ay ang lahat ng karapatan. 1326 01:03:10,430 --> 01:03:11,144 OK Lahat ng. 1327 01:03:11,144 --> 01:03:13,310 Ang lahat ay bumalik sa sa iyo sa paraang gusto mo. 1328 01:03:13,310 --> 01:03:15,370 Nakakuha ka ng 200 OK. 1329 01:03:15,370 --> 01:03:19,250 301, kung saan naming nakita na 301 bago? 1330 01:03:19,250 --> 01:03:20,890 Maghintay, ano mayroon? 1331 01:03:20,890 --> 01:03:23,250 Sorry. 1332 01:03:23,250 --> 01:03:24,980 Nakita namin i lata panayam sa panahon ng seguridad. 1333 01:03:24,980 --> 01:03:30,690 Kaya sa panahon ng seguridad, kaya kung David nai-type sa http at pagkatapos ay sinubukan upang pumunta sa cs50.net, 1334 01:03:30,690 --> 01:03:31,940 na iyong pupuntahan upang makita ang 301 nailipat. 1335 01:03:31,940 --> 01:03:32,440 Bakit? 1336 01:03:32,440 --> 01:03:35,570 Dahil ito ang nangyayari upang i-redirect ikaw ay awtomatikong sa aming HTTPS. 1337 01:03:35,570 --> 01:03:38,649 >> Kaya 301 inilipat, lamang ito isa lamang pag-redirect. 1338 01:03:38,649 --> 01:03:40,190 At maaari mong isipin ang tungkol dito tulad nito. 1339 01:03:40,190 --> 01:03:43,790 Anuman sa mga katayuan na magsimula sa 2, ang mga ay tulad, OK, OK ang lahat ng. 1340 01:03:43,790 --> 01:03:46,530 Anuman sa mga katayuan na simulan may 3, ang mga ito ay pag-redirect. 1341 01:03:46,530 --> 01:03:49,571 Mga katayuan na magsimula sa 4, na nangangahulugan mayroong ilang mga uri ng error client. 1342 01:03:49,571 --> 01:03:52,440 Mga katayuan na magsimula sa 5, na ang ilang uri ng mga error sa server. 1343 01:03:52,440 --> 01:03:54,680 Kaya mo uri ng magbuwag ang mga katayuan ng ganyan. 1344 01:03:54,680 --> 01:03:59,120 Kaya 304 ay hindi hindi nabago, kaya sa iyong server.c p-set na, kaya hayaan sabihin sa iyo 1345 01:03:59,120 --> 01:04:00,600 -load cat.html. 1346 01:04:00,600 --> 01:04:03,360 Ang lahat ay bumalik, makakakuha ka ng 200s, OK, mahusay. 1347 01:04:03,360 --> 01:04:04,540 >> Sabihin nating refresh ito. 1348 01:04:04,540 --> 01:04:07,310 Well, sa loob na cat.html, mayroon kang isang JPEG. 1349 01:04:07,310 --> 01:04:09,520 Well, JPEG na hindi pagpunta upang reload. 1350 01:04:09,520 --> 01:04:12,140 Hindi ka pagpunta upang mag-post ng isa pang GET kahilingan sa server, 1351 01:04:12,140 --> 01:04:13,980 at pagkatapos ay makakuha ng lahat ng impormasyon na bumalik. 1352 01:04:13,980 --> 01:04:17,560 Ito ay pagpunta sa be-- lamang na imahe ay pagpunta sa i-cache sa iyong machine. 1353 01:04:17,560 --> 01:04:19,540 At upang ang imahe ay magiging isang 304. 1354 01:04:19,540 --> 01:04:20,720 Kaya ito ay hindi nabago. 1355 01:04:20,720 --> 01:04:24,600 Kung pagkatapos ay isara out ka, malinaw na mga cookies, at pagkatapos ay i-refresh 1356 01:04:24,600 --> 01:04:27,490 at subukang i-load ang pahina na muli, na iyong pupuntahan upang makita 200s. 1357 01:04:27,490 --> 01:04:28,910 Hindi ka pagpunta upang makita na 304. 1358 01:04:28,910 --> 01:04:32,340 >> 400, hindi magandang kahilingan, tunay mabilis, tulad ng kung 1359 01:04:32,340 --> 01:04:34,880 ay pagpunta upang magpadala ng JSON object sa server 1360 01:04:34,880 --> 01:04:38,090 at ang iyong JSON object ay hindi tama, makikita mo ang isang bagay tulad na. 1361 01:04:38,090 --> 01:04:39,000 403, ipinagbabawal. 1362 01:04:39,000 --> 01:04:40,330 Kapag gusto mo ang isang ipinagbabawal na? 1363 01:04:40,330 --> 01:04:41,394 Marahil Marahil? 1364 01:04:41,394 --> 01:04:42,060 Madla: Chmod. 1365 01:04:42,060 --> 01:04:42,950 DAVIN: Chmod, oo. 1366 01:04:42,950 --> 01:04:44,730 Kaya hindi mo na-set mga pahintulot ng tama. 1367 01:04:44,730 --> 01:04:45,577 404, hindi nahanap. 1368 01:04:45,577 --> 01:04:46,410 Ito ay hindi lamang doon. 1369 01:04:46,410 --> 01:04:48,670 Kaya kung nag-type ka sa maling URL. 1370 01:04:48,670 --> 01:04:53,500 500, panloob na error sa server, ang server marahil ay hindi naisaayos nang tama. 1371 01:04:53,500 --> 01:04:56,260 Isang bagay na hindi sa iyong pagtatapos, ngunit isang bagay sa gilid ng server. 1372 01:04:56,260 --> 01:04:57,240 At 503? 1373 01:04:57,240 --> 01:04:59,502 Isang maraming tao ang nakakita 503s sa huling p-set. 1374 01:04:59,502 --> 01:05:00,460 Kapag ang mangyayari iyon? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 Narinig ko whispers. 1377 01:05:05,660 --> 01:05:07,767 >> Madla: Kapag Google Nagpasya ikaw ay isang robot. 1378 01:05:07,767 --> 01:05:10,350 DAVIN: Oo, kapag nagpapasya Google isa kang robot, makakakuha ka ng 503s. 1379 01:05:10,350 --> 01:05:11,560 Kaya na ang isang labis na karga. 1380 01:05:11,560 --> 01:05:14,620 Kung iyong hiniling mula sa server masyadong maraming, ito ay karaniwang pansamantalang. 1381 01:05:14,620 --> 01:05:15,560 At ang karamihan sa mga napansin mong ito. 1382 01:05:15,560 --> 01:05:16,185 Kaya nakita mo 503. 1383 01:05:16,185 --> 01:05:19,282 Maaari mong nakagawa ka ng kaunti pahinga, pagkatapos ay ang 503s nagpunta ang layo, 1384 01:05:19,282 --> 01:05:20,490 at lahat ng bagay ay ang lahat ng karapatan. 1385 01:05:20,490 --> 01:05:26,640 >> Gabe: Real mabilis, kapag ako makakakuha ka guys 500 sa malamang na itakda ang huling problema? 1386 01:05:26,640 --> 01:05:27,954 Oo? 1387 01:05:27,954 --> 01:05:30,906 >> Madla: Karaniwan kung ang server ay may file na nailagay sa maling lugar 1388 01:05:30,906 --> 01:05:34,650 o [hindi marinig] ang kanilang machine [hindi marinig]. 1389 01:05:34,650 --> 01:05:38,870 >> Gabe: Kaya maaaring ito ang isang configuration isyu sa iyong PHP sa iyong server. 1390 01:05:38,870 --> 01:05:42,250 Ngunit maaari itong maging isang bagay lamang tulad ng isang tuldok-kuwit na iyong nakalimutan. 1391 01:05:42,250 --> 01:05:44,130 Kung nagta-type ka PHP, ilang mga hindi tamang syntax 1392 01:05:44,130 --> 01:05:46,000 Maaaring makakuha ka ng isang bagay tulad na. 1393 01:05:46,000 --> 01:05:46,960 OK? 1394 01:05:46,960 --> 01:05:48,610 >> DAVIN: Cool. 1395 01:05:48,610 --> 01:05:51,180 Gusto mo sa akin upang gawin up lamang hanggang sa AJAX? 1396 01:05:51,180 --> 01:05:52,950 >> Gabe: [hindi marinig]. 1397 01:05:52,950 --> 01:05:53,450 DAVIN: OK. 1398 01:05:53,450 --> 01:05:54,230 Kaya kung ano ang DOM? 1399 01:05:54,230 --> 01:05:55,290 Ano ang DOM tumayo para sa? 1400 01:05:55,290 --> 01:05:56,990 >> Madla: modelo ng object dokumento. 1401 01:05:56,990 --> 01:05:57,490 DAVIN: Nice. 1402 01:05:57,490 --> 01:06:00,775 At kung bakit gusto namin ito? 1403 01:06:00,775 --> 01:06:02,670 Kahanga-hanga. 1404 01:06:02,670 --> 01:06:06,651 Kanan, kaya nagbibigay-daan lamang sa amin upang ma-access ang HTML, i-access ang aming pahina ng masyadong mabilis. 1405 01:06:06,651 --> 01:06:07,150 Bakit? 1406 01:06:07,150 --> 01:06:09,980 Dahil kami ay pagpapagamot ng aming pahina, pagpapagamot ng aming mga tag na HTML, 1407 01:06:09,980 --> 01:06:11,730 pagpapagamot ng lahat ng bagay bilang kung sila bagay. 1408 01:06:11,730 --> 01:06:13,710 Kung kami ay pagpapagamot ng mga ito tulad ng mga ito mga bagay, at pagkatapos ay kung ano ang maaari naming gawin? 1409 01:06:13,710 --> 01:06:15,210 Well, maaari naming tumawag sa mga function sa mga ito. 1410 01:06:15,210 --> 01:06:16,460 At ito ay mahalaga kung bakit? 1411 01:06:16,460 --> 01:06:19,200 Well, dahil kami ay pagpunta upang gamitin ang Ang JavaScript upang ma-update ang aming HTML, 1412 01:06:19,200 --> 01:06:20,500 -update ang mga bagay na ito. 1413 01:06:20,500 --> 01:06:23,869 Kaya kung ituturing namin ang mga ito tulad ng mga bagay, pagkatapos ay maaari naming tumawag sa mga function sa mga ito. 1414 01:06:23,869 --> 01:06:26,660 Pupunta ako upang makapunta sa ito ng kaunti higit pa kapag pumunta ako sa JavaScript, 1415 01:06:26,660 --> 01:06:30,510 ngunit ang lahat ng iyong nakita tulad ng document.getElementByID. 1416 01:06:30,510 --> 01:06:32,870 Kaya dokumento ay ang iyong elemento, kumuha ng mga elemento ng ID, 1417 01:06:32,870 --> 01:06:35,087 kaya ka pagpunta sa hitsura para sa ilang mga ID sa isang HTML tag. 1418 01:06:35,087 --> 01:06:36,920 At pagkatapos ay, maaari mong gawin ibang bagay na iyon. 1419 01:06:36,920 --> 01:06:40,089 Halimbawa, tulad ng document.body, pagkatapos ay maaari mong ikabit ang bata. 1420 01:06:40,089 --> 01:06:41,630 Kaya na iyong pupuntahan upang mahanap ang dokumento. 1421 01:06:41,630 --> 01:06:42,340 Mayroon kang mga dokumento. 1422 01:06:42,340 --> 01:06:43,629 Ikaw ay pagpunta upang mahanap ang katawan. 1423 01:06:43,629 --> 01:06:44,420 Nakita mo ang katawan. 1424 01:06:44,420 --> 01:06:46,545 At pagkatapos ay, na iyong pupuntahan tumawag sa ilang mga function na ito. 1425 01:06:46,545 --> 01:06:50,312 Kaya magkabit ng bata, at maaari mong ikabit ang ang ilang mga HTML sa dulo loob ng iyong katawan. 1426 01:06:50,312 --> 01:06:52,520 Kaya talaga, ikaw lamang pagpapagamot ng ito tulad ng isang bagay. 1427 01:06:52,520 --> 01:06:54,515 Ikaw ay pagpapagamot ng HTML mga tag tulad ng isang bagay. 1428 01:06:54,515 --> 01:06:57,071 At ito ay ginagawang mas madali at mabilis na dumaan sa kanila. 1429 01:06:57,071 --> 01:06:59,070 Ngunit nagbibigay-daan din ito sa iyo na tumawag sa mga function sa mga ito 1430 01:06:59,070 --> 01:07:04,410 sa gayon maaari mong manipulahin at palitan ang mga elemento. 1431 01:07:04,410 --> 01:07:10,162 >> Gabe: Dahil dito, kung bakit ay ang JavaScript tulad gandang wika upang makipag-ugnay sa HTML? 1432 01:07:10,162 --> 01:07:12,870 Logro ay, kapag ang pagpili ng mga tao ang wika para sa browser, 1433 01:07:12,870 --> 01:07:14,990 para sa mga client gilid, Ang JavaScript ay talagang maganda, 1434 01:07:14,990 --> 01:07:16,765 talaga mahusay sa paghawak ng mga bagay. 1435 01:07:16,765 --> 01:07:20,620 At ang bagay ay uri ng bang ang mga bagay na lumilitaw sa HTML, 1436 01:07:20,620 --> 01:07:23,940 kaya napakadali para sa JavaScript gawin na uri ng handling. 1437 01:07:23,940 --> 01:07:24,440 DAVIN: Nice. 1438 01:07:24,440 --> 01:07:25,670 Kaya narito lamang ng isang halimbawa. 1439 01:07:25,670 --> 01:07:29,020 Kaya tingin ko sa pagsusulit ng nakaraang taon, o marahil dalawang taon na ang nakaraan, aming 1440 01:07:29,020 --> 01:07:30,840 tinanong mo upang lumikha ng isang puno. 1441 01:07:30,840 --> 01:07:32,660 Kaya ito ay kung ano mismo ang gusto mong gawin. 1442 01:07:32,660 --> 01:07:34,255 Kaya ka magsimula sa dokumentong ito. 1443 01:07:34,255 --> 01:07:36,130 At pagkatapos mo talaga tingnan lamang sa mga tag. 1444 01:07:36,130 --> 01:07:38,100 Kaya't kung tiningnan mo, namin magsimula sa isang HTML tag. 1445 01:07:38,100 --> 01:07:41,660 At pagkatapos, makakakuha ka ng mga pahiwatig tungkol sa kung paano gawin ito batay sa mga indentation. 1446 01:07:41,660 --> 01:07:43,870 Kaya head uri ng sangay off. 1447 01:07:43,870 --> 01:07:46,242 Sa loob ng ulo, mayroon kaming isa pang tag para sa pamagat. 1448 01:07:46,242 --> 01:07:47,450 Kaya pagkatapos, mayroon kaming tag na pamagat. 1449 01:07:47,450 --> 01:07:49,760 At sa loob na iyon, mayroon kaming ilang mga string. 1450 01:07:49,760 --> 01:07:52,210 At kaya kami ay kumakatawan isang string sa isang lupon. 1451 01:07:52,210 --> 01:07:54,010 At lahat ng mga tag ay nasa parisukat. 1452 01:07:54,010 --> 01:07:56,270 >> At kung titingnan mo, kung namin isipin na ito bilang isang puno, 1453 01:07:56,270 --> 01:07:58,730 at sabihin nating na HTML ay isang magulang, pagkatapos ay ulo at katawan 1454 01:07:58,730 --> 01:07:59,772 ay magiging kapatid. 1455 01:07:59,772 --> 01:08:01,813 Ang mga ito ay parehong magiging anak ng magulang na iyon. 1456 01:08:01,813 --> 01:08:03,620 Kaya dahil sila Parehong kapatid, ang mga ito ay 1457 01:08:03,620 --> 01:08:06,590 magiging uri ng katabi bawat isa sa aming mga modelo tree. 1458 01:08:06,590 --> 01:08:08,590 At pagkatapos, isa lamang sa iyo gawin ang eksaktong parehong bagay. 1459 01:08:08,590 --> 01:08:13,512 Kaya hindi mahirap, ngunit hiniling namin mga tanong na tulad nito bago sa pagsusulit. 1460 01:08:13,512 --> 01:08:15,220 Gabe: ba ang sinuman May mga tanong sa ngayon? 1461 01:08:15,220 --> 01:08:16,357 Magandang ba ito? 1462 01:08:16,357 --> 01:08:16,856 DAVIN: Cool. 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScript, OK, ang mahusay na mga bagay-bagay. 1465 01:08:21,600 --> 01:08:24,069 Kaya ang JavaScript, ano ang JavaScript? 1466 01:08:24,069 --> 01:08:28,370 Well, JavaScript is-- ito kumplikado, ngunit ang mga 1467 01:08:28,370 --> 01:08:30,727 ang ilang mga highlight na dapat mong tandaan. 1468 01:08:30,727 --> 01:08:31,810 Una, maluwag ito ay na-type. 1469 01:08:31,810 --> 01:08:33,529 Ano ang ibig sabihin na? 1470 01:08:33,529 --> 01:08:35,596 Kaya was-- PHP oo, ano mayroon? 1471 01:08:35,596 --> 01:08:39,854 >> Madla: Hindi mo na kailangang tahasang estado anong uri ng variable na ito ay. 1472 01:08:39,854 --> 01:08:40,479 DAVIN: Perpekto. 1473 01:08:40,479 --> 01:08:43,270 Kaya't sinabi niya hindi mo na kailangang mag malinaw na ihayag ang uri ng variable. 1474 01:08:43,270 --> 01:08:44,160 Iyon ang akmang-akma. 1475 01:08:44,160 --> 01:08:49,700 Kaya sa C, kung mayroon akong int i ay katumbas ng 50, pagkatapos ay sa PHP, ito ay ganito lamang, $ i, 1476 01:08:49,700 --> 01:08:50,550 ay katumbas ng 50. 1477 01:08:50,550 --> 01:08:54,319 Pagkatapos, sa JavaScript, kung ano ang magiging tawag? 1478 01:08:54,319 --> 01:08:55,260 Var, tama? 1479 01:08:55,260 --> 01:08:56,566 Gusto Ito ay tulad ng var i ay katumbas ng 50. 1480 01:08:56,566 --> 01:08:58,649 Ngunit hindi mo na kailangang maging tulad ng, OK, ito ay isang int. 1481 01:08:58,649 --> 01:09:00,350 OK, ito ay isang string. 1482 01:09:00,350 --> 01:09:01,731 Hindi mo na kailangang gawin iyon. 1483 01:09:01,731 --> 01:09:02,939 Ito ay isang kahulugan ng wika. 1484 01:09:02,939 --> 01:09:04,904 Kaya kung ano ang ibig sabihin na? 1485 01:09:04,904 --> 01:09:06,340 >> Madla: Hindi pinagsama-sama. 1486 01:09:06,340 --> 01:09:10,470 >> DAVIN: Ano ang hindi nangalap ibig sabihin? 1487 01:09:10,470 --> 01:09:11,392 Oo? 1488 01:09:11,392 --> 01:09:15,336 >> Madla: Hindi mo kailangang upang restructure ang code 1489 01:09:15,336 --> 01:09:18,294 upang makakuha ng mga ito handa na para sa ang computer upang patakbuhin ito. 1490 01:09:18,294 --> 01:09:23,144 Lamang Ito ay kinuha sa panahon ng pagpapatupad at ang computer [hindi marinig]. 1491 01:09:23,144 --> 01:09:25,560 DAVIN: Oo, kaya pupuntahan pumasa sa pamamagitan ng isang interpreter. 1492 01:09:25,560 --> 01:09:26,750 Ngunit ikaw ay akmang-akma sa iyo. 1493 01:09:26,750 --> 01:09:28,319 Kaya hindi ka pagpunta upang ipunin ito, i-right? 1494 01:09:28,319 --> 01:09:30,399 Kapag ang iyong ginagawa sa iyong PHP at JavaScript code, 1495 01:09:30,399 --> 01:09:31,365 hindi ka na kailanman na tinatawag na sumulat ng libro. 1496 01:09:31,365 --> 01:09:33,779 Hindi ka tinatawag na isang bagay tulad ng gumawa o anumang bagay tulad na. 1497 01:09:33,779 --> 01:09:34,800 Iyon ay dahil ito ay binigyang-kahulugan. 1498 01:09:34,800 --> 01:09:37,319 Kaya sa tuwing ito ay pumupunta sa pamamagitan ng browser, ito napupunta sa pamamagitan ng interpreter. 1499 01:09:37,319 --> 01:09:40,370 At na pupuntahan bigyang-kahulugan ito lamang sa real time kaagad para sa iyo. 1500 01:09:40,370 --> 01:09:43,770 Kaya kung ano ang ilang mga positibo at negatibo sa pagkakaroon ng isang kahulugan wika 1501 01:09:43,770 --> 01:09:45,258 at pagkakaroon ng pinagsama-sama wika? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 Kaya compiling-- oo, ano mayroon? 1504 01:09:50,540 --> 01:09:52,444 >> Madla: kahulugan ay mas mabagal. 1505 01:09:52,444 --> 01:09:53,319 DAVIN: Sa anong kahulugan? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> Madla: Matapos mo sumulat ng libro, hindi mo kailangang 1508 01:09:59,091 --> 01:10:04,400 gawin ang anumang dagdag na mga hakbang upang maisagawa ito, samantalang ito [hindi marinig]. 1509 01:10:04,400 --> 01:10:05,570 >> DAVIN: I-right, perpekto. 1510 01:10:05,570 --> 01:10:08,386 Kaya kung ano ang sinabi mo ay isa lamang na kino-compile, 1511 01:10:08,386 --> 01:10:10,760 kapag makatipon mo, mayroon kang isang maraming tapat mga gastos, i-right? 1512 01:10:10,760 --> 01:10:11,760 Ikaw ay pagpunta upang ipunin ito. 1513 01:10:11,760 --> 01:10:13,750 Ngunit pagkatapos mong ipunin ito, ang compiler ang nangyayari upang i-optimize ito. 1514 01:10:13,750 --> 01:10:14,840 Ito ay pagpunta upang maging mabilis. 1515 01:10:14,840 --> 01:10:16,170 Ito ay pagpunta sa isa lamang maging mas mabilis hangga't maaari. 1516 01:10:16,170 --> 01:10:18,830 Sa pagbibigay-kahulugan, hindi ka na kailanman mayroon na agad na bayad. 1517 01:10:18,830 --> 01:10:22,260 Sa halip, ito ay magiging bahagyang mas mabagal bawat solong oras bigyang-kahulugan mo ito. 1518 01:10:22,260 --> 01:10:24,940 At ka ng pagpunta sa mayroon sa -kahulugan ito sa bawat oras. 1519 01:10:24,940 --> 01:10:27,114 Kaya sa halip na ito isang beses na halaga, ngayon ikaw ay 1520 01:10:27,114 --> 01:10:29,530 pagpunta sa may upang bigyang-kahulugan ito sa bawat oras na pag-render ng pahina. 1521 01:10:29,530 --> 01:10:31,890 >> Kaya interprete ang mga magandang dahil hindi mo kailangang i-compile ito, 1522 01:10:31,890 --> 01:10:33,980 ngunit ang mga ito ay masamang sa na ang bawat minsan, ang naglo-load ang pahina, ito ay 1523 01:10:33,980 --> 01:10:35,771 pagpunta sa mayroon sa bigyang-kahulugan na ito ang JavaScript. 1524 01:10:35,771 --> 01:10:40,520 At ito ay pagpunta sa magpatakbo ng bahagyang mas mabagal kaysa sa kung ikaw ay upang ipunin ito. 1525 01:10:40,520 --> 01:10:43,044 Binibigyang-daan kang communicate-- oh, maghintay. 1526 01:10:43,044 --> 01:10:44,960 Ginagamit upang manipulahin ang nilalaman at hitsura. 1527 01:10:44,960 --> 01:10:46,043 Usapan lang natin ang tungkol na. 1528 01:10:46,043 --> 01:10:47,250 Ito ay gumagamit ng DOM. 1529 01:10:47,250 --> 01:10:49,930 AJAX, susuriin namin sa AJAX sa ilang sandali. 1530 01:10:49,930 --> 01:10:51,520 At pagkatapos ay, ito ay bahagi ng kliyente. 1531 01:10:51,520 --> 01:10:53,110 Kaya PHP ay server side. 1532 01:10:53,110 --> 01:10:54,360 Ang JavaScript ay client gilid. 1533 01:10:54,360 --> 01:10:57,780 Ano ang mga positibo sa iyon? 1534 01:10:57,780 --> 01:10:58,280 Sinasabi nito na ito. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 Ito ay mas mabilis, i-right? 1537 01:11:02,780 --> 01:11:05,282 Dahil wala kang to-- mas mabilis ito. 1538 01:11:05,282 --> 01:11:07,490 Hindi mo na kailangang ipaalam na may ilang iba pang mga device. 1539 01:11:07,490 --> 01:11:08,790 Kung ikaw lamang sa iyong client, ikaw ay hindi kailanman 1540 01:11:08,790 --> 01:11:11,280 pagpunta sa may upang pumunta at makita kung ano ang sa server 1541 01:11:11,280 --> 01:11:13,150 at pagkatapos ay mag-ulat muli o isang bagay tulad na. 1542 01:11:13,150 --> 01:11:15,410 Kaya client gilid ay may gawi na maging isang maliit na bit mas mabilis. 1543 01:11:15,410 --> 01:11:17,910 >> Gabe: Oo, ngunit ito ay hindi nangangahulugan na PHP ay 1544 01:11:17,910 --> 01:11:20,440 mas mabilis kaysa sa JavaScript o anumang bagay sa mga tulad. 1545 01:11:20,440 --> 01:11:23,270 Magpatakbo ng mga ito uri ng sa parehong bilis dahil ang mga ito ay parehong 1546 01:11:23,270 --> 01:11:24,490 kahulugan wika. 1547 01:11:24,490 --> 01:11:26,680 Ang mga bagay na mabagal dito ay ang kahilingan. 1548 01:11:26,680 --> 01:11:28,870 Kaya ka talagang pagpunta ang lahat ng mga paraan sa paglipas ng sa Brazil 1549 01:11:28,870 --> 01:11:31,460 upang makakuha ng ilang impormasyon na naninirahan doon. 1550 01:11:31,460 --> 01:11:34,590 Ngunit PHP at JavaScript, sila uri ng tumakbo sa parehong bilis. 1551 01:11:34,590 --> 01:11:37,930 Ito ay hindi isa na mas mabilis kaysa sa iba pang. 1552 01:11:37,930 --> 01:11:40,600 Ito, din, kahanga-hangang gawa tanong dito. 1553 01:11:40,600 --> 01:11:47,338 Kaya hindi kailanman naging JavaScript code machine, tama o mali? 1554 01:11:47,338 --> 01:11:48,590 >> Madla: Mali. 1555 01:11:48,590 --> 01:11:49,090 Gabe: Mali. 1556 01:11:49,090 --> 01:11:51,298 Ito ay upang maging machine code dahil machine code 1557 01:11:51,298 --> 01:11:53,210 ang tanging bagay naiintindihan ang machine. 1558 01:11:53,210 --> 01:11:55,800 Kahit na hindi ito pinagsama-sama, ito pa rin nagiging machine code 1559 01:11:55,800 --> 01:11:59,120 dahil ang interpreter lamang isang programa na napupunta linya sa pamamagitan ng linya 1560 01:11:59,120 --> 01:12:02,170 at transform na linya sa isang bagay na naiintindihan ang computer. 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 Ayos. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> DAVIN: Narito lamang ang isang napaka-basic JavaScript program mundo halo. 1565 01:12:12,890 --> 01:12:15,590 Kaya hindi ko alam if-- na iyong nakita ito. 1566 01:12:15,590 --> 01:12:17,630 Ngunit mayroon HTML ka lang dito. 1567 01:12:17,630 --> 01:12:21,020 At sa halip na aktwal na paglalagay ang JavaScript sa script tag, 1568 01:12:21,020 --> 01:12:22,810 kaya gusto mo normal itong ilagay sa ulo. 1569 01:12:22,810 --> 01:12:24,030 Mayroon kang mga script tag. 1570 01:12:24,030 --> 01:12:24,870 -Drop mo ito doon. 1571 01:12:24,870 --> 01:12:28,350 Lahat kami dito ay na-link namin in-- kaya na-link namin sa isang JavaScript na file 1572 01:12:28,350 --> 01:12:29,137 tulad nito. 1573 01:12:29,137 --> 01:12:30,470 At lahat ng nagawa mo na ito, i-right? 1574 01:12:30,470 --> 01:12:34,740 Kaya kapag gumagamit ka ng jQuery at underscore.js sa huling p-set, 1575 01:12:34,740 --> 01:12:38,700 wala kang tonelada ng code sa ang iyong mga script tag, hanggang sa ang inyong ulo. 1576 01:12:38,700 --> 01:12:41,415 Maaari mong gawin iyon, ngunit sa halip ay na inuugnay lamang ito sa loob. 1577 01:12:41,415 --> 01:12:43,540 At naka-link nito sa lamang gustong mong gawin sa CSS. 1578 01:12:43,540 --> 01:12:50,186 Kaya gumagawa lang ito itong mas madaling basahin kaya ang iyong code ay hindi 1,000 mga linya mahaba gusto 1579 01:12:50,186 --> 01:12:52,310 may tonelada ng mga pag-andar na baka hindi gumagamit. 1580 01:12:52,310 --> 01:12:53,518 >> Sa halip, i-link mo lamang ito sa loob. 1581 01:12:53,518 --> 01:12:55,050 Compartmentalizes ito dito. 1582 01:12:55,050 --> 01:13:00,110 Ito ay tulad pagsusulat ng ilang mga header ng file, at pagkatapos ay kabilang na header file sa C. 1583 01:13:00,110 --> 01:13:01,620 Isipin ito tulad nito lamang. 1584 01:13:01,620 --> 01:13:02,680 Kaya kung ano ang ginagawa nito? 1585 01:13:02,680 --> 01:13:04,560 Well, ito ay pagpunta upang tumakbo. 1586 01:13:04,560 --> 01:13:05,410 Ito ay pagpunta upang alertuhan. 1587 01:13:05,410 --> 01:13:08,020 Kaya na iyong pupuntahan upang makakuha ng isang maliit na pop up na tinatawag na kumusta mundo. 1588 01:13:08,020 --> 01:13:11,420 Mabilis na pinag-uusapan, lamang ang check kaliwanagan ng isip, kaya nakikita mo dito sa katawan, 1589 01:13:11,420 --> 01:13:13,160 sabihin katawan, HTML dito. 1590 01:13:13,160 --> 01:13:14,080 Ano ang mauna? 1591 01:13:14,080 --> 01:13:16,864 Ako nakakakita ng katawan, HTML dito, o ko makita muna ang mga alerto? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> Madla: Alert. 1594 01:13:20,820 --> 01:13:21,470 >> DAVIN: I-right. 1595 01:13:21,470 --> 01:13:22,110 Sabi niya alerto. 1596 01:13:22,110 --> 01:13:22,610 Bakit? 1597 01:13:22,610 --> 01:13:24,470 >> Madla: Dahil sa iyo pumunta mula sa itaas hanggang sa ibaba. 1598 01:13:24,470 --> 01:13:25,600 >> DAVIN: Oo. 1599 01:13:25,600 --> 01:13:26,100 Perpekto. 1600 01:13:26,100 --> 01:13:29,207 Kaya sabi niya, kang pumunta mula sa itaas hanggang sa ibaba, na kung saan ay ganap na tamang. 1601 01:13:29,207 --> 01:13:30,790 Ikaw ay pagpunta sa pumunta mula sa itaas hanggang sa ibaba. 1602 01:13:30,790 --> 01:13:34,790 At sa JavaScript, jQuery, mayroon kang isang function na ay tulad onload, o handa na, 1603 01:13:34,790 --> 01:13:38,030 at na nagsasabing, OK, maghintay hanggang lahat ng mga ito HTML ay load. 1604 01:13:38,030 --> 01:13:39,580 At pagkatapos, tawagan ang JavaScript. 1605 01:13:39,580 --> 01:13:42,190 Dahil wala kaming na dito, ang napaka unang bagay na nangyayari sa mangyari 1606 01:13:42,190 --> 01:13:43,920 ay ito ay pagpunta sa pumunta mula sa itaas hanggang sa ibaba. 1607 01:13:43,920 --> 01:13:46,310 Ito ay pagpunta sa hit na JS tumawag na itong ibang mapupuntahan upang alertuhan. 1608 01:13:46,310 --> 01:13:49,510 Pagkatapos na i-click mo ang OK, layo ng alerto na napupunta. 1609 01:13:49,510 --> 01:13:53,600 Pagkatapos ito ang nangyayari upang ipakita ang mo ang katawan HTML dito. 1610 01:13:53,600 --> 01:13:54,590 Nice. 1611 01:13:54,590 --> 01:14:00,880 >> OK, kaya lamang tunay mabilis, pagsusulat sa JavaScript ay sobrang mabilis. 1612 01:14:00,880 --> 01:14:02,710 Upang idedeklara isang variable, pangalan var. 1613 01:14:02,710 --> 01:14:07,070 Kaya sa C, mayroon kang int i, mayroon kang idedeklara kung anong uri ng uri nito ay. 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 Usapan natin ang tungkol dito. 1617 01:14:09,630 --> 01:14:11,020 Ang lahat ng mga karapatan, ng pumunta ipaalam. 1618 01:14:11,020 --> 01:14:12,510 >> Loop, parehong bagay. 1619 01:14:12,510 --> 01:14:14,230 Parehong bagay. 1620 01:14:14,230 --> 01:14:18,165 Ang function na pahayag, upang tulad lamang na iyong nakita sa C. 1621 01:14:18,165 --> 01:14:21,290 Ang tanging bagay na iba't ibang ay kaya kapag ka ba sa ibang mga wika programming, 1622 01:14:21,290 --> 01:14:24,780 tulad ng kapag magdadala sa iyo 51 susunod na semestre at ang iyong ginagawa sa OCAML, 1623 01:14:24,780 --> 01:14:26,690 maaari mong harapin ang hindi kilalang function. 1624 01:14:26,690 --> 01:14:28,240 Kaya iyon mismo ang mayroon kang dito. 1625 01:14:28,240 --> 01:14:31,560 Kaya nais mong ilagay sa kabuuan, ang ilang mga uri ng halagang halaga. 1626 01:14:31,560 --> 01:14:33,870 Ngunit maaari ka lamang gawin ito nang isang beses. 1627 01:14:33,870 --> 01:14:37,310 Kaya hindi mo gusto pangalanan ito function na suma, bigyan ito ng isang function na pagpapahayag. 1628 01:14:37,310 --> 01:14:39,830 Sa halip, gamitin mo lang ito bilang isang hindi nakikilalang function. 1629 01:14:39,830 --> 01:14:42,469 At iyong nakita ito ng maraming. 1630 01:14:42,469 --> 01:14:44,510 Makikita mo ang isang halimbawa ng ito sa loob ng ilang mga slide. 1631 01:14:44,510 --> 01:14:45,597 Oo, ipapakita namin makita. 1632 01:14:45,597 --> 01:14:46,430 Gabe: Magandang katanungan. 1633 01:14:46,430 --> 01:14:50,660 Kapag maaaring gusto mong gamitin isang hindi nakikilalang pagpapaandar dito? 1634 01:14:50,660 --> 01:14:54,111 Talaga, kapag gusto mo ng isang bagay, tulad ng isang kaganapan, mangyari. 1635 01:14:54,111 --> 01:14:55,860 Kaya kapag ang mouse ay -click, halimbawa, 1636 01:14:55,860 --> 01:14:57,790 Gusto mo ng ilang mga pag-andar na tinatawag. 1637 01:14:57,790 --> 01:15:00,570 Kaya pumasa ka sa kaganapan handler, pumasa ka sa kaganapan, 1638 01:15:00,570 --> 01:15:02,870 uri ng, ang pag-andar na gusto mong matawag. 1639 01:15:02,870 --> 01:15:04,710 At kung ano ang iyong pagpasa ay tulad ng, sa dulo 1640 01:15:04,710 --> 01:15:08,757 ng araw, isang pointer lamang na pagtuturo, upang ang pag-andar. 1641 01:15:08,757 --> 01:15:11,090 Kaya ito ay hindi nagkagusto ka sa pagpasa ang buong code, tulad ng 1642 01:15:11,090 --> 01:15:12,173 isang pointer sa pag-andar. 1643 01:15:12,173 --> 01:15:17,871 At pagkatapos ay, kapag ang isang tao ay nag-click ang mouse, pagkatapos na function na ay makakakuha ng tinatawag na. 1644 01:15:17,871 --> 01:15:22,340 >> DAVIN: array, kaya mo may isang array na pagpapahayag. 1645 01:15:22,340 --> 01:15:23,990 Pagkatapos, isang array upang ilagay ang mga bagay sa. 1646 01:15:23,990 --> 01:15:25,769 Real mabilis, ano ang magiging i-print out ito? 1647 01:15:25,769 --> 01:15:27,060 Ano ang magiging mga third elemento? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> Madla: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> DAVIN: I-right, magiging "JS." 1651 01:15:33,940 --> 01:15:35,760 Maghintay, bumalik. 1652 01:15:35,760 --> 01:15:37,100 Ano ang haba? 1653 01:15:37,100 --> 01:15:38,117 >> Madla: Tatlong. 1654 01:15:38,117 --> 01:15:38,950 DAVIN: Tatlong, tama? 1655 01:15:38,950 --> 01:15:40,210 Eksakto kung ano ang sa tingin. 1656 01:15:40,210 --> 01:15:42,072 OK, pumunta ngayon. 1657 01:15:42,072 --> 01:15:43,530 Ang mga array, maaari kang magdagdag ng mga bagay sa kanila. 1658 01:15:43,530 --> 01:15:45,395 Kaya maaari kang pumunta sa ibayo ang kanilang paunang hangganan. 1659 01:15:45,395 --> 01:15:46,740 Lamang ng isang bagay na dapat tandaan. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, ang mga ito ay medyo higit pa mapagpatawad bit sa mga tuntunin ng mga bagay 1661 01:15:49,760 --> 01:15:50,570 tulad na. 1662 01:15:50,570 --> 01:15:54,260 Mga Bagay, napaka tulad ng structs sa C, Sobra 1663 01:15:54,260 --> 01:15:56,590 tulad ng nag-uugnay array sa PHP. 1664 01:15:56,590 --> 01:15:58,720 Lahat nagkaroon ka karanasan sa ito. 1665 01:15:58,720 --> 01:16:01,880 Kaya JSON, kapag ikaw ay pagpasa sa JSON nang pabalik-balik sa p-set walong, 1666 01:16:01,880 --> 01:16:03,260 na ang iyong mga bagay. 1667 01:16:03,260 --> 01:16:06,290 >> Kaya oo, halimbawa, real mabilis na halimbawa. 1668 01:16:06,290 --> 01:16:07,880 Narito ang isang bagay. 1669 01:16:07,880 --> 01:16:12,700 Ang paraan isangguni mo ito bagay na ito, kaya lamang tunay mabilis, 1670 01:16:12,700 --> 01:16:18,630 sabihin nating nais kong mahanap out, OK, ano ang kurso? 1671 01:16:18,630 --> 01:16:20,681 At gayon ang pangalan ng object dito ay CS50. 1672 01:16:20,681 --> 01:16:23,180 At pagkatapos ay kung mayroon akong isang nag-uugnay array, paano gagawin ko na? 1673 01:16:23,180 --> 01:16:24,580 Kukunin ko ay gamit ang isang key, tama? 1674 01:16:24,580 --> 01:16:26,030 Kaya ba akong magkaroon ang pangalan ng array. 1675 01:16:26,030 --> 01:16:30,160 Mayroon akong bracket, quote, key, end quote, katapusan bracket, 1676 01:16:30,160 --> 01:16:33,610 at na-reference na elemento sa loob ng aking nag-uugnay array. 1677 01:16:33,610 --> 01:16:37,646 Paano gumagana ang na-reference ko Siyempre sa loob ng aking object? 1678 01:16:37,646 --> 01:16:39,170 Alam Sinuman? 1679 01:16:39,170 --> 01:16:40,622 >> Madla: [hindi marinig]. 1680 01:16:40,622 --> 01:16:41,784 >> DAVIN: Ano ba ang balita? 1681 01:16:41,784 --> 01:16:42,700 Madla: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 DAVIN: I-right, oo. 1683 01:16:43,510 --> 01:16:45,320 Kaya CS50.course. 1684 01:16:45,320 --> 01:16:48,770 Kaya ang paraan isangguni ka ng mga bagay sa loob ng isang JSON object ay may tuldok. 1685 01:16:48,770 --> 01:16:53,114 >> Madla: Maaari mo ring gamitin array syntax. 1686 01:16:53,114 --> 01:16:54,050 >> DAVIN: OK, fine. 1687 01:16:54,050 --> 01:16:57,544 >> Gabe: Maaari mo ring gamitin CS50 bracket, string, tulad ng mga panipi. 1688 01:16:57,544 --> 01:16:59,210 Madla: Sa tingin ko ito ay kapareho ng PHP. 1689 01:16:59,210 --> 01:17:00,293 Gabe: Ito ay ang parehong bagay. 1690 01:17:00,293 --> 01:17:02,487 DAVIN: Fine! 1691 01:17:02,487 --> 01:17:03,945 Ngunit makikita mo ito sa iba pang mga lugar. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 Oo, kaya palaging pagpunta. 1694 01:17:10,480 --> 01:17:13,330 Ito ay kung ano lang ang sinabi ko. 1695 01:17:13,330 --> 01:17:17,840 Kaya sa isang JavaScript jQuery halimbawa. 1696 01:17:17,840 --> 01:17:19,440 Kaya ito ay ang aking DOM, tama? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 Real mabilis, kaya Mayroon akong ulo, halo mundo, katawan. 1699 01:17:25,410 --> 01:17:26,160 Mayroon akong isang pindutan. 1700 01:17:26,160 --> 01:17:27,870 Sinasabi nito na "itulak sa akin," kaya gusto kong itulak ito. 1701 01:17:27,870 --> 01:17:29,745 At gusto kong gawin ang isang bagay kapag ito ay na-click. 1702 01:17:29,745 --> 01:17:31,220 I-right, sa susunod. 1703 01:17:31,220 --> 01:17:34,630 >> Kanan, kaya ito ay ang aking JavaScript. 1704 01:17:34,630 --> 01:17:37,790 Kaya jQuery ay isang madali lang paraan upang isulat ang JavaScript. 1705 01:17:37,790 --> 01:17:40,920 Kaya ito, at kung ano ako pupunta upang ipakita ang mo susunod, ay magiging jQuery, 1706 01:17:40,920 --> 01:17:41,930 ay magkapareho. 1707 01:17:41,930 --> 01:17:43,990 Kaya sila ay gawin ang parehong bagay. 1708 01:17:43,990 --> 01:17:45,974 Lamang jQuery ay may gawi na maging isang maliit na mas madali. 1709 01:17:45,974 --> 01:17:47,140 Mga Tao ay may posibilidad na gusto itong mas. 1710 01:17:47,140 --> 01:17:48,390 Ng maraming ng pag-andar Mayroon. 1711 01:17:48,390 --> 01:17:49,830 Kaya mga tao ay may posibilidad na gamitin ang jQuery. 1712 01:17:49,830 --> 01:17:53,270 Ikaw ang lahat ng mga ginamit jQuery sa huling p-set. 1713 01:17:53,270 --> 01:17:54,270 Kaya kung ano ang gawin ito? 1714 01:17:54,270 --> 01:17:56,580 Ano ang JavaScript-- ito nang sa gayon ito ay lamang plain JavaScript. 1715 01:17:56,580 --> 01:17:57,430 Ano ang gagawin ito? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 Ano itong gawin? 1718 01:18:03,450 --> 01:18:04,890 >> Kaya una, nakita mo ang window onload. 1719 01:18:04,890 --> 01:18:05,390 Mag-right? 1720 01:18:05,390 --> 01:18:06,640 Kaya kami ay hindi makita na bago. 1721 01:18:06,640 --> 01:18:09,380 Kaya ito ay pagpunta sa maghintay hanggang sa buong naglo-load ang window. 1722 01:18:09,380 --> 01:18:12,770 Kaya ito ay pagpunta sa maghintay hanggang sa ang pag-load ng HTML, lahat ng mga larawan 1723 01:18:12,770 --> 01:18:13,770 bago ito ginagawa ng kahit ano. 1724 01:18:13,770 --> 01:18:16,050 Kaya sabihin nating ang aming DOM ay load. 1725 01:18:16,050 --> 01:18:17,270 Lahat naroon. 1726 01:18:17,270 --> 01:18:19,080 Pagkatapos ay kung ano ang nangyayari sa mangyayari? 1727 01:18:19,080 --> 01:18:19,922 Oo? 1728 01:18:19,922 --> 01:18:22,880 >> Madla: Lilitaw Button. 1729 01:18:22,880 --> 01:18:25,201 >> DAVIN: Ang pindutan ng kung pa doon. 1730 01:18:25,201 --> 01:18:26,700 Oo, sa gayon ang pindutan pa doon. 1731 01:18:26,700 --> 01:18:31,190 Ngunit ito ay pagpunta sa sabihin, OK, kung nag-click ako ang pindutan, 1732 01:18:31,190 --> 01:18:33,650 kaya ang pindutan nang doon, tulad na HTML tag. 1733 01:18:33,650 --> 01:18:35,980 Maghintay, bumalik real mabilis. 1734 01:18:35,980 --> 01:18:39,470 Ang tag na ito dito mismo karapatan ay magiging na butones. 1735 01:18:39,470 --> 01:18:40,810 Mayroon nang isang pindutan. 1736 01:18:40,810 --> 01:18:44,120 Ngunit pagkatapos, ang JavaScript tag, dito mismo, 1737 01:18:44,120 --> 01:18:46,160 sinasabi nito, OK, gusto kong upang makakuha ng mga elemento ng ID, 1738 01:18:46,160 --> 01:18:50,300 kaya pindutan sa paghahanap lamang sabi, OK, gusto kong upang i-map ito variable sa button na iyon. 1739 01:18:50,300 --> 01:18:53,120 Kaya variable na ay isa lamang mas madaling paraan upang ma-access ang button na iyon. 1740 01:18:53,120 --> 01:18:57,300 At sinasabi ko, OK, kung nag-click ako na button, kaya kung nag-click ako elemento na, 1741 01:18:57,300 --> 01:18:59,560 at ang elementong ito ay tumutukoy sa ang pindutan, kung nag-click ako ito, 1742 01:18:59,560 --> 01:19:00,875 pagkatapos ay gusto kong tumawag sa isang function. 1743 01:19:00,875 --> 01:19:03,500 Narito ang isa sa mga hindi nakikilalang -andar namin pakikipag-usap ay tungkol sa. 1744 01:19:03,500 --> 01:19:04,840 >> Tumawag lamang sa ilang function. 1745 01:19:04,840 --> 01:19:08,840 Sa loob na function, talaga isang bagay na nakakita kami ng maraming, alerto. 1746 01:19:08,840 --> 01:19:10,477 Click ka sa pindutan ng paghahanap. 1747 01:19:10,477 --> 01:19:12,060 Ito ay pagpunta sa isa lamang magkaroon ng isang pindutan. 1748 01:19:12,060 --> 01:19:13,040 I-click mo ito. 1749 01:19:13,040 --> 01:19:14,040 Makakakuha ka ng alerto na iyon. 1750 01:19:14,040 --> 01:19:14,850 X. 1751 01:19:14,850 --> 01:19:15,754 Iyan na ang lahat. 1752 01:19:15,754 --> 01:19:16,254 Oo? 1753 01:19:16,254 --> 01:19:21,980 >> Madla: Kaya kung inilagay mo ang script [Hindi marinig], script na tag sa iyong HTML? 1754 01:19:21,980 --> 01:19:24,300 >> DAVIN: Maaari mong ilagay ang script tag diretso sa head 1755 01:19:24,300 --> 01:19:30,667 dahil mayroon kang ito onload. 1756 01:19:30,667 --> 01:19:32,000 Isa rin na ikaw ay may isang pag-click. 1757 01:19:32,000 --> 01:19:34,166 Kaya ito ay pagpunta sa maghintay hanggang sa i-click mo ng isang bagay. 1758 01:19:34,166 --> 01:19:37,470 Ngunit onload lamang upang maging ligtas, na gumawa Tiyaking ang lahat ng bagay na naglo-load sa iyong HTML 1759 01:19:37,470 --> 01:19:38,170 sa simula pa. 1760 01:19:38,170 --> 01:19:39,247 Oo? 1761 01:19:39,247 --> 01:19:40,330 Gusto mong sabihin ng isang bagay? 1762 01:19:40,330 --> 01:19:41,080 >> Gabe: [hindi marinig]. 1763 01:19:41,080 --> 01:19:42,485 DAVIN: Oo. 1764 01:19:42,485 --> 01:19:45,426 >> Madla: Kaya onload avoids pagtukoy ang pindutan ng variable sa paghahanap 1765 01:19:45,426 --> 01:19:49,930 sa pamamagitan lamang na nagsasabi document.getElementByID tuldok sa paghahanap pindutan [hindi marinig]. 1766 01:19:49,930 --> 01:19:52,320 >> DAVIN: Talagang, ngunit pagkatapos ay ang iyong mga string lamang malaking nakakakuha. 1767 01:19:52,320 --> 01:19:55,553 Eksakto, kaya ito ay isa lamang sa gawing mas madali para sa iyo, oo. 1768 01:19:55,553 --> 01:19:56,053 Oo? 1769 01:19:56,053 --> 01:19:57,886 >> Madla: Saan ginawa namin lumikha window.onload? 1770 01:19:57,886 --> 01:19:58,951 O document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> DAVIN: Oo, may. 1772 01:20:00,590 --> 01:20:02,094 Oo, ay, Sinuri ko doon. 1773 01:20:02,094 --> 01:20:03,710 >> Gabe: Hindi para sa kanila na mag-asikaso. 1774 01:20:03,710 --> 01:20:06,970 >> DAVIN: OK, kaya ako pupunta upang sabihin sa iyo pa rin. 1775 01:20:06,970 --> 01:20:11,005 Kaya talaga, lamang sa pangkalahatan, kaya window.onload naghihintay hanggang ang iyong DOM, ang lahat ng 1776 01:20:11,005 --> 01:20:12,180 iyong HTML, naglo-load. 1777 01:20:12,180 --> 01:20:13,513 Ito naghihintay ang hanggang sa iyong ng pag-load mga imahe. 1778 01:20:13,513 --> 01:20:14,930 Ito naghihintay ang hanggang sa lahat na naglo-load. 1779 01:20:14,930 --> 01:20:18,410 document.ready, ito lamang naghihintay ang hanggang sa iyong naglo-load ng DOM. 1780 01:20:18,410 --> 01:20:22,190 Sa sandaling ang HTML ay mayroong lahat, sa sandaling ang iyong DOM ay doon, nagsisimula sa pagtakbo. 1781 01:20:22,190 --> 01:20:23,400 Iyan ang pagkakaiba lamang. 1782 01:20:23,400 --> 01:20:24,700 >> Gabe: Mabilis katinuan suriin dito. 1783 01:20:24,700 --> 01:20:29,060 Kaya ito ay maaaring makita uri ng tulad ng isang linya ng code, i-right? 1784 01:20:29,060 --> 01:20:33,600 Dahil window.onload ay katumbas ng isang bungkos ng mga bagay-bagay. 1785 01:20:33,600 --> 01:20:39,030 Kapag ang JavaScript bumabasa ng ito, totoo o hindi totoo, ang function ay makakakuha pinaandar. 1786 01:20:39,030 --> 01:20:40,020 Maling. 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 Ano ang mangyayari dito, saan ka pagpasa function na ito bilang isang hindi nakikilalang mga function 1789 01:20:44,470 --> 01:20:45,300 sa window.onload. 1790 01:20:45,300 --> 01:20:48,480 At pagkatapos ay kapag naman upang aktwal na makakuha ng isagawa? 1791 01:20:48,480 --> 01:20:49,600 Kapag nag-load ang window. 1792 01:20:49,600 --> 01:20:50,420 Iyon ang isang kaganapan. 1793 01:20:50,420 --> 01:20:52,460 Kaya na jus t bagay na hindi namin pakikipag-usap tungkol sa mas maaga, tama? 1794 01:20:52,460 --> 01:20:54,580 Kaya kapag nangyari ang kaganapan, ang pag-andar mangyayari. 1795 01:20:54,580 --> 01:20:55,746 Parehong bagay sa mga onclick. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> DAVIN: OK, kaya kinuha ng isang tao layo ng document.ready. 1798 01:21:03,130 --> 01:21:04,698 Ngunit ito ay ang eksaktong same-- 1799 01:21:04,698 --> 01:21:06,864 Madla: Ang dollar sign, na isang document.ready. 1800 01:21:06,864 --> 01:21:07,710 Iyon ay isang shortcut. 1801 01:21:07,710 --> 01:21:08,501 >> DAVIN: Oh, na? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 OK, kaya ito paraan document.ready, shortcut. 1804 01:21:15,500 --> 01:21:19,660 Ngunit ito ay kapareho ng window.onload maliban sa mga maliit na pagkakaiba 1805 01:21:19,660 --> 01:21:20,680 Sinabi ko sa iyo. 1806 01:21:20,680 --> 01:21:21,870 At ito ay jQuery. 1807 01:21:21,870 --> 01:21:25,190 Kaya ito ay ang eksaktong parehong thing-- ito ay ang JavaScript. 1808 01:21:25,190 --> 01:21:29,500 Ito ay just-- ng ilang mga tao sa tingin ng ito ang isang mas magagaan na timbang, malambot at makintab na bersyon 1809 01:21:29,500 --> 01:21:32,370 na may maraming mga pag-andar na malamang na ginagamit mo. 1810 01:21:32,370 --> 01:21:34,500 Kaya ito ay ang eksaktong parehong bagay. 1811 01:21:34,500 --> 01:21:37,110 >> Kaya bagay na uri ng ituro. 1812 01:21:37,110 --> 01:21:40,364 Kaya sa mga iba pang halimbawa, namin Nagkaroon document.getElementByID, 1813 01:21:40,364 --> 01:21:42,280 kaya nagkaroon kami ito mahaba string na pupuntahan makakuha ng 1814 01:21:42,280 --> 01:21:44,290 ang elemento ng kahit anong ID mayroon itong. 1815 01:21:44,290 --> 01:21:46,470 Na mapapalitan ng tawag na ito dito mismo. 1816 01:21:46,470 --> 01:21:50,860 Kaya makita mo ang dollar sign, pagkatapos ay makita mo na quote, hashtag. 1817 01:21:50,860 --> 01:21:52,370 Hashtag ay palaging isang selector. 1818 01:21:52,370 --> 01:21:54,730 Sinasabi nito, OK, ito ay gagawin sa isang ID. 1819 01:21:54,730 --> 01:21:56,120 Ano ang tagapili para sa isang klase? 1820 01:21:56,120 --> 01:21:57,190 >> Madla: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> DAVIN: Dot, i-right. 1822 01:21:57,960 --> 01:22:01,950 Kung nagsisimula ka ng pagpunta sa piliin ang tag, ano ito? 1823 01:22:01,950 --> 01:22:03,310 Ito ay lamang ang tag, eksakto. 1824 01:22:03,310 --> 01:22:05,560 At maaari mong gamitin iyon dito, pati na rin. 1825 01:22:05,560 --> 01:22:08,560 >> Gabe: At sa pamamagitan ng tag na, ang ibig sabihin namin tulad ng div, halimbawa, o ulo. 1826 01:22:08,560 --> 01:22:11,500 >> DAVIN: O katawan o p o anumang bagay na tulad nang, oo. 1827 01:22:11,500 --> 01:22:14,390 Kaya dito, OK, sa halip na sabihing document.getElementByID, 1828 01:22:14,390 --> 01:22:16,500 ito lamang ang eksaktong parehong bagay. 1829 01:22:16,500 --> 01:22:17,990 In lamang jQuery, ito ay mas maikli. 1830 01:22:17,990 --> 01:22:19,860 Kaya mas simple. 1831 01:22:19,860 --> 01:22:23,420 Kaya pagkatapos, wala nang mga onclick, i-click lamang. 1832 01:22:23,420 --> 01:22:26,320 jQuery function, tawagan ang function na ito. 1833 01:22:26,320 --> 01:22:27,580 Alert ay ang eksaktong parehong. 1834 01:22:27,580 --> 01:22:29,452 Kaya ito ay isang kaunti mas maliit, o kaunti 1835 01:22:29,452 --> 01:22:32,410 mas maikli, may kaunting panahon bit-- mga tao sa tingin ito ay isang maliit na mas madaling isulat, 1836 01:22:32,410 --> 01:22:34,600 Medyo mas madaling maunawaan. 1837 01:22:34,600 --> 01:22:35,640 Ngunit ito ay jQuery. 1838 01:22:35,640 --> 01:22:37,887 Isang maraming mga tao makakuha ng kaunti bit naguguluhan at nag-aalala 1839 01:22:37,887 --> 01:22:40,220 at sila sa tingin, OK, jQuery ay iba sa JavaScript. 1840 01:22:40,220 --> 01:22:42,136 Kailangan ko bang tandaan ang mga dalawang magkaibang mga bagay. 1841 01:22:42,136 --> 01:22:42,740 Hindi ito. 1842 01:22:42,740 --> 01:22:45,315 Ibig kong sabihin, ito ay magkakaiba syntax. 1843 01:22:45,315 --> 01:22:46,970 Ngunit jQuery ay ang JavaScript. 1844 01:22:46,970 --> 01:22:50,050 Ito ay lamang ng isang tila mas mahusay na bersyon na 1845 01:22:50,050 --> 01:22:51,967 maaaring maging mas madaling maunawaan na ginagamit ng mga tao. 1846 01:22:51,967 --> 01:22:53,716 Gabe: Oo, upang maging tapat, na pag-sign dolyar 1847 01:22:53,716 --> 01:22:57,240 na iyong nakikita sa jQuery, ito lamang ay ang pangalanan ng isang function na tumutukoy sa jQuery. 1848 01:22:57,240 --> 01:22:58,614 Hindi nito ay may anumang espesyal na. 1849 01:22:58,614 --> 01:23:03,140 Ay ito lamang ang pangalan ng isang function, gusto lang maaari mong tukuyin ang dollar sign. 1850 01:23:03,140 --> 01:23:05,670 >> DAVIN: Oo, kaya usapan tungkol dito. 1851 01:23:05,670 --> 01:23:06,680 Ang ilang mga kapaki-pakinabang na mga bagay. 1852 01:23:06,680 --> 01:23:10,414 Ako ay naghahanap pabalik sa lumang pagsusulit. 1853 01:23:10,414 --> 01:23:13,080 Sa nakalipas na ilang mga pagsusulit, na sila ang nagkaroon na gamitin ang mga bagay na tulad nito. 1854 01:23:13,080 --> 01:23:15,230 Kaya document.ready, kaya tiyakin na ang lahat ng 1855 01:23:15,230 --> 01:23:17,410 -load bago mo simulan ang paggawa ng mga bagay-bagay. 1856 01:23:17,410 --> 01:23:20,120 Pumili ng isang ID, o piliin ang isang klase, ang nais lamang 1857 01:23:20,120 --> 01:23:24,020 maging tuldok ilang mga klase, end quote quote. 1858 01:23:24,020 --> 01:23:26,580 Magsumite, kaya kung ikaw ay pagsusumite ng form at tawag 1859 01:23:26,580 --> 01:23:28,830 function na ito pagkatapos ng form na isinusumite. 1860 01:23:28,830 --> 01:23:34,210 Halaga, kaya sabihin nating Mayroon akong isang form pagsusumite, tulad ng isang user name, email, 1861 01:23:34,210 --> 01:23:34,950 kahit anong. 1862 01:23:34,950 --> 01:23:36,010 Ako ay nagkaroon ng isang text box. 1863 01:23:36,010 --> 01:23:37,670 Kaya ako mag-type sa na text box. 1864 01:23:37,670 --> 01:23:42,170 Well, kung gusto mong makuha ang halaga out sa na kahon ng teksto, gamitin mo na tuldok Val. 1865 01:23:42,170 --> 01:23:44,050 At pagkatapos, pababa dito, tuldok HTML ay pareho 1866 01:23:44,050 --> 01:23:47,710 ay tulad ng tuldok dokumento getElementByID tuldok innerHTML. 1867 01:23:47,710 --> 01:23:50,890 Kaya na pupuntahan bumalik mo ang HTML mula sa ID na. 1868 01:23:50,890 --> 01:23:55,080 Dito, gagamitin mo lang ang ilang mga ID o kung anumang tuldok HTML. 1869 01:23:55,080 --> 01:23:56,930 Na makikita makuha ang HTML mula sa element na iyon. 1870 01:23:56,930 --> 01:24:00,130 Kung nais mong pagkatapos ay baguhin na HTML, maaari kang pumasa ito ng isang bagay. 1871 01:24:00,130 --> 01:24:05,600 Kaya nais mong maging parang tuldok HTML, at pagkatapos ay loob, mga quote, mga bagong HTML o isang bagay. 1872 01:24:05,600 --> 01:24:07,490 >> Gabe: OK, kaya AJAX. 1873 01:24:07,490 --> 01:24:10,347 Talagang gusto kong maunawaan AJAX talagang mahusay. 1874 01:24:10,347 --> 01:24:12,430 Kaya gusto kong guys sa iyo Nauunawaan AJAX talagang mahusay. 1875 01:24:12,430 --> 01:24:14,221 Dahil kung gagawin mo ito, ka halos pagpunta 1876 01:24:14,221 --> 01:24:16,810 upang maunawaan ang lahat ng bagay na May gagawin sa HTTP, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript dahil ang lahat ng ito ay sama-sama sa AJAX. 1878 01:24:21,080 --> 01:24:25,130 AJAX ay hindi isang wika. 1879 01:24:25,130 --> 01:24:27,000 AJAX ay isang diskarte. 1880 01:24:27,000 --> 01:24:31,690 At ginagamit nito ang maraming iba't ibang mga tool. 1881 01:24:31,690 --> 01:24:35,090 AJAX ay kumakatawan sa asynchronous JavaScript XML. 1882 01:24:35,090 --> 01:24:36,730 Kaya ang paraan, ang wika, ang data. 1883 01:24:36,730 --> 01:24:40,610 >> Kaya ang pangunahing wika na ginagamit namin sa AJAX upang ma-trigger ang lahat ng bagay 1884 01:24:40,610 --> 01:24:42,830 at pangasiwaan ang lahat ng bagay sa ibang pagkakataon ay ang JavaScript. 1885 01:24:42,830 --> 01:24:45,160 Iyon ang dahilan kung bakit ito ang kaugnayan napakalapit sa JavaScript. 1886 01:24:45,160 --> 01:24:49,810 At pagkatapos ay asynchronous dahil hindi namin gawin ito 1887 01:24:49,810 --> 01:24:51,980 lahat nang sabay-sabay kapag kami ay paglo-load ng pahina. 1888 01:24:51,980 --> 01:24:57,190 Ito ang bagay na aming makakaya gumawa ng mga bagay uri ng kahanay. 1889 01:24:57,190 --> 01:24:59,725 Ang pangunahing ideya sa likod AJAX ay na nais mong 1890 01:24:59,725 --> 01:25:02,170 ito upang makakuha ng ilang tiyak na impormasyon. 1891 01:25:02,170 --> 01:25:06,450 Halimbawa, kapag nagta-type ka ng mga bagong user name kapag nagparehistro ka ng isang user name, 1892 01:25:06,450 --> 01:25:08,520 ang aking user name ay abc123. 1893 01:25:08,520 --> 01:25:11,671 At pagkatapos, sa dulo ng form na ito, kailangan mong i-click ang Isumite. 1894 01:25:11,671 --> 01:25:14,420 At nagkaroon upang pumunta sa server, at pagkatapos ay tingnan kung sa database, 1895 01:25:14,420 --> 01:25:15,594 abc123 ay doon. 1896 01:25:15,594 --> 01:25:18,510 At kung ito ay nasa doon, sinasabi nito, user name sa database. 1897 01:25:18,510 --> 01:25:21,010 At sila, mayroon kang upang punan ang ang buong form muli. 1898 01:25:21,010 --> 01:25:23,110 At ito ay tunay, ganap na hindi maayos. 1899 01:25:23,110 --> 01:25:25,440 >> At pagkatapos ay sinasabi ng mga tao, OK, hindi kung bakit maaari naming lamang 1900 01:25:25,440 --> 01:25:29,560 gawin ang isang maliit na HTTP na kahilingan upang tingnan lamang upang makita kung ang user na ito ay nasa database 1901 01:25:29,560 --> 01:25:32,080 bago nagkaroon ng user na isumite ang buong form? 1902 01:25:32,080 --> 01:25:36,350 Kaya halimbawa, kapag ang gumagamit matapos ang pag-type ng abc123, 1903 01:25:36,350 --> 01:25:39,660 hayaan pumunta lamang sa mga server ng kaunti kaunti at makakuha lamang ng isang true o false 1904 01:25:39,660 --> 01:25:43,080 mula sa server upang makita kung iyon ay isang wastong user name o hindi. 1905 01:25:43,080 --> 01:25:49,250 OK, kaya na ang isa sa mga pangunahing Ginagamit ng AJAX kasalukuyan pa rin. 1906 01:25:49,250 --> 01:25:52,130 >> DAVIN: Kaya tunay mabilis, sa isang Ajax tawag sa jQuery, 1907 01:25:52,130 --> 01:25:54,770 maaari mong maipahiwatig na gusto mo itong maging sabaysabay. 1908 01:25:54,770 --> 01:25:56,330 Hindi mo dapat gawin ito. 1909 01:25:56,330 --> 01:25:57,640 Ngunit maaari mong gawin iyon. 1910 01:25:57,640 --> 01:25:59,277 At kung ginawa mo iyon, ano ang mangyayari? 1911 01:25:59,277 --> 01:26:01,610 Well, halimbawa, kapag handa ka pagkuha ng balita o anumang, 1912 01:26:01,610 --> 01:26:05,464 ang iyong browser ay pupunta lamang na maghintay hanggang sa na buong tawag ay kumpleto na 1913 01:26:05,464 --> 01:26:08,130 sa halip na pagpapaalam gawin kang iba pang mga bagay na karapatan pagkatapos mong i-click ito. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> Gabe: Hindi ito pagpasa sa ngayon. 1916 01:26:17,115 --> 01:26:19,681 Oh aking diyos. 1917 01:26:19,681 --> 01:26:20,180 Paumanhin! 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 "Sa nakaraan, ang kliyente na kailangan upang kahilingan 1921 01:26:25,350 --> 01:26:26,840 ang buong nilalaman ng isang website. " 1922 01:26:26,840 --> 01:26:28,210 Iyon ay kung ano ang aking sinabi. 1923 01:26:28,210 --> 01:26:30,070 Pinapayagan kami upang magpadala ng karagdagang GET o POST 1924 01:26:30,070 --> 01:26:32,140 mga kahilingan nang hindi na kinakailangang upang i-reload ang aming browser. 1925 01:26:32,140 --> 01:26:34,806 Kaya sa katapusan ng araw, kami ay talagang sa paggawa ng isang kahilingan ng HTTP 1926 01:26:34,806 --> 01:26:35,740 dito gamit ang JavaScript. 1927 01:26:35,740 --> 01:26:39,700 Dahil bago, ginagamit lamang namin ang JavaScript upang baguhin ang HTML na na dumating. 1928 01:26:39,700 --> 01:26:43,110 At ngayon, kami ay maaaring gamitin upang mag-interface sa mga web server pati na rin. 1929 01:26:43,110 --> 01:26:46,140 Ang paraan mangyari ito ay mayroon kaming client. 1930 01:26:46,140 --> 01:26:47,340 Davin ay isang client. 1931 01:26:47,340 --> 01:26:50,797 At siya ay mayroon ng lahat ng JavaScript sa pagtakbo dahil ang HTML ay pipi. 1932 01:26:50,797 --> 01:26:51,630 Ang JavaScript ay smart. 1933 01:26:51,630 --> 01:26:54,690 Kaya davin Davin ay may kanyang matalino bahagi at ang kanyang mga pipi bahagi. 1934 01:26:54,690 --> 01:26:57,590 Pupuntahan niya gamitin ang kanyang mga smart bahagi ngayon. 1935 01:26:57,590 --> 01:27:00,860 Pupuntahan niya gamitin JavaScript sa kahilingan, halimbawa, 1936 01:27:00,860 --> 01:27:04,340 kung abc123 ay nasa database o hindi. 1937 01:27:04,340 --> 01:27:08,450 >> Kaya Davin, mangyaring, lamang sa iyo padalhan ako ng isang kahilingang HTTP. 1938 01:27:08,450 --> 01:27:09,197 Salamat sa inyo. 1939 01:27:09,197 --> 01:27:10,530 Kaya kakapadala pa lang niya ng isang HTTP na kahilingan. 1940 01:27:10,530 --> 01:27:11,270 Ang makikita mo na? 1941 01:27:11,270 --> 01:27:14,700 At ito lamang ang parehong paraan na ang anumang HTTP na kahilingan ay naipadala na. 1942 01:27:14,700 --> 01:27:16,830 Ang browser, ang Google Chrome o isang bagay, ay 1943 01:27:16,830 --> 01:27:19,570 pagpunta upang makita na Davin ni sinusubukan upang magpadala ng isang HTTP na kahilingan, 1944 01:27:19,570 --> 01:27:20,930 pagpunta upang makatulong Hm nang kaunti. 1945 01:27:20,930 --> 01:27:23,950 At na pupuntahan pumunta ang lahat ng mga paraan sa server. 1946 01:27:23,950 --> 01:27:27,370 Ngayon, ang server ay pagpunta sa may PHP dito, o anumang iba pang mga wika. 1947 01:27:27,370 --> 01:27:29,990 Gusto lang sa isang normal na kahilingan ng HTTP. 1948 01:27:29,990 --> 01:27:31,950 Ito ay halos isang normal na kahilingan ng HTTP. 1949 01:27:31,950 --> 01:27:33,658 >> At pagkatapos, ang server Mawawala na sabihin, OK, 1950 01:27:33,658 --> 01:27:37,270 Nais ni sa akin Davin upang suriin kung ito ay abc123 sa database. 1951 01:27:37,270 --> 01:27:38,310 Pumunta talk sa modelo. 1952 01:27:38,310 --> 01:27:41,310 Sabi modelo hindi. abc123 ay isang mahusay na user name. 1953 01:27:41,310 --> 01:27:47,940 At pagkatapos, ang web server ay pagpunta sa gamitin ang PHP upang mag-render ng ilang mga paraan ng file. 1954 01:27:47,940 --> 01:27:52,280 Ito ay maaaring maging isang file literal lamang na naglalaman ng "oo" sa loob nito, o "hindi, 1955 01:27:52,280 --> 01:27:53,315 o isang bagay tulad na. 1956 01:27:53,315 --> 01:27:54,190 Ito ay maaaring maging anumang file. 1957 01:27:54,190 --> 01:27:57,080 >> Ito ay maaaring maging tulad ng Pupunta ako sa magpadala Davin isang larawan ng isang pato 1958 01:27:57,080 --> 01:28:01,200 kung ito ay sa database at magpadala ng isang larawan ng isang hamster 1959 01:28:01,200 --> 01:28:02,420 kung ito ay wala sa database. 1960 01:28:02,420 --> 01:28:04,294 Iyon ay magiging uri ng pipi, ngunit ito gumagana. 1961 01:28:04,294 --> 01:28:07,030 OK, kaya ko magpadala ng pato sa Davin. 1962 01:28:07,030 --> 01:28:08,150 Nakakuha Davin isang pato. 1963 01:28:08,150 --> 01:28:13,330 At ngayon, kung sino ang pagpunta upang pangasiwaan ang pato? 1964 01:28:13,330 --> 01:28:16,390 Matalino bahagi ng Davin muli, kaya JavaScript, tama? 1965 01:28:16,390 --> 01:28:18,620 Ipinadala ang JavaScript sa kahilingan, at JavaScript 1966 01:28:18,620 --> 01:28:22,300 Mawawala na matanggap ang kahilingan at bigyang-kahulugan ito sa ilang mga paraan. 1967 01:28:22,300 --> 01:28:26,630 >> At sa puntong ito, ay ito pagpunta sa sabihin, OK, kung pato pagkatapos ay ako mabuti. 1968 01:28:26,630 --> 01:28:30,770 Kung hamster, pagkatapos ay pupuntahan ko sasabihin, hindi, user name 1969 01:28:30,770 --> 01:28:31,970 umiiral sa database. 1970 01:28:31,970 --> 01:28:33,845 Ngunit kadalasan, hindi ka pagpunta upang magpadala ng pato. 1971 01:28:33,845 --> 01:28:36,740 Ikaw ay pagpunta upang magpadala ng isang bagay na bahagyang mas matalinong. 1972 01:28:36,740 --> 01:28:40,320 At kung ano ang ginagamit namin ay XML. 1973 01:28:40,320 --> 01:28:42,690 At higit pa kamakailan, ginagamit namin JSON. 1974 01:28:42,690 --> 01:28:45,629 JSON lamang ang JavaScript Bagay pagtatanda, na 1975 01:28:45,629 --> 01:28:47,670 ay isa lamang ikaw ay nakakakuha ng buong JavaScript object. 1976 01:28:47,670 --> 01:28:50,820 At inilagay mo ito sa isang file, i lamang na CS50 bagay na iyon na nakita mo guys. 1977 01:28:50,820 --> 01:28:53,090 Inilagay mo ito sa isang file, at ipadala mo ito sa sa Davin. 1978 01:28:53,090 --> 01:28:55,850 >> Kaya sa kasong ito, nais ko gumawa ng JavaScript na bagay 1979 01:28:55,850 --> 01:28:59,570 at sabihin lang, nang user, oo. 1980 01:28:59,570 --> 01:29:01,630 O nang user, hindi. 1981 01:29:01,630 --> 01:29:02,810 At ipadala ito pabalik sa kanya. 1982 01:29:02,810 --> 01:29:03,830 At bakit JSON? 1983 01:29:03,830 --> 01:29:07,330 Dahil ang mga tao sino ang pagtanggap ng mga ito ay 1984 01:29:07,330 --> 01:29:10,030 pagpunta sa gumamit ng JavaScript upang pangasiwaan ang tugon. 1985 01:29:10,030 --> 01:29:14,970 At JavaScript ay gumagana nang mahusay dahil ang tawag dito JavaScript Bagay pagtatanda. 1986 01:29:14,970 --> 01:29:15,470 Mag-right? 1987 01:29:15,470 --> 01:29:19,660 Kaya maaari niyang tawagan lamang ng isang function at makakuha ng ito maganda na bagay mula sa pagtugon. 1988 01:29:19,660 --> 01:29:22,890 At pagkatapos, pupuntahan niya alam kung gumagamit na iyon ay sa database o hindi. 1989 01:29:22,890 --> 01:29:25,230 >> Kaya nakikita mo, lahat ng ito darating magkasama sa mga web server, 1990 01:29:25,230 --> 01:29:28,450 at pagkatapos ay mayroong isang HTTP na kahilingan at isa HTTP response at lahat ng bagay. 1991 01:29:28,450 --> 01:29:30,600 Kaya tiyaking ka guys Nauunawaan ito ng AJAX tawag 1992 01:29:30,600 --> 01:29:37,260 dahil makakatulong ito na maunawaan mo ang lahat ng sa mga konsepto pinag-uusapan natin ang tungkol. 1993 01:29:37,260 --> 01:29:40,260 >> Kaya narito ang isang halimbawa ng AJAX na may jQuery. 1994 01:29:40,260 --> 01:29:42,130 At dito, aming ginagawa sa get JSON. 1995 01:29:42,130 --> 01:29:45,660 Kaya kami ay hindi sinusubukan upang makakuha ng larawan ng isang pusa dito, o isang pato. 1996 01:29:45,660 --> 01:29:48,110 Kami ay sinusubukan upang makakuha ng isang JSON na file. 1997 01:29:48,110 --> 01:29:51,184 At pagkatapos ay maghintay hanggang namin tapos na ito, tuldok na. 1998 01:29:51,184 --> 01:29:52,850 Nangangahulugan iyon na ako paghihintay para sa mga tugon. 1999 01:29:52,850 --> 01:29:54,180 Maaaring tumagal ng ilang sandali. 2000 01:29:54,180 --> 01:29:56,360 Pagkatapos, makikita mo ang isang maliit na pag-load. 2001 01:29:56,360 --> 01:29:59,340 Kung gusto mong gawin iyon sa iyong website. 2002 01:29:59,340 --> 01:30:01,440 Kaya tuldok na, at pagkatapos ay kung ano ang mangyayari kapag tapos na ito? 2003 01:30:01,440 --> 01:30:04,040 Pumasa ka sa isang hindi nakikilalang function, i lamang nakita natin dati. 2004 01:30:04,040 --> 01:30:07,800 Dahil tapos na ang isang kaganapan, tulad lamang tulad ng pag-click ng mouse o anumang, 2005 01:30:07,800 --> 01:30:08,710 para sa jQuery. 2006 01:30:08,710 --> 01:30:13,710 Kaya pumasa ka sa function na ito sa data, teksto, katayuan, at jqXHR. 2007 01:30:13,710 --> 01:30:15,790 At isa lamang, na ang ilang mga variable lamang 2008 01:30:15,790 --> 01:30:22,160 na maaari mong gamitin sa susunod na magkaroon ang katayuan ng kahilingan ng HTTP, 2009 01:30:22,160 --> 01:30:24,470 ang data na ito ang nangyayari upang magpadala ng pabalik sa iyo. 2010 01:30:24,470 --> 01:30:28,740 Kaya pagkatapos ay maaari mong mamaya sa bigyang-kahulugan ito at gawin ang isang bagay makahulugang dito. 2011 01:30:28,740 --> 01:30:30,240 At kung nabigo ito, kapag maaari itong mabigo? 2012 01:30:30,240 --> 01:30:33,780 Well, kapag nagbibigay sa mga kahilingan ng HTTP ka ng 500 o isang bagay tulad na. 2013 01:30:33,780 --> 01:30:37,420 Pagkatapos, ito ay pagpunta sa sabihin sa iyo ang katayuan, kung anong uri ng pagkabigo na noon ay, 2014 01:30:37,420 --> 01:30:38,420 at lahat ng uri ng bagay. 2015 01:30:38,420 --> 01:30:40,630 Mayroon kang upang matiyak upang pangasiwaan ang parehong mga kaso, 2016 01:30:40,630 --> 01:30:42,770 kung hindi man ay sa programa napupunta mabaliw. 2017 01:30:42,770 --> 01:30:45,820 >> DAVIN: Kaya oo, ito ay eksaktong kung ano ang iyong nakita sa iyong huling p-set. 2018 01:30:45,820 --> 01:30:49,720 Ang aktwal na AJAX tawag ay nasa get JSON. 2019 01:30:49,720 --> 01:30:50,587 Iyon ang tawag. 2020 01:30:50,587 --> 01:30:52,920 At pagkatapos, tuldok tapos ay tulad ng Sinusuri ng ito kung ito ay matagumpay. 2021 01:30:52,920 --> 01:30:55,620 Kung matagumpay ito, nais mong upang gawin ang isang bagay na may data. 2022 01:30:55,620 --> 01:30:59,290 Makakakuha ka ng pabalik mula sa na JSON data kahilingan. 2023 01:30:59,290 --> 01:31:00,600 Iyon ay kung ano ang makakuha ka pabalik. 2024 01:31:00,600 --> 01:31:04,470 Kaya kung iyong naaalala mula sa iyong p-set, Marami sa iyo ay tulad ng bracket data i 2025 01:31:04,470 --> 01:31:06,302 o kahit anong, tuldok link o pamagat. 2026 01:31:06,302 --> 01:31:08,260 Anuman ang pagbabalik mula sa JSON na, kahit anong 2027 01:31:08,260 --> 01:31:11,020 mga patlang ay nasa JSON na bagay, na kung ano ang nakukuha mo pabalik. 2028 01:31:11,020 --> 01:31:12,394 Data ay kung ano ang nakukuha mo pabalik. 2029 01:31:12,394 --> 01:31:15,510 Katayuan ng teksto, isang bagay lamang na ay nagbibigay-daan alam mo kung ano ang nangyari. 2030 01:31:15,510 --> 01:31:20,570 At pagkatapos, ang jqXHR, ito lamang ay ang jQuery kahilingan XML HTTP. 2031 01:31:20,570 --> 01:31:21,990 Iyon ay tulad lamang ng isang bagay. 2032 01:31:21,990 --> 01:31:23,932 At pagkatapos ay mabibigo, tulad ng sinabi Gabe. 2033 01:31:23,932 --> 01:31:27,140 Gabe: Sa aming maliit na halimbawa ng abc123 upang tingnan lamang kung na sa database 2034 01:31:27,140 --> 01:31:32,260 o hindi, ang data ay ka ng isang bagay gagawin, kung mayroon na tuldok ang data ng user pangalan, 2035 01:31:32,260 --> 01:31:37,720 na kung saan ay kung ano ang iyong binuo para sa PHP mong, kung mayroon na tuldok ang data ng user name, at pagkatapos ay 2036 01:31:37,720 --> 01:31:40,880 Pupunta ako upang alertuhan, gumagamit pangalan ay mayroon na. 2037 01:31:40,880 --> 01:31:44,300 Iba Pa, lang ako pagpunta upang ipaalam ang magpatuloy gumagamit ng pagpuno sa form. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK, seguridad, cool. 2040 01:31:50,820 --> 01:31:52,060 >> DAVIN: Gusto ako sa? 2041 01:31:52,060 --> 01:31:54,500 >> Gabe: gusto ko ang isang ito. 2042 01:31:54,500 --> 01:31:57,680 Kaya isang bagay na mukhang pamilyar. 2043 01:31:57,680 --> 01:31:59,750 Halos tapos na kami. 2044 01:31:59,750 --> 01:32:02,670 Kaya ito ay isa lamang halimbawa sa Nakita mo guys sa klase. 2045 01:32:02,670 --> 01:32:04,860 Ikaw ay gumagamit ng argv1 dito. 2046 01:32:04,860 --> 01:32:06,460 Iyon ay tulad ng isang argument ng linya ng command. 2047 01:32:06,460 --> 01:32:09,270 At kami ay Mem pagkopya na sa isang buffer ng laki 12. 2048 01:32:09,270 --> 01:32:12,560 Ano ang problema dito? 2049 01:32:12,560 --> 01:32:13,660 Buffer overflow! 2050 01:32:13,660 --> 01:32:15,400 Dahil mayroon kaming buffer ng laki 12. 2051 01:32:15,400 --> 01:32:18,400 argv1 maaaring magkaroon ng laki ng dalawang bilyong. 2052 01:32:18,400 --> 01:32:19,960 Hindi namin gagawin ang anumang mga hangganan checking. 2053 01:32:19,960 --> 01:32:24,970 Kaya maaari naming kopyahin ng maraming memorya. 2054 01:32:24,970 --> 01:32:28,630 At kami ay lalo masama tungkol dito. 2055 01:32:28,630 --> 01:32:32,600 Ano ang magagawa namin iyon napaka, napaka ibig sabihin ng sa kasong ito? 2056 01:32:32,600 --> 01:32:33,278 Oo? 2057 01:32:33,278 --> 01:32:36,528 Madla: Bahagi ng dalawang bilyong mga bagay Naglalaman executable code na nagbabalik 2058 01:32:36,528 --> 01:32:38,127 [Hindi marinig]. 2059 01:32:38,127 --> 01:32:38,710 Gabe: Mismong. 2060 01:32:38,710 --> 01:32:41,110 Kaya iyon ang uri ng bagay na ginagamit ng mga tao 2061 01:32:41,110 --> 01:32:43,344 upang jailbreak ang iPhone, halimbawa. 2062 01:32:43,344 --> 01:32:44,260 Kaya na uri ng bagay. 2063 01:32:44,260 --> 01:32:48,610 Dahil maaari kang gumawa lamang ang aparato isagawa ang anumang code na gusto mo. 2064 01:32:48,610 --> 01:32:50,247 Ang pag-aayos, kaya ang pag-aayos ay madali. 2065 01:32:50,247 --> 01:32:51,330 Lagyan lamang para sa mga hangganan. 2066 01:32:51,330 --> 01:32:53,455 Suriin mo para sa null dahil palagi naming suriin para sa null 2067 01:32:53,455 --> 01:32:54,940 kapag kami ay pagharap sa mga string. 2068 01:32:54,940 --> 01:32:57,840 At pagkatapos, kunin mo ang haba ng string ng bago. 2069 01:32:57,840 --> 01:33:00,150 At kung ang string haba ay isang wastong string 2070 01:33:00,150 --> 01:33:03,700 haba, na kung saan ay sa loob ng 0 at 12, pagkatapos kami ay mabuti. 2071 01:33:03,700 --> 01:33:07,144 >> DAVIN: Kung hindi mo suriin para sa null, tunay mabilis, kung ano ang mangyayari? 2072 01:33:07,144 --> 01:33:07,810 Ito seg fault. 2073 01:33:07,810 --> 01:33:10,850 Bakit ay seg ito kapintasan? 2074 01:33:10,850 --> 01:33:12,510 Dahil ka pagtawag strlen sa null. 2075 01:33:12,510 --> 01:33:13,010 Gabe: Oo. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 Tama o mali, gamit ang isang password ay isang magandang ideya. 2078 01:33:19,630 --> 01:33:20,430 >> Madla: Mali. 2079 01:33:20,430 --> 01:33:21,150 >> Gabe: Mali. 2080 01:33:21,150 --> 01:33:23,870 Gamitin ang maraming mga password, at malaki, mahaba ang mga bago. 2081 01:33:23,870 --> 01:33:26,050 Icon na padlock matiyak ang seguridad. 2082 01:33:26,050 --> 01:33:27,080 >> Madla: Mali. 2083 01:33:27,080 --> 01:33:27,749 >> Gabe: Mali. 2084 01:33:27,749 --> 01:33:28,790 Hindi ito nangangahulugan ng kahit ano. 2085 01:33:28,790 --> 01:33:30,480 Ito ay isang icon lamang. 2086 01:33:30,480 --> 01:33:32,824 SSL pinoprotektahan laban sa isang tao sa gitna atake. 2087 01:33:32,824 --> 01:33:33,490 Madla: Mali. 2088 01:33:33,490 --> 01:33:34,110 Gabe: Mali. 2089 01:33:34,110 --> 01:33:35,355 OK, kaya ang lahat ng mga ito ay hindi totoo. 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 Nice. 2092 01:33:39,490 --> 01:33:40,220 [Hindi marinig] 2093 01:33:40,220 --> 01:33:42,500 Gustong makipag-usap tungkol dito? 2094 01:33:42,500 --> 01:33:43,259 Ikaw naman. 2095 01:33:43,259 --> 01:33:45,050 DAVIN: Mga uri ng pag-atake, tao sa gitna. 2096 01:33:45,050 --> 01:33:47,134 Ano ang isang tao sa gitna atake? 2097 01:33:47,134 --> 01:33:48,050 Madla: [hindi marinig]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 DAVIN: Kung magpadala sa iyo ng isang HTTP kahilingan, maaari nilang gawin ito, i-right? 2100 01:33:54,020 --> 01:33:57,890 Ngunit kung ipinapadala mo ang HTTPS, sila Marahil ay hindi magagawang upang gawin ito. 2101 01:33:57,890 --> 01:33:59,952 Mayroong maraming mga punto kasama ang iyong koneksyon. 2102 01:33:59,952 --> 01:34:00,660 Mayroon kang mga router. 2103 01:34:00,660 --> 01:34:01,746 Mayroon kang mga DNS server. 2104 01:34:01,746 --> 01:34:04,120 Kung ang isang tao ay magagawang pisikal na makita kung ano ang iyong pagpapadala sa, 2105 01:34:04,120 --> 01:34:06,140 kaya ang isang tao ay magagawang talagang makakuha sa pagitan mo, 2106 01:34:06,140 --> 01:34:08,840 ang client, at ng server, at ito ay magagawang makita kung ano ang iyong pagpapadala sa, 2107 01:34:08,840 --> 01:34:10,298 ito ay isang tao sa gitna atake. 2108 01:34:10,298 --> 01:34:14,287 Kaya upang makita kung ano ang sinusubukan mong makakuha mula sa sa server, o ay magagawang see-- mas masahol pa, 2109 01:34:14,287 --> 01:34:16,620 maaari mong magawang upang makita cookies o isang bagay tulad na. 2110 01:34:16,620 --> 01:34:19,290 >> Kaya halimbawa, kung hindi ka gumagamit ng SSL, siya 2111 01:34:19,290 --> 01:34:21,900 Maaaring magawang makita ang iyong mga cookies ng session ID. 2112 01:34:21,900 --> 01:34:25,460 At ito ay tinatawag na-hijack ng session dahil nakikita niya ang iyong mga cookies ID, 2113 01:34:25,460 --> 01:34:28,317 at pagkatapos ay siya magagawang upang pumunta sa na website at magpanggap na iyo. 2114 01:34:28,317 --> 01:34:31,150 Dahil gusto lamang sa PHP, tandaan kapag naka-log in kami, ano ang gagawin namin gawin? 2115 01:34:31,150 --> 01:34:33,340 Kami magtakda ng session ID katumbas ng ID. 2116 01:34:33,340 --> 01:34:34,810 Kaya na kumikilala sa iyo. 2117 01:34:34,810 --> 01:34:38,300 Iyon ang dahilan kung bakit makikita mo ang iyong portfolio at portfolio ay hindi lahat ng iba pa. 2118 01:34:38,300 --> 01:34:42,320 >> Well, kung ako maaaring makakuha ng cookie na iyon, pagkatapos ay maaari kong mag-log papunta sa pahinang iyon. 2119 01:34:42,320 --> 01:34:45,380 At pagkatapos, ang maaari kong makita lamang ang iyong mga bagay-bagay at simulan ang pagbili ng mga bagay-bagay at pagbebenta ng. 2120 01:34:45,380 --> 01:34:46,800 Kaya na-hijack ng session. 2121 01:34:46,800 --> 01:34:50,810 Ngunit hindi ka dapat ma to-- kaya mo Maaaring gamitin ang tao sa gitna atake 2122 01:34:50,810 --> 01:34:52,290 kahit na sila ay gumagamit ng SSL. 2123 01:34:52,290 --> 01:34:53,520 Ngunit hindi ka dapat ma-. 2124 01:34:53,520 --> 01:34:56,580 Kung sila ay gumagamit ng SSL, hindi maaari mong session hijack. 2125 01:34:56,580 --> 01:34:58,927 Bakit? 2126 01:34:58,927 --> 01:35:01,135 Dahil ito ay ang lahat ng naka-encrypt, tama? kung ito ay naka-encrypt, 2127 01:35:01,135 --> 01:35:03,509 at ako pa rin ang isang tao sa gitna, hindi pa rin nakukuha ko ang iyong data. 2128 01:35:03,509 --> 01:35:04,279 Iyon ay pinong. 2129 01:35:04,279 --> 01:35:05,070 Ngunit ito ay naka-encrypt. 2130 01:35:05,070 --> 01:35:07,750 Kaya hindi ko talaga ito magamit. 2131 01:35:07,750 --> 01:35:09,840 Kaya na dalawa. 2132 01:35:09,840 --> 01:35:11,544 >> Real mabilis, kahilingan palsipikasyon kalyeng site. 2133 01:35:11,544 --> 01:35:13,960 Iyon lamang kung mayroong link at ang link na iyon ang isang bagay 2134 01:35:13,960 --> 01:35:14,890 na tingin ninyo ay hindi dapat itong gawin. 2135 01:35:14,890 --> 01:35:18,150 Kaya halimbawa, kung ang link ay pagpunta sa bumili ng mga stock o magbenta ng mga stock, 2136 01:35:18,150 --> 01:35:19,360 at hindi mo alam kung iyon. 2137 01:35:19,360 --> 01:35:22,040 Nag-click ka sa link, nagpadala ng isang kahilingan, binili 2138 01:35:22,040 --> 01:35:24,240 o ibenta ng isang bagay na hindi mo sinasadyang gawin. 2139 01:35:24,240 --> 01:35:25,120 Iyon na iyon. 2140 01:35:25,120 --> 01:35:30,720 >> Cross scripting site, kaya dito, naka pagpasa sa pamamagitan ng variable q, 2141 01:35:30,720 --> 01:35:33,510 sa halip ng pagpasa sa ilang mga uri ng halaga, siguro q ay tulad ng isang pangalan. 2142 01:35:33,510 --> 01:35:36,560 Kaya sa halip na ang pagpasa q equals Davin o isang bagay tulad na, 2143 01:35:36,560 --> 01:35:38,740 kung hindi ka gumagamit ng HTML espesyal na karakter, kung 2144 01:35:38,740 --> 01:35:43,100 huwag makatakas ito upang tiyakin na ito ay OK, pagkatapos ay maaari ba akong magpasa sa halip, 2145 01:35:43,100 --> 01:35:46,910 sabihin nating in dito ako sinasabi print o isang bagay tulad na, 2146 01:35:46,910 --> 01:35:51,070 pagkatapos ay maaari ba akong magpasa ng in dito sa isang script na tawag. 2147 01:35:51,070 --> 01:35:53,140 >> Kaya pagkatapos, sa halip na pagkuha lamang ng isang variable, 2148 01:35:53,140 --> 01:35:54,960 Gusto ko nang isagawa ang script na ito tawag. 2149 01:35:54,960 --> 01:35:57,065 Kaya sa loob ng script na tumawag, ano ba ito gawin? 2150 01:35:57,065 --> 01:36:00,190 Lokasyon tuldok dokumento, na pupuntahan baguhin ang lokasyon ng dokumento. 2151 01:36:00,190 --> 01:36:02,290 Kaya pupuntahan ko upang i-redirect sa ibang lugar. 2152 01:36:02,290 --> 01:36:08,170 Ito ay tinatawag na masamang tao sa halimbawang ito, ang napakagandang. 2153 01:36:08,170 --> 01:36:10,536 Hindi ma-isip ng mga salita. 2154 01:36:10,536 --> 01:36:12,410 At pagkatapos ay, kung ano ang kahit na mas masahol pa ay na pupuntahan ko 2155 01:36:12,410 --> 01:36:16,832 upang pagkatapos ay itakda cookie, na ilang variable kong ilagay sa website na ito. 2156 01:36:16,832 --> 01:36:19,040 Pupunta ako sa itakda ito katumbas upang ang tuldok na dokumento cookie. 2157 01:36:19,040 --> 01:36:20,660 Samakatuwid, pupunta ako nakawin ang iyong cookie. 2158 01:36:20,660 --> 01:36:22,951 At pupuntahan ko upang i-redirect ilang impormasyon sa isang website 2159 01:36:22,951 --> 01:36:25,120 na hindi dapat pag-access. 2160 01:36:25,120 --> 01:36:29,250 At ito ang lahat ng mangyayari dahil ikaw ay Hindi escaping kung ano ang iyong nakita. 2161 01:36:29,250 --> 01:36:29,910 Oo? 2162 01:36:29,910 --> 01:36:32,160 >> Madla: Kaya lang sa gumawa ng malinaw na ito, 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com na ay mahina sa ito. 2164 01:36:37,550 --> 01:36:39,300 Kaya maaaring lumitaw ang link na iyon sa anumang ibinigay na pahina. 2165 01:36:39,300 --> 01:36:42,200 May nag-click sa ito, pupunta sa vulnerable.com. 2166 01:36:42,200 --> 01:36:43,700 Mayroon kang isang cookie upang vulnerable.com. 2167 01:36:43,700 --> 01:36:46,670 Sabihin nating Facebook ay mahina, kaya facebook.com. 2168 01:36:46,670 --> 01:36:48,310 Mayroon kang ang iyong cookie sa Facebook. 2169 01:36:48,310 --> 01:36:50,925 Ano ang ginagawa, ikaw ay pagpunta sa facebook.com, 2170 01:36:50,925 --> 01:36:53,990 agad na ito ay nagre-redirect mong badguy.com, 2171 01:36:53,990 --> 01:36:57,182 ngunit kabilang ang impormasyon ng iyong cookie. 2172 01:36:57,182 --> 01:36:59,310 Kaya ito ang mabilis na pag-redirect, ngunit ang iyong cookie Facebook 2173 01:36:59,310 --> 01:37:02,572 Kasama sa mga na-redirect, at iyon ang kung paano sila [hindi marinig]. 2174 01:37:02,572 --> 01:37:04,280 Gabe: Oo, may ang ilang mga napaka-masama bagay 2175 01:37:04,280 --> 01:37:06,070 na maaaring gawin ng mga tao kung mayroong ito. 2176 01:37:06,070 --> 01:37:09,190 Halimbawa, kung pinapayagan Facebook lahat ng tao upang baguhin ang iyong user name, 2177 01:37:09,190 --> 01:37:11,680 at hindi nila ginawa ang anumang mga kaliwanagan ng isip sa mga pagsusuri, kaya mo 2178 01:37:11,680 --> 01:37:16,810 maaaring magpasok ng isang JavaScript na bagay nagbabago ang iyong mga imahe sa isang hamster. 2179 01:37:16,810 --> 01:37:22,590 At na pagsingit sa parehong JavaScript sa lahat ng tao kung sino ang pagtingin sa iyong pahina. 2180 01:37:22,590 --> 01:37:26,400 Kaya lahat na pagtingin sa iyong pahina May parehong bagay sa user name. 2181 01:37:26,400 --> 01:37:30,104 At dahil ito ay isang virus, ito kumalat exponentially. 2182 01:37:30,104 --> 01:37:32,270 DAVIN: Susubukan naming laktawan ang huling isa, at pagkatapos ay tapos na kami. 2183 01:37:32,270 --> 01:37:34,120 Kaya ito ay isa lamang halimbawa. 2184 01:37:34,120 --> 01:37:36,120 Kaya ito ay hindi sila escaping kanilang SQL table. 2185 01:37:36,120 --> 01:37:37,090 Kaya maaari mong i-drop ito. 2186 01:37:37,090 --> 01:37:38,805 Kaya gusto mo upang makatakas sa mga bagay. 2187 01:37:38,805 --> 01:37:44,010 Iyon ay ang nakaraang halimbawa sa krus site scripting. 2188 01:37:44,010 --> 01:37:45,430 Paumanhin tumakbo kami nang kaunti huli na. 2189 01:37:45,430 --> 01:37:46,870 Bukas, paumanhin! 2190 01:37:46,870 --> 01:37:48,560 Bukas, mayroon kaming oras ng opisina. 2191 01:37:48,560 --> 01:37:50,870 Kaya oras ng opisina sa Cabbot 8:00-11:00. 2192 01:37:50,870 --> 01:37:55,240 Ang oras ng opisina ay mahigpit na para sa pagsusulit katanungan. 2193 01:37:55,240 --> 01:37:56,587