1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> Kevin Schmid: Kamusta lahat ng tao. 3 00:00:09,710 --> 00:00:12,640 Maligayang pagdating sa CS50 pantas-aral sa Node.js. 4 00:00:12,640 --> 00:00:13,955 Ang pangalan ko ay Kevin. 5 00:00:13,955 --> 00:00:15,580 Isa akong CS50 tf. 6 00:00:15,580 --> 00:00:17,650 At ako ay uri ng tulad ng talagang nagaganyak tungkol sa seminar. 7 00:00:17,650 --> 00:00:20,430 Sa tingin ko Node.js ay napaka-cool. 8 00:00:20,430 --> 00:00:24,200 Umaasa ako na ito pantas-aral ay maaaring magamit bilang isang mahusay na, hulaan ko, pambuwelo para sa 9 00:00:24,200 --> 00:00:26,380 ang ilan sa iyong huling proyekto kung ikaw ay interesado sa paggamit 10 00:00:26,380 --> 00:00:27,630 isang bagay tulad ng Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Padadalhan ka namin ng isang uri ng magsimula ang pantas-aral sa pamamagitan ng pakikipag-usap lamang tungkol sa isang maliit na bit ng 13 00:00:33,320 --> 00:00:36,970 uri ng background kakayahang sumukat mga pananaw ng Node.js, at pagkatapos ay 14 00:00:36,970 --> 00:00:39,240 ipapakita namin ilipat sa ilang mga halimbawa code. 15 00:00:39,240 --> 00:00:42,340 At kukunin ko ang code sa isang website, at maaari kang tumingin sa ang code. 16 00:00:42,340 --> 00:00:45,475 At pagkatapos ng seminar, magpapadala ako-uri-uriin ng talk tungkol sa kung paano mo maaaring i-set up Node.js 17 00:00:45,475 --> 00:00:48,220 sa iyong computer. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Kaya sabihin makapagsimula. 20 00:00:49,760 --> 00:00:53,700 Kaya hulaan ko gusto ko lang makipag-usap tungkol sa mga web server, talaga, una. 21 00:00:53,700 --> 00:00:59,730 At upang simulan ang talakayang ito, ako isa lamang magkaroon ng isang diagram kung saan ay mula sa 22 00:00:59,730 --> 00:01:04,269 ang aklat-aralin na ginagamit para sa CS61, na talaga nagpapakita ng pakikipag-ugnayan 23 00:01:04,269 --> 00:01:08,510 sa pagitan ng isang proseso sa client, tulad ng iyong web browser o tulad ng iyong pakay client o 24 00:01:08,510 --> 00:01:11,340 ang isang bagay tulad na, at isang web server. 25 00:01:11,340 --> 00:01:15,150 Kaya ang ganitong uri ng mukhang katulad ng sa larawan na nakita mo sa panayam sa 26 00:01:15,150 --> 00:01:19,270 Miyerkules kung saan talaga mayroon kaming ilang proseso ng client tulad ng Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> At pagkatapos ay hakbang isa ay ang Nagpapadala ang client ng isang kahilingan. 28 00:01:22,980 --> 00:01:27,510 Kaya maaari na maging isang bagay tulad na rin sabihin bisitahin, hindi ko alam, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Kaya magbibigay kami na kahilingan. 30 00:01:29,320 --> 00:01:34,280 At tandaan ang kahit sino ang pangalan ng ang protocol na tumutukoy kung paano na 31 00:01:34,280 --> 00:01:35,610 dapat na nakaayos ang kahilingan? 32 00:01:35,610 --> 00:01:36,382 Yep. 33 00:01:36,382 --> 00:01:37,650 >> Madla: [hindi marinig]. 34 00:01:37,650 --> 00:01:38,150 >> Kevin Schmid: Mismong. 35 00:01:38,150 --> 00:01:40,100 Kaya ito ay tulad ng HTTP, tama? 36 00:01:40,100 --> 00:01:44,720 Kaya isa lamang ang pagtutukoy para sa kung paano na kahilingan ay dapat na aktwal na inilatag 37 00:01:44,720 --> 00:01:47,450 out, dahil sa pagtatapos ng araw, na kahilingan ay talagang gusto lamang ng isang 38 00:01:47,450 --> 00:01:50,240 string na talaga sabi na gusto ko ito. 39 00:01:50,240 --> 00:01:53,580 At ang mga pagtutukoy para sa na ay HTTP. 40 00:01:53,580 --> 00:01:55,270 Kaya na ay tulad ng isang protocol. 41 00:01:55,270 --> 00:01:57,920 >> Kaya pagkatapos na matanggap ang server na kahilingan. 42 00:01:57,920 --> 00:02:01,610 Kaya mo guys may naka-install sa isang web server sa CS50 appliance. 43 00:02:01,610 --> 00:02:02,460 Ito ay Apache. 44 00:02:02,460 --> 00:02:06,230 At sa linggong ito kapag nagtatrabaho ka sa problema set pitong, makikita mo talaga na nagtatrabaho 45 00:02:06,230 --> 00:02:08,160 may web server na iyon. 46 00:02:08,160 --> 00:02:12,380 Kaya natatanggap ang server na kahilingan, at pagkatapos ito ay upang uri ng scratch nito 47 00:02:12,380 --> 00:02:15,090 ulo at sabihin tulad na rin kung ano ang gagawin ko na may ito? 48 00:02:15,090 --> 00:02:20,060 >> Kaya batay sa kung ano ay nagpasiya ito gawin, at pagkatapos ay maaari itong magkaroon upang makipag-ugnay sa ilang mga uri 49 00:02:20,060 --> 00:02:20,730 ng mapagkukunan. 50 00:02:20,730 --> 00:02:23,700 At na mapagkukunan ay maaaring isang maraming iba't ibang mga bagay. 51 00:02:23,700 --> 00:02:26,810 Para sa isa, ito ay maaaring lamang tulad ng isang static HTML file. 52 00:02:26,810 --> 00:02:29,820 Kaya ito ay maaaring lamang na tulad ng ilang HTML na ay tulad ng para sa 53 00:02:29,820 --> 00:02:31,100 ang iyong personal na website. 54 00:02:31,100 --> 00:02:35,360 Ito ay maaaring maging isang static na file tulad ng isang imahe o tulad ng isang pelikula na mayroon ka. 55 00:02:35,360 --> 00:02:37,660 Maaaring ito kahit na mayroon na makipag-usap sa ilang mga uri ng database 56 00:02:37,660 --> 00:02:39,530 tulad ng isang MySQL database. 57 00:02:39,530 --> 00:02:43,910 Kaya ito ay hindi laging kailangang ipaalam may isang mapagkukunan, ngunit sa 58 00:02:43,910 --> 00:02:45,700 ilang mga kaso, ng dati. 59 00:02:45,700 --> 00:02:47,800 >> Kaya pagkatapos ay kung ano ito ay pagpunta sa gawin pagkatapos na ito ay pagpunta sa 60 00:02:47,800 --> 00:02:49,430 ipadala pabalik ang tugon. 61 00:02:49,430 --> 00:02:53,130 At ang tugon para ito ay tinukoy na rin sa pamamagitan ng HTTP. 62 00:02:53,130 --> 00:02:54,830 Kaya pagkatapos ay ang client ay makakatanggap ng ito. 63 00:02:54,830 --> 00:02:56,740 Maaari itong punitin ito bukod at iproseso ito. 64 00:02:56,740 --> 00:03:00,900 At pagkatapos mong makakuha ng isang web page tulad ng Google o CS50.net o 65 00:03:00,900 --> 00:03:02,240 ano naman ka napunta sa. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Kaya ito ay ang mga pangunahing pakikipag-ugnayan na kami ay pagpunta sa ay pagharap sa. 68 00:03:06,080 --> 00:03:08,770 At kami ay medyo magkano ang pagpunta sa maging tumututok sa bahaging ito ng 69 00:03:08,770 --> 00:03:10,640 pakikipag-ugnayan, ang server. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 Cool. 72 00:03:12,210 --> 00:03:15,500 Sinuman ay may anumang mga katanungan sa ngayon? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Kaya tulad ng sinabi namin, makakatanggap ng web server ibibgay ito ang HTTP na kahilingan at pagkatapos ay 75 00:03:22,430 --> 00:03:24,760 Tugon ng HTTP. 76 00:03:24,760 --> 00:03:29,100 At tulad ng usapan natin ang tungkol sa bago, ang Web server CS50 appliance ay Apache. 77 00:03:29,100 --> 00:03:32,490 Kaya kapag nagtatrabaho ka guys sa P set pitong, ka pagpunta sa ay nagtatrabaho sa 78 00:03:32,490 --> 00:03:34,120 Apache web server. 79 00:03:34,120 --> 00:03:37,890 Hindi ka kailangang talagang gumagana may Apache direkta masyadong maraming. 80 00:03:37,890 --> 00:03:41,920 Ikaw uri ng i-configure ang Apache ng kaunti kapag tinukoy mo ang virtual host o 81 00:03:41,920 --> 00:03:44,970 ang v-host, at susuriin namin sa na sa ilang sandali. 82 00:03:44,970 --> 00:03:50,620 >> Ngunit isa lamang, ang Apache web server set up upang gumana sa uri ng PHP 83 00:03:50,620 --> 00:03:51,730 ng sa labas ng kahon. 84 00:03:51,730 --> 00:03:56,170 Kaya kung ano talaga ang mangyayari ay kapag pumunta sa iyo sa isa sa iyong mga website tulad ng, sabihin nating, 85 00:03:56,170 --> 00:04:00,360 lokal host slash index.PHP o isang bagay, ay nagpapadala ng iyong browser na 86 00:04:00,360 --> 00:04:04,330 kahilingan, at pagkatapos ay Apache ay upo doon at figure out ang gagawin sa ito. 87 00:04:04,330 --> 00:04:08,840 At ang mga aksyon ay upang isakatuparan ang code na iyon sa index.PHP at 88 00:04:08,840 --> 00:04:11,330 pagkatapos ay ipadala ito off muli. 89 00:04:11,330 --> 00:04:15,640 Kaya doon lang iyon. 90 00:04:15,640 --> 00:04:16,980 Kaya uri ng namin usapan tungkol dito. 91 00:04:16,980 --> 00:04:21,990 Kaya maaari itong maghatid lamang ng isang static na file o tumakbo ang ilang mga code na PHP at pagkatapos ay i-isyu 92 00:04:21,990 --> 00:04:23,510 ang tugon. 93 00:04:23,510 --> 00:04:27,670 >> Kaya pagkatapos ng isang pangkaraniwang tanong na maaaring dumating up ay mahusay, paano ko talaga naming harapin 94 00:04:27,670 --> 00:04:31,750 may pagkakaroon ng maramihang mga gumagamit sa parehong oras? 95 00:04:31,750 --> 00:04:36,930 Kaya isipin kung ikaw ay ang pagsusulat ng web server, kung mayroon kang isang web server na 96 00:04:36,930 --> 00:04:39,900 na sinusubukan mong isulat sa isang bagay tulad ng C o isang bagay tulad na, 97 00:04:39,900 --> 00:04:45,150 talaga maaari mong isipin ang tungkol sa kung paano doon maaaring maging ng ilang mga uri ng code na 98 00:04:45,150 --> 00:04:49,330 Gusto matanggap ang kahilingan, ngunit pagkatapos ay ito ay upang gawin ang lahat ng ito gumagana dito. 99 00:04:49,330 --> 00:04:53,060 Maaari itong magkaroon ng upang, halimbawa, makipag-ugnay sa database o isang bagay tulad na. 100 00:04:53,060 --> 00:04:53,300 Mag-right? 101 00:04:53,300 --> 00:04:56,010 At pagkatapos ay nais nitong gawin uri na ng pagproseso at pagkatapos ay 102 00:04:56,010 --> 00:04:57,060 ibinabalik ang tugon. 103 00:04:57,060 --> 00:04:58,950 Kaya na tulad ng mataas Pangkalahatang-ideya ng antas. 104 00:04:58,950 --> 00:05:04,210 >> Ngunit ito ay hindi agad halata kung paano mo Maaari gawin iyon upang ang dalawang tao o 105 00:05:04,210 --> 00:05:09,040 kahit na 1,000 mga tao ay maaaring gumana sa iyong web server sa parehong oras. 106 00:05:09,040 --> 00:05:14,880 Kaya ang solusyon na gumagamit ng Apache ay tinatawag na mga thread o mga proseso. 107 00:05:14,880 --> 00:05:16,770 Kaya Maaaring narinig mo ng mga tuntunin bago. 108 00:05:16,770 --> 00:05:22,190 OK lang kung hindi mo pa, ngunit sa tingin lamang tungkol sa mga thread o mga proseso bilang paraan para sa 109 00:05:22,190 --> 00:05:26,290 isang operating system o isang programa ng gumagamit o ang isang bagay tulad na o ng isang web server 110 00:05:26,290 --> 00:05:28,810 sa uri ng execute ng maramihang mga bagay nang sabay-sabay. 111 00:05:28,810 --> 00:05:31,760 Kaya maaaring narinig mo na ang mga termino tulad ng mga thread ng execution. 112 00:05:31,760 --> 00:05:34,140 Kaya ito ay uri ng tulad ng ikaw ay uri ng multitasking. 113 00:05:34,140 --> 00:05:37,710 >> At kung na iyong nakita sa mga kahon ng iyong laptop, o isang bagay tulad na, 114 00:05:37,710 --> 00:05:43,040 multicore, ano ang maaari mong gawin ay maaari kang magpatakbo ng dalawang magkaibang mga thread sa iba't ibang 115 00:05:43,040 --> 00:05:46,700 mga bahagi ng CPU sa gayon ay maaari nilang talaga mangyari sa parehong oras. 116 00:05:46,700 --> 00:05:48,100 Kaya ito ay talagang malakas. 117 00:05:48,100 --> 00:05:52,270 At ito ay uri ng Apache ni solusyon sa problemang ito. 118 00:05:52,270 --> 00:05:57,900 >> Kaya ang naroon uri ng tulad ng anumang mga isyu may ganitong diskarte bagaman? 119 00:05:57,900 --> 00:05:59,870 Kaya hulaan ko ako uri ng ay sumulat ang mga ito doon. 120 00:05:59,870 --> 00:06:03,440 Ngunit pareho ng mga ito uri ng gumamit ng maraming memorya. 121 00:06:03,440 --> 00:06:07,490 Ito ay napaka mahal upang lumikha ng ang isang thread o isang proseso. 122 00:06:07,490 --> 00:06:11,750 >> At bahagi ng pangangatwiran ay na lamang tulad ng kapag nagpapatakbo ka ng isang programa C 123 00:06:11,750 --> 00:06:15,090 tulad ng iyong pangunahing at pagkatapos na tawag isa pang function, na may 124 00:06:15,090 --> 00:06:16,520 ang ilang mga uri ng stack. 125 00:06:16,520 --> 00:06:19,910 Kaya mga thread ay nangangailangan din ng isang buong hiwalay na stack na 126 00:06:19,910 --> 00:06:21,220 ay maaaring maging masyadong malaki. 127 00:06:21,220 --> 00:06:25,170 At kung maaari mong isipin na ang pagkakaroon tonelada ng mga user sa iyong website, magkakaroon ka ng 128 00:06:25,170 --> 00:06:26,280 ng maraming iba't ibang mga thread. 129 00:06:26,280 --> 00:06:28,230 Iyon ay isang pulutong ng mga stack sa pamahalaan at mapanatili. 130 00:06:28,230 --> 00:06:31,280 Kaya malaki ang pag-inom ng memorya. 131 00:06:31,280 --> 00:06:35,650 >> At pagkatapos, din, sabihin nating mayroon kang lamang isa CPU, o sabihin nating mayroon kang 132 00:06:35,650 --> 00:06:38,460 higit pang mga thread na mayroon ka mga multicores. 133 00:06:38,460 --> 00:06:38,730 Mag-right? 134 00:06:38,730 --> 00:06:43,280 Kaya sabihin nating na kayo ay nagkaroon 10 mga thread at nagkaroon ka lamang ng limang CPUs. 135 00:06:43,280 --> 00:06:46,260 Ikaw uri ng kailangang gawin bagay na ito kung saan lumipat ka sa pagitan ng kasalukuyang 136 00:06:46,260 --> 00:06:49,090 isa na sa pagtakbo dahil sa iyo Hindi maaaring tumakbo ang lahat ng 10 sabay-sabay. 137 00:06:49,090 --> 00:06:50,980 At na tinatawag na isang switch konteksto. 138 00:06:50,980 --> 00:06:54,260 At ang term na iyon talaga ay may isang pares ng mga iba't ibang konteksto, ngunit sabihin lamang 139 00:06:54,260 --> 00:06:56,620 isipin ito bilang paglipat sa pagitan ng dalawang mga thread. 140 00:06:56,620 --> 00:06:59,730 Iyon ay maaaring maging medyo mahal dahil talaga kung ano ang kailangan mong gawin ay sa iyo 141 00:06:59,730 --> 00:07:03,340 Mayroon upang itigil ang kung ano ang ginagawa mo, i-save ang estado ng na tumatakbo ang thread, at 142 00:07:03,340 --> 00:07:05,440 pagkatapos ay lumipat sa ibang lugar. 143 00:07:05,440 --> 00:07:09,420 >> Kaya ang lahat ng tao uri ng makita ang pagganyak ng bakit mga thread at 144 00:07:09,420 --> 00:07:12,030 ay maaaring maging isang maliit na mahirap hawakan mga proseso? 145 00:07:12,030 --> 00:07:13,840 At ay may tanong ka? 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 Cool. 148 00:07:15,070 --> 00:07:18,090 Sinuman ay may anumang mga katanungan? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Kaya kung tumagal kami ng isang hakbang pabalik para sa isang segundo, mayroong uri ng tulad ng isang 151 00:07:26,720 --> 00:07:30,350 pagmamasid na maaari kaming magsagawa ng tungkol sa ng maraming mga web application. 152 00:07:30,350 --> 00:07:34,810 At na talaga na marami sa mga ito talaga huwag gawin ang ganoong karaming mga kapaki-pakinabang 153 00:07:34,810 --> 00:07:37,140 gumana sa loob ng isang thread. 154 00:07:37,140 --> 00:07:41,170 Kaya ay nagsimula sa kahit sino P set pitong sa lahat? 155 00:07:41,170 --> 00:07:45,650 Kaya ang gusto mong marahil ilarawan ang ilan sa mga bahagi? 156 00:07:45,650 --> 00:07:47,850 Nakarating na nagtrabaho sa pag-login o ang isang bagay tulad na? 157 00:07:47,850 --> 00:07:49,330 >> Madla: Hindi. 158 00:07:49,330 --> 00:07:49,780 >> Kevin Schmid: OK. 159 00:07:49,780 --> 00:07:50,150 Wala iyon. 160 00:07:50,150 --> 00:07:50,900 Sorry. 161 00:07:50,900 --> 00:07:55,790 Ngunit isa lamang, sa P set, ikaw ay pagpunta sa ginagawang ng maraming uri ng 162 00:07:55,790 --> 00:07:59,760 mga query sa database upang makakuha ng ilang impormasyon mula sa database na. 163 00:07:59,760 --> 00:08:03,330 At kung ano ang iyong code ay pagpunta sa ginagawa, ano na proseso o Apache 164 00:08:03,330 --> 00:08:06,030 na Apache thread ay pagpunta sa ginagawa habang ito ay upang makipag-ugnay sa 165 00:08:06,030 --> 00:08:08,990 database ay isang uri ng ito ay magiging upo doon at ito ay pagpunta sa maging 166 00:08:08,990 --> 00:08:12,130 naghihintay para sa database upang tumugon. 167 00:08:12,130 --> 00:08:16,290 >> Ngayon na hindi maaaring mukhang na malaki isang humarap dahil ang database ay nasa iyong 168 00:08:16,290 --> 00:08:18,240 CS50 appliance, tama? 169 00:08:18,240 --> 00:08:22,930 Ngunit mayroong ilang uri ng network latency doon dahil ngayon sa web 170 00:08:22,930 --> 00:08:26,830 May upang magbigay ng sarili nitong kahilingan sa server ang database upang makipag-ugnayan sa 171 00:08:26,830 --> 00:08:29,520 database at pagkatapos ay kumuha na impormasyon pabalik. 172 00:08:29,520 --> 00:08:33,190 Kaya ngayon ito ay tulad na rin maghintay para sa akin, ako ay pagpunta sa pumunta makakuha ng isang bagay mula sa 173 00:08:33,190 --> 00:08:35,770 database at pagkatapos ay mayroong isang maraming naghihintay ng pagpunta sa. 174 00:08:35,770 --> 00:08:36,870 Ba na magkaroon ng kahulugan? 175 00:08:36,870 --> 00:08:38,580 >> At para sa ilang mga bagay na ito ay hindi na masama. 176 00:08:38,580 --> 00:08:41,950 Kung ito lamang ay may upang, halimbawa, access memory, na hindi gusto 177 00:08:41,950 --> 00:08:44,100 kalagim-lagim I / O latency. 178 00:08:44,100 --> 00:08:47,110 At kapag sinabi ko, I / O latency, kung ano ako nagre-refer sa ay tulad ng anumang uri ng tulad ng 179 00:08:47,110 --> 00:08:48,290 input output. 180 00:08:48,290 --> 00:08:52,950 Ngunit upang ma-access ang isang file sa disk, tulad ng kung Nais kong maghatid ng static HTML 181 00:08:52,950 --> 00:08:57,850 mag-file na nasa aking mga web page o ang isang bagay tulad na, uri ng ko kailangang mag- 182 00:08:57,850 --> 00:09:02,310 itigil para sa isang bit, mabasa ang file na sa mula sa disk, at pagkatapos ay sa 183 00:09:02,310 --> 00:09:04,400 prosesong iyon Hinihintay ko. 184 00:09:04,400 --> 00:09:06,700 Hindi ako paggawa kapaki-pakinabang trabaho. 185 00:09:06,700 --> 00:09:11,270 >> Ito ay hindi totoo ng lahat ng bagay, ngunit ito ay karaniwan sa mga application tulad ng P hanay 186 00:09:11,270 --> 00:09:13,960 pitong at ng maraming mga application na hindi ka 187 00:09:13,960 --> 00:09:15,440 talaga ang paggawa magkano ang pag-iisip. 188 00:09:15,440 --> 00:09:19,090 At kapag sinabi ko pag-iisip, Ibig kong sabihin tulad ng computational trabaho. 189 00:09:19,090 --> 00:09:23,270 Kaya computational trabaho ay maaaring maging isang bagay tulad ng, sabihin nating, ginusto mong 190 00:09:23,270 --> 00:09:26,590 magsulat ng isang web server na lang compute ang nth numero ng Fibonacci. 191 00:09:26,590 --> 00:09:29,300 Iyon ay mukhang hindi isang partikular na masaya web server. 192 00:09:29,300 --> 00:09:34,220 Tulad ng hindi ko inaasahan site na iyon upang maging sa susunod na Facebook, ngunit iyon ay ilang 193 00:09:34,220 --> 00:09:35,610 uri ng computational trabaho. 194 00:09:35,610 --> 00:09:39,570 >> At maaari mong isipin na pinapalitan na may ilang iba pang mga uri ng kawili-wiling 195 00:09:39,570 --> 00:09:43,070 computational trabaho. 196 00:09:43,070 --> 00:09:46,050 Sabihin nating ikaw ay sumusulat ng isang bagay na kinakalkula ang grado ng 197 00:09:46,050 --> 00:09:49,170 paghihiwalay sa pagitan ng dalawang tao o ang isang bagay tulad na. 198 00:09:49,170 --> 00:09:51,860 Kaya na ang may sangkot ilang uri ng pagkalkula, tama? 199 00:09:51,860 --> 00:09:56,630 At kahit pagkatapos, upang magawa na mayroon pa rin sa iyo na gawin ang isang pulutong ng paghihintay para siguro 200 00:09:56,630 --> 00:09:59,550 mayroon kang upang i-query ng isang database upang tumingin up kung sino ang mga kaibigan na may nag-o 201 00:09:59,550 --> 00:10:00,600 ang isang bagay tulad na. 202 00:10:00,600 --> 00:10:03,510 Kaya mayroong ganoong uri ng kuru-kuro ng computational trabaho. 203 00:10:03,510 --> 00:10:05,260 Ba na magkaroon ng kahulugan? 204 00:10:05,260 --> 00:10:08,258 Kahit sino ay may anumang mga katanungan ba? 205 00:10:08,258 --> 00:10:11,960 >> Oh at hulaan ko bang ilagay ko chat server doon dahil ang mga chat server ay uri ng 206 00:10:11,960 --> 00:10:13,240 isa pang magandang halimbawa ng ito. 207 00:10:13,240 --> 00:10:15,250 Ang isang chat server ay walang gawin magkano ang pag-iisip. 208 00:10:15,250 --> 00:10:18,350 Ito lamang ay may upang maghintay para sa mga tao upang magpadala ng mga mensahe at pagkatapos ay kapag 209 00:10:18,350 --> 00:10:19,800 nila, ipadala ang mga ito. 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 >> Kaya sa pagbabalik-tanaw lamang muli, Apache at katulad na mga server sa web tulad na tinidor isang 213 00:10:28,180 --> 00:10:31,470 marami ng mga thread at mga proseso na kung saan ay maaaring maging uri ng mapag-aksaya. 214 00:10:31,470 --> 00:10:37,530 Kaya hulaan ko ang tanong na maaaring dumating mula sa na kailangan namin upang magkaroon 215 00:10:37,530 --> 00:10:39,610 maramihang mga thread at mga proseso? 216 00:10:39,610 --> 00:10:41,890 Paano kung nagkaroon lamang namin ang isa? 217 00:10:41,890 --> 00:10:45,710 >> Kaya sabihin uri ng pintura ng isang larawan ng kung ano ang magiging hitsura. 218 00:10:45,710 --> 00:10:47,810 Kaya gumamit ng thread isa lamang ipaalam. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Kaya isipin lamang ito sa isa thread. 221 00:10:52,790 --> 00:10:56,600 >> Ipagpalagay hindi talaga namin ginagawa Hayaan na magkano ang kapaki-pakinabang - at kapag sinabi ko 222 00:10:56,600 --> 00:10:59,450 kapaki-pakinabang, ibig sabihin ko computational trabaho - 223 00:10:59,450 --> 00:11:01,130 sa mga maramihang mga thread bago. 224 00:11:01,130 --> 00:11:04,180 Kaya sabihin uri ng pag-isahin ang lahat ng bagay sa isang thread. 225 00:11:04,180 --> 00:11:07,780 Kaya kung ano kung nagkaroon kami ng isang thread na uri na ng lang napupunta sa paligid sa loop at 226 00:11:07,780 --> 00:11:10,880 Patuloy ginawang isang bagay sa mga pagsusuri bagong mangyari. 227 00:11:10,880 --> 00:11:15,130 Kaya halimbawa, isang bagong bagay ang nangyari maaaring ibig sabihin Nakakuha ako ng isang bagay na bumalik mula sa 228 00:11:15,130 --> 00:11:19,310 ang database, o isang tao ay nagpadala ng sa akin ng isang bagong HTTP na kahilingan. 229 00:11:19,310 --> 00:11:22,290 Kaya mga mga uri ng mga kaganapan na mangyayari, tama? 230 00:11:22,290 --> 00:11:26,130 >> At pagkatapos ay kung ano ang aking maaaring gawin kapag ang mga bagong bagay na mangyari ay sa parehong thread 231 00:11:26,130 --> 00:11:30,120 ng pagpapatupad, ang nag-iisang thread ng pagpapatupad, ang maaari kong tumawag sa ilang mga code na 232 00:11:30,120 --> 00:11:32,410 Gusto pangasiwaan sa partikular na bagay. 233 00:11:32,410 --> 00:11:36,640 Kaya halimbawa, kung ang nakuha ko ng isang bagay na pabalik mula sa database, maaari ko bang patakbuhin ang aking 234 00:11:36,640 --> 00:11:40,960 maliit computational bahagi nito na talaga lang naghahanda ang bagay sa 235 00:11:40,960 --> 00:11:42,620 ipadala pabalik sa user. 236 00:11:42,620 --> 00:11:46,710 Kaya ang ginagawa na uri ng make kahulugan? 237 00:11:46,710 --> 00:11:49,940 >> Ngunit ano ang talaga ang implikasyon ng ito? 238 00:11:49,940 --> 00:11:50,660 Mag-right? 239 00:11:50,660 --> 00:11:53,730 Dahil na naisulat namin ng maraming code na - 240 00:11:53,730 --> 00:11:58,330 at ako lamang ang pagpunta sa tumalon nang mas maaga sa mga slide kung na OK lang. 241 00:11:58,330 --> 00:12:00,930 Kaya kung hindi tututol kayo, ako lamang pagpunta sa tumagal ng isang hakbang pabalik. 242 00:12:00,930 --> 00:12:03,410 Kaya ang ganitong uri ng bagay ay na tinatawag na isang loop ng kaganapan. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 At ito ay uri ng mga pangunahing ideya sa likod ng Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Kaya kung ano talaga ginagawa Node.js bilang web server ay mayroong isang solong thread 246 00:12:11,240 --> 00:12:14,850 na isa lamang ng pagpunta sa paligid sa isang loop tulad ng isang habang isang uri ng mga ilalim 247 00:12:14,850 --> 00:12:18,510 ng hood ng Node.js na patuloy pagsusuri, nakatanggap kami ng mga bagong bagay? 248 00:12:18,510 --> 00:12:22,720 At pagkatapos ay tatakbo ito handler na-set up mo. 249 00:12:22,720 --> 00:12:26,720 Ngunit isang mahusay na katanungan upang hilingin ay, paano kami makakagawa ng mangyayari ito 250 00:12:26,720 --> 00:12:28,090 sa umiiral na mga bagay? 251 00:12:28,090 --> 00:12:32,440 >> Kaya ko bang ilagay ang isang linya ng C code dito na talaga kamukha ito ng pagbukas ng 252 00:12:32,440 --> 00:12:33,060 mag-file, i-right? 253 00:12:33,060 --> 00:12:36,090 Ko pa lang ay dumating out niya sa isang album. 254 00:12:36,090 --> 00:12:39,600 Kaya nagkaroon ako upang buksan ang kanyang ng isang bagong file. 255 00:12:39,600 --> 00:12:43,810 Kaya ang paraan ng aming C code para sa operating - 256 00:12:43,810 --> 00:12:47,890 at hulaan ko ang dahilan kung pinili ko ang mga file ay dahil ito ay uri ng lawak 257 00:12:47,890 --> 00:12:52,000 ng I / O trabaho na nagawa namin sa C sa isang katuturan na mayroong input output. 258 00:12:52,000 --> 00:12:55,070 Kaya tinatawag naming ang code na ito na nagbubukas ito f. 259 00:12:55,070 --> 00:12:59,370 At pagkatapos ay sa susunod na linya sa aming mga programa, maaari na ngayong kami sa f. 260 00:12:59,370 --> 00:13:02,710 >> Kaya ito ay magiging isang halimbawa ng isang bagay na tulad ng sabaysabay o 261 00:13:02,710 --> 00:13:06,850 bina-block dahil sa na unang linya doon kami ay naghihintay hanggang namin 262 00:13:06,850 --> 00:13:08,110 makakuha ng open ang file. 263 00:13:08,110 --> 00:13:12,260 Kaya sa ikalawang linya, alam namin na kami ay maaaring gumana sa f, ngunit ibig sabihin nito ay 264 00:13:12,260 --> 00:13:16,240 hindi talaga tumakbo na pangalawang linya hanggang sa unang linya ay tapos na. 265 00:13:16,240 --> 00:13:17,760 Ba na magkaroon ng kahulugan? 266 00:13:17,760 --> 00:13:20,890 >> Kaya ito ay magiging masamang upang ilagay sa isang humahawak ng kaganapan. 267 00:13:20,890 --> 00:13:23,920 At ang mga dahilan para sa na ay na ganitong uri ng naghihintay ang isang, i-right? 268 00:13:23,920 --> 00:13:26,500 Kaya ito ay babalik sa amin pabalik upang ang parehong bagay. 269 00:13:26,500 --> 00:13:29,470 At ngayon kami ay hindi kahit na mayroon ang kapakinabangan ng maramihang mga thread o 270 00:13:29,470 --> 00:13:32,390 mga proseso dahil kami nakakuha isa thread sa Node.js. 271 00:13:32,390 --> 00:13:35,496 Ba na magkaroon ng kahulugan sa lahat ng tao? 272 00:13:35,496 --> 00:13:35,990 >> Madla: Maghintay. 273 00:13:35,990 --> 00:13:36,980 Kaya ano ang kapalit? 274 00:13:36,980 --> 00:13:37,840 >> Kevin Schmid: Oh, kaya yes. 275 00:13:37,840 --> 00:13:39,560 Kaya Pupunta ako upang makapunta sa ang kapalit. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Kaya kung ano kung nagkaroon kami ng isang bagay na mukhang ito? 278 00:13:42,960 --> 00:13:45,730 Kaya kung ano kung ngayon ko na-edit f magbukas ng kaunti? 279 00:13:45,730 --> 00:13:48,370 Kaya ako pagpasa sa parehong dalawang argumento tulad ng dati. 280 00:13:48,370 --> 00:13:52,610 Gustung-gusto ko pa rin ang mga bagong kanta na siya ay dumating out kasama. 281 00:13:52,610 --> 00:13:57,260 Ngunit ako ng pagpapasa ng isang third bagay na ay tinatawag na ito variable na code. 282 00:13:57,260 --> 00:14:02,280 >> Ngunit ano ang code talaga sa kontekstong ito? 283 00:14:02,280 --> 00:14:05,360 Ito ba ay tulad ng isang regular na variable C? 284 00:14:05,360 --> 00:14:06,740 Ito ay isang function, tama? 285 00:14:06,740 --> 00:14:09,450 At iyon na maaaring isang maliit na kakaiba dahil Ako ay talagang tulad ngayon ang pagpasa sa isang 286 00:14:09,450 --> 00:14:12,320 gumana sa isa pang function. 287 00:14:12,320 --> 00:14:14,400 >> Kaya ng ilang mga bagay upang tandaan tungkol sa ito. 288 00:14:14,400 --> 00:14:17,145 Ang isa, ako hindi tunay na pagtawag ang function ng code. 289 00:14:17,145 --> 00:14:20,650 Kaya hindi mo nakikita ang code na ito sa ang natitira paren, i-right paren. 290 00:14:20,650 --> 00:14:23,010 Lang ako sa pagpasa sa code. 291 00:14:23,010 --> 00:14:26,990 At sa C, ano ito ay talagang gawin ay ninyo ako ng pointer sa aktwal na 292 00:14:26,990 --> 00:14:29,740 code, at pagkatapos ito ay maaaring patakbuhin ito. 293 00:14:29,740 --> 00:14:33,350 Ngunit sa tingin lamang tungkol dito bilang ikaw ay pagpasa sa code upang tumakbo kapag 294 00:14:33,350 --> 00:14:35,150 file na ay binuksan. 295 00:14:35,150 --> 00:14:41,430 >> Ngunit ano ang ibig sabihin nito ay na ngayon ang natitira sa aking programa na maaaring gawin 296 00:14:41,430 --> 00:14:47,050 iba pang mga bagay-bagay, ay maaaring magpatuloy sa paggawa ng iba pang mga bagay-bagay habang kami, hindi talaga maghintay, ngunit 297 00:14:47,050 --> 00:14:50,890 mayroon lamang sa likod ng aming mga ulo na kapag na file bukas, run na 298 00:14:50,890 --> 00:14:52,130 code sa itaas. 299 00:14:52,130 --> 00:14:53,390 Ba na magkaroon ng kahulugan? 300 00:14:53,390 --> 00:14:58,060 >> At ngayon ang ideya sa likod ng Node.js ay na ang code na ito sa do mga bagay-bagay na may f 301 00:14:58,060 --> 00:15:04,590 bahagi ay dapat na medyo maikli at simple at direkta at hindi talaga maging 302 00:15:04,590 --> 00:15:06,160 napaka computationally intensive. 303 00:15:06,160 --> 00:15:09,390 Maaaring mayroon itong upang buksan ang isa pang file, ngunit na dapat ay medyo mabilis din 304 00:15:09,390 --> 00:15:14,710 dahil dapat itong lamang nating gawin ang isa pang f buksan at pagkatapos ay tumawag ito sa iba pang mga code. 305 00:15:14,710 --> 00:15:19,100 >> Kaya upang maging ganap na malinaw, ang f lamang buksan na ang ginagawa ng mga bagong Katy Perry kanta 306 00:15:19,100 --> 00:15:23,060 tapos mp3, na pupuntahan kaakit-akit magkano bumalik agad. 307 00:15:23,060 --> 00:15:27,820 At pagkatapos ay maaari naming lamang magpatuloy paggawa iba pang mga bagay-bagay dahil ang lahat na ngayon f 308 00:15:27,820 --> 00:15:33,410 bukas tawag ay ay sabihin talaga ang kalakip na f open code buksan ang file na ito 309 00:15:33,410 --> 00:15:36,020 at kapag tapos ka na ng pagbubukas na ito mag-file o kapag nakakuha ka ito pabalik, 310 00:15:36,020 --> 00:15:37,480 pagkatapos patakbuhin ang code na iyon. 311 00:15:37,480 --> 00:15:39,540 Ngunit ito ay hindi talaga tumakbo ang code na iyon. 312 00:15:39,540 --> 00:15:41,815 At nagkaroon ka ng isang katanungan? 313 00:15:41,815 --> 00:15:46,180 >> Madla: tila mo upang magpahiwatig ng ilang beses na ang pagdagdag computationally 314 00:15:46,180 --> 00:15:50,545 intensive code uri ng masira ang Hinihimok ng sistema [hindi marinig]. 315 00:15:50,545 --> 00:15:51,795 [Hindi marinig]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> Kevin Schmid: Iyon ay isang mahusay na tanong. 318 00:15:55,290 --> 00:15:59,280 Kaya talaga akong magkaroon ng isang halimbawa ng kung paano maaari mong isama ang computationally 319 00:15:59,280 --> 00:16:01,090 intensive code sa ilang sandali. 320 00:16:01,090 --> 00:16:03,620 Kaya kapag makuha namin sa mga halimbawang code, Kukunin ko siguraduhin upang hilahin ang isa na. 321 00:16:03,620 --> 00:16:04,700 OK ba iyon? 322 00:16:04,700 --> 00:16:05,950 Salamat sa inyo. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Ano ang iyong pangalan? 325 00:16:08,750 --> 00:16:10,620 >> Madla: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> Kevin Schmid: Aaron ay may lumilitaw na isang napaka- magandang punto, na kung saan ay kung nagkaroon ako 327 00:16:14,830 --> 00:16:18,560 ilang computationally intensive code sa ang gawin mga bagay-bagay na may f bahagi, ang natitirang bahagi ng 328 00:16:18,560 --> 00:16:22,880 Hindi maaaring tumakbo ang aking mga programa at hindi maaaring makinig para sa mga bagong kahilingan o anumang bagay hangga't ang lahat ng 329 00:16:22,880 --> 00:16:24,270 bagay-bagay na ay tapos na. 330 00:16:24,270 --> 00:16:27,390 Kaya kung Sumulat ako Node code sa pangkalahatan maliban kung gagawin namin ang isang bagay tulad pupuntahan ko 331 00:16:27,390 --> 00:16:33,060 upang magmungkahi ng ibang pagkakataon kapag tinitingnan namin ang mga mga halimbawa code, mayroon akong upang makatiyak na ang 332 00:16:33,060 --> 00:16:36,060 ang aking code ay hindi itali ito loop kaganapan. 333 00:16:36,060 --> 00:16:38,120 Ba na magkaroon ng kahulugan? 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 Cool. 336 00:16:40,040 --> 00:16:47,090 >> Kaya nag-aalok ng Node.js ito framework na maaari kang bumuo ng mga kaganapan hinihimok ng 337 00:16:47,090 --> 00:16:48,210 mga server na may. 338 00:16:48,210 --> 00:16:53,460 Kaya mayroon itong mga uri ng asynchronous non-pagharang I / O aklatan, samantalang ang 339 00:16:53,460 --> 00:16:56,800 ang standard C library na nakapunta namin nagtatrabaho sa, tulad ng kung ikaw lamang 340 00:16:56,800 --> 00:16:59,500 gamitin ang mga ito sa parehong paraan na hindi namin ginagamit ang mga ito na may f bubukas at 341 00:16:59,500 --> 00:17:03,000 mga bagay-bagay, mga bina-block dahil talaga mo na kailangang maghintay para 342 00:17:03,000 --> 00:17:04,470 na file upang mabuksan. 343 00:17:04,470 --> 00:17:09,290 >> Ngunit nagbibigay sa iyo ng Node.js na at ito talaga Kaugnayan sa V8 ng Google 344 00:17:09,290 --> 00:17:14,030 JavaScript engine kung saan ay ang dahilan na Chrome ay kaya mabilis sa pagproseso 345 00:17:14,030 --> 00:17:17,040 JavaScript sapagkat ito May V8 engine na ito. 346 00:17:17,040 --> 00:17:22,460 Kaya alam ko na tunog tulad ng isa sa mga WWDC conference developer bagay 347 00:17:22,460 --> 00:17:25,390 kung saan sila ihagis lamang ng grupo ng mga numero ng sulat ng mga bagay para sa processors 348 00:17:25,390 --> 00:17:26,910 at sabihin ito ay kaya cool. 349 00:17:26,910 --> 00:17:34,200 Ngunit ito ay cool na na nila ginawa na ito dahil ang JavaScript - 350 00:17:34,200 --> 00:17:37,010 o siguro kung hindi ka pamilyar sa JavaScript pa dahil hindi pa namin ay nagkaroon ng 351 00:17:37,010 --> 00:17:38,180 ang mga aralin sa ito - 352 00:17:38,180 --> 00:17:40,770 ngunit JavaScript ay isang kahulugan wika. 353 00:17:40,770 --> 00:17:41,970 >> At ito ay masyadong isang mahalagang punto. 354 00:17:41,970 --> 00:17:45,790 Kaya mahalaga ito para sa aming web mga server upang maging mabilis, tama? 355 00:17:45,790 --> 00:17:49,970 At kung tayo ay lamang na tumatakbo JavaScript code na na-kahulugan na may lamang 356 00:17:49,970 --> 00:17:52,130 anumang lumang interpreter maaari itong maging mabagal. 357 00:17:52,130 --> 00:17:55,980 Kaya Node benepisyo mula sa pagkakaroon ito napakabilis na V8 interpreter. 358 00:17:55,980 --> 00:17:59,580 At hindi ko alam kung pinangalanan nila ito dahil ang V8 sampal sa noo 359 00:17:59,580 --> 00:18:01,110 bagay, ngunit ang OK. 360 00:18:01,110 --> 00:18:07,070 >> Kaya naghanda ako ng ilang mga halimbawa sa URL na ito. 361 00:18:07,070 --> 00:18:10,490 Pagkatapos ng seminar, uri ng pupuntahan ko makipag-usap tungkol sa kung paano ka maaaring makakuha ng Node hanay 362 00:18:10,490 --> 00:18:13,570 up, ngunit sa ngayon, ko lang uri ng mga gusto upang maglakad sa pamamagitan ng ilang mga halimbawa code. 363 00:18:13,570 --> 00:18:17,250 Kaya kung nais mong sundin kasama, lahat ng mga source code ay magagamit doon. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Kaya makikita ko bang iwan ang URL na ito up para sa isang maliit. 366 00:18:22,280 --> 00:18:24,440 At pagkatapos lamang pupuntahan ko lumipat papunta sa terminal. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Magandang may URL na ito ay lahat ng tao? 369 00:18:34,400 --> 00:18:37,990 Kaya pupuntahan ko lumipat sa paglipas ng sa aking terminal dito. 370 00:18:37,990 --> 00:18:42,030 >> Kaya narito ang code na Mayroon akong para sa araw na ito. 371 00:18:42,030 --> 00:18:43,960 Bakit hindi magsisimula kami sa simpler.js-file? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Ang iba pang mga bagay ay na ang lahat ng ito code ay pagpunta sa ay maisulat sa 374 00:18:52,100 --> 00:18:56,660 Kung saan maaari kang JavaScript o maaaring hindi pamilyar sa. 375 00:18:56,660 --> 00:19:00,170 Hulaan ko ng ilang mga bagay ay na marami ng code ng JavaScript ay ang uri ng 376 00:19:00,170 --> 00:19:04,000 syntax at istraktura ay halos kapareho sa C, kaya maaari mo itong uri ng pick up bilang 377 00:19:04,000 --> 00:19:05,020 mo sumama. 378 00:19:05,020 --> 00:19:08,750 Sinubukan kong magsulat ng maraming mga nagsisimula code para ito sa isang paraan na 379 00:19:08,750 --> 00:19:11,230 katulad sa C upang ito ay mas nababasa ng kaunti. 380 00:19:11,230 --> 00:19:15,980 Ngunit bilang pagsulong namin, magpapadala ako maging na nagpapakita ng ilan sa mga karagdagang 381 00:19:15,980 --> 00:19:18,980 mga tampok ng JavaScript na mga uri ng mga cool. 382 00:19:18,980 --> 00:19:21,510 >> Ngunit tingnan natin ang sample programa ipaalam. 383 00:19:21,510 --> 00:19:24,820 Hulaan ko ang lahat ng bagay ay cut off doon. 384 00:19:24,820 --> 00:19:28,500 Lamang ako ng pagpunta sa ayusin na tunay mabilis kung na OK lang o hindi. 385 00:19:28,500 --> 00:19:31,400 Hindi ko alam kung ano ito ay pagpunta sa gawin. 386 00:19:31,400 --> 00:19:34,660 Iyan ba ang isang maliit na mas mahusay? 387 00:19:34,660 --> 00:19:36,510 Nakikita mo ba ang var at bagay-bagay? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Kaya ang unang linya ay tulad ng JavaScript bersyon ng isang variable 390 00:19:44,120 --> 00:19:44,800 deklarasyon. 391 00:19:44,800 --> 00:19:49,870 Kaya lamang upang i-highlight kung ano ang gagawin mukhang sa C. Kaya ito ay tulad lamang 392 00:19:49,870 --> 00:19:52,620 sa akin sinasabi index ay katumbas ng tatlong o ang isang bagay tulad na. 393 00:19:52,620 --> 00:19:55,740 Kaya ako ay hindi tukuyin ang uri. 394 00:19:55,740 --> 00:20:00,780 JavaScript ang may mga uri, ngunit ito ay napaka dynamic na nai-type sa kalikasan, kaya 395 00:20:00,780 --> 00:20:02,580 ay hindi magbigay ng anumang uri ng uri dito. 396 00:20:02,580 --> 00:20:03,670 Kaya lamang ay may var. 397 00:20:03,670 --> 00:20:05,320 Iyan ay tulad ng variable. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> At ako sa pagtawag variable HTTP ito. 400 00:20:08,340 --> 00:20:12,480 At sa aking kanang bahagi banda, mayroon akong expression na gusto kong ilagay sa HTTP. 401 00:20:12,480 --> 00:20:14,960 At ito sabi ni nangangailangan ng HTTP. 402 00:20:14,960 --> 00:20:18,500 Kaya ito ay uri ng katulad na isama. 403 00:20:18,500 --> 00:20:22,940 Ito ay isang kaunti pa tulad ng malakas kaysa Kasama sa kamalayan na isama 404 00:20:22,940 --> 00:20:26,100 Gusto kopyahin lamang at i-paste ang header mag-file para sa pag-andar modelo o 405 00:20:26,100 --> 00:20:27,930 ano naman may mga kahulugan uri. 406 00:20:27,930 --> 00:20:30,590 Ngunit nangangailangan ay aktwal na pagpunta upang makakuha ng sa amin ang code. 407 00:20:30,590 --> 00:20:33,280 >> Kaya maaari mong isipin na ito bilang pag-import ng ilang mga code. 408 00:20:33,280 --> 00:20:37,960 Kaya sa isang lugar sa module Node.js system o kahit ano, mayroon sila ng lahat ng ito 409 00:20:37,960 --> 00:20:40,790 Code ng HTTP server kaya lang ako sa pagkuha ito para sa aking sarili 410 00:20:40,790 --> 00:20:43,130 personal na paggamit sa programang ito. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Kaya pagkatapos Mayroon akong na ito ng function na na naisulat ko. 413 00:20:46,930 --> 00:20:50,330 At mapansin Hindi ko kinailangang tukuyin ang uri ng pagbalik o ang uri ng 414 00:20:50,330 --> 00:20:51,140 argumento muli. 415 00:20:51,140 --> 00:20:54,440 Kaya uri ng paalpasin nai-type sa na uri ng pakiramdam. 416 00:20:54,440 --> 00:20:57,290 Dalawang mga argument na ito ay tumatagal ng in, ang kahilingan at tugon. 417 00:20:57,290 --> 00:21:02,080 Kaya na conceptually uri ng tulad ng pamilyar na mula sa larawan na namin ay may 418 00:21:02,080 --> 00:21:05,280 sa screen bago dahil makuha namin ang hiling na ito na namin 419 00:21:05,280 --> 00:21:06,410 Mayroon mula sa user. 420 00:21:06,410 --> 00:21:09,170 At pagkatapos ay mayroon kaming isang tugon na maaari naming isulat ang mga bagay na. 421 00:21:09,170 --> 00:21:15,060 >> Kaya ang unang linya ng ito gumagana res.writeHead 200 at pagkatapos ito 422 00:21:15,060 --> 00:21:17,070 uri ng nilalaman ng teksto plain. 423 00:21:17,070 --> 00:21:19,300 Kaya sabihin piraso ito hiwalayin ng kaunti. 424 00:21:19,300 --> 00:21:22,340 Kaya hayaan tumuon lamang sa res.write para sa isang maliit. 425 00:21:22,340 --> 00:21:28,420 Kaya write ay isa lamang, at isulat ang ulo, lamang ang mga paraan upang uri ng isulat 426 00:21:28,420 --> 00:21:29,960 bagay sa tugon. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Kaya sumulat ng ulo, kung sinuman Naaalala mula sa HTTP panayam, gawin mo guys 429 00:21:36,230 --> 00:21:39,940 tandaan header sa tuktok ng HTTP bagay? 430 00:21:39,940 --> 00:21:43,580 Kaya bakit hindi lamang demo ko mga header ng real mabilis. 431 00:21:43,580 --> 00:21:44,640 Gusto na maging kapaki-pakinabang? 432 00:21:44,640 --> 00:21:45,500 O kaya dapat namin lamang uri ng - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Oo naman. 435 00:21:46,740 --> 00:21:52,340 >> Kaya kapag naging iyong browser sa google.com o ang isang bagay tulad na, 436 00:21:52,340 --> 00:21:54,250 mayroong talagang isang kaunti pa - 437 00:21:54,250 --> 00:21:55,380 ito ay tulad ng isang lihim na - 438 00:21:55,380 --> 00:21:58,340 mayroong tulad ng isang maliit na higit pang impormasyon na nanggagaling sa pamamagitan ng pipe kaysa lamang 439 00:21:58,340 --> 00:22:00,180 ang maliit na paghahanap at ang lahat. 440 00:22:00,180 --> 00:22:03,550 Kaya upang ipakita sa iyo na ito, pupuntahan ko gumamit ng isang programa na tinatawag na kulot. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Kaya ito ay isang bagay na maaari mong patakbuhin sa ang iyong Mac OSX command line o sa 443 00:22:08,020 --> 00:22:09,830 appliance o kahit ano. 444 00:22:09,830 --> 00:22:17,050 At kaya kung ako mabaluktot HTTP google.com, Pupunta ako upang makita ang mga HTML. 445 00:22:17,050 --> 00:22:21,230 At ito ay, sa pagkamakatarungan, lamang ang HTML na uri ng nagsasabi sa iyo upang 446 00:22:21,230 --> 00:22:24,695 nagre-redirect sa www kung ang iyong browser ay hindi Awtomatikong pangasiwaan ang 447 00:22:24,695 --> 00:22:27,110 pag-redirect. 448 00:22:27,110 --> 00:22:33,390 >> Kaya ito ay lamang ng HTML, ngunit ako pupunta upang idagdag sa mabaluktot ito gitling-flag ako. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 At ito ay pagpunta upang ipakita sa akin ang mga header. 451 00:22:35,600 --> 00:22:40,640 Kaya ito ay impormasyon na ay dumarating rin sa pamamagitan kapag nakukuha ko ang tugon na ito. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Kaya sa tuktok, makikita mo ito HTTP 301 permanenteng ilipat. 454 00:22:45,320 --> 00:22:49,470 At ito ay uri ng mahalaga dahil ito ay tumutukoy sa code ng katayuan. 455 00:22:49,470 --> 00:22:53,750 Kaya ang 301 dito ay ang code ng katayuan, na kung saan ay isa lamang lamang isang integer 456 00:22:53,750 --> 00:22:57,750 na nagsasabi sa browser o kung sinuman ang pagbabasa na ito, kung magpanggap ka na 457 00:22:57,750 --> 00:23:01,460 ikaw ay isang browser at nakikita mo ito, talaga ngayon kung tiningnan mo ang 458 00:23:01,460 --> 00:23:04,960 na at makakita ka ng 301, alam mo na mayroon akong upang gawin ang isang bagay espesyal na batay sa 459 00:23:04,960 --> 00:23:08,810 301, o isang bagay na espesyal na nangyari batay sa 301. 460 00:23:08,810 --> 00:23:12,640 Kaya sinasabi nito inilipat permanente. 461 00:23:12,640 --> 00:23:17,700 >> At pagkatapos ay, talaga, mayroon kami ng grupo ng mga key mga pares ng halaga. 462 00:23:17,700 --> 00:23:22,100 Kaya makuha namin ang lokasyon ay ang www.google.com. 463 00:23:22,100 --> 00:23:25,190 At pagkatapos uri ng lahat ng ito sa iba pang mga bagay-bagay, ngunit isa lamang, ano ang lokasyon ay 464 00:23:25,190 --> 00:23:29,662 sinasabi ay ang bagong lokasyon ay sa www.google.com. 465 00:23:29,662 --> 00:23:33,800 Kaya ngayon kung pupunta ka sa google.com, makakakuha ka uri ng makita ang uri ng blink browser 466 00:23:33,800 --> 00:23:38,770 para sa isang pangalawang at pagkatapos ay i-redirect ka kanan pabalik sa www.google.com. 467 00:23:38,770 --> 00:23:41,840 Kaya ang mga tugon ay maaaring maglaman ng mga header. 468 00:23:41,840 --> 00:23:43,330 >> At isang pares ng mga bagay upang ituro. 469 00:23:43,330 --> 00:23:46,890 Kaya sabihin nating kami ay talagang matagumpay sa pagbisita sa isang web page. 470 00:23:46,890 --> 00:23:49,040 Kaya hayaan mo akong pumunta sa - 471 00:23:49,040 --> 00:23:51,080 kung ano ang isang magandang website? 472 00:23:51,080 --> 00:23:53,285 Ako ay masamang sa pag-iisip ng mabuti mga website sa spot. 473 00:23:53,285 --> 00:23:53,640 >> Madla: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> Kevin Schmid: OK. 475 00:23:54,160 --> 00:23:56,040 Ni gawin Wikipedia Hayaan. 476 00:23:56,040 --> 00:23:58,680 Kaya dito ako ay inilipat. 477 00:23:58,680 --> 00:23:59,240 Oh maghintay. 478 00:23:59,240 --> 00:24:00,160 Was ko? 479 00:24:00,160 --> 00:24:00,890 Oo, ako ay. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Kaya ang nakuha ko na gawin www. 482 00:24:03,005 --> 00:24:06,006 Kaya pupuntahan ko gawin www. 483 00:24:06,006 --> 00:24:09,680 At bilang maaari mong makita, narito ang lahat ng mga HTML na iproseso ang browser 484 00:24:09,680 --> 00:24:10,910 para sa Wikipedia. 485 00:24:10,910 --> 00:24:14,055 >> Ngunit kung panatilihin ko pag-scroll up dito, kung ano ang makikita ko bang makita sa tuktok - 486 00:24:14,055 --> 00:24:17,800 a, mayroong maraming HTML sa Wikipedia - 487 00:24:17,800 --> 00:24:22,550 ngunit kung ano ang maaari kong makita sa tuktok dito ay ito 200 na code ng katayuan bilang kabaligtaran sa 488 00:24:22,550 --> 00:24:24,570 301 na nakita ko nang mas maaga. 489 00:24:24,570 --> 00:24:27,100 At mapansin na ito ay may maganda friendly na OK sa tabi nito. 490 00:24:27,100 --> 00:24:29,470 Kaya ito ay tulad ng mahusay na code ng katayuan. 491 00:24:29,470 --> 00:24:31,160 >> Ba na 200 numero tumingin pamilyar? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Oo dahil kapag ginawa ko simpler.js, Isinulat ni ko ang isang 200 doon. 494 00:24:39,880 --> 00:24:43,290 Kaya na talaga sinasabi sabihin ang browser o kung sinuman ay sinusubukan upang makakuha ng sa 495 00:24:43,290 --> 00:24:45,440 ito na sila ay matagumpay. 496 00:24:45,440 --> 00:24:49,040 O kaya na uri ng tulad namin matagumpay ay masyadong. 497 00:24:49,040 --> 00:24:54,320 >> At mayroong ganitong uri ng espesyal na syntax sa Javascript para sa deklarasyon ng 498 00:24:54,320 --> 00:24:59,870 mapa ng mga key tulad ng uri ng nilalaman at ang mga halagang tulad ng teksto plain. 499 00:24:59,870 --> 00:25:03,780 Kaya't kung tiningnan mo ang mga tugon na namin Naging pabalik mula sa Wikipedia bago, - 500 00:25:03,780 --> 00:25:06,200 Pupunta ako upang subukang mag-scroll up ng isang maliit na mas mabilis - 501 00:25:06,200 --> 00:25:09,900 mayroon kang mga key tulad ng server at ang mga halagang ito Apache. 502 00:25:09,900 --> 00:25:12,120 Kaya mo na kailangan ang mga pindutan at mga halaga. 503 00:25:12,120 --> 00:25:15,930 At maaari mong tukuyin ito sa Node kung ano na magpadala ng likod. 504 00:25:15,930 --> 00:25:19,380 >> Kaya ito ay talagang uri ng, sa ilang paraan, at sa ilang mga paraan na ito ay hindi 505 00:25:19,380 --> 00:25:23,170 talaga ito, ngunit ito ay isang maliit na mas mababang antas kaysa sa code na PHP na maaari kang maging 506 00:25:23,170 --> 00:25:26,980 sumusulat para sa P-set pitong dahil PHP at Apache uri ng mag-ingat ng ilang mga 507 00:25:26,980 --> 00:25:28,150 ng mga bagay na ito para sa iyo. 508 00:25:28,150 --> 00:25:32,520 Sa PHP, maaari mong sasapaw sa default pag-uugali sa pamamagitan ng pagsusulat ng iyong sariling mga header. 509 00:25:32,520 --> 00:25:35,520 Ngunit para sa mga layunin ng ito, makakakuha tayo ng upang isulat ang aming sariling mga header. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Kaya ang linya na magkaroon ng kahulugan upang lahat ng tao, ang pagpapawalang ulo linya? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Kahanga-hanga. 514 00:25:42,280 --> 00:25:45,870 >> Kaya pagkatapos ay kung ano ang gagawin ko ay tapusin ko ang tugon sa pamamagitan ng sinasabi kumusta mundo. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Ngunit iyon lamang ang isang function lamang tinatawag na handler kahilingan. 517 00:25:49,920 --> 00:25:53,510 Kaya ngayon talagang Kailangan ko bang uri ng gawin isang bagay na may ganitong function, tama? 518 00:25:53,510 --> 00:25:59,170 >> Kaya dito kung ano ang gagawin ko ay doon ay ito linya na gagawin var server ay katumbas ng 519 00:25:59,170 --> 00:26:03,530 HTTP.create server, at pagkatapos ay ako pumasa sa handler kahilingan. 520 00:26:03,530 --> 00:26:06,080 Kaya ito ay uri ng Node paraan ng paglikha ng isang server. 521 00:26:06,080 --> 00:26:08,790 At mapansin na ako ng pagpasa sa handler kahilingan. 522 00:26:08,790 --> 00:26:12,290 Kaya ito ay nagsasabi sa mga createServer function na gusto ko sa inyo upang ako ay maging isang 523 00:26:12,290 --> 00:26:16,270 server, at kapag na natatanggap ng server na isang tugon, Kailangan ko mong tawagan ito 524 00:26:16,270 --> 00:26:18,680 humiling handler function. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Kaya halos na linya tatapusin kaagad. 527 00:26:22,290 --> 00:26:28,780 Kaya ang var server linya ay tapos na karapatan pagkatapos mong gawin na medyo magkano. 528 00:26:28,780 --> 00:26:31,770 Ibig kong sabihin, mayroon itong i-set up ang ilang mga panloob estado upang malaman na gusto mong i- 529 00:26:31,770 --> 00:26:35,400 tumawag na handler kahilingan function, ngunit hindi ito ng pagpunta sa umupo doon at 530 00:26:35,400 --> 00:26:37,730 sabihin nating may gumagamit na ipinadala sa akin ng isang kahilingan pa? 531 00:26:37,730 --> 00:26:39,270 Ay nagpadala sa akin ng gumagamit ang isang kahilingan pa? 532 00:26:39,270 --> 00:26:40,780 Kaya ito ay hindi hinaharangan. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Kaya kung ano ito ay gawin ay ito talaga nag-iimbak ngayon tagaturo patungo sa ang code na ito, 535 00:26:46,120 --> 00:26:49,670 ang hiling na ito humahawak ng pag-andar, at pagkatapos ay Tatakbo na code kapag ang isang tao 536 00:26:49,670 --> 00:26:52,170 gumagawa ng isang kahilingan. 537 00:26:52,170 --> 00:26:54,120 At pagkatapos ay ginagawa namin server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> Ang 1337 doon ay medyo arbitrary. 540 00:26:59,960 --> 00:27:02,285 Nagkaroon na ako walang partikular na dahilan para sa pagpili ng numerong iyon. 541 00:27:02,285 --> 00:27:03,860 Ito ay lubos na random. 542 00:27:03,860 --> 00:27:07,010 Ngunit iyon lamang tinutukoy ang port. 543 00:27:07,010 --> 00:27:10,640 Kaya karamihan ng mga web server makikita mo na sila gamitin ang port 80 dahil na uri 544 00:27:10,640 --> 00:27:11,810 ng tulad ng convention. 545 00:27:11,810 --> 00:27:16,170 Kaya kung pumunta ako sa isang bagay tulad ng, Hindi ko alam, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 at ko bang ilagay ang tutuldok 8 - 547 00:27:17,700 --> 00:27:18,610 oh a, hindi mo maaaring makita na. 548 00:27:18,610 --> 00:27:19,370 Sorry. 549 00:27:19,370 --> 00:27:21,820 Ngunit kung gagawin ko Wikipedia - 550 00:27:21,820 --> 00:27:24,810 Kukunin ko isulat ito dito kaya lang na ito ay malinaw sa camera. 551 00:27:24,810 --> 00:27:29,150 Subalit kung gagawin ko ito sa isang browser na may ng tutuldok 80, na tumutukoy pumunta sa 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org sa port 80. 553 00:27:31,430 --> 00:27:36,200 Kaya ito ay tulad ng kung paano ang Estados Unidos ay may maramihang port tulad ng kung saan maaari mong ipadala ang mga 554 00:27:36,200 --> 00:27:37,440 bagay na uri ng. 555 00:27:37,440 --> 00:27:40,730 Kaya ito ay tulad ng pumunta sa ang partikular na ilagay sa server na ito. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Kaya lang pinili ko 1337. 558 00:27:45,730 --> 00:27:47,910 Mayroong isang buong saklaw ng mga numero na maaari kang pumili. 559 00:27:47,910 --> 00:27:50,390 Iyon ay hindi lubos na espesyal. 560 00:27:50,390 --> 00:27:54,560 >> Ngunit ano pupuntahan ko gawin ngayon ay pupuntahan ko tumakbo Node. 561 00:27:54,560 --> 00:27:59,730 Hayaan akong aktwal na ipasok na ng ilang mga linya pababa sa gayon maaari mong makita ito. 562 00:27:59,730 --> 00:28:03,130 Pupunta ako sa ginagawa Node, at ako ay pagpunta sa magpatakbo simpler.js. 563 00:28:03,130 --> 00:28:06,880 At muli naming makipag-usap tungkol sa kung paano makakuha ng Set up ng node sa ilang sandali. 564 00:28:06,880 --> 00:28:09,350 Ngunit ngayon na pinapagana nito lamang sa server. 565 00:28:09,350 --> 00:28:14,360 >> Kaya isang bagay na maaari naming subukan na ay hindi maaring maging kapana-panabik na ay maaari namin talaga 566 00:28:14,360 --> 00:28:16,300 subukan na i-access ito sa mabaluktot. 567 00:28:16,300 --> 00:28:20,680 Kaya ang maaari kong gawin mabaluktot, at ang aking machine ay lokal host. 568 00:28:20,680 --> 00:28:24,600 Makikita mo rin ang nakasulat na ito tulad nito minsan. 569 00:28:24,600 --> 00:28:29,810 Lokal na host at 127.0.0.1 mga uri ng tulad ng iyong computer sa bahay. 570 00:28:29,810 --> 00:28:33,180 Kaya ito ay tulad ng pakikipag-usap sa iyong sariling computer. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> At pagkatapos ay maaari kong sabihin 1337. 573 00:28:36,030 --> 00:28:39,630 Kaya kung nagpatakbo ako ng ito linya ng code, ito sabi kumusta mundo. 574 00:28:39,630 --> 00:28:44,050 At kung nais kong makita ang mga bagay na iyon Nagkaroon uri ng nilalaman ng teksto o plain 575 00:28:44,050 --> 00:28:46,560 kahit ano, kahit ma ko bang ilagay ito dito. 576 00:28:46,560 --> 00:28:48,810 At mapansin na ito sinasabi sa OK. 577 00:28:48,810 --> 00:28:50,810 At gagawin ko mayroon teksto plain. 578 00:28:50,810 --> 00:28:53,140 At pagkatapos ay mayroong uri ng lahat ng ito sa iba pang mga bagay-bagay na Node idadagdag sa 579 00:28:53,140 --> 00:28:54,440 doon para sa akin. 580 00:28:54,440 --> 00:28:55,700 Iyan ay hindi sobrang mahalaga. 581 00:28:55,700 --> 00:28:58,230 >> Ibig kong sabihin, mayroong ilang mga uri ng mga teknikal na aspeto ng sa na mga uri 582 00:28:58,230 --> 00:29:02,280 mga astig na pag-uusapan, ngunit upang ipakita lamang sa iyo, mayroon din ako ng kapangyarihan upang 583 00:29:02,280 --> 00:29:03,070 baguhin ang mga paligid. 584 00:29:03,070 --> 00:29:06,280 Kaya ko maaaring lamang magdagdag ng isang bungkos ng mga bagay-bagay tulad na. 585 00:29:06,280 --> 00:29:11,780 At pagkatapos ngayon, kung tiningnan ko sa aking output, ito iyon. 586 00:29:11,780 --> 00:29:19,740 Kaya ang mga header ibig sabihin ng ilang mga bagay sa mga browser at mga bagay tulad na. 587 00:29:19,740 --> 00:29:23,040 >> At header maaari talaga sabihin sa isang browser kung paano tumugon sa isang bagay. 588 00:29:23,040 --> 00:29:26,280 Kung sakaling mo na narinig ng cookies bago, o kung kailanman ka nakapunta inis 589 00:29:26,280 --> 00:29:29,330 sa pamamagitan ng pagtatakda ng cookies web page, o naka-on block ng cookie o 590 00:29:29,330 --> 00:29:30,320 ang isang bagay tulad na. 591 00:29:30,320 --> 00:29:33,040 Maaari mong aktwal na magtakda ng cookies sa mga header. 592 00:29:33,040 --> 00:29:36,990 Kaya sabihin na nila ang isang browser kung paano pag-uugali sa ilang mga kaso. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Kaya na noon ay simpler.js. 595 00:29:40,310 --> 00:29:42,780 Kahit sinong mayroon ba kayong mga katanungan sa na source code na file? 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 Cool. 599 00:29:46,490 --> 00:29:50,780 >> Kaya alisin ni ang r mula sa na ipaalam at tumingin sa simple.js. 600 00:29:50,780 --> 00:29:53,010 Kaya ito ay medyo magkano parehong programa. 601 00:29:53,010 --> 00:29:56,030 Isinulat ni ko lang ito ng kaunti naiiba dahil Nais kong upang ayusin ng highlight 602 00:29:56,030 --> 00:29:57,850 ang ilang mga tampok ng JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Kaya mapapansin na ang humahawak ng kahilingan function na ay lubos na vanished. 604 00:30:03,880 --> 00:30:05,800 Oh yep, ay may tanong ka? 605 00:30:05,800 --> 00:30:08,200 >> Madla: Oo, ang mga argumento na ang nakapasa sa na 606 00:30:08,200 --> 00:30:10,120 function, ano ang mga ito? 607 00:30:10,120 --> 00:30:12,050 >> Kevin Schmid: Kaya mga mga JavaScript bagay. 608 00:30:12,050 --> 00:30:15,230 Sa dokumentasyon Node.js, ito talaga sabi kung ano ang mga pamamaraan ay 609 00:30:15,230 --> 00:30:15,910 magagamit sa mga ito. 610 00:30:15,910 --> 00:30:19,602 Mangyari lang namin na magkaroon ng access sa ang pamamaraang ito na tinatawag na pagpapawalang ulo at pagtatapos 611 00:30:19,602 --> 00:30:20,730 at bagay-bagay tulad na. 612 00:30:20,730 --> 00:30:22,590 Subalit mayroong isang buong bungkos higit pang mga pamamaraan. 613 00:30:22,590 --> 00:30:27,670 >> At halimbawa, tulad ng isa sa mga ito sa partikular na sa rec, maaari mong gawin 614 00:30:27,670 --> 00:30:34,540 isang bagay tulad ng rec.method na habilin sabihin sa iyo kung ito ay ang isang HTTP kumuha o 615 00:30:34,540 --> 00:30:36,780 Mga kahilingan ng HTTP post at mga bagay tulad na. 616 00:30:36,780 --> 00:30:39,100 Kaya mayroong lahat ng uri ng iba't ibang ari-arian, ngunit ang mga ito ay parehong 617 00:30:39,100 --> 00:30:42,560 JavaScript bagay, at mayroon lamang nila mga function na nakalakip sa kanila na sa iyo 618 00:30:42,560 --> 00:30:43,850 makakapagsulat bagay na. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Kaya mapapansin na handler kahilingan ay ganap na nawala. 621 00:30:49,030 --> 00:30:52,650 Ngunit ang code na ako ay nagkaroon sa kahilingan handler ay doon pa rin. 622 00:30:52,650 --> 00:30:56,520 Mayroon pa rin ba akong ito res.writeHead at mayroon pa rin akong ito res.end. 623 00:30:56,520 --> 00:31:00,270 At kung ano ito ay isang halimbawa ng sa JavaScript ay sa ideya na ito ng isang 624 00:31:00,270 --> 00:31:01,460 anonymous na function. 625 00:31:01,460 --> 00:31:04,180 at ang hindi kilalang ay tulad ng isang agpang pangalan para ito dahil ito literal ay hindi 626 00:31:04,180 --> 00:31:05,180 magkaroon ng isang pangalan. 627 00:31:05,180 --> 00:31:07,900 Walang kahilingan function na handler sa doon. 628 00:31:07,900 --> 00:31:10,110 >> Walang pangalan, ngunit ito pa rin ay pagsasagawa ng isang argumento. 629 00:31:10,110 --> 00:31:12,250 Kaya pa rin ang nakuha ko rec at res. 630 00:31:12,250 --> 00:31:16,180 At mayroon pa rin ako ng code. 631 00:31:16,180 --> 00:31:18,930 Ito ay ganap na ganap fine Code ng JavaScript. 632 00:31:18,930 --> 00:31:22,540 Kaya ang maaari kong magpahayag ng isang function na walang tahasan na nagbibigay ito ng isang pangalan. 633 00:31:22,540 --> 00:31:24,250 Ito ay isang maliit na nakalilito sa unang. 634 00:31:24,250 --> 00:31:26,230 Mayroong ilang mga kapaki-pakinabang tulad ng mga bagay na maaari mong gawin sa 635 00:31:26,230 --> 00:31:28,450 mga anonymous na function. 636 00:31:28,450 --> 00:31:32,100 Kahit sino ay may anumang mga katanungan sa ito ba, o ay ito lamang ang OK upang, sa ngayon, 637 00:31:32,100 --> 00:31:34,130 uri ng lamang tanggapin na ito ay gawin ang parehong bagay? 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 >> Madla: unang Sigurado function klase sa JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> Kevin Schmid: ang una nilang klase sa JavaScript. 642 00:31:41,020 --> 00:31:45,490 At alam lamang na mga konsepto ng pagpasa sa isang hindi nakikilalang function na tulad ng 643 00:31:45,490 --> 00:31:49,600 ito ay nalalapat sa JavaScript na Maaaring sumulat sa inyong huling proyekto para sa 644 00:31:49,600 --> 00:31:51,260 ang web browser ng masyadong. 645 00:31:51,260 --> 00:31:56,700 Kaya halimbawa, sa JavaScript sa iyong browser, ito ay medyo din kaganapan 646 00:31:56,700 --> 00:32:00,680 hinimok sa kamalayan na kung ano ang makakakuha ka mayroon ay kapag nag-click ang ito 647 00:32:00,680 --> 00:32:02,640 button, gusto kong mong patakbuhin ang code na ito. 648 00:32:02,640 --> 00:32:07,070 >> Kaya ito ang parehong uri ng mga ideya ng client side kapag ang isang mouse-click o sila 649 00:32:07,070 --> 00:32:09,870 mouse sa ibabaw ng ilang mga larawan sa iyong web page, patakbuhin ang code na ito. 650 00:32:09,870 --> 00:32:11,350 Iyon ay maaaring ilapat sa mga server. 651 00:32:11,350 --> 00:32:16,380 Kaya na uri ng tulad ng mga kapana-panabik na dahilan kung bakit JavaScript ay isang tunay na 652 00:32:16,380 --> 00:32:19,810 angkop o ang ilang mga tao sa tingin ito ay isang angkop na wika para sa ganitong uri ng 653 00:32:19,810 --> 00:32:22,530 driver ng kaganapan ng server dahil mayroon kang mga anonymous na function. 654 00:32:22,530 --> 00:32:26,150 Mayroon kang ang buong ideya ng ito asynchronous code. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Sinuman ay may anumang mga katanungan? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Kaya na noon ay simple.js. 659 00:32:33,440 --> 00:32:38,070 Kaya tingnan natin ang isa pang ipaalam o ng ilang higit pa. 660 00:32:38,070 --> 00:32:42,040 Kaya ito ay sleep.js. 661 00:32:42,040 --> 00:32:47,160 Kaya kahit sino ay pamilyar sa ang C function ng pagtulog? 662 00:32:47,160 --> 00:32:50,936 Mula siguro ang isa sa mga mas naunang mga aralin o ang isang bagay tulad na? 663 00:32:50,936 --> 00:32:54,650 >> Kaya talaga maaari mong pumasa sa tingin ko isang bilang ng mga segundo o kung gumagamit ka ng U 664 00:32:54,650 --> 00:32:57,080 matulog ng ilang mga millisecond o nanoseconds. 665 00:32:57,080 --> 00:33:00,450 At isa lamang ang programa ay lamang ihinto tumatakbo para sa na tagal ng oras. 666 00:33:00,450 --> 00:33:01,280 Mag-right? 667 00:33:01,280 --> 00:33:06,970 At pagkatapos ay ito gisingin kalaunan at pagkatapos ay gagamitin lamang ito magpatuloy sa pagtakbo 668 00:33:06,970 --> 00:33:08,340 ang programa. 669 00:33:08,340 --> 00:33:12,740 >> Kaya server ang ganitong uri ng Binibigyan ang impression ng pagtulog. 670 00:33:12,740 --> 00:33:17,580 Kaya mapapansin na mayroon kami ng parehong res.writeHead 200 sa header bilang 671 00:33:17,580 --> 00:33:22,130 bago, ngunit pagkatapos ay naka-pagtawag namin ito function na tinatawag na hanay timeout. 672 00:33:22,130 --> 00:33:26,170 Itakda ang timeout ay magagamit sa din ang iyong web browser ang Google Chrome 673 00:33:26,170 --> 00:33:28,000 o Safari o kahit ano. 674 00:33:28,000 --> 00:33:31,720 At talaga kung ano ang ginagawa nito dito ay tumatagal sa isang function. 675 00:33:31,720 --> 00:33:33,360 Abiso, muli, ito ay isang anonymous na function. 676 00:33:33,360 --> 00:33:36,310 Kaya na uri ng mga cool na dahil kami gamit ang isang hindi nakikilalang pag-andar sa loob ng isang 677 00:33:36,310 --> 00:33:38,950 function ng anonymous na ay maaaring maging isang maliit na kakaiba. 678 00:33:38,950 --> 00:33:42,270 >> Ngunit tumatagal na function, na kung saan ay talaga sinasabi - at ang paraan na ito 679 00:33:42,270 --> 00:33:47,430 mga gawa ay nasa 5,000 millisecond, gusto kong sa iyo upang maisagawa na function na kung saan 680 00:33:47,430 --> 00:33:50,830 Nagtatapos lang ang tugon at writes hey. 681 00:33:50,830 --> 00:33:56,730 Kaya ay nagbibigay ito ng impresyon ng tulad ng sleeping, ngunit ang paraan na ito talaga 682 00:33:56,730 --> 00:33:59,780 Gumagana ay magpapadala kami tumatakbo sa pamamagitan ng ang linyang ito masyadong mabilis. 683 00:33:59,780 --> 00:34:01,190 Kami ay sumusulat lamang ng isang bagay. 684 00:34:01,190 --> 00:34:03,780 At pagkatapos ay gagamitin din namin tumatakbo sa pamamagitan ng ang linyang ito masyadong mabilis. 685 00:34:03,780 --> 00:34:08,620 Kaya hindi talaga kami pagpunta upang maghintay ng limang segundo. 686 00:34:08,620 --> 00:34:11,370 Lamang kami ng pagpunta sa tumakbo ang code na ito agad. 687 00:34:11,370 --> 00:34:14,219 >> At pagkatapos ay mayroong, muli, kaunti ito loop kaganapan na ngayon ay may mga bagay na ito 688 00:34:14,219 --> 00:34:17,570 nagrerehistro na talaga lamang Patuloy ng pagpunta sa paligid sa isang lupon 689 00:34:17,570 --> 00:34:21,620 at pagtingin sa orasan sa isang solong thread at sinasabi, May limang segundo 690 00:34:21,620 --> 00:34:22,360 pa ang pumasa? 691 00:34:22,360 --> 00:34:26,409 At pagkatapos ay kapag ito nakikita na ang pangalawang kamay ay inilipat tulad ng limang segundo o 692 00:34:26,409 --> 00:34:29,190 ano naman, kung gayon ito wakes up at sabi, oh, ano ang kailangan kong gawin? 693 00:34:29,190 --> 00:34:30,350 Oh Kailangan ko bang patakbuhin ang code na ito. 694 00:34:30,350 --> 00:34:33,110 At pagkatapos nito pupuntahan tumakbo res.end hey. 695 00:34:33,110 --> 00:34:35,360 >> Kaya muli, hindi kailanman kami ay naghihintay dito. 696 00:34:35,360 --> 00:34:38,590 Kaya ito ay hindi na ang code na ito sa loob ng ito function ay pagpunta sa tumagal ng limang 697 00:34:38,590 --> 00:34:39,900 segundo upang tumakbo. 698 00:34:39,900 --> 00:34:43,090 Ang code na ito ay tatakbo halos ay agad na, hindi bababa sa na may kaugnayan sa 699 00:34:43,090 --> 00:34:46,139 ang limang segundo na tayo ay pakikipag-usap tungkol sa mga naunang mga bago. 700 00:34:46,139 --> 00:34:52,100 >> Kaya lamang upang ipakita ito sa pagkilos, Ang maaari kong gawin Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 At ginawa ko Nagkamali ng isang bagay? 702 00:34:55,159 --> 00:34:56,310 Posibleng. 703 00:34:56,310 --> 00:34:57,410 Sorry. 704 00:34:57,410 --> 00:34:59,530 Ni makita kung ano ang maaari naming gawin upang ayusin ito Hayaan. 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 Kaya tiyak gamitin Node.js. 709 00:35:17,464 --> 00:35:19,440 Lang ako kidding. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Seg isa lang. 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 Alam ko kung ano ito ay. 715 00:35:29,130 --> 00:35:34,440 >> Kaya ang isyu ay na sa aking iba pang mga tab dito, tumatakbo ako ay Node nasa 716 00:35:34,440 --> 00:35:36,590 na parehong address, 1337. 717 00:35:36,590 --> 00:35:43,370 Kaya ang error na ito threw, kung tiningnan namin sa ito tunay na malapit, ay address sa 718 00:35:43,370 --> 00:35:45,180 gamitin, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Kaya ako ay gumagamit na ng 1337 dito. 720 00:35:47,970 --> 00:35:52,210 Kaya kung shut ko ito off, at pagkatapos ko ngayon subukan upang mapatakbo ito, sana ay, lahat ng bagay 721 00:35:52,210 --> 00:35:53,210 Magiging fine. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Kaya maaari ka lamang magkaroon ng isang bagay na pag-uuri ng pakikinig sa isang port nang sabay-sabay. 724 00:35:57,020 --> 00:35:59,660 Ang isa pang solusyon maaaring naging para sa akin i-edit lamang ang programa na iyon at gumawa 725 00:35:59,660 --> 00:36:02,370 ito na tulad ng 1338 o isang bagay tulad na. 726 00:36:02,370 --> 00:36:04,100 >> Ngunit ngayon pagtulog ay tumatakbo. 727 00:36:04,100 --> 00:36:06,400 Kaya ng aktwal na subukan ito sa ipaalam browser oras na ito dahil ito ay isang 728 00:36:06,400 --> 00:36:09,080 maliit unexciting upang makita ito sa isang terminal. 729 00:36:09,080 --> 00:36:13,560 Kaya ako lamang ang pagpunta upang pumunta sa na 127 address muli sa 1337. 730 00:36:13,560 --> 00:36:14,850 At kung maaari mong makita ito - 731 00:36:14,850 --> 00:36:18,050 Hindi ko alam kung maaari mong - ngunit ang aking browser pagkuha ng isang napaka, napaka-haba 732 00:36:18,050 --> 00:36:20,600 oras upang i-load o tulad ng limang segundo. 733 00:36:20,600 --> 00:36:23,460 >> At pagkatapos ay matapos na, ito sa wakas natapos na ang tugon. 734 00:36:23,460 --> 00:36:29,070 At hindi mo makita ito dahil ang bagay Inilipat sa paglipas ng kaunti, ngunit kapag gumawa ako 735 00:36:29,070 --> 00:36:32,500 ito ng kaunti mas maliit, mo ang maaaring makakita nito sabi ni hey. 736 00:36:32,500 --> 00:36:35,130 Kaya ko ang hey nakuha ko, ngunit pagkatapos ng limang segundo. 737 00:36:35,130 --> 00:36:38,510 At ito ay maaaring maging isang maliit na mas malinis upang makita ito dito sa terminal, kaya ako ay 738 00:36:38,510 --> 00:36:40,980 pagpunta sa gawin ang isang - 739 00:36:40,980 --> 00:36:43,540 ni gawin in dito hayaan - 740 00:36:43,540 --> 00:36:48,370 ni gawin mabaluktot address na ipaalam muli gamit ang 1337. 741 00:36:48,370 --> 00:36:50,820 At ko lang uri ng kailangang umupo dito para sa limang segundo. 742 00:36:50,820 --> 00:36:53,760 Ngunit mapapansin na ang server Maaaring tanggapin ng bagong mga sagot. 743 00:36:53,760 --> 00:36:54,940 Kaya ito ng mga Kopya hey. 744 00:36:54,940 --> 00:36:58,720 >> At sa demo na ito, talaga kung ano Ang maaari kong gawin sa iba pang mga tab - 745 00:36:58,720 --> 00:37:02,640 kaya sabihin nating gagawin ko ito sa isa pang tab, Pupunta ako sa ginagawa mabaluktot at ang parehong 746 00:37:02,640 --> 00:37:03,780 bagay muli. 747 00:37:03,780 --> 00:37:06,600 At ako pupunta upang subukang i-kick ang mga off ang guys sa parehong oras. 748 00:37:06,600 --> 00:37:08,260 Kaya pupuntahan ko gawin ito, at ako ay pagpunta sa lahi sa paglipas dito at ako ay 749 00:37:08,260 --> 00:37:09,650 pagpunta sa gawin ito muli. 750 00:37:09,650 --> 00:37:14,030 >> At gumawa ng ito ipaalam sa gayon ay Maaari makita ang dalawang iyan. 751 00:37:14,030 --> 00:37:20,250 Iyon ang isa naka-print hey at isa na naka-print na hey ang lahat ng mga paraan sa - 752 00:37:20,250 --> 00:37:22,550 gawin ni muli eksperimento na ipaalam. 753 00:37:22,550 --> 00:37:25,100 Talaga, gamitin ito ipaalam linlangin, kung na OK lang. 754 00:37:25,100 --> 00:37:30,520 >> Kaya pupuntahan ko gamitin ang shell bagay na ay nagbibigay-daan sa akin na talaga tumakbo ang dalawang kopya 755 00:37:30,520 --> 00:37:32,630 ng programa sa parallel. 756 00:37:32,630 --> 00:37:36,070 Kaya makikita patakbuhin ito ang unang programa at ang ikalawang programa sa parallel. 757 00:37:36,070 --> 00:37:39,060 Kaya ngayon kung pindutin ko ang Enter, ito ay pagpunta upang gumawa ng kahilingan na halos 758 00:37:39,060 --> 00:37:40,570 ay agad na sa parehong oras. 759 00:37:40,570 --> 00:37:42,620 Kaya ni bigyan ito ng isang shot ipaalam. 760 00:37:42,620 --> 00:37:44,950 >> Kaya't mapapansin ngayon sinasabi nito dalawang mga proseso. 761 00:37:44,950 --> 00:37:50,630 At kung gusto mong malaman, na 27,000 numero ay isa lamang ang proseso ng ID. 762 00:37:50,630 --> 00:37:52,940 At pagkatapos ay mapansin, sila naka-print hey sa parehong oras. 763 00:37:52,940 --> 00:37:56,820 Hindi nito ay nais namin ay may upang maghintay ng limang segundo para sa isa at pagkatapos ay matapos na, 764 00:37:56,820 --> 00:37:59,640 limang segundo mamaya makuha ang pangalawang. 765 00:37:59,640 --> 00:38:03,300 Kaya na uri ng, sa ilang mga paraan, ito ay hindi talaga ebidensya, subalit ito ay 766 00:38:03,300 --> 00:38:07,390 madaling gamitin na katibayan na ito ay hindi lamang tulad ng paghihintay limang segundo at pag-block 767 00:38:07,390 --> 00:38:08,960 ang buong thread. 768 00:38:08,960 --> 00:38:10,720 OK cool. 769 00:38:10,720 --> 00:38:17,850 >> Kaya't tinanong Aaron isang katanungan mas maaga na noon, well paano kung namin gawin ang isang bagay - 770 00:38:17,850 --> 00:38:18,735 Yep? 771 00:38:18,735 --> 00:38:19,051 >> Madla: Maghintay. 772 00:38:19,051 --> 00:38:21,585 Paano ay na naiiba mula sa printf buffer, bagaman? 773 00:38:21,585 --> 00:38:23,010 Hindi ba ito awtomatikong gawin iyon? 774 00:38:23,010 --> 00:38:25,390 Bakit mayroon kami upang mag-alala tungkol dito? 775 00:38:25,390 --> 00:38:26,555 >> Kevin Schmid: Oh, magagawa mo sabihin na isa pang beses? 776 00:38:26,555 --> 00:38:29,510 >> Madla: ba ang hindi nagkagusto printf buffer gawin ang eksaktong parehong bagay? 777 00:38:29,510 --> 00:38:31,280 >> Kevin Schmid: Ang printf buffer? 778 00:38:31,280 --> 00:38:32,753 >> Madla: Oo. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Was hindi sa isa sa mga pagsusulit sila ay pakikipag-usap tungkol sa kung paano kung ikaw mismo printf 781 00:38:40,609 --> 00:38:42,899 isang bagay at pagkatapos ay i-pause ito sa isa pangalawa, at pagkatapos ay mayroon kang ito loop sampung 782 00:38:42,899 --> 00:38:46,530 beses, magkakaroon ito ng maghintay ng sampung segundo at pagkatapos printf-sama ang lahat ng bagay? 783 00:38:46,530 --> 00:38:47,460 >> Kevin Schmid: Oh, OK. 784 00:38:47,460 --> 00:38:49,170 >> Madla: Ay ito sa paggawa nito bagay pagkatapos ay sa kasong ito? 785 00:38:49,170 --> 00:38:52,630 >> Kevin Schmid: Kaya ang tanong ay isa lamang sa isa sa mga dating mga pagsusulit 786 00:38:52,630 --> 00:38:57,200 o isang bagay, nagkaroon ng isang katanungan na talaga kung sinabi mong i-print ang f 10 787 00:38:57,200 --> 00:39:01,490 bagay sa isang pagkakataon at pagkatapos ay slept tulad ng sa ang proseso ng pagpi-print ng mga out, 788 00:39:01,490 --> 00:39:04,850 sa dulo para sa ilang kadahilanan, gagawin ito dump lamang ang mga lahat out sa screen. 789 00:39:04,850 --> 00:39:06,740 Kaya mayroong uri ng dalawang magkaibang konsepto dito. 790 00:39:06,740 --> 00:39:10,400 >> Kaya hulaan ko ang isang bagay ay na, sa ganitong kaso, kami ay pagharap sa dalawang magkaibang 791 00:39:10,400 --> 00:39:13,510 uri ng mga tao na humihiling sa server para sa mga bagay nang sabay-sabay. 792 00:39:13,510 --> 00:39:17,455 At ang dahilan na ang printf uri ng naghihintay ang isang katulad na at lumbay ang lahat ng ito out 793 00:39:17,455 --> 00:39:21,760 nang sabay-sabay ay higit na nauugnay sa paano printf uri ng - 794 00:39:21,760 --> 00:39:25,100 kaya ang paraan printf ay ang tunay ipinatupad ito talaga ay may upang 795 00:39:25,100 --> 00:39:28,850 makipag-usap sa mga operating system na magsulat na mga bagay-bagay sa console. 796 00:39:28,850 --> 00:39:33,460 Kaya ito ay hindi nais na gawin ang lahat ng na bagay-bagay agad kapag sinabi mong printf 797 00:39:33,460 --> 00:39:36,260 ilang string dahil na maaari makakuha ng mga mahal na kung ito ay may sa 798 00:39:36,260 --> 00:39:37,340 gawin iyon sa bawat oras. 799 00:39:37,340 --> 00:39:41,530 >> Kaya kung gagawin mo printf hey, ang iyong mga programa hindi maaaring aktwal na-print na 800 00:39:41,530 --> 00:39:43,040 agad sa console. 801 00:39:43,040 --> 00:39:46,080 Maaaring sabihin, OK, isinulat ko ito. 802 00:39:46,080 --> 00:39:49,570 At pagkatapos uri ng maghintay para mabigyan mo ito ng kaunti pa bago talaga 803 00:39:49,570 --> 00:39:51,380 sumusulat ito out sa console. 804 00:39:51,380 --> 00:39:54,040 >> Kaya ang dahilan na iyon ay ang kaso - 805 00:39:54,040 --> 00:39:56,450 at ito ay uri ng walang-kaugnayang sa pagtulog - 806 00:39:56,450 --> 00:40:00,060 ay ang pagtulog ay isang uri ng lamang injected sa doon upang ipakita ang 807 00:40:00,060 --> 00:40:02,480 katunayan na hindi ito sumulat ito synchronously. 808 00:40:02,480 --> 00:40:06,210 Ngunit ang dahilan para sa na lamang pagganap sa gayon ay hindi mo kailangang i- 809 00:40:06,210 --> 00:40:08,920 gumawa na maraming mga contact sa ang operating system. 810 00:40:08,920 --> 00:40:12,300 >> Ngunit dito, kung ano kami ay talagang sinusubukang gawin may ganitong pagtulog bagay ay palabas lamang 811 00:40:12,300 --> 00:40:17,730 na kapag mayroon kaming dalawang mga tao ng pagbisita website na ito, hindi ito pagpunta sa ilagay 812 00:40:17,730 --> 00:40:22,310 mga ito sa isang linya kung saan ito pupuntahan sabihin Mayroon akong upang makatulong sa iyo, at pagkatapos ay kapag ako ay 813 00:40:22,310 --> 00:40:25,350 lahat-lahat tapos pagtulong sa iyo pagkatapos ng mga limang segundo, pagkatapos ay pupuntahan ko 814 00:40:25,350 --> 00:40:26,750 ilipat papunta sa susunod na tao. 815 00:40:26,750 --> 00:40:29,515 Kaya hindi gumagana ang kahilingan sa unang tao itali na loop kaganapan 816 00:40:29,515 --> 00:40:31,610 kung na saysay. 817 00:40:31,610 --> 00:40:34,980 >> Ngunit dito ay ang tunay isang halimbawa ng isang bagay na itali 818 00:40:34,980 --> 00:40:36,090 hanggang sa loop ng kaganapan. 819 00:40:36,090 --> 00:40:39,130 Kaya narito ang isang kakila-kilabot function na kino-compute ang nth Fibonacci. 820 00:40:39,130 --> 00:40:43,510 Ito ay literal ang mas masama paraang kaya mo kino-compute ang nth numero ng Fibonacci. 821 00:40:43,510 --> 00:40:48,480 At ito ay tunay na kinikilala lamang kung saan ito ay nagmula sa, 822 00:40:48,480 --> 00:40:49,330 mayroong talaga - 823 00:40:49,330 --> 00:40:53,230 Ibig kong sabihin, maaari mong subukan upang pumunta mahanap ito - ngunit doon ay tulad ng isang napaka-napakahabang blog 824 00:40:53,230 --> 00:40:54,130 mag-post na ang isang tao ay sumulat. 825 00:40:54,130 --> 00:40:55,660 Ito ay tulad ng isa sa mga Reddit bagay. 826 00:40:55,660 --> 00:40:59,650 Ngunit isang tao criticized Node.js, at ginagamit nila ito bilang isang halimbawa. 827 00:40:59,650 --> 00:41:03,700 Kaya uri ng ko nais upang ipakita sa iyo ng dalawang iba't ibang pananaw upang makakuha lamang 828 00:41:03,700 --> 00:41:07,320 isang pangkalahatang pag-unawa sa mga konsepto sa likod ng mga dalawang bagay. 829 00:41:07,320 --> 00:41:13,050 >> Ngunit ay napili ito bilang lamang ng isang kakila-kilabot, horribly hindi mabisa computationally 830 00:41:13,050 --> 00:41:15,940 intensive na paraan upang makalkula ang nth numero ng Fibonacci. 831 00:41:15,940 --> 00:41:21,180 Kaya lang bilang isang bahagi tala, kung bakit ay ito kakila-kilabot na tulad sa isang paraan? 832 00:41:21,180 --> 00:41:23,210 Yep? 833 00:41:23,210 --> 00:41:25,130 >> Madla: Sabihin nating simulan mo out kasama ang 1,000. 834 00:41:25,130 --> 00:41:27,050 1,000 mga hating sa 999 at 998. 835 00:41:27,050 --> 00:41:28,970 Ang bawat isa sa mga hating ito sa dalawang bagay. 836 00:41:28,970 --> 00:41:30,890 Ang bawat isa sa mga hating ito sa dalawang bagay. 837 00:41:30,890 --> 00:41:31,355 >> Kevin Schmid: Mag-right. 838 00:41:31,355 --> 00:41:32,400 >> Madla: Lahat ng mga paraan pababa. 839 00:41:32,400 --> 00:41:32,840 >> Kevin Schmid: Mismong. 840 00:41:32,840 --> 00:41:37,330 Kaya lamang upang ulitin para sa camera, kung ako tumawag magsinungaling sa katulad 1,000 o isang bagay 841 00:41:37,330 --> 00:41:41,810 tulad na, ito ay malinaw naman hindi kukulangin sa o katumbas ng isa kaya pupuntahan ko 842 00:41:41,810 --> 00:41:46,040 pumunta sa ito tao kaso, at pagkatapos ay pupuntahan ko upang tawagan ang maliit na kasinungalingan 999 plus maliit na kasinungalingan 998. 843 00:41:46,040 --> 00:41:50,290 At pagkatapos ay halos lahat ng na gawa na maliit na kasinungalingan 999 gumagana ay 844 00:41:50,290 --> 00:41:52,950 uri ng sa antas na ito. 845 00:41:52,950 --> 00:41:55,620 Kung bumaba, mas higit kalabisan kaysa doon, ngunit kung lamang 846 00:41:55,620 --> 00:42:01,390 Sa tingin compute maliit na kasinungalingan 998 ay makakakuha ng sa amin medyo malapit sa maliit na kasinungalingan 999. 847 00:42:01,390 --> 00:42:05,860 Kaya kami ay dapat talagang maging isang kaunti pa matalino tungkol sa kung paano namin uri ng muling magagamit 848 00:42:05,860 --> 00:42:07,580 mga ito, ngunit kami ay hindi reusing mga bagay na ito sa lahat. 849 00:42:07,580 --> 00:42:11,860 Kaya maaari mong isipin na ito katakut-takot ang laki, parang higante puno ito lamang ay kasindak-sindak. 850 00:42:11,860 --> 00:42:12,940 >> Ngunit pa rin, OK. 851 00:42:12,940 --> 00:42:14,040 Kaya na noon ay maliit na kasinungalingan. 852 00:42:14,040 --> 00:42:15,530 Tumatagal lang ito ng isang habang upang tumakbo. 853 00:42:15,530 --> 00:42:16,510 Yep? 854 00:42:16,510 --> 00:42:17,760 >> Madla: [hindi marinig]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> Kevin Schmid: Oh, magagawa mo ulitin ang mga katanungan? 857 00:42:22,481 --> 00:42:23,731 >> Madla: [hindi marinig]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> Kevin Schmid: Oh kaya ito ay code lang na pupuntahan maging isang uri ng sa 860 00:42:33,990 --> 00:42:34,850 server side. 861 00:42:34,850 --> 00:42:38,100 Kaya ito ay hindi pagpunta sa ay matatagpuan sa browser o kahit ano. 862 00:42:38,100 --> 00:42:42,160 Ito ay isa lamang sa kung ano ang mayroon kami ay na kapag ang gumagamit dito halos ginagawang 863 00:42:42,160 --> 00:42:45,300 muli ang kanilang kahilingan, kung kailan namin uri ng gumawa ng kahilingan, kami ay pagpunta sa tumawag sa 864 00:42:45,300 --> 00:42:47,040 ito function na sa gilid ng server. 865 00:42:47,040 --> 00:42:50,480 At pagkatapos ay susuriin namin ang resulta pabalik mula sa pagtawag na function. 866 00:42:50,480 --> 00:42:52,460 At pagkatapos ay gagamitin namin lamang i-print ito sa user. 867 00:42:52,460 --> 00:42:54,580 Kaya ang gumagamit ay hindi talaga haharapin may ganitong function ng masyadong maraming. 868 00:42:54,580 --> 00:42:57,270 >> Was na ang tanong? 869 00:42:57,270 --> 00:42:58,470 Ba na magkaroon ng kahulugan? 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 Cool. 872 00:43:00,930 --> 00:43:04,240 >> Kaya muli, ginagawa namin ito buong res.writeHead bagay kung saan i-print out namin 873 00:43:04,240 --> 00:43:05,150 ang header. 874 00:43:05,150 --> 00:43:09,730 At pagkatapos ay tapusin ko ang mga tugon sa pamamagitan ng paggawa ang magic number ay maliit na kasinungalingan 45. 875 00:43:09,730 --> 00:43:12,100 Tumakbo ni lamang sa server na ito Kaya ipaalam. 876 00:43:12,100 --> 00:43:15,190 Kaya pupuntahan ko na gawin ang isang Node fib.js. 877 00:43:15,190 --> 00:43:17,340 Kaya ngayon ang aking maliit na kasinungalingan server ay tumatakbo. 878 00:43:17,340 --> 00:43:21,790 >> At pagkatapos dito, pupuntahan ko upang gawin ang isa sa mga ito. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Kaya ako lamang ang pagpunta sa sabihin, kulutin. 881 00:43:24,960 --> 00:43:32,226 Kaya ito ay pagpunta sa tumagal ng ilang sandali ngunit sana sa lalong madaling panahon ito ay matapos at 882 00:43:32,226 --> 00:43:35,660 ito ay i-print out na 45 Fibonacci numero. 883 00:43:35,660 --> 00:43:36,910 >> Madla: [hindi marinig]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> Kevin Schmid: dapat itong makakuha ng tapos na medyo lalong madaling panahon. 886 00:43:42,050 --> 00:43:43,780 Kaya dapat itong tumagal ng 5-6 segundo. 887 00:43:43,780 --> 00:43:48,570 Hindi ko alam kung ito lamang ay V8 pagiging super mabilis, ngunit sa anumang kaso, ito ay isang 888 00:43:48,570 --> 00:43:52,700 napaka-ikling halimbawa at kusa hindi makisig ng isang hindi walang kuwenta 889 00:43:52,700 --> 00:43:54,200 pagtutuos. 890 00:43:54,200 --> 00:43:56,700 Kaya matapos ang ilang panahon, ito ay makakuha ng ito. 891 00:43:56,700 --> 00:44:02,130 >> Ngunit ngayon, paano kung gawin ko na parehong uri ng eksperimento tulad ng dati kung saan gumawa ako 892 00:44:02,130 --> 00:44:04,010 dalawang mga kahilingan sa parehong oras? 893 00:44:04,010 --> 00:44:06,990 Kaya dito Pupunta ako sa isang mabaluktot sa address na iyon, at ako pupunta 894 00:44:06,990 --> 00:44:08,260 na gawin ang isa pang kulot. 895 00:44:08,260 --> 00:44:12,070 At tandaan, kapag ginawa namin ito para sa matulog server, kapag isa lamang namin ay may mga ito 896 00:44:12,070 --> 00:44:15,320 pagkatapos ng limang segundo, ang mga ito kaakit-akit magkano ang parehong ay dumating likod pakanan 897 00:44:15,320 --> 00:44:16,380 sa paligid ng parehong oras. 898 00:44:16,380 --> 00:44:18,650 Kaya ito ay hindi partikular na nakatali up. 899 00:44:18,650 --> 00:44:20,290 >> Ngunit subukan na ito ngayon hayaan. 900 00:44:20,290 --> 00:44:22,370 OK, kaya nakuha namin ang aming dalawang mga proseso. 901 00:44:22,370 --> 00:44:24,210 Tandaan mga ay ang proseso ng ID. 902 00:44:24,210 --> 00:44:25,900 Ito ay magiging isang kaunti alanganin habang stall namin. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Kaya hayaan manatili ng lang dito at maghintay. 905 00:44:35,360 --> 00:44:37,090 >> Kaya isa sa mga ito ay dapat na dumating bumalik pagkatapos ng tulad ng - 906 00:44:37,090 --> 00:44:39,190 OK, kaya isa ay dumating likod. 907 00:44:39,190 --> 00:44:43,570 Ngunit pagkatapos ay kung bakit hindi ginawa ang pangalawang isa bumalik pa lamang? 908 00:44:43,570 --> 00:44:44,389 Yep? 909 00:44:44,389 --> 00:44:49,280 >> Madla: hindi maaaring gawin ng server ang anumang bagay habang ito ay compute na malaki numero. 910 00:44:49,280 --> 00:44:51,620 >> Kevin Schmid: Mag-right. 911 00:44:51,620 --> 00:44:55,395 Kaya ang sagot ay isa lamang na ang server talagang hindi maaaring gumawa ng anumang bagay habang 912 00:44:55,395 --> 00:44:57,460 ito ay compute na Fibonacci numero. 913 00:44:57,460 --> 00:44:59,360 Kaya ngayon Nakakuha ako ng aking dalawang bagay pabalik. 914 00:44:59,360 --> 00:45:03,210 Ngunit hulaan ko na sa tingin lamang tungkol sa code ang kaunti pa, paano ang ito gumagana 915 00:45:03,210 --> 00:45:05,030 at ang lahat. 916 00:45:05,030 --> 00:45:11,750 >> Kaya ito function na dito ay ang code na Sinabi ko na sa server na ito upang tumakbo kapag ito 917 00:45:11,750 --> 00:45:14,100 na natatanggap ng isang bagong papasok na kahilingan. 918 00:45:14,100 --> 00:45:17,940 Kaya ito ay lamang ng pagpunta sa tumakbo sa pamamagitan na ito buong code, at pagkatapos ito ay pagpunta sa pumunta 919 00:45:17,940 --> 00:45:21,120 i-back sa loop kaganapan at pagkatapos ay magpatuloy pagsusuri para sa mga bagong kaganapan. 920 00:45:21,120 --> 00:45:23,670 Kaya talaga kung ano ang nangyayari namin ay ang server ay 921 00:45:23,670 --> 00:45:25,080 pakikinig para sa mga bagong bagay. 922 00:45:25,080 --> 00:45:28,070 Ang unang taong nagtanong ng kung ano ang 45 ay. 923 00:45:28,070 --> 00:45:30,490 Nagpapatakbo kami ang code na ito upang makalkula ito. 924 00:45:30,490 --> 00:45:33,420 Ang code na ito ay tumatagal ng humigit-kumulang limang sa anim na segundo upang tumakbo. 925 00:45:33,420 --> 00:45:36,990 Pagkatapos ay pumunta kami pabalik sa loop kaganapan at suriin para sa mga bagong kahilingan. 926 00:45:36,990 --> 00:45:42,700 >> Kaya ito ay isang halimbawa ng kung paano, kung ikaw may mga bagay na tinatawag nang gayon tuusin 927 00:45:42,700 --> 00:45:48,140 nakatali, o gumamit ng maraming computational, hindi kapangyarihan, ngunit tulad ay 928 00:45:48,140 --> 00:45:50,260 computationally intensive - 929 00:45:50,260 --> 00:45:54,080 Hulaan ko ang isang bagay na sabihin tungkol sa ito ay na ito function ay ginagawa lahat-lahat, 930 00:45:54,080 --> 00:45:56,310 para sa pinaka-bahagi, medyo kapaki-pakinabang trabaho kanan. 931 00:45:56,310 --> 00:45:59,970 Ang buong oras na iyon na callback ay tumatakbo ang function, ito ay medyo 932 00:45:59,970 --> 00:46:03,670 magkano gumagastos ng karamihan sa oras nito lamang computing na nth Fibonacci numero. 933 00:46:03,670 --> 00:46:05,930 >> Ngunit lamang nagkaroon kami isa thread haharapin ang mga. 934 00:46:05,930 --> 00:46:10,270 Sa modelo Apache, kapag ang dalawang tao ginawa ang kahilingan upang makakuha ng maliit na kasinungalingan 45, namin 935 00:46:10,270 --> 00:46:11,610 sana ay nagkaroon ng dalawang magkaibang mga thread. 936 00:46:11,610 --> 00:46:15,060 At pagkatapos ng trabaho sa operating system maaaring naging, o antas ng user 937 00:46:15,060 --> 00:46:18,660 code na namamahala sa mga thread, gusto Naidetalye naging upang hatiin na hanggang sa 938 00:46:18,660 --> 00:46:23,060 CPU, o kahit na kung mayroon kang maramihang mga CPUs, ipamahagi ang mga ito nang pantay-pantay sa kabuuan ng CPUs 939 00:46:23,060 --> 00:46:26,130 kaya na sila ay parehong tapusin halos sa parehong oras. 940 00:46:26,130 --> 00:46:31,120 >> Kaya upang ipakita sa iyo kung paano namin maaaring ayusin ng - at ito ay hindi isang kabuuang perpekto 941 00:46:31,120 --> 00:46:34,280 solusyon, ngunit uri ng kung paano aming makakaya gumawa ng isang bumalik dito at gawin 942 00:46:34,280 --> 00:46:35,880 Medyo mas mahusay. 943 00:46:35,880 --> 00:46:41,540 Kaya kung ano ang mayroon akong dito ay isang programa na tinatawag na Maliit na kasinungalingan C. At isa lamang ay gumagamit na ito 944 00:46:41,540 --> 00:46:45,690 isa pang isa sa mga module Node ay tinatawag na Ang Module ng Proseso ng Bata. 945 00:46:45,690 --> 00:46:49,210 Kaya Isinama ko na sa tuktok uri ng tulad ng gusto kong gawin ng kalahating kilong isama 946 00:46:49,210 --> 00:46:51,230 anak process.h o isang bagay. 947 00:46:51,230 --> 00:46:56,210 Ngayon ba akong magkaroon ng access sa CP variable na may lahat ng aking mga pag-andar. 948 00:46:56,210 --> 00:47:01,810 >> Kaya ngayon kung ano ako ng paggawa sa ang tugon na ito handler ay ako nagpapatakbo sa programang ito 949 00:47:01,810 --> 00:47:04,100 tuldok iwa maliit na kasinungalingan 45. 950 00:47:04,100 --> 00:47:06,820 Kaya kung ano ang nagawa ko na - at lang ako pupunta sa hakbang out sa programang ito para sa isang 951 00:47:06,820 --> 00:47:07,620 Medyo - 952 00:47:07,620 --> 00:47:11,060 ay na naisulat ko isang programa C na talaga computes ang 953 00:47:11,060 --> 00:47:12,630 nth numero ng Fibonacci. 954 00:47:12,630 --> 00:47:15,960 Kaya narito ang isang programa lamang na naisulat ko sa C na computes ito. 955 00:47:15,960 --> 00:47:19,040 Maaari ba akong mag-compile ito, at maaari ba akong magpatakbo ng ito sa command line. 956 00:47:19,040 --> 00:47:22,150 At ito ang nangyayari upang makalkula ang Numero 45 Fibonacci. 957 00:47:22,150 --> 00:47:24,510 >> Kaya mapansin lamang tumatagal ito ng halos kasing haba. 958 00:47:24,510 --> 00:47:28,240 Ako marahil ay maaaring ginamit gitling 03 sa i-optimize ito o isang bagay tulad na, 959 00:47:28,240 --> 00:47:31,050 ngunit ko lang ginawa tulad ng regular na Mga setting ng tagatala. 960 00:47:31,050 --> 00:47:33,260 At ito ng mga Kopya ito. 961 00:47:33,260 --> 00:47:36,830 >> Ngunit ngayon, ano ang aking uri ng paggawa? 962 00:47:36,830 --> 00:47:39,800 Oh paumanhin, maling file. 963 00:47:39,800 --> 00:47:42,800 Kaya gagawin ko ang parehong bagay sa ang header tulad ng dati. 964 00:47:42,800 --> 00:47:45,780 Pagkatapos gawin ko ito cp.exec. 965 00:47:45,780 --> 00:47:49,460 Kaya kung ano ito ay pagpunta sa gawin ay ito pagpunta upang patakbuhin ang program na ito. 966 00:47:49,460 --> 00:47:51,960 Ngunit ang paraan na ito gumagana ay na hindi ito ng pagpunta sa maghintay para sa 967 00:47:51,960 --> 00:47:53,400 na programa upang matapos. 968 00:47:53,400 --> 00:47:56,000 Ito talaga lang sabi isakatuparan ang program na ito. 969 00:47:56,000 --> 00:47:58,700 Kaya talaga type ito sa command prompt uri ng. 970 00:47:58,700 --> 00:48:02,350 >> At pagkatapos ay, kapag tapos ka na may ito, patakbuhin ang function. 971 00:48:02,350 --> 00:48:04,800 Kaya ngayon uri ng namin makuha ito buong naibalik bagay ng 972 00:48:04,800 --> 00:48:06,750 parang hindi kami ay naghihintay. 973 00:48:06,750 --> 00:48:08,530 Ba na uri ng kabuluhan? 974 00:48:08,530 --> 00:48:08,990 Yep? 975 00:48:08,990 --> 00:48:11,060 >> Madla: [hindi marinig]? 976 00:48:11,060 --> 00:48:13,610 >> Kevin Schmid: Kaya na ito ay talagang buksan up ng isang bagong proseso upang gawin ito. 977 00:48:13,610 --> 00:48:19,310 Kaya ito ay ang tunay, sa ilang mga paraan, masama, hindi sobrang kasamaan, ngunit ito ay 978 00:48:19,310 --> 00:48:22,990 Mahalagang sabihin na ito ay uri ng pagpunta pabalik sa, sa isang dako, ang Apache 979 00:48:22,990 --> 00:48:26,450 modelo kung saan ang ginagawa namin thread at mga proseso para sa bawat kahilingan o 980 00:48:26,450 --> 00:48:29,280 mga proseso para sa bawat kahilingan. 981 00:48:29,280 --> 00:48:32,090 Kaya ito ay uri ng kahalintulad na sa kung ano ang ginagawa ng Apache. 982 00:48:32,090 --> 00:48:35,110 Sa ilang mga kaso, ito lamang gumamit ng bagong thread, na kung saan ay higit sa isang konting liwanag 983 00:48:35,110 --> 00:48:39,040 timbang kaysa sa isang proseso, ngunit Apache ng dati napupunta forking isang bagong proseso 984 00:48:39,040 --> 00:48:43,370 na kung saan ay uri ng kung ano ang ginagawa namin dito nang kataon lamang sa pamamagitan ng paggawa tuldok slash maliit na kasinungalingan 45. 985 00:48:43,370 --> 00:48:48,690 >> At pagkatapos sa kasong iyon, ang uri ng namin mapala ang parehong mga gastos ng mga proseso. 986 00:48:48,690 --> 00:48:50,710 Kaya ito ay lamang isang bagay na maaari mong gawin. 987 00:48:50,710 --> 00:48:52,600 Ngunit upang ipakita lamang ang ganitong uri ng tumakbo. 988 00:48:52,600 --> 00:48:57,120 At ito ay talk lang talaga na naglalayong Nagtatangal mga uri ng mga programa bilang isang 989 00:48:57,120 --> 00:49:00,710 paraan upang ipakita ang iba't ibang mga pananaw sa paano mag-disenyo ng mga server tulad na. 990 00:49:00,710 --> 00:49:08,300 Kaya ito ay tumatakbo, at pagkatapos ngayon kung gagawin ko ito muli, Mayroon akong dalawang proseso ng ID. 991 00:49:08,300 --> 00:49:10,320 >> Hayaan ang makipag-usap lamang tungkol sa mga bagay na dapat ituro. 992 00:49:10,320 --> 00:49:11,980 Kaya mapapansin na ang mga ito ay incrementally. 993 00:49:11,980 --> 00:49:12,700 Iyon ay cool. 994 00:49:12,700 --> 00:49:15,140 Dahil ito ay 27,122 bago. 995 00:49:15,140 --> 00:49:18,580 Ngunit notice ngayon, sila ay dumating likod ay humigit kumulang sa parehong oras. 996 00:49:18,580 --> 00:49:23,960 >> At ngayon, isang mahusay na katanungan upang magtanong tungkol sa bakit noon na ang kaso ay, na ang trabaho 997 00:49:23,960 --> 00:49:27,590 ay ito ngayon sa isang uri ng gumawa ng mga bagay na ito uri ng maglaro ng patas sa bawat 998 00:49:27,590 --> 00:49:31,350 iba pang, ang dalawang mga kaso ng tuldok slash maliit na kasinungalingan 45 na pinatakbo ko 999 00:49:31,350 --> 00:49:32,880 o na pinatakbo Node? 1000 00:49:32,880 --> 00:49:36,940 Sino ang uri ng ginagawang patas na kapwa nila makakuha ng mga uri ng balanced run oras? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> Madla: [hindi marinig]. 1003 00:49:44,220 --> 00:49:44,620 >> Kevin Schmid: Oo. 1004 00:49:44,620 --> 00:49:49,740 Kaya talaga, kapag gagawin ko na tuldok na slash maliit na kasinungalingan 45 o isang bagay tulad na, ngayon na 1005 00:49:49,740 --> 00:49:53,750 uri ng hanggang sa operating system upang pangasiwaan ang runtime ng mga programa. 1006 00:49:53,750 --> 00:49:56,920 At ngayon maaari itong schedule ang mga ito sa iba't ibang mga CPUs o ito 1007 00:49:56,920 --> 00:49:58,330 Maaari schedule ang mga ito. 1008 00:49:58,330 --> 00:50:01,870 Maaari itong hatiin up ang oras ng isa na Ay makakakuha ng CPU ito o na makakakuha sila 1009 00:50:01,870 --> 00:50:03,330 upang tumakbo sa isang CPU. 1010 00:50:03,330 --> 00:50:05,620 Kaya iyon ang ideya sa likod na. 1011 00:50:05,620 --> 00:50:07,220 Ba na magkaroon ng kahulugan sa lahat ng tao? 1012 00:50:07,220 --> 00:50:10,950 Kaya ngayon Node ay hindi talagang sa pag-play ng isang bahagi sa paghahati up ang mga gawaing ito. 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 >> Kaya na halos ito para sa mga halimbawa. 1016 00:50:17,840 --> 00:50:23,370 Nais kong lamang na ipakita ang isa pang bagay dahil may maraming mga ito sa ngayon ay naging 1017 00:50:23,370 --> 00:50:27,350 hindi lubos sobrang praktikal sa ilang mga kaso. 1018 00:50:27,350 --> 00:50:30,970 Ang maaari kong isipin na darating sa bahay matapos ito makipag-usap at isang bagay at sinasabi tulad ng, 1019 00:50:30,970 --> 00:50:35,710 na rin ako uri ng nakuha out sa talk na iyon Maaari ba akong gumawa ng isang Fibonacci server para sa 1020 00:50:35,710 --> 00:50:37,360 ang aking huling proyekto. 1021 00:50:37,360 --> 00:50:40,770 Kaya narito lamang uri ng isa pang halimbawa na sana ay magiging - 1022 00:50:40,770 --> 00:50:44,620 hindi siguro, pero siguro - ng kaunti pa uri ng mga may-katuturan sa huling proyekto at 1023 00:50:44,620 --> 00:50:46,440 pinag-iisipan nang maaga para sa mga bagay tulad na. 1024 00:50:46,440 --> 00:50:48,870 >> Kaya ito ay chat.js. 1025 00:50:48,870 --> 00:50:52,290 Kaya ito ay uri ng ng ilang sample code ng server side na maaari mong gamitin upang 1026 00:50:52,290 --> 00:50:55,700 set up ng isang maliit na chat server tulad ng maaaring nakakita sa 1027 00:50:55,700 --> 00:50:56,630 Facebook Makipag-chat o kahit ano. 1028 00:50:56,630 --> 00:50:59,990 Kaya ako hindi na nagsasabi na ito ay tulad ng Facebook Makipag-chat, ngunit ito ang uri ng 1029 00:50:59,990 --> 00:51:06,230 tulad ng isang magandang - siguro ay hindi mabuti, ngunit marahil magandang - simula point para sa isang chat 1030 00:51:06,230 --> 00:51:08,560 server para sa iyong website para sa isang pangwakas na proyekto. 1031 00:51:08,560 --> 00:51:11,040 Kaya tingnan natin kung ano ang ginagawa itong ipaalam. 1032 00:51:11,040 --> 00:51:15,500 >> Kaya namin nakukuha ang mga espesyal na bagay sa tuktok, ito var SIO 1033 00:51:15,500 --> 00:51:17,050 ay katumbas nangangailangan Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Kaya ito ay isa pang bagay na hindi talaga dumating na kasama ng 1035 00:51:20,280 --> 00:51:22,300 Node ngunit maaari mo itong i-install. 1036 00:51:22,300 --> 00:51:23,480 Ito ay isang Node module. 1037 00:51:23,480 --> 00:51:25,670 Kaya ito ay katulad lamang ng ilang extension upang Node. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO ay talagang talaga uri ng mga cool. 1039 00:51:29,220 --> 00:51:32,550 Ito ay isang abstraction na talaga kung ano ito ay kung ay nagbibigay-daan ito sa iyo upang 1040 00:51:32,550 --> 00:51:35,770 mayroon stream na ito ng komunikasyon sa pagitan ng isang web 1041 00:51:35,770 --> 00:51:39,430 browser at isang web server. 1042 00:51:39,430 --> 00:51:45,250 Kaya para sa pinaka-bahagi sa ngayon, mayroon kaming mga napaka mabilis na isang segundo o dalawang 1043 00:51:45,250 --> 00:51:48,790 pangalawang komunikasyon sa pagitan ng isang web browser at mga web server. 1044 00:51:48,790 --> 00:51:53,310 Kaya ito ay isa lamang pumunta sa google.com, get ang mga bagay-bagay, ipadala ito pabalik, at pagkatapos ay 1045 00:51:53,310 --> 00:51:53,770 tapos na kami. 1046 00:51:53,770 --> 00:51:56,560 Hindi namin pinag-uusapan muli hanggang sa mga uri ng user sa ibang bagay. 1047 00:51:56,560 --> 00:52:01,090 >> Ngunit ano Socket.IO at mga katulad na uri ng bagay - at SocketIO ay talagang isa 1048 00:52:01,090 --> 00:52:03,940 sa mga bagay na ay binuo sa bilang WebSocket na uri ng magagamit 1049 00:52:03,940 --> 00:52:06,440 bilang bahagi ng HTML5 - 1050 00:52:06,440 --> 00:52:09,620 na nagbibigay-daan sa iyo upang magkaroon ito patuloy na dialogue. 1051 00:52:09,620 --> 00:52:13,990 At ito ay lubhang kapaki-pakinabang sa isang chat server uri ng bagay dahil ito ay 1052 00:52:13,990 --> 00:52:17,390 uri ng tulad ng isang patuloy na dialogue sa ilang mga paraan dahil kung nakikipag-chat 1053 00:52:17,390 --> 00:52:21,540 may isang tao, maaari mo na ngayong magpadala lamang ng isang mensahe pababa ang pipe, at pagkatapos ay ang 1054 00:52:21,540 --> 00:52:23,940 server ay maaaring magpadala ng mensahe pababa ang pipe sa iba pang mga tao ikaw ay 1055 00:52:23,940 --> 00:52:24,520 chat ka. 1056 00:52:24,520 --> 00:52:26,903 At pagkatapos ay maaari kang magkaroon ng ito makipagpalitan ng ganyan. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Kaya na uri ng kung ano SocketIO ay mabuti para sa. 1059 00:52:32,850 --> 00:52:38,400 Ang dahilan na SocketIO ay gumagamit WebSockets bilang isang bagay ay na sa 1060 00:52:38,400 --> 00:52:43,980 Bukod pa sa lamang plain lumang WebSockets, ginagawa din ito ng ilang mga trick sa talaga 1061 00:52:43,980 --> 00:52:45,610 gumawa katugmang ito browser. 1062 00:52:45,610 --> 00:52:50,040 Kaya mga browser tulad ng Internet Explorer sa kasamaang-palad ay hindi sumusuporta sa WebSockets 1063 00:52:50,040 --> 00:52:50,810 karapatan sa labas ng kahon. 1064 00:52:50,810 --> 00:52:55,290 Kaya gumagamit ito ng ilang mga iba pang mga uri ng mga cool na mapag-ayos bagay sa Adobe Flash upang payagan ang 1065 00:52:55,290 --> 00:52:57,170 mong magkaroon ng cross browser support. 1066 00:52:57,170 --> 00:52:58,800 Kaya na talaga kapaki-pakinabang. 1067 00:52:58,800 --> 00:53:02,440 >> At talagang, alam ko na ako uri ng tumatakbo sa oras dito, ngunit CS50 1068 00:53:02,440 --> 00:53:08,490 Talakayin, nakita mo man ang isang bagay parang, hindi ko alam, blangko sa gayon ay 1069 00:53:08,490 --> 00:53:11,030 pagtugon sa post na ito o ng isang bagay tulad na, na tampok na ito? 1070 00:53:11,030 --> 00:53:12,250 Iyon SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Kaya kapag ang isang tao ay nagsisimula mag-type sa talakayin ang kahon upang gumawa ng isang tugon o 1072 00:53:15,580 --> 00:53:20,040 isang bagay, ang iyong browser ay kung ano ang na tinatawag na sa SocketIO emits ilang mga uri ng 1073 00:53:20,040 --> 00:53:22,660 kaganapan na nagsasabing ang isang tao ay ng pagtugon sa post na ito. 1074 00:53:22,660 --> 00:53:26,110 >> Pagkatapos ay sinasabi ng server, OK, ano ang kailangan kong gawin? 1075 00:53:26,110 --> 00:53:29,270 Well ngayon Kailangan ko bang sabihin sa mga iba pang mga guys sino ang nasa CS50 Talakayin hinahanap 1076 00:53:29,270 --> 00:53:31,170 sa post na ito na ang isang tao ay pagtugon. 1077 00:53:31,170 --> 00:53:34,190 Kaya na uri ng kung ano SocketIO ay mabuti para, patuloy na uri ng 1078 00:53:34,190 --> 00:53:35,930 stream ng mga dialogue. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Kaya kung ano ang mayroon ako dito - at hindi namin lamang pagpunta sa huwag pansinin ang mga koneksyon array 1081 00:53:40,060 --> 00:53:41,390 para sa ilang sandali - 1082 00:53:41,390 --> 00:53:43,080 ano ang gagawin ko ay isa pang ako makinig. 1083 00:53:43,080 --> 00:53:46,880 Kaya ito lamang ang paraan sa Socket.IO ay sinasabi ni makinig sa ito port ipaalam. 1084 00:53:46,880 --> 00:53:50,060 At pagkatapos ay gagawin ko ito sa koneksyon. 1085 00:53:50,060 --> 00:53:53,360 Kaya na talaga lang Socket IO ni paraan ng sinasabi, kapag nakatanggap kami ng 1086 00:53:53,360 --> 00:53:55,840 koneksyon, gusto ko sa iyo upang patakbuhin ang code na ito. 1087 00:53:55,840 --> 00:53:59,870 >> At mapansin na sa halip ng pagkakaroon ng rec at res ang pumasa sa doon Mayroon akong Socket. 1088 00:53:59,870 --> 00:54:03,260 At ideya Socket ito ay isa lamang ito bagay na maaari mong sumulat sa at basahin 1089 00:54:03,260 --> 00:54:05,750 mula sa na may mga gumagamit mensahe posibleng. 1090 00:54:05,750 --> 00:54:10,700 At ang mga mensahe na nais mong ipadala maaaring pumunta sa pamamagitan na Socket. 1091 00:54:10,700 --> 00:54:12,140 Ba na magkaroon ng kahulugan? 1092 00:54:12,140 --> 00:54:14,490 Kaya patuloy na bagay. 1093 00:54:14,490 --> 00:54:17,820 >> Kaya kung ano ang gagawin ko ay tumawag ako Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 At naglalabas ng tumatagal medyo magkano dalawang argumento. 1095 00:54:20,330 --> 00:54:24,100 Ang unang argument ay isang string lamang na kumakatawan sa mga uri ng 1096 00:54:24,100 --> 00:54:25,270 bagay ka nagpapalabas. 1097 00:54:25,270 --> 00:54:28,120 Kaya para sa kasong ito, na hindi ko na paggamit ang string na ito bagong mensahe. 1098 00:54:28,120 --> 00:54:32,670 At na lang talaga na nagsasabi na ang uri ng mga bagay na ito, kung ano ako 1099 00:54:32,670 --> 00:54:34,750 pagpapadala, ay isang bagong mensahe. 1100 00:54:34,750 --> 00:54:38,460 Kaya maaari kang makinig para sa partikular na mga uri tulad ng mga bagong mensahe o ng kahit anupamang 1101 00:54:38,460 --> 00:54:39,960 pamamagitan ng paggamit ng tuldok sa. 1102 00:54:39,960 --> 00:54:44,570 >> Kaya koneksyon at user na ipinadala doon, kung tumingin ka sa kung saan tinatawag naming tuldok sa, 1103 00:54:44,570 --> 00:54:48,150 mga iba pang mga string na kumakatawan mga uri ng mga mensahe ng user. 1104 00:54:48,150 --> 00:54:52,060 Kaya ito ay isa lamang maaari kang magkaroon ng ito naglalabas isa sa mga uri ng mensahe, at 1105 00:54:52,060 --> 00:54:55,520 pagkatapos ay gawin ang isang bagay bilang tugon sa isa sa mga uri ng mensahe 1106 00:54:55,520 --> 00:54:57,640 >> Kaya ako nagpapalabas ito ng mga bagong mensahe. 1107 00:54:57,640 --> 00:55:00,540 Kami ay pagpunta sa huwag pansinin connections.push para sa isang segundo. 1108 00:55:00,540 --> 00:55:03,360 Ngunit pagkatapos ay sabihin ko, na ipinadala Socket.on gumagamit. 1109 00:55:03,360 --> 00:55:07,540 Kaya ngayon ito uri ng nais kapag ang nagpapadala ako gumagamit ng mensahe, nais ko 1110 00:55:07,540 --> 00:55:09,240 mong patakbuhin ang code na ito. 1111 00:55:09,240 --> 00:55:12,080 At mapapansin na ang pag-andar na anonymous nagtatagal sa variable na ito 1112 00:55:12,080 --> 00:55:16,300 tinatawag na data na kung saan ay isa lamang ng pagpunta upang magkaroon ng mensahe ng user. 1113 00:55:16,300 --> 00:55:20,700 >> Kaya sabihin ngayon uri ng talk tungkol sa ang mga koneksyon ng array. 1114 00:55:20,700 --> 00:55:24,590 Kaya ito ay dinisenyo para sa isang chat client kung saan talaga lahat ng tao ang uri ng sa 1115 00:55:24,590 --> 00:55:25,950 ang parehong chat room. 1116 00:55:25,950 --> 00:55:29,640 Kaya talaga, kung ano ang kailangan namin upang panatilihing sa paligid ay ilang array na talaga 1117 00:55:29,640 --> 00:55:33,170 Kinakatawan ng lahat ng mga tao pakikipag-chat sa ilang mga paraan, kung iyon ang may katuturan. 1118 00:55:33,170 --> 00:55:33,340 Mag-right? 1119 00:55:33,340 --> 00:55:37,190 Dahil kailangan naming malaman kung sino ang mga guys ay gayon maaari kaming magpadala sa kanila ng mga mensahe 1120 00:55:37,190 --> 00:55:39,140 na ang ibang mga tao magpadala sa amin. 1121 00:55:39,140 --> 00:55:44,440 >> Kaya kung ano ang code na ito gumagana ay kapag gumagamit nagpapadala ng mensahe - iyon ang uri ng 1122 00:55:44,440 --> 00:55:45,300 ang kaganapan - 1123 00:55:45,300 --> 00:55:47,120 kami ay pagpunta upang patakbuhin ang code na ito. 1124 00:55:47,120 --> 00:55:51,240 At ano ang ginagawa namin ay aming pinatatakbo sa pamamagitan na ito array na tinatawag na namin ang mga koneksyon. 1125 00:55:51,240 --> 00:55:54,390 At medyo magkano para sa bawat koneksyon maliban sa isang bagay na atin, na 1126 00:55:54,390 --> 00:55:59,520 kung ano ang sinasabi ang code na ito, nagpapadala kami ng bagong message na may naka-attach na mensahe 1127 00:55:59,520 --> 00:56:01,210 impormasyon. 1128 00:56:01,210 --> 00:56:04,880 >> Kaya kung napansin mo dito, kung ano ang aking ginawa kapag talagang gumagawa ng isang bagong user 1129 00:56:04,880 --> 00:56:08,560 koneksyon ay nagdagdag ako sa JavaScript.push pamamaraan, ito ay 1130 00:56:08,560 --> 00:56:12,100 talaga lang sinasabi tulad ng magdagdag na Socket bilang isang halaga sa 1131 00:56:12,100 --> 00:56:13,900 ang aming mga koneksyon ng array. 1132 00:56:13,900 --> 00:56:20,560 Kaya ngayon kapag nagpapatakbo ang code na ito, ay ito magpadala ng mga bagay sa mga partikular na 1133 00:56:20,560 --> 00:56:22,020 koneksyon. 1134 00:56:22,020 --> 00:56:26,980 Kaya ito ay maaaring maging isang mahusay na panimulang punto para sa paggawa ng isang chat server 1135 00:56:26,980 --> 00:56:28,250 o isang bagay na katulad. 1136 00:56:28,250 --> 00:56:33,315 >> At ang uri ng mga cool na bagay ay na ang mga code na nakikita mo dito para tulad ng sa at 1137 00:56:33,315 --> 00:56:36,390 naglalabas at bagay-bagay tulad na ay pareho uri ng JavaScript code na gagawin mo 1138 00:56:36,390 --> 00:56:39,260 sumulat sa browser upang makipag-ugnay sa server. 1139 00:56:39,260 --> 00:56:42,480 Kaya na ang dahilan kung bakit SocketIO ay uri ng malinis at maayos at kapaki-pakinabang sa na paraan. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Oh at lamang ng isa pang bagay real mabilis. 1142 00:56:49,250 --> 00:56:55,970 Nagkaroon ng CS50 huling proyekto noong nakaraang taon na isa lamang ipinatupad ng isang chat 1143 00:56:55,970 --> 00:56:57,840 server sa Node.js. 1144 00:56:57,840 --> 00:57:01,350 Sa tingin ko ito Harvardchats.org ngunit hindi ako - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Hindi ako sigurado kung ano ang URL, ngunit Maaari ba akong magpadala ng na out pagkatapos. 1147 00:57:06,190 --> 00:57:09,260 Ngunit ito uri ng palamig ano maaari mong gawin sa Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Kaya Umaasa ako, sa pangkalahatan, ka guys ay may mahusay na pakiramdam kung ano Node.js ay kapaki-pakinabang 1149 00:57:14,680 --> 00:57:17,870 para at kung paano maaari mong ilapat siguro upang ang iyong huling proyekto. 1150 00:57:17,870 --> 00:57:21,050 Ako ay nagpapadala ang ilang higit pa mapagkukunan kasama ang mga ito. 1151 00:57:21,050 --> 00:57:23,170 At salamat sa iyo para sa darating na. 1152 00:57:23,170 --> 00:57:23,610 Salamat sa inyo. 1153 00:57:23,610 --> 00:57:27,168 >> [Palakpakan]