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 مرحبا بكم في الندوة CS50 على Node.js. 4 00:00:12,640 --> 00:00:13,955 اسمي كيفين. 5 00:00:13,955 --> 00:00:15,580 أنا TF CS50. 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 الأربعاء حيث الأساس لدينا بعض عملية العميل مثل جوجل كروم. 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 >> كيفن شميد: بالضبط. 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 مثل قاعدة بيانات MySQL. 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 ثم تحصل على صفحة ويب مثل غوغل أو أو CS50.net 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 >> لذلك كما قلنا، يتلقى خادم الويب هذا الطلب HTTP ثم تصدر هذه 75 00:03:22,430 --> 00:03:24,760 استجابة HTTP. 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 خادم الويب اباتشي. 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 >> ولكن أساسا، خادم الويب 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 الطلب، ثم يجلس اباتشي هناك وارقام القيام به معها. 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 لا بأس إذا كان لديك لا، ولكن مجرد التفكير حول المواضيع أو العمليات عن سبل ل 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 >> وجزء من المنطق هو أن فقط مثل عندما كنت تشغل برنامج 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 >> ومن ثم، أيضا، دعونا نقول لديك فقط وحدة المعالجة المركزية واحدة، أو دعونا نقول لديك 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 >> كيفن شميد: 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 وما التعليمات البرمجية الخاصة بك سوف يتم القيام، ما هذه العملية أباتشي أو 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 الأجهزة 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 إرسال بريد خادم الويب التي تحسب فقط عدد فيبوناتشي النونية. 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 قاعدة البيانات، أو شخص ما أرسلت لي طلب 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 موافق؟ 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 >> كيفن شميد: أوه، لذلك نعم. 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 >> حتى مجرد أن يكون واضحا تماما، وو فتح أن يفعل أغنية كاتي بيري الجديد 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 >> كيفن شميد: هذا سؤال كبير. 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 >> حتى 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 يمنحك ذلك و يربط أساسا إلى V8 جوجل 344 00:17:09,290 --> 00:17:14,030 محرك جافا سكريبت والذي هو السبب أن كروم هو سريع جدا في معالجة 345 00:17:14,030 --> 00:17:17,040 جافا سكريبت لأنه يحتوي هذا المحرك 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 وإنما هو بارد أنهم فعلوا هذا لأن جافا سكريبت - 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 فوائد عقدة حتى من وجود هذا بسرعة فائقة 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 >> حتى لقد أعدت بعض الأمثلة في هذا العنوان. 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 لماذا لا نبدأ ملف 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 جافا سكريبت الذي قد يكون أو قد لا تكون على دراية. 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 ملامح جافا سكريبت التي هي نوع من باردة. 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 وذلك فقط لتسليط الضوء على هذا ما من شأنه تبدو وكأنها في 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 جافا سكريبت لديها أنواع، ولكنها ل جدا كتبته حيوي في الطبيعة، لذلك 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 >> وادعو هذا 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 رمز الملقم HTTP لذلك أنا فقط جلب لأنها بلدي 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 >> وبالتالي فإن السطر الأول من هذا لا 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 موافق؟ 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 لذلك لتظهر لك هذا، وانا ذاهب لاستخدام برنامج يسمى الضفيرة. 441 00:22:03,550 --> 00:22:04,260 موافق؟ 442 00:22:04,260 --> 00:22:08,020 لذلك هذا هو شيء يمكنك تشغيلها في سطر الأوامر ماك OSX الخاص بك أو في 443 00:22:08,020 --> 00:22:09,830 الأجهزة أو أيا كان. 444 00:22:09,830 --> 00:22:17,050 وحتى لو لم الضفيرة HTTP google.com، أنا ذاهب لرؤية HTML. 445 00:22:17,050 --> 00:22:21,230 وهذا هو، في الإنصاف، فقط HTML هذا النوع من يقول لك 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 >> لذلك هذا هو مجرد HTML، ولكن انا ذاهب إضافة إلى هذه الضفيرة اصلة أنا العلم. 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 >> حتى في القمة، ترى هذا 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 >> كيفن شميد: 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 لذلك أنا ذاهب الى القيام به على شبكة الاتصالات العالمية. 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 >> وهناك هذا النوع من بناء جملة خاص في جافا سكريبت لإعلان 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 و اباتشي نوع من رعاية بعض 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 >> حتى هنا ما أقوم به هو وجود هذا الخط الذي لا يساوي الخادم فار 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 موافق؟ 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 ثم نفعل 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 >> لذلك اخترت فقط 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 انا ذاهب الى القيام به عقدة، وأنا ذاهب لتشغيل 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 محاولة الوصول إليه في الضفيرة. 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 >> لذلك كان أن 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 >> لذلك دعونا إزالة ص من ذلك وإلقاء نظرة على 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 >> كيفن شميد: حتى تلك هي جافا سكريبت الكائنات. 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 جافا سكريبت الكائنات، ولديهم فقط وظائف المرفقة بها التي 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 لا يزال لدي هذا res.writeHead وأنا لا تزال لديها هذا res.end. 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 لذلك كان أن 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 >> وذلك أساسا يمكن أن تمرر في أعتقد أن عدد الثواني، أو إذا كنت تستخدم U 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 تعيين مهلة باللغات متصفح الويب الخاص بك جوجل كروم 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 يعمل في 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 دعونا نفعل ذلك العنوان الضفيرة مرة أخرى مع 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 حتى الآن إذا كنت اضغط 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 الرقم هو أساسا معرف العملية. 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 >> كيفن شميد: أوه، هل يمكن أن ويقول أن أكثر مرة واحدة؟ 776 00:38:26,555 --> 00:38:29,510 >> الحضور: لا أحب عازلة printf تفعل الشيء نفسه بالضبط؟ 777 00:38:29,510 --> 00:38:31,280 >> كيفن شميد: المخزن المؤقت 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 >> كيفن شميد: أوه، حسنا. 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 والسبب أن هذا النوع من 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 حتى هنا وظيفة الرهيبة ل حساب فيبوناتشي النونية. 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 ولكن شخص ما انتقد 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 طريقة مكثفة لحساب عدد فيبوناتشي النونية. 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 >> ولكن على أي حال، OK. 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 >> ذلك مرة أخرى، ونحن نفعل هذا كله 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 موافق؟ 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 لذلك ينبغي أن تأخذ 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 حتى هنا أنا ذاهب إلى الضفيرة على هذا العنوان، وانا ذاهب 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 ذلك ما قلته هنا هو برنامج يسمى أكذوبة C. وهذا يستخدم في الأساس 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 الآن لدي الوصول إلى هذا المتغير CP التي لديها كل ما عندي وظيفة. 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 عدد فيبوناتشي النونية. 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 عدد فيبوناتشي. 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 >> كيفن شميد: ولذلك فإن هذا سوف الواقع فتح عملية جديدة للقيام بذلك. 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 لأنه كان 27122 قبل. 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 >> لذلك هذا هو 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 دردشة الفيسبوك أو أيا كان. 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 >> لذلك نحن نحصل على هذا الشيء خاصة في الجزء العلوي، وهذا فار 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 كجزء من HTML5 - 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 لذلك متصفحات مثل إنترنت إكسبلورر للأسف لا تدعم WebSockets 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 >> وفعلا، وأنا أعلم أنا نوع من يعمل على الوقت هنا، ولكن 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 >> وتلاحظ أنه بدلا من وجود تفصيل والدقة في تمرير هناك لدي المقبس. 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 تنبعث منها وأشياء من هذا القبيل هو نفسه نوع من شفرة جافا سكريبت أن تفعل 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 >> [تصفيق]