1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN Schmid: Hello everybody. 3 00:00:09,710 --> 00:00:12,640 Mirë se vini në seminarin CS50 on Node.js. 4 00:00:12,640 --> 00:00:13,955 Emri im është Kevin. 5 00:00:13,955 --> 00:00:15,580 Unë jam një TF CS50. 6 00:00:15,580 --> 00:00:17,650 Dhe unë jam lloj si gëzuar me të vërtetë në lidhje me këtë seminar. 7 00:00:17,650 --> 00:00:20,430 Unë mendoj se Node.js është shumë i ftohtë. 8 00:00:20,430 --> 00:00:24,200 Unë shpresoj se ky seminar mund të përdoret si një të mirë, I guess, trampolinë për 9 00:00:24,200 --> 00:00:26,380 disa nga projektet tuaja përfundimtar nëse ju jeni të interesuar në përdorimin e 10 00:00:26,380 --> 00:00:27,630 diçka si Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Ne do lloj fillojnë seminarin jashtë nga vetëm duke folur për një grimë të vogël të 13 00:00:33,320 --> 00:00:36,970 lloj scalability sfond perspektivat e Node.js, dhe pastaj 14 00:00:36,970 --> 00:00:39,240 ne do të shkojë në disa shembuj të kodit. 15 00:00:39,240 --> 00:00:42,340 Dhe unë do të kemi kodin në një faqe interneti, dhe ju mund të shikoni në kodin. 16 00:00:42,340 --> 00:00:45,475 Dhe pas seminarit, do ta lloj të flasim se si ju mund të vendosni Node.js 17 00:00:45,475 --> 00:00:48,220 në kompjuterin tuaj. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Pra, le të ketë filluar. 20 00:00:49,760 --> 00:00:53,700 Kështu që unë mendoj unë vetëm dua të flas për serverat e web, me të vërtetë, së pari. 21 00:00:53,700 --> 00:00:59,730 Dhe për të filluar këtë diskutim, unë në thelb kanë një diagram që është nga 22 00:00:59,730 --> 00:01:04,269 teksti i përdorur për CS61, të cilat në thelb tregon ndërveprimin 23 00:01:04,269 --> 00:01:08,510 në mes të një procesi të klientit, si web tuaj Shfletuesi apo si klientin tuaj qëllimi apo 24 00:01:08,510 --> 00:01:11,340 diçka të tillë, dhe një web server. 25 00:01:11,340 --> 00:01:15,150 Pra, ky lloj i duket e ngjashme me foto që ke parë në leksionin mbi 26 00:01:15,150 --> 00:01:19,270 E mërkurë, ku në thelb ne kemi disa Procesi klient si Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> Dhe pastaj hap një është klient i dërgon një kërkesë. 28 00:01:22,980 --> 00:01:27,510 Kështu që mund të jetë diçka si dhe le të vizitë, unë nuk e di, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Pra, ne të nxjerrë atë kërkesë. 30 00:01:29,320 --> 00:01:34,280 Dhe ka dikush të kujtojmë emrin e protokoll që specifikon se si që 31 00:01:34,280 --> 00:01:35,610 Kërkesa duhet të jetë e strukturuar? 32 00:01:35,610 --> 00:01:36,382 Yep. 33 00:01:36,382 --> 00:01:37,650 >> Audienca: [padëgjueshme]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN Schmid: Pikërisht. 35 00:01:38,150 --> 00:01:40,100 Pra, kjo është si HTTP, e drejtë? 36 00:01:40,100 --> 00:01:44,720 Pra, në thelb specifikimet për mënyrën se si se kërkesa duhet të vërtetë të jenë të përcaktuara 37 00:01:44,720 --> 00:01:47,450 jashtë, sepse në fund të ditës, se kërkesa është e vërtetë vetëm si një 38 00:01:47,450 --> 00:01:50,240 string që në thelb thotë se unë dua këtë. 39 00:01:50,240 --> 00:01:53,580 Dhe specifikimi për këtë është HTTP. 40 00:01:53,580 --> 00:01:55,270 Pra, kjo është si një protokoll. 41 00:01:55,270 --> 00:01:57,920 >> Pra, atëherë server merr që kërkesa. 42 00:01:57,920 --> 00:02:01,610 Pra, ju djema keni një web server të instaluar në aplikim CS50. 43 00:02:01,610 --> 00:02:02,460 Kjo është Apache. 44 00:02:02,460 --> 00:02:06,230 Dhe këtë javë, kur ju punoni në problemin vendosur shtatë, ju do të vërtetë të punojnë 45 00:02:06,230 --> 00:02:08,160 me këtë web server. 46 00:02:08,160 --> 00:02:12,380 Pra server merr atë kërkesë, dhe atëherë ajo duhet të lloj zeroja saj 47 00:02:12,380 --> 00:02:15,090 kokë dhe thonë se si edhe ajo që të bëj me këtë? 48 00:02:15,090 --> 00:02:20,060 >> Pra, bazuar në atë që vendos të bëjë, atëherë ajo mund të duhet të kontaktoni ndonjë lloj 49 00:02:20,060 --> 00:02:20,730 e burimeve. 50 00:02:20,730 --> 00:02:23,700 Dhe kjo mund të jetë një burim i shumë gjëra të ndryshme. 51 00:02:23,700 --> 00:02:26,810 Për një, ajo mund të jetë vetëm si një fotografi statike HTML. 52 00:02:26,810 --> 00:02:29,820 Pra, ajo mund të jetë vetëm si një HTML që është si për 53 00:02:29,820 --> 00:02:31,100 faqen tuaj te internetit personale. 54 00:02:31,100 --> 00:02:35,360 Kjo mund të jetë një file statike si një imazh apo si një film që ju keni. 55 00:02:35,360 --> 00:02:37,660 Ajo mund edhe të ketë për të folur për një lloj të bazës së të dhënave 56 00:02:37,660 --> 00:02:39,530 si një bazë të dhënash MySQL. 57 00:02:39,530 --> 00:02:43,910 Kështu që nuk ka gjithmonë duhet të komunikojnë me një burim, por në 58 00:02:43,910 --> 00:02:45,700 disa raste, ajo mund të. 59 00:02:45,700 --> 00:02:47,800 >> Kështu, pra, atë që do të bëjë pas kësaj është se do të 60 00:02:47,800 --> 00:02:49,430 dërguar përsëri përgjigje. 61 00:02:49,430 --> 00:02:53,130 Dhe përgjigja për këtë është specifikuar edhe nga HTTP. 62 00:02:53,130 --> 00:02:54,830 Pra, atëherë klienti mund të marrë atë. 63 00:02:54,830 --> 00:02:56,740 Ajo mund ta shqyej dhe ta përpunojë atë. 64 00:02:56,740 --> 00:03:00,900 Dhe pastaj ju merrni një web faqe si Google apo CS50.net ose 65 00:03:00,900 --> 00:03:02,240 çdo gjë që shkoi në. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Pra, kjo është bashkëveprimi themelor që ne jemi duke shkuar për të që kanë të bëjnë me të. 68 00:03:06,080 --> 00:03:08,770 Dhe ne jemi shumë e shumë do të jetë duke u fokusuar në këtë pjesë të 69 00:03:08,770 --> 00:03:10,640 ndërveprim, server. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 Ftohtë. 72 00:03:12,210 --> 00:03:15,500 Çdokush keni ndonjë pyetje deri më tani? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Pra, siç kemi thënë, web server merr kjo HTTP kërkesë dhe më pas lëshon këtë 75 00:03:22,430 --> 00:03:24,760 HTTP përgjigje. 76 00:03:24,760 --> 00:03:29,100 Dhe si kemi biseduar për para, Aplikim CS50 web server është Apache. 77 00:03:29,100 --> 00:03:32,490 Pra, kur ju djema të punuar në P të vendosur shtatë, ju jeni do të jetë duke punuar me 78 00:03:32,490 --> 00:03:34,120 Web server Apache. 79 00:03:34,120 --> 00:03:37,890 Ju kurrë nuk do të duhet të vërtetë punojnë me Apache direkt shumë. 80 00:03:37,890 --> 00:03:41,920 Ju lloj konfigurosh Apache pak kur ju specifikoni pret virtuale apo 81 00:03:41,920 --> 00:03:44,970 pret v, dhe ne do të merrni të cilat në pak. 82 00:03:44,970 --> 00:03:50,620 >> Por në thelb, web server Apache ngritur për të punuar me lloj të PHP 83 00:03:50,620 --> 00:03:51,730 i dalë nga kutia. 84 00:03:51,730 --> 00:03:56,170 Pra, çfarë ndodh me të vërtetë është kur ju shkoni në një nga faqet e internetit tuaj si, të themi, 85 00:03:56,170 --> 00:04:00,360 host lokale index.php plagë apo diçka, është shfletuesi juaj dërgon që 86 00:04:00,360 --> 00:04:04,330 kërkesë, dhe pastaj Apache është ulur atje dhe shifra se të bëjë me të. 87 00:04:04,330 --> 00:04:08,840 Dhe veprimi është për të ekzekutuar se kodi në index.php dhe 88 00:04:08,840 --> 00:04:11,330 atëherë dërgoni atë përsëri. 89 00:04:11,330 --> 00:04:15,640 Pra, nuk është se. 90 00:04:15,640 --> 00:04:16,980 Pra, ne lloj biseduar për këtë. 91 00:04:16,980 --> 00:04:21,990 Pra, ajo mund të shërbejë vetëm një fotografi statike ose drejtuar disa kodin PHP dhe pastaj çështja 92 00:04:21,990 --> 00:04:23,510 përgjigje. 93 00:04:23,510 --> 00:04:27,670 >> Kështu, pra, një pyetje e zakonshme që mund të vijë up është i mirë, si nuk kemi me të vërtetë të merren 94 00:04:27,670 --> 00:04:31,750 me ka përdoruesve të shumta në të njëjtën kohë? 95 00:04:31,750 --> 00:04:36,930 Pra, imagjinoni nëse ju jeni duke shkruar një web server, nëse keni pasur një web server që 96 00:04:36,930 --> 00:04:39,900 ju ishin duke u përpjekur për të shkruar në diçka si C ose diçka të tillë, 97 00:04:39,900 --> 00:04:45,150 në thelb ju mund të mendoni se si ka mund të jetë një lloj kodi që 98 00:04:45,150 --> 00:04:49,330 do të marrë kërkesën, por pastaj ajo ka për të bërë gjithë këtë punë në të. 99 00:04:49,330 --> 00:04:53,060 Ajo mund të ketë për të, për shembull, kontaktoni bazës së të dhënave ose diçka të tillë. 100 00:04:53,060 --> 00:04:53,300 E drejtë? 101 00:04:53,300 --> 00:04:56,010 Dhe atëherë ajo do të bëjë atë lloj të përpunimit dhe pastaj 102 00:04:56,010 --> 00:04:57,060 kthyer përgjigje. 103 00:04:57,060 --> 00:04:58,950 Pra, kjo është si të lartë Pamje e përgjithshme e nivelit. 104 00:04:58,950 --> 00:05:04,210 >> Por nuk është menjëherë e qartë se si ju mund ta bëjë këtë në mënyrë që dy njerëz apo 105 00:05:04,210 --> 00:05:09,040 edhe 1,000 njerëz do të mund të punojë me tuaj Mjete server në të njëjtën kohë. 106 00:05:09,040 --> 00:05:14,880 Pra, zgjidhja që Apache përdor quhet temat apo proceset. 107 00:05:14,880 --> 00:05:16,770 Kështu që ju mund të keni dëgjuar këto terma para. 108 00:05:16,770 --> 00:05:22,190 Kjo është në rregull në qoftë se ju nuk e keni, por thjesht mendoj në lidhje me temat dhe i proceseve si mënyra për 109 00:05:22,190 --> 00:05:26,290 një sistem operativ apo një program i përdoruesit ose diçka të tillë ose një web server 110 00:05:26,290 --> 00:05:28,810 për lloj të ekzekutuar të shumta gjëra në të njëjtën kohë. 111 00:05:28,810 --> 00:05:31,760 Kështu që ju mund të keni dëgjuar termin si temat e ekzekutimit. 112 00:05:31,760 --> 00:05:34,140 Pra, kjo është një lloj si ju jeni lloj multitasking. 113 00:05:34,140 --> 00:05:37,710 >> Dhe në qoftë se ju keni parë në kutinë e juaj laptop, ose diçka të tillë, 114 00:05:37,710 --> 00:05:43,040 multicore, çfarë mund të bëni është që ju mund të drejtuar dy temat e ndryshme mbi të ndryshme 115 00:05:43,040 --> 00:05:46,700 pjesët e CPU mënyrë që ata mund në të vërtetë ndodhë në të njëjtën kohë. 116 00:05:46,700 --> 00:05:48,100 Pra, kjo është me të vërtetë e fuqishme. 117 00:05:48,100 --> 00:05:52,270 Dhe kjo është lloj i Apache-së zgjidhje për këtë problem. 118 00:05:52,270 --> 00:05:57,900 >> Pra, a ka një lloj si çdo çështje me këtë qasje pse? 119 00:05:57,900 --> 00:05:59,870 Kështu që unë mendoj unë lloj i shkroi aty. 120 00:05:59,870 --> 00:06:03,440 Por të dy ata lloj përdorin një shumë të kujtesës. 121 00:06:03,440 --> 00:06:07,490 Është shumë e shtrenjtë për të krijuar një fije apo një proces. 122 00:06:07,490 --> 00:06:11,750 >> Dhe pjesë e arsyetimit është se vetëm si kur ju jeni drejtimin e një program C 123 00:06:11,750 --> 00:06:15,090 si kryesor tuaj dhe pastaj se thirrjet një tjetër funksion, që ka 124 00:06:15,090 --> 00:06:16,520 një lloj rafte. 125 00:06:16,520 --> 00:06:19,910 Pra temat gjithashtu kërkojnë një krejtësisht rafte të ndara të cilat 126 00:06:19,910 --> 00:06:21,220 mund të jetë mjaft i madh. 127 00:06:21,220 --> 00:06:25,170 Dhe në qoftë se ju mund të imagjinoni që ka ton përdorues në web faqen tuaj, ju do të keni 128 00:06:25,170 --> 00:06:26,280 shumë temat e ndryshme. 129 00:06:26,280 --> 00:06:28,230 Kjo është një shumë e kollonat të menaxhuar dhe për të ruajtur. 130 00:06:28,230 --> 00:06:31,280 Pra, është e konsumit të madh kujtesës. 131 00:06:31,280 --> 00:06:35,650 >> Dhe pastaj, gjithashtu, le të thonë se ju keni vetem një CPU, ose le të thonë se ju keni 132 00:06:35,650 --> 00:06:38,460 më shumë temat e se keni ato multicores. 133 00:06:38,460 --> 00:06:38,730 E drejtë? 134 00:06:38,730 --> 00:06:43,280 Pra, le të thonë se ju kishte 10 temat dhe ju vetëm kishte pesë CPU. 135 00:06:43,280 --> 00:06:46,260 Ju lloj keni për të bërë këtë gjë, ku ju kaloni në mes të rrymës 136 00:06:46,260 --> 00:06:49,090 ai që vrapon për shkak se ju nuk mund të kandidojë të gjitha 10 në një herë. 137 00:06:49,090 --> 00:06:50,980 Dhe kjo është quajtur një kaloni kontekst. 138 00:06:50,980 --> 00:06:54,260 Dhe ky term në fakt ka disa kontekste të ndryshme, por le të vetëm 139 00:06:54,260 --> 00:06:56,620 mendojnë për atë si kaloni midis dy fije. 140 00:06:56,620 --> 00:06:59,730 Kjo mund të jetë goxha i shtrenjtë për shkak se në thelb ajo që ju duhet të bëni është që ju 141 00:06:59,730 --> 00:07:03,340 duhet për të ndaluar atë që jeni duke bërë, të shpëtuar Gjendja e atë fije të rrjedhshëm, dhe 142 00:07:03,340 --> 00:07:05,440 pastaj kaloni diku tjetër. 143 00:07:05,440 --> 00:07:09,420 >> Pra, ka të gjithë llojet e shohin Motivimi i pse temat dhe 144 00:07:09,420 --> 00:07:12,030 proceset mund të jetë pak i rëndë? 145 00:07:12,030 --> 00:07:13,840 Dhe a keni pasur një pyetje? 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 Ftohtë. 148 00:07:15,070 --> 00:07:18,090 Çdokush keni ndonjë pyetje? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Pra, në qoftë se ne bëjmë një hap prapa për një të dytë, ka lloj si një 151 00:07:26,720 --> 00:07:30,350 vëzhgimi që ne mund të bëjë në lidhje me një shumë e aplikacioneve web. 152 00:07:30,350 --> 00:07:34,810 Dhe kjo është me të vërtetë se shumë prej tyre në të vërtetë nuk e bëjmë këtë shumë më e dobishme 153 00:07:34,810 --> 00:07:37,140 punojnë brenda një fije. 154 00:07:37,140 --> 00:07:41,170 Pra, ka filluar më askënd P vendosur shtatë në të gjitha? 155 00:07:41,170 --> 00:07:45,650 Pra, ju doni që të përshkruani ndoshta disa pjesë? 156 00:07:45,650 --> 00:07:47,850 A keni punuar në hyrje ose diçka të tillë? 157 00:07:47,850 --> 00:07:49,330 >> Audienca: Jo. 158 00:07:49,330 --> 00:07:49,780 >> KEVIN Schmid: OK. 159 00:07:49,780 --> 00:07:50,150 S'ka gjë 160 00:07:50,150 --> 00:07:50,900 Më vjen keq. 161 00:07:50,900 --> 00:07:55,790 Por në thelb, në grup P, ju jeni do të jetë bërë një shumë të lloj 162 00:07:55,790 --> 00:07:59,760 pyetje në një bazë të dhënash për të marrë disa Informata nga kjo bazë të dhënash. 163 00:07:59,760 --> 00:08:03,330 Dhe ajo që kodi juaj do të jetë bërë, ajo që procesi i Apache ose 164 00:08:03,330 --> 00:08:06,030 që thread Apache do të jetë bërë ndërkohë që ajo ka për të kontaktuar 165 00:08:06,030 --> 00:08:08,990 Baza e të dhënave është ajo lloj do të jetë ulur atje dhe ajo do të jetë e 166 00:08:08,990 --> 00:08:12,130 duke pritur për bazën e të dhënave të përgjigjeni. 167 00:08:12,130 --> 00:08:16,290 >> Tani që nuk mund të tingëllojë si kjo a madhe merret për shkak se baza e të dhënave është në tuaj 168 00:08:16,290 --> 00:08:18,240 Aplikim CS50, e drejtë? 169 00:08:18,240 --> 00:08:22,930 Por ka disa lloj rrjeti latente ekziston sepse tani web 170 00:08:22,930 --> 00:08:26,830 server ka për të nxjerrë kërkesën e vet për të bazës së të dhënave për të komunikuar me 171 00:08:26,830 --> 00:08:29,520 Baza e të dhënave dhe pastaj të marrë atë Informata mbrapa. 172 00:08:29,520 --> 00:08:33,190 Deri tani kjo është si të mirë të prisni për mua, unë jam i do të shkojë të marrë diçka nga 173 00:08:33,190 --> 00:08:35,770 Baza e të dhënave dhe pastaj nuk ka një shumë e pritur ndodh. 174 00:08:35,770 --> 00:08:36,870 A ka kjo kuptim? 175 00:08:36,870 --> 00:08:38,580 >> Dhe për disa gjëra nuk është edhe aq keq. 176 00:08:38,580 --> 00:08:41,950 Në qoftë se vetëm ajo ka për të, për shembull, kujtesë, që nuk është si 177 00:08:41,950 --> 00:08:44,100 tmerrshme I / O latente. 178 00:08:44,100 --> 00:08:47,110 Dhe kur them, I / O latente, atë që unë jam duke iu referuar është si çdo lloj si 179 00:08:47,110 --> 00:08:48,290 prodhimit input. 180 00:08:48,290 --> 00:08:52,950 Por për të hyrë në një skedar në disk, si nëse kam kërkuar për të shërbyer HTML statike 181 00:08:52,950 --> 00:08:57,850 paraqesë që ishte në faqen time të internetit apo diçka të tillë, unë lloj i duhet të 182 00:08:57,850 --> 00:09:02,310 ndaluar për pak, lexoni këtë dosje nga e disk, dhe më pas në 183 00:09:02,310 --> 00:09:04,400 që procesi unë jam duke pritur. 184 00:09:04,400 --> 00:09:06,700 Unë nuk jam duke bërë punë të dobishme. 185 00:09:06,700 --> 00:09:11,270 >> Kjo nuk është e vërtetë për çdo gjë, por ajo është e zakonshme në të gjitha kërkesat si P set 186 00:09:11,270 --> 00:09:13,960 shtatë dhe një shumë të aplikacioneve se ju nuk jeni 187 00:09:13,960 --> 00:09:15,440 në të vërtetë duke bërë shumë të menduarit. 188 00:09:15,440 --> 00:09:19,090 Dhe kur them të menduarit, unë do të thotë si punë kompjuterike. 189 00:09:19,090 --> 00:09:23,270 Puna në mënyrë kompjuterike mund të jetë diçka si, të themi, ju të kërkuar për të 190 00:09:23,270 --> 00:09:26,590 shkruani një web server që vetëm llogaritur numri n Fibonacci. 191 00:09:26,590 --> 00:09:29,300 Kjo nuk do të tingëllojë si një veçanërisht fun web server. 192 00:09:29,300 --> 00:09:34,220 Ashtu si unë nuk do të presim që faqja të jetë Facebook tjetër, por që është një 193 00:09:34,220 --> 00:09:35,610 lloj pune kompjuterike. 194 00:09:35,610 --> 00:09:39,570 >> Dhe ju mund të imagjinoni zëvendësuar atë me një lloj tjetër të interesante 195 00:09:39,570 --> 00:09:43,070 Puna kompjuterike. 196 00:09:43,070 --> 00:09:46,050 Le të thonë se ju jeni duke shkruar diçka që llogaritet grada 197 00:09:46,050 --> 00:09:49,170 Ndarja në mes të dy njerëzve ose diçka të tillë. 198 00:09:49,170 --> 00:09:51,860 Kështu që ka të bëjë me një lloj e llogaritjes, e drejtë? 199 00:09:51,860 --> 00:09:56,630 Dhe, edhe atëherë, për të bërë që ju ende keni për të bërë një shumë të pritur për ndoshta 200 00:09:56,630 --> 00:09:59,550 ju keni për të query një bazë të dhënash për të parë up i cili është mik me të cilët ose 201 00:09:59,550 --> 00:10:00,600 diçka të tillë. 202 00:10:00,600 --> 00:10:03,510 Pra, nuk është se lloji i nocionit Puna e kompjuterike. 203 00:10:03,510 --> 00:10:05,260 A ka kjo kuptim? 204 00:10:05,260 --> 00:10:08,258 A ka dikush ndonjë pyetje? 205 00:10:08,258 --> 00:10:11,960 >> Oh dhe unë mendoj se kam vënë chat servera atje sepse servers chat janë lloj i 206 00:10:11,960 --> 00:10:13,240 një tjetër shembull i mirë i kësaj. 207 00:10:13,240 --> 00:10:15,250 Një chat server nuk ka për të bërë shumë të menduarit. 208 00:10:15,250 --> 00:10:18,350 Ajo vetëm duhet të presim për njerëzit për të dërgoni mesazhe dhe atëherë kur 209 00:10:18,350 --> 00:10:19,800 ata e bëjnë, dërgoni ato. 210 00:10:19,800 --> 00:10:21,050 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Pra, vetëm për radhitje përsëri, Apache dhe servers web ngjashme si atë pirun a 213 00:10:28,180 --> 00:10:31,470 Shumë temat dhe proceseve të cilat mund të jetë lloj kota. 214 00:10:31,470 --> 00:10:37,530 Kështu që unë mendoj pyetjen që mund të vijnë nga që nuk kemi nevojë të kemi 215 00:10:37,530 --> 00:10:39,610 temat e shumta dhe proceset? 216 00:10:39,610 --> 00:10:41,890 Çfarë ndodh nëse ne kishte vetëm një të tillë? 217 00:10:41,890 --> 00:10:45,710 >> Pra, le të lloj një tabllo të asaj që kjo do të duket si. 218 00:10:45,710 --> 00:10:47,810 Pra, le të përdorim vetëm një fije. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Pra, vetëm paramendoni këtë me një fije. 221 00:10:52,790 --> 00:10:56,600 >> Le të supozojmë ne nuk ishin me të vërtetë duke bërë se shumë të dobishme - dhe kur them 222 00:10:56,600 --> 00:10:59,450 dobishme, unë do të thotë punë kompjuterike - 223 00:10:59,450 --> 00:11:01,130 në ato temat e shumta para. 224 00:11:01,130 --> 00:11:04,180 Pra, le të lloj konsoliduar çdo gjë në një fije. 225 00:11:04,180 --> 00:11:07,780 Pra, çfarë nëse do të kishim një fije se lloj i vetëm shkon rreth në lak dhe 226 00:11:07,780 --> 00:11:10,880 vazhdimisht kontrolle bëri diçka të ri të ndodhë. 227 00:11:10,880 --> 00:11:15,130 Kështu për shembull, ndodhi diçka e re mund të thotë që kam marrë diçka prapa nga 228 00:11:15,130 --> 00:11:19,310 bazës së të dhënave, ose dikush dërguar mua një HTTP kërkesë e re. 229 00:11:19,310 --> 00:11:22,290 Pra, ata janë lloj i ngjarjeve që të ndodhë, apo jo? 230 00:11:22,290 --> 00:11:26,130 >> Dhe pastaj çfarë mund të bëj kur ato ri gjërat ndodhin është pikërisht në këtë thread 231 00:11:26,130 --> 00:11:30,120 e ekzekutimit, kjo fije e vetme e Ekzekutimi, unë mund të telefononi disa kodin që 232 00:11:30,120 --> 00:11:32,410 do të trajtojë atë gjë të veçantë. 233 00:11:32,410 --> 00:11:36,640 Kështu për shembull, në qoftë se kam marrë diçka mbrapa nga baza e të dhënave, unë mund të kandidojë tim 234 00:11:36,640 --> 00:11:40,960 pjesë e vogël kompjuterike e saj që në fakt vetëm përgatit gjë për të 235 00:11:40,960 --> 00:11:42,620 dërgojë përsëri të përdoruesit. 236 00:11:42,620 --> 00:11:46,710 Pra, e bën këtë lloj make kuptim? 237 00:11:46,710 --> 00:11:49,940 >> Por çfarë janë me të vërtetë Implikimet e kësaj? 238 00:11:49,940 --> 00:11:50,660 E drejtë? 239 00:11:50,660 --> 00:11:53,730 Sepse ne kemi shkruar një shumë të kodit asaj - 240 00:11:53,730 --> 00:11:58,330 dhe unë jam vetëm do të hidhen përpara në slides nëse kjo është në rregull. 241 00:11:58,330 --> 00:12:00,930 Pra, nëse ju nuk do mend, unë jam vetëm do të marrë një hap prapa. 242 00:12:00,930 --> 00:12:03,410 Pra, ky lloj gjë është quajtur një lak ngjarje. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 Dhe kjo është lloj themelore Ideja prapa Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Pra, çfarë është me të vërtetë duke bërë Node.js si një web server është ka një fije të vetme 246 00:12:11,240 --> 00:12:14,850 që është në thelb duke shkuar rreth në një lak si një kohë një lloj që ndodhen të 247 00:12:14,850 --> 00:12:18,510 individualitet i Node.js kjo është vazhdimisht kontrolluar, e morëm ne gjëra të reja? 248 00:12:18,510 --> 00:12:22,720 Dhe atëherë ajo do të kandidojë handlers që ju të ngritur. 249 00:12:22,720 --> 00:12:26,720 Por një pyetje e mirë për të kërkuar është, si mund ta bëjë këtë të ndodhë 250 00:12:26,720 --> 00:12:28,090 me gjëra ekzistuese? 251 00:12:28,090 --> 00:12:32,440 >> Kështu që unë vënë një linjë të kodit C këtu që në thelb duket si ajo e hapjes së një 252 00:12:32,440 --> 00:12:33,060 paraqesë, e drejtë? 253 00:12:33,060 --> 00:12:36,090 Unë Ajo sapo doli me një album. 254 00:12:36,090 --> 00:12:39,600 Kështu që unë kam për të hapur asaj një skedë të re. 255 00:12:39,600 --> 00:12:43,810 Pra, mënyra kodi ynë C për operimin - 256 00:12:43,810 --> 00:12:47,890 dhe unë mendoj arsyeja që unë zgjodha fotografi ishte sepse kjo është lloj i në masën 257 00:12:47,890 --> 00:12:52,000 e I / O punë që ne kemi bërë në C në një ndjenjë se ka output input. 258 00:12:52,000 --> 00:12:55,070 Pra, ne e quajmë këtë kod që e bën këtë hapur f. 259 00:12:55,070 --> 00:12:59,370 Dhe pastaj në linjë tjetër të tonë program, ne tani mund të punojnë me f. 260 00:12:59,370 --> 00:13:02,710 >> Pra, kjo do të ishte një shembull i diçkaje kjo është si sinkron ose 261 00:13:02,710 --> 00:13:06,850 bllokuar për shkak se në atë linjë parë aty ne jemi duke pritur deri ne 262 00:13:06,850 --> 00:13:08,110 të marrë fotografi të hapur. 263 00:13:08,110 --> 00:13:12,260 Pra, në rreshtin e dytë, ne e dimë se ne mund të punojnë me f, por kjo do të thotë se 264 00:13:12,260 --> 00:13:16,240 se linja e dytë nuk mund të vërtetë të kandidojë deri në rreshtin e parë është bërë. 265 00:13:16,240 --> 00:13:17,760 A ka kjo kuptim? 266 00:13:17,760 --> 00:13:20,890 >> Pra, kjo do të ishte keq për të vënë në një mbajtësin e ngjarjeve. 267 00:13:20,890 --> 00:13:23,920 Dhe arsyeja për këtë është se ky lloj i pret, apo jo? 268 00:13:23,920 --> 00:13:26,500 Pra, kjo do të na ktheje mbrapa në të njëjtën gjë. 269 00:13:26,500 --> 00:13:29,470 Dhe tani ne nuk do të ketë edhe Dobi të temat e shumta apo 270 00:13:29,470 --> 00:13:32,390 Proceset sepse kemi marrë një fije në Node.js. 271 00:13:32,390 --> 00:13:35,496 A do të kishte kuptim për të gjithë? 272 00:13:35,496 --> 00:13:35,990 >> Audienca: Prisni. 273 00:13:35,990 --> 00:13:36,980 Pra, çfarë është zëvendësimi? 274 00:13:36,980 --> 00:13:37,840 >> KEVIN Schmid: Oh, kështu që po. 275 00:13:37,840 --> 00:13:39,560 Kështu që unë jam duke shkuar për të marrë të zëvendësimi. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Pra, çfarë nëse ne kishte diçka që dukej si kjo? 278 00:13:42,960 --> 00:13:45,730 Pra, çfarë nëse tani unë redaktuar f hapur pak? 279 00:13:45,730 --> 00:13:48,370 Kështu që unë jam duke kaluar në të njëjtën dy argumente si më parë. 280 00:13:48,370 --> 00:13:52,610 Unë ende e dua këngë të re se ajo doli me. 281 00:13:52,610 --> 00:13:57,260 Por unë jam duke kaluar një gjë të tretë e cila është ky variabël quhet kod. 282 00:13:57,260 --> 00:14:02,280 >> Por ajo që është në të vërtetë kodi në këtë kontekst? 283 00:14:02,280 --> 00:14:05,360 A është ajo si një variabël të rregullt C? 284 00:14:05,360 --> 00:14:06,740 Kjo është një funksion, e drejtë? 285 00:14:06,740 --> 00:14:09,450 Dhe kjo mund të jetë pak i çuditshëm, sepse Unë jam në të vërtetë si tani duke kaluar një 286 00:14:09,450 --> 00:14:12,320 funksionojnë në një tjetër funksion. 287 00:14:12,320 --> 00:14:14,400 >> Pra, një disa gjëra për shënim në lidhje me këtë. 288 00:14:14,400 --> 00:14:17,145 Një, unë nuk jam në të vërtetë duke e quajtur funksion kodin. 289 00:14:17,145 --> 00:14:20,650 Pra, ju nuk e shihni kodin me Paren majtë, Paren drejtë. 290 00:14:20,650 --> 00:14:23,010 Unë jam vetëm duke kaluar në kodin. 291 00:14:23,010 --> 00:14:26,990 Dhe në C, çka kjo do të bëjë në fakt po më jep një tregues për atë aktuale 292 00:14:26,990 --> 00:14:29,740 kodi, dhe atëherë kjo mund të drejtuar atë. 293 00:14:29,740 --> 00:14:33,350 Por vetëm të kënaqur me atë që ju jeni duke kaluar kodin për të kandiduar kur 294 00:14:33,350 --> 00:14:35,150 se dosja është e hapur. 295 00:14:35,150 --> 00:14:41,430 >> Por çfarë do të thotë kjo është se tani Pjesa tjetër e programit tim të cilat do të mund të bëjë 296 00:14:41,430 --> 00:14:47,050 sende të tjera, mund të vazhdojë duke bërë të tjera gjëra, ndërsa ne, me të vërtetë nuk presin, por 297 00:14:47,050 --> 00:14:50,890 vetëm duhet në pjesën e pasme të kokat tona që kur të hapur, drejtuar këtë dosje që 298 00:14:50,890 --> 00:14:52,130 Kodi në krye. 299 00:14:52,130 --> 00:14:53,390 A ka kjo kuptim? 300 00:14:53,390 --> 00:14:58,060 >> Dhe tani ideja prapa Node.js është se kodi në sende të bëjë me f 301 00:14:58,060 --> 00:15:04,590 pjesë duhet të jetë shumë e shkurtër dhe e thjeshtë dhe i drejtpërdrejtë dhe jo të vërtetë të jenë të 302 00:15:04,590 --> 00:15:06,160 computationally shumë intensive. 303 00:15:06,160 --> 00:15:09,390 Ajo mund të ketë për të hapur një tjetër fotografi, por që duhet të jetë goxha i shpejtë 304 00:15:09,390 --> 00:15:14,710 sepse ajo duhet të them vetëm të bëni një tjetër f të hapur dhe të thërresë këtë kod të tjera. 305 00:15:14,710 --> 00:15:19,100 >> Pra, vetëm për të qenë plotësisht i qartë, f të hapur që e bën New Këngë Katy Perry 306 00:15:19,100 --> 00:15:23,060 Done mp3, që do të mjaft shumë më të kthehet menjëherë. 307 00:15:23,060 --> 00:15:27,820 Dhe atëherë ne vetëm mund të vazhdojmë duke bërë sende të tjera për shkak se të gjitha që tani f 308 00:15:27,820 --> 00:15:33,410 Thirrja e hapur nuk është treguar në thelb themelor Kodi f hapur të hapur këtë fotografi 309 00:15:33,410 --> 00:15:36,020 dhe kur ju jeni bërë hapjen e kësaj paraqesë ose kur ju të merrni atë, 310 00:15:36,020 --> 00:15:37,480 pastaj të drejtuar atë kod. 311 00:15:37,480 --> 00:15:39,540 Por kjo nuk ka të vërtetë të drejtuar atë kod. 312 00:15:39,540 --> 00:15:41,815 Dhe ju kisha një pyetje? 313 00:15:41,815 --> 00:15:46,180 >> Audienca: Ju dukej të nënkuptojë disa herë që duke shtuar computationally 314 00:15:46,180 --> 00:15:50,545 Kodi intensive lloj pushim [Padëgjueshme] drejtuar të sistemit. 315 00:15:50,545 --> 00:15:51,795 [Padëgjueshme]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN Schmid: Kjo është një pyetje e madhe. 318 00:15:55,290 --> 00:15:59,280 Kështu që unë në fakt kanë një shembull se si ju mund të integrohen computationally 319 00:15:59,280 --> 00:16:01,090 Kodi intensive në pak. 320 00:16:01,090 --> 00:16:03,620 Pra, kur ne të merrni për shembujt e kodit, Do të jetë i sigurt për të tërhequr atë një të tillë. 321 00:16:03,620 --> 00:16:04,700 A është kjo në rregull? 322 00:16:04,700 --> 00:16:05,950 Falemnderit. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Cili ishte emri juaj? 325 00:16:08,750 --> 00:16:10,620 >> Audienca: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN Schmid: Aaron sjell një shumë të pikë e mirë, e cila është se në qoftë se kam pasur 327 00:16:14,830 --> 00:16:18,560 disa code computationally intensive në bëjë gjëra me pjesën f, pjesa tjetër e 328 00:16:18,560 --> 00:16:22,880 programi im nuk mund të kandidojë dhe nuk mund të dëgjoni për kërkesat e reja apo ndonjë gjë deri në të gjithë 329 00:16:22,880 --> 00:16:24,270 se stuff është e përfunduar. 330 00:16:24,270 --> 00:16:27,390 Pra, nëse unë jam me shkrim kodin Nyja në përgjithësi nëse nuk bëjmë diçka si unë jam duke shkuar 331 00:16:27,390 --> 00:16:33,060 për të sugjeruar më vonë, kur ne shikojmë në shembuj kodi, unë duhet të jetë i sigurt se 332 00:16:33,060 --> 00:16:36,060 kodi im nuk ka zë kjo loop ngjarje. 333 00:16:36,060 --> 00:16:38,120 A ka kjo kuptim? 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 Ftohtë. 336 00:16:40,040 --> 00:16:47,090 >> Pra Node.js ofron këtë kornizë që ju mund të ndërtojë këto ngjarje të shtyrë 337 00:16:47,090 --> 00:16:48,210 serverat me. 338 00:16:48,210 --> 00:16:53,460 Pra, ajo ka këto lloj asinkron jo-bllokimin e I / O biblioteka, ndërsa 339 00:16:53,460 --> 00:16:56,800 Bibliotekat e standarde C që ne kemi qenë duke punuar me të, si në qoftë se ju vetëm 340 00:16:56,800 --> 00:16:59,500 përdorimin e tyre në të njëjtën mënyrë që ne i kemi qenë për përdorimin e tyre me f hapet dhe 341 00:16:59,500 --> 00:17:03,000 sende, ata janë të bllokuar për shkak se ju në të vërtetë duhet të presin për 342 00:17:03,000 --> 00:17:04,470 që fotografi të hapur. 343 00:17:04,470 --> 00:17:09,290 >> Por Node.js ju jep këtë dhe atë në thelb lidhjet në V8 Google 344 00:17:09,290 --> 00:17:14,030 JavaScript engine e cila është arsyeja se Chrome është në mënyrë të shpejtë në përpunimin e 345 00:17:14,030 --> 00:17:17,040 JavaScript sepse ajo ka këtë motor V8. 346 00:17:17,040 --> 00:17:22,460 Kështu që unë e di që tingëllon si një nga ato WWDC konferenca zhvilluesi gjë 347 00:17:22,460 --> 00:17:25,390 ku ata hedhin vetëm një bandë e Numri letër gjëra për procesorë 348 00:17:25,390 --> 00:17:26,910 dhe thonë se kjo është aq ftohtë. 349 00:17:26,910 --> 00:17:34,200 Por kjo është e ftohtë që ata bënë kjo për shkak se JavaScript - 350 00:17:34,200 --> 00:17:37,010 ose ndoshta në qoftë se ju nuk jeni të njohur me JavaScript ende, sepse ne nuk kemi pasur 351 00:17:37,010 --> 00:17:38,180 ligjëratat mbi të - 352 00:17:38,180 --> 00:17:40,770 por JavaScript është interpretuar gjuha. 353 00:17:40,770 --> 00:17:41,970 >> Dhe kjo është një pikë e rëndësishme shumë. 354 00:17:41,970 --> 00:17:45,790 Pra, është e rëndësishme për web tonë servera të jetë i shpejtë, e drejtë? 355 00:17:45,790 --> 00:17:49,970 Dhe në qoftë se ne ishim vetëm duke Javascript kodin që u interpretua me vetëm 356 00:17:49,970 --> 00:17:52,130 ndonjë përkthyesi i vjetër mund të jetë i ngadalshëm. 357 00:17:52,130 --> 00:17:55,980 Përfitimet Pra Nyja nga që ka kjo përkthyes super të shpejtë V8. 358 00:17:55,980 --> 00:17:59,580 Dhe unë nuk e di nëse ata e quajtur atë sepse mu V8 në ballin 359 00:17:59,580 --> 00:18:01,110 gjë, por OK. 360 00:18:01,110 --> 00:18:07,070 >> Kështu që unë kam përgatitur disa shembuj në këtë URL. 361 00:18:07,070 --> 00:18:10,490 Pas seminarit, unë jam lloj të shkuar në të flasim rreth asaj se si ju mund të merrni të vendosur Nyja 362 00:18:10,490 --> 00:18:13,570 lart, por tani për tani, unë vetëm lloj i duan të ecin nëpër disa shembuj të kodit. 363 00:18:13,570 --> 00:18:17,250 Pra, nëse ju doni të ndjekin së bashku, të gjithë Kodi burimor është në dispozicion atje. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Kështu që unë do të iki këtë URL për pak. 366 00:18:22,280 --> 00:18:24,440 Dhe atëherë unë jam vetëm do të kaloni në terminal. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 A është e mirë me të gjithë këtë URL? 369 00:18:34,400 --> 00:18:37,990 Kështu që unë jam duke shkuar për të kaluar mbi të terminalit tim këtu. 370 00:18:37,990 --> 00:18:42,030 >> Kështu që këtu është kodi që Unë kam për sot. 371 00:18:42,030 --> 00:18:43,960 Pse nuk e bëjnë të fillojmë me simpler.js paraqesë? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Gjëja tjetër është se e tërë kjo kodi do të jetë e shkruar në 374 00:18:52,100 --> 00:18:56,660 JavaScript cilat ju mund ose nuk mund të jetë njohur me të. 375 00:18:56,660 --> 00:19:00,170 I guess disa gjëra është se shumë e kodit JavaScript është lloji i 376 00:19:00,170 --> 00:19:04,000 Sintaksa dhe struktura është shumë e ngjashme me C, kështu që ju mund të lloj të vini ta merrni si 377 00:19:04,000 --> 00:19:05,020 ju shkojnë së bashku. 378 00:19:05,020 --> 00:19:08,750 Unë e kam provuar për të shkruar një shumë të duke filluar Kodi për këtë në një mënyrë që është 379 00:19:08,750 --> 00:19:11,230 ngjashme me C që është pak më shumë i lexueshëm. 380 00:19:11,230 --> 00:19:15,980 Por si ne progres, unë do të jetë duke demonstruar disa prej shtesë 381 00:19:15,980 --> 00:19:18,980 tiparet e JavaScript që janë lloj i ftohtë. 382 00:19:18,980 --> 00:19:21,510 >> Por le të shohim në këtë program të mostrës. 383 00:19:21,510 --> 00:19:24,820 Them se çdo gjë është e prerë atje. 384 00:19:24,820 --> 00:19:28,500 Unë jam vetëm duke shkuar për të rregulluar atë vërtetë të shpejtë në qoftë se kjo është në rregull apo jo. 385 00:19:28,500 --> 00:19:31,400 Unë nuk e di se çfarë kjo do të bëjë. 386 00:19:31,400 --> 00:19:34,660 Është se një pak më të mirë? 387 00:19:34,660 --> 00:19:36,510 A mund të shihni var dhe sende? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Pra, linja e parë është si JavaScript version i një variabël 390 00:19:44,120 --> 00:19:44,800 deklaratë. 391 00:19:44,800 --> 00:19:49,870 Pra, vetëm për të nxjerrë në pah atë që kjo do të duket si në C. Pra, kjo është vetëm si 392 00:19:49,870 --> 00:19:52,620 Indeksi mua duke thënë se është e barabartë me tre ose diçka të tillë. 393 00:19:52,620 --> 00:19:55,740 Kështu që unë nuk e specifikon llojin. 394 00:19:55,740 --> 00:20:00,780 JavaScript nuk kanë lloje, por është e shumë të shtypur dinamike në natyrë, në mënyrë 395 00:20:00,780 --> 00:20:02,580 nuk ka ofruar asnjë lloj lloji në të. 396 00:20:02,580 --> 00:20:03,670 Pra, ajo vetëm ka var. 397 00:20:03,670 --> 00:20:05,320 Kjo është si variabël. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> Dhe unë jam duke e quajtur këtë HTTP ndryshueshme. 400 00:20:08,340 --> 00:20:12,480 Dhe në të djathtë anën time, unë kam shprehje që unë dua të vënë në HTTP. 401 00:20:12,480 --> 00:20:14,960 Dhe kjo thotë kërkojnë HTTP. 402 00:20:14,960 --> 00:20:18,500 Pra, kjo është lloj i ngjashëm për të përfshirë. 403 00:20:18,500 --> 00:20:22,940 Kjo është pak më shumë si i fuqishëm se përfshijnë në kuptimin që përfshijnë 404 00:20:22,940 --> 00:20:26,100 vetëm do të kopjoni header paraqesin për prototypes funksion ose 405 00:20:26,100 --> 00:20:27,930 çdo gjë me përkufizimet tipit. 406 00:20:27,930 --> 00:20:30,590 Por kërkojnë është në të vërtetë ndodh për të na marrë kodin. 407 00:20:30,590 --> 00:20:33,280 >> Kështu që ju mund të mendoni për atë si importimin e disa kodin. 408 00:20:33,280 --> 00:20:37,960 Pra, diku në modulin Node.js sistem apo çfarëdo, ata kanë të gjitha këto 409 00:20:37,960 --> 00:20:40,790 Kodi HTTP server kështu që unë jam vetëm duke ngarkuar atë për mi 410 00:20:40,790 --> 00:20:43,130 përdorim personal në këtë program. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Pra, atëherë unë kam këtë funksion që unë kam shkruar. 413 00:20:46,930 --> 00:20:50,330 Dhe vini re unë nuk duhet të specifikojë Lloji i kthimit ose llojin e 414 00:20:50,330 --> 00:20:51,140 argumente përsëri. 415 00:20:51,140 --> 00:20:54,440 Pra, lloji të lirshme shtypur në kjo lloj kuptim. 416 00:20:54,440 --> 00:20:57,290 Dy argumentet që ai merr në, kërkesa dhe përgjigje. 417 00:20:57,290 --> 00:21:02,080 Pra, kjo është konceptualisht lloj si të njohur nga fotografia që kemi pasur 418 00:21:02,080 --> 00:21:05,280 në ekran para sepse ne kemi marrë këtë kërkesë që ne 419 00:21:05,280 --> 00:21:06,410 kanë nga përdoruesit. 420 00:21:06,410 --> 00:21:09,170 Dhe pastaj ne kemi një përgjigje që ne mund të shkruaj gjëra për të. 421 00:21:09,170 --> 00:21:15,060 >> Pra, linja e parë e kjo nuk res.writeHead 200 dhe atëherë kjo 422 00:21:15,060 --> 00:21:17,070 tipi i përmbajtjes tekst të thjeshtë. 423 00:21:17,070 --> 00:21:19,300 Pra, le të kuptuar këtë përveç pak. 424 00:21:19,300 --> 00:21:22,340 Pra, le të vetëm të përqëndrohet në res.write për pak. 425 00:21:22,340 --> 00:21:28,420 Pra shkruaj është në thelb, dhe shkruani kokën, janë vetëm mënyra për lloj të shkruajnë jashtë 426 00:21:28,420 --> 00:21:29,960 gjëra të përgjigjen. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Pra shkruani kokë, në qoftë se dikush mban mend nga HTTP leksion, bëni ju djema 429 00:21:36,230 --> 00:21:39,940 mos harroni headers në lartë e HTTP gjë? 430 00:21:39,940 --> 00:21:43,580 Pra, pse nuk e kam vetëm demo headers vërtetë të shpejtë. 431 00:21:43,580 --> 00:21:44,640 Do që të jetë e dobishme? 432 00:21:44,640 --> 00:21:45,500 Ose duhet ne vetëm lloj - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 I sigurt. 435 00:21:46,740 --> 00:21:52,340 >> Pra, kur browser-i juaj shkon në google.com ose diçka të tillë, 436 00:21:52,340 --> 00:21:54,250 ka në fakt një pak më shumë - 437 00:21:54,250 --> 00:21:55,380 kjo është si një sekret - 438 00:21:55,380 --> 00:21:58,340 ka si pak më shumë informacion që vjen përmes tub se vetëm 439 00:21:58,340 --> 00:22:00,180 kërko pak dhe çdo gjë. 440 00:22:00,180 --> 00:22:03,550 Pra, për të ju tregojnë këtë, unë jam duke shkuar për të përdorur një program të quajtur Curl. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Pra, kjo është diçka që ju mund të kandidojë në linjë juaj command Mac OSX ose në 443 00:22:08,020 --> 00:22:09,830 aplikim apo çfarëdo. 444 00:22:09,830 --> 00:22:17,050 Dhe kështu që në qoftë se unë do të Curl HTTP google.com, Unë jam duke shkuar për të parë HTML. 445 00:22:17,050 --> 00:22:21,230 Dhe kjo është, në drejtësi, vetëm HTML atë gjë e ju tregon për të 446 00:22:21,230 --> 00:22:24,695 përcjellëse për www nëse shfletuesi juaj nuk automatikisht të trajtojë 447 00:22:24,695 --> 00:22:27,110 redirection. 448 00:22:27,110 --> 00:22:33,390 >> Pra, kjo është vetëm HTML, por unë jam duke shkuar për të shtuar në Curl këtë vizë ndarëse I Flamuri. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 Dhe kjo do të tregojë mua headers. 451 00:22:35,600 --> 00:22:40,640 Pra, kjo është edhe informacioni që vjen nëpërmjet kur ta gjej këtë përgjigje. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Pra, në krye, shihni këtë HTTP 301 të lëvizur përgjithmonë. 454 00:22:45,320 --> 00:22:49,470 Dhe kjo është lloj i rëndësishme sepse kjo ka të bëjë me kodin e statusit. 455 00:22:49,470 --> 00:22:53,750 Pra, 301 këtu është kodi statusi, e cila është në thelb vetëm një numër të plotë 456 00:22:53,750 --> 00:22:57,750 që tregon shfletuesit apo kushdo-së e lexuar këtë, në qoftë se ju të pretendojë se 457 00:22:57,750 --> 00:23:01,460 ju jeni një shfletues dhe ju jeni duke parë këtë, në thelb tani, nëse ju shikoni në 458 00:23:01,460 --> 00:23:04,960 që dhe ju shihni një 301, ju e dini se unë kam për të bërë diçka të veçantë në bazë të 459 00:23:04,960 --> 00:23:08,810 301, ose diçka ka ndodhur veçantë bazuar në 301. 460 00:23:08,810 --> 00:23:12,640 Kështu ai thotë lëvizur përgjithmonë. 461 00:23:12,640 --> 00:23:17,700 >> Dhe pastaj, në thelb, ne kemi një bandë e palë kryesore me vlerë. 462 00:23:17,700 --> 00:23:22,100 Pra, ne të merrni vendin është www.google.com. 463 00:23:22,100 --> 00:23:25,190 Dhe pastaj lloj të gjitha këto gjëra të tjera, por në thelb, ajo që është vend 464 00:23:25,190 --> 00:23:29,662 duke thënë se është vend i ri është në www.google.com. 465 00:23:29,662 --> 00:23:33,800 Deri tani, nëse ju shkoni në google.com, ju do të lloj shohim llojin e shfletuesit të injoroj 466 00:23:33,800 --> 00:23:38,770 për një të dytë dhe pastaj përcjellëse të të drejtën përsëri në www.google.com. 467 00:23:38,770 --> 00:23:41,840 Pra, përgjigjet mund të përmbajnë këto headers. 468 00:23:41,840 --> 00:23:43,330 >> Dhe disa gjëra për të nxjerr në pah. 469 00:23:43,330 --> 00:23:46,890 Pra, le të thonë se ne kemi qenë në të vërtetë i suksesshëm në vizituar një faqe web. 470 00:23:46,890 --> 00:23:49,040 Pra më lejoni të shkoj në - 471 00:23:49,040 --> 00:23:51,080 çfarë është një website të mirë? 472 00:23:51,080 --> 00:23:53,285 Unë jam e keqe në të menduarit të mirë faqet e internetit në vend. 473 00:23:53,285 --> 00:23:53,640 >> Audienca: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN Schmid: OK. 475 00:23:54,160 --> 00:23:56,040 Le të bëjmë Wikipedia. 476 00:23:56,040 --> 00:23:58,680 Kështu që këtu unë u zhvendos. 477 00:23:58,680 --> 00:23:59,240 Oh wait. 478 00:23:59,240 --> 00:24:00,160 A ishte unë? 479 00:24:00,160 --> 00:24:00,890 Po, unë kam qenë. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Kështu që unë kam për të bërë www. 482 00:24:03,005 --> 00:24:06,006 Kështu që unë jam duke shkuar për të bërë www. 483 00:24:06,006 --> 00:24:09,680 Dhe si ju mund të shihni, këtu është e gjitha HTML se shfletuesi do të përpunojë 484 00:24:09,680 --> 00:24:10,910 për Wikipedia. 485 00:24:10,910 --> 00:24:14,055 >> Por në qoftë se unë mbaj scrolling deri këtu, ajo që unë do të shoh në krye - 486 00:24:14,055 --> 00:24:17,800 wow, nuk ka shumë të HTML në Wikipedia - 487 00:24:17,800 --> 00:24:22,550 por ajo që unë mund të shoh në krye këtu është ky kod 200 Statusi në krahasim me 488 00:24:22,550 --> 00:24:24,570 301 se kam parë më parë. 489 00:24:24,570 --> 00:24:27,100 Dhe vini re se ajo ka një të mirë OK miqësore tjetër për të. 490 00:24:27,100 --> 00:24:29,470 Pra, kjo është si të kodit të mirë të statusit. 491 00:24:29,470 --> 00:24:31,160 >> A të duket e njohur se numri 200? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Po sepse kur kam bërë simpler.js, I shkroi një 200 atje. 494 00:24:39,880 --> 00:24:43,290 Pra, kjo është në thelb duke thënë them Shfletuesi apo kushdo që është duke u përpjekur për të marrë për të 495 00:24:43,290 --> 00:24:45,440 kjo se ata ishin të suksesshme. 496 00:24:45,440 --> 00:24:49,040 Apo se lloj i si ne ishin të suksesshme shumë. 497 00:24:49,040 --> 00:24:54,320 >> Dhe nuk ka ky lloj i sintaksës veçantë në Javascript për shpalljen e një 498 00:24:54,320 --> 00:24:59,870 Harta e këtyre çelësave si lloj përmbajtje dhe këto vlera si plain text. 499 00:24:59,870 --> 00:25:03,780 Pra, nëse ju shikoni në përgjigjen që ne kam kthyer nga Wikipedia më parë, - 500 00:25:03,780 --> 00:25:06,200 Unë do të përpiqen për të lundruar deri pak më të shpejtë - 501 00:25:06,200 --> 00:25:09,900 ju keni këto çelësat si server dhe këto vlera Apache. 502 00:25:09,900 --> 00:25:12,120 Pra, ju keni marrë çelësat dhe vlerat. 503 00:25:12,120 --> 00:25:15,930 Dhe ju mund të specifikoni këtë në Nyja çfarë për të dërguar përsëri. 504 00:25:15,930 --> 00:25:19,380 >> Pra, kjo është në fakt lloj, në disa mënyra, dhe në disa mënyra kjo nuk është e 505 00:25:19,380 --> 00:25:23,170 me të vërtetë, por kjo është një nivel pak më të ulët se kodin PHP që ju mund të jenë të 506 00:25:23,170 --> 00:25:26,980 shkrim për P vënë shtatë sepse PHP dhe Apache lloj të kujdeset për disa 507 00:25:26,980 --> 00:25:28,150 nga këto gjëra për ju. 508 00:25:28,150 --> 00:25:32,520 Në PHP, ju mund të pranoj default Sjellja duke shkruar headers tuaj. 509 00:25:32,520 --> 00:25:35,520 Por, për qëllimet e kësaj, ne marrim të shkruar nga vetë headers tona. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Pra, nuk do vijë kuptim të të gjithë, linja kreu shkruaj? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Awesome. 514 00:25:42,280 --> 00:25:45,870 >> Pra, atëherë ajo që unë bëj është I dhënë fund përgjigje duke thënë përshëndetje botë. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Por kjo është vetëm një funksion quajtur mbajtës kërkesë. 517 00:25:49,920 --> 00:25:53,510 Deri tani unë në fakt duhet të lloj të bërë diçka me këtë funksion, apo jo? 518 00:25:53,510 --> 00:25:59,170 >> Kështu që këtu është ajo që unë bëj nuk është ky linja e cila e bën var barabartë me server 519 00:25:59,170 --> 00:26:03,530 HTTP.create server, dhe pastaj unë të kalojë në mbajtës kërkesës. 520 00:26:03,530 --> 00:26:06,080 Pra, kjo është lloj i Nyja mënyrë e krijimit të një server. 521 00:26:06,080 --> 00:26:08,790 Dhe vini re se unë jam duke kaluar në mbajtës kërkesës. 522 00:26:08,790 --> 00:26:12,290 Pra, kjo është e thënë të createServer funksion që unë dua që ju të bëni më një 523 00:26:12,290 --> 00:26:16,270 server, dhe kur se server merr një përgjigje, kam nevojë për ju për të thirrur këtë 524 00:26:16,270 --> 00:26:18,680 të kërkojë funksionin mbajtës. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Kështu që linjë shumë e shumë përfundon menjëherë. 527 00:26:22,290 --> 00:26:28,780 Pra, linja e var server është bërë e drejtë pasi të keni bërë këtë shumë e shumë. 528 00:26:28,780 --> 00:26:31,770 Unë do të thotë, se ka për të ngritur disa të brendshme shtet të dini se ju do të duhet të 529 00:26:31,770 --> 00:26:35,400 telefononi atë funksion mbajtës kërkesë, por ajo nuk do të rrinë atje dhe të 530 00:26:35,400 --> 00:26:37,730 le të themi ka përdorues dërguar me një kërkesë ende? 531 00:26:37,730 --> 00:26:39,270 Më ka dërguar përdoruesi një kërkesë ende? 532 00:26:39,270 --> 00:26:40,780 Pra, kjo nuk do të bllokojë. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Pra, çfarë do të bëjë kjo është ajo në thelb tani ruan një tregues për këtë kod, 535 00:26:46,120 --> 00:26:49,670 ky funksion mbajtës kërkesë, dhe më pas do të kandidojë atë kod, kur dikush 536 00:26:49,670 --> 00:26:52,170 bën një kërkesë. 537 00:26:52,170 --> 00:26:54,120 Dhe atëherë ne bëjmë server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> 1337 nuk është shumë arbitrar. 540 00:26:59,960 --> 00:27:02,285 Unë nuk kishte asnjë arsye të veçantë për picking atë numër. 541 00:27:02,285 --> 00:27:03,860 Ajo ishte krejtësisht e rastësishme. 542 00:27:03,860 --> 00:27:07,010 Por kjo vetëm specifikon portin. 543 00:27:07,010 --> 00:27:10,640 Pra, shumica e serverat e web ju do të shihni se ata përdorin portin 80 sepse kjo është lloj 544 00:27:10,640 --> 00:27:11,810 e si konventës. 545 00:27:11,810 --> 00:27:16,170 Pra, nëse unë shkoj në diçka si, Unë nuk e di, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 dhe kam vënë dy pika 8 - 547 00:27:17,700 --> 00:27:18,610 oh wow, ju nuk mund të shihni se. 548 00:27:18,610 --> 00:27:19,370 Më vjen keq. 549 00:27:19,370 --> 00:27:21,820 Por nëse i bëj Wikipedia - 550 00:27:21,820 --> 00:27:24,810 Unë do të shkruaj këtu vetëm në mënyrë që është e qartë në kamera. 551 00:27:24,810 --> 00:27:29,150 Por në qoftë se unë të marrë këtë në një shfletues me një zorrë e trashë 80, që specifikon të shkojnë në 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org në portin 80. 553 00:27:31,430 --> 00:27:36,200 Pra, kjo është si se si Shtetet e Bashkuara kanë portet të shumta si, ku ju mund të anijeve 554 00:27:36,200 --> 00:27:37,440 gjërat në lloj. 555 00:27:37,440 --> 00:27:40,730 Pra, kjo është si të shkoni në këtë të veçantë zhvillohet në këtë server. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Kështu që unë vetëm të zgjodha 1337. 558 00:27:45,730 --> 00:27:47,910 Ka një gamë të tërë të numrave që ju mund të vini. 559 00:27:47,910 --> 00:27:50,390 Kjo nuk ishte krejtësisht i veçantë. 560 00:27:50,390 --> 00:27:54,560 >> Por ajo që unë jam duke shkuar për të bërë tani po unë jam duke shkuar për të drejtuar Nyja. 561 00:27:54,560 --> 00:27:59,730 Më lejoni të hyjnë në të vërtetë që një çift Linjat poshtë në mënyrë që ju mund të shihni atë. 562 00:27:59,730 --> 00:28:03,130 Unë jam duke shkuar për të bërë Nyja, dhe unë jam do të kandidojë simpler.js. 563 00:28:03,130 --> 00:28:06,880 Dhe ne do të flasim rreth asaj se si për të marrë Nyja krijua në pak. 564 00:28:06,880 --> 00:28:09,350 Por tani ajo është vetëm duke server. 565 00:28:09,350 --> 00:28:14,360 >> Pra, një gjë që ne mund të përpiqemi të cilat nuk mund të të jetë emocionuese është se ne mund të vërtetë 566 00:28:14,360 --> 00:28:16,300 të përpiqet për të hyrë në atë në të rehatohem. 567 00:28:16,300 --> 00:28:20,680 Kështu që unë mund të bëjë Curl, dhe kur makinë është host lokale. 568 00:28:20,680 --> 00:28:24,600 Ju do të shihni këtë shkrim si kjo ndonjëherë. 569 00:28:24,600 --> 00:28:29,810 Presë lokale dhe 127.0.0.1 janë lloji e si kompjuterin tuaj në shtëpi. 570 00:28:29,810 --> 00:28:33,180 Pra, kjo është si duke folur me kompjuterin tuaj. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> Dhe atëherë unë mund të them 1337. 573 00:28:36,030 --> 00:28:39,630 Pra, nëse unë të drejtuar këtë linjë të kodit, ai thotë përshëndetje botë. 574 00:28:39,630 --> 00:28:44,050 Dhe nëse kam kërkuar për të parë se sende që kishte text lloj përmbajtje të thjeshtë ose 575 00:28:44,050 --> 00:28:46,560 çdo gjë, unë mund edhe të vënë këtë këtu. 576 00:28:46,560 --> 00:28:48,810 Dhe vini re se ai e thotë OK. 577 00:28:48,810 --> 00:28:50,810 Dhe unë kam të qartë tekst. 578 00:28:50,810 --> 00:28:53,140 Dhe pastaj nuk ka lloj i gjithë kësaj tjera sende që Nyja do të shtojë në 579 00:28:53,140 --> 00:28:54,440 aty për mua. 580 00:28:54,440 --> 00:28:55,700 Kjo nuk është super i rëndësishëm. 581 00:28:55,700 --> 00:28:58,230 >> Unë do të thotë, ka një lloj teknike aspekte të AT që janë lloj 582 00:28:58,230 --> 00:29:02,280 i ftohtë për të folur rreth, por vetëm për të treguar ju, unë gjithashtu kanë fuqinë për të 583 00:29:02,280 --> 00:29:03,070 ndryshojë këto rreth. 584 00:29:03,070 --> 00:29:06,280 Kështu që unë mund vetëm të shtoni një bandë të stuff like that. 585 00:29:06,280 --> 00:29:11,780 Dhe pastaj tani, në qoftë se unë shoh në mia prodhimit, ajo do të jetë se. 586 00:29:11,780 --> 00:29:19,740 Pra, këto headers të thotë gjëra të caktuara të shfletuesit dhe gjëra të tilla si se. 587 00:29:19,740 --> 00:29:23,040 >> Dhe headers në thelb mund të tregoni një shfletues se si të përgjigjen në diçka. 588 00:29:23,040 --> 00:29:26,280 Nëse ju keni dëgjuar ndonjëherë të cookie-t më parë, ose në qoftë se ju keni qenë ndonjëherë i mërzitur 589 00:29:26,280 --> 00:29:29,330 nga një web faqe vendosjen cookies, ose u kthye në bllok cookie ose 590 00:29:29,330 --> 00:29:30,320 diçka të tillë. 591 00:29:30,320 --> 00:29:33,040 Ju mund të vendosni në të vërtetë cookie-t në këto headers. 592 00:29:33,040 --> 00:29:36,990 Pra, ata tregojnë një shfletues si të Sjellja në disa raste. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Kështu që ishte simpler.js. 595 00:29:40,310 --> 00:29:42,780 A ka dikush ndonjë pyetje në këtë dosje kod burim? 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 OK. 598 00:29:45,610 --> 00:29:46,490 Ftohtë. 599 00:29:46,490 --> 00:29:50,780 >> Pra, le të hiqni r nga ajo dhe të kërkoni në simple.js. 600 00:29:50,780 --> 00:29:53,010 Pra, kjo është shumë e shumë njëjtin. 601 00:29:53,010 --> 00:29:56,030 Unë vetëm shkroi atë pak ndryshe sepse kam kërkuar për të zgjidhur të theksoj 602 00:29:56,030 --> 00:29:57,850 disa karakteristika të JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Pra, vini re se mbajtës kërkesa Funksioni i ka zhdukur tërësisht. 604 00:30:03,880 --> 00:30:05,800 Oh yep, a keni një pyetje? 605 00:30:05,800 --> 00:30:08,200 >> Audienca: Po, argumentet që kalohen se 606 00:30:08,200 --> 00:30:10,120 funksioni, cilat janë ato? 607 00:30:10,120 --> 00:30:12,050 >> KEVIN Schmid: Pra, këto janë JavaScript objekte. 608 00:30:12,050 --> 00:30:15,230 Në dokumentacionin Node.js, ajo në thelb thotë se çfarë metoda janë 609 00:30:15,230 --> 00:30:15,910 në dispozicion në to. 610 00:30:15,910 --> 00:30:19,602 Ne vetëm ndodh që të ketë qasje në kjo metodë quhet kreu shkruaj dhe fundi 611 00:30:19,602 --> 00:30:20,730 dhe stuff like that. 612 00:30:20,730 --> 00:30:22,590 Por ka një bandë e tërë më shumë metoda. 613 00:30:22,590 --> 00:30:27,670 >> Dhe për shembull, si një prej tyre në veçanti në rec, ju mund të bëni 614 00:30:27,670 --> 00:30:34,540 diçka si rec.method e cila do të ju them nëse kjo është një HTTP të marrë ose 615 00:30:34,540 --> 00:30:36,780 Kërkesat HTTP postare dhe gjëra të tilla si se. 616 00:30:36,780 --> 00:30:39,100 Pra, ka të gjitha llojet e ndryshme pronat, por ata janë të dyja 617 00:30:39,100 --> 00:30:42,560 JavaScript objekte, dhe ata vetëm kanë Funksionet e bashkëngjitura atyre që ju 618 00:30:42,560 --> 00:30:43,850 mund të shkruaj gjëra për të. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Pra të vini re se mbajtës kërkesën është zhdukur krejtësisht. 621 00:30:49,030 --> 00:30:52,650 Por kodin që kam pasur në kërkesë mbajtës është ende atje. 622 00:30:52,650 --> 00:30:56,520 Unë ende e kanë këtë res.writeHead dhe unë ende e kanë këtë res.end. 623 00:30:56,520 --> 00:31:00,270 Dhe ajo që ky është një shembull i në JavaScript është kjo ideja e një 624 00:31:00,270 --> 00:31:01,460 funksion anonim. 625 00:31:01,460 --> 00:31:04,180 dhe anonim është si një emër i përshtatshëm për atë, sepse ajo fjalë për fjalë nuk ka 626 00:31:04,180 --> 00:31:05,180 kanë një emër. 627 00:31:05,180 --> 00:31:07,900 Nuk ka asnjë kërkesë funksion mbajtës në atje. 628 00:31:07,900 --> 00:31:10,110 >> Nuk ka emër, por ajo ende është duke marrë një argument. 629 00:31:10,110 --> 00:31:12,250 Kështu që unë ende të marrë rec dhe res. 630 00:31:12,250 --> 00:31:16,180 Dhe unë ende kanë kodin. 631 00:31:16,180 --> 00:31:18,930 Kjo është e përkryer gjobë JavaScript code. 632 00:31:18,930 --> 00:31:22,540 Kështu që unë mund të deklaroj një funksion pa duke i dhënë në mënyrë të qartë një emër. 633 00:31:22,540 --> 00:31:24,250 Është pak konfuz në fillim. 634 00:31:24,250 --> 00:31:26,230 Ka disa gjëra të dobishme si që ju mund të bëni me 635 00:31:26,230 --> 00:31:28,450 këto funksione anonime. 636 00:31:28,450 --> 00:31:32,100 A ka dikush ndonjë pyetje mbi këtë, apo është në rregull vetëm për të, tani për tani, 637 00:31:32,100 --> 00:31:34,130 lloj të vetëm të pranojë se ajo do të bëjë të njëjtën gjë? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Yep? 640 00:31:37,125 --> 00:31:38,680 >> Audienca: A janë funksionet parë klasë në JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> KEVIN Schmid: Ata janë parë klasë në JavaScript. 642 00:31:41,020 --> 00:31:45,490 Dhe vetëm e di se këto koncepte të duke kaluar në një funksion anonim si 643 00:31:45,490 --> 00:31:49,600 kjo zbatohet për JavaScript që ju mund të shkruani në projektin tuaj përfundimtar për 644 00:31:49,600 --> 00:31:51,260 web shfletues shumë. 645 00:31:51,260 --> 00:31:56,700 Kështu për shembull, në JavaScript në Shfletuesi juaj, është gjithashtu disi ngjarje 646 00:31:56,700 --> 00:32:00,680 shtyrë në kuptimin se ajo që ju do të kanë është kur përdoruesi klikimeve këtë 647 00:32:00,680 --> 00:32:02,640 button, unë dua që ju të drejtuar këtë kod. 648 00:32:02,640 --> 00:32:07,070 >> Pra, është e njëjta lloj ideve të anën e klientit kur një klikim të mausit apo ata 649 00:32:07,070 --> 00:32:09,870 miut mbi një imazh në tuaj web faqe, të drejtuar këtë kod. 650 00:32:09,870 --> 00:32:11,350 Kjo mund të aplikojnë për të servers. 651 00:32:11,350 --> 00:32:16,380 Pra, kjo është një lloj si emocionuese Arsyeja pse JavaScript është me të vërtetë 652 00:32:16,380 --> 00:32:19,810 njerëz të përshtatshme ose disa mendojnë se është një Gjuha e përshtatshme për këtë lloj 653 00:32:19,810 --> 00:32:22,530 server shofer ngjarje, sepse ju keni këto funksione anonime. 654 00:32:22,530 --> 00:32:26,150 Ju keni gjithë ideja e ky kod asinkron. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Çdokush keni ndonjë pyetje? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Kështu që ishte simple.js. 659 00:32:33,440 --> 00:32:38,070 Pra, le të shohim në një më shumë ose një çift shumë. 660 00:32:38,070 --> 00:32:42,040 Pra, kjo është sleep.js. 661 00:32:42,040 --> 00:32:47,160 Pra, është dikush i njohur me funksion gjumë C? 662 00:32:47,160 --> 00:32:50,936 Nga ndoshta një nga leksionet e mëparshme ose diçka të tillë? 663 00:32:50,936 --> 00:32:54,650 >> Pra, në thelb ju mund të kalojë në Unë mendoj se një Numri i sekondave ose në qoftë se ju jeni duke përdorur U 664 00:32:54,650 --> 00:32:57,080 fjetur një numër milisekonda ose nanoseconds. 665 00:32:57,080 --> 00:33:00,450 Dhe në thelb programi thjesht do të ndalet konkurrojnë për atë sasinë e kohës. 666 00:33:00,450 --> 00:33:01,280 E drejtë? 667 00:33:01,280 --> 00:33:06,970 Dhe atëherë ajo do të zgjoheni në fund dhe atëherë ajo do të vazhdojë vetëm drejtimin 668 00:33:06,970 --> 00:33:08,340 programi. 669 00:33:08,340 --> 00:33:12,740 >> Pra, ky server lloj jep përshtypja e fjetur. 670 00:33:12,740 --> 00:33:17,580 Pra, vini re se ne kemi të njëjtën gjë res.writeHead 200 me kokë si 671 00:33:17,580 --> 00:33:22,130 më parë, por atëherë ne jemi duke e quajtur këtë funksion të quajtur vendosur timeout. 672 00:33:22,130 --> 00:33:26,170 Timeout Bëje është gjithashtu në dispozicion në shfletuesi juaj web Google Chrome 673 00:33:26,170 --> 00:33:28,000 ose Safari apo çfarëdo. 674 00:33:28,000 --> 00:33:31,720 Dhe në thelb se çfarë është bërë këtu po ajo është duke marrë në një funksion. 675 00:33:31,720 --> 00:33:33,360 Njoftim, përsëri, kjo është një funksion anonim. 676 00:33:33,360 --> 00:33:36,310 Pra, kjo është lloj i ftohtë, sepse ne jemi duke përdorur një funksion anonim brenda një 677 00:33:36,310 --> 00:33:38,950 funksion anonim i cili mund të jetë pak i çuditshëm. 678 00:33:38,950 --> 00:33:42,270 >> Por ai është duke marrë atë funksion, i cili është në thelb duke thënë - dhe në këtë mënyrë 679 00:33:42,270 --> 00:33:47,430 vepra është në 5000 milisekonda, unë dua ju për të ekzekutuar atë funksion që 680 00:33:47,430 --> 00:33:50,830 vetëm përfundon reagimi dhe shkruan hey. 681 00:33:50,830 --> 00:33:56,730 Pra, kjo jep përshtypjen e si duke fjetur, por mënyra në të vërtetë kjo 682 00:33:56,730 --> 00:33:59,780 punon është ne do të vazhdojë deri kjo vijë shumë shpejt. 683 00:33:59,780 --> 00:34:01,190 Ne jemi vetëm duke shkruar diçka. 684 00:34:01,190 --> 00:34:03,780 Dhe pastaj ne do të vazhdojë deri kjo vijë shumë shpejt. 685 00:34:03,780 --> 00:34:08,620 Pra, ne nuk jemi të vërtetë do për të pritur pesë sekonda. 686 00:34:08,620 --> 00:34:11,370 Ne jemi vetëm do të kandidojë ky kod në çast. 687 00:34:11,370 --> 00:34:14,219 >> Dhe pastaj nuk ka, përsëri, kjo pak loop ngjarje që tani ka këtë gjë 688 00:34:14,219 --> 00:34:17,570 regjistrat që në thelb është vetëm vazhdimisht duke shkuar rreth në një rreth 689 00:34:17,570 --> 00:34:21,620 dhe duke kërkuar në e natë në një të vetme thread dhe duke thënë, ka pesë sekonda 690 00:34:21,620 --> 00:34:22,360 kaluar ende? 691 00:34:22,360 --> 00:34:26,409 Dhe pastaj, kur e sheh se i dyti dora ka lëvizur si pesë sekonda ose 692 00:34:26,409 --> 00:34:29,190 çfarëdo, atëherë ajo zgjohet dhe thotë, oh, çfarë duhet të bëj? 693 00:34:29,190 --> 00:34:30,350 Oh unë kam për të drejtuar këtë kod. 694 00:34:30,350 --> 00:34:33,110 Dhe atëherë ajo do të drejtuar res.end hey. 695 00:34:33,110 --> 00:34:35,360 >> Pra, përsëri, ne jemi duke pritur kurrë këtu. 696 00:34:35,360 --> 00:34:38,590 Pra, nuk është se ky kod brenda ky funksion do të marrë pesë 697 00:34:38,590 --> 00:34:39,900 sekonda për të drejtuar. 698 00:34:39,900 --> 00:34:43,090 Ky kod do të kandidojë shumë e shumë të menjëherë, të paktën relative të 699 00:34:43,090 --> 00:34:46,139 pesë sekonda që ne ishim duke folur për më herët para. 700 00:34:46,139 --> 00:34:52,100 >> Pra, vetëm për të treguar këtë në veprim, Unë mund të bëj Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 Dhe bëri I rrëmujë up diçka? 702 00:34:55,159 --> 00:34:56,310 Ndoshta. 703 00:34:56,310 --> 00:34:57,410 Më vjen keq. 704 00:34:57,410 --> 00:34:59,530 Le të shohim se çfarë mund të bëjmë për të rregulluar këtë. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 OK. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 Pra, patjetër të përdorin Node.js. 709 00:35:17,464 --> 00:35:19,440 Unë jam vetëm kidding. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Vetëm një sec. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 OK. 714 00:35:27,900 --> 00:35:29,130 Unë e di se çfarë është. 715 00:35:29,130 --> 00:35:34,440 >> Pra, çështja është se në skedën time të tjera këtu, unë ishte duke ecur Nyja tashmë në 716 00:35:34,440 --> 00:35:36,590 se adresa e njëjtë, 1337. 717 00:35:36,590 --> 00:35:43,370 Pra gabim se ky hodhi, nëse ne shikojmë në të vërtetë afër, është adresa në 718 00:35:43,370 --> 00:35:45,180 përdorin, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Kështu që unë u tashmë duke përdorur 1.337 këtu. 720 00:35:47,970 --> 00:35:52,210 Pra, nëse do të mbyll këtë off, dhe pastaj unë tani përpiqen për të drejtuar këtë, me shpresë, çdo gjë 721 00:35:52,210 --> 00:35:53,210 do të jetë mirë. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Kështu që ju mund të ketë vetëm një gjë lloj i dëgjuar në një port në të njëjtën kohë. 724 00:35:57,020 --> 00:35:59,660 Një zgjidhje tjetër do të ishte për mua vetëm për të redaktuar atë program dhe të bëjë 725 00:35:59,660 --> 00:36:02,370 ajo të jetë si 1338 apo diçka si kjo. 726 00:36:02,370 --> 00:36:04,100 >> Por tani fle po kandidon. 727 00:36:04,100 --> 00:36:06,400 Pra, le të vërtetë të try it out në Shfletuesi këtë kohë, sepse kjo është një 728 00:36:06,400 --> 00:36:09,080 pak unexciting për të parë ajo në një terminal. 729 00:36:09,080 --> 00:36:13,560 Kështu që unë jam vetëm do të shkojnë në atë 127 Adresa e përsëri në 1337. 730 00:36:13,560 --> 00:36:14,850 Dhe në qoftë se ju mund të shihni atë - 731 00:36:14,850 --> 00:36:18,050 Unë nuk e di nëse ju mund të - por im shfletues të marrë një shumë, shumë të gjatë 732 00:36:18,050 --> 00:36:20,600 kohë për të ngarkuar ose si pesë sekonda. 733 00:36:20,600 --> 00:36:23,460 >> Dhe pastaj pas kësaj, ajo më në fund përfundoi përgjigjen. 734 00:36:23,460 --> 00:36:29,070 Dhe ju nuk mund të shihni atë, sepse gjëja e është lëvizur mbi një pak, por në qoftë se unë bëj 735 00:36:29,070 --> 00:36:32,500 kjo më e vogël pak, ju mund të shihni të thotë hey. 736 00:36:32,500 --> 00:36:35,130 Kështu që unë kam hey, por pas pesë sekonda. 737 00:36:35,130 --> 00:36:38,510 Dhe kjo mund të jetë një pastruese pak për të parë kjo këtu në terminal, kështu që unë jam 738 00:36:38,510 --> 00:36:40,980 do të bëni një - 739 00:36:40,980 --> 00:36:43,540 le të bëjmë këtu - 740 00:36:43,540 --> 00:36:48,370 le të bëjmë Curl atë adresë përsëri me 1337. 741 00:36:48,370 --> 00:36:50,820 Dhe unë vetëm lloj të duhet të ulen këtu për pesë sekonda. 742 00:36:50,820 --> 00:36:53,760 Por vini re se serveri mund të pranojë përgjigje të reja. 743 00:36:53,760 --> 00:36:54,940 Pra, ai shtyp hey. 744 00:36:54,940 --> 00:36:58,720 >> Dhe për këtë demo, në thelb ajo që Unë mund të bëjë në këtë tab tjetër - 745 00:36:58,720 --> 00:37:02,640 kështu që le të thonë se unë bëj këtë në një tjetër tab, Unë jam duke shkuar për të bërë Curl dhe të njëjtën gjë 746 00:37:02,640 --> 00:37:03,780 gjë përsëri. 747 00:37:03,780 --> 00:37:06,600 Dhe unë jam do të përpiqen të nisin këto njerëz jashtë në të njëjtën kohë. 748 00:37:06,600 --> 00:37:08,260 Kështu që unë jam duke shkuar për të bërë këtë, dhe unë jam i do të racës gjatë këtu dhe unë jam 749 00:37:08,260 --> 00:37:09,650 do të bëjë atë përsëri. 750 00:37:09,650 --> 00:37:14,030 >> Dhe le të bëjnë atë në mënyrë që ju të mund të shihni të dy prej tyre. 751 00:37:14,030 --> 00:37:20,250 Se një të shtypura hey dhe se një shtypura hey të gjithë rrugën në - 752 00:37:20,250 --> 00:37:22,550 le ta bëjmë këtë eksperiment përsëri. 753 00:37:22,550 --> 00:37:25,100 Në fakt, le të përdorim këtë mashtrim, nëse kjo është në rregull. 754 00:37:25,100 --> 00:37:30,520 >> Kështu që unë jam duke shkuar për të përdorur një gjë shell që lejon mua për të kandiduar në thelb dy kopje 755 00:37:30,520 --> 00:37:32,630 e këtij programi në mënyrë paralele. 756 00:37:32,630 --> 00:37:36,070 Pra, kjo do të drejtuar programin e parë dhe Programi i dytë paralelisht. 757 00:37:36,070 --> 00:37:39,060 Deri tani, nëse unë shtypni Enter, ajo do për të bërë që kërkesa e shumë e shumë të 758 00:37:39,060 --> 00:37:40,570 menjëherë në të njëjtën kohë. 759 00:37:40,570 --> 00:37:42,620 Pra, le të japë këtë një e shtënë. 760 00:37:42,620 --> 00:37:44,950 >> Deri tani njoftim që thotë dy procese. 761 00:37:44,950 --> 00:37:50,630 Dhe në qoftë se ju jeni kurioz, se 27.000 Numri është në thelb procesi ID. 762 00:37:50,630 --> 00:37:52,940 Dhe pastaj të vini re, ata të shtypura hey në të njëjtën kohë. 763 00:37:52,940 --> 00:37:56,820 Ajo nuk ishte si ne duhet të presim pesë sekonda për një dhe pastaj pas kësaj, 764 00:37:56,820 --> 00:37:59,640 pesë sekonda më vonë të merrni të dytën. 765 00:37:59,640 --> 00:38:03,300 Kështu që është lloj, në disa mënyra, kjo është jo të vërtetë dëshmi, por është e 766 00:38:03,300 --> 00:38:07,390 prova intuitive se kjo nuk është vetëm si duke pritur pesë sekonda për të bllokuar egzekutimin 767 00:38:07,390 --> 00:38:08,960 tërë thread. 768 00:38:08,960 --> 00:38:10,720 OK ftohtë. 769 00:38:10,720 --> 00:38:17,850 >> Kështu Aaroni bërë një pyetje më parë se ishte, edhe ajo që në qoftë se ne do të bëjmë diçka - 770 00:38:17,850 --> 00:38:18,735 Yep? 771 00:38:18,735 --> 00:38:19,051 >> Audienca: Prisni. 772 00:38:19,051 --> 00:38:21,585 Si është se e ndryshme nga printf tampon, pse? 773 00:38:21,585 --> 00:38:23,010 A nuk automatikisht të bëjë këtë? 774 00:38:23,010 --> 00:38:25,390 Pse ne duhet të shqetësuar për këtë? 775 00:38:25,390 --> 00:38:26,555 >> KEVIN Schmid: Oh, ju mund të thonë se një herë më shumë? 776 00:38:26,555 --> 00:38:29,510 >> Audienca: Nuk i pëlqen printf buffer të bëjë të njëjtën gjë e saktë? 777 00:38:29,510 --> 00:38:31,280 >> KEVIN Schmid: printf tampon? 778 00:38:31,280 --> 00:38:32,753 >> Audienca: Po. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 A nuk ishte në një nga kuize ata ishin duke folur për mënyrën se si nëse jeni të drejtë printf 781 00:38:40,609 --> 00:38:42,899 diçka dhe pastaj e kanë atë pauzë një të tillë dytë, dhe atëherë ju keni atë lak dhjetë 782 00:38:42,899 --> 00:38:46,530 herë, ajo do të presë dhjetë sekonda dhe atëherë printf çdo gjë së bashku? 783 00:38:46,530 --> 00:38:47,460 >> KEVIN Schmid: Oh, OK. 784 00:38:47,460 --> 00:38:49,170 >> Audienca: A është duke bërë të njëjtën gjë gjë atëherë në këtë rast? 785 00:38:49,170 --> 00:38:52,630 >> KEVIN Schmid: Pra pyetja ishte në thelb në një nga ish-kuize 786 00:38:52,630 --> 00:38:57,200 apo diçka, ka pasur një pyetje që në thelb nëse ju thoni të shtypura F 10 787 00:38:57,200 --> 00:39:01,490 gjërat në një kohë dhe pastaj e zuri gjumi si në procesi i shtypjes atyre jashtë, 788 00:39:01,490 --> 00:39:04,850 në fund për disa arsye, kjo do të vetëm hale ata të gjithë jashtë në ekran. 789 00:39:04,850 --> 00:39:06,740 Pra, ka dy lloj të ndryshme Konceptet këtu. 790 00:39:06,740 --> 00:39:10,400 >> Kështu që unë mendoj se një gjë është që, në këtë rast, ne jemi që kanë të bëjnë me dy të ndryshme 791 00:39:10,400 --> 00:39:13,510 lloj njerëz duke i kërkuar në server për gjëra në të njëjtën kohë. 792 00:39:13,510 --> 00:39:17,455 Dhe arsyeja që lloji i printf pret si kjo dhe deponive të gjithë jashtë 793 00:39:17,455 --> 00:39:21,760 në të njëjtën kohë është më e lidhur me si lloj printf e - 794 00:39:21,760 --> 00:39:25,100 kështu mënyrë printf është në të vërtetë zbatohet është ajo në thelb ka për të 795 00:39:25,100 --> 00:39:28,850 bisedoni me sistemin operativ për të shkruar se stuff në tastierë. 796 00:39:28,850 --> 00:39:33,460 Pra, ajo nuk dëshiron të bëjë të gjitha që Sende menjëherë kur ju thoni printf 797 00:39:33,460 --> 00:39:36,260 disa string sepse kjo mund të të merrni të shtrenjta në qoftë se ka të 798 00:39:36,260 --> 00:39:37,340 të bërë këtë çdo herë. 799 00:39:37,340 --> 00:39:41,530 >> Pra, nëse ju bëni printf hey, programin tuaj mund të vërtetë nuk të shtypura që 800 00:39:41,530 --> 00:39:43,040 menjëherë në tastierë. 801 00:39:43,040 --> 00:39:46,080 Kjo mund të thotë, OK, kam shkruar atë. 802 00:39:46,080 --> 00:39:49,570 Dhe pastaj lloj i të presim për ju që të jepni atë një pak më shumë para se të vërtetë 803 00:39:49,570 --> 00:39:51,380 shkruar atë në tastierë. 804 00:39:51,380 --> 00:39:54,040 >> Pra arsyeja se që ishte rasti - 805 00:39:54,040 --> 00:39:56,450 dhe kjo është lloj i palidhur në gjumë - 806 00:39:56,450 --> 00:40:00,060 është që gjumi ishte lloj i vetëm injektuar në atje për të treguar 807 00:40:00,060 --> 00:40:02,480 Fakti që ajo nuk shkruani ajo sinkrone. 808 00:40:02,480 --> 00:40:06,210 Por arsyeja për këtë është vetëm performancës në mënyrë që ju nuk keni për të 809 00:40:06,210 --> 00:40:08,920 bëjnë që shumë kontakte me sistemit operativ. 810 00:40:08,920 --> 00:40:12,300 >> Por këtu, ajo që ne jemi me të vërtetë duke u përpjekur për të bërë me këtë gjë gjumit është vetëm shfaqje 811 00:40:12,300 --> 00:40:17,730 se kur ne kemi dy njerëz të vizituar këtë website, ajo nuk do të vënë 812 00:40:17,730 --> 00:40:22,310 ata në një linjë ku ajo do të të thënë Unë kam për t'ju ndihmuar, dhe pastaj kur unë jam i 813 00:40:22,310 --> 00:40:25,350 përfunduar krejtësisht ndihmuar ju pas këtyre pesë sekonda, atëherë unë jam duke shkuar për të 814 00:40:25,350 --> 00:40:26,750 veprim mbi personi tjetër. 815 00:40:26,750 --> 00:40:29,515 Pra, kërkesa e personit së parë nuk lidhin atë lak ngjarje 816 00:40:29,515 --> 00:40:31,610 në qoftë se ka kuptim. 817 00:40:31,610 --> 00:40:34,980 >> Por këtu është në të vërtetë një shembull për diçka që do të lidhin 818 00:40:34,980 --> 00:40:36,090 deri lak ngjarje. 819 00:40:36,090 --> 00:40:39,130 Kështu që këtu është një funksion i tmerrshëm për të llogaritur fibonacci n-. 820 00:40:39,130 --> 00:40:43,510 Kjo është fjalë për fjalë mënyra më e keqe që ju mund të të llogaritur numrin n-Fibonacci. 821 00:40:43,510 --> 00:40:48,480 Dhe kjo është në të vërtetë vetëm të njohë ku kjo erdhi nga, 822 00:40:48,480 --> 00:40:49,330 nuk ka të vërtetë - 823 00:40:49,330 --> 00:40:53,230 Unë do të thotë, ju mund të përpiqet për të shkuar të gjetur atë - por ka si një blog shumë të gjatë 824 00:40:53,230 --> 00:40:54,130 postoni se dikush ka shkruar. 825 00:40:54,130 --> 00:40:55,660 Është si një nga ato gjëra Reddit. 826 00:40:55,660 --> 00:40:59,650 Por dikush kritikuar Node.js, dhe ata kanë përdorur këtë si një shembull. 827 00:40:59,650 --> 00:41:03,700 Kështu që unë lloj të kërkuar për të ju tregojnë vetëm dy perspektivat e ndryshme vetëm për të marrë 828 00:41:03,700 --> 00:41:07,320 një kuptim i përgjithshëm i koncepteve pas këtyre dy gjërave. 829 00:41:07,320 --> 00:41:13,050 >> Por kjo është zgjedhur si vetëm një e tmerrshme, computationally tmerrshëm joefikase 830 00:41:13,050 --> 00:41:15,940 mënyrë intensive për të llogaritur Numri n Fibonacci. 831 00:41:15,940 --> 00:41:21,180 Pra, vetëm si një shënim anë, pse është ajo e tmerrshme si në një mënyrë? 832 00:41:21,180 --> 00:41:23,210 Yep? 833 00:41:23,210 --> 00:41:25,130 >> Audienca: Thuaj se të filloni me 1,000. 834 00:41:25,130 --> 00:41:27,050 1.000 ndan në 999 dhe 998. 835 00:41:27,050 --> 00:41:28,970 Secili nga kjo ndahet në dy gjëra. 836 00:41:28,970 --> 00:41:30,890 Secili nga kjo ndahet në dy gjëra. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN Schmid: E drejta. 838 00:41:31,355 --> 00:41:32,400 >> Audienca: Të gjitha mënyra poshtë. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN Schmid: Pikërisht. 840 00:41:32,840 --> 00:41:37,330 Pra, vetëm për të përsëritur për kamera, në qoftë se unë telefononi gënjeshtër më kështu 1,000 apo diçka 841 00:41:37,330 --> 00:41:41,810 si kjo, nuk është e qartë më pak se ose e barabartë me një mënyrë unë do të 842 00:41:41,810 --> 00:41:46,040 shkoni në këtë rast tjetër, dhe atëherë unë jam duke shkuar për të thirrur gënjeshtër 999 plus gënjeshtër 998. 843 00:41:46,040 --> 00:41:50,290 Dhe pastaj shumë e shumë të gjithë e që Puna që bën është gënjeshtër 999 844 00:41:50,290 --> 00:41:52,950 lloj në këtë nivel. 845 00:41:52,950 --> 00:41:55,620 Nëse ju shkoni poshtë, kjo është edhe më e tepërt se kaq, por në qoftë se ju vetëm 846 00:41:55,620 --> 00:42:01,390 mendoj informatikë gënjej 998 merr na shumë e afërt me gënjeshtër 999. 847 00:42:01,390 --> 00:42:05,860 Pra, ne duhet të vërtetë të jetë pak më zgjuar se si ne lloj ripërdorimin 848 00:42:05,860 --> 00:42:07,580 këto, por ne nuk jemi të ripërdorimit këto gjëra në të gjitha. 849 00:42:07,580 --> 00:42:11,860 Kështu që ju mund të imagjinoni këtë gjigant, pemë gjigante kjo është vetëm e tmerrshme. 850 00:42:11,860 --> 00:42:12,940 >> Por gjithsesi, OK. 851 00:42:12,940 --> 00:42:14,040 Kështu që ishte e gënjej. 852 00:42:14,040 --> 00:42:15,530 Ajo thjesht merr një kohë për të kandiduar. 853 00:42:15,530 --> 00:42:16,510 Yep? 854 00:42:16,510 --> 00:42:17,760 >> Audienca: [padëgjueshme]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN Schmid: Oh, ju mund të përsëris pyetjen? 857 00:42:22,481 --> 00:42:23,731 >> Audienca: [padëgjueshme]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN Schmid: Oh kështu që kjo është vetëm kod që do të jetë lloj të 860 00:42:33,990 --> 00:42:34,850 anën server. 861 00:42:34,850 --> 00:42:38,100 Pra, kjo nuk do të të gjendet në shfletuesin apo ndonjë gjë. 862 00:42:38,100 --> 00:42:42,160 Kjo është në thelb ajo që ne kemi është se kur përdoruesi këtu bën shumë e shumë 863 00:42:42,160 --> 00:42:45,300 kërkesa e tyre përsëri, kur ne lloj të bëjë një kërkesë, ne jemi duke shkuar për të thirrur 864 00:42:45,300 --> 00:42:47,040 ky funksion në anën e serverit. 865 00:42:47,040 --> 00:42:50,480 Dhe pastaj ne do të merrni rezultatin mbrapa nga duke e quajtur atë funksion. 866 00:42:50,480 --> 00:42:52,460 Dhe pastaj ne do të vetëm të shtypura kjo të përdoruesit. 867 00:42:52,460 --> 00:42:54,580 Pra, përdoruesi nuk ka të vërtetë të merret me këtë funksion shumë. 868 00:42:54,580 --> 00:42:57,270 >> A ishte kjo pyetje? 869 00:42:57,270 --> 00:42:58,470 A ka kjo kuptim? 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 Ftohtë. 872 00:43:00,930 --> 00:43:04,240 >> Pra, përsëri, ne e bëjmë gjithë këtë res.writeHead gjë ku të shtypura nga 873 00:43:04,240 --> 00:43:05,150 header. 874 00:43:05,150 --> 00:43:09,730 Dhe pastaj unë të përfundojë përgjigjen duke bërë numri magjik është gënjej 45. 875 00:43:09,730 --> 00:43:12,100 Pra, le të vetëm të drejtuar këtë server. 876 00:43:12,100 --> 00:43:15,190 Kështu që unë jam duke shkuar për të bërë një fib.js. nyje 877 00:43:15,190 --> 00:43:17,340 Deri tani serverin tim gënjej po kandidon. 878 00:43:17,340 --> 00:43:21,790 >> Dhe pastaj këtu, unë jam duke shkuar për të bërë një nga këto. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Kështu që unë jam vetëm duke shkuar për të thënë, Curl. 881 00:43:24,960 --> 00:43:32,226 Pra, kjo do të marrë pak kohë, por shpresojmë se së shpejti ajo do të përfundojë dhe të 882 00:43:32,226 --> 00:43:35,660 ajo do të shtypura nga të cilat 45-të Fibonacci numrin. 883 00:43:35,660 --> 00:43:36,910 >> Audienca: [padëgjueshme]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN Schmid: Ajo duhet të të marrë bërë shumë shpejt. 886 00:43:42,050 --> 00:43:43,780 Pra, ajo duhet të marrë 5-6 sekonda. 887 00:43:43,780 --> 00:43:48,570 Unë nuk e di se është vetëm V8 duke qenë super të shpejtë, por në çdo rast, kjo është një 888 00:43:48,570 --> 00:43:52,700 shembull shumë i shkurtër dhe me qëllim pashije e një jo-parëndësishëm 889 00:43:52,700 --> 00:43:54,200 llogaritje. 890 00:43:54,200 --> 00:43:56,700 Pra, pas një kohë, ajo ka marrë këtë. 891 00:43:56,700 --> 00:44:02,130 >> Por tani, çfarë nëse unë bëj të njëjtën lloj eksperiment si më parë ku unë bëj 892 00:44:02,130 --> 00:44:04,010 dy kërkesa në të njëjtën kohë? 893 00:44:04,010 --> 00:44:06,990 Kështu që këtu unë jam duke shkuar për një të rehatohem në që adresa, dhe unë jam duke shkuar 894 00:44:06,990 --> 00:44:08,260 të bëni një tjetër Curl. 895 00:44:08,260 --> 00:44:12,070 Dhe mbani mend, kur ne e bëmë këtë për fle server, kur ne thelb kishte atë 896 00:44:12,070 --> 00:44:15,320 pas pesë sekonda, që shumë e shumë të dy u kthyen të drejtë 897 00:44:15,320 --> 00:44:16,380 në të njëjtën kohë. 898 00:44:16,380 --> 00:44:18,650 Pra, nuk ishte e lidhur veçanërisht lart. 899 00:44:18,650 --> 00:44:20,290 >> Por le të provoni tani. 900 00:44:20,290 --> 00:44:22,370 OK, kështu që ne mori dy proceset tona. 901 00:44:22,370 --> 00:44:24,210 Mos harroni këto janë ID proces. 902 00:44:24,210 --> 00:44:25,900 Kjo do të jetë pak i vështirë, ndërsa ne stallë. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Pra, le të vetëm të qëndrojë këtu dhe të presim. 905 00:44:35,360 --> 00:44:37,090 >> Pra, një prej tyre duhet të vijnë përsëri pas si - 906 00:44:37,090 --> 00:44:39,190 OK, kështu që erdhi prapa. 907 00:44:39,190 --> 00:44:43,570 Por, atëherë pse nuk e kam e dytë një të kthehet vetëm ende? 908 00:44:43,570 --> 00:44:44,389 Yep? 909 00:44:44,389 --> 00:44:49,280 >> Audienca: server nuk mund të bëjë asgjë ndërsa ajo e informatikë atë numër të madh. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN Schmid: E drejta. 911 00:44:51,620 --> 00:44:55,395 Pra, përgjigja ishte vetëm se serveri me të vërtetë nuk mund të bëjë asgjë, ndërsa 912 00:44:55,395 --> 00:44:57,460 është e informatikë atë numër Fibonacci. 913 00:44:57,460 --> 00:44:59,360 Deri tani unë kam vetëm dy gjërat e mia përsëri. 914 00:44:59,360 --> 00:45:03,210 Por unë mendoj vetëm për të menduar për kodin pak më shumë, se si është duke punuar 915 00:45:03,210 --> 00:45:05,030 dhe çdo gjë. 916 00:45:05,030 --> 00:45:11,750 >> Kështu që ky funksion këtu është kodi që Unë e kam thënë këtë server për të kandiduar kur 917 00:45:11,750 --> 00:45:14,100 merr një kërkesë të re në hyrje. 918 00:45:14,100 --> 00:45:17,940 Pra, kjo është vetëm do të vazhdojë deri këtë gjithë kodin, dhe pastaj ajo do të shkojë 919 00:45:17,940 --> 00:45:21,120 mbështetur në lak ngjarjes dhe pastaj të vazhdojë kontrolluar për ngjarje të reja. 920 00:45:21,120 --> 00:45:23,670 Pra, në thelb ajo që ne kemi ndodh është server është 921 00:45:23,670 --> 00:45:25,080 dëgjuar për gjëra të reja. 922 00:45:25,080 --> 00:45:28,070 Personi i parë kërkon atë që është 45. 923 00:45:28,070 --> 00:45:30,490 Ne të drejtuar këtë kod për të llogaritur atë. 924 00:45:30,490 --> 00:45:33,420 Ky kod merr afërsisht pesë për gjashtë sekonda për të drejtuar. 925 00:45:33,420 --> 00:45:36,990 Pastaj ne të kthehemi në lak ngjarje dhe kontrolloni për kërkesat e reja. 926 00:45:36,990 --> 00:45:42,700 >> Pra, ky është një shembull se si, në qoftë se ju të ketë gjëra që janë të ashtu-quajtur llogaritin 927 00:45:42,700 --> 00:45:48,140 lidhur, ose përdorin një shumë të kompjuterike, jo pushtet, por si janë 928 00:45:48,140 --> 00:45:50,260 computationally intensive - 929 00:45:50,260 --> 00:45:54,080 I guess një gjë për të thënë për këtë është se ky funksion është duke bërë tërësisht, 930 00:45:54,080 --> 00:45:56,310 për pjesën më të madhe, shumë e e drejtë të punës e dobishme. 931 00:45:56,310 --> 00:45:59,970 E gjithë koha që se callback funksion ishte duke ecur, ajo ishte shumë e 932 00:45:59,970 --> 00:46:03,670 shumë të shpenzimeve më të madhe të kohës së saj vetëm informatikë numër që Fibonacci n. 933 00:46:03,670 --> 00:46:05,930 >> Por ne vetëm kishte një fije për t'u marrë me të. 934 00:46:05,930 --> 00:46:10,270 Në modelin Apache, kur dy njerëz e bëri kërkesën për të marrë gënjeshtër 45, ne 935 00:46:10,270 --> 00:46:11,610 do të kishte pasur dy temat e ndryshme. 936 00:46:11,610 --> 00:46:15,060 Dhe pastaj puna e sistemit operativ do të kishte qenë, ose përdorues nivel 937 00:46:15,060 --> 00:46:18,660 kodin që menaxhon temat, do të kemi qenë për fetë që deri në 938 00:46:18,660 --> 00:46:23,060 CPU, apo edhe në qoftë se keni pasur CPU të shumta, shpërndarjen e tyre në mënyrë të barabartë në të gjithë CPUs 939 00:46:23,060 --> 00:46:26,130 në mënyrë që ata ishin të dy të përfundojë afërsisht në të njëjtën kohë. 940 00:46:26,130 --> 00:46:31,120 >> Pra, vetëm për të treguar se si ne mund të lloj të - dhe kjo nuk është një perfekte përgjithshme 941 00:46:31,120 --> 00:46:34,280 zgjidhje, por lloj se si ne mund të të bëjë një të kthehen këtu dhe të bëjë 942 00:46:34,280 --> 00:46:35,880 pak më të mirë. 943 00:46:35,880 --> 00:46:41,540 Pra, ajo që kemi këtu është një program i quajtur Gënjej C. Dhe kjo në thelb përdor 944 00:46:41,540 --> 00:46:45,690 një tjetër një nga modulet nyje e quajtur Procesi Fëmija Module. 945 00:46:45,690 --> 00:46:49,210 Kështu që unë kam përfshirë që në llojin krye e si unë do të bëj një kile përfshijnë 946 00:46:49,210 --> 00:46:51,230 process.h fëmijë apo diçka. 947 00:46:51,230 --> 00:46:56,210 Tani unë kam qasje në këtë variabël CP e cila ka të gjitha funksionet e mia. 948 00:46:56,210 --> 00:47:01,810 >> Deri tani ajo që unë jam duke bërë në këtë përgjigje mbajtës është Unë jam duke këtë program 949 00:47:01,810 --> 00:47:04,100 dot çaj gënjeshtër 45. 950 00:47:04,100 --> 00:47:06,820 Pra, ajo që unë kam bërë - dhe unë jam vetëm do të hap jashtë këtij programi për një 951 00:47:06,820 --> 00:47:07,620 pak - 952 00:47:07,620 --> 00:47:11,060 po unë kam shkruar një program C që në thelb llogarit 953 00:47:11,060 --> 00:47:12,630 Numri n Fibonacci. 954 00:47:12,630 --> 00:47:15,960 Kështu që këtu është vetëm një program e kam shkruar në C që llogarit këtë. 955 00:47:15,960 --> 00:47:19,040 Unë mund të hartojnë atë, dhe unë mund të kandidojë ajo në rreshtin e komandave. 956 00:47:19,040 --> 00:47:22,150 Dhe ajo do të llogaritur Numri 45-të Fibonacci. 957 00:47:22,150 --> 00:47:24,510 >> Pra, vini re ajo merr vetëm shumë e shumë për sa kohë. 958 00:47:24,510 --> 00:47:28,240 Unë ndoshta mund të ketë përdorur lëvizje të shpejtë 03 të zgjedh atë ose diçka të tillë, 959 00:47:28,240 --> 00:47:31,050 por unë vetëm e bëri si i rregullt Cilësimet e përpiluesit. 960 00:47:31,050 --> 00:47:33,260 Dhe kjo printon. 961 00:47:33,260 --> 00:47:36,830 >> Por tani, çfarë jam unë lloj duke bërë? 962 00:47:36,830 --> 00:47:39,800 Oh vjen keq, fotografi gabuar. 963 00:47:39,800 --> 00:47:42,800 Kështu që unë bëj të njëjtën stuff me header si më parë. 964 00:47:42,800 --> 00:47:45,780 Pastaj unë bëj këtë cp.exec. 965 00:47:45,780 --> 00:47:49,460 Pra, çfarë kjo do të bëjë është ajo e duke shkuar për të drejtuar këtë program. 966 00:47:49,460 --> 00:47:51,960 Por mënyra punon kjo është që ajo nuk do të presë për 967 00:47:51,960 --> 00:47:53,400 se programi për të përfunduar. 968 00:47:53,400 --> 00:47:56,000 Ajo vetëm thelb thotë ekzekutuar këtë program. 969 00:47:56,000 --> 00:47:58,700 Pra, në thelb shkruani këtë në urdhëroj lloj të shpejtë të. 970 00:47:58,700 --> 00:48:02,350 >> Dhe pastaj, kur ju jeni bërë me ajo, të drejtuar këtë funksion. 971 00:48:02,350 --> 00:48:04,800 Deri tani kemi lloj të marrë këtë gjë e restauruar e tërë e 972 00:48:04,800 --> 00:48:06,750 si ne nuk jemi duke pritur. 973 00:48:06,750 --> 00:48:08,530 A do lloj kuptim? 974 00:48:08,530 --> 00:48:08,990 Yep? 975 00:48:08,990 --> 00:48:11,060 >> Audienca: [padëgjueshme]? 976 00:48:11,060 --> 00:48:13,610 >> KEVIN Schmid: Pra, kjo do të vërtetë hapur një proces të ri për të bërë atë. 977 00:48:13,610 --> 00:48:19,310 Pra, kjo është në të vërtetë, në disa mënyra, e keqe, jo super e keqe, por është 978 00:48:19,310 --> 00:48:22,990 e rëndësishme të thuhet se kjo është lloj i kthim në, nga njëra anë, Apache 979 00:48:22,990 --> 00:48:26,450 Modeli ku ne bëjmë temat dhe proceset për çdo kërkesë apo 980 00:48:26,450 --> 00:48:29,280 proceset për çdo kërkesë. 981 00:48:29,280 --> 00:48:32,090 Pra, kjo është lloj i ngjashëm për çfarë bën Apache. 982 00:48:32,090 --> 00:48:35,110 Në disa raste, ai thjesht do të përdorë një të re fije, e cila është pak më shumë dritë 983 00:48:35,110 --> 00:48:39,040 peshë se sa një proces, por Apache mund të përfundojë forking një proces të ri 984 00:48:39,040 --> 00:48:43,370 që është lloj i asaj që ne bëjmë këtu implicite duke bërë dot gënjeshtër Slash 45. 985 00:48:43,370 --> 00:48:48,690 >> Dhe atëherë në këtë rast, ne lloj të pësojë të njëjtat shpenzimet e proceseve. 986 00:48:48,690 --> 00:48:50,710 Pra, kjo është vetëm një gjë që ju mund të bëni. 987 00:48:50,710 --> 00:48:52,600 Por vetëm për të treguar këtë lloj të running. 988 00:48:52,600 --> 00:48:57,120 Dhe kjo bisedë është vetëm për qëllim të vërtetë në paraqitur këto lloj të programeve si një 989 00:48:57,120 --> 00:49:00,710 mënyrë për të treguar perspektivave të ndryshme për si për të hartuar servers si kjo. 990 00:49:00,710 --> 00:49:08,300 Pra, ky është i rrjedhshëm, dhe pastaj në qoftë se bëj këtë herë, kam marrë dy kartat e identitetit proces. 991 00:49:08,300 --> 00:49:10,320 >> Le të flasim për gjëra për të nxjerr në pah. 992 00:49:10,320 --> 00:49:11,980 Pra të vini re se ata janë incrementally. 993 00:49:11,980 --> 00:49:12,700 Kjo është e ftohtë. 994 00:49:12,700 --> 00:49:15,140 Për shkak se ajo ishte 27.122 parë. 995 00:49:15,140 --> 00:49:18,580 Por njoftimi tani, ata u kthyen afërsisht në të njëjtën kohë. 996 00:49:18,580 --> 00:49:23,960 >> Dhe tani, një pyetje e mirë për të pyetur në lidhje me pse ishte se rasti është, puna e të cilëve 997 00:49:23,960 --> 00:49:27,590 ishte ajo tani për lloj të bërë këto gjëra lloj të luajë të drejtë me njëri- 998 00:49:27,590 --> 00:49:31,350 të tjera, këto dy raste të dot gënjej slash 45 që unë u zhvillua 999 00:49:31,350 --> 00:49:32,880 apo se Nyja u zhvillua? 1000 00:49:32,880 --> 00:49:36,940 Kush lloj i bën të drejtë se ata të dy merrni lloj i balancuar kohën drejtuar? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> Audienca: [padëgjueshme]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN Schmid: Po. 1004 00:49:44,620 --> 00:49:49,740 Pra, në thelb, kur unë bëj dot gënjeshtër Slash 45 ose diçka të tillë, tani është e 1005 00:49:49,740 --> 00:49:53,750 lloj deri në sistemin operativ te trajtuar duhur të këtyre programeve. 1006 00:49:53,750 --> 00:49:56,920 Dhe tani ajo mund të planifikojë ato në CPU të ndryshme ose të 1007 00:49:56,920 --> 00:49:58,330 mund të planifikojë ato. 1008 00:49:58,330 --> 00:50:01,870 Ajo mund të fetë deri kohën që një CPU merr atë apo që ata marrin 1009 00:50:01,870 --> 00:50:03,330 për të kandiduar në një CPU. 1010 00:50:03,330 --> 00:50:05,620 Pra, kjo është ideja prapa se. 1011 00:50:05,620 --> 00:50:07,220 A do të kishte kuptim për të gjithë? 1012 00:50:07,220 --> 00:50:10,950 Deri tani Nyja nuk është me të vërtetë duke luajtur një pjesë në ndarjen e këtyre detyrave. 1013 00:50:10,950 --> 00:50:12,200 OK. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> Pra, kjo është pothuajse ajo për shembuj. 1016 00:50:17,840 --> 00:50:23,370 Unë vetëm të kërkuar për të treguar një tjetër gjë sepse një shumë e kjo deri më tani ka qenë 1017 00:50:23,370 --> 00:50:27,350 jo krejtësisht super praktike në disa raste. 1018 00:50:27,350 --> 00:50:30,970 Unë mund ta imagjinoj duke ardhur në shtëpi pas kësaj flasin dhe diçka e thënë si, 1019 00:50:30,970 --> 00:50:35,710 edhe unë lloj i mori nga ajo bisedë që Unë mund të bëjë një server Fibonacci për 1020 00:50:35,710 --> 00:50:37,360 Projekti im i fundit. 1021 00:50:37,360 --> 00:50:40,770 Kështu që këtu është vetëm lloj i një shembull më shumë që shpresojmë se do të jetë - 1022 00:50:40,770 --> 00:50:44,620 ndoshta jo, por ndoshta - pak më shumë lloj relevante për projekte finale dhe 1023 00:50:44,620 --> 00:50:46,440 menduarit përpara për gjëra të tilla si se. 1024 00:50:46,440 --> 00:50:48,870 >> Pra, kjo është chat.js. 1025 00:50:48,870 --> 00:50:52,290 Pra, kjo është lloj i pëlqen disa mostër server side kodin që ju mund të përdorni për të 1026 00:50:52,290 --> 00:50:55,700 ngritur një chat server të vogël si ju mund të keni parë në 1027 00:50:55,700 --> 00:50:56,630 Facebook Chat apo çfarëdo. 1028 00:50:56,630 --> 00:50:59,990 Kështu që unë nuk jam duke thënë se kjo është si të Facebook Bisedo, por kjo është lloj i 1029 00:50:59,990 --> 00:51:06,230 si një e mirë - ndoshta jo e mirë, por ndoshta mirë - duke filluar pikë për një bisedë 1030 00:51:06,230 --> 00:51:08,560 server për faqen tuaj te internetit për një projekt përfundimtar. 1031 00:51:08,560 --> 00:51:11,040 Pra, le të shohim se çfarë është bërë. 1032 00:51:11,040 --> 00:51:15,500 >> Pra, ne jemi duke marrë këtë gjë të veçantë në krye, kjo VAR Sio 1033 00:51:15,500 --> 00:51:17,050 është e barabartë kërkojnë Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Pra, kjo është një tjetër gjë që ajo nuk ka vijnë bundled me të vërtetë 1035 00:51:20,280 --> 00:51:22,300 Nyja por ju mund ta instaloni atë. 1036 00:51:22,300 --> 00:51:23,480 Kjo është një modul Nyja. 1037 00:51:23,480 --> 00:51:25,670 Pra, është vetëm si disa extension për Nyja. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO është në të vërtetë me të vërtetë lloj i ftohtë. 1039 00:51:29,220 --> 00:51:32,550 Kjo është një abstraksion që në thelb ajo që ajo nuk është është ajo ju lejon të 1040 00:51:32,550 --> 00:51:35,770 kanë këtë rrjedhë të komunikimit në mes të një web 1041 00:51:35,770 --> 00:51:39,430 shfletues dhe një web server. 1042 00:51:39,430 --> 00:51:45,250 Pra, për pjesën më të madhe deri më tani, ne kemi pasur këto shumë të shpejtë një të dytë ose dy 1043 00:51:45,250 --> 00:51:48,790 komunikimet e dytë ndërmjet një web shfletues dhe web server. 1044 00:51:48,790 --> 00:51:53,310 Pra, kjo është në thelb të shkojnë në google.com, get sende, dërgoni atë, dhe pastaj 1045 00:51:53,310 --> 00:51:53,770 ne jemi duke bërë. 1046 00:51:53,770 --> 00:51:56,560 Ne nuk jemi duke folur përsëri deri lloje përdorues në diçka tjetër. 1047 00:51:56,560 --> 00:52:01,090 >> Por çfarë Socket.IO dhe lloj i ngjashëm i gjërat - dhe SocketIO është në fakt një 1048 00:52:01,090 --> 00:52:03,940 nga gjërat që është ndërtuar në si WebSocket e cila është lloj i disponueshëm 1049 00:52:03,940 --> 00:52:06,440 si pjesë e HTML5 - 1050 00:52:06,440 --> 00:52:09,620 që ju lejon të keni këtë dialog të vazhdueshëm. 1051 00:52:09,620 --> 00:52:13,990 Dhe kjo është shumë e dobishme në një chat server lloj gjë, sepse ajo është 1052 00:52:13,990 --> 00:52:17,390 lloj si një dialog të vazhdueshëm në disa mënyra për shkak se në qoftë se ju jeni të biseduar 1053 00:52:17,390 --> 00:52:21,540 me dikë, ju tani mund të thjesht dërgoni një Mesazhi poshtë tub, dhe pastaj 1054 00:52:21,540 --> 00:52:23,940 server mund të dërgoni një mesazh poshtë tub për personin tjetër që ju jeni 1055 00:52:23,940 --> 00:52:24,520 biseduar me të. 1056 00:52:24,520 --> 00:52:26,903 Dhe pastaj ju mund të keni këtë shkëmbejnë si kjo. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Pra, kjo është lloj i asaj SocketIO është e mirë për të. 1059 00:52:32,850 --> 00:52:38,400 Arsyeja që SocketIO përdor WebSockets si një gjë është që në 1060 00:52:38,400 --> 00:52:43,980 Përveç WebSockets thjesht plain vjetër, ai gjithashtu ka disa nga truket në thelb 1061 00:52:43,980 --> 00:52:45,610 bëjnë të shfletuesit compatible. 1062 00:52:45,610 --> 00:52:50,040 Kështu shfletues si Internet Explorer për fat të keq nuk e mbështesin WebSockets 1063 00:52:50,040 --> 00:52:50,810 drejtë të dalë nga kutia. 1064 00:52:50,810 --> 00:52:55,290 Pra, ai përdor një lloj tjetër të ftohtë i zoti gjërat me Adobe Flash të lejojnë 1065 00:52:55,290 --> 00:52:57,170 ju që të ketë mbështetje nga të shfletuesit. 1066 00:52:57,170 --> 00:52:58,800 Pra, kjo është me të vërtetë të dobishme. 1067 00:52:58,800 --> 00:53:02,440 >> Dhe në të vërtetë, unë e di unë jam natyrë e drejtimin në kohë këtu, por CS50 1068 00:53:02,440 --> 00:53:08,490 Diskutoni, a keni parë ndonjëherë diçka si, unë nuk e di, bosh kështu dhe kështu është 1069 00:53:08,490 --> 00:53:11,030 iu përgjigjur për këtë post apo diçka si kjo, kjo veçori? 1070 00:53:11,030 --> 00:53:12,250 Kjo është SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Pra, kur dikush fillon të shtypni diskutojnë kuti për të bërë një përgjigje ose 1072 00:53:15,580 --> 00:53:20,040 diçka, browser-i juaj nuk ç'pritet quajtur në SocketIO lëshon një lloj 1073 00:53:20,040 --> 00:53:22,660 ngjarje që thotë se dikush është iu përgjigjur këtij postimi. 1074 00:53:22,660 --> 00:53:26,110 >> Pastaj server thotë, OK, çfarë duhet të bëj? 1075 00:53:26,110 --> 00:53:29,270 E pra tani unë kam për të të treguar ata djemtë e tjera të cilët janë në CS50 Diskutoni në kërkim 1076 00:53:29,270 --> 00:53:31,170 në këtë post që dikush është duke iu përgjigjur. 1077 00:53:31,170 --> 00:53:34,190 Pra, kjo është lloj i asaj që është SocketIO mirë për, këtë lloj të vazhdueshëm të 1078 00:53:34,190 --> 00:53:35,930 lumë e dialogut. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Pra, çfarë kam këtu - dhe ne jemi vetëm do të injorojë array lidhjeve 1081 00:53:40,060 --> 00:53:41,390 për pak - 1082 00:53:41,390 --> 00:53:43,080 atë që bëj unë është të bëj një tjetër dëgjojnë. 1083 00:53:43,080 --> 00:53:46,880 Pra, kjo është vetëm mënyrë në Socket.IO është duke thënë se le të dëgjojë në këtë port. 1084 00:53:46,880 --> 00:53:50,060 Dhe atëherë unë bëj këtë në lidhje. 1085 00:53:50,060 --> 00:53:53,360 Pra, kjo është vetëm në thelb Socket IO-së mënyrë për të thënë, kur ne kemi marrë një 1086 00:53:53,360 --> 00:53:55,840 lidhje, unë dua t'ju për të drejtuar këtë kod. 1087 00:53:55,840 --> 00:53:59,870 >> Dhe vini re se në vend të që rec dhe res kaluar në atje kam Socket. 1088 00:53:59,870 --> 00:54:03,260 Dhe kjo ide Socket është në thelb ky gjë që ju mund të shkruani për të dhe të lexoni 1089 00:54:03,260 --> 00:54:05,750 nga se ka përdorues të mesazhe ndoshta. 1090 00:54:05,750 --> 00:54:10,700 Dhe mesazhet që ju do të dërgoni mund të kalojnë nëpër këtë directory. 1091 00:54:10,700 --> 00:54:12,140 A ka kjo kuptim? 1092 00:54:12,140 --> 00:54:14,490 Pra, është kjo gjë e vazhdueshme. 1093 00:54:14,490 --> 00:54:17,820 >> Pra, ajo që unë bëj është që unë e quaj Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 Dhe të lëshojnë merr goxha shumë dy argumente. 1095 00:54:20,330 --> 00:54:24,100 Argumenti i parë është një varg vetëm përfaqësojnë llojin e 1096 00:54:24,100 --> 00:54:25,270 gjë që ju jeni duke emitting. 1097 00:54:25,270 --> 00:54:28,120 Pra, për këtë rast, unë kam përdorimin ky mesazh string ri. 1098 00:54:28,120 --> 00:54:32,670 Dhe kjo është vetëm në thelb duke thënë se llojin e këtë gjë, atë që unë jam 1099 00:54:32,670 --> 00:54:34,750 dërguar, është një mesazh i ri. 1100 00:54:34,750 --> 00:54:38,460 Kështu që ju mund të dëgjoni për lloje të veçanta si mesazh të ri ose çfarëdo 1101 00:54:38,460 --> 00:54:39,960 duke përdorur dot më. 1102 00:54:39,960 --> 00:54:44,570 >> Pra, lidhje dhe përdoruesit dërguar atje, në qoftë se ju shikoni në ku ne e quajmë dot më, 1103 00:54:44,570 --> 00:54:48,150 këto janë vargjet tjera që përfaqësojnë lloje të mesazheve të përdoruesit. 1104 00:54:48,150 --> 00:54:52,060 Pra, kjo është në thelb ju mund të keni këtë lëshojnë një nga këto lloje mesazhesh, dhe 1105 00:54:52,060 --> 00:54:55,520 pastaj të bëjë diçka në përgjigje të një nga këto lloje mesazhesh 1106 00:54:55,520 --> 00:54:57,640 >> Kështu që unë jam emitting këtë mesazh të ri. 1107 00:54:57,640 --> 00:55:00,540 Ne jemi duke shkuar për të injoruar connections.push për një të dytë. 1108 00:55:00,540 --> 00:55:03,360 Por atëherë unë them, përdoruesi Socket.on dërguar. 1109 00:55:03,360 --> 00:55:07,540 Deri tani kjo është lloj i pëlqen kur përdorues dërgon një mesazh, unë dua 1110 00:55:07,540 --> 00:55:09,240 ju për të drejtuar këtë kod. 1111 00:55:09,240 --> 00:55:12,080 Dhe vini re se kjo funksion anonim është duke marrë në këtë variabël 1112 00:55:12,080 --> 00:55:16,300 quajtur të dhënave e cila është në thelb duke shkuar që mesazhin e përdoruesit. 1113 00:55:16,300 --> 00:55:20,700 >> Lloj Deri tani le të flasim për array lidhjet. 1114 00:55:20,700 --> 00:55:24,590 Pra, kjo është projektuar për një klient chat ku në thelb të gjithë është lloj i në 1115 00:55:24,590 --> 00:55:25,950 të njëjtën dhomë chat. 1116 00:55:25,950 --> 00:55:29,640 Pra, në thelb, ajo që ne kemi nevojë për të mbajtur përreth është një grup që në thelb 1117 00:55:29,640 --> 00:55:33,170 përfaqëson të gjithë njerëzit të biseduar në disa mënyra, në qoftë se ka kuptim. 1118 00:55:33,170 --> 00:55:33,340 E drejtë? 1119 00:55:33,340 --> 00:55:37,190 Sepse ne kemi nevojë të dimë se kush ata djemtë janë kështu që ne mund të dërgoni atyre mesazhe 1120 00:55:37,190 --> 00:55:39,140 që njerëzit e tjerë për të na dërgoni. 1121 00:55:39,140 --> 00:55:44,440 >> Pra, ajo që ky kod nuk është kur përdoruesi dërgon një mesazh të - kjo është lloji i 1122 00:55:44,440 --> 00:55:45,300 ngjarje - 1123 00:55:45,300 --> 00:55:47,120 ne jemi duke shkuar për të drejtuar këtë kod. 1124 00:55:47,120 --> 00:55:51,240 Dhe ajo që ne bëjmë është që ne të drejtuar përmes këtij array që ne kemi quajtur lidhje. 1125 00:55:51,240 --> 00:55:54,390 Dhe shumë e shumë për çdo lidhje përveç asaj që është e jona, kjo është 1126 00:55:54,390 --> 00:55:59,520 ajo që ky kod thotë, ne kemi dërguar një e re Mesazhi me atë mesazh të bashkangjitur 1127 00:55:59,520 --> 00:56:01,210 informacionit. 1128 00:56:01,210 --> 00:56:04,880 >> Pra, nëse ju vini re këtu, atë që kam bërë kur përdorues të vërtetë e bën një të ri 1129 00:56:04,880 --> 00:56:08,560 lidhje është Unë kam shtuar me Metoda JavaScript.push, kjo është 1130 00:56:08,560 --> 00:56:12,100 në thelb vetëm duke thënë se si të shtoni që xhunto ashtu nje vlere 1131 00:56:12,100 --> 00:56:13,900 Lidhjet koleksion tona. 1132 00:56:13,900 --> 00:56:20,560 Deri tani, kur ky kod shkon, ajo do të dërgoni gjëra për ata të veçantë 1133 00:56:20,560 --> 00:56:22,020 lidhjet. 1134 00:56:22,020 --> 00:56:26,980 Pra, kjo mund të jetë një pikënisje e mirë për të bërë një chat server 1135 00:56:26,980 --> 00:56:28,250 apo diçka të ngjashme. 1136 00:56:28,250 --> 00:56:33,315 >> Dhe lloj gjë ftohtë është se kodin që ju shihni këtu për të si në dhe 1137 00:56:33,315 --> 00:56:36,390 lëshojnë dhe stuff like that është e njëjtë lloj i kodit JavaScript që ju do 1138 00:56:36,390 --> 00:56:39,260 shkruani në shfletuesin për të bashkëvepruar me server. 1139 00:56:39,260 --> 00:56:42,480 Pra, kjo është arsyeja pse SocketIO është lloj i i zoti dhe i dobishëm në këtë mënyrë. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Oh dhe vetëm një gjë më të vërtetë të shpejtë. 1142 00:56:49,250 --> 00:56:55,970 Nuk ishte një projekt përfundimtar CS50 Vitin e kaluar që në thelb zbatuar një bisedë 1143 00:56:55,970 --> 00:56:57,840 server në Node.js. 1144 00:56:57,840 --> 00:57:01,350 Unë mendoj se është Harvardchats.org por unë nuk jam - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Unë nuk jam i sigurt se çfarë është URL, por Unë mund të dërgoni atë jashtë më pas. 1147 00:57:06,190 --> 00:57:09,260 Por kjo është lloj i ftohtë çfarë ju mund të bëni me Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Kështu që unë shpresoj se, në përgjithësi, ju djema keni një kuptim të mirë të asaj që është e dobishme Node.js 1149 00:57:14,680 --> 00:57:17,870 për të dhe se si ju mund të aplikoni ndoshta për projektin tuaj përfundimtar. 1150 00:57:17,870 --> 00:57:21,050 Unë do të jem duke dërguar disa më shumë Burimet e së bashku me këtë. 1151 00:57:21,050 --> 00:57:23,170 Dhe ju falënderoj për të ardhur. 1152 00:57:23,170 --> 00:57:23,610 Falemnderit. 1153 00:57:23,610 --> 00:57:27,168 >> [Duartrokitje]