1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> เควิน SCHMID: สวัสดีทุกคน 3 00:00:09,710 --> 00:00:12,640 ยินดีต้อนรับเข้าสู่การสัมมนา CS50 บน Node.js. 4 00:00:12,640 --> 00:00:13,955 ชื่อของฉันคือเควิน 5 00:00:13,955 --> 00:00:15,580 ฉัน CS50 TF 6 00:00:15,580 --> 00:00:17,650 และฉันจัดเรียงของชอบตื่นเต้นมาก เกี่ยวกับการสัมมนาครั้งนี้ 7 00:00:17,650 --> 00:00:20,430 ผมคิดว่า Node.js เป็นเย็นมาก 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 สิ่งที่ต้องการ Node.js. 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 ชนิดของความยืดหยุ่นที่พื้นหลัง มุมมองของ Node.js แล้ว 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 และหลังจากการสัมมนาที่ฉันจะเรียงลำดับของการพูดคุย เกี่ยวกับวิธีการที่คุณสามารถตั้งค่า Node.js 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 ตำราเรียนที่ใช้สำหรับ CS61 ซึ่ง โดยทั่วไปแสดงให้เห็นถึงการทำงานร่วมกัน 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 พุธที่โดยทั่วไปเรามีบางส่วน กระบวนการของลูกค้าเช่น Google Chrome 27 00:01:19,270 --> 00:01:22,980 >> และจากนั้นขั้นตอนที่หนึ่งคือ ลูกค้าส่งคำขอ 28 00:01:22,980 --> 00:01:27,510 เพื่อให้สามารถเป็นสิ่งที่ชอบให้ดี เยี่ยมชมผมไม่ทราบ CS50.net 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 >> เควิน SCHMID: แน่นอน 35 00:01:38,150 --> 00:01:40,100 ดังนั้นจึงเป็นเช่น HTTP ใช่ไหม 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 และข้อกำหนด เพราะนั่นเป็น HTTP 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 ดังนั้นพวกคุณมีเว็บเซิร์ฟเวอร์ที่ติดตั้ง ในเครื่อง CS50 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 หนึ่งก็อาจเป็นเพียงแค่ เช่นไฟล์ HTML แบบคงที่ 52 00:02:26,810 --> 00:02:29,820 ดังนั้นมันก็อาจจะชอบบางอย่าง HTML ที่เป็นเหมือน 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 และการตอบสนองนี้เป็น นอกจากนี้ยังระบุโดย HTTP 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 แล้วคุณจะได้รับหน้าเว็บ เช่น Google หรือ CS50.net หรือ 65 00:03:00,900 --> 00:03:02,240 สิ่งที่คุณไป 66 00:03:02,240 --> 00:03:03,100 OK? 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 และเช่นเดียวกับเราได้พูดคุยเกี่ยวกับก่อนที่ เว็บเซิร์ฟเวอร์เครื่อง CS50 คืออาปาเช่ 77 00:03:29,100 --> 00:03:32,490 ดังนั้นเมื่อพวกคุณทำงานบน P ตั้งเจ็ด คุณกำลังจะได้ร่วมงานกับ 78 00:03:32,490 --> 00:03:34,120 Apache เว็บเซิร์ฟเวอร์ 79 00:03:34,120 --> 00:03:37,890 คุณจะได้ไม่ต้องทำงานจริงๆ กับ Apache โดยตรงมากเกินไป 80 00:03:37,890 --> 00:03:41,920 คุณเรียงลำดับของการกำหนดค่า Apache น้อย เมื่อคุณระบุโฮสต์เสมือนหรือ 81 00:03:41,920 --> 00:03:44,970 โฮสต์วีและเราจะได้รับ เพื่อว่าในนิด ๆ หน่อย ๆ 82 00:03:44,970 --> 00:03:50,620 >> แต่โดยทั่วไป, Apache เว็บเซิร์ฟเวอร์ ตั้งขึ้นเพื่อทำงานร่วมกับ PHP ชนิด 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 index.php เฉือนท้องถิ่นโฮสต์หรือบางสิ่งบางอย่าง เป็นเบราว์เซอร์ของคุณส่งที่ 86 00:04:00,360 --> 00:04:04,330 คำขอแล้ว Apache นั่ง และมีตัวเลขที่ออกจะทำอย่างไรกับมัน 87 00:04:04,330 --> 00:04:08,840 และการดำเนินการที่จะดำเนินการ รหัสที่อยู่ใน index.php และ 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 ดังนั้นมันก็สามารถให้บริการไฟล์คง หรือเรียกใช้บางรหัส PHP และปัญหาแล้ว 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 คุณพยายามที่จะเขียนในสิ่งที่ เช่น C หรือสิ่งที่ต้องการที่ 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 ก็ OK ถ้าคุณยังไม่ได้ แต่ก็คิดว่า เกี่ยวกับหัวข้อหรือกระบวนการเป็นวิธีการที่ 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 และนี่คือชนิดของของ Apache วิธีการแก้ปัญหานี้ 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 >> และเป็นส่วนหนึ่งของเหตุผลที่ว่าเพียงแค่ เช่นเมื่อคุณกำลังใช้งานโปรแกรม C 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 >> แล้วยังสมมติว่าคุณมีเพียง หนึ่ง CPU หรือสมมติว่าคุณมี 132 00:06:35,650 --> 00:06:38,460 หัวข้อมากขึ้นกว่าที่คุณมี multicores ที่ 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 ดังนั้นใครที่ได้เริ่มต้นในการ P ตั้งเจ็ดที่ทั้งหมดหรือไม่ 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 >> เควิน SCHMID: OK 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 แต่โดยทั่วไปในชุด P คุณ จะได้รับการทำมากของการจัดเรียงของ 162 00:07:55,790 --> 00:07:59,760 คำสั่งไปยังฐานข้อมูลที่จะได้รับบางส่วน ข้อมูลจากฐานข้อมูลที่ 163 00:07:59,760 --> 00:08:03,330 และสิ่งที่รหัสของคุณเป็นไปได้ทำ สิ่งที่ว่ากระบวนการ Apache หรือ 164 00:08:03,330 --> 00:08:06,030 ที่ด้าย Apache เป็นไปได้ทำ ในขณะที่มีการติดต่อกับ 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 เครื่องใช้ CS50 ใช่ไหม 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 น่ากลัว I / O แฝง 178 00:08:44,100 --> 00:08:47,110 และเมื่อฉันพูดว่า I / O แฝง, สิ่งที่ฉัน หมายถึงเป็นเหมือนชนิดเช่นใด 179 00:08:47,110 --> 00:08:48,290 ส่งออกนำเข้า 180 00:08:48,290 --> 00:08:52,950 แต่การที่จะเข้าถึงไฟล์บนดิสก์เช่น ถ้าผมต้องการที่จะให้บริการแบบคงที่ HTML 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 >> นี้ไม่เป็นความจริงทุกอย่าง แต่ เป็นเรื่องธรรมดาในการใช้งานเช่น P ชุด 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 เขียนเว็บเซิร์ฟเวอร์ที่คำนวณเพียง จำนวน Fibonacci nth 191 00:09:26,590 --> 00:09:29,300 แต่นั่นไม่ได้เสียงเหมือนโดยเฉพาะอย่างยิ่ง เว็บเซิร์ฟเวอร์สนุก 192 00:09:29,300 --> 00:09:34,220 เช่นฉันจะไม่คาดหวังว่าเว็บไซต์จะเป็น ถัดไป Facebook, แต่ที่เป็นบางส่วน 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 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> เพียงเพื่อปะยางรถอีกครั้ง Apache และ เว็บเซิร์ฟเวอร์ที่คล้ายกันเช่นว่าส้อม 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 OK? 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 ฐานข้อมูลหรือใครบางคนที่ส่ง ฉันขอ HTTP ใหม​​่ 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 OK? 244 00:12:04,070 --> 00:12:07,240 และมันเป็นชนิดของขั้นพื้นฐาน คิดที่อยู่เบื้องหลัง Node.js. 245 00:12:07,240 --> 00:12:11,240 >> ดังนั้นสิ่งที่ Node.js เป็นจริงทำเว็บ เซิร์ฟเวอร์มีหัวข้อเดียว 246 00:12:11,240 --> 00:12:14,850 ที่เป็นพื้นไปรอบ ๆ ในวง เช่นในขณะที่หนึ่งชนิดภายใต้ 247 00:12:14,850 --> 00:12:18,510 เครื่องดูดควันของ Node.js ที่อย่างต่อเนื่อง การตรวจสอบไม่ที่เราได้รับสิ่งใหม่ได้หรือไม่ 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 >> ดังนั้นผมจึงวางสายของรหัส C ที่นี่ที่ โดยทั่วไปดูเหมือนว่ามันเปิด 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 ดังนั้นวิธีที่รหัส C สำหรับการดำเนินงานของเรา - 256 00:12:43,810 --> 00:12:47,890 และผมคิดว่าเหตุผลที่ผมเลือกไฟล์ที่เป็น เพราะนี้เป็นชนิดของขอบเขต 257 00:12:47,890 --> 00:12:52,000 ของ I / O งานที่เราได้ทำใน C ใน ความรู้สึกว่ามีการส่งออกนำเข้าเป็น 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 เพราะกระบวนการที่เราได้ หนึ่งหัวข้อใน Node.js. 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 >> เควิน SCHMID: โอ้ดังนั้นใช่ 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 มันเป็นเหมือนตัวแปร C ปกติ 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 ดังนั้นคุณจึงไม่เห็นด้วยรหัส paren ซ้าย paren ขวา 290 00:14:20,650 --> 00:14:23,010 ฉันแค่ผ่านในรหัส 291 00:14:23,010 --> 00:14:26,990 และใน C สิ่งนี้จะทำจริง ให้ฉันเป็นตัวชี้ไปยังที่เกิดขึ้นจริง 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 >> และตอนนี้ความคิดที่อยู่เบื้องหลัง Node.js คือ รหัสในสิ่งที่ทำกับฉ 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 >> ดังนั้นเพียงแค่จะสมบูรณ์ชัดเจนฉ ที่จะเปิดใหม่ Katy Perry เพลง 306 00:15:19,100 --> 00:15:23,060 ทำ mp3, ที่จะสวย ผลตอบแทนที่มากทันที 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 >> เควิน SCHMID: นั่นเป็นคำถามที่ดี 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 ที่ OK? 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 >> เควิน SCHMID: แอรอนนำขึ้นมาก จุดที่ดีซึ่งเป็นที่ถ้าผมมี 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 >> ดังนั้น Node.js มีกรอบนี้ว่า คุณสามารถสร้างเหตุการณ์เหล่านี้ขับเคลื่อน 337 00:16:47,090 --> 00:16:48,210 เซิร์ฟเวอร์ที่มี 338 00:16:48,210 --> 00:16:53,460 ดังนั้นจึงมีชนิดของเหล่านี้ไม่ตรงกัน ไม่ปิดกั้น I / O ห้องสมุดในขณะที่ 339 00:16:53,460 --> 00:16:56,800 ห้องสมุด C มาตรฐานที่เราได้รับ การทำงานร่วมกับเช่นถ้าคุณเพียงแค่ 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 >> แต่ Node.js ช่วยให้คุณนั้นและมัน โดยทั่วไปเป็นความสัมพันธ์ของ Google V8 344 00:17:09,290 --> 00:17:14,030 JavaScript เครื่องยนต์ซึ่งเป็นเหตุผลที่ Chrome ที่เป็นอย่างรวดเร็วที่การประมวลผล 345 00:17:14,030 --> 00:17:17,040 JavaScript เพราะมัน มี V8 เครื่องยนต์นี้ 346 00:17:17,040 --> 00:17:22,460 ดังนั้นผมจึงรู้ว่าเสียงเหมือนหนึ่งในบรรดา WWDC สิ่งที่การประชุมนักพัฒนา 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 แต่มันเป็นความเย็นที่พวกเขาทำ นี้เพราะ JavaScript - 350 00:17:34,200 --> 00:17:37,010 หรือบางทีถ้าคุณไม่คุ้นเคยกับ JavaScript ยังเพราะเราไม่ได้มี 351 00:17:37,010 --> 00:17:38,180 บรรยายบน - 352 00:17:38,180 --> 00:17:40,770 แต่ JavaScript เป็นตีความ ภาษา 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 ดังนั้นผลประโยชน์จากการมีโหนดนี้ ล่าม V8 เร็วสุด 358 00:17:55,980 --> 00:17:59,580 และผมก็ไม่ทราบว่าพวกเขาตั้งชื่อมัน เพราะตบ V8 ที่หน้าผาก 359 00:17:59,580 --> 00:18:01,110 สิ่ง แต่ตกลง 360 00:18:01,110 --> 00:18:07,070 >> ดังนั้นผมจึงได้จัดทำตัวอย่างบางส่วน ที่ URL นี้ 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 OK? 365 00:18:18,720 --> 00:18:22,280 >> ดังนั้นฉันจะออกจาก URL นี้ ขึ้นสำหรับน้อย 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 คือทุกคนที่ดีกับ URL นี้? 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 ทำไม่ได้เราจะเริ่มต้นด้วยทำไม simpler.js ไฟล์ 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 ซึ่ง JavaScript คุณอาจจะหรือ อาจจะไม่คุ้นเคยกับ 375 00:18:56,660 --> 00:19:00,170 ผมคิดว่าสิ่งที่สองเป็นที่มาก ของรหัสจาวาสคริปต์เป็นชนิดของ 376 00:19:00,170 --> 00:19:04,000 ไวยากรณ์และโครงสร้างคล้ายกับ C เพื่อให้คุณสามารถเลือกชนิดของขึ้นเป็น 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 คล้ายกับ C เพื่อที่จะ น้อยอ่านง่ายขึ้น 380 00:19:11,230 --> 00:19:15,980 แต่ในขณะที่ความคืบหน้าเราฉันจะเป็น แสดงให้เห็นถึงบางส่วนของเพิ่มเติม 381 00:19:15,980 --> 00:19:18,980 คุณสมบัติของ JavaScript ที่ เป็นชนิดของเย็น 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 คุณสามารถดู var และสิ่งที่? 388 00:19:36,510 --> 00:19:39,320 ตกลง 389 00:19:39,320 --> 00:19:44,120 >> ดังนั้นบรรทัดแรกเป็นเหมือน JavaScript รุ่นของตัวแปร 390 00:19:44,120 --> 00:19:44,800 การประกาศ 391 00:19:44,800 --> 00:19:49,870 ดังนั้นเพียงแค่เพื่อเน้นสิ่งที่จะนี้ มีลักษณะเหมือนใน C. ดังนั้นนี้เป็นเช่นเดียวกับ 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 JavaScript จะมีชนิด แต่ก็ มากพิมพ์แบบไดนามิกในธรรมชาติเพื่อให้ 395 00:20:00,780 --> 00:20:02,580 ไม่ได้ให้ชนิดของประเภทใด ๆ ในนั้น 396 00:20:02,580 --> 00:20:03,670 ดังนั้นมันก็มี var 397 00:20:03,670 --> 00:20:05,320 นั่นเป็นตัวแปรเช่น 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> และฉันโทร HTTP ตัวแปรนี้ 400 00:20:08,340 --> 00:20:12,480 และทางด้านขวามือของฉันฉันมี การแสดงออกที่ฉันต้องการจะใส่ใน HTTP 401 00:20:12,480 --> 00:20:14,960 และบอกว่าต้องใช้ HTTP 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 ดังนั้นหนึ่งในโมดูล Node.js ระบบหรือสิ่งที่พวกเขาได้ทั้งหมดนี้ 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 OK? 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 >> ดังนั้นบรรทัดแรกของการนี​​้จะ res.writeHead 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 เพื่อให้เพียงมุ่งเน้นไปที่ res.write เล็ก ๆ น้อย ๆ 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 OK? 428 00:21:30,770 --> 00:21:36,230 เพื่อเขียนหัวถ้าใครจำได้ จากการบรรยาย HTTP ทำพวกคุณ 429 00:21:36,230 --> 00:21:39,940 จำได้ว่าส่วนหัวที่ ด้านบนของสิ่ง HTTP? 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 >> ดังนั้นเมื่อเบราว์เซอร์ของคุณไปที่ google.com หรือสิ่งที่ต้องการที่ 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 เพื่อที่จะแสดงให้คุณเห็นนี้ฉันจะ ที่จะใช้โปรแกรมที่เรียกว่า Curl 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 ดังนั้นนี่คือสิ่งที่คุณสามารถทำงานที่ บรรทัดคำสั่งของคุณ Mac OSX หรือใน 443 00:22:08,020 --> 00:22:09,830 เครื่องใช้หรือสิ่งที่ 444 00:22:09,830 --> 00:22:17,050 และอื่น ๆ ถ้าฉันไม่ Curl HTTP google.com, ฉันจะไปดู HTML 445 00:22:17,050 --> 00:22:21,230 และนี่คือในความเป็นธรรมเพียง HTML ที่จัดเรียงของบอกให้คุณ 446 00:22:21,230 --> 00:22:24,695 เปลี่ยนเส้นทางไปที่ www ถ้าเบราว์เซอร์ของคุณไม่ จัดการโดยอัตโนมัติ 447 00:22:24,695 --> 00:22:27,110 การเปลี่ยนเส้นทาง 448 00:22:27,110 --> 00:22:33,390 >> ดังนั้นนี่เป็นเพียง HTM​​L แต่ฉันจะ เพื่อเพิ่ม Curl ยัติภังค์ฉันธงนี้ 449 00:22:33,390 --> 00:22:33,600 OK? 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 OK? 453 00:22:41,260 --> 00:22:45,320 >> ดังนั้นที่ด้านบนคุณจะเห็นนี้ HTTP 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 ดังนั้นเราจึงได้รับตำแหน่ง เป็น www.google.com 463 00:23:22,100 --> 00:23:25,190 แล้วชนิดของสิ่งอื่น ๆ ทั้งหมดนี้ แต่โดยทั่วไปสิ่งที่ตั้งเป็น 464 00:23:25,190 --> 00:23:29,662 คำกล่าวที่ว่าเป็นที่ตั้งใหม่ เป็นที่ www.google.com 465 00:23:29,662 --> 00:23:33,800 ดังนั้นตอนนี้ถ้าคุณไปที่ google.com คุณจะ เรียงลำดับของการมองเห็นชนิดของเบราว์เซอร์กระพริบตา 466 00:23:33,800 --> 00:23:38,770 เป็นครั้งที่สองแล้วเปลี่ยนเส้นทางคุณ ขวากลับไปที่ www.google.com 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 >> เควิน SCHMID: OK 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 ดังนั้นฉันจะทำที่ www 483 00:24:06,006 --> 00:24:09,680 และอย่างที่คุณเห็นนี่คือทั้งหมดที่ HTML เบราว์เซอร์ที่จะดำเนินการ 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 ว้าวมีจำนวนมากเป็น HTML บนวิกิพีเดีย - 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 ใช่เพราะเมื่อฉันได้ simpler.js, ที่ผมเขียน 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 >> และมีชนิดของไวยากรณ์พิเศษนี้ ใน Javascript ประกาศ 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 จริงๆ แต่ก็เป็นระดับที่ต่ำกว่าเล็กน้อย กว่าโค้ด PHP ที่คุณอาจจะมี 506 00:25:23,170 --> 00:25:26,980 เขียน P ตั้งเจ็ดเพราะ PHP และ Apache เรียงลำดับของการดูแลบางส่วน 507 00:25:26,980 --> 00:25:28,150 สิ่งเหล่านี้สำหรับคุณ 508 00:25:28,150 --> 00:25:32,520 ใน PHP, คุณสามารถแทนที่ค่าเริ่มต้น พฤติกรรมโดยการเขียนส่วนหัวของคุณเอง 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 >> ดังนั้นนี่คือสิ่งที่ฉันทำคือการมีนี้ สายที่ไม่เท่ากับเซิร์ฟเวอร์ var 519 00:25:59,170 --> 00:26:03,530 HTTP.create เซิร์ฟเวอร์และจากนั้นฉัน ผ่านในการดำเนินการตามคำขอ 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 ดังนั้นนี่จะบอก createServer ฟังก์ชั่นที่ฉันต้องการให้คุณที่จะทำให้ฉัน 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 OK? 526 00:26:18,990 --> 00:26:22,290 >> ดังนั้นเส้นที่สวยมาก เสร็จสิ้นทันที 527 00:26:22,290 --> 00:26:28,780 ดังนั้นสายเซิร์ฟเวอร์ var เป็นสิ่งที่ถูกต้อง หลังจากที่คุณทำที่สวยมาก 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 OK? 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 แล้วเราทำ server.listen 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 ดังนั้นถ้าฉันไปที่สิ่งที่ต้องการ ผมไม่ทราบว่า, Wikipedia.org, 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 Wikipedia.org ที่พอร์ต 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 >> ดังนั้นผมจึงเลือกที่จะเพียงแค่ 1,337 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 ฉันจะทำโหนดและฉัน จะใช้ simpler.js 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 พยายามที่จะเข้าใช้งานได้ใน Curl 567 00:28:16,300 --> 00:28:20,680 ดังนั้นฉันจะทำ Curl และของฉัน เครื่องโฮสต์ท้องถิ่น 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 >> เพื่อให้เป็น simpler.js 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 >> เพื่อขอลบ r จากที่ และดูที่ simple.js 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 >> เควิน SCHMID: ดังนั้นผู้ที่เป็น วัตถุ JavaScript 608 00:30:12,050 --> 00:30:15,230 ในเอกสาร Node.js มัน โดยทั่วไปว่าสิ่งที่วิธีการ 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 สิ่งที่ต้องการที่จะ rec.method บอกคุณไม่ว่าจะเป็น HTTP ได้รับหรือ 615 00:30:34,540 --> 00:30:36,780 คำขอ HTTP และโพสต์ สิ่งที่ต้องการที่ 616 00:30:36,780 --> 00:30:39,100 ดังนั้นจึงมีทุกชนิดที่แตกต่างกัน คุณสมบัติ แต่พวกเขาทั้งสอง 617 00:30:39,100 --> 00:30:42,560 JavaScript วัตถุและพวกเขาก็มี ฟังก์ชั่นที่ติดอยู่กับพวกเขาว่าคุณ 618 00:30:42,560 --> 00:30:43,850 สามารถเขียนสิ่งที่จะ 619 00:30:43,850 --> 00:30:45,520 OK? 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 ผมยังมี res.writeHead นี้ และผมยังมี res.end นี้ 623 00:30:56,520 --> 00:31:00,270 และสิ่งนี้เป็นตัวอย่างของใน JavaScript เป็นความคิดในการนี​​้ 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 นี้จะปรับได้อย่างสมบูรณ์แบบ รหัส JavaScript 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 >> ผู้ชม: ฟังก์ชั่นเป็นครั้งแรก ชั้นใน JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> เควิน SCHMID: พวกเขาเป็นครั้งแรก ชั้นใน JavaScript 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 ดังนั้นสำหรับตัวอย่างเช่นในงาน JavaScript ใน เบราว์เซอร์ของคุณก็ยังค่อนข้างเหตุการณ์ 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 เพื่อให้เป็นชนิดเช่นที่น่าตื่นเต้น เหตุผลว่าทำไม JavaScript เป็นจริงๆ 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 เพื่อให้เป็น simple.js 659 00:32:33,440 --> 00:32:38,070 ดังนั้นเรามาดูอีกหนึ่ง หรือคู่มากขึ้น 660 00:32:38,070 --> 00:32:42,040 ดังนั้นนี่คือ sleep.js 661 00:32:42,040 --> 00:32:47,160 ดังนั้นใครที่คุ้นเคยกับ C ฟังก์ชั่นการนอนหลับ 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 เพื่อแจ้งให้ทราบว่าเรามีเหมือนกัน res.writeHead 200 ด้วยส่วนหัวเป็น 671 00:33:17,580 --> 00:33:22,130 ก่อน แต่แล้วเรากำลังเรียกร้องนี้ ฟังก์ชั่นที่เรียกว่าหมดเวลาที่กำหนด 672 00:33:22,130 --> 00:33:26,170 ตั้งค่าการหมดเวลายังมีอยู่ใน เว็บเบราว์เซอร์ของ Google Chrome 673 00:33:26,170 --> 00:33:28,000 หรือ Safari หรืออะไรก็ตาม 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 ผลงานที่อยู่ใน 5,000 มิลลิวินาทีที่ฉันต้องการ คุณจะดำเนินการฟังก์ชั่นที่ 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 และจากนั้นก็จะ ทำงาน res.end เดี๋ยวก่อน 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 >> ดังนั้นเพียงแค่นี้จะแสดงให้เห็นในการกระทำ ฉันจะทำ Node.sleep.js 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 ดังนั้นแน่นอนใช้ Node.js. 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 ใช้ EADDRINUSE 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 ขอทำ Curl อยู่ที่ 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 จึงขอบอกว่าฉันทำเช่นนี้ในแท็บอื่น ฉันจะทำ Curl และเดียวกัน 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 ดังนั้นตอนนี้ถ้าผมกด Enter ก็จะ เพื่อให้ขอให้สวยมาก 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 จำนวนนั้นเป็นกระบวนการ ID 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 วิธีการที่แตกต่างจาก บัฟเฟอร์ printf แต่? 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 >> เควิน SCHMID: โอ้, คุณสามารถ บอกว่าอีกครั้งหนึ่ง 776 00:38:26,555 --> 00:38:29,510 >> ผู้ชม: ไม่ชอบกันชน printf ทำสิ่งเดียวกันแน่นอน 777 00:38:29,510 --> 00:38:31,280 >> เควิน SCHMID: บัฟเฟอร์ printf? 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 ไม่ได้อยู่ในส่วนหนึ่งของแบบทดสอบที่พวกเขา พูดคุยเกี่ยวกับวิธีการที่เหมาะสมถ้าคุณ printf 781 00:38:40,609 --> 00:38:42,899 บางสิ่งบางอย่างแล้วมันได้หยุดอย่างใดอย่างหนึ่ง ที่สองและจากนั้นคุณก็มีวงสิบ 782 00:38:42,899 --> 00:38:46,530 ครั้งก็จะรอสิบวินาทีและ printf แล้วทุกอย่างร่วมกัน 783 00:38:46,530 --> 00:38:47,460 >> เควิน SCHMID: โอ้, โอคลาโฮมา 784 00:38:47,460 --> 00:38:49,170 >> ผู้ชม: มันทำแบบเดียวกัน สิ่งที่แล้วในกรณีนี้ 785 00:38:49,170 --> 00:38:52,630 >> เควิน SCHMID: ดังนั้นคำถามคือ โดยทั่วไปในหนึ่งในอดีตแบบทดสอบ 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 และเหตุผลที่ว่าชนิดของ printf รอเช่นนั้นและทิ้งมันทั้งหมดออก 793 00:39:17,455 --> 00:39:21,760 ที่ครั้งหนึ่งเคยเป็นที่เกี่ยวข้องกับ วิธีชนิดของ printf - 794 00:39:21,760 --> 00:39:25,100 ดังนั้น printf ทางเป็นจริง ดำเนินการเป็นมันเป็นพื้นมีการ 795 00:39:25,100 --> 00:39:28,850 พูดคุยกับระบบปฏิบัติการที่จะเขียน สิ่งที่จะคอนโซลที่ 796 00:39:28,850 --> 00:39:33,460 ดังนั้นจึงไม่ต้องการที่จะทำทุกที่ สิ่งที่ได้ทันทีเมื่อคุณพูด ​​printf 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 >> ดังนั้นถ้าคุณทำ printf เดี๋ยวก่อนโปรแกรมของคุณ อาจไม่จริงพิมพ์ว่า 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 ดังนั้นนี่คือฟังก์ชั่นที่น่ากลัวที่จะ คำนวณ nth Fibonacci 820 00:40:39,130 --> 00:40:43,510 มันอย่างแท้จริงเป็นวิธีที่เลวร้ายที่คุณสามารถ คำนวณจำนวน Fibonacci nth 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 มันก็เหมือนหนึ่งในบรรดาสิ่ง Reddit 826 00:40:55,660 --> 00:40:59,650 แต่ใครบางคนวิพากษ์วิจารณ์ Node.js และ พวกเขาใช้นี้เป็นตัวอย่าง 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 วิธีการอย่างเข้มข้นในการคำนวณ จำนวน Fibonacci nth 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 >> เควิน SCHMID ขวา 838 00:41:31,355 --> 00:41:32,400 >> ผู้ชม: ทั้งหมดทางลง 839 00:41:32,400 --> 00:41:32,840 >> เควิน SCHMID: แน่นอน 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 >> เควิน SCHMID: โอ้, คุณสามารถ ทำซ้ำคำถามหรือไม่ 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 >> เควิน SCHMID: โอ้ดังนั้นนี่คือรหัสเพียง ที่เป็นไปได้ในการจัดเรียงของ 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 >> ดังนั้นอีกครั้งที่เราทำ res.writeHead ทั้งหมดนี้ สิ่งที่เราพิมพ์ออกมา 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 ดังนั้นฉันจะทำ fib.js. โหนด 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 OK? 880 00:43:22,200 --> 00:43:24,960 ดังนั้นฉันเพียงแค่จะบอกว่า Curl 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 >> เควิน SCHMID: มันควรจะเป็น ได้ทำสวยเร็ว 886 00:43:42,050 --> 00:43:43,780 ดังนั้นจึงควรใช้เวลา 5-6 วินาที 887 00:43:43,780 --> 00:43:48,570 ผมไม่ทราบว่าเป็นเพียงการเป็นซูเปอร์ V8 รวดเร็ว แต่ในกรณีใด ๆ นี้เป็น 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 ดังนั้นที่นี่ฉันจะ Curl บน ที่อยู่นั้นและฉันจะ 894 00:44:06,990 --> 00:44:08,260 ที่จะทำ Curl อื่น 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 >> เควิน SCHMID ขวา 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 มากใช้เวลาส่วนใหญ่ของเวลาเพียงแค่ การคำนวณตัวเลขที่ Fibonacci nth 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 CPU หรือแม้กระทั่งถ้าคุณมีซีพียูหลาย แจกจ่ายให้สม่ำเสมอทั่วซีพียู 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 ดังนั้นสิ่งที่ฉันมีที่นี่เป็นโปรแกรมที่เรียกว่า Fib ซีและนี้โดยทั่วไปใช้ 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 process.h เด็กหรือบางสิ่งบางอย่าง 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 ที่ผมเคยเขียนโปรแกรม C ที่ โดยทั่วไปคำนวณ 953 00:47:11,060 --> 00:47:12,630 จำนวน Fibonacci nth 954 00:47:12,630 --> 00:47:15,960 ดังนั้นนี่เป็นเพียงโปรแกรมที่ผมเคยเขียน ใน C ที่คำนวณนี้ 955 00:47:15,960 --> 00:47:19,040 ฉันสามารถรวบรวมมันและฉันสามารถเรียกใช้ มันที่บรรทัดคำสั่ง 956 00:47:19,040 --> 00:47:22,150 และมันจะคำนวณ จำนวน 45 Fibonacci 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 จากนั้นฉันก็ทำ cp.exec นี้ 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 >> เควิน SCHMID: ดังนั้นนี้จะจริง เปิดกระบวนการใหม่ที่จะทำมัน 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 ดังนั้นนี่คือชนิดของคล้าย กับสิ่งที่ Apache ไม่ 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 >> เควิน SCHMID: ใช่ 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 มันสามารถตัดขึ้นเวลาหนึ่งที่ CPU ได้รับมันหรือว่าพวกเขาได้รับ 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 ดีฉันชนิดของได้ออกจากการพูดคุยว่า ฉันจะทำให้เซิร์ฟเวอร์ Fibonacci สำหรับ 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 >> ดังนั้นนี่คือ chat.js. 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 Facebook Chat หรืออะไรก็ตาม 1028 00:50:56,630 --> 00:50:59,990 ดังนั้นฉันไม่ได้พูดนี้เป็นเช่น Facebook คุย แต่นี้เป็นชนิดของ 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 >> ดังนั้นเราจึงได้รับสิ่งที่พิเศษนี้ ที่ด้านบนนี้ var SIO 1033 00:51:15,500 --> 00:51:17,050 เท่ากับต้อง Socket.IO 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 >> SocketIO เป็นจริงจริงๆ ชนิดของเย็น 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 ดังนั้นจึงเป็นพื้นไปที่ google.com, ได้รับ สิ่งที่ส่งมันกลับมาแล้ว 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 >> แต่สิ่งที่ Socket.IO และชนิดที่คล้ายกันของ สิ่ง - และ SocketIO เป็นจริงหนึ่ง 1048 00:52:01,090 --> 00:52:03,940 ในสิ่งที่ถูกสร้างขึ้นในฐานะ WebSocket ซึ่งเป็นประเภทของการใช้งาน 1049 00:52:03,940 --> 00:52:06,440 เป็นส่วนหนึ่งของ HTM​​L5 - 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 >> เพื่อให้เป็นชนิดของสิ่งที่ SocketIO เป็นสิ่งที่ดี 1059 00:52:32,850 --> 00:52:38,400 เหตุผลที่ SocketIO ใช้ WebSockets เป็นสิ่งหนึ่งที่อยู่ใน 1060 00:52:38,400 --> 00:52:43,980 นอกจาก WebSockets เพียงเก่าธรรมดา ก็ยังไม่เทคนิคบางอย่างโดยทั่วไป 1061 00:52:43,980 --> 00:52:45,610 ทำให้เบราว์เซอร์ที่รองรับ 1062 00:52:45,610 --> 00:52:50,040 เบราว์เซอร์ดังนั้นเช่น Internet Explorer แต่น่าเสียดายที่ไม่สนับสนุน WebSockets 1063 00:52:50,040 --> 00:52:50,810 ขวาออกจากกล่อง 1064 00:52:50,810 --> 00:52:55,290 ดังนั้นจึงใช้บางชนิดอื่น ๆ ของเรียบร้อยเย็น สิ่งที่มี Adob​​e Flash เพื่อให้ 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 >> และอันที่จริงฉันรู้ว่าฉันชนิดของ ทำงานในเวลาที่นี่ แต่ CS50 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 นั่นคือ SocketIO 1071 00:53:12,250 --> 00:53:15,580 ดังนั้นเมื่อใครสักคนที่จะเริ่มต้นการพิมพ์ กล่องหารือเพื่อให้การตอบกลับหรือ 1072 00:53:15,580 --> 00:53:20,040 สิ่งที่เบราว์เซอร์ของคุณไม่ว่าสิ่งที่ เรียกว่าใน SocketIO ส่งเสียงชนิดของ 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 ดีตอนนี้ฉันต้องบอกผู้ชายคนอื่นที่ ที่อยู่ใน CS50 พูดคุยมอง 1076 00:53:29,270 --> 00:53:31,170 ที่โพสต์นี้ว่าคนที่ตอบกลับ 1077 00:53:31,170 --> 00:53:34,190 เพื่อให้เป็นชนิดของสิ่งที่เป็น SocketIO ที่ดีสำหรับชนิดนี้อย่างต่อเนื่องของ 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 เพื่อให้เป็นเพียงวิธีการใน Socket.IO เป็น พูดให้ฟังในพอร์ตนี้ 1084 00:53:46,880 --> 00:53:50,060 แล้วฉันทำเช่นนี้ในการเชื่อมต่อ 1085 00:53:50,060 --> 00:53:53,360 เพื่อให้เป็นเพียงแค่พื้นซ็อกเก็ต IO ของ วิธีที่บอกเมื่อเราได้รับ 1086 00:53:53,360 --> 00:53:55,840 การเชื่อมต่อฉันต้องการให้คุณ ที่จะเรียกใช้รหัสนี้ 1087 00:53:55,840 --> 00:53:59,870 >> และสังเกตเห็นว่าแทนที่จะต้องรับรู้ res และผ่านในมีฉันมีซ็อกเก็ต 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 >> ดังนั้นสิ่งที่ฉันทำคือการที่ผมเรียก Socket.emit 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 เราจะไม่สนใจ connections.push เป็นครั้งที่สอง 1108 00:55:00,540 --> 00:55:03,360 แต่แล้วฉันก็บอกว่าผู้ใช้ Socket.on ส่ง 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 การเชื่อมต่อที่ฉันได้เพิ่มเข้ามาด้วย วิธี JavaScript.push นี้เป็น 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 ปล่อยและสิ่งที่ต้องการที่จะเหมือนกัน ชนิดของรหัส JavaScript ที่คุณจะ 1138 00:56:36,390 --> 00:56:39,260 เขียนลงในเบราว์เซอร์ในการโต้ตอบ กับเซิร์ฟเวอร์ 1139 00:56:39,260 --> 00:56:42,480 เพื่อที่ว่าทำไม SocketIO เป็นชนิดของ เรียบร้อยและมีประโยชน์ในทางที่ 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 มีโครงการสุดท้าย CS50 เป็นปีสุดท้าย ที่พื้นดำเนินการสนทนา 1143 00:56:55,970 --> 00:56:57,840 เซิร์ฟเวอร์ใน Node.js. 1144 00:56:57,840 --> 00:57:01,350 ฉันคิดว่ามัน Harvardchats.org แต่ฉันไม่ - 1145 00:57:01,350 --> 00:57:02,940 ตกลง 1146 00:57:02,940 --> 00:57:06,190 ผมไม่แน่ใจว่าสิ่งที่ URL ที่เป็น แต่ ฉันสามารถส่งออกหลังจากนั้น 1147 00:57:06,190 --> 00:57:09,260 แต่ชนิดของสิ่งที่เย็น คุณสามารถทำอะไรกับ Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> ดังนั้นผมจึงหวังว่าโดยทั่วไปที่พวกคุณมี ความรู้สึกที่ดีของสิ่งที่ Node.js เป็นประโยชน์ 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 >> [APPLAUSE]