1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Nedēļa 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Hārvarda] 3 00:00:04,740 --> 00:00:07,170 [Tas ir CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Labi. Laipni lūdzam atpakaļ. Tas ir CS50, un tas ir sākums 9 nedēļas. 5 00:00:12,350 --> 00:00:16,600 Šodien mēs īpaši vērsta uz projektēšanas, vairs kontekstā C 6 00:00:16,600 --> 00:00:20,010 bet PHP kontekstā un SQL bitu un JavaScript mazliet, 7 00:00:20,010 --> 00:00:23,730 īpaši uz beigām gan 7 PSET un arī jūsu gala projektu. 8 00:00:23,730 --> 00:00:26,310 Patiesībā, ja jums ir, ka tajā brīdī savā pēdējā projektā 9 00:00:26,310 --> 00:00:30,100 kur iespējams no stundu vai tik pirms jums vismaz sāka pārdomāt 10 00:00:30,100 --> 00:00:33,730 uz savu galīgo projektu un jūs domājat jūs vēlētos sadarboties ar 1 vai 2 klasesbiedriem, 11 00:00:33,730 --> 00:00:36,150 ja jums ir problēmas savieno ar sacīja klasesbiedriem, 12 00:00:36,150 --> 00:00:40,570 justies brīvi, lai aizpildītu veidlapu cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 Tas tikai prasa jums, kas jūs esat, kāda veida projektu, jūs domājat par to, 14 00:00:42,880 --> 00:00:44,870 kur tu dzīvo tikai loģistikas iemeslu dēļ. 15 00:00:44,870 --> 00:00:49,510 Un tad, ja jūs vēlaties, lai saglabātu acu par nākamo nedēļu, vai arī tā izklājlapas URL tur, 16 00:00:49,510 --> 00:00:53,520 Jūs varat redzēt tikai lasāmu versiju Google doc 17 00:00:53,520 --> 00:00:56,010 kurā mēs esam šīs informācijas vākšanai. 18 00:00:56,010 --> 00:00:58,930 Tātad, ja jūs vēlaties strādāt ar kādu, ar visiem līdzekļiem justies brīvi, lai panākt, lai cilvēki 19 00:00:58,930 --> 00:01:00,480 izmantojot šo mehānismu. 20 00:01:00,480 --> 00:01:02,690 Bet par ļaudīm vairākums darīt darbu solo. Tas ir pilnīgi naudas sodu. 21 00:01:02,690 --> 00:01:06,120 Tāpēc nejūtos, ka tas ir kaut kādā veidā obligāta. 22 00:01:06,120 --> 00:01:09,680 Piektdien tas bija tikai man un no komandas maz šeit, 23 00:01:09,680 --> 00:01:11,100 tukšs teātris par lielāko daļu. 24 00:01:11,100 --> 00:01:14,600 Tur bija 3 tūristi sēdēja tur, tā ka bija mazliet neveikli. 25 00:01:14,600 --> 00:01:18,970 Ko mēs runājām par to bija datubāzes un mēs runājām par PSET 7 mazliet. 26 00:01:18,970 --> 00:01:22,200 Un, ja jums nav gadās noķert ka uz video tikai vēl, tas ir jauki. 27 00:01:22,200 --> 00:01:26,770 Es mēģināšu definēt visus noteikumus, kas mēs citādi pieņemt par pašsaprotamu 28 00:01:26,770 --> 00:01:28,840 pamatojoties uz piektdienas lekciju. 29 00:01:28,840 --> 00:01:32,550 >> Bet šodien mēs esam gatavojas izmēģināt, lai saņemtu jums līdz punktam 30 00:01:32,550 --> 00:01:34,990 ne tikai ar to var kaut ko darīt, piemēram, 7 PSET 31 00:01:34,990 --> 00:01:37,360 bet tiešām saprast, kas notiek zem pārsega, 32 00:01:37,360 --> 00:01:41,910 īpaši dažas no abstrakcijām, ka mēs ieviestas ar functions.php failā 33 00:01:41,910 --> 00:01:45,780 lai padarītu jūsu dzīvi mazliet vieglāk, bet tā, ka jūs galu galā saprast 34 00:01:45,780 --> 00:01:48,760 lai tad, kad mācību riteņi iztrūkt pēc pāris nedēļām jūs joprojām varat izdzīvot 35 00:01:48,760 --> 00:01:53,750 reālajā pasaulē un šo stuff bez CS50 ietvaros zem jums. 36 00:01:53,750 --> 00:01:57,500 Šis $ _SESSION, tiem no jums, kuri ir pazīstami 37 00:01:57,500 --> 00:02:01,960 vai kas jau nozvejotas video piektdien, kādi sesija ļaujiet mums darīt 38 00:02:01,960 --> 00:02:04,330 ar PHP balstītas tīmekļa lietojumprogrammu? 39 00:02:04,330 --> 00:02:09,650 Tas ir superglobal mainīgs, kas nozīmē, tas ir līdzīgs garā GET un POST 40 00:02:09,650 --> 00:02:13,970 un daži citi, bet kāda ir šī lieta noderīga? 41 00:02:13,970 --> 00:02:18,320 >> Kas ir sesija lieto? Yeah. [Students] pieslēdzoties 42 00:02:18,320 --> 00:02:21,040 Žēl? [Students] pieslēdzoties pieslēdzoties Tiešām. 43 00:02:21,040 --> 00:02:25,100 7 PSET mēs izmantojam šīs sesijas superglobal lai atvieglotu pieslēdzoties 44 00:02:25,100 --> 00:02:28,600 Un, kas ir jauka par šo superglobal ka tas ir asociatīvā masīva. 45 00:02:28,600 --> 00:02:33,190 Asociatīvā masīva, atsaukšana, ir tikai masīvs, bet kuru indeksi vairs jābūt skaitļi 46 00:02:33,190 --> 00:02:37,670 piemēram 012. Tie var būt skaitļi vai tie var būt pat stīgas. 47 00:02:37,670 --> 00:02:44,890 Un tāpēc, ja esat ienira 7 PSET vēl, jūs varat atcerēties, ka mēs glabājusi atslēgu sauc ID 48 00:02:44,890 --> 00:02:50,330 iekšpuses šo asociatīvā masīva, kura vērtība ir kaut kas līdzīgs 123 - 49 00:02:50,330 --> 00:02:53,780 neatkarīgi pašlaik pieteicies lietotāja ID ir. 50 00:02:53,780 --> 00:02:59,470 Tam par motivācija ir tas, ka pat pēc lietotājs ir apmeklējis localhost 51 00:02:59,470 --> 00:03:02,720 vai manu mājas lapā vispār, un tad viņi pieteicies, 52 00:03:02,720 --> 00:03:07,320 pat ja tie nav noklikšķiniet uz saites vai atgriezties uz manu mājas lapā par 5 minūtēm 53 00:03:07,320 --> 00:03:10,730 vai pat stundu vai pat dienu, bet viņi atstāj savu pārlūka logu atvērt, 54 00:03:10,730 --> 00:03:14,370 izmantojot šo superglobal es varu atcerēties, ka tie ir pieteicies collas 55 00:03:14,370 --> 00:03:21,140 >> Citiem vārdiem sakot, tas man ļauj saglabāt nedaudz ilgtermiņa kaut ko es gribu par lietotāju. 56 00:03:21,140 --> 00:03:24,390 Un jūs varat domāt par to tiešām kā iemiesojums iepirkumu grozā. 57 00:03:24,390 --> 00:03:27,740 Vietās, piemēram, Amazon, protams ļauj jums nodot lietas par iepirkšanās grozs, 58 00:03:27,740 --> 00:03:32,230 bet HTTP protokols, kas pilnvaras internetā, ir bezvalstnieks 59 00:03:32,230 --> 00:03:34,230 tādā ziņā, ka tad, kad jūs apmeklējat tīmekļa vietni, 60 00:03:34,230 --> 00:03:37,290 par lielāko daļu jums nav zināma pastāvīgu tīkla savienojums 61 00:03:37,290 --> 00:03:39,270 starp jūsu pārlūkprogrammu un serveri. 62 00:03:39,270 --> 00:03:42,190 Tiklīdz esat lejupielādējis HTML un JPEG un GIF un visu, kas, 63 00:03:42,190 --> 00:03:48,200 savienojums iet prom, un jums vienkārši ir kopija HTML un plauktiņš no servera. 64 00:03:48,200 --> 00:03:53,000 Bet ja serveris vēlas atcerēties kaut ko par jums, 65 00:03:53,000 --> 00:03:57,580 slogs ir uz servera, lai faktiski ierakstīt šo informāciju. 66 00:03:57,580 --> 00:04:00,130 Un tāpēc jums programmētājs, kurš ir kontrole pār serveri 67 00:04:00,130 --> 00:04:04,400 var likt visvairāk kaut ko vēlaties iekšpuses šo superglobal asociatīvā masīva 68 00:04:04,400 --> 00:04:06,850 un tas būs tur nākamajā reizē lietotājs nāk atpakaļ, 69 00:04:06,850 --> 00:04:12,070 vai tas ir minūtes vai pat dienas vēlāk, ja vien tie slēgt savu pārlūka logu 70 00:04:12,070 --> 00:04:14,360 kurā brīdī sesija pazūd. 71 00:04:14,360 --> 00:04:17,779 Tātad, tas ir īslaicīgi uzglabāšanu, tas ir nestabils, un tas ir domāts, lai iet prom 72 00:04:17,779 --> 00:04:22,360 tiklīdz lietotājs aizver savu pārlūkprogrammu - ne tikai to, ka cilne, nereti visu pārlūku, 73 00:04:22,360 --> 00:04:24,930 tādējādi efektīvi mežizstrādes lietotājam ārā. 74 00:04:24,930 --> 00:04:28,000 Tātad, kā tas lieta faktiski īstenoti? 75 00:04:28,000 --> 00:04:31,360 Pieņemsim veikt ātri apskatīt vienkāršs piemērs mēs paskatījās piektdien. 76 00:04:31,360 --> 00:04:33,340 Tiem svešs, tas bija tik vienkārši, kā šis. 77 00:04:33,340 --> 00:04:35,910 Tas ir mājas lapa, kuras vienīgais mērķis dzīvē ir pateikt 78 00:04:35,910 --> 00:04:38,000 cik reizes esmu apmeklējis šo lapu. 79 00:04:38,000 --> 00:04:41,670 Šī ir pirmā reize šeit pirmdien, ka es apmeklēju to, tāpēc tā saka 0 reizes. 80 00:04:41,670 --> 00:04:46,940 >> Bet, ja es sāktu pārkraušanas šo lapu, tā saka 1 reizi, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 un tas galu galā vienkārši turēt uz skaitīšanas augšu, uz augšu, uz augšu, uz augšu, uz augšu 82 00:04:49,800 --> 00:04:53,130 katru reizi es tiešām noklikšķiniet Pārlādēt par to. 83 00:04:53,130 --> 00:04:58,830 Tātad, kā tas darbojas? Ļaujiet man iet iekšā šo failu sauc counter.php. 84 00:04:58,830 --> 00:05:02,490 Augšējā daļa no tā ir visiem Blue komentārus, bet interesanti daļa ir šeit. 85 00:05:02,490 --> 00:05:06,670 13 līnijā mēs saucam funkciju session_start, 86 00:05:06,670 --> 00:05:09,600 un tas ir burtiski viss, kas jums jādara, ja jūs vēlaties, lai būtu pieejami 87 00:05:09,600 --> 00:05:13,610 uz šo īpašo superglobal sauc $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 Tas padara to visu iespējams, un mēs redzēsim brīdi, kā tas viss ir iespējams. 89 00:05:17,430 --> 00:05:20,350 Rindā 16 paziņojumā, ko es daru. 90 00:05:20,350 --> 00:05:25,960 Ja galvenais, ko sauc skaitītājs - citiem vārdiem sakot, indeksa vērtība - "skaitītājs" 91 00:05:25,960 --> 00:05:32,310 pastāv iekšpusē šī masīva sauc sesija, tad ko es daru ar to līniju zemāk? 92 00:05:32,310 --> 00:05:36,650 Kas ir līnija 18 dara? 93 00:05:36,650 --> 00:05:40,360 >> [Dzirdams studentu reaģēšanas] Kas tas ir? [Students] glabāšana vērtību. Labi. 94 00:05:40,360 --> 00:05:45,800 Tas glabāšanai vērtību, kas ir sesija tieši tagad jaunā vietējā pagaidu mainīgo, 95 00:05:45,800 --> 00:05:48,250 $ Skaitītājs visiem mazajiem. 96 00:05:48,250 --> 00:05:50,770 Ievērojiet, ka PHP jau ir mazliet slinks šeit. 97 00:05:50,770 --> 00:05:55,550 Pamanīt mums nav nekādas atsauces uz int vai peldēt vai auklu vai kaut kas tamlīdzīgs 98 00:05:55,550 --> 00:06:00,480 jo PHP ir vāji drukāti, kurā jums nav jānorāda veidu mainīgo, 99 00:06:00,480 --> 00:06:03,310 un šajā gadījumā šeit es esmu pat deklarēta to vēl. 100 00:06:03,310 --> 00:06:08,980 Es esmu paziņojot to iekšpusē šo cirtaini lencēm un atšķirībā C, tas ir faktiski labi. 101 00:06:08,980 --> 00:06:13,800 Nav svarīgi, cik dziļi ligzdotu mainīgs deklarāciju ir PHP - 102 00:06:13,800 --> 00:06:16,650 iekšpusē cirtaini lencēm, iekšpusē cirtaini lencēm un līdzīgu - 103 00:06:16,650 --> 00:06:21,230 tas būs tajā brīdī laikā pastāv uz atlikušo programmas, 104 00:06:21,230 --> 00:06:22,680 lai labāk vai sliktāk. 105 00:06:22,680 --> 00:06:26,930 Tātad, tas uzreiz kļūst globāla, tiklīdz jūs to definēt kā mēs darām šeit. 106 00:06:26,930 --> 00:06:31,620 >> Pretējā gadījumā, ja es neuzskatu, ka tur ir kaut kas SESSION superglobal, 107 00:06:31,620 --> 00:06:34,680 Es esmu acīmredzot inicializēšana šo mainīgo counter līdz 0, 108 00:06:34,680 --> 00:06:37,580 tādējādi tikai pieņemot lietotājs nekad nav bijis šeit pirms. 109 00:06:37,580 --> 00:06:40,030 Un tad tas, protams, ir palielināšanai skaitītājs kā? 110 00:06:40,030 --> 00:06:44,480 Es esmu atjaunināšanu vērtību, kas ir iekšā šo asociatīvā masīva 111 00:06:44,480 --> 00:06:49,530 nosakot to vienāda neatkarīgi skaitītājs šobrīd ir + 1. 112 00:06:49,530 --> 00:06:53,520 Ja es ritiniet uz leju šeit HTML lapas, patiesībā tas ir diezgan vienkārši. 113 00:06:53,520 --> 00:06:58,920 Viss, kas man ir organismā šīs lapas ir "Tu esi apmeklējis šo vietni tik-un-tā reizes." 114 00:06:58,920 --> 00:07:00,350 Un tas ir PHP būvēt. 115 00:07:00,350 --> 00:07:06,080 Ja jūs 00:07:12,600 Tas tiešām atbilst kaut ko līdzīgu printf, ko mēs esam redzējuši daudzas reizes C, 117 00:07:12,600 --> 00:07:15,940 kaut kā jūs zināt jau no spec Direktīvas 7 PSET, 118 00:07:15,940 --> 00:07:20,160 drukāt ir arī funkcija, kas tikko izdrukas kaut kas, tas nav reāli izmantot formātu kodus, 119 00:07:20,160 --> 00:07:23,270 un jūs faktiski var teikt atbalsi, kā arī. 120 00:07:23,270 --> 00:07:27,460 Viņi visi kādreiz tik nedaudz atšķiras pat ja neto ietekme ir galu galā pats. 121 00:07:27,460 --> 00:07:31,270 Tāpēc šo izmantošana vienlīdzības zīmi ir tikai sava veida elegants veids, kā darīt to 122 00:07:31,270 --> 00:07:34,910 kodolīgāk nekā jūs citādi varētu būt spējīgs. 123 00:07:34,910 --> 00:07:38,370 Tā ka viss šajā vietā dara. Tā izdrukā vērtību letes. 124 00:07:38,370 --> 00:07:40,550 Kā tas viss patiesībā notiek? 125 00:07:40,550 --> 00:07:43,250 Jūs varat atgādināt nedēļā vai tā atpakaļ mēs sākām meklēt zem pārsega 126 00:07:43,250 --> 00:07:47,910 , kā mājas lapa darbojas, izmantojot šo inspektors cilni. 127 00:07:47,910 --> 00:07:51,900 >> Chrome ir tas gan Mac versiju, Windows versiju, un pat Linux versija, 128 00:07:51,900 --> 00:07:59,510 un Firefox un IE ir līdzīgas mehānismus, turklāt jums ir šī iebūvēts atkļūdotājs 129 00:07:59,510 --> 00:08:01,400 iekšpusē pārlūku. 130 00:08:01,400 --> 00:08:03,040 Pieņemsim to apskatīt šo. 131 00:08:03,040 --> 00:08:06,960 Mēs esam ieguvuši visu ķekars cilnēm šeit, un atcerēties, ka kreisās malas viens ir elementi, 132 00:08:06,960 --> 00:08:10,700 un nav svarīgi, cik godawful HTML un JavaScript ir lapā, 133 00:08:10,700 --> 00:08:15,710 atceros, ka ar Elements cilnē jūs faktiski var pārvietoties HTML hierarhiski 134 00:08:15,710 --> 00:08:17,050 un jauki un glīti. 135 00:08:17,050 --> 00:08:19,370 Tātad, ja jūs mēģināt mācīties no mājas, piemēram, Google vai Facebook 136 00:08:19,370 --> 00:08:22,370 vai tiešām jebkurā mājas lapā, saprotam, ka jūs, iespējams, labāk 137 00:08:22,370 --> 00:08:26,360 Aplūkojot pirmkoda šo ceļu, nevis meklē neapstrādātu avotu, 138 00:08:26,360 --> 00:08:29,580 kas var būt haoss, jo mēs esam redzējuši, jo īpaši uz Google vietnē. 139 00:08:29,580 --> 00:08:32,220 Tātad, ja es tā vietā noklikšķiniet uz Network cilnē šeit, 140 00:08:32,220 --> 00:08:34,830 pieņemsim redzēt, kas notiek, kad es apmeklēju šo lapu. 141 00:08:34,830 --> 00:08:38,669 Pirmais ļaujiet man skaidri manu kešatmiņu. 142 00:08:38,669 --> 00:08:43,570 Es iešu uz Settings Chrome un pēc tam doties uz vēstures 143 00:08:43,570 --> 00:08:46,420 un notīriet visu pārlūkošanas datus. 144 00:08:46,420 --> 00:08:48,170 Jūs varētu izmantot, lai darot citiem mērķiem, [smiekli] 145 00:08:48,170 --> 00:08:51,990 bet, kad runa ir par jaunattīstības mājas lapas, tas ir tiešām noderīgi - 146 00:08:51,990 --> 00:08:55,980 ja jūs smieties jūs zināt. [Smiekli] 147 00:08:55,980 --> 00:08:59,310 Tas ir tiešām ļoti noderīga, izstrādājot mājas lapas, jo realitāte ir 148 00:08:59,310 --> 00:09:04,100 lietām, piemēram, cepumi un lietām, piemēram kešatmiņā HTML failus, kešatmiņā JavaScript failus 149 00:09:04,100 --> 00:09:06,390 faktiski var kļūt lielas galvassāpes, jo, ja kaut kāda iemesla dēļ 150 00:09:06,390 --> 00:09:11,500 pārlūkprogramma nolemj cache kādu failu, un vēl esat veicis izmaiņas šajā failā uz servera 151 00:09:11,500 --> 00:09:14,670 bet pārlūks nav īsti sapratuši, ka fails ir mainīts 152 00:09:14,670 --> 00:09:19,060 un tāpēc nav faktiski atkārtoti lejupielādēt to, pat ja jūs noklikšķiniet Pārlādēt pogas, 153 00:09:19,060 --> 00:09:23,210 viens no visvairāk pareizs veidus, lai tikai pārliecinātos vaina nav ar savu kodu, 154 00:09:23,210 --> 00:09:26,480 tas ir ar uzvedību pārlūku, ir doties šeit savā pārlūkprogrammā 155 00:09:26,480 --> 00:09:29,950 un vienkārši notīrīt visu vēsturi, lai tur nav neskaidrību. 156 00:09:29,950 --> 00:09:33,210 >> Un tad, ja jūs patiešām vēlaties būt paranoiķis, atmest pārlūku, restartējiet to, 157 00:09:33,210 --> 00:09:35,660 un tad pārliecinieties, ka visi strādā, kā gaidīts. 158 00:09:35,660 --> 00:09:38,820 Tātad īsumā, kešatmiņas ir labi, ja dara attīstību. 159 00:09:38,820 --> 00:09:40,690 Tāpēc šeit mēs esam uz cilnes Tīkls. 160 00:09:40,690 --> 00:09:46,020 Man agrāk bija apmeklējis šo vietni 9 reizes, bet ļaujiet man iet uz priekšu tagad un noklikšķiniet pārlādē. 161 00:09:46,020 --> 00:09:47,500 Un es esmu atpakaļ uz leju līdz 0. 162 00:09:47,500 --> 00:09:52,100 Pieņemsim faktiski redzēt, kā tas ir, ka šī sesija superglobal tiek īstenota. 163 00:09:52,100 --> 00:09:55,990 Es esmu gatavojas klikšķiniet uz 1 HTTP pieprasījumu, kas tika veikts, 164 00:09:55,990 --> 00:09:58,810 un tas atkļūdošana logs ļauj man skatīties iekšpusē no tā. 165 00:09:58,810 --> 00:10:01,970 Šeit es redzu tikai atbildi no servera, kas nav interesanti. 166 00:10:01,970 --> 00:10:04,030 Es esmu redzējis šo jebkurā vairākos veidos. 167 00:10:04,030 --> 00:10:06,350 Bet kas ir tehniski interesanti ir galvenes. 168 00:10:06,350 --> 00:10:11,770 Ja es ritiniet uz leju šeit un koncentrēties uz pieprasījumu galvenēs un noklikšķiniet aplūkot kodu, 169 00:10:11,770 --> 00:10:14,400 ko es esmu gatavojas, lai redzētu, ir burtiski HTTP pieprasījums 170 00:10:14,400 --> 00:10:17,250 kas tikai gāja no manas pārlūkprogrammas uz serveri, 171 00:10:17,250 --> 00:10:21,400 GET ir noteicošā vārdu un tad / counter.php esot faila nosaukumu, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 vienkārši ir versija HTTP, ka mana pārlūkprogramma izmanto. 173 00:10:25,670 --> 00:10:31,070 Šī līnija šeit ir nedaudz atgādinājums no pārlūku uz serveri, ko no servera nosaukums ir 174 00:10:31,070 --> 00:10:33,020 ka tā vēlas runāt. 175 00:10:33,020 --> 00:10:38,200 Un tad šīs pārējais ir reizēm interesanti, bet nav būtiska tieši tagad. 176 00:10:38,200 --> 00:10:40,090 >> Tas ir tikai sava veida zinātkāre. 177 00:10:40,090 --> 00:10:43,530 Mistisks gan tas virkne ir, jebkurā laikā pārlūkprogramma apmeklē mājas lapu 178 00:10:43,530 --> 00:10:47,110 tas ir informēt kādu pārlūkprogrammu jūs izmantojat serveri 179 00:10:47,110 --> 00:10:50,040 un ko operētājsistēmu jūs izmantojat un ko variantu. 180 00:10:50,040 --> 00:10:52,650 Tātad, ja jūs esat kādreiz domājuši, kā tīmekļa vietnes, piemēram, CNN un plauktiņš 181 00:10:52,650 --> 00:10:56,860 zināt, kādi procenti ir Mac lietotājiem tīmeklī, PC lietotājiem, 182 00:10:56,860 --> 00:11:00,820 IE lietotājiem, Chrome lietotāji un tamlīdzīgi, tas ir tāpēc, ka visi mūsu pārlūkiem 183 00:11:00,820 --> 00:11:04,300 stāsta katru mājas lapā, tur kādi mēs esam. 184 00:11:04,300 --> 00:11:07,410 Tas ne vienmēr ir personiski identificējamu informāciju, 185 00:11:07,410 --> 00:11:13,060 bet tas pateikt serveri, ko jūsu IP adrese ir un ko pārlūku un OS jūs izmantojat. 186 00:11:13,060 --> 00:11:14,720 Tā ka, ja šī informācija ir. 187 00:11:14,720 --> 00:11:19,960 Bet kas ir interesanti tagad, kad runa ir par šiem kursiem ir atbilde galvenes. 188 00:11:19,960 --> 00:11:22,530 Ļaujiet man klikšķi apskatīt avotu blakus reakcijas. 189 00:11:22,530 --> 00:11:24,590 Kas ir interesanti šeit ir dažas lietas. 190 00:11:24,590 --> 00:11:27,580 1, mēs saņēmām atpakaļ statusa kodu 200. 191 00:11:27,580 --> 00:11:29,840 Mēs nekad redzēt šo statusa kodu, jo tas nozīmē, ka viss ir labi. 192 00:11:29,840 --> 00:11:32,920 Tas nozīmē, burtiski labi atšķirībā kaut kas cits. 193 00:11:32,920 --> 00:11:36,380 Kas ir skaitlis, mēs dažreiz redzam, ka ir slikti? [Students] 404. 194 00:11:36,380 --> 00:11:39,860 404, fails nav atrasts, 403 jums varētu būt klupšanas uz jau, 195 00:11:39,860 --> 00:11:43,660 kas ir aizliegts, kas nozīmē, ka jūs aizmirsāt chmod kaut ko, visticamāk. 196 00:11:43,660 --> 00:11:45,190 Un tur ir citu ķekars. 197 00:11:45,190 --> 00:11:47,760 >> Šeit lejā, tas ir mazliet traks. 198 00:11:47,760 --> 00:11:52,340 Es tiešām tikko rakstīja par šo failu pirms dažām minūtēm, ielīmējot to gedit. 199 00:11:52,340 --> 00:11:57,100 Kāpēc šo lapu beidzas 1981.gadā, pirms tur tiešām bija Web? 200 00:11:58,010 --> 00:12:00,730 Kas notiek tur? 201 00:12:00,730 --> 00:12:04,390 >> [Dzirdams studentu reaģēšanas] laika zīmogs. Bet kāpēc? 202 00:12:06,110 --> 00:12:09,120 Tas ir nedaudz patvaļīga, bet patiesībā tas ir noderīgi. 203 00:12:09,120 --> 00:12:15,500 Ko tas saka mans pārlūks ir tas PHP failu esat tikko pieprasīta jau ir beidzies. 204 00:12:15,500 --> 00:12:18,580 Faktiski, tas beidzies pirms 30 gadiem. 205 00:12:18,580 --> 00:12:20,260 Bet ko tas īsti nozīmē? 206 00:12:20,260 --> 00:12:22,500 Tas tikai nozīmē, nākamo reizi lietotājs apmeklē šo lapu, 207 00:12:22,500 --> 00:12:25,540 vai pēc pārkraušanas vai ierakstot URL adrešu joslā, 208 00:12:25,540 --> 00:12:28,010 pārliecinieties, ka jums iet un atnest jaunu kopiju. 209 00:12:28,010 --> 00:12:30,840 Tas ir sava veida piemērs cache izvirzījušies 210 00:12:30,840 --> 00:12:33,790 stulba vārds, kas nozīmē tikai mēģina atturēt pārlūkiem 211 00:12:33,790 --> 00:12:37,260 no faktiski caching HTML, kas ir bijis nosūtīts no servera 212 00:12:37,260 --> 00:12:41,490 tāpēc, ka jums nav nejauši hit papildināšanas un tad redzēt to pašu faila versiju. 213 00:12:41,490 --> 00:12:43,730 Jūs tiešām vēlaties serveri, lai nosūtītu jaunu kopiju. 214 00:12:43,730 --> 00:12:47,440 Tātad fakts, ka tas ir 1981 tikai nozīmē, ka tas, ko ierīce ir izvēlēties 215 00:12:47,440 --> 00:12:50,280 kā patvaļīgu datumu pagātnē. 216 00:12:50,280 --> 00:12:53,380 Bet reālā sulīgs līnija tagad ir tas viens. 217 00:12:53,380 --> 00:12:57,550 Pat pirms 50 jūs, iespējams neskaidri iepazinušies ar cepumiem. 218 00:12:57,550 --> 00:13:01,820 Kā tagad, it īpaši starp tiem ir mazāk apmierināti vai starp, 219 00:13:01,820 --> 00:13:04,120 kāda ir jūsu izpratni cepums tieši tagad 220 00:13:04,120 --> 00:13:06,980 pat ja mēs esam par to, lai jūsu izpratne vairāk tehniska? 221 00:13:08,150 --> 00:13:10,070 Kas cepums? Yeah. 222 00:13:10,070 --> 00:13:13,890 [Students] Informācija par lietotāju, piemēram, ja viņi raksta savu lietotāja vārdu vai kaut ko. 223 00:13:13,890 --> 00:13:17,370 >> Labi. Tā ir informācija par lietotāju, vai tie esam drukāti savā lietotāja vārdu jau. 224 00:13:17,370 --> 00:13:21,190 Cepumi ir veids, kurā serveri var atcerēties kaut ko par lietotāju. 225 00:13:21,190 --> 00:13:25,810 Un ko cepums tiešām ir ir teksta fails vai kādu baitu secība 226 00:13:25,810 --> 00:13:28,340 kas ir apstādīta ar serveri iekšpusē jūsu pārlūkprogrammā, 227 00:13:28,340 --> 00:13:31,960 un iekšpusē šo failu vai starp tiem baitu ir sava veida identifikatoru. 228 00:13:31,960 --> 00:13:35,640 Varbūt tas ir burtiski jūsu lietotāja vārds, bet biežāk tā ir kaut kas vairāk mistisks vērstu 229 00:13:35,640 --> 00:13:43,700 tāpat šī lieta šeit - bo8dal3ct un tā tālāk - tas tiešām liels burtciparu stīgu 230 00:13:43,700 --> 00:13:47,050 kas ir tiešām tikai domāts, lai būtu unikāls identifikators jums. 231 00:13:47,050 --> 00:13:49,790 Vai jūs varat domāt par to kā sava veida virtuālo rokas zīmogu. 232 00:13:49,790 --> 00:13:53,020 Ja jūs doties uz kādu klubu vai atrakciju parks, atcerēties, ka jūs esat faktiski samaksāts 233 00:13:53,020 --> 00:13:55,850 un aizgāja, tie likts nedaudz sarkanu uzlīmi uz jūsu rokas kādu, 234 00:13:55,850 --> 00:13:59,270 un kas atgādina cilvēkus pie letes, ka esat jau samaksāto 235 00:13:59,270 --> 00:14:01,340 un jūs varat nākt un iet, kā jūs. 236 00:14:01,340 --> 00:14:04,250 Cepumi ir nedaudz līdzīga garā uz to. 237 00:14:04,250 --> 00:14:08,070 Pirmo reizi es apmeklēju šo mājas lapu, jo es vienkārši darīju pēc klīringa savu kešatmiņu, 238 00:14:08,070 --> 00:14:11,620 web serveri, ierīce šajā gadījumā likt zīmogu uz manas rokas 239 00:14:11,620 --> 00:14:15,030 kura vārds ir PHPSESSID, sesijas ID, 240 00:14:15,030 --> 00:14:18,260 kuras vērtība ir patiešām garš burtciparu virkne. 241 00:14:18,260 --> 00:14:22,470 >> Tātad tas ir tagad sava veida emblazoned par manu roku tā, ka nākamreiz es hit pārlādētu 242 00:14:22,470 --> 00:14:25,230 vai manuāli apmeklēt šo URL pārlūkprogrammā, 243 00:14:25,230 --> 00:14:29,230 mans pārlūks pēc definīcijas HTTP gatavojas iesniegt rokas zīmogu 244 00:14:29,230 --> 00:14:31,940 atkal un atkal un atkal. 245 00:14:31,940 --> 00:14:34,550 Tātad, pat ja serveris nav obligāti zināt, kas es esmu, 246 00:14:34,550 --> 00:14:39,610 viņi vismaz zina, ka es esmu tāds pats lietotājs vai vismaz, precīzāk, to pašu pārlūku. 247 00:14:39,610 --> 00:14:45,660 Un tā tas ir galu galā, kā sesija superglobal tiek īstenots. 248 00:14:45,660 --> 00:14:51,200 Serveris ir ne jausmas, kas jūs esat, kad jūs atkārtoti ir par otro mājas lapā vai trešo reizi 249 00:14:51,200 --> 00:14:53,410 ja vien jūs iepazīstināt ar šo roku zīmogu. 250 00:14:53,410 --> 00:14:55,530 Un tiklīdz jūs iepazīstināt ar šo roku zīmogu, 251 00:14:55,530 --> 00:14:59,370 web serveris būtībā nonāk maz datu bāzē savu 252 00:14:59,370 --> 00:15:06,040 un pārbaudes, labi, es tikko redzējām rokas zīmogu lietotāja bo8dal3ct un tā tālāk. 253 00:15:06,040 --> 00:15:09,850 Ļaujiet man redzēt, kāda informācija programmētājs ir saglabāta 254 00:15:09,850 --> 00:15:12,380 iekšpusē superglobal par lietotāju, 255 00:15:12,380 --> 00:15:17,000 un tad ļaujiet man pārliecināties, ka dati ir atkal iekšpusē SĒDE superglobal 256 00:15:17,000 --> 00:15:19,830 lai programmētājs varētu atkārtoti piekļūt šiem datiem 257 00:15:19,830 --> 00:15:23,360 pat ja tas ir noteikts dažas minūtes vai stundas atpakaļ. 258 00:15:23,360 --> 00:15:26,150 Tātad citiem vārdiem, cepumi, kas ieguvuši sliktu rap kādu laiku 259 00:15:26,150 --> 00:15:29,990 jo nedrošība pārlūkprogrammās, un viņi tiešām var pārkāpt mūsu privātumu un tas viss, 260 00:15:29,990 --> 00:15:31,900 viņi tiešām ir ļoti noderīgas, jo bez tiem 261 00:15:31,900 --> 00:15:36,110 Jūs pastāvīgi tiks piesakoties uz katru Facebook lapā jūs apmeklējat 262 00:15:36,110 --> 00:15:40,680 vai katru Gmail e-pasta jūs lasīt, ja pārlūkprogramma nebija kaut kādā veidā atcerēties 263 00:15:40,680 --> 00:15:43,320 ka esat jau autentiskumu. 264 00:15:43,320 --> 00:15:46,640 >> Tātad šādā veidā sīkfaili tiek nosūtīti atpakaļ un atpakaļ pa vadu. 265 00:15:46,640 --> 00:15:52,470 Vēl viens par sīkdatnēm zinātkāre, jo šeit ir tas, ka tas ir pilnīgi cleartext. 266 00:15:52,470 --> 00:15:54,930 Tur nav šifrēšana notiek šeit nekāda, 267 00:15:54,930 --> 00:15:57,240 un tiešām es esmu, izmantojot HTTP brīdī. 268 00:15:57,240 --> 00:16:00,890 Viens no mūsu favorītiem brīžiem CS50, kas tagad 2 gadus atpakaļ, 269 00:16:00,890 --> 00:16:04,750 bija ap to laiku rīks sauc Firesheep iznāca. 270 00:16:04,750 --> 00:16:08,320 Tas bija brīva gabals programmatūra, kas tika veikts ar drošības pētnieks 271 00:16:08,320 --> 00:16:13,250 kā trauksmes zvans par kopienu pateikt, cik atrociously īstenots 272 00:16:13,250 --> 00:16:17,900 daži autentifikācijas mehānismus tīmeklī bija. 273 00:16:17,900 --> 00:16:22,880 Tātad kādu laiku, Facebook ir gandrīz pilnībā HTTP, HTTPS nav. 274 00:16:22,880 --> 00:16:25,640 Un pat tad, ja jums nav ne jausmas, kā Kripto darbi, S ir droša 275 00:16:25,640 --> 00:16:27,950 tāpēc tas nozīmē, ka ir vismaz daži šifrēšanas iesaistīti. 276 00:16:27,950 --> 00:16:30,610 Facebook bija izmantots, lai šifrētu lietotājvārdus un paroles, 277 00:16:30,610 --> 00:16:33,560 bet tiklīdz jūs paskatījās jūsu pokes vai jūsu ziņas vai jūsu ziņas barības, 278 00:16:33,560 --> 00:16:35,360 visi, kas bija nešifrētā. 279 00:16:35,360 --> 00:16:37,870 Tāpēc bija Gmail kamēr tikai gadu vai 2 atpakaļ. 280 00:16:37,870 --> 00:16:41,100 Katru reizi, kad pieteicies, jā, viņi izmanto drošu šifrēšanu, 281 00:16:41,100 --> 00:16:44,300 bet pēc tam tās nav. Un kāpēc varētu būt? 282 00:16:44,300 --> 00:16:49,210 Kāpēc ne tikai izmantot kriptogrāfiju visu laiku izmantošanas gadījumu kā šis? 283 00:16:49,210 --> 00:16:53,700 Ko tas nozīmē? Es domāju, ka es dzirdēju kaut ko. [Students] Ātrums. 284 00:16:53,700 --> 00:16:56,250 Ātrums, labi? Ir veidi, ap to. 285 00:16:56,250 --> 00:16:59,610 Bet, ja jūs vienkārši veida domāt par to loģiski, ja jūs šifrēt kaut ko, 286 00:16:59,610 --> 00:17:01,820 Jums ir jādara vismaz nedaudz vairāk darba. 287 00:17:01,820 --> 00:17:05,460 2 PSET kad īsteno Cēzaru vai Vigenere vai pat Crack, 288 00:17:05,460 --> 00:17:07,760 vienkārši izdrukāt virkni ir samērā viegli. 289 00:17:07,760 --> 00:17:12,040 Šifrējot un tad izdrukāt virkni minimāli nepieciešama mazliet vairāk darba. 290 00:17:12,040 --> 00:17:14,520 >>  Super populārās interneta vietnēs, piemēram, Google un Facebook, 291 00:17:14,520 --> 00:17:18,839 ja jums ir jādara vairāk, katram lietotājam par katru mājas lapā viņi apmeklē, 292 00:17:18,839 --> 00:17:20,520 kas tikai aizņem vairāk CPU laika. 293 00:17:20,520 --> 00:17:22,920 Un, ja jums ir nepieciešams vairāk CPU laiku, jums var būt nepieciešams vairāk serveru, 294 00:17:22,920 --> 00:17:24,270 kas nozīmē, jums var būt nepieciešams vairāk naudas. 295 00:17:24,270 --> 00:17:27,579 Un tik daudzus gadus tas vienkārši tiešām nebija labākā prakse. 296 00:17:27,579 --> 00:17:31,440 Cilvēki varētu izmantot SSL šifrēšanas tikai tad, kad tie nepieciešami, lai. 297 00:17:31,440 --> 00:17:34,960 Bet izrādījās, un kā šis puisis ar Firesheep veikts super skaidrs, 298 00:17:34,960 --> 00:17:37,920 ja jūs puiši, kuri šobrīd Facebook tieši tagad - 299 00:17:37,920 --> 00:17:39,880 No ziņkārības, pieņemsim redzēt, ja jūs fess augšu. 300 00:17:39,880 --> 00:17:42,620 Ja jūs par Facebook tagad dažās tab, pat ja tas nav foregrounded, 301 00:17:42,620 --> 00:17:46,610 ir jūsu URL HTTP vai HTTPS? 302 00:17:46,610 --> 00:17:50,560 [Vairāki studenti] S. S? [Smiekli] 303 00:17:50,560 --> 00:17:55,510 Labi. Jebkurš HTTP? Tikai 1? Labi. 304 00:17:55,510 --> 00:17:58,940 Tāpēc visi no mums var kapāt, ka puisis ir Facebook kontu tieši tagad. 305 00:17:58,940 --> 00:18:04,100 Par lielāko daļu tas ir kļuvis ieslēgts pēc noklusējuma, vismaz dažās vietnēs. 306 00:18:04,100 --> 00:18:08,120 Un garš stāsts īss, ja jūsu interneta satiksmes nav šifrēta, 307 00:18:08,120 --> 00:18:12,960 ne tikai HTML iet uz priekšu un atpakaļ pāri WiFis nešifrētā, 308 00:18:12,960 --> 00:18:16,760 tāpēc lietas, piemēram, cepumi iet uz priekšu un atpakaļ visā gaisā 309 00:18:16,760 --> 00:18:18,940 bez jebkādas šifrēšanas. 310 00:18:18,940 --> 00:18:23,540 Tātad, ja jums ir tikai programmēšanas savvy bitu vai vairākas Googling prasmes mazliet 311 00:18:23,540 --> 00:18:27,410 atrast bezmaksas programmatūru, kas to dara, viss, kas jums jādara, ir sēdēt Starbucks 312 00:18:27,410 --> 00:18:30,680 vai sēdēt lidostā, kur tur vispār nešifrētā WiFi 313 00:18:30,680 --> 00:18:36,070 un tikai skatīties uz atslēgvārdiem, piemēram Set-Cookie: vai PHPSESSID 314 00:18:36,070 --> 00:18:39,300 jo, ja jums ir tehniskas gudriem, lai tikai skatīties WiFi 315 00:18:39,300 --> 00:18:43,010 visiem bitiem ka plūsmas visā gaisu šajā modelī, 316 00:18:43,010 --> 00:18:50,840 Jūs varat teikt, ka puisis PHPSESSID notiek, bo8dal un tā tālāk. 317 00:18:50,840 --> 00:18:53,890 Un tad atkal, ja tu esi pietiekami tehniski gudriem vai ir īstais instruments, 318 00:18:53,890 --> 00:18:58,890 Jūs varat vienkārši pārveidot savu pārlūku, lai sāktu iepazīstināt ka roku zīmogu 319 00:18:58,890 --> 00:19:05,030 līdz Facebook.com, un Facebook ir tikai gatavojas pieņemt, ka jūs esat, ka puisis 320 00:19:05,030 --> 00:19:09,880 jo visi viņi zina, nav, kas jums ir, bet, kad esat šo unikālo identifikatoru. 321 00:19:09,880 --> 00:19:14,650 Tātad, ja jūs nozagt, ka unikālu identifikatoru, un iesniegt to uz web serveri kā savu, 322 00:19:14,650 --> 00:19:16,860 tie ir tikai gatavojas parādīs šīs personas ziņu plūsmu 323 00:19:16,860 --> 00:19:18,980 vai šīs personas ziņas vai pokes. 324 00:19:18,980 --> 00:19:23,190 >> Un es Google tagad kā aktivizēt HTTPS par Facebook varbūt. 325 00:19:23,190 --> 00:19:25,150 Bet tas tiešām ir tik vienkārši. 326 00:19:25,150 --> 00:19:27,660 Un tā Facebook un Google un līdzīgi ir gotten patiešām labi pie tā, 327 00:19:27,660 --> 00:19:31,870 bet pastāvīgi acu, kas visu vēl par jebkuru mājas lapas jūs apmeklējat, kas neizmanto HTTP 328 00:19:31,870 --> 00:19:35,020 un ir sava veida sensitīvu informāciju par tiem, 329 00:19:35,020 --> 00:19:37,490 vai tas ir finanšu vai personiskās vai tamlīdzīgi. 330 00:19:37,490 --> 00:19:43,180 Ja viņi neizmanto šo, ļoti iespējams, var cepumi, piemēram, tas būtu ļoti viegli nozagts 331 00:19:43,180 --> 00:19:46,270 un tad kalti, un tas ir tieši tas, ko Firesheep izdarīja. 332 00:19:46,270 --> 00:19:48,250 Jums nav jābūt programmētājs. 333 00:19:48,250 --> 00:19:51,680 Viss, kas jums bija darīt bija, ir interneta pieslēgums, lejupielādēt šo bezmaksas rīks, 334 00:19:51,680 --> 00:19:56,490 un ko tā varētu darīt, ir jums pieteikties un tad tas parādīs Facebook nosaukumus 335 00:19:56,490 --> 00:20:00,170 gada ikviens Sanders, jo šajā demonstrācijā, jums apkārt 336 00:20:00,170 --> 00:20:03,260 un viss, kas jums bija darīt bija klikšķiniet uz savu nosaukumu un programmatūras automatizēts process 337 00:20:03,260 --> 00:20:05,970 gada sniffing ka cookie, un iepazīstināja ar Facebook kā savu, 338 00:20:05,970 --> 00:20:07,990 un, voila, jūs esat pieteicies collas 339 00:20:07,990 --> 00:20:11,190 Tātad šis ir vēl viens no tiem "nav darīt" oficiāli. 340 00:20:11,190 --> 00:20:14,660 Ja jums ir sava mājas tīklu un jūs vēlaties, lai lāpīt, ar visiem līdzekļiem, 341 00:20:14,660 --> 00:20:17,530 bet saprotu, tas nav šķērsot līniju universitātes vidē. 342 00:20:17,530 --> 00:20:20,030 >> Bet mērķis šeit ir tiešām uzsvērt ne kā to izdarīt 343 00:20:20,030 --> 00:20:22,320 bet kā lai aizstāvētos pret šīm lietām. 344 00:20:22,320 --> 00:20:26,180 Un niecīgs risinājums šeit, lai gan tas pats par sevi ir kļūdains, 345 00:20:26,180 --> 00:20:31,360 ir tiešām samazināt izmantošanu visās vietnēs, kas neizmanto HTTPS pastāvīgi. 346 00:20:31,360 --> 00:20:34,520 Tātad vietās, piemēram, Facebook un Google ir arvien rūtiņas 347 00:20:34,520 --> 00:20:36,200 kur jūs varat pieteikties uz šāda veida lieta, 348 00:20:36,200 --> 00:20:40,000 un bankām bija šo gadiem līdzīgu iemeslu dēļ. 349 00:20:40,000 --> 00:20:43,580 Tik vienkārši mazliet par bailēm faktors, ja mēs varam. Bet tas ir tas īsumā. 350 00:20:43,580 --> 00:20:46,420 Tas ir kā serveris atceras, kas jūs esat. 351 00:20:46,420 --> 00:20:50,760 Un, tiklīdz tie var atcerēties, kas jums ir, viņi var atcerēties kaut ko par jums 352 00:20:50,760 --> 00:20:56,140 ka programmētājs ir saglabāta iekšā šī īpašā superglobal sauc $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 Un 7 PSET mēs to izmanto trivially tikai atcerēties int, 354 00:20:59,750 --> 00:21:02,260 proti unikālais ID lietotājam, kurš ir pieteicies, 355 00:21:02,260 --> 00:21:05,880 lai mēs zinām, tie esam bijuši tur pirms tam. 356 00:21:05,880 --> 00:21:12,450 Visus jautājumus, tad par sesijas vai cepumi vai līdzīgu? 357 00:21:12,450 --> 00:21:15,130 Firesheep nedarbojas arī vairs, 358 00:21:15,130 --> 00:21:18,310 un jums ir, lai jūsu datoru par īpašu juceklīgs režīmā 359 00:21:18,310 --> 00:21:20,700 tāpēc jūs faktiski klausoties satiksmei turklāt paši. 360 00:21:20,700 --> 00:21:23,940 Tātad, ja jūs pašlaik lejupielādējot Firesheep, saprotu, ka tas nav gluži tik vienkārši 361 00:21:23,940 --> 00:21:26,850 kā tas bija kādreiz, lai pierādītu. 362 00:21:26,850 --> 00:21:29,070 Labi. Un nav darīt to Sanders. Darīt to mājās. 363 00:21:29,070 --> 00:21:30,890 Datubāzēm. 364 00:21:30,890 --> 00:21:33,580 Viena no lietām, ko mēs darīja 7 PSET ļoti apzināti 365 00:21:33,580 --> 00:21:37,780 Tika mēs jums paraugu datu bāzi tabulu lietotājiem, kas ir dažas lietotāju ID, 366 00:21:37,780 --> 00:21:41,020 daži lietotāju vārdus, un daži šifrētu paroles tajos. 367 00:21:41,020 --> 00:21:44,520 Un, kā jūs redzēsiet, ja jums vēl nav, jums nāksies mainīt tabula mazliet. 368 00:21:44,520 --> 00:21:47,710 Jūs esat nāksies pievienot dažas cache katram no šīs tabulas lietotājiem, 369 00:21:47,710 --> 00:21:51,130 un jūs nāksies pievienot citu vēstures tabulu, portfeļi galds, 370 00:21:51,130 --> 00:21:53,310 vai varbūt to sauc kaut kas cits. 371 00:21:53,310 --> 00:21:56,740 Bet attiecībā uz domājot par to, kā to izdarīt, pieņemsim atvērt šo rīku 372 00:21:56,740 --> 00:22:00,570 ko mēs izmantojām piektdien, bet, ja svešs, ierīce nāk ar rīku 373 00:22:00,570 --> 00:22:04,680 sauc phpMyAdmin kas nejauši uzrakstīts PHP, 374 00:22:04,680 --> 00:22:07,950 bet tā mērķis dzīvē, kad es pieteiktos šeit jharvard ar Crimson, 375 00:22:07,950 --> 00:22:15,160 ir dot man lietotājam draudzīgu pārvietošanās veidu apskatei un mainīt manu datu bāzi. 376 00:22:15,160 --> 00:22:18,040 >> Datu bāze, ka es skrienu uz ierīces sauc MySQL. 377 00:22:18,040 --> 00:22:23,420 Tas ir ļoti populārs, un tas ir bezmaksas atvērtā koda datu bāze, kas ir lieliski viegli izmantot, 378 00:22:23,420 --> 00:22:25,620 īpaši ar priekšējo beigām, kā šis. 379 00:22:25,620 --> 00:22:29,350 Ko šis rīks ļauj man darīt, piemēram, ir kule ap galdiem. 380 00:22:29,350 --> 00:22:30,890 Ļaujiet man iet uz priekšu un darīt to. 381 00:22:30,890 --> 00:22:36,580 Piektdien mēs izveidojām tabulu sauc studenti, kas bija super vienkārši. 382 00:22:36,580 --> 00:22:41,680 Tas bija 3 kolonnas - ID, vārdu un e-pasta - un es manuāli ievieto pāris rindas 383 00:22:41,680 --> 00:22:44,420 kā David un Maiks šajā konkrētajā piemērā. 384 00:22:44,420 --> 00:22:47,290 Pieņemsim šo mazliet tālāk, un pieņemsim, ka mēs vēlamies atcerēties vairāk 385 00:22:47,290 --> 00:22:49,660 nekā tikai vārdu un e-pastu par lietotāju. 386 00:22:49,660 --> 00:22:53,090 Ļaujiet man klikšķiniet struktūra šeit augšā. 387 00:22:53,090 --> 00:22:55,440 Un atkal, PSET pastaigas Jūs, izmantojot vajadzīgos pasākumus šeit, 388 00:22:55,440 --> 00:22:58,150 tāpēc nav jāuztraucas, ja daži no tā ir mazliet ātri. 389 00:22:58,150 --> 00:22:59,690 Tad es esmu gatavojas klikšķiniet šeit. 390 00:22:59,690 --> 00:23:02,270 Es esmu gatavojas pievienot kolonnu skaitu pēc e-pasta 391 00:23:02,270 --> 00:23:04,130 jo es gribu, lai pievienotu kaut ko līdzīgu mājai. 392 00:23:04,130 --> 00:23:06,640 Es aizmirsu ierakstīt studenta mājā. 393 00:23:06,640 --> 00:23:11,400 Ļaujiet man uz Doties, un tagad mums ir šī forma, kas diemžēl ir nedaudz plašs no kreisās uz labo, 394 00:23:11,400 --> 00:23:13,710 bet es esmu, lai izsauktu nosaukumu šim lauka māju, 395 00:23:13,710 --> 00:23:16,050 un tad tipa man tagad ir jāizvēlas. 396 00:23:16,050 --> 00:23:18,870 Tāpēc pieņemsim ir īss sarunu par dažādiem veidiem MySQL 397 00:23:18,870 --> 00:23:24,590 jo tā PHP ir vāji drukāti un tā veida spēlē ātri un zaudēt ar veidiem, 398 00:23:24,590 --> 00:23:29,430 datubāzē īpaši tas ir super svarīgi, lai faktiski izmantot rakstīt savā labā 399 00:23:29,430 --> 00:23:33,260 jo viens no lietām, MySQL un citām datu bāzes dzinējiem var darīt Jums 400 00:23:33,260 --> 00:23:37,910 ir nodrošināt, ka jums nav likts fiktīvus datus savā datu bāzē. 401 00:23:37,910 --> 00:23:41,850 Tas ir sava veida bezmaksas kļūdu labošanas pieejams jums. 402 00:23:41,850 --> 00:23:46,250 >> Par mājā mēs, protams, nevēlaties, lai to int, kas ir 32-bitu vērtību MySQL. 403 00:23:46,250 --> 00:23:49,810 Mēs to darījām runājam īsi piektdien ap varchar, kas apzīmē dažāda garuma char. 404 00:23:49,810 --> 00:23:54,720 Kas tas ir? Tas ļauj norādīt, ka jūs vēlaties, lai tas būtu virkne kaut kāda. 405 00:23:54,720 --> 00:23:56,840 Jums nav īsti iepriekš zināt, cik ilgi tas ir, 406 00:23:56,840 --> 00:24:00,100 tāpēc mēs patvaļīgi teikt māju nosaukums var būt 255 rakstzīmes, 407 00:24:00,100 --> 00:24:04,190 bet jūs varētu iet ar 32, 64 - jebkādu skaitu tiešām. 408 00:24:04,190 --> 00:24:10,700 Bet ir iespēja izmantot varchar pa lauka sauc CHAR priekšrocība ir tas, ko? 409 00:24:10,700 --> 00:24:15,110 Tikai intuitīvi ja es ritiniet uz leju šeit, ievērosiet tur palija un tur varchar. 410 00:24:15,110 --> 00:24:19,520 Varchar ir mainīga garuma char; char ir fiksēta garuma char. 411 00:24:19,520 --> 00:24:24,730 Tātad, pamatojoties tikai uz šo definīciju, kāda ir priekšrocība vai trūkums katru no šiem? 412 00:24:24,730 --> 00:24:30,490 Citiem vārdiem sakot, kas rūpējas par atšķirību, vai kāpēc jums būtu aprūpi? 413 00:24:31,660 --> 00:24:35,750 >> Yeah. [Students] varchar elastīgāk bet aizņem vairāk atmiņas. 414 00:24:35,750 --> 00:24:40,730 Labi. Varchar aizņem vairāk - Paskatīsimies. Es neesmu pārliecināts, vai es dzirdēju, ka labi. 415 00:24:40,730 --> 00:24:42,360 Vai varat teikt, ka vēl vienu reizi? 416 00:24:42,360 --> 00:24:45,850 [Students] Es teicu varchar, iespējams, ir lielāka elastība, bet tas aizņem vairāk atmiņas. 417 00:24:45,850 --> 00:24:51,170 Interesanti. Labi. Varchar iespējams dod jums lielāku elastību, bet aizņem vairāk atmiņas. 418 00:24:51,170 --> 00:24:53,220 Pēdējais ir ne vienmēr ir taisnība. 419 00:24:53,220 --> 00:24:56,290 Tas ir atkarīgs no konteksta, bet pieņemsim atgriezties pie tā. 420 00:24:56,290 --> 00:25:03,230 >> [Dzirdams studentu reaģēšanas] Tieši tā. 421 00:25:03,230 --> 00:25:06,900 Tas patiesībā lieta, ka apkopēja parasti izmanto vairāk atmiņas 422 00:25:06,900 --> 00:25:10,950 jo palija, tāpat kā C, ir kā virkne, tas ir masīvs rakstzīmes. 423 00:25:10,950 --> 00:25:13,690 Tātad, ja jūs sakāt char lauku 255 garuma, 424 00:25:13,690 --> 00:25:16,910 datubāze ir burtiski gatavojas sniegt jums 255 rakstzīmes. 425 00:25:16,910 --> 00:25:22,290 Un, ja māja beidzas ar to Mather un 6 rakstzīmēm, 426 00:25:22,290 --> 00:25:25,090 jūs izšķērdēt vairāk nekā 200 rakstzīmes. 427 00:25:25,090 --> 00:25:29,640 >> Tātad VARCHAR faktiski izmanto tikai tik daudz rakstzīmes, kas nepieciešama 428 00:25:29,640 --> 00:25:31,590 līdz maksimālajai summai. 429 00:25:31,590 --> 00:25:35,470 Bet cena, ko maksāt, ir faktiski sniegumu, iespējami. 430 00:25:35,470 --> 00:25:39,740 Ja jūs iepriekš zināt, ka visas jūsu stīgas ir būs 8 rakstzīmes - 431 00:25:39,740 --> 00:25:43,090 Piemēram, pieņemsim, ka jums ir nepieciešama paroles no 8 garums - 432 00:25:43,090 --> 00:25:47,350 otrādi, izmantojot char lauku reizēm, lai gan ne bieži, 433 00:25:47,350 --> 00:25:51,100 ir noteikt fiksētu garumu kaut kā parole 434 00:25:51,100 --> 00:25:53,300 jo tagad bāze var būt vēl gudrāku. 435 00:25:53,300 --> 00:25:58,160 Ja tā zina, ka katrs char lauku, katrs kolonnā virkne ir vienāda garuma, 436 00:25:58,160 --> 00:26:00,780 Jūs saņemsiet atpakaļ iezīme izlases piekļuvi. 437 00:26:00,780 --> 00:26:05,110 Jūs varat lēkt apkārt starp dažādām char laukus datubāzē tabulā 438 00:26:05,110 --> 00:26:07,940 jo domā par datubāzes rindās un kolonnās. 439 00:26:07,940 --> 00:26:11,670 Tātad, ja katrs no virknes viens ir vienāda garuma, 440 00:26:11,670 --> 00:26:17,820 Jūs zināt, ka pirmais ir 0 baitu, nākamais ir 8 baitu 441 00:26:17,820 --> 00:26:20,240 un tad 16 un tad 24 un tā tālāk. 442 00:26:20,240 --> 00:26:24,500 Tātad, ja visi virknes ir vienāda garuma, jūs varat lēkt apkārt daudz efektīvāk. 443 00:26:24,500 --> 00:26:26,710 Tā ka var būt labums sniegumu, 444 00:26:26,710 --> 00:26:29,420 bet parasti jums nav greznība, zinot iepriekš, 445 00:26:29,420 --> 00:26:32,170 tāpēc VARCHAR ir veids, kā iet. 446 00:26:32,170 --> 00:26:36,030 Lūk, vēl detaļa, ka pat Facebook uzbrauca beidzot. 447 00:26:36,030 --> 00:26:39,670 Ints ir liels, un mēs veida tos izmantot pēc noklusējuma jebkurā laikā mēs vēlamies numuru, 448 00:26:39,670 --> 00:26:41,750 bet tas ir tikai 32 biti. 449 00:26:41,750 --> 00:26:46,210 >> Un pat ja Fotogrāfija nav gluži ir 4000000000 lietotājus tagad, 450 00:26:46,210 --> 00:26:48,680 tur noteikti daži cilvēki, kas tur ar vairākiem kontiem 451 00:26:48,680 --> 00:26:50,960 vai kontos, kas ir atvērti un tad slēgti, 452 00:26:50,960 --> 00:26:55,130 un tāpēc Facebook pats es uzskatu pirms dažiem gadiem bija pāreja no int 453 00:26:55,130 --> 00:27:00,010 līdz, jo ir trāpīgi sauc, BIGINT, kas ir tikai 64 bitu vietā. 454 00:27:00,010 --> 00:27:02,230 Tātad tas arī ir dizaina lēmums. 455 00:27:02,230 --> 00:27:06,570 Jums būtu pārsteidzoši laimīgs, ja jūsu gala projekts kļūst starta, 456 00:27:06,570 --> 00:27:10,010 ir 4 miljardi 1 lietotāji, sniegt vai pieņemt, 457 00:27:10,010 --> 00:27:13,200 tādā gadījumā izmantojot Ints varētu būt nedaudz tuvredzīgs. 458 00:27:13,200 --> 00:27:16,230 Bet patiesībā, jūsu lietotāji galda ir iespējams, naudas sodu ar Ints. 459 00:27:16,230 --> 00:27:19,340 Bet kaut kā 7 PSET, piemēram, jūsu vēstures galda, 460 00:27:19,340 --> 00:27:23,700 Jums varētu būt tūkstošiem, miljoniem lietotāju, ja jūs pārvērsties etrade.com. 461 00:27:23,700 --> 00:27:26,020 Tātad tā jums varētu būt vairāk nekā 4 miljardus lietotājiem, 462 00:27:26,020 --> 00:27:30,070 tiem lietotājiem jums ir varētu būt vairāk nekā 4 miljardus darījumus laika gaitā - 463 00:27:30,070 --> 00:27:33,200 pērk un pārdod, un lietas savā vēsturē. 464 00:27:33,200 --> 00:27:38,090 Tātad, ja jūs prognozēt - atkal, tie ir labi problēmas ir, ja jums ir šī daudz datu - 465 00:27:38,090 --> 00:27:40,920 ja jūs prognozēt datus pārsniedz lielumu int, 466 00:27:40,920 --> 00:27:47,740 iet ar kaut ko līdzīgu BIGINT ir virziens nav pietiekami bieži pieņēmusi dizaineri 467 00:27:47,740 --> 00:27:49,710 jo cilvēki skaitlis nav gatavojas būt problēma, 468 00:27:49,710 --> 00:27:51,930 bet tas ir tas viegli izvēlēties kaut ko lielāku nekā. 469 00:27:51,930 --> 00:27:55,380 Decimālā mēs esam izmantojot 7 PSET, kas nosaka fiksētu precizitāti 470 00:27:55,380 --> 00:27:59,840 lai jūs varētu izvairīties no jautājumiem, iesaistot pludiņus un dubultspēlēs un Reals un tamlīdzīgi. 471 00:27:59,840 --> 00:28:02,440 >> Un tad tur ir dažas citas jomas šeit. Mēs vilnis mūsu rokās pie viņiem zināmā mērā. 472 00:28:02,440 --> 00:28:07,270 Bet datumi, laiki visiem ir noteikta formāta MySQL, 473 00:28:07,270 --> 00:28:10,830 un priekšrocība uzglabāšanas datumiem kā datumi un ne varchars 474 00:28:10,830 --> 00:28:15,730 nozīmē, ka datubāzes var reāli pārformatēt tos dažādos formātos, 475 00:28:15,730 --> 00:28:18,800 vai ASV formātā vai Eiropas formāts vai līdzīgi - tomēr vēlaties to - 476 00:28:18,800 --> 00:28:22,700 daudz efektīvāk nekā tad, ja tas bija tikai daži vispārējs varchar. 477 00:28:22,700 --> 00:28:25,150 Un tad tur ir kāda cita binārā, varbinary, burbuļus. 478 00:28:25,150 --> 00:28:28,580 Tie ir bināro lieli objekti, un jūs varat arī saglabāt bināro datu 479 00:28:28,580 --> 00:28:30,750 kā arī ģeometrisko datu bāzē. 480 00:28:30,750 --> 00:28:34,350 Bet mums mēs parasti rūp Ints un varchars un līdzīgu. 481 00:28:34,350 --> 00:28:36,230 Pieņemsim pabeigt līdz šo piemēru ar māju. 482 00:28:36,230 --> 00:28:40,030 Māja es esmu gatavojas patvaļīgi teikt būs 255 simboli. 483 00:28:40,030 --> 00:28:42,850 Tad noklusējuma vērtību mēs varētu darīt. 484 00:28:42,850 --> 00:28:47,440 Mēs varētu pēc noklusējuma likt ikvienam Mather namā, piemēram. 485 00:28:47,440 --> 00:28:49,710 Tas ir, kā mēs varētu norādīt, ka datubāze 486 00:28:49,710 --> 00:28:52,460 jānodrošina, ka kāds vienmēr ir vērtība. Bet es ņemšu atvaļinājumu, ka būs. 487 00:28:52,460 --> 00:28:55,270 Faktiski, lai cilvēki, kuri dzīvo pie universitātes, nevis mājā, 488 00:28:55,270 --> 00:28:59,590 varbūt es tiešām gribu norādīt, ka noklusējuma vērtība māja ir NULL, 489 00:28:59,590 --> 00:29:04,890 un tad man ir nepieciešams, lai pārbaudītu šo lodziņu un pateikt bāzi, tas ir labi, ja lietotāja māja ir NULL. 490 00:29:04,890 --> 00:29:07,270 >> Atkal, šis ir vēl viens aizsardzības mehānisms var ieviest 491 00:29:07,270 --> 00:29:10,590 tāpēc jums nav pat ir nodot to savā PHP kodu obligāti. 492 00:29:10,590 --> 00:29:14,630 Datu bāze nodrošina, ka lietas ir vai nav NULL. 493 00:29:14,630 --> 00:29:17,310 Un tad visbeidzot, īpašības. 494 00:29:17,310 --> 00:29:18,920 Neviens no šiem ir tiešām svarīgs. 495 00:29:18,920 --> 00:29:22,880 Binārā, neparakstīts - neviens no tiem ir būtiska, lai varchar. 496 00:29:22,880 --> 00:29:24,220 Indekss. 497 00:29:24,220 --> 00:29:27,320 Vai kāds zina, vai atcerēties, vai ir minējums par to, ko indekss 498 00:29:27,320 --> 00:29:29,510 kaut ko līdzīgu māju? 499 00:29:29,510 --> 00:29:35,240 Arī tas ir patiesībā svarīgs un samērā viegli dizaina lēmums. 500 00:29:35,240 --> 00:29:39,200 Tiem, kas vēl nav redzējuši, piektdien mēs runājām īsi par primārās atslēgas. 501 00:29:39,200 --> 00:29:43,240 Jo datubāzē tabulā, primārā atslēga ir lauks vai kolonna 502 00:29:43,240 --> 00:29:46,270 kas unikāli identificē rindas tabulā. 503 00:29:46,270 --> 00:29:49,150 Tātad pašreizējā tabulā mums ir ID, mums ir vārdi un e-pastiem. 504 00:29:49,150 --> 00:29:52,050 Kura no tām ir labākais kandidāts būs primārā atslēga, 505 00:29:52,050 --> 00:29:55,810 kuru uzdevums ir unikāli identificē rindas? 506 00:29:55,810 --> 00:29:57,530 Droši ID. 507 00:29:57,530 --> 00:29:59,930 Varbūt mēs varētu arī izmantot to, ko gan? 508 00:29:59,930 --> 00:30:02,860 Varbūt jūs varētu izmantot e-pastu, jo teorētiski tas ir unikāls 509 00:30:02,860 --> 00:30:05,380 ja cilvēki lieto e-pasta kontiem. 510 00:30:05,380 --> 00:30:09,980 Bet realitāte ir tāda, ka, ja jūs izmantojat ciparu ID, piemēram 1234, 511 00:30:09,980 --> 00:30:14,170 tas ir tikai 32 biti, bet e-pasta adresi, varētu būt šī daudz baitu vai tas daudz baitu. 512 00:30:14,170 --> 00:30:16,610 Tātad efektivitātes ziņā uz unikālo identifikatoru, 513 00:30:16,610 --> 00:30:19,270 tas mēdz būt laba prakse tikai izmantot int 514 00:30:19,270 --> 00:30:23,090 pat ja jums ir kāda stīgu kandidātu, ka jūs varētu varbūt izmantot. 515 00:30:23,090 --> 00:30:26,760 >> Par kaut ko līdzīgu māju, tas nedrīkst būt primārā atslēga 516 00:30:26,760 --> 00:30:30,770 jo tad tikai 1 cilvēks varētu dzīvot Mather un 1 persona Currier un līdzīgu. 517 00:30:30,770 --> 00:30:32,790 Tāpat, tas nedrīkst būt unikāls. 518 00:30:32,790 --> 00:30:37,830 Starp sākumskolu un unikāls atšķirība ir tā, ka gadījumā, ja mūsu pašreizējās tabulas, 519 00:30:37,830 --> 00:30:42,620 ID būtu jābūt primārai, bet e-pasts nav primārais par iemeslu mēs tikko minēts - 520 00:30:42,620 --> 00:30:44,740 sniegumu - bet tas tomēr ir unikāls. 521 00:30:44,740 --> 00:30:47,200 Tātad jūs varat izpildīt unikalitāti neveicot prasību 522 00:30:47,200 --> 00:30:49,520 ka tas ir super svarīgi primārais lauks. 523 00:30:49,520 --> 00:30:52,610 Bet tas viens ir diezgan noderīga: rādītājs. 524 00:30:52,610 --> 00:30:56,180 Ja jūs zināt jau iepriekš par savu galīgo projektu, par 7 PSET, vai vispār, 525 00:30:56,180 --> 00:30:59,480 ka šis lauks māja būs kaut kas jums meklēt partiju 526 00:30:59,480 --> 00:31:01,910 izmantojot izvēlieties atslēgvārdu vai kaut kas cits, 527 00:31:01,910 --> 00:31:05,180 tad jūs varat preemptively pateikt bāzi strādāt tās burvju 528 00:31:05,180 --> 00:31:10,510 un pārliecinieties, ka tas rada atmiņā neviena iedomātā datu struktūras nepieciešams 529 00:31:10,510 --> 00:31:13,770 paātrinātu meklēšanu, pamatojoties uz māju. 530 00:31:13,770 --> 00:31:17,860 Varbūt tas būs izmantot hash tabulu, varbūt tas būs izmantot saistīto sarakstu. 531 00:31:17,860 --> 00:31:21,260 Patiesībā, tas ir tendence izmantot koku, bieži struktūru sauc par B-koks - 532 00:31:21,260 --> 00:31:24,090 nav binārs koks, bet B-koks - kas ir ļoti plašs koks 533 00:31:24,090 --> 00:31:27,370 ka jūs varētu redzēt klasē piemēram CS124, datu struktūras klasē. 534 00:31:27,370 --> 00:31:31,800 Bet īsi sakot, jums nav jāuztraucas par to, kad, izmantojot smart datu bāzes programmatūru. 535 00:31:31,800 --> 00:31:35,890 Jūs varat vienkārši pateikt to, "indekss šo lauku, lai es varētu meklēt to efektīvāk." 536 00:31:35,890 --> 00:31:40,250 >> Ja jūs atstāt šo off, un jūs mēģināt meklēt ikvienam datubāzē, kas dzīvo Mather, 537 00:31:40,250 --> 00:31:42,710 tas pāriet uz lineāru meklēšanu. 538 00:31:42,710 --> 00:31:45,360 Un, ja jūs esat ieguvuši 6000 undergrads visu dzīvo kādā mājā, 539 00:31:45,360 --> 00:31:47,900 jūs gatavojas meklēt visu tabulu, lai atrastu Matherites, 540 00:31:47,900 --> 00:31:52,190 tā kā, ja jūs sakāt indekss, cerams, tas būs kaut tuvu logaritmiskā meklēšanu 541 00:31:52,190 --> 00:31:54,510 lai atrastu šāda veida studentiem. 542 00:31:54,510 --> 00:31:56,750 Tas ir tikai bezmaksas funkcija, lai ieslēgtu, 543 00:31:56,750 --> 00:31:59,530 pat ja tas nāk par cenu kādu daudzumu telpā. 544 00:31:59,530 --> 00:32:02,690 Visbeidzot, auto-pieaugumu, tas AI lauks, 545 00:32:02,690 --> 00:32:05,830 kas nozīmē tikai tad, ja tas ir int un jūs nevēlaties, lai rūpētos, lai pieauguma pats 546 00:32:05,830 --> 00:32:07,570 Katru reizi, tur jauns lietotājs, pārbauda, 547 00:32:07,570 --> 00:32:11,910 un katram lietotājam, kas izpaužas ievietots automātiski saņemt jaunu ID. 548 00:32:11,910 --> 00:32:15,620 Pieņemsim uz Saglabāt, un tagad pieņemsim atrast vainu ar šo dizainu. 549 00:32:15,620 --> 00:32:20,200 Ja es dodos uz Pārlūkot, paziņojums, ka gan Maiks un mana māja ir NULL. 550 00:32:20,200 --> 00:32:22,420 Es varu izmantot phpMyAdmin, lai rediģētu šo manuāli. 551 00:32:22,420 --> 00:32:25,110 Es varu iet šeit un ierakstiet Mather un pēc tam hit Enter, 552 00:32:25,110 --> 00:32:27,740 un tagad paziņojums tabula ir atšķirīga. 553 00:32:27,740 --> 00:32:29,270 Bet pamanīt es varētu darīt kaut ko citu, kā arī. 554 00:32:29,270 --> 00:32:33,530 Dāvida ID ir 1, tāpēc phpMyAdmin atkal ir tikai administratīva līdzeklis; 555 00:32:33,530 --> 00:32:35,970 tas nav kaut kas jūsu lietotāji arvien dodas uz redzēt. 556 00:32:35,970 --> 00:32:38,810 Tātad, ja es tā vietā uz SQL cilni uz augšu augšas - 557 00:32:38,810 --> 00:32:41,450 un atkal, 7 PSET būs jūs iepazīstināt ar vairāk šo jautājumu - 558 00:32:41,450 --> 00:32:45,260 Es var manuāli izpildīt SQL strukturēta vaicājumu valoda komandu 559 00:32:45,260 --> 00:32:56,410 UPDATE lietotāju SET māja = 'Pfoho' WHERE id = 1. 560 00:32:56,410 --> 00:33:00,830 Šie SQL vaicājumi ir, labi pietiekami, diezgan lasāma no kreisās uz labo pusi. 561 00:33:00,830 --> 00:33:04,350 Atjauninātu lietotāju tabula, kas lauku sauc māju Pfoho 562 00:33:04,350 --> 00:33:06,830 ja lietotāja ID ir 1. 563 00:33:06,830 --> 00:33:11,480 Vai es pat varētu darīt, ja e-pastu = 'malan@harvard.edu ". 564 00:33:11,480 --> 00:33:14,860 Tik ilgi, kamēr, kas unikāli identificē mani, kas varētu arī strādāt. 565 00:33:14,860 --> 00:33:18,810 Bet ID mēdz būt augstākas veiktspējas, tāpēc pieņemsim darīt. 566 00:33:18,810 --> 00:33:22,950 Pieņemsim noklikšķiniet Go. Labi, lecture.users neeksistē. Kas ir mana kļūda? 567 00:33:22,950 --> 00:33:26,220 Kas tabulā faktiski aicināja šeit? 568 00:33:26,220 --> 00:33:28,770 To sauc studenti tikai tāpēc, ka mēs to izdarījām šeit augšējā kreisajā stūrī. 569 00:33:28,770 --> 00:33:31,860 To sauc studenti, ne lietotāji. Tātad uz Doties tagad. 570 00:33:31,860 --> 00:33:34,330 1 rinda ietekmē. Vaicājums took 0.01 sekundes. 571 00:33:34,330 --> 00:33:38,010 Ja es noklikšķiniet Pārlūkot tagad, tagad Malan dzīvību Pfoho. 572 00:33:38,010 --> 00:33:42,070 Tātad tas ir vēl viens no SQL garšu, bet PSET būs staigāt jums caur mazliet vairāk par to. 573 00:33:42,070 --> 00:33:44,710 >> Tur muļķīgs lēmums Esmu jau šeit. 574 00:33:44,710 --> 00:33:47,820 Es gribētu apgalvot, ka šī datubāze dizains ir neefektīva 575 00:33:47,820 --> 00:33:51,650 jo vairāk cilvēku es pievienot studentus galda, 576 00:33:51,650 --> 00:33:54,730 vairāk no mums sākt piebilstot, vairāk par TFS es sāku piebilstot, 577 00:33:54,730 --> 00:33:58,320 mēs esam gatavojas sākt, lai redzētu darbinieku atlaišanu šajā tabulā? 578 00:34:00,840 --> 00:34:06,020 >> Yeah. [Students] Redzot, ka tas ir skolēniem, mēs esam izmantojot pašu [dzirdams] 579 00:34:06,020 --> 00:34:07,360 Pats - Tiesības, tieši tā. 580 00:34:07,360 --> 00:34:10,400 Tātad, ja 400 cilvēku dzīvo Mather, sniegt vai pieņemt, 581 00:34:10,400 --> 00:34:15,000 beidzot šī tabula būs ir 400 rindas, kas saka "Mather", "Mather," 582 00:34:15,000 --> 00:34:16,590 "Mather", "Mather", "Mather." 583 00:34:16,590 --> 00:34:19,820 Mēs cienām visus šos baitu, un tur no takeaways pāris tur. 584 00:34:19,820 --> 00:34:23,080 1, tur traks stūra gadījumā, kad, ja kāds maksā daudz naudas 585 00:34:23,080 --> 00:34:25,949 un pārdēvē Mather, mums tagad ir jāmaina visa mūsu datubāzē tabulas. 586 00:34:25,949 --> 00:34:29,730 Tas nav gatavojas notikt bieži, lai gan Pfoho reiz tika saukta North House pirms 15 gadiem, 587 00:34:29,730 --> 00:34:32,310 tā tas notiek. Bet tas vēl nav viss, kas pārliecinoši. 588 00:34:32,310 --> 00:34:36,000 Vairāk pārliecinoša par stūra lietas, piemēram, ka nepieciešams atjaunināt datus, kas nav fasēti 589 00:34:36,000 --> 00:34:41,150 par datubāzes kāpēc jūs uzglabātu Mather atkal un atkal un atkal un atkal? 590 00:34:41,150 --> 00:34:43,020 Tas ir par simboliem, 6 simboli daudz. 591 00:34:43,020 --> 00:34:45,500 Mēs nevaram darīt vēl labāk nekā tas, īpaši Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 Protams, mēs varam darīt labāk, nekā, ka daudzi rakstzīmes. 593 00:34:48,320 --> 00:34:51,790 Kāpēc ne tikai saista ar unikālu identifikatoru, ar katru māju 594 00:34:51,790 --> 00:34:55,020 un veikals, kas katram lietotājam? Tāpēc pieņemsim mēģināt šo. 595 00:34:55,020 --> 00:35:00,610 Nevis tikai izmantot studenti tabulu, ļaujiet man iet uz augšu uz manu lekciju datubāzē šeit augšējā kreisajā stūrī. 596 00:35:00,610 --> 00:35:02,600 Pamanīt šeit tā saka Izveidot tabulu. 597 00:35:02,600 --> 00:35:04,550 Ļaujiet man izveidot jaunu tabulu sauc māju. 598 00:35:04,550 --> 00:35:08,880 Sleju skaits būs 2. Enter. 599 00:35:08,880 --> 00:35:11,200 Tagad man ir 2 laukus. 600 00:35:11,200 --> 00:35:14,600 Es esmu gatavojas nosaukt šo vārdu, un tas būs varchar 255 garuma, 601 00:35:14,600 --> 00:35:18,770 >> bet tas ir diezgan patvaļīgi. Ļaujiet man nodot šo noteikti šeit pēc vienošanās. 602 00:35:18,770 --> 00:35:22,840 Tātad nodot ID šeit. Dosim Katrai mājai unikālu identifikatoru. 603 00:35:22,840 --> 00:35:25,360 Dosim katras mājas nosaukumu. 604 00:35:25,360 --> 00:35:30,980 Pieņemsim norādīt, ka identifikators būs neparakstīts tikai pēc vienošanās izmantot tikai pozitīvus skaitļus. 605 00:35:30,980 --> 00:35:35,020 Iesim uz priekšu un dot šo automātiskās pieauguma apstākļus tagad. 606 00:35:35,020 --> 00:35:38,160 Un vai mums vajag kaut ko citu? 607 00:35:38,160 --> 00:35:41,010 Iesim uz priekšu un noklikšķiniet uz Saglabāt. 608 00:35:41,010 --> 00:35:42,480 Tagad man ir otrais tabulu. 609 00:35:42,480 --> 00:35:45,860 Pamanīt, jo malā tas ir nedaudz mistisks SQL komandu 610 00:35:45,860 --> 00:35:50,280 kas jums būtu bijis rakstīt manuāli, ja ne izmantojot administratīvu rīku, piemēram, phpMyAdmin. 611 00:35:50,280 --> 00:35:51,990 Tātad vēl viens iemesls, mēs to izmantojam. 612 00:35:51,990 --> 00:35:55,480 Tas ir lieliski noderīgs veida pedagoģiski jo jūs varat noklikšķināt apkārt 613 00:35:55,480 --> 00:36:01,050 un izdomāt, kā lietas strādā, tikai kopējot un ielīmējot ko phpMyAdmin izdarīja. 614 00:36:01,050 --> 00:36:04,150 Bet Izveidot tabulu komanda ir tas, ko bija tikai izpildīts, un šeit ir mana galda. 615 00:36:04,150 --> 00:36:11,370 Ļaujiet man iet uz priekšu tagad izmanto neapstrādātu SQL nevis oversimplify, noklikšķinot uz cilnes Ievietošana. 616 00:36:11,370 --> 00:36:15,040 Ļaujiet man darīt INSERT INTO māju, 617 00:36:15,040 --> 00:36:22,230 un es esmu gatavojas teikt no mājas nosaukums ir nāksies vērtība "Mather". 618 00:36:22,230 --> 00:36:24,790 Viss. Tas sintakse ir nedaudz vairāk mistisks. 619 00:36:24,790 --> 00:36:26,660 Tas ir vārds no jomām, mēs vēlamies, lai ievietotu. 620 00:36:26,660 --> 00:36:30,390 Tās ir vērtības, mēs vēlamies ievietot šajās jomās. Ļaujiet man uz Doties. 621 00:36:30,390 --> 00:36:34,410 1 ievietota rinda bija 0,02 sekundes. Ļaujiet man noklikšķiniet uz Pārlūkot tagad. 622 00:36:34,410 --> 00:36:42,020 >> Pamanīt, ja es noklikšķiniet uz Pārlūkot, tur Mather, kuras ID ir ar automatizācijas numurs 1. 623 00:36:42,020 --> 00:36:45,000 Ļaujiet man darīt citu. Ļaujiet man aiziet uz SQL tab. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO mājām. No mājas nosaukums ir nāksies vērtību Pfoho un tā tālāk. 625 00:36:52,950 --> 00:36:56,350 Iet. Un es varētu turpināt darīt to atkal un atkal un atkal. 626 00:36:56,350 --> 00:36:59,470 Vai, ja jūs garlaikoties izmantojot phpMyAdmin, jūs varat vienkārši izmantot cilni Ievietot 627 00:36:59,470 --> 00:37:01,000 un nav rakstīt neapstrādātu SQL. 628 00:37:01,000 --> 00:37:04,690 Jūs varat vienkārši bang out ātrāk, uzrakstot, piemēram, Currier, Enter, 629 00:37:04,690 --> 00:37:07,610 un tagad, ja mēs noklikšķiniet uz Pārlūkot, tur Currier ar ID gada 3. 630 00:37:07,610 --> 00:37:09,920 Tātad tas ir tas, ko mēs saprotam ar auto-pieaugumu. 631 00:37:09,920 --> 00:37:12,280 Bet tagad mums ir noteikt kaut kas studentiem. 632 00:37:12,280 --> 00:37:16,240 Jo studenti kādi būtu datu mājas veida lauka tagad būt? 633 00:37:16,240 --> 00:37:19,450 Tas būtu int, vai ne? 634 00:37:19,450 --> 00:37:23,950 Tātad mērķis šeit ir faktors, kas, citādi zināma kā normalizēt, tabulās 635 00:37:23,950 --> 00:37:27,940 tāpēc, ka mums nav uzglabāt informāciju lieki kāds no maniem galdiem. 636 00:37:27,940 --> 00:37:31,130 Un atkal, ceļš mums bija šeit gatavojas teikt Mather, Mather, 637 00:37:31,130 --> 00:37:34,220 Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, kas ir ļoti lieks 638 00:37:34,220 --> 00:37:36,240 runājot par wastefulness par chars. 639 00:37:36,240 --> 00:37:40,820 Tāpēc ļaujiet man iet uz priekšu un mainīt, noklikšķinot struktūra, 640 00:37:40,820 --> 00:37:44,620 un ļaujiet man iet uz priekšu un pārbaudīt off mājas laukā, noklikšķiniet uz Mainīt 641 00:37:44,620 --> 00:37:46,990 un tagad es esmu gatavojas mainīt to par int. 642 00:37:46,990 --> 00:37:49,490 255 ir vairs nav nozīmes. 643 00:37:49,490 --> 00:37:54,010 Ļaujiet man iet uz priekšu un saka, ka ir jauki, ja tas joprojām ir NULL. Saglabāt. 644 00:37:54,010 --> 00:37:55,870 Tagad galda studenti ir mainīts veiksmīgi, 645 00:37:55,870 --> 00:37:59,090 un pamanīt atkal māja ir int. 646 00:37:59,090 --> 00:38:02,220 Kā malā, ignorēt numuru iekavās, kad runa ir Ints. 647 00:38:02,220 --> 00:38:03,770 >> Tas ir mantojums iemesli. 648 00:38:03,770 --> 00:38:06,920 Atpakaļ dienā, kad jums nav GUIs, jūs tā vietā bija komandrindas vidē, 649 00:38:06,920 --> 00:38:11,580 uz 10 un 11 attiecīgi norādīts, cik daudz rakstzīmes jums vajadzētu parādīt 650 00:38:11,580 --> 00:38:13,950 termināla logā, lai reāli parādītu laukus. 651 00:38:13,950 --> 00:38:19,150 Tam nav nekāda sakara ar bitu garumu faktiskās jomā, tāpēc mēs vienkārši ignorēt to, ka tagad. 652 00:38:19,150 --> 00:38:20,990 Tagad man ir jāiet šajā tabulā. 653 00:38:20,990 --> 00:38:24,610 Un, ja Dāvids dzīvo Mather, māja nav jābūt 0, 654 00:38:24,610 --> 00:38:27,350 kas ir noklusējuma int vērtība vistuvāk NULL. 655 00:38:27,350 --> 00:38:29,810 Viņam vajadzētu dzīvot 1 mājā. 656 00:38:29,810 --> 00:38:36,870 Pieņemsim patvaļīgi teikt, ka Mike dzīvo Pfoho, tāpēc māja numurs 2. 657 00:38:36,870 --> 00:38:40,160 Tagad mana galda izskatās nedaudz vairāk mistisks. 658 00:38:40,160 --> 00:38:41,960 Bet uzskatu efektivitāti. 659 00:38:41,960 --> 00:38:44,860 Es esmu tagad, izmantojot tikai 32 bitiem, lai noteiktu māju, 660 00:38:44,860 --> 00:38:49,530 kas nozīmē, ka ir tikai 1 kanonisko definīcija manas mājas Mather un Pfoho 661 00:38:49,530 --> 00:38:52,090 un tas, kas mājas tabulā. 662 00:38:52,090 --> 00:38:55,880 Tātad, ja es vēlos, lai tagad atkal šīs tabulas, domāt par to šādā veidā. 663 00:38:55,880 --> 00:39:01,980 Šeit man ir mana studenti galda, un uz labajā pusē tur šie skaitļi, 1 un 2. 664 00:39:01,980 --> 00:39:04,180 1 ir Mather, 2 ir Pfoho. 665 00:39:04,180 --> 00:39:08,580 Mums ir šie paši numuri šajā citā tabulā, ko sauc mājas, 666 00:39:08,580 --> 00:39:11,020 1 un 2 un 3 par šiem 3 mājām. 667 00:39:11,020 --> 00:39:14,990 Ko mēs tagad vēlamies darīt, ir jābūt iespējai ar kodu, PHP un SQL, 668 00:39:14,990 --> 00:39:18,800 lai sakārtotu no atgriezties šīs tabulas, kur, ja tie ir studenti, un tie ir mājas, 669 00:39:18,800 --> 00:39:22,050 Mēs vēlamies, lai kaut kā apvienot tos tā, ka 1 līnijas ar 1, 670 00:39:22,050 --> 00:39:25,670 2 rindas klajā ar 2, un lai mēs varētu izdomāt, kur David 671 00:39:25,670 --> 00:39:28,000 un kur Maiks un kur ikviens cits dzīvo. 672 00:39:28,000 --> 00:39:31,850 Lai to paveiktu, mēs varam izpildīt SQL vaicājumu, piemēram, šādi. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM studenti PIEVIENOJIES namu - 674 00:39:40,470 --> 00:39:43,000 Un tagad kādās jomās mēs gribam pievienoties uz? 675 00:39:43,000 --> 00:39:49,520 Tātad students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> Mazliet noslēpumains, bet šī daļa ir burtiski izveidot jaunu pagaidu tabulu 677 00:39:54,150 --> 00:39:56,690 tas rezultāts savieno studentiem un mājas. 678 00:39:56,690 --> 00:40:00,340 Un kā jūs vēlaties apvienot padomus par manu pirkstiem šeit? 679 00:40:00,340 --> 00:40:05,280 Uzstādīt studentu māja lauku vienāds nami "ID jomā. 680 00:40:05,280 --> 00:40:10,220 Un, ja es tagad uz Doties, man tieši to, ko es cerēju. 681 00:40:10,220 --> 00:40:15,890 Deivids ir Mather, Maiks ir Pfoho, un es arī redzēt unikālu identifikatoru. 682 00:40:15,890 --> 00:40:18,640 Bet jautājums ir tagad man ir visa tabula. 683 00:40:18,640 --> 00:40:23,020 Un tā takeaway šeit ir par 7 PSET vai tiešām par galīgo projektu: 684 00:40:23,020 --> 00:40:25,830 Ja konstatējat, ka esat uzglabātu ikvienu informāciju lieki, 685 00:40:25,830 --> 00:40:28,850 vai tas ir nams, varbūt tā ir pilsēta, valsts, un ZIP 686 00:40:28,850 --> 00:40:32,050 kur ZIP parasti var, bet ne vienmēr var izmantot kā unikālu identifikatoru, 687 00:40:32,050 --> 00:40:35,810 iet cauri pildot garīgi un tad ar kaut ko līdzīgu phpMyAdmin 688 00:40:35,810 --> 00:40:40,660 Faktoringa, ka kopīgiem datiem, jo ​​īpaši, kā jūsu mājas lapā izpaužas vairāk labi izmanto 689 00:40:40,660 --> 00:40:45,440 un vairāk populārs, tas ir, kā jūs pārliecināties, ka viss ir super ātri, 690 00:40:45,440 --> 00:40:51,930 dodot datubāzi tik daudz mājieni par to unikalitāti, cik iespējams. 691 00:40:51,930 --> 00:40:53,860 Tas bija daudz. 692 00:40:53,860 --> 00:40:59,010 Kādi jautājumi? Labi. Paņemsim 5 minūšu pārtraukumu tur un pārgrupēt. 693 00:41:01,600 --> 00:41:03,540 Labi. 694 00:41:03,540 --> 00:41:08,680 Turpmāk ir piemērs, kas tika izmantota pirms dažiem gadiem, kad man bija CS161, 695 00:41:08,680 --> 00:41:10,960 kas ir operētājsistēmas klasē koledžā 696 00:41:10,960 --> 00:41:15,160 kas ir zināms par to, pārsteidzošs, bet traks darba apjoms, 697 00:41:15,160 --> 00:41:19,810 un tas koncentrējas tiešām par dažiem zema līmeņa problēmas, kas rodas operētājsistēmās 698 00:41:19,810 --> 00:41:22,700 un arī pat pasaules datubāzēm. 699 00:41:22,700 --> 00:41:27,040 >> Stāsts, kas bija teicis mans profesors, Margo zelteris, šajā gadā bija šāds. 700 00:41:27,040 --> 00:41:30,990 Pieņemsim, ka jums ir maz kopmītnes ledusskapis par jums un jūsu kaimiņiem 701 00:41:30,990 --> 00:41:34,030 un jūs abi patiešām patīk pienu. 702 00:41:34,030 --> 00:41:36,360 Tātad jūs nākt mājās no klases vienas dienas, jūsu kaimiņiem vēl nav tur, 703 00:41:36,360 --> 00:41:39,650 atverot ledusskapi, un tu saproti, "Ak nopelt, mēs esam no piena." 704 00:41:39,650 --> 00:41:42,070 Tātad jūs aizvērt ledusskapi, jūs staigāt pāri ielai uz CVS 705 00:41:42,070 --> 00:41:45,830 un saņemt aizvien garās rindās, lai nopirktu kādu pienu CVS. 706 00:41:45,830 --> 00:41:48,470 Tikmēr jūsu kaimiņiem nāk mājās no viņa vai viņas klasē, 707 00:41:48,470 --> 00:41:51,690 nonāk telpā, atver ledusskapi patiešām vēlas kādu pienu, 708 00:41:51,690 --> 00:41:54,130 atver ledusskapi un, "Sasodīts, nē piens." 709 00:41:54,130 --> 00:41:57,890 Lai viņš vai viņa aizver ledusskapi, pastaigas ārā pa durvīm, un iet uz DBP 710 00:41:57,890 --> 00:42:00,910 vai kaut kas nav CVS kur jūs neesat gatavojas kliegt uz otru 711 00:42:00,910 --> 00:42:02,790 iet saņemt pienu. 712 00:42:02,790 --> 00:42:04,820 Protams dažas minūtes vēlāk, jums abiem nokļūt atpakaļ mājās 713 00:42:04,820 --> 00:42:07,740 un tagad jums ir divreiz tik daudz piena, kā jūs faktiski gribēja. 714 00:42:07,740 --> 00:42:10,670 Un ir piens, tagad tas notiek, lai iet slikti, jo jums patīk pienu 715 00:42:10,670 --> 00:42:14,200 bet jums nav īsti kā piens, tāpēc tagad jums ir pārāk daudz piena, tāpēc tas būs skābs. 716 00:42:14,200 --> 00:42:16,830 Tas ir šausmīgi, šausmīgi situācija. 717 00:42:16,830 --> 00:42:22,920 Kas varētu būt atrisināt šo nekonsekvenci, ja Jums bija pirmais istabas mājās? Jā. 718 00:42:22,920 --> 00:42:25,970 [Students] Jums ir atstājuši piezīmi. [Smiekli] 719 00:42:25,970 --> 00:42:28,090 Labi. Jums vajadzētu būt atstājis zīmīti. 720 00:42:28,090 --> 00:42:32,320 Jums vajadzētu būt nodot Post-it piezīmi vai, piemēram, sakot, "Gone piena," 721 00:42:32,320 --> 00:42:36,830 un tad jūsu kaimiņiem konceptuāli būtu izslēgta no faktiski darām. 722 00:42:36,830 --> 00:42:38,010 Vai jūs varētu iet 1 solis tālāk. 723 00:42:38,010 --> 00:42:41,060 Jūs varētu burtiski bloķētu ledusskapi ar kādu atslēga, 724 00:42:41,060 --> 00:42:44,870 un tagad jūsu kaimiņiem būs burtiski izslēgt no ledusskapja. 725 00:42:44,870 --> 00:42:48,520 Ja mēs vispārināt atpakaļ uz plānošanu, 726 00:42:48,520 --> 00:42:51,610 Jūs varat gandrīz iedomāties ledusskapja, jo daži no mainīgo veida vai struct, 727 00:42:51,610 --> 00:42:53,500 sava veida konteinera informācijai. 728 00:42:53,500 --> 00:42:58,290 Problēma būtībā ir tā, ka jums abiem bija atļauts apskatīt 729 00:42:58,290 --> 00:43:02,370 vai lasīt stāvokli šajā datu struktūru, 730 00:43:02,370 --> 00:43:08,050 bet tu skatījies to dažādos laikos un vēl jums abiem pieņēma lēmumu 731 00:43:08,050 --> 00:43:11,920 pamatojoties uz stāvokli pasaulē šajās dažādos brīžos laikā. 732 00:43:11,920 --> 00:43:15,570 Tātad bija jums bloķēta ledusskapi, tu būtu vismaz izvairīties jūsu kaimiņiem 733 00:43:15,570 --> 00:43:19,070 No tā ir varējusi pārbaudīt stāvokli pasaulē, 734 00:43:19,070 --> 00:43:22,530 lai viņš vai viņa nevarēja veikt to pašu lēmumu. 735 00:43:22,530 --> 00:43:25,780 Tā datubāzēm, kā izrādās, ir šī problēma pastāvīgi. 736 00:43:25,780 --> 00:43:31,050 >> Redzēsim, vai mēs varam veidot scenāriju. 737 00:43:31,050 --> 00:43:34,310 Pieņemsim, ka tu esi sava veida slikts puisis, un doties uz Bank of America 738 00:43:34,310 --> 00:43:37,950 vai viens no citām vietām laukumā ir pāris bankomāti blakus, 739 00:43:37,950 --> 00:43:41,200 un kaut jūs sapratu, kā dublēt ATM karti - nav tik grūti. 740 00:43:41,200 --> 00:43:42,730 Tas ir tikai magnētiskās lentes. 741 00:43:42,730 --> 00:43:45,180 Un tā, ko jūs vēlaties, lai mēģinātu darīt, ir spēlēt šo spēli 742 00:43:45,180 --> 00:43:49,060 kurā jūs likts 1 karti 1 mašīna, citu karti uz citu mašīnu, 743 00:43:49,060 --> 00:43:51,980 un jūs būtībā vēlaties izmēģināt, lai izņemtu naudu vienlaicīgi, 744 00:43:51,980 --> 00:43:54,930 jo iedomājieties, ka stāsts iet šādi. 745 00:43:54,930 --> 00:43:57,350 Kreisajā pusē mašīna ņem savu karti un PIN, 746 00:43:57,350 --> 00:44:00,240 un tad jūs sakāt: "Dod man $ 100." 747 00:44:00,240 --> 00:44:04,790 ATM ir ieprogrammēts, lai vispirms darīt izvēlieties savā datubāzē vai līdzvērtīgā - 748 00:44:04,790 --> 00:44:10,780 neatkarīgi datubāze tas izmanto - lai redzētu vai tas lietotājam ir vismaz $ 100 viņa konta? 749 00:44:10,780 --> 00:44:16,180 Ja tā, tad izspļaut $ 100 un atņem $ 100 no savas bilances. 750 00:44:16,180 --> 00:44:20,470 Bet, protams, ja tur ir vairākas mašīnas vietas vai vairāki veidi inspekcijas 751 00:44:20,470 --> 00:44:23,560 stāvokli šajā pasaulē, banka velvēt, lai redzētu, cik daudz naudas jums ir, 752 00:44:23,560 --> 00:44:26,780 pieņemsim, ka tikai nejauši mašīnā pa kreisi un pa labi 753 00:44:26,780 --> 00:44:30,140 gan uzdot šo jautājumu aptuveni tajā pašā brīdī. 754 00:44:30,140 --> 00:44:34,160 >> Un tas noteikti var notikt. Bankomāti ir datori šajās dienās. 755 00:44:34,160 --> 00:44:37,670 Tātad, ja pa kreisi mašīna saka: "Jā, jums ir vismaz $ 100," 756 00:44:37,670 --> 00:44:42,150 Tikmēr par tiesībām mašīna saka: "Jā, jums ir vismaz $ 100," 757 00:44:42,150 --> 00:44:47,420 tad gan no tiem doties, lai pabeigtu savas programmas un faktiski izspļaut $ 100 758 00:44:47,420 --> 00:44:50,820 un saka: "Agrāk jums bija $ 200." 759 00:44:50,820 --> 00:44:54,890 "Ļaujiet man atjaunināt mainīgo tagad būt $ 100 palicis kontā." 760 00:44:54,890 --> 00:44:58,780 Bet, ja viņi abi ir jāpārbauda sava konta atlikumu, un konstatēja, ka tā ir 200 $ 761 00:44:58,780 --> 00:45:02,000 un abi no tiem, tad darīt to math un teikt 200-100, 762 00:45:02,000 --> 00:45:06,990 mašīnas ir potenciāli izspļaut divi $ 100 rēķinus katrā mašīnā, 763 00:45:06,990 --> 00:45:11,360 bet tie esam tikai atjauninājis savu summa konta bilanci būt 100 ASV dolāru. 764 00:45:11,360 --> 00:45:15,130 Citiem vārdiem sakot, jūs esat izņemts $ 200, bet tāpēc, ka viņi pārbauda stāvokli pasaulē 765 00:45:15,130 --> 00:45:18,840 vienlaicīgi un tad pieņēma lēmumu, pamatojoties uz šo vērtību, 766 00:45:18,840 --> 00:45:21,930 viņi varētu darīt to math visbeidzot pareizi. 767 00:45:21,930 --> 00:45:25,520 Tātad bankas situācijā pārāk jūs patiešām vēlaties, lai būtu sava veida lokauts 768 00:45:25,520 --> 00:45:28,450 tā, ka, tiklīdz jūs esat pārbaudījis stāvokli kādu mainīgā 769 00:45:28,450 --> 00:45:31,220 tas ir patiešām svarīgi, piemēram, jūsu konta atlikumu, 770 00:45:31,220 --> 00:45:36,070 neļaujiet kāds cits pieņemt lēmumus, pamatojoties uz to, līdz esat beidzis darāt jūsu lieta, 771 00:45:36,070 --> 00:45:38,920 kur šajā gadījumā jums ir ATM pa kreisi. 772 00:45:38,920 --> 00:45:41,160 Lock ikvienam citam out. 773 00:45:41,160 --> 00:45:44,650 Jūs faktiski var sasniegt šo efektu pāris dažādos veidos. 774 00:45:44,650 --> 00:45:48,660 >> Vienkāršākais veids, MySQL ir līnija SQL ka mēs deva jums 775 00:45:48,660 --> 00:45:52,030 kādiem problēmas noteiktajā specifikācijā, kas izskatās tieši tāpat kā šis. 776 00:45:52,030 --> 00:45:57,420 Ievietot tabulā - neatkarīgi no tā sauc - ID, simbols, un prēmijās, akciju skaits, 777 00:45:57,420 --> 00:45:59,660 šādas vērtības, piemēram. 778 00:45:59,660 --> 00:46:03,370 Ja jums nav lasīt spec vēl, šis ir piemērs, iesaistot kā jūs iet par 779 00:46:03,370 --> 00:46:07,340 pērk 10 Akcijas šo penss krājumu prezidentam Skroob, 780 00:46:07,340 --> 00:46:10,340 kuru lietotāja ID notiek, numurs 7? 781 00:46:10,340 --> 00:46:14,070 Šis saka INSERT INTO tabulas šādas personas, simbols, un akciju skaitu 782 00:46:14,070 --> 00:46:18,200 gada 7, "DVN.V", 10 un. 783 00:46:18,200 --> 00:46:21,510 Bet - bet, bet, bet - otrā līnija ir svarīgs. 784 00:46:21,510 --> 00:46:26,310 PAR DUBLIKĀTS atslēgas atjaunināšanas akcijas = akcijas + VALUES (akcijas). 785 00:46:26,310 --> 00:46:28,350 Tik pilnīgi mistisks-meklē pēc pirmā acu uzmetiena. 786 00:46:28,350 --> 00:46:31,990 Bet fakts, ka šī SQL vaicājumu, lai gan tas wraps uz 2 līnijas, 787 00:46:31,990 --> 00:46:35,920 ir 1 garš vaicājumu, tas nozīmē, ka ir atomu 788 00:46:35,920 --> 00:46:41,000 tādā ziņā, ka šis vaicājums nu tiks izpildīts kopā vai nemaz. 789 00:46:41,000 --> 00:46:45,100 Un pēc definīcijas MySQL, tas, kā tās īsteno šo vaicājumu. 790 00:46:45,100 --> 00:46:51,010 Tas pēc definīcijas ir rokasgrāmatā garantēta izpildīt visus uzreiz vai nav vispār. 791 00:46:51,010 --> 00:46:54,020 Šim motivācija ir šāda. 792 00:46:54,020 --> 00:46:58,540 Ja šajā gadījumā jūs mēģināt iegādāties 10 akcijas,, 793 00:46:58,540 --> 00:47:02,260 tas ir sava veida pašu stāstu, kā piens, tas ir sava veida pašu stāstu par ATM. 794 00:47:02,260 --> 00:47:04,970 >> Ja jūs veicat kļūda nav izmantojot šo sintaksi 795 00:47:04,970 --> 00:47:09,610 bet tā vietā izvēloties no datubāzes, lai redzētu, cik daudz akcijas šo penss krājumu 796 00:47:09,610 --> 00:47:13,750 pozīciju prezidents Skroob ir, un pieņemsim, viņam ir 10 akcijas, 797 00:47:13,750 --> 00:47:19,330 un tad dažas sekundes daļu vēlāk jūs tad do UPDATE, 798 00:47:19,330 --> 00:47:24,810 kas ir vēl viens paziņojums SQL ka saka iet uz priekšu un pievienot vēl 10 akcijas 799 00:47:24,810 --> 00:47:28,700 viņa pašreizējā 10 tā, ka ideālā variantā kopējā summa ir 20, 800 00:47:28,700 --> 00:47:33,490 Problēma ir, jo mūsdienu datu bāzu sistēmu un jo šodienas datoriem 801 00:47:33,490 --> 00:47:35,990 Jums ir vairākus procesorus, vairākiem kodoliem - 802 00:47:35,990 --> 00:47:38,920 citiem vārdiem sakot, datori var burtiski darīt vairākas lietas uzreiz - 803 00:47:38,920 --> 00:47:44,270 nav garantijas, ka jūsu IZVĒLĒTIES un jūsu UPDATE šajā gadījumā 804 00:47:44,270 --> 00:47:46,150 gatavojas notikt atpakaļ atpakaļ. 805 00:47:46,150 --> 00:47:49,140 Tik slikti scenārijs būtu jūs SELECT 806 00:47:49,140 --> 00:47:51,670 lai redzētu, cik daudz akcijas šā penss krājumu nav Skroob ir, 807 00:47:51,670 --> 00:47:54,710 un tad tikai nejauši cits datubāzes vaicājums tiek izpildīts - 808 00:47:54,710 --> 00:47:57,740 varbūt tā Skroob citā pārlūkprogrammas logā mēģinot iegādāties 10 akcijas 809 00:47:57,740 --> 00:48:00,700 citā logā pavisam, līdzīgi kā ATM - 810 00:48:00,700 --> 00:48:05,410 un pieņemsim, ka cits jautājums iekļuvis starp SELECT un atjauninājumā. 811 00:48:05,410 --> 00:48:10,210 Tas varētu būt gadījums, ka Skroob tagad zaudē dažas akciju skaits 812 00:48:10,210 --> 00:48:14,340 jo cits process ir pārbaudīt stāvokli viņa pasaulē, 813 00:48:14,340 --> 00:48:17,800 vai viņš saņem vairāk akciju nekā viņš būtu. 814 00:48:17,800 --> 00:48:23,250 Mēs ne iedziļināties, ko tieši šie konkrētie sižetā būtu ziņām, 815 00:48:23,250 --> 00:48:28,380 bet jautājums ir, ja jums ir pārbaudīt mainīgie vērtību un tad pieņemt lēmumu, 816 00:48:28,380 --> 00:48:32,500 ja tur ir kāds cits kaut ko dara, starp šīm 2 paziņojumiem risks, 817 00:48:32,500 --> 00:48:36,220 kā var notikt DAUDZPROCESORU sistēmās, jo kodolu sistēmām, 818 00:48:36,220 --> 00:48:41,220 datori ar spēju darīt vairākas lietas vienlaicīgi, sliktas lietas var notikt 819 00:48:41,220 --> 00:48:44,530 kā bankas konti tiek debetēts nepareizi, pērkot divreiz tik daudz piena, 820 00:48:44,530 --> 00:48:46,730 vai šajā gadījumā nepareizi akciju skaits. 821 00:48:46,730 --> 00:48:48,370 Bet tur ir vieglāk veids, kā domāt par to. 822 00:48:48,370 --> 00:48:53,290 >> Izrādās, ka SQL atbalsta arī, ja jums konfigurēt jūsu galda pareizi, 823 00:48:53,290 --> 00:48:56,920 kaut ko sauc darījumi, ko es gribētu apgalvot, ir faktiski pat vieglāk saprast 824 00:48:56,920 --> 00:49:00,650 par šo, bet tas nav 1-čaulas, tāpēc tas tiešām mazliet vairāk iesaistīties. 825 00:49:00,650 --> 00:49:04,960 Ir burtiski jo SQL sauc START darījums. 826 00:49:04,960 --> 00:49:08,300 Tāpat tur ir SELECT, UPDATE, INSERT, DELETE, un pievienoties un citu ķekars, 827 00:49:08,300 --> 00:49:10,970 ir atslēgvārdi, piemēram START darījumu. 828 00:49:10,970 --> 00:49:13,560 Un ko tu tad darīt kontekstā 7 PSET - 829 00:49:13,560 --> 00:49:17,270 jums nav to darīt ir par 7 PSET, tas ir nepārprotami disclaimed kā nav vajadzīgs, 830 00:49:17,270 --> 00:49:18,830 bet gala projektiem tas var būt noderīgs - 831 00:49:18,830 --> 00:49:22,820 ja jūs zvanu no sākuma DARĪJUMA vaicājumu un tad vēl vaicājumu 832 00:49:22,820 --> 00:49:25,620 un tad vēl vaicājumu un tad vēl, vēl, un vēl, 833 00:49:25,620 --> 00:49:31,860 šie vaicājumi faktiski nav izpildīts, līdz jūs zvanīt SQL izdarīt, 834 00:49:31,860 --> 00:49:37,220 kurā brīdī, vai tas ir 2 paziņojumus vai 20 paziņojumi, tie visi tiks izpildīts uzreiz, 835 00:49:37,220 --> 00:49:42,770 kas nozīmē, neviens cits nevar nejauši nopirkt pārāk daudz piena vai debeta pārāk daudz naudas 836 00:49:42,770 --> 00:49:46,340 vai pirkt pārāk daudz akcijas, jo visas jūsu jautājumiem veiks 837 00:49:46,340 --> 00:49:48,410 atpakaļ atpakaļ atpakaļ atpakaļ. 838 00:49:48,410 --> 00:49:51,580 Un tas ir super svarīgi, jo īpaši, ja jūs darāt kaut kas līdzīgs šim. 839 00:49:51,580 --> 00:49:54,900 Šis ir patvaļīgs piemērs, kas saka pieņemsim atjaunināt bankas kontu 840 00:49:54,900 --> 00:50:00,200 nosakot līdzsvaru vienāds ar bilanci - $ 1000 kur konta numurs ir 2. 841 00:50:00,200 --> 00:50:04,260 Un tad otrais paziņojums ir tagad pieņemsim noguldīt ka ​​1000 $ 842 00:50:04,260 --> 00:50:07,310 vērā kāds cits bankas kontā, kura konta numurs ir 1. 843 00:50:07,310 --> 00:50:10,400 >> Citiem vārdiem sakot, šis ir perfekts piemērs, kur jūs vēlaties, lai pārliecinātos 844 00:50:10,400 --> 00:50:13,590 ka abi no šiem apgalvojumiem notikt vai nemaz 845 00:50:13,590 --> 00:50:15,450 jo pretējā gadījumā klients ir gatavojas saņemt ieskrūvē 846 00:50:15,450 --> 00:50:17,670 un jūs gatavojas veikt savu naudu un nevis noguldīt citur, 847 00:50:17,670 --> 00:50:20,470 vai banka ir gatavojas saņemt ieskrūvē kur jūs gatavojas noguldīt naudu 848 00:50:20,470 --> 00:50:23,140 bet faktiski atņem to no lietotāja konta. 849 00:50:23,140 --> 00:50:25,810 Tātad jūs vēlaties, gan no tiem, kas darbojas kopā. 850 00:50:25,810 --> 00:50:29,140 Līdz stāsies pasaules darījumiem. 851 00:50:29,140 --> 00:50:31,360 Tāpēc, ka ir kaut kas, lai saglabātu atpakaļ jūsu prātā, 852 00:50:31,360 --> 00:50:34,710 ne tik daudz par to tikai pēdējā projekta mērķiem, 853 00:50:34,710 --> 00:50:36,700 bet, ja jūs vēlaties, lai jūsu galīgo projektu kaut kur, 854 00:50:36,700 --> 00:50:39,040 ja jūs vēlaties, lai uzsāktu kādu uzņēmumu ap to, 855 00:50:39,040 --> 00:50:41,270 ja jūs vēlaties, lai atrisinātu Daži students grupas problēmu par Campus 856 00:50:41,270 --> 00:50:45,210 un faktiski ir dzīvot, aktīvā mājas lapā, tie ir sava veida smalks bugs, kas var rasties 857 00:50:45,210 --> 00:50:49,480 ja jums nav gluži domāt ar ko var notikt, ja 2 cilvēki 858 00:50:49,480 --> 00:50:54,190 mēģināt piekļūt jūsu mājas lapā burtiski pašā brīdī, 859 00:50:54,190 --> 00:50:56,890 kurā savus jautājumus citādi varētu saņemt caurausta. 860 00:50:58,840 --> 00:51:01,420 >> Gatavs kādu JavaScript, teaser tā? 861 00:51:01,420 --> 00:51:04,320 Šī ir mūsu pēdējā valoda par pusgadu. Labi. 862 00:51:04,320 --> 00:51:09,940 Par laimi, JavaScript izskatās ļoti, ļoti, ļoti līdzīga 2 valodās, C un PHP, 863 00:51:09,940 --> 00:51:11,140 mēs esam darījuši līdz šim. 864 00:51:11,140 --> 00:51:14,340 Nav 7 PSET aktivizētam, bet tas ir neticami noderīgs instruments 865 00:51:14,340 --> 00:51:18,840 kad runa ir darīt tīmekļa galīgos projektus vai tiešām tikai interneta programmēšanas vispār. 866 00:51:18,840 --> 00:51:20,950 Tik ātrs pārskats par kaut ko sauc DOM. 867 00:51:20,950 --> 00:51:23,600 Te ir super vienkārši mājas lapa, kas patiešām ir tikai saka sveiki, pasaule 868 00:51:23,600 --> 00:51:25,970 gan virsrakstā un organismā. 869 00:51:25,970 --> 00:51:29,270 Kā atkāpes ir liecina par kādu laiku, 870 00:51:29,270 --> 00:51:31,380 ir patiešām hierarhija uz interneta lapām. 871 00:51:31,380 --> 00:51:34,220 Es varētu izdarīt šo pašu HTML fragmentu kā koks, 872 00:51:34,220 --> 00:51:37,470 domāju atpakaļ uz mūsu diskusiju par datu struktūru C, šādi. 873 00:51:37,470 --> 00:51:40,710 Man ir dažas īpašas saknes mezgla sauc dokumentu mezglā, 874 00:51:40,710 --> 00:51:43,650 un mēs redzēt analogs tas Javascript tikai brīdi. 875 00:51:43,650 --> 00:51:48,330 Pirmais bērns un vienīgais bērns, kas šajā gadījumā ir HTML tagu. 876 00:51:48,330 --> 00:51:49,880 Nav tiešas kartējot DOCTYPE. 877 00:51:49,880 --> 00:51:53,170 Tas ir īpašs lieta, tāpēc mums vajadzētu vienkārši ignorēt to, kad runa ir par šo DOM, 878 00:51:53,170 --> 00:51:55,810 Šis dokuments Object Model koku. 879 00:51:55,810 --> 00:51:59,530 Ievērojiet, ka HTML tags, ko es esmu attēlota patvaļīgi kā taisnstūri, 880 00:51:59,530 --> 00:52:02,890 ir 2 bērni: galvas un ķermeņa. 881 00:52:02,890 --> 00:52:04,840 >> Tie ir līdzīgi kā izstrādāt taisnstūri. 882 00:52:04,840 --> 00:52:08,970 Tas ir jēga piktogrammām, ka galva ir pa kreisi no ķermeņa. 883 00:52:08,970 --> 00:52:11,960 Ietekme ir tāda, ka galva ir pirmajā kokā. 884 00:52:11,960 --> 00:52:14,910 Tāpēc tur tiešām pasūtīšanas ar koku, kad jūs izdarīt to, kā šis, 885 00:52:14,910 --> 00:52:17,460 lai gan formas un plauktiņš ir patvaļīgi. 886 00:52:17,460 --> 00:52:20,360 Galva tikmēr ir viens bērns sauc nosaukums, 887 00:52:20,360 --> 00:52:25,170 un nosaukums patiesībā ir savs bērns, kas ir "Hello, World", 888 00:52:25,170 --> 00:52:32,210 ko es apzināti vērsa kā ovālā šeit, lai padarītu to nedaudz atšķiras no taisnstūra. 889 00:52:32,210 --> 00:52:37,420 Šie četrstūri ir elementi, bet sveiki, pasaule ir patiešām teksta mezglā. 890 00:52:37,420 --> 00:52:39,850 Tāpēc tas mezglu no koka, bet tas ir atšķirīgs veids mezgla 891 00:52:39,850 --> 00:52:41,730 tāpēc es vērsa to patvaļīgi savādāk. 892 00:52:41,730 --> 00:52:45,000 Tāpat nav ķermeņa ir bērns sauc sveiki, pasaule, kā arī, 893 00:52:45,000 --> 00:52:47,910 tik dažādi mezglu pat ja viņi nejauši pats teksts, 894 00:52:47,910 --> 00:52:52,100 bet es esmu sastādīts to, izmantojot to pašu formu. Tā, kas rūpējas? 895 00:52:52,100 --> 00:52:56,820 Nu, kas ir jauka par HTML ir, ka tas ir šī hierarhijas raksturs. 896 00:52:56,820 --> 00:53:01,010 Un, kas ir jauka par JavaScript un īpaši bibliotēkām, kas ir brīvi pieejami 897 00:53:01,010 --> 00:53:07,120 un populārs kā jQuery, jūs varat pārvietoties koka struktūru tik pārsteidzoši viegli. 898 00:53:07,120 --> 00:53:11,790 Jebkuru no stuff mums bija C ar norādes un šķērsojot koki un recursing uz mezgliem 899 00:53:11,790 --> 00:53:15,300 kreisās bērns uz labo bērnam, visi pēkšņi, mēs varam sakārtot gada pieņemt par pašsaprotamu 900 00:53:15,300 --> 00:53:19,450 kā pārsteidzoši pamācošs, ja ne mazliet nomākta 901 00:53:19,450 --> 00:53:22,470 bet ne gandrīz efektīvs veids, kā iet par programmēšanu. 902 00:53:22,470 --> 00:53:24,470 Un tāpēc ar šīm augstāka līmeņa valodas, piemēram, JavaScript 903 00:53:24,470 --> 00:53:28,340 mēs spētu orientēties šo koku daudz vairāk intuitīvi. 904 00:53:28,340 --> 00:53:30,430 >> Un tiešām sintakse būs diezgan pazīstams. 905 00:53:30,430 --> 00:53:32,950 Ja jūs nekad neesmu redzējis JavaScript pirms, tas ir tiešām jauks atsauce 906 00:53:32,950 --> 00:53:35,910 no Mozilla ļaudīm, cilvēki, kas dara Firefox, 907 00:53:35,910 --> 00:53:38,370 tāpēc justies brīvi, lai pārlūkotu, ka jūsu ērtībai. 908 00:53:38,370 --> 00:53:41,590 Ko jūs atradīsiet - un šie slaidi ir identisks tam, ko mēs izmantojām citu dienu - 909 00:53:41,590 --> 00:53:44,030 Tāpat, galvenais ir pagājis. 910 00:53:44,030 --> 00:53:47,010 Tātad, ja jūs uzrakstīt programmu JavaScript, nav galvenā funkcija. 911 00:53:47,010 --> 00:53:48,690 Tu sāc rakstīt kodu. 912 00:53:48,690 --> 00:53:51,660 Bet galvenais atšķirība starp JavaScript un C un PHP 913 00:53:51,660 --> 00:53:55,890 ir tas, ka tā C un PHP līdz šim ir veikti servera pusē 914 00:53:55,890 --> 00:53:59,180 ko ierīces šajā gadījumā vai vispār ar serveri, 915 00:53:59,180 --> 00:54:04,270 JavaScript pēc konstrukcijas ir parasti veic ar pārlūku. 916 00:54:04,270 --> 00:54:08,440 Citiem vārdiem sakot, jūs varētu rakstīt JavaScript kodu, jo mēs esam par to, 917 00:54:08,440 --> 00:54:13,080 uz servera iekārtas, bet jūs to iekļaut starp jūsu HTML, starp jūsu CSS, 918 00:54:13,080 --> 00:54:16,100 starp jūsu GIF un jūsu PNGs un jūsu JPEG 919 00:54:16,100 --> 00:54:19,170 tā, ka tad, kad lietotājs apmeklē jūsu mājas lapā, ja jūs izmantojat JavaScript, 920 00:54:19,170 --> 00:54:21,770 ka JavaScript kods nāk no servera uz pārlūku, 921 00:54:21,770 --> 00:54:24,540 un tas ir pārlūks, kas faktiski izpilda to. 922 00:54:24,540 --> 00:54:27,960 Tāpēc šī ir jēgpilnas ietekmē pat intelektuālo īpašumu. 923 00:54:27,960 --> 00:54:32,600 Tas ir sava veida dumjš pat domāt par aizsargāt savu IP, kad runa ir par JavaScript kodu 924 00:54:32,600 --> 00:54:37,560 jo pēc būtības par valodu tas izpaužas izpildīts parasti pārlūka pusē. 925 00:54:37,560 --> 00:54:40,360 >> Jūs varat aptumšot to, kas nozīmē, ka jūs varat padarīt to izskatās traki un neglīts 926 00:54:40,360 --> 00:54:45,400 bez tukšumiem, briesmīgs mainīgo nosaukumi, lai būtu grūtāk, lai cilvēki varētu zagt jūsu IP, 927 00:54:45,400 --> 00:54:48,120 bet galvenais ir tas, ka tiek izpildīts pārlūka pusē. 928 00:54:48,120 --> 00:54:51,790 Kaut gan, kā malā JavaScript var izmantot servera pusē, 929 00:54:51,790 --> 00:54:54,480 Visbiežāk izmanto gadījumu šobrīd joprojām ir uz pārlūku. 930 00:54:54,480 --> 00:54:59,800 Un lūk, ko tas izskatās. Šeit ir ja-cits ja-cits būvēt tāpat kā C, tāpat kā PHP. 931 00:54:59,800 --> 00:55:02,420 Šeit ir Būla izteiksme, kad tu "vai" 2 lietas kopā. 932 00:55:02,420 --> 00:55:04,330 Šeit ir, kad tu "un" 2 lietas kopā. 933 00:55:04,330 --> 00:55:08,300 Šeit ir slēdzis apgalvojums, kas ir līdzīgs PHP 934 00:55:08,300 --> 00:55:10,810 jo jūs varat pārslēgties uz dažāda veida vērtību. 935 00:55:10,810 --> 00:55:15,180 Cilpas līdzīgi ir uz cilpas šeit, kas ir strukturēts identiski tam, ko mēs esam redzējuši iepriekš. 936 00:55:15,180 --> 00:55:18,110 Kamēr cilpas, mēs esam ieguvuši darīt, kamēr cilpas. 937 00:55:18,110 --> 00:55:20,290 Mainīgie, kādreiz tik nedaudz atšķiras. 938 00:55:20,290 --> 00:55:24,560 Jums deklarēt mainīgos kā jūs darīt PHP un C, 939 00:55:24,560 --> 00:55:27,860 bet līdzīgi ir JavaScript vāji drukāti. 940 00:55:27,860 --> 00:55:32,730 Jums nav jānorāda int vai peldēt vai string vai kaut kas parasti neko. 941 00:55:32,730 --> 00:55:34,240 Jūs varat norādīt var. 942 00:55:34,240 --> 00:55:38,040 Jums nav jānorāda Var, bet tas ir sekas, ja jums nav. 943 00:55:38,040 --> 00:55:42,000 Parasti, ja jūs izlaist var, tu nejauši radīt globālu mainīgo nevis vietējie. 944 00:55:42,000 --> 00:55:46,420 Tāpēc ļaujiet man ieteikt, ka jūs gandrīz vienmēr tikai teikt var un tad mainīgā nosaukums. 945 00:55:46,420 --> 00:55:48,740 Tas nav veids, tas ir tikai var piemērot mainīgo. 946 00:55:48,740 --> 00:55:52,930 Tas būtu piemērs, vai tas ir 123 vai "Hello, World". 947 00:55:52,930 --> 00:55:58,910 Masīvi ir klāt un sintaktiski līdzīga PHP. 948 00:55:58,910 --> 00:56:03,690 Es saku VAR skaitļus un tad es izmantot kvadrātiekavas atkal deklarēt mainīgo 949 00:56:03,690 --> 00:56:08,870 kuru tips ir masīvs, kas ir šīs konkrētās tajā skaitļus atdalīti ar komatiem. 950 00:56:08,870 --> 00:56:11,740 Un tad visbeidzot, tas ir tikai viens, kas tiešām izskatās citādi. 951 00:56:11,740 --> 00:56:16,700 Atgādināt, ka PHP mēs esam ieviesuši asociatīvas masīvs, lai students 952 00:56:16,700 --> 00:56:20,220 piemēram Zamyla kas varētu izskatīties šādi, kur mainīgais sauc students. 953 00:56:20,220 --> 00:56:23,370 Kvadrātiekavās domāju šeit nāk masīvs. 954 00:56:23,370 --> 00:56:28,500 >> Fakts, ka es neesmu, izmantojot ciparu indeksus, bet stringus - id, māja, un nosaukums - 955 00:56:28,500 --> 00:56:30,990 nozīmē, ka šis ir asociatīvā masīva, 956 00:56:30,990 --> 00:56:34,490 un bultām ar vienlīdzības zīmi un leņķveida kronšteina 957 00:56:34,490 --> 00:56:37,310 nozīmē, ka galvenais ir "id", vērtība ir 1; 958 00:56:37,310 --> 00:56:39,310 galvenais ir "māja", vērtība ir Winthrop nams; 959 00:56:39,310 --> 00:56:41,800 galvenais ir "vārds", vērtība ir Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 Tātad tur ir 3 atslēgas iekšā šī asociatīvā masīva, no kurām katrai ir sava vērtība. 961 00:56:47,110 --> 00:56:52,880 Mēs esam redzējuši, ka 7 PSET, vai jūs drīz būs, jo JavaScript pašu ideju, 962 00:56:52,880 --> 00:56:55,220 bet tas notiek, lai izskatās šādi. 963 00:56:55,220 --> 00:57:00,070 Tā var students - ne dolāra zīmi un neviena veida pieminēt vēl, bet var - 964 00:57:00,070 --> 00:57:05,860 vienāds un tad atveriet cirtaini bikšturi, jo JavaScript kad jums ir galvenie vērtību pārus, 965 00:57:05,860 --> 00:57:08,900 Jūs faktiski var izmantot kaut ko sauc objekts. 966 00:57:08,900 --> 00:57:13,490 Un tiem no jums, kas tik tiešām APCS vai līdzīgi varētu atgādināt objektus no Java 967 00:57:13,490 --> 00:57:15,140 vai līdzīgas valodas. 968 00:57:15,140 --> 00:57:17,880 JavaScript nav Java, pirmkārt. 969 00:57:17,880 --> 00:57:21,600 Tas bija apzināts dizaina lēmums gadus atpakaļ, lai pieklauvēt off kaut kas cits, kas bija populārs, 970 00:57:21,600 --> 00:57:25,640 tās nosaukums, pat ja tai nav būtiskas saistības ar Java sevi. 971 00:57:25,640 --> 00:57:31,490 JavaScript ir objektus, un veidojot tās kā no cirtaini lencēm papildinājumiem. 972 00:57:31,490 --> 00:57:36,710 Objekti JavaScript ir diezgan daudz līdzvērtīgi apvienību masīvi PHP 973 00:57:36,710 --> 00:57:40,030 kad runa ir par datu glabāšanai iekšpusē no tiem. 974 00:57:40,030 --> 00:57:44,100 >> Bet vēl pārliecinošā JavaScript jūs varat saistīt ļoti viegli funkcijas 975 00:57:44,100 --> 00:57:48,040 iekšpusē objektu, un, lai gan jūs varat izdarīt arī citās valodās, 976 00:57:48,040 --> 00:57:50,040 tas ir diezgan izplatīta paradigma, kā mēs redzēsim. 977 00:57:50,040 --> 00:57:54,380 Īsāk sakot, šis objekts ir students, kurš ir īpaši Zamyla, 978 00:57:54,380 --> 00:58:00,380 un tas ir līdzīgs konceptuāli, tikai sintaktiski atšķiras no tā. 979 00:58:00,380 --> 00:58:03,840 Pieņemsim faktiski izmantot JavaScript failā. 980 00:58:03,840 --> 00:58:05,570 Izrādās tur skriptu tag. 981 00:58:05,570 --> 00:58:08,180 Mēs esam redzējuši stila tagu, un mēs esam redzējuši citiem HTML tagus. 982 00:58:08,180 --> 00:58:11,510 Skripts tag tiešām būs daži JavaScript kodu. 983 00:58:11,510 --> 00:58:15,500 Ļaujiet man aiziet uz ierīces, kur mums ir dažas pirmkods iepriekš sagatavotas. 984 00:58:15,500 --> 00:58:18,700 Man nav ievietojis to vēl uz mājas lapā, bet es darīšu, ka pēc klasi. 985 00:58:18,700 --> 00:58:21,770 Pieņemsim atvērt šo vienu, blink.html. 986 00:58:21,770 --> 00:58:27,560 Atpakaļ 1990, tur bija burtiski HTML tagu sauc mirgot tagu, 987 00:58:27,560 --> 00:58:30,340 un tas bija viens no visvairāk brīnišķīgi overused tagus internetā 988 00:58:30,340 --> 00:58:36,140 kuru jūs apmeklējat kādu 1990.gadu stila mājas lapā un sākt redzēt tekstu mirgot jums patīk tas, 989 00:58:36,140 --> 00:58:39,810 tad marķīzs tagu rezultātus, kas bija teksts iet kā šis. 990 00:58:39,810 --> 00:58:45,070 Viena no retajām reizēm, kad pasaule ir faktiski vienojušās tīmekļa standartu, 991 00:58:45,070 --> 00:58:48,250 ikvienam visur nogalināja mirkšķināšanas tagu pirms dažiem gadiem. 992 00:58:48,250 --> 00:58:52,860 Bet mēs varam atjaunot to ar JavaScript kā demonstrējot varu jums 993 00:58:52,860 --> 00:58:56,660 ja jūs varat uzrakstīt programmu iekšpusē mājas lapā. 994 00:58:56,660 --> 00:59:00,240 Vispirms pieņemsim izlaist jauno stuff un koncentrēties tikai uz veco. 995 00:59:00,240 --> 00:59:01,780 >> Šeit ir vecā sīkumi šajā piemērā. 996 00:59:01,780 --> 00:59:06,350 Man ir HTML tagu, galvas tag, un nosaukums tag. 997 00:59:06,350 --> 00:59:11,210 Tad man ir ķermeņa tag šeit ar div, kas atsaukšana ir tikai taisnstūra sadalīšanu lapas 998 00:59:11,210 --> 00:59:14,720 ka es esmu devis unikālu ID patvaļīgi par "sveicienu", lai, 999 00:59:14,720 --> 00:59:18,320 vienkārši tāpēc man ir veids, kā unikāli atsaucoties uz to, ka ir dažas ļoti vienkāršas teksta: 1000 00:59:18,320 --> 00:59:20,220 sveiki, pasaule. 1001 00:59:20,220 --> 00:59:23,940 Tagad ļaujiet man ritiniet uz augšu uz augšu šo failu, un redzēt, kas jauns. 1002 00:59:23,940 --> 00:59:27,710 Pirmā lieta, kas jauns augšu top ir skripts tag, 1003 00:59:27,710 --> 00:59:31,280 un iekšpusē skriptu tag paziņojumā es esmu atzīts funkciju. 1004 00:59:31,280 --> 00:59:34,610 Deklarēt funkciju Javascript, diezgan līdzīgs PHP, 1005 00:59:34,610 --> 00:59:37,930 Jūs burtiski rakstīt funkcija, tad vārdu funkcijas, iekavas 1006 00:59:37,930 --> 00:59:40,400 un varbūt daži argumenti, ja tas aizņem kādu. 1007 00:59:40,400 --> 00:59:43,510 Tad man mana cirtaini lencēm, kā parasti, un tagad mums ir dažas nedaudz jaunu kodu, 1008 00:59:43,510 --> 00:59:45,230 bet pieņemsim redzēt, ko tas nozīmē. 1009 00:59:45,230 --> 00:59:48,670 Tātad VAR div, tas tikai nozīmē, dod man mainīgo sauc div. 1010 00:59:48,670 --> 00:59:50,530 Es varētu būt to sauca foo, bet es gribēju, lai to sauc div 1011 00:59:50,530 --> 00:59:52,620 iemeslu dēļ, kas būs skaidrs sekundē. 1012 00:59:52,620 --> 00:59:57,480 Tad izrādās JavaScript - un tas ir JavaScript kods iestrādāta manā mājas lapā - 1013 00:59:57,480 --> 01:00:01,760 ir īpašs globālo mainīgo par veidu sauc dokuments. 1014 01:00:01,760 --> 01:00:04,780 JavaScript ir faktiski objektorientēta valoda. 1015 01:00:04,780 --> 01:00:07,230 Mēs ne iedziļināties sīkāk 50, kā to, ko tas nozīmē, 1016 01:00:07,230 --> 01:00:11,180 bet tagad zinu, ka objekts ir diezgan daudz, piemēram, struct. 1017 01:00:11,180 --> 01:00:14,740 Tāpat kā mēs redzējām ceļu atpakaļ, kad viens no ātrāk problēmas komplekti 1018 01:00:14,740 --> 01:00:17,150 kur mēs uzdodam daudz informācijas struct, 1019 01:00:17,150 --> 01:00:21,330 Tāpat ir jādokumentē īpašu struct kas nāk ar pārlūku, 1020 01:00:21,330 --> 01:00:24,810 nāk ar jebkuru mājas lapā. Tas nav kaut es radīju. 1021 01:00:24,810 --> 01:00:28,210 Iekšpusē šo dokumentu struktūru, lai gan, jums ir ne tikai datus 1022 01:00:28,210 --> 01:00:30,010 bet jums ir arī funkcijas. 1023 01:00:30,010 --> 01:00:34,090 >> Un jebkurā laikā jums ir funkcija iekšpusē struktūru, iekšpusē objektu, 1024 01:00:34,090 --> 01:00:36,490 to sauc metodi. Bet tas pats. 1025 01:00:36,490 --> 01:00:40,110 Metode ir funkcija, kas tikai tā notiek, ir iekšā kaut kas cits. 1026 01:00:40,110 --> 01:00:42,990 Tas nozīmē, ka šī īpašā globālo mainīgo sauc dokumentu 1027 01:00:42,990 --> 01:00:47,690 ir funkcija sauc getElementById ka burtiski dara to. 1028 01:00:47,690 --> 01:00:52,460 Tas kļūs jums elements no DOM, dokumenta objekta modelis koks, 1029 01:00:52,460 --> 01:00:55,520 kura ID ir šajā gadījumā sveicienu. 1030 01:00:55,520 --> 01:00:59,200 Citiem vārdiem sakot, visu šo laiku mēs pavadījām uz datu struktūras sāk spēlēt šeit. 1031 01:00:59,200 --> 01:01:01,400 Šī aina DOM ka mums bija pirms brīža, 1032 01:01:01,400 --> 01:01:06,100 pat ja lapa ir nedaudz atšķirīgs, ja man bija div šajā attēlā, 1033 01:01:06,100 --> 01:01:11,180 ko document.getElementById varētu atgriezties pie manis būtu vairāk rādītājs 1034 01:01:11,180 --> 01:01:15,440 līdz taisnstūrī koku, atsauci uz taisnstūrī koku. 1035 01:01:15,440 --> 01:01:18,410 Tātad tas, ko tas nozīmē, lai faktiski zvaniet vienu no šīm funkcijām. 1036 01:01:18,410 --> 01:01:21,960 Šajā gadījumā atkal tas div. Tas nav iestāde vai nosaukums. 1037 01:01:21,960 --> 01:01:26,480 Tātad, pieņemsim redzēt, ko es pēc tam darīt ar šo div tagad, ka man ir tā iekšpusē šo mainīgo sauc div. 1038 01:01:26,480 --> 01:01:32,580 Izrādās ar JavaScript Jums ir iespēja kniebiens CSS jūsu lapas dinamiski. 1039 01:01:32,580 --> 01:01:39,060 Līdz šim, visas CSS, mēs esam darījuši, lai gan ierobežoti, ir stila atribūtiem, 1040 01:01:39,060 --> 01:01:41,730 vai ja cits ir mēs ieliekam CSS? 1041 01:01:42,730 --> 01:01:45,810 Es veida sabojāt šo vienu. Šajā stilā tag augšpusē faila. 1042 01:01:45,810 --> 01:01:49,180 Vai trešā vieta ir bijusi? 1043 01:01:50,710 --> 01:01:54,590 >> Ārējā faila, kaut. Css. 1044 01:01:54,590 --> 01:01:56,730 Tātad tie ir 3 vietas, mēs esam darījuši CSS līdz šim, 1045 01:01:56,730 --> 01:01:59,310 bet nozveja ir mēs esam grūti kodē to visu. 1046 01:01:59,310 --> 01:02:04,060 Esat nolēmis, kā jūs balodis 7 PSET, mēs nolēmām pirms lekciju, ko mūsu CSS būtu. 1047 01:02:04,060 --> 01:02:07,380 Bet, ja jūs vēlaties mainīt savu CSS, jūs faktiski var darīt 1048 01:02:07,380 --> 01:02:09,370 ja jums ir faktiskā programmēšanas valodu. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - ne programmēšanas valodas. JavaScript ir. 1050 01:02:13,910 --> 01:02:18,200 Tātad izrādās, ka, tiklīdz esat viens no tiem taisnstūri no koka 1051 01:02:18,200 --> 01:02:23,050 sauc DOM, tā pati ir daži dati iekšpusē no tā. 1052 01:02:23,050 --> 01:02:27,820 Tā div ka es tikai satvert no koka, ir tas, ko mēs saucam par īpašumu iekšpusē no tā 1053 01:02:27,820 --> 01:02:34,390 sauc stilu, un stilu iestādē ir sev īpašums sauc redzamība. 1054 01:02:34,390 --> 01:02:37,330 Es zinu, tas tikai, apskatot pat CSS lietotāja rokasgrāmatu. 1055 01:02:37,330 --> 01:02:41,160 Izrādās tur redzamība CSS īpašums, kas dara to, ko tā saka. 1056 01:02:41,160 --> 01:02:44,530 Tas padara kaut redzamu vai ne, redzams vai ne. 1057 01:02:44,530 --> 01:02:46,810 Un kā jūs to, ka tas ir. 1058 01:02:46,810 --> 01:02:50,510 Es esmu jautā programmatiski ja šī div redzamība ir paslēpta, 1059 01:02:50,510 --> 01:02:53,390 Ko es varu mainīt to? Redzamas. 1060 01:02:53,390 --> 01:02:58,840 Cits ja šīs lapas redzamība nav paslēpts, loģiski man darīt to slēpta. 1061 01:02:58,840 --> 01:03:04,070 Man nav ne jausmas, kāpēc tas ir redzams un slēptās un nav redzams un neredzams. 1062 01:03:04,070 --> 01:03:06,000 Tas bija slikts dizains lēmumu gar ceļu. 1063 01:03:06,000 --> 01:03:09,530 Bet tie ir patiešām pretstati CSS: redzams un slēpta. 1064 01:03:09,530 --> 01:03:15,520 Viss tas ir tas nozīmē mainīt CSS manu failu un izslēgt, un izslēgt 1065 01:03:15,520 --> 01:03:16,870 par konkrēto div. 1066 01:03:16,870 --> 01:03:20,630 Bet atkal, tas ir funkcija sauc mirgot. Kad ir mirgot funkciju sauc? 1067 01:03:20,630 --> 01:03:24,080 Izrādās, ka tur ir cita īpaša globālo mainīgo sauc logu, 1068 01:03:24,080 --> 01:03:28,220 līdzīgi garā uz dokumentu, bet tā kā dokuments attiecas uz jūsu mājas lapā, 1069 01:03:28,220 --> 01:03:31,700 tāpat DOM koks, HTML jums nosūtīts no servera, 1070 01:03:31,700 --> 01:03:35,250 logu attiecas uz hromu ap to, adrešu joslā, virsrakstjoslas, 1071 01:03:35,250 --> 01:03:37,880 un visu, kas stuff ap jūsu mājas lapā. 1072 01:03:37,880 --> 01:03:42,800 >> Un izrādās, ka logs objekts ir īpaša funkcija to iekšā sauc setInterval 1073 01:03:42,800 --> 01:03:44,360 ka tas, ko tā saka. 1074 01:03:44,360 --> 01:03:48,600 Tas būs noteikt intervālu - šajā gadījumā ik 500 milisekundes - 1075 01:03:48,600 --> 01:03:52,270 un, ņem uzminēt, kāda ir tā gatavojas darīt ik pēc 500 milisekundēm? 1076 01:03:52,270 --> 01:03:55,240 Tas notiek, lai izpildītu šo funkciju mirgot. 1077 01:03:55,240 --> 01:03:58,560 Un, kas ir jauki ir tas, ka mēs varētu darīt to C, pat ja mēs nekad nebija. 1078 01:03:58,560 --> 01:04:01,580 C tiešām ir kaut kas ko sauc funkcionālo norādes, kur var nodot funkcijas apkārt 1079 01:04:01,580 --> 01:04:03,140 kā argumentus. 1080 01:04:03,140 --> 01:04:07,620 Līdzīgi JavaScript jūs varat iet nosaukumu funkcija citā funkciju. 1081 01:04:07,620 --> 01:04:10,630 Un paziņojums, ko es esmu dara. Es to nedaru. 1082 01:04:10,630 --> 01:04:14,380 Ja man iekavas pēc mirgot, tas nozīmētu zvanu mirkšķināšanas funkciju. 1083 01:04:14,380 --> 01:04:17,430 Ja es tos izlaist, tas nozīmē, ka šeit ir mirgot funkcija 1084 01:04:17,430 --> 01:04:21,330 lai setInterval varat zvanīt tā ik 500 milisekundes. 1085 01:04:21,330 --> 01:04:28,200 Tāpēc gala rezultāts, zvērīgās gan tas ir, ka, ja es dodos uz localhost un iet uz blink.html, 1086 01:04:28,200 --> 01:04:32,120 Man tagad ir šo notiek atkal un atkal. 1087 01:04:32,120 --> 01:04:34,950 Un, ja es tiešām Pārbaudiet Element, pieņemsim redzēt, ja mēs varam redzēt. 1088 01:04:34,950 --> 01:04:38,550 Ļaujiet man Pārbaudiet Element, ļaujiet man ritiniet tikai mazliet, 1089 01:04:38,550 --> 01:04:44,320 ļaujiet man izvēlēties Elements nekā šeit, un paziņojums DOM iekšpusē Chrome inspektors. 1090 01:04:44,320 --> 01:04:48,840 Tas burtiski mainās un atpakaļ ik pēc 500 milisekundēm. 1091 01:04:48,840 --> 01:04:55,660 Ja mēs ejam uz mūsu draugs Nate, 1092 01:04:55,660 --> 01:05:00,020 ja jums kādreiz prātoju, kā tas strādā, līdzīgu ideju ar intervālu, 1093 01:05:00,020 --> 01:05:04,810 bet Nate ir faktiski padarot ļoti efektīvu krāsu izmantošanu šajā konkrētajā gadījumā šeit. 1094 01:05:04,810 --> 01:05:07,350 Tātad, ko vēl mēs varam reāli darīt ar šo? 1095 01:05:07,350 --> 01:05:09,990 Pieņemsim atvērt citu piemēru un izmēģināt kaut ko 1096 01:05:09,990 --> 01:05:12,940 tas programmiski vēl noderīgāku nekā padarot lietas mirgot. 1097 01:05:12,940 --> 01:05:17,990 Ļaujiet man iet mūsu formu direktorijā šodien un iedziļināties form0. 1098 01:05:17,990 --> 01:05:20,820 Tas bija ugliest iespējamā forma ka es varētu nākt klajā ar, 1099 01:05:20,820 --> 01:05:23,290 un ļaujiet man tikai parādīs, ko tas izskatās pārlūkprogrammā. 1100 01:05:23,290 --> 01:05:28,960 >> Ļaujiet man iet localhost / Veidlapas, un tas ir form0. 1101 01:05:28,960 --> 01:05:33,400 Tas ir super neglīts HTML forma, kas ir dažus laukus uz e-pastu, par paroli, 1102 01:05:33,400 --> 01:05:37,190 parole, un pēc tam nedaudz rūtiņu piekrist dažiem nosacījumiem. 1103 01:05:37,190 --> 01:05:41,350 Nozvejas ir, ja es apmeklēt šo veidlapu, un es nevēlos, lai dotu jums savu e-pasta adresi, 1104 01:05:41,350 --> 01:05:44,730 Es nevēlos piekrist noteikumiem un nosacījumiem varbūt, es varētu noklikšķināt Reģistrēties 1105 01:05:44,730 --> 01:05:46,920 un tas ļauj man cauri vienalga. 1106 01:05:46,920 --> 01:05:50,800 Tas notiek iesniegt stulbu PHP failu ar nosaukumu dump.php. 1107 01:05:50,800 --> 01:05:58,420 Visiem tas ir izdrukāt saturu tikai diagnostikas nolūkos _GET $. 1108 01:05:58,420 --> 01:06:01,580 Tas bija tas, ko iesniedza lietotājs tikai tagad. 1109 01:06:01,580 --> 01:06:05,010 Bet pieņemsim, ka mēs vēlamies, lai apstiprinātu lietotāja veidlapu iesniegšanas. 1110 01:06:05,010 --> 01:06:06,530 Ļaujiet man iet versijas 1. 1111 01:06:06,530 --> 01:06:11,420 Tas ir form1.html. Tas izskatās estētiski tikpat slikti, bet paziņojums, kā iedomātā tas ir. 1112 01:06:11,420 --> 01:06:15,450 Ja es noklikšķiniet reģistrs nesadarbojoties, man kliedza pie. 1113 01:06:15,450 --> 01:06:17,320 "Jums ir sniegt savu e-pasta adresi." 1114 01:06:17,320 --> 01:06:21,670 Labi. Tāpēc ļaujiet man mēģināt to. Tā malan@harvard.edu. Man nav nepieciešama parole. 1115 01:06:21,670 --> 01:06:25,100 Reģistrēties. "Jums ir jānorāda parole." Labi. 1116 01:06:25,100 --> 01:06:28,470 Tāpēc es sniegs paroli Crimson. Reģistrēties. 1117 01:06:28,470 --> 01:06:32,300 "Paroles nesakrīt." Man ir tagad rakstīt sārtināt šeit. 1118 01:06:32,300 --> 01:06:35,710 Es nejauši pārbauda to. Reģistrēties. 1119 01:06:35,710 --> 01:06:39,860 "Jums jāpiekrīt noteikumiem un nosacījumiem." Labi. Piekrītu tur. Reģistrēties. 1120 01:06:39,860 --> 01:06:43,700 Un tagad tā rāda man diagnostikas produkciju tur. 1121 01:06:43,700 --> 01:06:45,630 >> Tātad, ko tikko notika? 1122 01:06:45,630 --> 01:06:48,330 Mēs esam bija šī spēja, lai apstiprinātu veidlapu iesniegumus. 1123 01:06:48,330 --> 01:06:51,420 Patiesībā, ja jūs pikējošais 7 PSET, tur atvainoties funkcija 1124 01:06:51,420 --> 01:06:54,620 kas padara to diezgan viegli bļaut lietotājs ar ziņu uz ekrāna. 1125 01:06:54,620 --> 01:06:57,580 Es esmu, izmantojot nedaudz atšķirīgu mehānismu, brīdinājuma funkciju, 1126 01:06:57,580 --> 01:07:03,690 kas nav funkcija, kas ir pasmaidīja pēc, jo tas padara ļoti neglīts lietotāja ziņas. 1127 01:07:03,690 --> 01:07:05,710 Bet pieņemsim redzēt, ko es daru šeit. 1128 01:07:05,710 --> 01:07:09,620 Tas ir form1.html, un ievēroju, ka man ir daži diezgan pazīstams sintaksi: 1129 01:07:09,620 --> 01:07:12,920 ķermeņa tag, forma tag, darbība atribūts, metode atribūts. 1130 01:07:12,920 --> 01:07:17,050 Bet pamanīt es esmu devis manu veido unikālu ID ērtības. 1131 01:07:17,050 --> 01:07:19,190 Tad man e-pasta lauks, kura tips ir teksts, 1132 01:07:19,190 --> 01:07:23,780 paroles lauks, kura tips ir parole, apstiprinājums joma, kuras tips ir parole, 1133 01:07:23,780 --> 01:07:28,070 un tad rūtiņu, kura vārds ir vienošanās nekā šeit, veids ir rūtiņu. 1134 01:07:28,070 --> 01:07:30,380 Un tad es esam ieguvuši iesniegt pogu. 1135 01:07:30,380 --> 01:07:33,050 Bet paziņojums augšpusē, ko vēl man ir. 1136 01:07:33,050 --> 01:07:35,810 Pirmkārt, tur ir vēl viens no skriptu tag izmantošanu. 1137 01:07:35,810 --> 01:07:40,520 Ja jums ir daži JavaScript kodu citu failu, tāpat kā ar CSS jūs varat iekļaut to. 1138 01:07:40,520 --> 01:07:44,530 Un jūs, ka ar skriptu avotu, un tad pamanīsiet es esmu savieno šķietami 1139 01:07:44,530 --> 01:07:50,349 līdz googleapis.com uz ļoti ilgu ceļu, bet faila nosaukums beidzas jquery.min 1140 01:07:50,349 --> 01:07:52,420 par minimumu JS.. 1141 01:07:52,420 --> 01:07:55,969 jQuery ir super populāra bibliotēka JavaScript, kas tikai padara JavaScript 1142 01:07:55,969 --> 01:07:58,230 visi vairāk lietotājam draudzīgs, lai izmantotu. 1143 01:07:58,230 --> 01:08:00,610 Tas ir faktiski kļūst de facto standartu. 1144 01:08:00,610 --> 01:08:04,090 Tātad, pat ja tas, ko jūs gatavojaties redzēt nav tīrs JavaScript per se, 1145 01:08:04,090 --> 01:08:09,340 tas ir uz augšu JavaScript līdzīgi kā CS50 bibliotēka bibliotēka ir slānis 1146 01:08:09,340 --> 01:08:13,670 virsū zema līmeņa C kodu, realitāte ir gandrīz ikvienam internetā to izmanto. 1147 01:08:13,670 --> 01:08:18,030 Tātad tie nav mācību riteņiem. Tas ir tikai labāko praksi šajās dienās. 1148 01:08:18,030 --> 01:08:22,830 Tagad paziņojums zemāk, ka ir mana skriptu tag, un paziņojums, ko es esmu darījusi šeit. 1149 01:08:22,830 --> 01:08:27,450 Izrādās, ka jQuery dara kaut nedaudz iedomātā. 1150 01:08:27,450 --> 01:08:29,660 JavaScript ir dolāra zīmes, bet tie ir bezjēdzīga. 1151 01:08:29,660 --> 01:08:32,870 >> Tie ir, piemēram, vēstules vai B vai C. 1152 01:08:32,870 --> 01:08:36,670 jQuery ir vienkārši pieņēma Konvenciju vai kārtot kas apgalvo, ka to 1153 01:08:36,670 --> 01:08:40,280 ka $ būs viņu īpašs simbols. 1154 01:08:40,280 --> 01:08:44,950 Tā tiklīdz jūs ielādēt šo globālo JavaScript failu šeit ar skriptu tag, 1155 01:08:44,950 --> 01:08:49,080 jums ir piekļuve īpašu globālā mainīgā ka sauc $. 1156 01:08:49,080 --> 01:08:53,009 Tas ir vairāk pareizi sauc jQuery, bet tas neizskatās gandrīz tikpat seksīgs kā $. 1157 01:08:53,009 --> 01:08:56,250 Bet $ nav īpaša nozīme. PHP tā bija īpaša nozīme. 1158 01:08:56,250 --> 01:08:58,440 Jums bija, lai to priekšā mainīgo. 1159 01:08:58,440 --> 01:09:01,670 Tas ir tikai seksīgs lieta, ka viņi ieguva. 1160 01:09:01,670 --> 01:09:03,389 Kas šeit notiek? 1161 01:09:03,389 --> 01:09:08,830 Paziņojums Es esmu iet uz jQuery funkcijai manu globālo mainīgo dokumentu 1162 01:09:08,830 --> 01:09:10,860 un tad es esmu aicinot. gatavs. 1163 01:09:10,860 --> 01:09:15,480 Ko jQuery būtībā tas ir tas ļauj jums veikt dažas vaniļas JavaScript lietas 1164 01:09:15,480 --> 01:09:17,889 tāpat dokumenta objektu, logu objekts, 1165 01:09:17,889 --> 01:09:20,790 un, ja jūs iet to uz jQuery funkcija - 1166 01:09:20,790 --> 01:09:24,429 un atkal, lai būtu skaidrs, tas ir funkcija sauc jQuery - 1167 01:09:24,429 --> 01:09:28,240 ko tas ir tas atgriežas pie jums īpašu versiju dokumenta 1168 01:09:28,240 --> 01:09:30,700 kas ir vairāk funkciju saistīti ar to. 1169 01:09:30,700 --> 01:09:34,760 Tātad neapstrādātā JavaScript nav gatava funkcija, 1170 01:09:34,760 --> 01:09:37,810 bet, ja jums iet dokumentu uz jQuery funkcija, pirmkārt, 1171 01:09:37,810 --> 01:09:40,960 tas atgriežas pie jums īpašu dokumenta versiju objekta 1172 01:09:40,960 --> 01:09:43,030 kas ir vairāk iedomātā iezīmes. 1173 01:09:43,030 --> 01:09:48,230 Un tas ir iemesls, kāpēc cilvēki patīk. Tas tikai padara lietas vieglāk darīt, jo mēs esam par to redzēt. 1174 01:09:48,230 --> 01:09:49,820 Tātad, ko tas no koda līnijas nozīmē? 1175 01:09:49,820 --> 01:09:52,690 Šī koda līnija šeit ir, ja dokuments ir gatavs - 1176 01:09:52,690 --> 01:09:56,830 citiem vārdiem sakot, tiklīdz pārlūkprogramma tiek darīts lasot šo failu augšas uz leju - 1177 01:09:56,830 --> 01:09:59,200 iet uz priekšu un izpildīt šādu funkciju. 1178 01:09:59,200 --> 01:10:03,540 Kas īsti interesanti JavaScript - un PHP ir tas, kā arī - 1179 01:10:03,540 --> 01:10:05,450 ir anonīma funkcijas. 1180 01:10:05,450 --> 01:10:10,560 Javascript jūs varat paziņot funkcijas, kurām nav nosaukuma, bet tie ir ķermenis. 1181 01:10:10,560 --> 01:10:12,570 Pamanīt to, kas notiek šeit. 1182 01:10:12,570 --> 01:10:16,220 >> Tas ir funkcija sauc gatavs, un tas nozīmē tikai to šādi 1183 01:10:16,220 --> 01:10:20,220 kad viss mājas lapa ir gatava, kad tas viss tika lasa no servera. 1184 01:10:20,220 --> 01:10:23,090 Ko jūs vēlaties darīt? Es gribu izpildīt rieciens kodu. 1185 01:10:23,090 --> 01:10:27,120 Ievērojiet, ka mēs nevēlamies izpildīt šo kodu uzreiz. 1186 01:10:27,120 --> 01:10:34,350 Ja es izlaist šo, tas nozīmētu uzreiz sākt izpildot šos rindas kodu. 1187 01:10:34,350 --> 01:10:39,040 Bet fakts, ka es saku nē, nē, nē, ietiniet to anonīmi funkcija, kā šis 1188 01:10:39,040 --> 01:10:43,000 līdzeklis nav izpildīt to vēl, to sauc beidzot. 1189 01:10:43,000 --> 01:10:45,430 Mēs redzējām šo brīdi pirms mūsu iepriekšējās formas piemērs. 1190 01:10:45,430 --> 01:10:49,990 Ko funkcija vai mēs saucam beidzot, 500 milisekunžu vēlāk? Mirgot. 1191 01:10:49,990 --> 01:10:51,480 Tāpēc pati ideja. 1192 01:10:51,480 --> 01:10:53,950 Atkal, pat ja tas izskatās mazliet dīvaini, lietojiet tikai tagad uz ticību 1193 01:10:53,950 --> 01:10:57,060 ka deklarēt anonīmu funkciju, kas sauc beidzot, 1194 01:10:57,060 --> 01:11:01,720 Jūs vienkārši rakstīt funkcija () { 1195 01:11:01,720 --> 01:11:05,380 Tātad, ko kods mēs gatavojamies izpildīt beidzot? Šādi. 1196 01:11:05,380 --> 01:11:10,460 Arī tas izskatās nedaudz jauns, bet tas nozīmē, šeit ir jQuery funkcija, 1197 01:11:10,460 --> 01:11:13,430 un tagad tas ir īsceļu. 1198 01:11:13,430 --> 01:11:18,830 Šis HTML fragmentu apakšā ekrāna, protams, ir daži koku pārstāvību. 1199 01:11:18,830 --> 01:11:21,730 Tas nav tas. Šī lapa ir daudz interesantāk nekā šī sveiki, pasaules piemērs. 1200 01:11:21,730 --> 01:11:25,210 Bet tur ir dažas koks, kas atbilst šo HTML. 1201 01:11:25,210 --> 01:11:28,910 Tas būtu sāpes kaklā, ir jāīsteno sava veida rekursīvas funkcijas 1202 01:11:28,910 --> 01:11:34,380 lai sāktu pie saknes mezgla un pēc tam atrast mezglu, kura ID ir reģistrācija. 1203 01:11:34,380 --> 01:11:38,340 Tātad, ko jQuery padara super viegli mums ir burtiski šo. 1204 01:11:38,340 --> 01:11:43,000 Iet uz priekšu un iegūt mani neatkarīgi div vai jebkurā formā, neatkarīgi HTML elements 1205 01:11:43,000 --> 01:11:45,820 ir ID reģistrācijas. 1206 01:11:45,820 --> 01:11:52,440 Tas ir līdzvērtīgi document.getElementById ("reģistrācija"). 1207 01:11:52,440 --> 01:11:54,170 >> Kāpēc cilvēkiem patīk jQuery? 1208 01:11:54,170 --> 01:12:00,110 Jo tas ir īsāks rakstīt. Bet tas viss tā ir. Tā ir pati ideja. 1209 01:12:00,110 --> 01:12:02,630 Atnesiet man tag kura ID ir reģistrācija. 1210 01:12:02,630 --> 01:12:06,300 Un, kad tas tagu, kas notiek, ir forma, ir iesniegts, 1211 01:12:06,300 --> 01:12:08,300 iet uz priekšu un izpildīt šo kodu. 1212 01:12:08,300 --> 01:12:11,320 Tāpēc pieņemsim viens apskatīt tagad, kā mēs darām formu apstiprināšanu. 1213 01:12:11,320 --> 01:12:15,950 Sintakse Jāatzīst noslēpumains sākumā, bet kas notiek? 1214 01:12:15,950 --> 01:12:21,050 Ja šī koda līnija ir taisnība, es esmu gatavojas kliegt lai lietotājs varētu nodrošināt savu e-pasta adresi. 1215 01:12:21,050 --> 01:12:22,970 Kas tad ir šī koda līnijas? 1216 01:12:22,970 --> 01:12:25,560 $ Nozīmē jQuery. Tagad nepamanīt. 1217 01:12:25,560 --> 01:12:27,920 Tas ir veids kā CSS. 1218 01:12:27,920 --> 01:12:33,370 Ja esat ienira CSS vēl, jūs zināt, ka tas nozīmē elements, kura ID ir reģistrācija. 1219 01:12:33,370 --> 01:12:39,840 Telpa ir atrast bērnu vai reģistrācijas pēcnācējs, kura nosaukums ir ieejas. 1220 01:12:39,840 --> 01:12:42,970 Un tad tas kvadrātiekavās lieta ir mazliet filtrs. 1221 01:12:42,970 --> 01:12:47,010 Un pat ja tas izskatās noslēpumains, tas tikai nozīmē, dodieties uz veidlapas, kuras ID ir reģistrācija, 1222 01:12:47,010 --> 01:12:51,230 dodieties uz ieejas elementu iekšpusē, kas, kura vārds ir e-pastu, 1223 01:12:51,230 --> 01:12:55,440 un pēc tam saņemt savu vērtību, neatkarīgi no tā vērtības notiek, ir - 1224 01:12:55,440 --> 01:12:59,670 asdf ja tas ir viss, es drukāti vai malan@harvard.edu ja tas, ko es drukāti. 1225 01:12:59,670 --> 01:13:05,250 Tātad, ja veidlapas pasta jomā == nekas vērtība, bļaut pie lietotāja. 1226 01:13:05,250 --> 01:13:09,700 Cits ja no paroles lauka vērtība == nekas, bļaut uz lietotāju. 1227 01:13:09,700 --> 01:13:19,520 >> Cits ja paroles laukā vērtība nav vienāda vērtība apstiprinājuma jomā, 1228 01:13:19,520 --> 01:13:22,850 kas bija cits elements, bļaut uz lietotāju. 1229 01:13:22,850 --> 01:13:25,680 Un tad visbeidzot - un tas viens arī ir dažas jaunas sintaksi savu, 1230 01:13:25,680 --> 01:13:29,270 bet tad, kad jūs esat redzējuši, tas ir vismaz nedaudz saprātīgāks - 1231 01:13:29,270 --> 01:13:34,060 cits ja forma, kuras ID ir reģistrācija ir ieejas elements, kura nosaukums ir līgums 1232 01:13:34,060 --> 01:13:39,720 un tas tiek pārbaudīts, iet uz priekšu un kliegt pie lietotāja. 1233 01:13:39,720 --> 01:13:42,520 Tāpēc es pilnīgi atzīstu, tas ir pilnīgi milzīgs pie pirmā acu uzmetiena. 1234 01:13:42,520 --> 01:13:46,530 Tas ir daudz jaunu sintaksi. Bet visi jQuery šādi šāda veida modeļiem. 1235 01:13:46,530 --> 01:13:49,880 Un godīgi, es pat nezināju, tas pastāvēja līdz pāris minūtēm. 1236 01:13:49,880 --> 01:13:53,640 Es googled, "Kā jūs pārbaudīt, ja izvēles rūtiņa ir pārbaudīta jQuery?" 1237 01:13:53,640 --> 01:13:55,680 un tas ir sintakse, jo tur ir dažādi veidi, kā to dara 1238 01:13:55,680 --> 01:13:58,010 ar faktisko neapstrādātas JavaScript kodu. 1239 01:13:58,010 --> 01:14:01,030 Tā kā ļoti pirmajā lapā Problem komplekts 7 uzsver, 1240 01:14:01,030 --> 01:14:04,500 7 PSET ir ļoti daudz vingrinājumu bootstrapping sevi 1241 01:14:04,500 --> 01:14:08,650 kur mēs esam ja, cerams, konceptuālo pamatu, ar kuru risināt PSET. 1242 01:14:08,650 --> 01:14:12,280 >> Bet kā tas bieži notiek ar web dizainu, tas ir atkarīgs no jums tiešām kule apkārt, 1243 01:14:12,280 --> 01:14:16,680 iekļaut fragmentus no koda un piemērus no Web tik ilgi, cik jūs citēt tos 1244 01:14:16,680 --> 01:14:17,960 vienu par šo pirmās lapas noteikumiem, 1245 01:14:17,960 --> 01:14:21,460 un saprast, ka mācīšanās HTML, CSS, JavaScript un pat SQL 1246 01:14:21,460 --> 01:14:26,020 ir tiešām domāts, lai būtu šo pie-mājās izmantot kā mēs sākt veikt šos mācību riteņiem off. 1247 01:14:26,020 --> 01:14:29,150 Un realizēt arī tur ir tik daudz vairāk lietas jūs varat darīt ar pārlūkprogrammu. 1248 01:14:29,150 --> 01:14:33,790 Iekšpusē lielākā daļa no šiem elementiem ir citas lietas, ko sauc notikumu apstrādes. 1249 01:14:33,790 --> 01:14:37,140 Un, pat ja mēs vienkārši paskatījās tiem sauc onsubmit un onready, 1250 01:14:37,140 --> 01:14:40,310 Jūs varat darīt lietas, piemēram onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 piemēram, kad lietotājs pieskaras taustiņu, jūs varat klausīties par to un taustiņu uz augšu. 1252 01:14:43,410 --> 01:14:45,940 Gmail ir īsinājumtaustiņus. 1253 01:14:45,940 --> 01:14:49,490 Kā Google īstenot īsinājumtaustiņi kā C sacerēt? 1254 01:14:49,490 --> 01:14:54,120 Klausīdamies tos notikumus, jo viņi sauc, piemēram onkeypress vai onkeyup un onkeydown. 1255 01:14:54,120 --> 01:14:56,360 Ja esat kādreiz hovered peles kursoru kādu izvēlnes opciju 1256 01:14:56,360 --> 01:15:00,180 un pēkšņi, voila, izvēlne vai grafika maina krāsu, 1257 01:15:00,180 --> 01:15:01,920 kā viņi dara? 1258 01:15:01,920 --> 01:15:06,940 Nevis klausīties onready vai onsubmit, jūs klausīties onMouseOver vai onMouseOut. 1259 01:15:06,940 --> 01:15:10,920 >> Tātad īsumā, ar šiem ļoti vienkāršiem pamati, ka mēs esam sākuši saskrāpēt virsmu šodien 1260 01:15:10,920 --> 01:15:13,940 un mēs nirt tālāk trešdien, jums ir, arvien vairāk, 1261 01:15:13,940 --> 01:15:17,530 jauda īstenot veidu lietas, kas jūs jau esat iepazinušies ar. 1262 01:15:17,530 --> 01:15:21,620 Tāpēc pieņemsim beigas tur, un mēs turpināsim šo trešdien. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]