1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> КЕВИН Шмид: Поздрав свима. 3 00:00:09,710 --> 00:00:12,640 Добродошли на семинару ЦС50 на Ноде.јс. 4 00:00:12,640 --> 00:00:13,955 Моје име је Кевин. 5 00:00:13,955 --> 00:00:15,580 Ја сам ЦС50 ТФ. 6 00:00:15,580 --> 00:00:17,650 И ја сам некако као заиста узбуђен о овом семинару. 7 00:00:17,650 --> 00:00:20,430 Мислим да је веома кул Ноде.јс. 8 00:00:20,430 --> 00:00:24,200 Надам се да се овај семинар може користити као добар, претпостављам, одскочна даска за 9 00:00:24,200 --> 00:00:26,380 неки од ваших коначних пројеката уколико сте заинтересовани за коришћење 10 00:00:26,380 --> 00:00:27,630 нешто као Ноде.јс. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Ми ћемо некако почети семинар искључити само говори о мало 13 00:00:33,320 --> 00:00:36,970 врста позадине скалабилности перспективе Ноде.јс, а затим 14 00:00:36,970 --> 00:00:39,240 идемо на неке примере кода. 15 00:00:39,240 --> 00:00:42,340 И ја ћу имати шифру на сајту, а можете погледати на коду. 16 00:00:42,340 --> 00:00:45,475 И после семинара, ја ћу сортирати приче о томе како можете да подесите Ноде.јс 17 00:00:45,475 --> 00:00:48,220 на вашем рачунару. 18 00:00:48,220 --> 00:00:48,710 >> У реду. 19 00:00:48,710 --> 00:00:49,760 Дакле, хајде да почнемо. 20 00:00:49,760 --> 00:00:53,700 Тако да претпостављам да само желим да причам о веб сервери, заиста, прво. 21 00:00:53,700 --> 00:00:59,730 И да започнете ову дискусију, ја у основи имају шему која је од 22 00:00:59,730 --> 00:01:04,269 уџбеник користи за ЦС61, који суштини показује интеракција 23 00:01:04,269 --> 00:01:08,510 између процеса клијента, као ваш веб прегледач или као ваш циљ клијента или 24 00:01:08,510 --> 00:01:11,340 тако нешто, и веб сервер. 25 00:01:11,340 --> 00:01:15,150 Дакле, ова врста личи на слика коју сте видели у предавању о 26 00:01:15,150 --> 00:01:19,270 Среда где у основи имамо неке Процес клијент попут Гоогле Цхроме. 27 00:01:19,270 --> 00:01:22,980 >> А онда је један корак клијент шаље захтев. 28 00:01:22,980 --> 00:01:27,510 Тако да може бити нешто као добро хајде да посетите, ја не знам, ЦС50.нет. 29 00:01:27,510 --> 00:01:29,320 Тако да смо издати тај захтев. 30 00:01:29,320 --> 00:01:34,280 А да ли се ико сећа имена протокол који одређује како да 31 00:01:34,280 --> 00:01:35,610 Захтев треба да буде структурисан? 32 00:01:35,610 --> 00:01:36,382 Да. 33 00:01:36,382 --> 00:01:37,650 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 34 00:01:37,650 --> 00:01:38,150 >> КЕВИН Шмид: Управо тако. 35 00:01:38,150 --> 00:01:40,100 Дакле, то је као ХТТП, зар не? 36 00:01:40,100 --> 00:01:44,720 Дакле, у основи спецификација за колико да захтев треба да буде постављен у ствари 37 00:01:44,720 --> 00:01:47,450 оут, јер је на крају дана, да захтев је заиста само воле 38 00:01:47,450 --> 00:01:50,240 стринг који у основи каже да желим ово. 39 00:01:50,240 --> 00:01:53,580 И спецификација за то је ХТТП. 40 00:01:53,580 --> 00:01:55,270 Дакле, то је као протокол. 41 00:01:55,270 --> 00:01:57,920 >> Дакле, онда сервер прими тај захтев. 42 00:01:57,920 --> 00:02:01,610 Дакле, ви имате инсталиран веб сервер у ЦС50 апарата. 43 00:02:01,610 --> 00:02:02,460 То је Апацхе. 44 00:02:02,460 --> 00:02:06,230 И ове недеље, када радите на проблему сет седам, ви ћете заправо радити 45 00:02:06,230 --> 00:02:08,160 са том веб серверу. 46 00:02:08,160 --> 00:02:12,380 Дакле, сервер прими тај захтев, и онда то мора некако огребу њеног 47 00:02:12,380 --> 00:02:15,090 глава и рећи као добро шта да радим са овим? 48 00:02:15,090 --> 00:02:20,060 >> Дакле, на основу онога што одлучи да уради, онда она морати да се обратите неку врсту 49 00:02:20,060 --> 00:02:20,730 извора. 50 00:02:20,730 --> 00:02:23,700 И то ресурс може бити много различитих ствари. 51 00:02:23,700 --> 00:02:26,810 За једну, могло би да буде само као статичног ХТМЛ датотеку. 52 00:02:26,810 --> 00:02:29,820 Дакле, то би могао бити као неки ХТМЛ који је као за 53 00:02:29,820 --> 00:02:31,100 ваш лични сајт. 54 00:02:31,100 --> 00:02:35,360 То може бити статична фајл као на слици или као филм који имате. 55 00:02:35,360 --> 00:02:37,660 То чак може да разговарам у неку врсту базе података 56 00:02:37,660 --> 00:02:39,530 као МиСКЛ базе. 57 00:02:39,530 --> 00:02:43,910 Тако да не мора увек да комуницирају са ресурс, али у 58 00:02:43,910 --> 00:02:45,700 неким случајевима, то може. 59 00:02:45,700 --> 00:02:47,800 >> Па онда шта ће да уради након што је ће то 60 00:02:47,800 --> 00:02:49,430 врати одговор. 61 00:02:49,430 --> 00:02:53,130 А одговор за ово је Такође је наведено у ХТТП. 62 00:02:53,130 --> 00:02:54,830 Дакле, онда клијент може да га прими. 63 00:02:54,830 --> 00:02:56,740 То може да раздвоји и обрадити га. 64 00:02:56,740 --> 00:03:00,900 И онда ви добијате веб страницу као Гоогле или ЦС50.нет или 65 00:03:00,900 --> 00:03:02,240 шта год да је отишао у. 66 00:03:02,240 --> 00:03:03,100 ОК? 67 00:03:03,100 --> 00:03:06,080 >> Дакле, ово је основна интеракција које ћемо се бавити. 68 00:03:06,080 --> 00:03:08,770 И ми прилично ће бити фокусирајући се на овом делу 69 00:03:08,770 --> 00:03:10,640 интеракција, сервер. 70 00:03:10,640 --> 00:03:10,990 У реду. 71 00:03:10,990 --> 00:03:12,210 Цоол. 72 00:03:12,210 --> 00:03:15,500 Има ли неко питања до сада? 73 00:03:15,500 --> 00:03:17,720 У реду. 74 00:03:17,720 --> 00:03:22,430 >> Дакле, као што смо рекли, веб сервер прима овај ХТТП захтев и онда доноси ово 75 00:03:22,430 --> 00:03:24,760 ХТТП одговор. 76 00:03:24,760 --> 00:03:29,100 И као што смо разговарали о раније, ЦС50 апарат веб сервер је Апацхе. 77 00:03:29,100 --> 00:03:32,490 Дакле, када ви радите на П сет седам, ћеш радити са 78 00:03:32,490 --> 00:03:34,120 Апацхе веб сервер. 79 00:03:34,120 --> 00:03:37,890 Никада нећете морати да се заиста ради са Апацхе директно превише. 80 00:03:37,890 --> 00:03:41,920 Можете конфигурисати Апацхе некако мало када одредите виртуелне домаћини или 81 00:03:41,920 --> 00:03:44,970 се в домаћини, а ми ћемо добити да да у мало. 82 00:03:44,970 --> 00:03:50,620 >> Али у основи, Апацхе веб сервер подесити за рад са ПХП врстом 83 00:03:50,620 --> 00:03:51,730 од из кутије. 84 00:03:51,730 --> 00:03:56,170 Дакле, шта се стварно дешава се када одете на једном од ваших сајтова као што су, рецимо, 85 00:03:56,170 --> 00:04:00,360 локални домаћин коса црта индек.пхп или нешто, је ваш прегледач шаље да 86 00:04:00,360 --> 00:04:04,330 Захтев, а затим Апацхе седи тамо и схвати да се ради са њим. 87 00:04:04,330 --> 00:04:08,840 И акција је да се изврши да код у индек.пхп и 88 00:04:08,840 --> 00:04:11,330 онда га испратити назад. 89 00:04:11,330 --> 00:04:15,640 Дакле, то је то. 90 00:04:15,640 --> 00:04:16,980 Тако да смо на неки начин разговарали о томе. 91 00:04:16,980 --> 00:04:21,990 Тако да само може да послужи статички фајл или покренути неки ПХП код и онда питање 92 00:04:21,990 --> 00:04:23,510 одговор. 93 00:04:23,510 --> 00:04:27,670 >> Дакле, тада често питање које може доћи горе је добро, како ми заиста бавимо 94 00:04:27,670 --> 00:04:31,750 са што више корисника у исто време? 95 00:04:31,750 --> 00:04:36,930 Дакле, замислите да сте писали уеб сервера, ако сте имали веб сервер који 96 00:04:36,930 --> 00:04:39,900 сте покушавали да пишу у нечему као Ц или тако нешто, 97 00:04:39,900 --> 00:04:45,150 у основи можете да мислите о томе како тамо могла бити нека врста кода који 98 00:04:45,150 --> 00:04:49,330 би примити захтев, али онда то мора да уради све ово рад на њему. 99 00:04:49,330 --> 00:04:53,060 Он може имати, на пример, обратите база података или тако нешто. 100 00:04:53,060 --> 00:04:53,300 Зар не? 101 00:04:53,300 --> 00:04:56,010 А онда би раде такве обраде и затим 102 00:04:56,010 --> 00:04:57,060 послао назад одговор. 103 00:04:57,060 --> 00:04:58,950 Дакле, то је као високи Ниво преглед. 104 00:04:58,950 --> 00:05:04,210 >> Али то није одмах очигледно како сте могу то да урадим, тако да двоје људи или 105 00:05:04,210 --> 00:05:09,040 чак 1.000 људи могли да раде са својим веб сервер у исто време. 106 00:05:09,040 --> 00:05:14,880 Дакле, решење које користи Апацхе се назива теме или процесе. 107 00:05:14,880 --> 00:05:16,770 Дакле, можда сте чули за ови термини пре. 108 00:05:16,770 --> 00:05:22,190 У реду је ако не имате, али само мислим о нитима или процеса, као начина за 109 00:05:22,190 --> 00:05:26,290 оперативни систем или корисник програма или тако нешто или веб сервер 110 00:05:26,290 --> 00:05:28,810 на неки начин изврши вишеструко ствари одједном. 111 00:05:28,810 --> 00:05:31,760 Дакле, можда сте чули израз као нитима извршења. 112 00:05:31,760 --> 00:05:34,140 Дакле, то је као да си некако мултитаскинг. 113 00:05:34,140 --> 00:05:37,710 >> А ако сте видели на кутији од вашег лаптопа, или нешто слично, 114 00:05:37,710 --> 00:05:43,040 језгара, шта можете да урадите је да можете покренути два различита теме на другачији 115 00:05:43,040 --> 00:05:46,700 делови процесора, тако да они могу заправо десити у исто време. 116 00:05:46,700 --> 00:05:48,100 Дакле, ово је заиста моћан. 117 00:05:48,100 --> 00:05:52,270 И ово је нека врста Апацхе је Решење овог проблема. 118 00:05:52,270 --> 00:05:57,900 >> Дакле, постоје нека врста икаквих проблема са овим приступом иако? 119 00:05:57,900 --> 00:05:59,870 Тако да претпостављам да некако их написао тамо. 120 00:05:59,870 --> 00:06:03,440 Али обојица некако користе много меморије. 121 00:06:03,440 --> 00:06:07,490 То је веома скупо да се створи нит или процес. 122 00:06:07,490 --> 00:06:11,750 >> И део образложења је да само као када сте покренули Ц програм 123 00:06:11,750 --> 00:06:15,090 као свој главни и онда да позиви Друга функција, који има 124 00:06:15,090 --> 00:06:16,520 нека стека. 125 00:06:16,520 --> 00:06:19,910 Дакле, теме такође захтевају потпуно посебан стек који 126 00:06:19,910 --> 00:06:21,220 може бити прилично велика. 127 00:06:21,220 --> 00:06:25,170 И ако можете да замислите да тоне Корисници на вашем сајту, можете да имате 128 00:06:25,170 --> 00:06:26,280 много различитих тема. 129 00:06:26,280 --> 00:06:28,230 То је доста полицама у управљање и одржавање. 130 00:06:28,230 --> 00:06:31,280 Дакле, то је велика потрошња меморије. 131 00:06:31,280 --> 00:06:35,650 >> А онда, такође, рецимо да имате само један процесор, или рецимо да имате 132 00:06:35,650 --> 00:06:38,460 више него имате теме те мултицорес. 133 00:06:38,460 --> 00:06:38,730 Зар не? 134 00:06:38,730 --> 00:06:43,280 Па рецимо да сте имали 10 теме а ви само имали пет процесора. 135 00:06:43,280 --> 00:06:46,260 Некако треба да урадите ову ствар где ви прелазите на струју 136 00:06:46,260 --> 00:06:49,090 онај који трчи, јер сте не може да се покрене свих 10 одједном. 137 00:06:49,090 --> 00:06:50,980 И то се зове контекст прекидач. 138 00:06:50,980 --> 00:06:54,260 И тај термин заправо има неколико различитим контекстима, али хајде да 139 00:06:54,260 --> 00:06:56,620 мислите о томе као пребацивање између два навоја. 140 00:06:56,620 --> 00:06:59,730 То може бити прилично скупо јер у основи оно што треба да урадите јесте ли 141 00:06:59,730 --> 00:07:03,340 морати да се заустави оно што радиш, саве стање тог покренут нит, и 142 00:07:03,340 --> 00:07:05,440 затим се пребаците на неко друго место. 143 00:07:05,440 --> 00:07:09,420 >> Тако се сви некако види мотивација зашто теме и 144 00:07:09,420 --> 00:07:12,030 процеси можда мало гломазан? 145 00:07:12,030 --> 00:07:13,840 Да ли имате неко питање? 146 00:07:13,840 --> 00:07:14,376 У реду. 147 00:07:14,376 --> 00:07:15,070 Цоол. 148 00:07:15,070 --> 00:07:18,090 Има ли каквих питања? 149 00:07:18,090 --> 00:07:19,620 У реду. 150 00:07:19,620 --> 00:07:26,720 >> Дакле, ако узмемо корак назад за тренутак, постоји нешто као 151 00:07:26,720 --> 00:07:30,350 запажање да можемо направити о много веб апликација. 152 00:07:30,350 --> 00:07:34,810 И то је заиста да је много њих заправо то не раде много корисно 153 00:07:34,810 --> 00:07:37,140 раде унутар нит. 154 00:07:37,140 --> 00:07:41,170 Тако је неко почео о П сет седам уопште? 155 00:07:41,170 --> 00:07:45,650 Дакле, хоћеш да можда опише неки од делова? 156 00:07:45,650 --> 00:07:47,850 Да ли сте радили на логин или нешто слично? 157 00:07:47,850 --> 00:07:49,330 >> ПУБЛИКА: Не 158 00:07:49,330 --> 00:07:49,780 >> КЕВИН Шмид: У реду. 159 00:07:49,780 --> 00:07:50,150 Нема везе. 160 00:07:50,150 --> 00:07:50,900 Извините. 161 00:07:50,900 --> 00:07:55,790 Али у основи, у П сету, ти си ће бити прави много врсте 162 00:07:55,790 --> 00:07:59,760 упити на базу података да добијем неке Подаци из те базе података. 163 00:07:59,760 --> 00:08:03,330 А шта је ваш број ће радити, шта да Апацхе процес или 164 00:08:03,330 --> 00:08:06,030 да Апацхе нит ће радити док она мора да контактира 165 00:08:06,030 --> 00:08:08,990 База података је то некако ће бити седи тамо и она ће бити 166 00:08:08,990 --> 00:08:12,130 чека база података да одговори. 167 00:08:12,130 --> 00:08:16,290 >> Сада то не може да звучи као неки велики бавити јер је база података о вашем 168 00:08:16,290 --> 00:08:18,240 ЦС50 апарата, зар не? 169 00:08:18,240 --> 00:08:22,930 Али постоји нека врста мреже кашњење тамо јер сада веб 170 00:08:22,930 --> 00:08:26,830 сервер има да изда свој захтев за база података за комуникацију са 171 00:08:26,830 --> 00:08:29,520 база података и онда се то информације назад. 172 00:08:29,520 --> 00:08:33,190 Дакле, сада је као добро чекај ме, ја сам ићи добити нешто од 173 00:08:33,190 --> 00:08:35,770 база података, а затим ту је Много чека дешава. 174 00:08:35,770 --> 00:08:36,870 Да ли то смисла? 175 00:08:36,870 --> 00:08:38,580 >> А за неке ствари то није тако лоше. 176 00:08:38,580 --> 00:08:41,950 Ако је само треба да, на пример, приступ меморији, да није као 177 00:08:41,950 --> 00:08:44,100 страшно И / О латенција. 178 00:08:44,100 --> 00:08:47,110 А када кажем, И / О кашњење, што сам мислећи на је као било које врсте као што су 179 00:08:47,110 --> 00:08:48,290 улаз излаз. 180 00:08:48,290 --> 00:08:52,950 Али да приступите датотеци на диску, као и ако сам желео да служи статички ХТМЛ 181 00:08:52,950 --> 00:08:57,850 филе који је био на мојој веб страници или тако нешто, ја некако морам да 182 00:08:57,850 --> 00:09:02,310 стоп за мало, прочитајте тај фајл у са диска, а затим у 183 00:09:02,310 --> 00:09:04,400 да процес Чекам. 184 00:09:04,400 --> 00:09:06,700 Ја не радим користан рад. 185 00:09:06,700 --> 00:09:11,270 >> То није истина од свега, али то је уобичајено у апликацијама као што су П сету 186 00:09:11,270 --> 00:09:13,960 седам и доста апликација да ниси 187 00:09:13,960 --> 00:09:15,440 заправо радите много размишљања. 188 00:09:15,440 --> 00:09:19,090 А када кажем размишљање, мислим као рачунарске рада. 189 00:09:19,090 --> 00:09:23,270 Дакле, рачунарска рад могао бити нешто као, рецимо, ви желели да 190 00:09:23,270 --> 00:09:26,590 напиши веб сервер који само обрачунава нтх Фибоначијев низ. 191 00:09:26,590 --> 00:09:29,300 То не звучи као посебно забава веб сервер. 192 00:09:29,300 --> 00:09:34,220 Као ја не очекујем да сајт буде следећи на Фацебоок, али то је нека 193 00:09:34,220 --> 00:09:35,610 врста компјутерског рада. 194 00:09:35,610 --> 00:09:39,570 >> И можете замислити да замене са нека друга врста занимљиво 195 00:09:39,570 --> 00:09:43,070 рачунарска рад. 196 00:09:43,070 --> 00:09:46,050 Рецимо да је написао нешто да израчунали степене 197 00:09:46,050 --> 00:09:49,170 раздвајање између двоје људи или нешто слично. 198 00:09:49,170 --> 00:09:51,860 Тако да не укључују неку врсту обрачуна, зар не? 199 00:09:51,860 --> 00:09:56,630 Па чак и тада, да се то уради и даље имате да урадите много чекања за можда 200 00:09:56,630 --> 00:09:59,550 морате да упита базе података за погледати до ко је пријатељ са ко или 201 00:09:59,550 --> 00:10:00,600 тако нешто. 202 00:10:00,600 --> 00:10:03,510 Дакле, постоји та врста појма рачунарских рад. 203 00:10:03,510 --> 00:10:05,260 Да ли то смисла? 204 00:10:05,260 --> 00:10:08,258 Да ли ико има било каквих питања? 205 00:10:08,258 --> 00:10:11,960 >> Ох, и ја претпостављам да ставим тамо сервере за ћаскање јер сервери цхат су некако 206 00:10:11,960 --> 00:10:13,240 још један добар пример за то. 207 00:10:13,240 --> 00:10:15,250 Ћаскање сервер нема да уради много размишљања. 208 00:10:15,250 --> 00:10:18,350 Она само мора да чека да се људи шаљете поруке и онда када 209 00:10:18,350 --> 00:10:19,800 они, пошаљите их. 210 00:10:19,800 --> 00:10:21,050 ОК? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Дакле, само да опет поновимо, Апацхе и као веб сервери попут тог виљушке а 213 00:10:28,180 --> 00:10:31,470 Много теме и процеса који може бити врста расипнички. 214 00:10:31,470 --> 00:10:37,530 Претпостављам питање које може доћи из које се не морамо да имамо 215 00:10:37,530 --> 00:10:39,610 више тема и процесе? 216 00:10:39,610 --> 00:10:41,890 Шта ако смо имали једну? 217 00:10:41,890 --> 00:10:45,710 >> Па хајде да некако наслика слику шта би то изгледати. 218 00:10:45,710 --> 00:10:47,810 Дакле, хајде да користимо само једну нит. 219 00:10:47,810 --> 00:10:48,660 ОК? 220 00:10:48,660 --> 00:10:52,790 Дакле, само замислите ово са једним концем. 221 00:10:52,790 --> 00:10:56,600 >> Хајде да претпоставимо да смо били заиста не раде толико корисне - и кад кажем 222 00:10:56,600 --> 00:10:59,450 користан, мислим израчунавања рад - 223 00:10:59,450 --> 00:11:01,130 у тим вишеструким нитима пре. 224 00:11:01,130 --> 00:11:04,180 Дакле, хајде да мало консолидују све у једну нит. 225 00:11:04,180 --> 00:11:07,780 Па шта ако смо имали једну нит те врсте од само иде около у петљи и 226 00:11:07,780 --> 00:11:10,880 стално проверава да ли нешто ново деси. 227 00:11:10,880 --> 00:11:15,130 Тако на пример, нешто ново догодило би могло да значи да имам нешто вратио из 228 00:11:15,130 --> 00:11:19,310 база података, или неко послао ми нови ХТТП захтев. 229 00:11:19,310 --> 00:11:22,290 Дакле, они су врста догађаја да се деси, зар не? 230 00:11:22,290 --> 00:11:26,130 >> И онда шта ја могу да урадим када су нови ствари се дешавају у овој истој теми 231 00:11:26,130 --> 00:11:30,120 извршења, ова једна једина нит извршење, ја могу да позовем неку шифру која 232 00:11:30,120 --> 00:11:32,410 би се бавио тај конкретни ствар. 233 00:11:32,410 --> 00:11:36,640 Тако на пример, ако имам нешто назад из базе података, ја могу да водим 234 00:11:36,640 --> 00:11:40,960 мали компјутерски део који заправо само припрема ствар 235 00:11:40,960 --> 00:11:42,620 послати назад до корисника. 236 00:11:42,620 --> 00:11:46,710 Дакле, да ли то некако има смисла? 237 00:11:46,710 --> 00:11:49,940 >> Али шта су заиста импликације ово? 238 00:11:49,940 --> 00:11:50,660 Зар не? 239 00:11:50,660 --> 00:11:53,730 Зато што смо написали Много тога код - 240 00:11:53,730 --> 00:11:58,330 а ја ћу само да скочи напред у слајдовима ако је то у реду. 241 00:11:58,330 --> 00:12:00,930 Дакле, ако вам не смета, ја сам само ће направити корак уназад. 242 00:12:00,930 --> 00:12:03,410 Дакле, овакве ствари је назвао догађај петља. 243 00:12:03,410 --> 00:12:04,070 ОК? 244 00:12:04,070 --> 00:12:07,240 И некако је основни Идеја Ноде.јс. 245 00:12:07,240 --> 00:12:11,240 >> Дакле, шта се заиста ради Ноде.јс као веб сервер је ту је један нит 246 00:12:11,240 --> 00:12:14,850 који је у основи иде около у петљи као док је једна врста Ундер 247 00:12:14,850 --> 00:12:18,510 хауба од Ноде.јс који је стално проверу, да ли ми добијамо нове ствари? 248 00:12:18,510 --> 00:12:22,720 И онда ће покренути виљушкари да подесите. 249 00:12:22,720 --> 00:12:26,720 Али добро питање које се поставља је, како можемо да се то деси 250 00:12:26,720 --> 00:12:28,090 са постојећим стварима? 251 00:12:28,090 --> 00:12:32,440 >> Зато сам ставио линију Ц кода овде да у основи изгледа као да је отварање 252 00:12:32,440 --> 00:12:33,060 филе, зар не? 253 00:12:33,060 --> 00:12:36,090 Управо сам изашао са албума. 254 00:12:36,090 --> 00:12:39,600 Тако да сам морао да јој отвори нову датотеку. 255 00:12:39,600 --> 00:12:43,810 Дакле, начин наша Ц код за рад - 256 00:12:43,810 --> 00:12:47,890 и претпостављам да је разлог изабрао сам био фајлове јер је ово врста мери 257 00:12:47,890 --> 00:12:52,000 на И / О послу који смо урадили у Ц у осећај да постоји улаз излаз. 258 00:12:52,000 --> 00:12:55,070 Тако зовемо овај код да ово ради ф отворен. 259 00:12:55,070 --> 00:12:59,370 А онда на следећој линији нашег Програм, сада можемо радити са ф. 260 00:12:59,370 --> 00:13:02,710 >> Дакле, ово би био пример нечега то је као синхрони или 261 00:13:02,710 --> 00:13:06,850 блокирање јер на тој првој линији тамо чекамо док не 262 00:13:06,850 --> 00:13:08,110 добити фајл отворен. 263 00:13:08,110 --> 00:13:12,260 Дакле, у другом реду, ми знамо да смо могу да раде са ф, али то значи да 264 00:13:12,260 --> 00:13:16,240 да друга линија не може заиста покренути док прва линија врши. 265 00:13:16,240 --> 00:13:17,760 Да ли то смисла? 266 00:13:17,760 --> 00:13:20,890 >> Дакле, то би било лоше да се стави у управљач догађаја. 267 00:13:20,890 --> 00:13:23,920 А разлог за то је што ова врста чека, зар не? 268 00:13:23,920 --> 00:13:26,500 Дакле, ово би нас вратили назад на исту ствар. 269 00:13:26,500 --> 00:13:29,470 И сад ми не би ни имали корист од више нити или 270 00:13:29,470 --> 00:13:32,390 процеси, јер имамо једна нит у Ноде.јс. 271 00:13:32,390 --> 00:13:35,496 Да ли то има смисла за све? 272 00:13:35,496 --> 00:13:35,990 >> ПУБЛИКА: Чекајте. 273 00:13:35,990 --> 00:13:36,980 Дакле, шта је замена? 274 00:13:36,980 --> 00:13:37,840 >> КЕВИН Шмид: О, па да. 275 00:13:37,840 --> 00:13:39,560 Зато ћу доћи до замена. 276 00:13:39,560 --> 00:13:40,430 У реду. 277 00:13:40,430 --> 00:13:42,960 Па шта ако смо имали нешто која је изгледала овако? 278 00:13:42,960 --> 00:13:45,730 Па шта ако сад ја едитед Ф отворити мало? 279 00:13:45,730 --> 00:13:48,370 Тако сам, пролазећи у истом два аргумента као пре. 280 00:13:48,370 --> 00:13:52,610 И даље волим нову песму да је изашао са. 281 00:13:52,610 --> 00:13:57,260 Али ја сам пролазећи трећу ствар која се ова променљива зове код. 282 00:13:57,260 --> 00:14:02,280 >> Али шта је заправо шифра у овом контексту? 283 00:14:02,280 --> 00:14:05,360 Да ли је то као редован Ц променљиве? 284 00:14:05,360 --> 00:14:06,740 То је функција, зар не? 285 00:14:06,740 --> 00:14:09,450 И то може бити мало чудно, јер Ја сам заправо као сада пролази 286 00:14:09,450 --> 00:14:12,320 функционишу у другу функцију. 287 00:14:12,320 --> 00:14:14,400 >> Дакле пар ствари које треба напоменути о овоме. 288 00:14:14,400 --> 00:14:17,145 Један, нисам заправо зове функција код. 289 00:14:17,145 --> 00:14:20,650 Дакле, ви не видите код са лева заграда, десно заграда. 290 00:14:20,650 --> 00:14:23,010 Ја само пролази у коду. 291 00:14:23,010 --> 00:14:26,990 А у Ц, шта би то заправо радим се ми дати показивач на тај стварни 292 00:14:26,990 --> 00:14:29,740 код, а онда би ово могао да покрене. 293 00:14:29,740 --> 00:14:33,350 Али само размисли о томе како сте доношења кода приликом 294 00:14:33,350 --> 00:14:35,150 да датотека отвори. 295 00:14:35,150 --> 00:14:41,430 >> Али шта то значи да је сада Остатак мог програма који би могао да уради 296 00:14:41,430 --> 00:14:47,050 друге ствари, могу да наставе да раде други ствари док ми, не баш чекати, али 297 00:14:47,050 --> 00:14:50,890 само у задњем делу главе које када тај фајл је отворен, Рун то 298 00:14:50,890 --> 00:14:52,130 код на врху. 299 00:14:52,130 --> 00:14:53,390 Да ли то смисла? 300 00:14:53,390 --> 00:14:58,060 >> А сад идеја је да Ноде.јс код у радим ствари са ф 301 00:14:58,060 --> 00:15:04,590 део би требало да буде прилично кратка и једноставна и једноставан и не баш бити 302 00:15:04,590 --> 00:15:06,160 веома рачунски интензивна. 303 00:15:06,160 --> 00:15:09,390 То ћете морати да се отвори још једну датотеку, али да би требало да буде прилично брз 304 00:15:09,390 --> 00:15:14,710 јер само треба рећи уради још једну ф отвори и онда назвати други код. 305 00:15:14,710 --> 00:15:19,100 >> Дакле, само да буде потпуно јасно, ф отвори да ли нови Кати Перри песну 306 00:15:19,100 --> 00:15:23,060 Доне мп3, који ће се прилично много вратити одмах. 307 00:15:23,060 --> 00:15:27,820 И онда можемо само да наставе да раде друге ствари, јер све што сада ф 308 00:15:27,820 --> 00:15:33,410 отворен позив не се рећи основи Основна Ф отворен код отворите овај фајл 309 00:15:33,410 --> 00:15:36,020 а када завршите отварања ово филе или када га вратим, 310 00:15:36,020 --> 00:15:37,480 затим покрените тај код. 311 00:15:37,480 --> 00:15:39,540 Али то не заправо води тај код. 312 00:15:39,540 --> 00:15:41,815 А имали сте питање? 313 00:15:41,815 --> 00:15:46,180 >> ПУБЛИКА: Чини се да имплицира неколико пута да додавање рачунски 314 00:15:46,180 --> 00:15:50,545 интензивна код врста паузе [ИНАУДИБЛЕ] дривен систем. 315 00:15:50,545 --> 00:15:51,795 [ИНАУДИБЛЕ]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> КЕВИН Шмид: То је велико питање. 318 00:15:55,290 --> 00:15:59,280 Па ја стварно имам пример како можете да рачунски интегрисати 319 00:15:59,280 --> 00:16:01,090 интензивна код у мало. 320 00:16:01,090 --> 00:16:03,620 Дакле, када смо добили на примерима кода, Ја ћу бити сигуран да повуче тај. 321 00:16:03,620 --> 00:16:04,700 Да ли је то у реду? 322 00:16:04,700 --> 00:16:05,950 Хвала. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Како се зовете? 325 00:16:08,750 --> 00:16:10,620 >> ПУБЛИКА: Арон. 326 00:16:10,620 --> 00:16:14,830 >> КЕВИН Шмид: Арон доноси веома Добра поента, а то је да ако сам имао 327 00:16:14,830 --> 00:16:18,560 неки рачунски интензивна код у радим ствари са ф делом, остатак 328 00:16:18,560 --> 00:16:22,880 мој програм не може да се покрене и не може слушати за нове захтеве или ништа док сви 329 00:16:22,880 --> 00:16:24,270 та ствар је завршена. 330 00:16:24,270 --> 00:16:27,390 Дакле, ако ја пишем Ноде кода у целини осим ако ми нешто као да идем 331 00:16:27,390 --> 00:16:33,060 Предлажем да се касније, када погледамо примери код, морам да будем сигуран да 332 00:16:33,060 --> 00:16:36,060 мој број не вежем овај догађај петља. 333 00:16:36,060 --> 00:16:38,120 Да ли то смисла? 334 00:16:38,120 --> 00:16:38,350 У реду. 335 00:16:38,350 --> 00:16:40,040 Цоол. 336 00:16:40,040 --> 00:16:47,090 >> Дакле Ноде.јс нуди овај оквир да можете изградити ове догађај вођен 337 00:16:47,090 --> 00:16:48,210 сервери са. 338 00:16:48,210 --> 00:16:53,460 Тако да има овакве асинхрони неблокирајућа И / О библиотеке, а 339 00:16:53,460 --> 00:16:56,800 стандардне Ц библиотеке које смо били рад са, као да сте управо 340 00:16:56,800 --> 00:16:59,500 користити их на исти начин на који смо су их користите са ф отвара и 341 00:16:59,500 --> 00:17:03,000 ствари, они су блокирају јер Ви заправо морати да сачека 342 00:17:03,000 --> 00:17:04,470 који фајл да отвори. 343 00:17:04,470 --> 00:17:09,290 >> Али Ноде.јс вам даје да и она у основи везује у Гоогле В8 344 00:17:09,290 --> 00:17:14,030 ЈаваСцрипт енгине који је разлог Цхроме је то тако брзо у обради 345 00:17:14,030 --> 00:17:17,040 Јавасцрипт јер има тај В8 мотор. 346 00:17:17,040 --> 00:17:22,460 Тако да знам да звуци као једна од оних ВВДЦ конференције девелопер ствар 347 00:17:22,460 --> 00:17:25,390 где они само бацају гомилу Писмо број ствари за процесоре 348 00:17:25,390 --> 00:17:26,910 и кажу ово је тако цоол. 349 00:17:26,910 --> 00:17:34,200 Али, то је кул да јесу ово зато ЈаваСцрипт - 350 00:17:34,200 --> 00:17:37,010 или можда ако нисте упознати са Јавасцрипт још јер нисмо имали 351 00:17:37,010 --> 00:17:38,180 предавања о њој - 352 00:17:38,180 --> 00:17:40,770 али је ЈаваСцрипт интерпретира језик. 353 00:17:40,770 --> 00:17:41,970 >> И ово је сувише важна тачка. 354 00:17:41,970 --> 00:17:45,790 Дакле, то је важно за нашу веб сервери бити брзо, зар не? 355 00:17:45,790 --> 00:17:49,970 И ако смо само трчали ЈаваСцрипт код које је протумачено са само 356 00:17:49,970 --> 00:17:52,130 свака стара преводилац може бити спор. 357 00:17:52,130 --> 00:17:55,980 Дакле Чвор има користи од овог супер брзо В8 преводилац. 358 00:17:55,980 --> 00:17:59,580 А ја не знам да ли су га по имену јер В8 шамар у чело 359 00:17:59,580 --> 00:18:01,110 ствар, али у реду. 360 00:18:01,110 --> 00:18:07,070 >> Тако сам припремио неке примере на овој адреси. 361 00:18:07,070 --> 00:18:10,490 Након семинара, ја некако иде на говоре о томе како можете добити Ноде сет 362 00:18:10,490 --> 00:18:13,570 горе, али за сада, ја некако желим да хода кроз неке примере кода. 363 00:18:13,570 --> 00:18:17,250 Дакле, ако желите да пратите, све изворни код је доступан тамо. 364 00:18:17,250 --> 00:18:18,720 ОК? 365 00:18:18,720 --> 00:18:22,280 >> Тако да ћу напустити овај УРЛ за мало. 366 00:18:22,280 --> 00:18:24,440 И онда сам само да пребаците у терминал. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Јесу ли сви добро са овим УРЛ? 369 00:18:34,400 --> 00:18:37,990 Зато ћу се пребацити мом терминала овде. 370 00:18:37,990 --> 00:18:42,030 >> Дакле, овде је код који Ја имам за данас. 371 00:18:42,030 --> 00:18:43,960 Зашто не почнемо са симплер.јс фајл? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Друга ствар је да је све ово код ће бити написан у 374 00:18:52,100 --> 00:18:56,660 Јавасцрипт који вам може или не могу бити упознати са. 375 00:18:56,660 --> 00:19:00,170 Ваљда пар ствари је то много ЈаваСцрипт кода је врста 376 00:19:00,170 --> 00:19:04,000 синтакса и структура је веома слична Ц, тако да некако могу да га покупим као 377 00:19:04,000 --> 00:19:05,020 идете заједно. 378 00:19:05,020 --> 00:19:08,750 Покушао сам да пишем много почев број за ово на начин који је 379 00:19:08,750 --> 00:19:11,230 сличне на Ц, тако да је мало више читљиви. 380 00:19:11,230 --> 00:19:15,980 Али, као што смо напредак, ја ћу бити демонстрира неке додатне 381 00:19:15,980 --> 00:19:18,980 карактеристике ЈаваСцрипт да су некако кул. 382 00:19:18,980 --> 00:19:21,510 >> Али, хајде да погледамо овај узорка програма. 383 00:19:21,510 --> 00:19:24,820 Ваљда је све то одсечен тамо. 384 00:19:24,820 --> 00:19:28,500 Ја ћу само да поправимо тај стварно брзо ако је то у реду или не. 385 00:19:28,500 --> 00:19:31,400 Ја не знам шта ће ово да уради. 386 00:19:31,400 --> 00:19:34,660 Да ли је то мало боље? 387 00:19:34,660 --> 00:19:36,510 Да ли можете да видите вар и ствари? 388 00:19:36,510 --> 00:19:39,320 У реду. 389 00:19:39,320 --> 00:19:44,120 >> Дакле, прва линија је као ЈаваСцрипт верзија променљиве 390 00:19:44,120 --> 00:19:44,800 декларација. 391 00:19:44,800 --> 00:19:49,870 Дакле, само да се истакне оно што ово би изгледа у Ц. Дакле, ово је исто као 392 00:19:49,870 --> 00:19:52,620 ја кажем индекс једнак три или нешто слично. 393 00:19:52,620 --> 00:19:55,740 Тако да није прецизирао тип. 394 00:19:55,740 --> 00:20:00,780 Јава има врста, али то је веома динамично откуцан у природи, тако 395 00:20:00,780 --> 00:20:02,580 није пружио никакву типа на њу. 396 00:20:02,580 --> 00:20:03,670 Тако да само има вар. 397 00:20:03,670 --> 00:20:05,320 То је као променљиву. 398 00:20:05,320 --> 00:20:05,920 ОК? 399 00:20:05,920 --> 00:20:08,340 >> И ја зовем ову променљиву ХТТП. 400 00:20:08,340 --> 00:20:12,480 И на мојој десној страни, ја имам израз који желим да ставим у ХТТП. 401 00:20:12,480 --> 00:20:14,960 И то каже захтевају ХТТП. 402 00:20:14,960 --> 00:20:18,500 Дакле, ово је врста слична укључити. 403 00:20:18,500 --> 00:20:22,940 То је мало више као моћнији од укључују у смислу да укључују 404 00:20:22,940 --> 00:20:26,100 би само копирај заглавље филе за функције прототипа у или 405 00:20:26,100 --> 00:20:27,930 год са дефиницијама типа. 406 00:20:27,930 --> 00:20:30,590 Али потребно је заправо дешава да нам се код. 407 00:20:30,590 --> 00:20:33,280 >> Дакле, можете да мислите о томе како увоз неку шифру. 408 00:20:33,280 --> 00:20:37,960 Дакле, негде у Ноде.јс модулу систем или шта год, они имају све ово 409 00:20:37,960 --> 00:20:40,790 ХТТП сервер код тако да сам само је привлачан за моје 410 00:20:40,790 --> 00:20:43,130 личну употребу у овом програму. 411 00:20:43,130 --> 00:20:44,260 ОК? 412 00:20:44,260 --> 00:20:46,930 >> Па онда ја имам ову функцију да сам написао. 413 00:20:46,930 --> 00:20:50,330 И приметио нисам имала да прецизира повратни тип или врста 414 00:20:50,330 --> 00:20:51,140 аргументи поново. 415 00:20:51,140 --> 00:20:54,440 Тако некако лабаво откуцан у та врста смисла. 416 00:20:54,440 --> 00:20:57,290 Два аргумента да је потребно у, Захтев и одговор. 417 00:20:57,290 --> 00:21:02,080 Дакле, то је нешто као концептуално упознат са слике које смо имали 418 00:21:02,080 --> 00:21:05,280 на екрану пре него што смо добили овај захтев да се 419 00:21:05,280 --> 00:21:06,410 имају од корисника. 420 00:21:06,410 --> 00:21:09,170 И онда имамо одговор који можемо писати ствари. 421 00:21:09,170 --> 00:21:15,060 >> Дакле, прва линија ово ради рес.вритеХеад 200 и онда ово 422 00:21:15,060 --> 00:21:17,070 Тип садржаја текста обичан. 423 00:21:17,070 --> 00:21:19,300 Па хајде да то комад осим мало. 424 00:21:19,300 --> 00:21:22,340 Дакле, хајде да се фокусирамо на рес.врите за мало. 425 00:21:22,340 --> 00:21:28,420 Дакле, писање је у основи, и пишу главу, су само начини да некако исписујем 426 00:21:28,420 --> 00:21:29,960 ствари на одговору. 427 00:21:29,960 --> 00:21:30,770 ОК? 428 00:21:30,770 --> 00:21:36,230 Тако пишу главу, ако ико сећа из ХТТП предавања, да ли ви момци 429 00:21:36,230 --> 00:21:39,940 запамтите заглавља у врх ХТТП ствар? 430 00:21:39,940 --> 00:21:43,580 Па зашто не ја само демо заглавља брзо. 431 00:21:43,580 --> 00:21:44,640 Да ли би то било корисно? 432 00:21:44,640 --> 00:21:45,500 Или треба ми само некако - 433 00:21:45,500 --> 00:21:46,070 У реду. 434 00:21:46,070 --> 00:21:46,740 Наравно. 435 00:21:46,740 --> 00:21:52,340 >> Дакле, када ваш прегледач иде на гоогле.цом или нешто слично, 436 00:21:52,340 --> 00:21:54,250 заправо мало више нема - 437 00:21:54,250 --> 00:21:55,380 ово је као тајна - 438 00:21:55,380 --> 00:21:58,340 ту је као мало више информација да долази кроз цев од само 439 00:21:58,340 --> 00:22:00,180 мало претрагу и све. 440 00:22:00,180 --> 00:22:03,550 Тако да вам покажем ово, ја идем да користите програм под називом Цурл. 441 00:22:03,550 --> 00:22:04,260 ОК? 442 00:22:04,260 --> 00:22:08,020 Дакле, то је нешто што можете да покренете на Ваш командне линије или у Мац ОСКС 443 00:22:08,020 --> 00:22:09,830 апарата или шта год. 444 00:22:09,830 --> 00:22:17,050 И тако, ако ја Цурл ХТТП гоогле.цом, Идем да видим ХТМЛ. 445 00:22:17,050 --> 00:22:21,230 А то је, у правичности, само ХТМЛ који вас некако говори да 446 00:22:21,230 --> 00:22:24,695 преусмери на ввв ако ваш бровсер не аутоматски регулатор 447 00:22:24,695 --> 00:22:27,110 преусмеравање. 448 00:22:27,110 --> 00:22:33,390 >> Дакле, ово је само ХТМЛ, али ја идем да додате на ову цртицу Цурл ја застава. 449 00:22:33,390 --> 00:22:33,600 ОК? 450 00:22:33,600 --> 00:22:35,600 И то ће се показати ме заглавља. 451 00:22:35,600 --> 00:22:40,640 Дакле, ово је такође информација да долази кроз кад добијем овај одговор. 452 00:22:40,640 --> 00:22:41,260 ОК? 453 00:22:41,260 --> 00:22:45,320 >> Дакле, на врху, видиш ово ХТТП 301 мове трајно. 454 00:22:45,320 --> 00:22:49,470 И то је некако важно, јер ово се односи на статус код. 455 00:22:49,470 --> 00:22:53,750 Дакле, овде је 301 код статуса, који је у основи само цео број 456 00:22:53,750 --> 00:22:57,750 који говори бровсер или ко год да је читајући ово, ако се претвараш да 457 00:22:57,750 --> 00:23:01,460 сте прегледач и ви видите ово, у основи сада ако погледате 458 00:23:01,460 --> 00:23:04,960 да и ви видите 301, знате ја имам да уради нешто посебно на основу 459 00:23:04,960 --> 00:23:08,810 301, или нешто посебно догодило на основу 301. 460 00:23:08,810 --> 00:23:12,640 Тако пише трајно преселио. 461 00:23:12,640 --> 00:23:17,700 >> А онда, у суштини, имамо гомила кључних вредности парова. 462 00:23:17,700 --> 00:23:22,100 Тако смо добили локацију је ввв.гоогле.цом. 463 00:23:22,100 --> 00:23:25,190 А онда некако све ово остало, али у суштини, оно што је локација 464 00:23:25,190 --> 00:23:29,662 изрека је нова локација је на ввв.гоогле.цом. 465 00:23:29,662 --> 00:23:33,800 Дакле, сада, ако одете на гоогле.цом, ви ћете некако види прегледача врсту трептају 466 00:23:33,800 --> 00:23:38,770 за други и онда преусмеравање вас враћам на ввв.гоогле.цом. 467 00:23:38,770 --> 00:23:41,840 Дакле, одговори могу да садрже ови заглавља. 468 00:23:41,840 --> 00:23:43,330 >> И пар ствари да истакнем. 469 00:23:43,330 --> 00:23:46,890 Дакле, рецимо да смо били успешни у ствари у посети веб страницу. 470 00:23:46,890 --> 00:23:49,040 Зато ме пусти да - 471 00:23:49,040 --> 00:23:51,080 шта је добро сајт? 472 00:23:51,080 --> 00:23:53,285 Ја сам лош у размишљању добро сајтова на лицу места. 473 00:23:53,285 --> 00:23:53,640 >> ПУБЛИКА: Википедиа. 474 00:23:53,640 --> 00:23:54,160 >> КЕВИН Шмид: У реду. 475 00:23:54,160 --> 00:23:56,040 Хајде да урадимо Википедију. 476 00:23:56,040 --> 00:23:58,680 Дакле, овде сам се преселио. 477 00:23:58,680 --> 00:23:59,240 Ох ваит. 478 00:23:59,240 --> 00:24:00,160 Је ли? 479 00:24:00,160 --> 00:24:00,890 Да, био сам. 480 00:24:00,890 --> 00:24:01,100 У реду. 481 00:24:01,100 --> 00:24:03,005 Зато морам да урадим ввв. 482 00:24:03,005 --> 00:24:06,006 Зато ћу да урадим ввв. 483 00:24:06,006 --> 00:24:09,680 И као што видите, овде је све ХТМЛ да би претраживач обради 484 00:24:09,680 --> 00:24:10,910 за Википедију. 485 00:24:10,910 --> 00:24:14,055 >> Али ако наставим скроловање овде, шта ћу видети на врху - 486 00:24:14,055 --> 00:24:17,800 вов, има доста ХТМЛ на Википедији - 487 00:24:17,800 --> 00:24:22,550 али оно што ја могу да видим на врху овде ово стање код 200, за разлику од 488 00:24:22,550 --> 00:24:24,570 301 који сам видео раније. 489 00:24:24,570 --> 00:24:27,100 И приметите да има леп пријатељски реду поред њега. 490 00:24:27,100 --> 00:24:29,470 Дакле, ово је као доброг статуса код. 491 00:24:29,470 --> 00:24:31,160 >> Да ли то 200 број изгледа познато? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Да, јер када сам урадио симплер.јс, Написао сам 200 тамо. 494 00:24:39,880 --> 00:24:43,290 Дакле, то је у основи каже реци претраживач или ко покушава да дођете до 495 00:24:43,290 --> 00:24:45,440 то да су они били успешни. 496 00:24:45,440 --> 00:24:49,040 Или да некако као да смо били успешни превише. 497 00:24:49,040 --> 00:24:54,320 >> И ту је ова врста посебног синтаксе у ЈаваСцрипт за проглашење 498 00:24:54,320 --> 00:24:59,870 карта од ових тастера као тип садржаја и ове вредности као што су текст равници. 499 00:24:59,870 --> 00:25:03,780 Дакле, ако се осврнемо на одговор који смо вратио из Википедије раније, - 500 00:25:03,780 --> 00:25:06,200 Ја ћу покушати да скролујете се мало брже - 501 00:25:06,200 --> 00:25:09,900 имате ове тастере као сервер и ове вредности Апацхе. 502 00:25:09,900 --> 00:25:12,120 Дакле, имаш кључеве и вредности. 503 00:25:12,120 --> 00:25:15,930 И можете да одредите ово у Чвор шта да пошаље назад. 504 00:25:15,930 --> 00:25:19,380 >> Дакле, ово је заправо врста, у неким начина, и на неки начин то није 505 00:25:19,380 --> 00:25:23,170 стварно, али то је мало нижи ниво од ПХП кода који можда бити 506 00:25:23,170 --> 00:25:26,980 писање за П сет седам јер ПХП и Апацхе некако побринути за неки 507 00:25:26,980 --> 00:25:28,150 од ових ствари за тебе. 508 00:25:28,150 --> 00:25:32,520 У ПХП-у, можете да замените подразумевану понашање писањем сопствених заглавља. 509 00:25:32,520 --> 00:25:35,520 Али за потребе овог, добијамо да напишем своје заглавља. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Да ли то линија смисла сви, глава пишу линија? 512 00:25:41,105 --> 00:25:41,380 У реду. 513 00:25:41,380 --> 00:25:42,280 Страва. 514 00:25:42,280 --> 00:25:45,870 >> Дакле, оно што ја радим онда је ја завршити одговор рекао здраво свет. 515 00:25:45,870 --> 00:25:47,040 У реду. 516 00:25:47,040 --> 00:25:49,920 Али то је само функција зове захтев за претовар. 517 00:25:49,920 --> 00:25:53,510 Дакле, сада сам стварно морати да некако урадити нешто са ове функције, зар не? 518 00:25:53,510 --> 00:25:59,170 >> Дакле, овде је оно што ја радим тамо је ово линија која чини вар екуалс сервера 519 00:25:59,170 --> 00:26:03,530 ХТТП.цреате сервера, а онда сам проћи у захтев руковалац. 520 00:26:03,530 --> 00:26:06,080 Дакле, ово је врста чвора начин стварања сервер. 521 00:26:06,080 --> 00:26:08,790 И приметите да сам пролазећи у захтев руковалац. 522 00:26:08,790 --> 00:26:12,290 Дакле, ово говори цреатеСервер функција да ја желим да ми направи 523 00:26:12,290 --> 00:26:16,270 сервера, а када то сервер прими одговор, морам да зовем ово 524 00:26:16,270 --> 00:26:18,680 затражити функцију претовар. 525 00:26:18,680 --> 00:26:18,990 ОК? 526 00:26:18,990 --> 00:26:22,290 >> Тако да линија прилично одмах завршава. 527 00:26:22,290 --> 00:26:28,780 Дакле вар сервера линија се врши у праву након ви да урадите прилично. 528 00:26:28,780 --> 00:26:31,770 Мислим, то је да подесите неке унутрашње држава да знате да би сте се 529 00:26:31,770 --> 00:26:35,400 позовите ту функцију захтев претовар, али она неће тамо седети и 530 00:26:35,400 --> 00:26:37,730 рецимо има корисник послао ми захтев још? 531 00:26:37,730 --> 00:26:39,270 Да ми је послао корисник још захтев? 532 00:26:39,270 --> 00:26:40,780 Тако да не блокира. 533 00:26:40,780 --> 00:26:41,650 ОК? 534 00:26:41,650 --> 00:26:46,120 >> Дакле, шта ће то урадити то је у основи сада чува показивач на овом коду, 535 00:26:46,120 --> 00:26:49,670 овај захтев руковалац функција, а затим ће покренути тај код кад неко 536 00:26:49,670 --> 00:26:52,170 подноси захтев. 537 00:26:52,170 --> 00:26:54,120 А онда ми радимо сервер.листен. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> 1337 има прилично произвољан. 540 00:26:59,960 --> 00:27:02,285 Нисам имао посебан разлог за брање тај број. 541 00:27:02,285 --> 00:27:03,860 То је био потпуно случајан. 542 00:27:03,860 --> 00:27:07,010 Али то само спецификује порт. 543 00:27:07,010 --> 00:27:10,640 Дакле, већина веб сервери видећете да су они користе порт 80 јер је то врста 544 00:27:10,640 --> 00:27:11,810 од попут Конвенције. 545 00:27:11,810 --> 00:27:16,170 Дакле, ако ја одем на тако нешто, Не знам, Википедиа.орг, 546 00:27:16,170 --> 00:27:17,700 и ја ставио дебело црево 8 - 547 00:27:17,700 --> 00:27:18,610 Ох вов, не могу да видим. 548 00:27:18,610 --> 00:27:19,370 Жао ми је. 549 00:27:19,370 --> 00:27:21,820 Али, ако ја урадим Википедиа - 550 00:27:21,820 --> 00:27:24,810 Ја ћу писати овде само да јасно је на апарату. 551 00:27:24,810 --> 00:27:29,150 Али ако узмем ово у бровсеру дебело црево 80, који наводи идите на 552 00:27:29,150 --> 00:27:31,430 Википедиа.орг на порт 80.. 553 00:27:31,430 --> 00:27:36,200 Дакле, то је као како Сједињене Државе имају више портова као где можете да брод 554 00:27:36,200 --> 00:27:37,440 ствари до врсте. 555 00:27:37,440 --> 00:27:40,730 Дакле, то је као прелазак на овај поставите на овом серверу. 556 00:27:40,730 --> 00:27:40,990 У реду. 557 00:27:40,990 --> 00:27:45,730 >> Зато сам изабрао 1337. 558 00:27:45,730 --> 00:27:47,910 Постоји читав низ бројева које можете да одаберете. 559 00:27:47,910 --> 00:27:50,390 То није било сасвим посебан. 560 00:27:50,390 --> 00:27:54,560 >> Али шта ћу сада да радим е ја ћу да покренете чвор. 561 00:27:54,560 --> 00:27:59,730 Дозволите ми да унесете заправо пар редова ниже, тако да можете да га видите. 562 00:27:59,730 --> 00:28:03,130 Ја ћу да урадим Ноде, и ја сам ће покренути симплер.јс. 563 00:28:03,130 --> 00:28:06,880 А ми ћемо говорити о томе како да се Чвор поставити у мало. 564 00:28:06,880 --> 00:28:09,350 Али сада је то само ради сервер. 565 00:28:09,350 --> 00:28:14,360 >> Дакле, једна ствар коју можете покушати који не може бити узбудљиво да је заправо можемо 566 00:28:14,360 --> 00:28:16,300 покушајте да му приступите у Цурл. 567 00:28:16,300 --> 00:28:20,680 Па ја могу да урадим Цурл, и мој Машина је локални домаћин. 568 00:28:20,680 --> 00:28:24,600 Такође ћете видети ово написано овако понекад. 569 00:28:24,600 --> 00:28:29,810 Локална домаћин и 127.0.0.1 су љубазни од свиђа вашем кућном рачунару. 570 00:28:29,810 --> 00:28:33,180 Дакле, то је као да говори свој рачунар. 571 00:28:33,180 --> 00:28:33,760 У реду. 572 00:28:33,760 --> 00:28:36,030 >> И онда ја могу да кажем 1337. 573 00:28:36,030 --> 00:28:39,630 Дакле, ако ја водим ову линију кода, пише Хелло Ворлд. 574 00:28:39,630 --> 00:28:44,050 И ако сам хтео да видим те ствари да Имао Тип садржаја текста или обичан 575 00:28:44,050 --> 00:28:46,560 год, ја чак могао ставити ово овде. 576 00:28:46,560 --> 00:28:48,810 И приметите да не кажем у реду. 577 00:28:48,810 --> 00:28:50,810 И ја имам тект Само. 578 00:28:50,810 --> 00:28:53,140 А онда је некако све ово друго ствари које ће додати у чвор 579 00:28:53,140 --> 00:28:54,440 ту за мене. 580 00:28:54,440 --> 00:28:55,700 То није важно супер. 581 00:28:55,700 --> 00:28:58,230 >> Мислим, постоје неки технички аспекти у том су љубазни 582 00:28:58,230 --> 00:29:02,280 од кул да причам о томе, али само да се покаже ти, ја такође имају моћ да 583 00:29:02,280 --> 00:29:03,070 промените ово око. 584 00:29:03,070 --> 00:29:06,280 Тако да само могу додати гомилу од таквих ствари. 585 00:29:06,280 --> 00:29:11,780 А онда сад, ако гледам у мој излаз, то ће бити то. 586 00:29:11,780 --> 00:29:19,740 Дакле, та заглавља значе неке ствари за прегледаче и такве ствари. 587 00:29:19,740 --> 00:29:23,040 >> И заглавља могу да кажем у основи претраживача како да одговори на нешто. 588 00:29:23,040 --> 00:29:26,280 Ако сте икада чули за колачића раније, или ако сте икада били озлојеђени 589 00:29:26,280 --> 00:29:29,330 од стране веб страници подешавање колачића, или укључен колачић блоку или 590 00:29:29,330 --> 00:29:30,320 тако нешто. 591 00:29:30,320 --> 00:29:33,040 Ви у ствари можете подесити цоокиес у овим заглавља. 592 00:29:33,040 --> 00:29:36,990 Дакле, они рећи претраживача како да понашање у неким случајевима. 593 00:29:36,990 --> 00:29:37,750 У реду. 594 00:29:37,750 --> 00:29:40,310 >> Дакле, то је било симплер.јс. 595 00:29:40,310 --> 00:29:42,780 Да ли неко има било каква питања на том фајлу изворног кода? 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 У реду. 598 00:29:45,610 --> 00:29:46,490 Цоол. 599 00:29:46,490 --> 00:29:50,780 >> Па хајде да уклоните из р да и погледајте симпле.јс. 600 00:29:50,780 --> 00:29:53,010 Дакле, ово је прилично исти програм. 601 00:29:53,010 --> 00:29:56,030 Управо сам то написао мало другачије јер сам желео да неки начин истиче 602 00:29:56,030 --> 00:29:57,850 неке карактеристике ЈаваСцрипт. 603 00:29:57,850 --> 00:30:03,880 >> Дакле, приметите да је захтев за претовар функција је потпуно нестао. 604 00:30:03,880 --> 00:30:05,800 О Да ли имате неко питање? 605 00:30:05,800 --> 00:30:08,200 >> Публика: Да, аргументи који су прошли на који 606 00:30:08,200 --> 00:30:10,120 функција, шта су они? 607 00:30:10,120 --> 00:30:12,050 >> КЕВИН Шмид: Дакле, то су ЈаваСцрипт објекти. 608 00:30:12,050 --> 00:30:15,230 У Ноде.јс документацији, она у основи каже шта су методе 609 00:30:15,230 --> 00:30:15,910 доступан на њих. 610 00:30:15,910 --> 00:30:19,602 Само смо се десити да имају приступ овај метод се зове глава писање и крај 611 00:30:19,602 --> 00:30:20,730 и такве ствари. 612 00:30:20,730 --> 00:30:22,590 Али ту је цела гомила више метода. 613 00:30:22,590 --> 00:30:27,670 >> И, на пример, као један од њих посебно на рец, можете да урадите 614 00:30:27,670 --> 00:30:34,540 нешто као рец.метход који ће да вам кажем да ли је то ХТТП добити или 615 00:30:34,540 --> 00:30:36,780 ХТТП ПОСТ захтева и такве ствари. 616 00:30:36,780 --> 00:30:39,100 Дакле, ту је све врсте другачији особине, али су обојица су 617 00:30:39,100 --> 00:30:42,560 Јава објеката, а они само имају Функције везани за њих да вам 618 00:30:42,560 --> 00:30:43,850 може да напише нешто на. 619 00:30:43,850 --> 00:30:45,520 ОК? 620 00:30:45,520 --> 00:30:49,030 >> Дакле, приметите да је захтев руковалац је потпуно нестао. 621 00:30:49,030 --> 00:30:52,650 Али код које сам имао у захтеву руковалац је још увек тамо. 622 00:30:52,650 --> 00:30:56,520 Још увек имам тај рес.вритеХеад а ја и даље имам тај рес.енд. 623 00:30:56,520 --> 00:31:00,270 А шта је ово пример у ЈаваСцрипт је ово идеја 624 00:31:00,270 --> 00:31:01,460 анониман функција. 625 00:31:01,460 --> 00:31:04,180 и анонимно је као достојан имена за њу јер буквално не 626 00:31:04,180 --> 00:31:05,180 има име. 627 00:31:05,180 --> 00:31:07,900 Нема функција захтев руковалац тамо. 628 00:31:07,900 --> 00:31:10,110 >> Нема име, али је и даље је узимање аргумент. 629 00:31:10,110 --> 00:31:12,250 Тако да увек имам рец и рес. 630 00:31:12,250 --> 00:31:16,180 И ја још увек имам код. 631 00:31:16,180 --> 00:31:18,930 То је сасвим у реду ЈаваСцрипт код. 632 00:31:18,930 --> 00:31:22,540 Тако да могу прогласити функцију без експлицитно дајући јој име. 633 00:31:22,540 --> 00:31:24,250 То је мало збуњујуће на први. 634 00:31:24,250 --> 00:31:26,230 Постоје неке корисне ствари, као што које можете да урадите са 635 00:31:26,230 --> 00:31:28,450 ове анонимне функције. 636 00:31:28,450 --> 00:31:32,100 Да ли неко има било каквих питања у вези овога, или је то у реду само да се, за сада, 637 00:31:32,100 --> 00:31:34,130 некако само прихватити да је ће учинити исту ствар? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Да? 640 00:31:37,125 --> 00:31:38,680 >> ПУБЛИКА: прво су функције класа у ЈаваСцрипт? 641 00:31:38,680 --> 00:31:41,020 >> КЕВИН Шмид: Они су прво класа у ЈаваСцрипт. 642 00:31:41,020 --> 00:31:45,490 И само знам да ови концепти пролази у анонимној функцији као 643 00:31:45,490 --> 00:31:49,600 ово важи за ЈаваСцрипт да сте може писати у свом завршном пројекту за 644 00:31:49,600 --> 00:31:51,260 веб претраживач превише. 645 00:31:51,260 --> 00:31:56,700 Тако на пример, у ЈаваСцрипт у Ваш претраживач, такође је нешто догађај 646 00:31:56,700 --> 00:32:00,680 вођен у смислу да оно што ћу имати је када корисник кликне ово 647 00:32:00,680 --> 00:32:02,640 дугме, желим да покренете овај код. 648 00:32:02,640 --> 00:32:07,070 >> Дакле, то је иста врста идеја клијент страни када клик миша или они 649 00:32:07,070 --> 00:32:09,870 миша преко неког слику на веб страница, покрените овај код. 650 00:32:09,870 --> 00:32:11,350 То може применити на серверима. 651 00:32:11,350 --> 00:32:16,380 Дакле, то је нешто као узбудљив Разлог зашто је ЈаваСцрипт заиста 652 00:32:16,380 --> 00:32:19,810 погодне или неки људи мисле да је то погодан језик за ову врсту 653 00:32:19,810 --> 00:32:22,530 Возач догађај серверу јер имате ове анонимне функције. 654 00:32:22,530 --> 00:32:26,150 Имате целу идеју ово асинхрони код. 655 00:32:26,150 --> 00:32:27,060 У реду. 656 00:32:27,060 --> 00:32:30,360 Има ли каквих питања? 657 00:32:30,360 --> 00:32:30,470 >> У реду. 658 00:32:30,470 --> 00:32:33,440 Дакле, то је било симпле.јс. 659 00:32:33,440 --> 00:32:38,070 Дакле, хајде да погледамо још један или пар више. 660 00:32:38,070 --> 00:32:42,040 Дакле, ово је слееп.јс. 661 00:32:42,040 --> 00:32:47,160 Тако је ико упознат са Ц Функција спавања? 662 00:32:47,160 --> 00:32:50,936 Од можда једном од ранијих предавања или нешто слично? 663 00:32:50,936 --> 00:32:54,650 >> Дакле, у основи можете проћи у мислим број секунди или ако користите у 664 00:32:54,650 --> 00:32:57,080 спавају број милисекунди или наносекунди. 665 00:32:57,080 --> 00:33:00,450 А у основи програм ће престати ради за тај износ времена. 666 00:33:00,450 --> 00:33:01,280 Зар не? 667 00:33:01,280 --> 00:33:06,970 И онда ће се пробудити и на крају онда ћу наставити да се приказују 668 00:33:06,970 --> 00:33:08,340 Програм. 669 00:33:08,340 --> 00:33:12,740 >> Дакле, овај сервер некако даје утисак спавање. 670 00:33:12,740 --> 00:33:17,580 Дакле, приметите да имамо исти рес.вритеХеад 200 са главом као 671 00:33:17,580 --> 00:33:22,130 пре, али онда смо зове ово Функција се зове скуп тајмаут. 672 00:33:22,130 --> 00:33:26,170 Сет тимеоут је такође доступан у Ваш веб претраживач Гоогле Цхроме 673 00:33:26,170 --> 00:33:28,000 или Сафари или шта год. 674 00:33:28,000 --> 00:33:31,720 А у суштини шта то ради овде се то узима у функцији. 675 00:33:31,720 --> 00:33:33,360 Обавештење, опет, то је анониман функција. 676 00:33:33,360 --> 00:33:36,310 Дакле, то је кул, јер смо користећи анонимну функцију у оквиру 677 00:33:36,310 --> 00:33:38,950 анониман функција које може бити мало чудно. 678 00:33:38,950 --> 00:33:42,270 >> Али то је узимање ту функцију, која је у основи каже - и начин на који ова 679 00:33:42,270 --> 00:33:47,430 Радови у 5000 милисекунди, ја желим да изврши ту функцију која 680 00:33:47,430 --> 00:33:50,830 Управо завршава одговор и пише хеј. 681 00:33:50,830 --> 00:33:56,730 Дакле, ово даје утисак као спава, али начин на који то заправо 682 00:33:56,730 --> 00:33:59,780 ради је да ћемо покренути кроз ова линија веома брзо. 683 00:33:59,780 --> 00:34:01,190 Ми само пишемо нешто. 684 00:34:01,190 --> 00:34:03,780 И онда ми такође ћемо покренути кроз ова линија веома брзо. 685 00:34:03,780 --> 00:34:08,620 Дакле, ми нисмо заправо дешава да чека пет секунди. 686 00:34:08,620 --> 00:34:11,370 Само ћемо да покренете овај код одмах. 687 00:34:11,370 --> 00:34:14,219 >> А онда ту је, опет, овај мали догађај петља која сада има ову ствар 688 00:34:14,219 --> 00:34:17,570 регистри који у основи је управо стално иде около у круг 689 00:34:17,570 --> 00:34:21,620 и гледа на сат у једном навој и изрека, има пет секунди 690 00:34:21,620 --> 00:34:22,360 прошло још? 691 00:34:22,360 --> 00:34:26,409 А онда, када се види да други рука је преселио као пет секунди или 692 00:34:26,409 --> 00:34:29,190 год, онда она пробуди и каже, Ох, шта ја треба да урадим? 693 00:34:29,190 --> 00:34:30,350 О Морам да покренете овај код. 694 00:34:30,350 --> 00:34:33,110 И онда ће то покренути рес.енд хеј. 695 00:34:33,110 --> 00:34:35,360 >> Дакле, опет, ми никада чекамо овде. 696 00:34:35,360 --> 00:34:38,590 Дакле, није да овај код унутар ова функција ће узети пет 697 00:34:38,590 --> 00:34:39,900 секунди да се управља. 698 00:34:39,900 --> 00:34:43,090 Овај код ће покренути прилично тренутно, бар у односу на 699 00:34:43,090 --> 00:34:46,139 пет секунди да смо причали пре око раније. 700 00:34:46,139 --> 00:34:52,100 >> Дакле, само да покажем у акцији, Ја могу да урадим Ноде.слееп.јс. 701 00:34:52,100 --> 00:34:55,159 И да ли забрљам нешто? 702 00:34:55,159 --> 00:34:56,310 Вероватно. 703 00:34:56,310 --> 00:34:57,410 Извините. 704 00:34:57,410 --> 00:34:59,530 Хајде да видимо шта можемо да урадимо да поправи ово. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 У реду. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 Дакле, дефинитивно користити Ноде.јс. 709 00:35:17,464 --> 00:35:19,440 Само се шалим. 710 00:35:19,440 --> 00:35:19,570 У реду. 711 00:35:19,570 --> 00:35:20,820 Само један сек. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 У реду. 714 00:35:27,900 --> 00:35:29,130 Ја знам шта је то. 715 00:35:29,130 --> 00:35:34,440 >> Дакле, питање је да у мојој другој картици овде, сам трчао Ноде већ на 716 00:35:34,440 --> 00:35:36,590 та иста адреса, 1337. 717 00:35:36,590 --> 00:35:43,370 Тако да је ово грешка бацио, ако погледамо у томе прави блиско, је адреса у 718 00:35:43,370 --> 00:35:45,180 користити, ЕАДДРИНУСЕ. 719 00:35:45,180 --> 00:35:47,970 Тако сам већ овде користи 1337. 720 00:35:47,970 --> 00:35:52,210 Дакле, ако сам затворио ово, а онда ја сада покушајте да покренете ово, надам се, све 721 00:35:52,210 --> 00:35:53,210 ће бити у реду. 722 00:35:53,210 --> 00:35:53,440 У реду. 723 00:35:53,440 --> 00:35:57,020 Тако да само могу имати једну ствар врсту слушања на порту одједном. 724 00:35:57,020 --> 00:35:59,660 Друго решење би било за мене да само уредите тај програм и да 725 00:35:59,660 --> 00:36:02,370 то буде као 1338 или тако нешто тако. 726 00:36:02,370 --> 00:36:04,100 >> Али сада сан се ради. 727 00:36:04,100 --> 00:36:06,400 Па хајде да заправо га испробате у претраживач овај пут, јер је то 728 00:36:06,400 --> 00:36:09,080 мало незабаван да видите то у терминалу. 729 00:36:09,080 --> 00:36:13,560 Тако да само идем на тај 127 адреса поново у 1337. 730 00:36:13,560 --> 00:36:14,850 И ако можете да га видите - 731 00:36:14,850 --> 00:36:18,050 Ја не знам да ли могу - али мој прегледач је узимање веома, веома дуго 732 00:36:18,050 --> 00:36:20,600 време да се учита или као пет секунди. 733 00:36:20,600 --> 00:36:23,460 >> И онда после тога, она коначно завршио одговор. 734 00:36:23,460 --> 00:36:29,070 А ви не можете видети јер ствар се преселио преко мало, али ако направим 735 00:36:29,070 --> 00:36:32,500 ово мало мањи, ви може видети пише хеј. 736 00:36:32,500 --> 00:36:35,130 Тако сам хеј, али после пет секунди. 737 00:36:35,130 --> 00:36:38,510 И то може бити мало чистији да види овде на терминалу, па сам 738 00:36:38,510 --> 00:36:40,980 да уради - 739 00:36:40,980 --> 00:36:43,540 хајде да урадимо овде - 740 00:36:43,540 --> 00:36:48,370 хајде да урадимо Цурл тој адреси поново са 1337. 741 00:36:48,370 --> 00:36:50,820 И ја некако морају да седе овде за пет секунди. 742 00:36:50,820 --> 00:36:53,760 Али приметите да је сервер може да прихвати нове одговоре. 743 00:36:53,760 --> 00:36:54,940 Тако да штампа хеј. 744 00:36:54,940 --> 00:36:58,720 >> И на демо то, у основи оно што Ја могу да урадим у овом другом картици - 745 00:36:58,720 --> 00:37:02,640 па рецимо да сам ово у другој картици, Ја ћу да урадим Керл и исти 746 00:37:02,640 --> 00:37:03,780 ствар поново. 747 00:37:03,780 --> 00:37:06,600 И ја ћу покушати да подстакне ове момци офф истовремено. 748 00:37:06,600 --> 00:37:08,260 Зато ћу да урадим ово, и ја сам ће да се трка овде и ја сам 749 00:37:08,260 --> 00:37:09,650 то поново уради. 750 00:37:09,650 --> 00:37:14,030 >> И хајде да га тако да сте могу видети обоје. 751 00:37:14,030 --> 00:37:20,250 Тај штампани хеј и да је један штампан хеј скроз на - 752 00:37:20,250 --> 00:37:22,550 хајде да урадимо тај експеримент поново. 753 00:37:22,550 --> 00:37:25,100 Заправо, хајде да користимо ово трик, ако је то у реду. 754 00:37:25,100 --> 00:37:30,520 >> Зато ћу да користе схелл ствар која ми омогућава да у основи раде два примерка 755 00:37:30,520 --> 00:37:32,630 овог програма паралелно. 756 00:37:32,630 --> 00:37:36,070 Дакле, то ће покренути први програм и други програм паралелно. 757 00:37:36,070 --> 00:37:39,060 Тако да сада ако притиснете Ентер, то ће да би тај захтев прилично 758 00:37:39,060 --> 00:37:40,570 тренутно у исто време. 759 00:37:40,570 --> 00:37:42,620 Дакле, хајде да пробамо. 760 00:37:42,620 --> 00:37:44,950 >> Дакле, сада приметити пише два процеса. 761 00:37:44,950 --> 00:37:50,630 А ако сте радознали, да 27.000 број је у основи процес ИД. 762 00:37:50,630 --> 00:37:52,940 А онда приметити, они штампају хеи у исто време. 763 00:37:52,940 --> 00:37:56,820 Није било као морали смо да чекамо пет секунде за један и онда после тога, 764 00:37:56,820 --> 00:37:59,640 Пет секунди касније добити други. 765 00:37:59,640 --> 00:38:03,300 Дакле, то је некако, на неки начин, то је не баш доказ, али то је 766 00:38:03,300 --> 00:38:07,390 интуитиван доказ да то није само као чека пет секунди и блокирање 767 00:38:07,390 --> 00:38:08,960 цео нит. 768 00:38:08,960 --> 00:38:10,720 Ок кул. 769 00:38:10,720 --> 00:38:17,850 >> Арон поставио питање раније да био, па шта ако ми не урадимо нешто - 770 00:38:17,850 --> 00:38:18,735 Да? 771 00:38:18,735 --> 00:38:19,051 >> ПУБЛИКА: Чекајте. 772 00:38:19,051 --> 00:38:21,585 Како се то разликује од принтф бафер, иако? 773 00:38:21,585 --> 00:38:23,010 Зар то аутоматски уради? 774 00:38:23,010 --> 00:38:25,390 Зашто морамо да бринемо о томе? 775 00:38:25,390 --> 00:38:26,555 >> КЕВИН Шмид: О, ви могли кажу да још једном? 776 00:38:26,555 --> 00:38:29,510 >> ПУБЛИКА: Не воли принтф бафер учинити исту ствар? 777 00:38:29,510 --> 00:38:31,280 >> КЕВИН Шмид: принтф пуфер? 778 00:38:31,280 --> 00:38:32,753 >> ПУБЛИКА: Да. 779 00:38:32,753 --> 00:38:33,244 У реду. 780 00:38:33,244 --> 00:38:40,609 Зар није у једном од квизова су били говори о томе како сте у праву ако принтф 781 00:38:40,609 --> 00:38:42,899 нешто и онда су га паузирати један други, а онда га имате петљу десет 782 00:38:42,899 --> 00:38:46,530 пута, то ће сачекати десет секунди и онда принтф све заједно? 783 00:38:46,530 --> 00:38:47,460 >> КЕВИН Шмид: О, у реду. 784 00:38:47,460 --> 00:38:49,170 >> ПУБЛИКА: Да ли је то исто ствар онда у овом случају? 785 00:38:49,170 --> 00:38:52,630 >> КЕВИН Шмид: Дакле, питање је било основи у једној од бивших квизове 786 00:38:52,630 --> 00:38:57,200 или нешто, било је питање које у основи, ако кажете принт Ф 10 787 00:38:57,200 --> 00:39:01,490 ствари у исто време и онда спавао као у процес штампања оне оут, 788 00:39:01,490 --> 00:39:04,850 на крају из неког разлога, то би само депонија оне све на екрану. 789 00:39:04,850 --> 00:39:06,740 Дакле, ту је некако два различита концепти овде. 790 00:39:06,740 --> 00:39:10,400 >> Претпостављам да једна ствар је да, у овом случај, имамо посла са два различита 791 00:39:10,400 --> 00:39:13,510 врста људи питају сервер за ствари у исто време. 792 00:39:13,510 --> 00:39:17,455 И разлог да принтф врста чека тако и депоније све напоље 793 00:39:17,455 --> 00:39:21,760 одједном је више везан за како иф врста - 794 00:39:21,760 --> 00:39:25,100 тако начин принтф је заправо имплементиран је она у основи мора да 795 00:39:25,100 --> 00:39:28,850 разговарају са оперативног система да напише да ствари на конзоли. 796 00:39:28,850 --> 00:39:33,460 Дакле, то не желим да радим све то ствари одмах када кажете принтф 797 00:39:33,460 --> 00:39:36,260 неки стринг јер то могао добити скупо ако мора да 798 00:39:36,260 --> 00:39:37,340 урадите то сваки пут. 799 00:39:37,340 --> 00:39:41,530 >> Дакле, ако ви урадите принтф хеј, програм не могу заправо да штампате 800 00:39:41,530 --> 00:39:43,040 одмах на конзоли. 801 00:39:43,040 --> 00:39:46,080 Он може рећи, у реду, ја сам то написао. 802 00:39:46,080 --> 00:39:49,570 А онда некако цекам да дам то мало више пре него што заправо 803 00:39:49,570 --> 00:39:51,380 писање га на конзоли. 804 00:39:51,380 --> 00:39:54,040 >> Дакле, разлог што је то био случај - 805 00:39:54,040 --> 00:39:56,450 и то је некако неповезано до сна - 806 00:39:56,450 --> 00:40:00,060 је да сан је врста само убризгава унутра да покаже 807 00:40:00,060 --> 00:40:02,480 Чињеница да не пишу то синхроно. 808 00:40:02,480 --> 00:40:06,210 Али разлог за то је управо перформансе, тако да не морате да 809 00:40:06,210 --> 00:40:08,920 чине да многе контакте оперативни систем. 810 00:40:08,920 --> 00:40:12,300 >> Али овде, шта ми заправо покушавамо да урадимо са овом ствари спавања је само шоу 811 00:40:12,300 --> 00:40:17,730 да када имамо двоје људи посети овај сајт, то неће да стави 812 00:40:17,730 --> 00:40:22,310 их у складу где ће да кажу Морам да ти помогнем, а онда када сам 813 00:40:22,310 --> 00:40:25,350 потпуно завршен помажући вам после ових пет секунди, онда ћу да 814 00:40:25,350 --> 00:40:26,750 пређите на следећи особе. 815 00:40:26,750 --> 00:40:29,515 Дакле, захтев првог лица не везати тај догађај петље 816 00:40:29,515 --> 00:40:31,610 ако то има смисла. 817 00:40:31,610 --> 00:40:34,980 >> Али овде је заправо пример нечега што ће се везују 818 00:40:34,980 --> 00:40:36,090 до догађаја петље. 819 00:40:36,090 --> 00:40:39,130 Дакле, овде је страшно функција на израчуна н-ти Фибонацци. 820 00:40:39,130 --> 00:40:43,510 То је буквално гори начин можете израчуна н-ти Фибоначијев низ. 821 00:40:43,510 --> 00:40:48,480 И то је заправо само да призна где је овај дошао, 822 00:40:48,480 --> 00:40:49,330 заправо постоји - 823 00:40:49,330 --> 00:40:53,230 Мислим, можете да покушате да га нађем - али ту је као веома дуге блогу 824 00:40:53,230 --> 00:40:54,130 пост да је неко написао. 825 00:40:54,130 --> 00:40:55,660 То је као један од оних Реддит ствари. 826 00:40:55,660 --> 00:40:59,650 Али неко критиковао Ноде.јс, и они користе ово као пример. 827 00:40:59,650 --> 00:41:03,700 Тако сам некако хтео да вам покажем само два различитих перспектива само да би 828 00:41:03,700 --> 00:41:07,320 опште разумевање концепата иза ове две ствари. 829 00:41:07,320 --> 00:41:13,050 >> Али ово је изабран као само страшно, ужасно неефикасан рачунски 830 00:41:13,050 --> 00:41:15,940 интензиван начин да се израчуна нтх Фибоначијев низ. 831 00:41:15,940 --> 00:41:21,180 Дакле, само као страни белешку, зашто је то страшно као у једном правцу? 832 00:41:21,180 --> 00:41:23,210 Да? 833 00:41:23,210 --> 00:41:25,130 >> ПУБЛИКА: Рецимо да почнете са 1.000. 834 00:41:25,130 --> 00:41:27,050 1.000 дели на 999. и 998.. 835 00:41:27,050 --> 00:41:28,970 Сваки од ова подели на две ствари. 836 00:41:28,970 --> 00:41:30,890 Сваки од ова подели на две ствари. 837 00:41:30,890 --> 00:41:31,355 >> КЕВИН Шмид: Тачно. 838 00:41:31,355 --> 00:41:32,400 >> ПУБЛИКА: Скроз доле. 839 00:41:32,400 --> 00:41:32,840 >> КЕВИН Шмид: Управо тако. 840 00:41:32,840 --> 00:41:37,330 Дакле, само да поновим за камеру, ако ја позовите фиб на 1.000 или нешто слично 841 00:41:37,330 --> 00:41:41,810 тако, то очигледно не мање од или једнак једном па ћу 842 00:41:41,810 --> 00:41:46,040 идите на овом другом случају, а онда идем да позове фиб 999 плус 998 фиб. 843 00:41:46,040 --> 00:41:50,290 А онда прилично све то посао који ради је фиб 999 844 00:41:50,290 --> 00:41:52,950 врста на овом нивоу. 845 00:41:52,950 --> 00:41:55,620 Ако идете доле, то је још више сувишан од тога, али ако само 846 00:41:55,620 --> 00:42:01,390 Мислим цомпутинг лагати 998 добија нас прилично близу 999 фиб. 847 00:42:01,390 --> 00:42:05,860 Тако да смо заиста би требало да буде мало више паметан о томе како смо некако поновно коришћење 848 00:42:05,860 --> 00:42:07,580 њих, али ми не поновним ове ствари уопште. 849 00:42:07,580 --> 00:42:11,860 Дакле, можете да замислите ово гигантски, гигантски дрво које је само страшно. 850 00:42:11,860 --> 00:42:12,940 >> Али у сваком случају, у реду. 851 00:42:12,940 --> 00:42:14,040 Дакле, то је лагати. 852 00:42:14,040 --> 00:42:15,530 То траје само неко време да ради. 853 00:42:15,530 --> 00:42:16,510 Да? 854 00:42:16,510 --> 00:42:17,760 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> КЕВИН Шмид: О, ви могли поновите питање? 857 00:42:22,481 --> 00:42:23,731 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> КЕВИН Шмид: О па то је само код који ће бити нека врста на 860 00:42:33,990 --> 00:42:34,850 серверској страни. 861 00:42:34,850 --> 00:42:38,100 Дакле, ово неће бити пронађен у прегледачу или било шта. 862 00:42:38,100 --> 00:42:42,160 То је у основи оно што имамо јесте да када корисник овде прилично много марки 863 00:42:42,160 --> 00:42:45,300 њихов захтев опет, када смо некако направите захтев, ми ћемо звати 864 00:42:45,300 --> 00:42:47,040 ова функција на страни сервера. 865 00:42:47,040 --> 00:42:50,480 А онда ћемо добити резултат назад од зове ту функцију. 866 00:42:50,480 --> 00:42:52,460 И онда ћемо штампати га на корисника. 867 00:42:52,460 --> 00:42:54,580 Тако корисник не стварно бави са овом функцијом превише. 868 00:42:54,580 --> 00:42:57,270 >> Да ли је то питање? 869 00:42:57,270 --> 00:42:58,470 Да ли то смисла? 870 00:42:58,470 --> 00:42:58,810 У реду. 871 00:42:58,810 --> 00:43:00,930 Цоол. 872 00:43:00,930 --> 00:43:04,240 >> Дакле, опет, ми радимо све ово рес.вритеХеад ствар где смо одштампати 873 00:43:04,240 --> 00:43:05,150 заглавље. 874 00:43:05,150 --> 00:43:09,730 А онда сам завршити одговор тако што магични број је лагати 45. 875 00:43:09,730 --> 00:43:12,100 Дакле, хајде да покренем овај сервер. 876 00:43:12,100 --> 00:43:15,190 Зато ћу да урадим чвор фиб.јс. 877 00:43:15,190 --> 00:43:17,340 Дакле, сада је мој лагати сервер покренут. 878 00:43:17,340 --> 00:43:21,790 >> И онда овде, ја идем да урадите једну од ових. 879 00:43:21,790 --> 00:43:22,200 ОК? 880 00:43:22,200 --> 00:43:24,960 Тако да сам само ћу рећи, Цурл. 881 00:43:24,960 --> 00:43:32,226 Дакле, то ће мало потрајати, али надам ускоро ће завршити и 882 00:43:32,226 --> 00:43:35,660 она ће одштампати да 45. Фибоначијев низ. 883 00:43:35,660 --> 00:43:36,910 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> КЕВИН Шмид: То би требало да се уради веома брзо. 886 00:43:42,050 --> 00:43:43,780 Тако да би требало узети пет до шест секунди. 887 00:43:43,780 --> 00:43:48,570 Ја не знам да је то само В8 сте супер брзо, али, то је у сваком случају 888 00:43:48,570 --> 00:43:52,700 веома кратак пример и намерно неелегантан од не-тривијалан 889 00:43:52,700 --> 00:43:54,200 рачунање. 890 00:43:54,200 --> 00:43:56,700 Дакле, после неког времена, она не добије ово. 891 00:43:56,700 --> 00:44:02,130 >> Али сада, шта ако ја урадим то иста врста експеримент као пре где сам направити 892 00:44:02,130 --> 00:44:04,010 два захтева у исто време? 893 00:44:04,010 --> 00:44:06,990 Дакле, овде ћу на Цурл о да адреса, а ја ћу 894 00:44:06,990 --> 00:44:08,260 да уради још једну Цурл. 895 00:44:08,260 --> 00:44:12,070 И запамтите, када смо то урадили за спавам сервер, када смо га имали у основи 896 00:44:12,070 --> 00:44:15,320 после пет секунди, они прилично много и вратио у праву 897 00:44:15,320 --> 00:44:16,380 отприлике у исто време. 898 00:44:16,380 --> 00:44:18,650 Дакле, то није био нарочито везан. 899 00:44:18,650 --> 00:44:20,290 >> Али, хајде да покушамо сада. 900 00:44:20,290 --> 00:44:22,370 У реду, тако да смо добили наше два процеса. 901 00:44:22,370 --> 00:44:24,210 Запамтите, то су процес ИД-ови. 902 00:44:24,210 --> 00:44:25,900 Ово ће бити мало непријатно док смо одуговлачити. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Дакле, хајде да останемо овде и чекати. 905 00:44:35,360 --> 00:44:37,090 >> Дакле, један од њих би требало да дође назад после као - 906 00:44:37,090 --> 00:44:39,190 У реду, тако да се један вратио. 907 00:44:39,190 --> 00:44:43,570 Али онда зашто не други један вратити још само? 908 00:44:43,570 --> 00:44:44,389 Да? 909 00:44:44,389 --> 00:44:49,280 >> ПУБЛИКА: сервер не може да уради ништа док се то цомпутинг тај велики број. 910 00:44:49,280 --> 00:44:51,620 >> КЕВИН Шмид: Тачно. 911 00:44:51,620 --> 00:44:55,395 Дакле, одговор је био само да сервер стварно не могу ништа док 912 00:44:55,395 --> 00:44:57,460 то је тај цомпутинг Фибоначијев низ. 913 00:44:57,460 --> 00:44:59,360 Дакле, сада сам добио своје две ствари назад. 914 00:44:59,360 --> 00:45:03,210 Али претпостављам само да мислим о коду мало више, како се то ради 915 00:45:03,210 --> 00:45:05,030 и све. 916 00:45:05,030 --> 00:45:11,750 >> Дакле, ова функција је овде код који Рекао сам овај сервер да ради када је у 917 00:45:11,750 --> 00:45:14,100 добија нови долазни захтев. 918 00:45:14,100 --> 00:45:17,940 Тако да само ће да пролазе кроз ово цео број, а онда ће то ићи 919 00:45:17,940 --> 00:45:21,120 Назад на догађај петље, а затим наставите проверу нових догађаја. 920 00:45:21,120 --> 00:45:23,670 Дакле, у основи оно што смо се дешава је сервера 921 00:45:23,670 --> 00:45:25,080 слушање за нове ствари. 922 00:45:25,080 --> 00:45:28,070 Прва особа пита за оно што 45 је. 923 00:45:28,070 --> 00:45:30,490 Ми смо покренули овај код да га израчуна. 924 00:45:30,490 --> 00:45:33,420 Овај код траје отприлике пет на шест секунди до воде. 925 00:45:33,420 --> 00:45:36,990 Онда ћемо да се вратимо на догађај петље и проверите за нове захтеве. 926 00:45:36,990 --> 00:45:42,700 >> Дакле, ово је пример како, ако има ствари које су такозвани Цомпуте 927 00:45:42,700 --> 00:45:48,140 везан, или користите много рачунске, Не снага, већ као су 928 00:45:48,140 --> 00:45:50,260 рачунски интензивна - 929 00:45:50,260 --> 00:45:54,080 Ваљда једна ствар да кажем о томе је да је ова функција ради потпуно, 930 00:45:54,080 --> 00:45:56,310 за највећи део, прилично користан рад у праву. 931 00:45:56,310 --> 00:45:59,970 Цео пут да повратни позив функција је покренут, то је било прилично 932 00:45:59,970 --> 00:46:03,670 много већи део свог времена управо рачунарство да нтх Фибоначијев број. 933 00:46:03,670 --> 00:46:05,930 >> Али ми смо имали само једну нит да се баве. 934 00:46:05,930 --> 00:46:10,270 У Апацхе моделу, када се двоје људи је захтев да се фиб 45, ми смо 935 00:46:10,270 --> 00:46:11,610 би имао две различите теме. 936 00:46:11,610 --> 00:46:15,060 А онда је посао оперативног система би било, или ниво корисник 937 00:46:15,060 --> 00:46:18,660 код који управља теме, да сам био да кришка да се на 938 00:46:18,660 --> 00:46:23,060 Процесор, или чак и ако сте имали више процесора, дистрибуирати их равномерно преко процесорима 939 00:46:23,060 --> 00:46:26,130 тако да су обоје завршити отприлике у исто време. 940 00:46:26,130 --> 00:46:31,120 >> Дакле, само да вам покажем како да сортирате од - а то није укупан савршен 941 00:46:31,120 --> 00:46:34,280 решење, али некако како можемо направи се вратити овде и радим 942 00:46:34,280 --> 00:46:35,880 мало боље. 943 00:46:35,880 --> 00:46:41,540 Па шта ја овде имам је програм под називом Фиб Ц И ово у основи користи 944 00:46:41,540 --> 00:46:45,690 још једна од нода модула зове Процес Дете Модул. 945 00:46:45,690 --> 00:46:49,210 Тако сам укључен да на горњем врсте од свиђа бих урадио фунту укључују 946 00:46:49,210 --> 00:46:51,230 дете процесс.х или нешто. 947 00:46:51,230 --> 00:46:56,210 Сада имам приступ овој ЦП променљиве која има све моје функционалност. 948 00:46:56,210 --> 00:47:01,810 >> Па сад шта ја радим у овом одговору руковалац је ја водим овај програм 949 00:47:01,810 --> 00:47:04,100 дот сласх лагати 45. 950 00:47:04,100 --> 00:47:06,820 Дакле, шта сам урадио - и само ћу на корак од овог програма за 951 00:47:06,820 --> 00:47:07,620 мало - 952 00:47:07,620 --> 00:47:11,060 је сам написао Ц програм који у основи израчунава 953 00:47:11,060 --> 00:47:12,630 нтх Фибоначијев низ. 954 00:47:12,630 --> 00:47:15,960 Дакле, овде је само програм сам написао у Ц који израчунава ово. 955 00:47:15,960 --> 00:47:19,040 Ја могу да га састави, а ја могу покренути она у командној линији. 956 00:47:19,040 --> 00:47:22,150 И то ће да израчуна 45. Фибоначијев низ. 957 00:47:22,150 --> 00:47:24,510 >> Дакле, приметио је потребно само прилично докле. 958 00:47:24,510 --> 00:47:28,240 Ја вероватно могао да користи цртицу на 03 оптимизује га или нешто слично, 959 00:47:28,240 --> 00:47:31,050 али сам урадио као редован подешавања компајлера. 960 00:47:31,050 --> 00:47:33,260 И то га исписује. 961 00:47:33,260 --> 00:47:36,830 >> Али сада, шта ја некако радим? 962 00:47:36,830 --> 00:47:39,800 О извините, погрешан фајл. 963 00:47:39,800 --> 00:47:42,800 Тако сам урадио исту ствар са заглавље као и раније. 964 00:47:42,800 --> 00:47:45,780 Онда ја ово цп.екец. 965 00:47:45,780 --> 00:47:49,460 Дакле, шта ће ово да уради то је то ће покренути овај програм. 966 00:47:49,460 --> 00:47:51,960 Али начин на који то ради је да то неће чекати 967 00:47:51,960 --> 00:47:53,400 тај програм да се заврши. 968 00:47:53,400 --> 00:47:56,000 То само говори у основи извршити овај програм. 969 00:47:56,000 --> 00:47:58,700 Дакле, у основи укуцајте ово у командној линији врсте. 970 00:47:58,700 --> 00:48:02,350 >> А онда, када завршите са то, покрените ову функцију. 971 00:48:02,350 --> 00:48:04,800 Дакле, сада смо некако ово Цела ствар обновљена од 972 00:48:04,800 --> 00:48:06,750 као да не чекамо. 973 00:48:06,750 --> 00:48:08,530 Да ли то некако има смисла? 974 00:48:08,530 --> 00:48:08,990 Да? 975 00:48:08,990 --> 00:48:11,060 >> ПУБЛИКА: [ИНАУДИБЛЕ]? 976 00:48:11,060 --> 00:48:13,610 >> КЕВИН Шмид: Дакле, ово ће стварно отвори нови процес да то уради. 977 00:48:13,610 --> 00:48:19,310 Дакле, ово је заправо, на неки начин, зло, не супер зло, али је 978 00:48:19,310 --> 00:48:22,990 важно је рећи да је ово врста враћајући се, с једне стране, Апацхе 979 00:48:22,990 --> 00:48:26,450 Модел где радимо теме и процесе за сваки захтев или 980 00:48:26,450 --> 00:48:29,280 процеси за сваки захтев. 981 00:48:29,280 --> 00:48:32,090 Дакле, ово је некако аналоган на шта Апацхе ради. 982 00:48:32,090 --> 00:48:35,110 У неким случајевима, то ће само користите нова нит, која је мало више светла 983 00:48:35,110 --> 00:48:39,040 тежину него процес, али Апацхе могао завршити форкинг нови процес 984 00:48:39,040 --> 00:48:43,370 која је врста оно што радимо овде имплицитно тиме дот уписали косу фиб 45. 985 00:48:43,370 --> 00:48:48,690 >> И онда у том случају, ми смо некако направити исте трошкове процеса. 986 00:48:48,690 --> 00:48:50,710 Дакле, ово је само једна ствар коју можете да урадите. 987 00:48:50,710 --> 00:48:52,600 Али само да покажем ову врсту трчања. 988 00:48:52,600 --> 00:48:57,120 И овај разговор је стварно циљ представљање овакве програме као 989 00:48:57,120 --> 00:49:00,710 начин да се покаже различите погледе на како да дизајнирате серверима такве. 990 00:49:00,710 --> 00:49:08,300 Дакле, ово је покренут, а онда сад ако ја радим опет, ја имам два процеса легитимације. 991 00:49:08,300 --> 00:49:10,320 >> Хајде да причамо о ствари да истакнем. 992 00:49:10,320 --> 00:49:11,980 Тако приметити да они постепено су. 993 00:49:11,980 --> 00:49:12,700 То је кул. 994 00:49:12,700 --> 00:49:15,140 Зато што је то било пре 27.122. 995 00:49:15,140 --> 00:49:18,580 Али обавештење сада, они су се вратили на отприлике исто време. 996 00:49:18,580 --> 00:49:23,960 >> И сада, добро питање које се поставља у вези са зашто је то случај, чији посао 997 00:49:23,960 --> 00:49:27,590 је сада на неки начин да ове ствари врста играју фер једни са 998 00:49:27,590 --> 00:49:31,350 друга, ове две инстанце дот сласх лагати да сам трчао 45 999 00:49:31,350 --> 00:49:32,880 или да Чвор ран? 1000 00:49:32,880 --> 00:49:36,940 Ко некако чини фер да они обоје се врста уравнотежена прелазно време? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 1003 00:49:44,220 --> 00:49:44,620 >> КЕВИН Шмид: Да. 1004 00:49:44,620 --> 00:49:49,740 Дакле, у основи, када радим дот уписали косу ФИБ 45 или тако нешто, сад је 1005 00:49:49,740 --> 00:49:53,750 некако до оперативног система за руковати издржљивости тих програма. 1006 00:49:53,750 --> 00:49:56,920 И сада могу да их заказати на различитим процесорима или томе 1007 00:49:56,920 --> 00:49:58,330 може их заказати. 1008 00:49:58,330 --> 00:50:01,870 То може нарезати време да један Процесор је добије, или да добију 1009 00:50:01,870 --> 00:50:03,330 да ради на једном ЦПУ. 1010 00:50:03,330 --> 00:50:05,620 Дакле, то је идеја иза тога. 1011 00:50:05,620 --> 00:50:07,220 Да ли то има смисла за све? 1012 00:50:07,220 --> 00:50:10,950 Дакле, сада Чвор није стварно играју део у подели ове задатке. 1013 00:50:10,950 --> 00:50:12,200 У реду. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> Дакле, то је скоро то за примере. 1016 00:50:17,840 --> 00:50:23,370 Само сам хтео да покажем још једну ствар јер много тога до сада није било 1017 00:50:23,370 --> 00:50:27,350 не тотално супер практична у неким случајевима. 1018 00:50:27,350 --> 00:50:30,970 Могу да замислим долази кући после овога разговарају и нешто слично и говорећи, 1019 00:50:30,970 --> 00:50:35,710 па ја некако извукао из тог разговора који Ја могу направити сервер за Фибонацци 1020 00:50:35,710 --> 00:50:37,360 моја коначна пројекат. 1021 00:50:37,360 --> 00:50:40,770 Дакле, овде је само један више врста пример који ће, надамо се - 1022 00:50:40,770 --> 00:50:44,620 можда не, али можда - мало више врста од значаја за коначних пројеката и 1023 00:50:44,620 --> 00:50:46,440 размишљања унапред за такве ствари. 1024 00:50:46,440 --> 00:50:48,870 >> Дакле, ово је цхат.јс. 1025 00:50:48,870 --> 00:50:52,290 Дакле, ово је нешто као неки узорак серверској страни код који можете да користите за 1026 00:50:52,290 --> 00:50:55,700 постави мали ћаскање сервер као можда сте видели на 1027 00:50:55,700 --> 00:50:56,630 Фацебоок Цхат или шта год. 1028 00:50:56,630 --> 00:50:59,990 Дакле, ја не кажем да је ово као Фацебоок Цхат, али ово је некако 1029 00:50:59,990 --> 00:51:06,230 као добар - можда није добро, али можда добро - полазиште за ћаскање 1030 00:51:06,230 --> 00:51:08,560 сервер за ваш сајт за коначни пројекат. 1031 00:51:08,560 --> 00:51:11,040 Дакле, хајде да погледамо шта ради. 1032 00:51:11,040 --> 00:51:15,500 >> Дакле, ми смо све ово посебну ствар на врху, то вар Сио 1033 00:51:15,500 --> 00:51:17,050 једнако захтевају Соцкет.ИО. 1034 00:51:17,050 --> 00:51:20,280 Дакле, ово је још једна ствар која се не деси заправо долазе у пакету са 1035 00:51:20,280 --> 00:51:22,300 Чвор али можете да га инсталирате. 1036 00:51:22,300 --> 00:51:23,480 То је чвор модул. 1037 00:51:23,480 --> 00:51:25,670 Дакле, то је само као неки продужетак за чвором. 1038 00:51:25,670 --> 00:51:29,220 >> СоцкетИО је заправо стварно некако цоол. 1039 00:51:29,220 --> 00:51:32,550 То је апстракција која у основи оно што То је то је то вам омогућава да 1040 00:51:32,550 --> 00:51:35,770 имају овај ток комуникације између веб 1041 00:51:35,770 --> 00:51:39,430 претраживач и веб сервер. 1042 00:51:39,430 --> 00:51:45,250 Дакле, за највећи део до сада, имали смо ово врло брзо један секунд или два 1043 00:51:45,250 --> 00:51:48,790 Други комуникација између веб претраживач и веб сервер. 1044 00:51:48,790 --> 00:51:53,310 Дакле, то је у основи идите на гоогле.цом, Гет ствари, пошаљите га назад, а затим 1045 00:51:53,310 --> 00:51:53,770 готови смо. 1046 00:51:53,770 --> 00:51:56,560 Никада нећемо поново говори док корисник укуцава нешто друго. 1047 00:51:56,560 --> 00:52:01,090 >> Али шта Соцкет.ИО и слично врста ствари - и СоцкетИО је заправо један 1048 00:52:01,090 --> 00:52:03,940 од ствари које је изграђена на као ВебСоцкет која је врста доступан 1049 00:52:03,940 --> 00:52:06,440 као део ХТМЛ5 - 1050 00:52:06,440 --> 00:52:09,620 који вам омогућава да имате ово наставља дијалог. 1051 00:52:09,620 --> 00:52:13,990 И ово је веома корисно у чет сервер врста ствар јер је 1052 00:52:13,990 --> 00:52:17,390 врста као сталног дијалога у неки од начина јер ако ћаскате 1053 00:52:17,390 --> 00:52:21,540 са неким, сада можете само послати порука низ цеви, а затим 1054 00:52:21,540 --> 00:52:23,940 сервер може да пошаље поруку доле цев на другу особу која вас 1055 00:52:23,940 --> 00:52:24,520 разговарате са. 1056 00:52:24,520 --> 00:52:26,903 А онда можете да имате ово размењују тако. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Дакле, то је некако оно СоцкетИО је добро за. 1059 00:52:32,850 --> 00:52:38,400 Разлог да СоцкетИО користи ВебСоцкетс као и једна ствар је да се у 1060 00:52:38,400 --> 00:52:43,980 Поред само обичан старе ВебСоцкетс, она такође чини неке трикове на основи 1061 00:52:43,980 --> 00:52:45,610 буде компатибилан претраживач. 1062 00:52:45,610 --> 00:52:50,040 Тако претраживачи попут Интернет Екплорер нажалост не подржавају ВебСоцкетс 1063 00:52:50,040 --> 00:52:50,810 право из кутије. 1064 00:52:50,810 --> 00:52:55,290 Тако да користи неку другу врсту кул уредан ствари са Адобе Фласх да омогућавају 1065 00:52:55,290 --> 00:52:57,170 да имате подршку унакрсно претраживача. 1066 00:52:57,170 --> 00:52:58,800 Дакле, то је заиста корисно. 1067 00:52:58,800 --> 00:53:02,440 >> И заиста, ја знам да сам некако ради на време овде, али ЦС50 1068 00:53:02,440 --> 00:53:08,490 Разговарајте, да ли сте икада видели нешто као, ја не знам, празно тако и тако је 1069 00:53:08,490 --> 00:53:11,030 одговарање на овај пост или нешто тако, да функција? 1070 00:53:11,030 --> 00:53:12,250 То је СоцкетИО. 1071 00:53:12,250 --> 00:53:15,580 Дакле, када неко почне куцате у разговарају кутију да одговор или 1072 00:53:15,580 --> 00:53:20,040 нешто, ваш браузер шта је позвао у СоцкетИО емитује неку врсту 1073 00:53:20,040 --> 00:53:22,660 догађај који каже да је неко одговарање на овај пост. 1074 00:53:22,660 --> 00:53:26,110 >> Тада је сервер каже, у реду, шта ја треба да урадим? 1075 00:53:26,110 --> 00:53:29,270 Па сад ја морам да кажем оне друге момке који су на ЦС50 Разговарајте гледа 1076 00:53:29,270 --> 00:53:31,170 на овај пост да неко одговарање. 1077 00:53:31,170 --> 00:53:34,190 Дакле, то је некако оно СоцкетИО је добро за, овај наставак врсте 1078 00:53:34,190 --> 00:53:35,930 ток дијалога. 1079 00:53:35,930 --> 00:53:37,250 У реду. 1080 00:53:37,250 --> 00:53:40,060 >> Па, шта ја имам овде - и ми смо само ће игнорисати везе низ 1081 00:53:40,060 --> 00:53:41,390 за мало - 1082 00:53:41,390 --> 00:53:43,080 оно што ја радим је да још не слушам. 1083 00:53:43,080 --> 00:53:46,880 Дакле, то је само начин на Соцкет.ИО се рекавши хајде да слушају на овом порту. 1084 00:53:46,880 --> 00:53:50,060 И онда ја радим ово на вези. 1085 00:53:50,060 --> 00:53:53,360 Дакле, то је само у основи Подножје ИО је начин да се каже, када примимо 1086 00:53:53,360 --> 00:53:55,840 веза, ја ти желим да покренете овај код. 1087 00:53:55,840 --> 00:53:59,870 >> И приметите да уместо рец и рес пролазили тамо имам Соцкет. 1088 00:53:59,870 --> 00:54:03,260 И то је у основи идеја Подножје ово ствар коју можете да пишете и читате 1089 00:54:03,260 --> 00:54:05,750 из које има корисник је поруке евентуално. 1090 00:54:05,750 --> 00:54:10,700 А поруке које сте слали може да иде кроз тај Соцкет. 1091 00:54:10,700 --> 00:54:12,140 Да ли то смисла? 1092 00:54:12,140 --> 00:54:14,490 Тако да је ово наставак ствар. 1093 00:54:14,490 --> 00:54:17,820 >> Дакле, оно што ја радим је ја зовем Соцкет.емит. 1094 00:54:17,820 --> 00:54:20,330 И емитују траје прилично много два аргумента. 1095 00:54:20,330 --> 00:54:24,100 Први аргумент је стринг само представља тип 1096 00:54:24,100 --> 00:54:25,270 ствар ти емитују. 1097 00:54:25,270 --> 00:54:28,120 Дакле, за овај случај, имам употребу Овај стринг нова порука. 1098 00:54:28,120 --> 00:54:32,670 И то је само у основи каже да врста ове ствари, шта сам 1099 00:54:32,670 --> 00:54:34,750 слање, је нова порука. 1100 00:54:34,750 --> 00:54:38,460 Дакле, можете да слушате за одређене типове као нову поруку или шта год 1101 00:54:38,460 --> 00:54:39,960 коришћењем тачку на. 1102 00:54:39,960 --> 00:54:44,570 >> Дакле веза и корисник послао тамо, ако погледате где зовемо тачка на, 1103 00:54:44,570 --> 00:54:48,150 оне су остале ниске које представљају врсте корисничких порука. 1104 00:54:48,150 --> 00:54:52,060 Дакле, то је у основи можете да имате ову емитовати један од ових типова порука, и 1105 00:54:52,060 --> 00:54:55,520 онда уради нешто као одговор на један од ових типова порука 1106 00:54:55,520 --> 00:54:57,640 >> Тако сам емитују ову нову поруку. 1107 00:54:57,640 --> 00:55:00,540 Идемо у игнорисати цоннецтионс.пусх за секунду. 1108 00:55:00,540 --> 00:55:03,360 Али онда сам рекао, Соцкет.он корисник послао. 1109 00:55:03,360 --> 00:55:07,540 Дакле, сада је то некако као кад корисник ми шаље поруку, желим 1110 00:55:07,540 --> 00:55:09,240 да покренете овај код. 1111 00:55:09,240 --> 00:55:12,080 И приметите да је анонимни функција узима у ове променљиве 1112 00:55:12,080 --> 00:55:16,300 зове подаци који се у основи иду да имају поруку корисника. 1113 00:55:16,300 --> 00:55:20,700 >> Дакле, сада ћемо мало прича о везе низ. 1114 00:55:20,700 --> 00:55:24,590 Дакле, ово је дизајниран за ћаскање клијента где у суштини сви су некако у 1115 00:55:24,590 --> 00:55:25,950 исти цхат соба. 1116 00:55:25,950 --> 00:55:29,640 Дакле, у основи, оно што је потребно да би око је неки низ који у основи 1117 00:55:29,640 --> 00:55:33,170 представља све људе четовања у неки од начина, ако то има смисла. 1118 00:55:33,170 --> 00:55:33,340 Зар не? 1119 00:55:33,340 --> 00:55:37,190 Зато морамо да знамо ко те момке су тако да можемо да их пошаљемо поруке 1120 00:55:37,190 --> 00:55:39,140 да други људи шаљу нама. 1121 00:55:39,140 --> 00:55:44,440 >> Дакле, шта је то код ради је када корисник шаље поруку - то је врста 1122 00:55:44,440 --> 00:55:45,300 догађај - 1123 00:55:45,300 --> 00:55:47,120 ћемо покренути овај код. 1124 00:55:47,120 --> 00:55:51,240 А шта ми радимо јесте да покренете кроз ово низ који смо звали везе. 1125 00:55:51,240 --> 00:55:54,390 И прилично за сваку конекцију осим оног што је наше, то је 1126 00:55:54,390 --> 00:55:59,520 шта овај број каже, шаљемо нови порука са том прилогу поруке 1127 00:55:59,520 --> 00:56:01,210 информације. 1128 00:56:01,210 --> 00:56:04,880 >> Дакле, ако сте приметили овде, шта сам урадио када корисник заправо чини нови 1129 00:56:04,880 --> 00:56:08,560 веза је Додао сам са ЈаваСцрипт.пусх метод, ово је 1130 00:56:08,560 --> 00:56:12,100 основи само говорим као адд Подножје да као вредност у 1131 00:56:12,100 --> 00:56:13,900 наша веза низ. 1132 00:56:13,900 --> 00:56:20,560 Тако да сада када је овај број ради, она ће послати ствари на оне посебно 1133 00:56:20,560 --> 00:56:22,020 везе. 1134 00:56:22,020 --> 00:56:26,980 Дакле, ово може бити добра полазна тачка за израду ћаскање сервер 1135 00:56:26,980 --> 00:56:28,250 или нешто слично. 1136 00:56:28,250 --> 00:56:33,315 >> И некако кул ствар је да код који видите овде за сличне на и 1137 00:56:33,315 --> 00:56:36,390 емитују и ствари као да је исти врста ЈаваСцрипт кода који сте би 1138 00:56:36,390 --> 00:56:39,260 пишу у претраживачу на интеракцију са сервером. 1139 00:56:39,260 --> 00:56:42,480 Зато СоцкетИО је некако уредан и корисно на тај начин. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Ох и само једна ствар врло брзо. 1142 00:56:49,250 --> 00:56:55,970 Било је ЦС50 коначни пројекат је прошле године који у основи спроводи ћаскање 1143 00:56:55,970 --> 00:56:57,840 сервер у Ноде.јс. 1144 00:56:57,840 --> 00:57:01,350 Мислим да је Харвардцхатс.орг али ја нисам - 1145 00:57:01,350 --> 00:57:02,940 У реду. 1146 00:57:02,940 --> 00:57:06,190 Нисам сигуран шта је УРЛ адреса, али Ја могу послати да се после тога. 1147 00:57:06,190 --> 00:57:09,260 Али то је кул што можете да урадите са Ноде.јс. 1148 00:57:09,260 --> 00:57:14,680 >> Тако да се надам, генерално, момци имају Добар смисао за оно што је корисно Ноде.јс 1149 00:57:14,680 --> 00:57:17,870 и како сте можда могли да примените до крајњег пројекту. 1150 00:57:17,870 --> 00:57:21,050 Ја ћу послати неке више ресурсе уз то. 1151 00:57:21,050 --> 00:57:23,170 И хвала вам што сте дошли. 1152 00:57:23,170 --> 00:57:23,610 Хвала. 1153 00:57:23,610 --> 00:57:27,168 >> [Апплаусе]