[عزف الموسيقى] DAVID مالان: هذا هو CS50. هذه هي بداية الأسبوع تسعة. وهذا ما سيكون له كان عيد ميلاد السيد بوول في ال200. لذلك هذا هو الزملاء إلى الذي كنا قد ألمح تماما في بعض الأحيان حول استخدام متغيرات منطقية صحيحة وكاذبة، 1 و 0 ومثل هذا. وكانت غوغل هذا الجزية له اليوم. كان قد تحول 200. لذلك إذا كنت ترغب في الانضمام إلينا لCS50 الغداء، نلقي نظرة على الرابط على الموقع الإلكتروني للدورة و. وهذه الوجوه والأصدقاء كما هذه تنتظركم هنا في كامبريدج. وجوه مثل هذه تنتظركم في نيو هافن. و، في الواقع، كين في نيو هافن جعل التكرم ما يسمى GIF المتحركة من ايلي هنا في الآونة الأخيرة lunch-- لGIF هو حتى الآن تنسيق ملف رسومي آخر، التي كنت familiar-- أن يبدو شيئا قليلا من هذا القبيل. حتى مجرد تسلسل of-- موافق. لا أحد هنا في كامبريدج يضحك. ولكن في نيو هافن، هذا هو مضحك حقا، أليس كذلك؟ حسنا. لذلك الانضمام إلينا هناك. هنا في جامعة هارفارد، على وجه التحديد، هذا الأربعاء، إذا كنت طالبة أو طالبة even-- أو حتى التفكير junior-- صنع التبديل إلى جهاز الكمبيوتر العلم، ونعرف أن هناك سوف أكون كن CS تقديم المشورة عادل هذا الأربعاء، بعد وقت قصير من الدرجة في 04:00 في الكمبيوتر بناء العلم ماكسويل دوركين. سوف نضع هذا على ملعب ل الموقع من قبل غدا، كذلك. الكعك، قيل لي، وسيتم تقديم. حسنا. story-- مضحك لذلك كان بدس حول على الإنترنت، ولقد وجدت بعض المحفوظات القديمة من موقعي السابق. ويتحول out-- حول هذا الوقت، ويبدو في الوقت المناسب جدا منذ أن جمع أن الانتخابات UC على وشك أن تستعد مرة أخرى. لذلك ركضت لUC، فقد فشلا ذريعا. وربما كان هذا في جزء منه لماذا. لذلك كان هذا موقع الويب الخاص بي في ذلك الوقت. لسبب ما، اعتقد انها كانت فكرة جيدة، قبل إخبار الناس ما كان برنامجى ولماذا يجب أن يصوتوا لي، أن لديهم انقر لدخول لمعرفة ان المعلومات التي في الماضي هو نوع من زاحف. أنا لا أعرف حقا ما كان. لكنه لم يفعل بالتأكيد مساعدة حملتي. كما أنني وجدت أنه من خلال كبار year-- كان هذا التقويم الدمى. كانت الدمى المتحركة نوع من رواج في ذلك الوقت. أو ربما أنها لم تكن. كان لي تقويم الدمى في ذلك الوقت. واعتقدت انها تريد ان تكون باردة لاسم جهاز الكمبيوتر الخاص بي على شبكة هارفارد frogman.student.harvard.edu. في ذلك الوقت، كان لدينا كل فريد أسماء المضيفين تحديدها. ويمكن أن تختار بعض الغرور اسم بدلا من الاسم الخاص بك. وذهبت مع عواض لسبب ما. وبعد ذلك started-- قضيت الكثير من الوقت من خلال النقر على هذه الروابط هذا الصباح. وكانت هذه الصفحة عن بلدي، والآن يبدو نوع من رائعتين. ولكنه يشهد على مجرد أيضا إلى أي مدى قد حان التكنولوجيا. أعني، مرة في اليوم، 486 كان شيئا. في هذه الأيام، انها سوبر، سوبر، السوبر بطيئة وأقل جيدا من قد يكون لديك في حياتك جيوب الخاصة في هذه الأيام. هناك المزيد على أن هناك كان أكثر محرجة. لذلك سأترك الامر عند هذا الحد. لكن ذلك كان لقائي الأول غزوة web-- أوه، لا. لم يكن ذلك. بلدي أول مشاركة حقيقية في برمجة الويب وكان هذا الموقع الذي كنت قد نسيت تماما. في مرحلة ما، وتعلمت كيفية جعل الصور الخلفية المتكررة. وهكذا وجدت هذه تبليط فعالة، مثل لاعب الهوكي، كرة القدم، والجولف الكرة، أو أيا كان هذا هو للموقع Frosh الرسائل الفورية. وكان هذا في الواقع، بصدق أخذت المشروع على شبكة الإنترنت أول on-- أعتقد أنه ربما طالبة العام، year-- صغار بعد أخذ CS50 وCS51، واحد من الطبقات المتابعة المشتركة. لقد لاحظت في النظر من خلال المحفوظات أن أحد خلفاء بلدي و أصدقاء، لي، نوع من تغيير حقوق التأليف والنشر لنفسه. ولكن هذا كان في الواقع شيئا وأود أن تملك إحراج. ولكن في ذلك الوقت، هذا كان أول موقع، كما قلت قبل بضعة أسابيع، التي يمكن طالبة التسجيل للحصول على الألعاب الجماعية هنا. وهكذا اتضح أن الصور الخلفية من هذا القبيل ليست هذه فكرة جيدة. ولكن على شبكة الإنترنت كان جديد، و كنا تجريب كل شيء. وهذا هو ما أنا على ما يبدو فعل في ذلك الوقت. حسنا. ذلك دون مزيد من اللغط، ونحن التبديل تستعد اليوم لتعطيك، حقا، قطعة النهائي التي قد تجد مفيدة بشكل خاص للمشاريع النهائية ولكن أيضا من شأنها أن تبدأ ل جعل شبكة الإنترنت العالم كله تشعر قليلا أكثر قابلية للفهم. في الواقع، ونحن في طريقنا لتقديم أكثر واحد لغة البرمجة دعا جافا سكريبت هذا مماثلة وتختلف بطرق مختلفة من لغات لقد نظرت حتى الآن. هكذا C، أذكر، هو هذه اللغة المترجمة. كنت قد حصلت على تشغيله من خلال مترجم. يمكنك الحصول على الشفرة المصدرية للاعتراض رمز، أو أصفار ومنها. وهؤلاء هم أصفار وتلك التي وحدة المعالجة المركزية الخاصة بك، وحدة المعالجة المركزية، فهم في الواقع. PHP، على النقيض من ذلك، ليس لغة مترجمة. انها ماذا؟ انها لغة تفسيرها. لذلك هناك بعض البرامج دعا مترجم أن أن قراءة it-- أعلى إلى أسفل، من اليسار إلى right-- ومعرفة ما كل من تركيب الخاص بك لا والوسائل، سواء كان ذلك في حلقة أو شرط أو أي رقم آخر للبرمجة يبني. لذلك أن لغة تفسيرها. ثم قدمنا ​​HTML. وهذا HTML ولا حتى لغة البرمجة. كنا نسميها ماذا؟ لغة الترميز، الذي هو مجرد نوع من طريقة أخرى للقول ذلك لايوجد بنيات البرمجة مثل رأينا حتى مرة في اليوم من الصفر. لا توجد الحلقات. لا توجد شروط. انها حقا هي لغة حول ترميز البيانات الخاصة بك وتنسيق أو هيكلة أنه في بعض الطريق. CSS، وفي الوقت نفسه، وبالمثل ليست لغة برمجة. حتى أن المنحى أكثر جماليا ذلك. ويسمح لك لفرز من صقل أشياء مثل حجم الخط والألوان والتنسيب وكل ذلك. ثم كان لدينا SQL. حتى SQL هو في الواقع البرمجة اللغة في بعض المعنى، وإن كانت مصممة خصيصا لقواعد البيانات. ولكن على الرغم من أننا فقط أعرض لكم ل اختيار وإدراج وحذف وتحديث واثنين آخرين، اتضح يمكنك فعلا كتابة وظائف أو الإجراءات، كما انهم ودعا، في SQL التي تبدو وتتصرف تماما مثل PHP و C وظائف. حتى نعرف أن تلك موجودة. لكننا لا حتى عناء معهم ونحن مجرد خدش السطح هنا. ثم جافا سكريبت، وكان آخر من قدم لغاتنا رسميا. حتى جافا سكريبت، أيضا، لغة تفسيرها. والعارفين، لا تريد تمييزه مع بعض الخصائص من كل من C و PHP؟ ما يجعلها مختلفة؟ الحضور: ليست جمعها و. DAVID مالان: قل مرة أخرى؟ الحضور: ليست جمعها و. DAVID مالان: ليست جمعها و. لذلك، أيضا، يتم تفسيرها. لذلك ليس تجميعها. ولكن هذا يجعل من قليلا مثل PHP. لكنه ما زال مختلفا عن PHP بطريقة ملفتة للنظر، على الأقل في الطريقة التي سوف تستخدم. نعم؟ الجمهور: أنه يعمل من جانب العميل. DAVID مالان: تشغيله من جانب العميل، عادة. هذا هو الواقع المميزة سمة بالنسبة لنا في الوقت الحالي. كان C من جانب الخادم بمعنى أن فعلنا كل شيء في IDE CS50. PHP تم حتى الآن من جانب الخادم بقدر كما أنها، أيضا، يحصل interpreted-- لا المترجمة، ولكن interpreted-- داخل CS50 IDE، وهو بطبيعة الحال مجرد خادم أو خوادم في السحابة. ولكن جافا سكريبت، حتى على الرغم من أنك كنت تريد الذهاب للبدء في كتابة لأنها، كما يقول، PSET ثمانية وربما نهائي projects-- كنت الذهاب إلى اليمين في IDE CS50 وحفظه في الملفات داخل IDE CS50، CS50 IDE وبدوره، خوادم السحابة الذي هو استضافتها، لن لتفسير أو تنفيذ التعليمات البرمجية. بدلا من ذلك، انه سيكون ليتم إرسالها في شكل دون تغيير وصولا الى المتصفح. وانه بعد ذلك سيكون IE أو كروم أو فايرفوكس أو سفاري أو أيا كان أن يفسر في الواقع ذلك، الأعلى إلى الأسفل، من اليسار إلى اليمين. وبالتالي فإن المميزة رئيسي سمة لهذا اليوم غير أن جافا سكريبت هو العميل وPHP، على سبيل المثال، قد كان من جانب الملقم. الآن، وهذا له آثار مثيرة للاهتمام ل، مثل الملكية الفكرية والذي يمكن أن نرى في الواقع التعليمات البرمجية. وبالفعل، يمكنك الذهاب على شبكة الإنترنت وترى معظم أي رمز أن شخصا ما كتب في جافا سكريبت. في بعض الأحيان انها قابلة للقراءة، في بعض الأحيان هو التعتيم عليه. ولكن أكثر عن ذلك في الوقت المناسب. حتى جافا سكريبت، لطيف بما فيه الكفاية، هو سوبر مماثل، نحويا، لC. ومثل الكثير من PHP، ليس هناك وظيفة الرئيسية. إذا كنت تريد أن تبدأ الكتابة شفرة جافا سكريبت، كما سترى اليوم، كنت مجرد بداية كتابة هذا التقرير. ولكنه، سترى، وخاصة من المفيد في سياق متصفحات الويب. ومع ذلك، فإن القليل بلدي disclaimer-- عادة earlier-- كان يقول أنه يمكنك متزايد استخدام جافا سكريبت اليوم من جانب الخادم باستخدام إطار يتوهم دعا Node.js أن بعض التطبيقات CS50 الخاصة هي مكتوبة في. تحقق 50 يستخدم في الواقع Node.js. لكننا ذاهبون الى التركيز على جافا سكريبت العميل هنا على الخروج. حتى هنا هو مجموعة من الشروط في PHP. عذرا، in-- في الواقع، أن بيان، هو أيضا صحيح. هنا أيضا مجموعة من الأوضاع في جافا سكريبت. نحويا، فمن مطابقة لC وPHP. تعبيرات السيد بوول هي، وبالمثل، نحويا متطابقة إلى كل من C و PHP. لدينا أيضا مفاتيح في جافا سكريبت التي تبدو متطابقة. لدينا لحلقات التي هي منظم مماثل، بينما الحلقات، والقيام به أثناء الحلقات. هذا واحد مختلفة قليلا. كان PHP ولكل بناء التي قد تكون باستخدام أو سوف تستخدم في PSET سبعة، ربما. جافا سكريبت لديه هذا إصدار خاص من لتعرف أين أنت تقول حرفيا شيء مثل لمفتاح متغير في الكائن، الذي هي طريقة مختصرة جدا للقول، إذا كنت قد حصلت على object-- وسنقوم الحديث عن هذه مرة أخرى في اللحظات، وأريد أن أعاد على كل من أزواج قيمة المفتاح في الداخل، ليس لدي لمعرفة كيفية مؤشر عدديا لهم الصفر، واحد، اثنين ثلاثة. أستطيع أن أقول هذا حرفيا. وعلى كل التكرار، وجافا سكريبت بالنسبة لي سوف تحديث مفتاح متغير أن تكون المفتاح الأول، ثم اضغط على مفتاح المقبل، ثم المفتاح التالي، ثم اضغط على مفتاح المقبل، وهكذا دواليك. ويمكنني الحصول على قيمتها عن طريق علاج كائن في جافا سكريبت، كما سنرى، كما لو انها مجموعة النقابي في PHP. في الواقع، إذا كنت ملفوفة أخيرا لكم تمانع حول ما هي مجموعة النقابي في PHP، يمكنك التفكير في الأمر في الوقت الحالي ل مطابق للكائن في جافا سكريبت. ولكن هذا قليلا من في التبسيط. صفائف تبدو، لطيف بما فيه الكفاية، متطابقة لPHP عدا حرف واحد. هناك شيء واحد في عداد المفقودين هنا أننا لم نرى الأسبوع الماضي مع PHP. ما حذفت؟ نعم؟ أي علامة الدولار. لذلك نحن مرة أخرى إلى المزيد من العالم الطبيعي حيث متغيرات ليس لديهم علامات الدولار. ولكنك بادئة لهم مع فار، عادة. وفار يعني متغير. ومثل الكثير من PHP غير فضفاضة typed-- حيث هناك أنواع، هناك أعداد وسلاسل والعوامات وforth-- ذلك جافا سكريبت لديها بالمثل أنواع. لكنه كتبته فضفاضة في أن لدينا المبرمجين لا داعي لتحديد لهم. علينا فقط أن تكون على علم أن أنواع مختلفة موجودة. المتغيرات، meanwhile-- هنا كيف ونحن قد يعلن "مرحبا، العالم" كسلسلة. لاحظ انها مطابقة ل PHP ولكن لا علامة الدولار. وهذا هو ما سنقوم تبدأ في رؤية أكثر اليوم، حيث لديك كائن مع المفاتيح والقيم. وإذا كنت تريد أن تجرب أن نستنتج من week-- آخر بناء الجملة يختلف قليلا. ولكن القليل من التعقل check-- وكم مفاتيح لا يبدو هذا الكائن لديك؟ لذلك أرى الأربعة. أرى اثنين. حتى انها في الواقع اثنين. لذلك هذا هو عبارة عن مجموعة اثنين من أزواج قيمة المفتاح. والمفتاح هو رمز قيمته هو FB. والمفتاح هو السعر الذي قيمتها 101.53. حتى تلك هي اثنين من أزواج قيمة المفتاح. وتذكر، PHP-- وهذا هو مرة أخرى مجرد نوع من الاختلاف النحوي. انها ليست كل ما اهتمام فكريا. PHP قد كتبت هذا نفسه الشيء كما اقتبس follows--، يساوي. ويمكنني تغيير هذه إلى أقواس معقوفة. ومن ثم يمكنني تغيير هذا ل كلمة نقلت "الثمن". وبعد ذلك لا تستخدم القولون. ماذا استعمل الأسبوع الماضي؟ نعم، علامة المساواة السهم التدوين غير تقليدي. ثم فعلت نفس الشيء هنا. نفس الشيء هنا. و هذا كل شيء. لذلك فإنه على ما يرام إذا كان هذا لم غرقت حقا في الذاكرة فقط ولكن لأنها في الحقيقة رتيبا فكريا. انها مجرد اختلافات النحوية. لكن الأفكار هي نفسها بالضبط. داخل هذا المتغير الاقتباس في جافا سكريبت هي عبارة عن مجموعة من أزواج قيمة المفتاح، واحدة منها هي رمز، واحدة منها هو السعر. ويمكنني الحصول على تلك القيم مع بناء الجملة التالية. مثلما هو الحال في PHP، لم أستطع دعونا نفعل شيئا like-- لي أن هذا الإطار أكبر قليلا. مثلما هو الحال في PHP، لم أستطع جعل this-- أوه، اللعنة. هيا. مثلما هو الحال في PHP-- موافق، وسوف نقوم مجرد استخدام الملاحظات مقدم. مثلما هو الحال في PHP، لا يسعني قيام $ $ الاقتباس الاقتباس ["رمز"]، وهذا سوف يحصل لي قيمة "رمزا". في جافا سكريبت، فإنه سيكون متطابقة، حيث أستطيع أن أفعل هذا فقط. الشيء الوحيد الذي مفقود هو الدولار. لطيف جدا بما فيه الكفاية، ثم، هناك ليس كل ذلك التركيب الجديد الكثير. فما اليوم ونحن نركز على، حقا، هو بعض الأفكار والتطبيقات. وأول هذه التطبيق الذي قد شهدت إذا كنت اتجه الى PSET سبعة بالفعل هذا النحو. حتى في PSET سبعة، إذا كنت قد رأيت أو لم يطلعوا عليه بعد، أعلم أن هناك ملف نعطي قمت بالاتصال config.json-- جافا سكريبت الاعتراض الترقيم. لماذا ا؟ كنا نريد أن تكون قادرة على توفير لكم مع قالب مع بعض أزواج قيمة المفتاح. كنا نريد أن تكون قادرة على إعطائك قائمة من المضيف، واسم الخادم. أردنا أن نعطيكم نائب عن اسم المستخدم ونائب لكلمة المرور الخاصة بك. إذا كنت لا ترى هذا حتى الآن، لا داعي للقلق. المزيد عن هذا في PSET سبعة [؟ المواصفات. ؟] وثم، من الواضح، ونحن نريد لك لملء إلى دوس لأنه عندما تقوم بتسجيل الدخول إلى CS50 IDE، كل واحد منكم يكون اسم المستخدم الخاص بك وكلمة المرور. حتى نتمكن من قد استخدمت نصف دزينة أو أكثر تنسيقات الملفات المختلفة. نحن يمكن أن تستخدم ملف .txt. نحن يمكن استخدام ملف CSV. نحن يمكن لقد استخدمت ملف INI، ملف XML، مجموعة كاملة المزيد من الاختصارات التي قد لا يكون سمع. انها نوع من التعسفي في نهاية اليوم. لكن السوبر شعبية في هذه الأيام هو النص شكل يسمى كائن JSON-- جافا سكريبت Notation-- يشبه هذا. انها خفي قليلا، ولكن لاحظ الأنماط. عليك أن تبدأ مع مجعد مفتوحة قوس، وينتهي بك مع نفسه. داخل هذا شيء. انها زوج قيمة المفتاح. لذلك هذا هو الكائن الذي أنا أبحث في على الشاشة هنا الذي لديه مفتاح واحد، والتي لديها قيمة واحدة. ومجرد استنتاج يستند إلى النمط السابق، ما هو المفتاح هنا؟ قاعدة بيانات، والشيء ل يسار القولون. الآن، وقيمة يحدث أن تكون على عدة خطوط هذه المرة. لكن القيمة تبدأ مع مجعد يستعدوا وينتهي متعرج. فماذا تقترحون هو نوع من قيمة قاعدة البيانات؟ A القاموس، أو فقط أكثر بإيجاز، كائن. الصحيح؟ هذا هو نوع من بنية البيانات التي يمكن استخدام الهياكل الأخرى داخل نفسه. حتى إذا كان هذا كل شيء نحن استدعاء object-- وكائن هو مجرد حفنة من القيمة الأساسية pairs-- لل قيمة قاعدة البيانات نفسها هو كائن. قيمة قاعدة البيانات تحتوي على مجموعة كاملة أزواج قيمة المفتاح الأول منها هو المضيف، ثم الاسم ثم اسم المستخدم، ثم كلمة السر، كل من قيمها، وفي الوقت نفسه، فإنه من مجرد سلسلة مملة في علامات اقتباس مزدوجة. وذلك حتى إذا كان هذا لا واضح سوبر فقط حتى الآن، أعلم أن هذا هو مجرد المعيار، طريقة مملة إلى حد ما لتخزين البيانات في شكل موحد. ولكن الأخطاء الشائعة التي قد يجعل، حتى في PSET سبعة، هي أشياء غبية قليلا، مثل إذا كنت بطريق الخطأ حذف الفاصلة هناك. هذا سوف يؤدي في ملف لا يجري بالضرورة قابلة للقراءة. إذا كنت غير قصد حذف أشياء مثل ونقلت وانها لن تكون قابلة للقراءة. لذلك هو تنسيق ملف nitpicky جدا، لكنه واحد وهذا شائع فائقة. ويحدث لأننا استخدامه، على الرغم من كنت لا تستخدم أي جافا سكريبت غير ذلك، في PSET سبعة. حسنا. لذا تذكر هذه الصورة. تحدثنا عنها، في HTML، أن رمز قد تبدو هذه. هذه هي لغة توصيف النص التشعبي (غير مسموع) للتو "مرحبا، العالم". ولكن بعد ذلك اقترحنا حين يعود أنه إذا كان يساعد، قد ترغب في البدء في التفكير حول هذا بالفعل مثل شجرة. في الواقع، فإن المسافة البادئة أننا مجرد استخدام من أجل سهولة القراءة في أو من أجل نمط على يمكن لليسار نوع من أن تترجم إلى هذه الشجرة، حيث كنت لدينا بعض عقدة الجذر الخاصة التي سنقوم تسمى بوجه عام الوثيقة أدناه والتي هو عنصر HTML الجذر أو العلامة، HTML، وثم اثنين الأطفال والرأس والجسم. ثم بدوره، رئيس لديه العنوان. ولقب له قيمة النص. والهيئة لديها بالمثل قيمة النص. حتى إذا كنت تريد أن تقول مريح أن نعم، هل يمكن أن أغتنم هذه HTML ورسم صورة مثل هذا، وعلى الجانب الأيمن هو نموذج عقلي لطيف لأنه الآن أن لدينا جافا سكريبت، والبرمجة اللغة التي تستطيع المتصفحات تنفيذ وتفسير بالنسبة لك، اتضح أن ما نحن على وشك القيام به في التعليمات البرمجية تم البدء في التعامل مع هذا بنية شجرة في الذاكرة. ليس لدينا لبناء شجرة في الذاكرة. ليس لدينا للقيام نوع من هيكل البيانات على غرار PSET خمسة التعقيد. متصفح، لطيف بما فيه الكفاية، على تفسير HTML أعلى إلى أسفل، إلى اليمين أو اليسار، يجري حرفيا ل يسلمنا ما يعادل مؤشر إلى تلك الشجرة بأكملها مجانا. وهو يفعل كل العمل الشاق. هذا ما موزيلا وآبل والبعض الآخر قد فعلت بالنسبة لنا. ومع جافا سكريبت نحن ذاهبون ل تكون قادرة على السيطرة وتغيير والقيام أشياء مثيرة للاهتمام ل تلك الشجرة، والمعروف باعتباره DOM أو كائن المستند النموذجي. ما أنواع الأشياء؟ حسنا، اتضح أن في جافا سكريبت، هناك هذه قائمة من الأحداث التي يمكن أن تحدث. ونحن لم تستخدم حقا أن كلمة منذ أسبوع الصفر وPSET صفر عندما تحدثنا عن الصفر. معظمكم ربما لم تستخدم حدث في مشروع سكراتش الخاص بك. ولكن قد تذكرون وبسيط ماركو بولو سبيل المثال، حيث كان لدينا اثنين واحد منهم قال العفاريت، وماركو. والبعض منهم بعد ذلك، على الاستماع وسماع هذا الحدث، قال بولو. إن لم يكن، لا تتردد في ننظر إلى الوراء أن يعود. ولكن هذا هو فقط ل أقول، ويمكنك نوع من نستنتج من أسماء هؤلاء الأشياء، وجافا سكريبت، كما تبين، سوف يعطينا وسيلة للاستماع فأرة الحاسوب تتراجع أو الماوس الصعود أو مفتاح نزول أو مفتاح الذهاب لأعلى أو onselect onsubmit أو onresizing شيء. وبعبارة أخرى، فإن أي إجراء المادي أن الإنسان يمكن أن تتخذ مع متصفح أن تفعل كل يوم، يمكنك كتابة رمز لأن يستمع لتلك الأحداث ثم يفعل شيئا المناسب. على سبيل المثال، إذا كنت تستخدم خرائط جوجل، ماذا يحدث إذا قمت بالنقر فوق والتحرك الماوس، وعادة؟ إذا قمت بالنقر فوق واسحب؟ نعم؟ بالضبط. خريطة يبدأ في التحرك. حتى تتمكن من نوع من رؤية ما أكثر من هنا، ما هو أكثر من هناك. وكيف تتعامل Google تنفيذ ذلك؟ حسنا، ربما، انهم باستخدام اثنين من هذه الحدث المستمعين، واحدة أن يقول، والاستماع لعلى الماوس down-- ذلك عندما يقوم المستخدم جسديا يدفع له وحة التتبع أو له أو لها الماوس أسفل. وبعد ذلك نحن نبحث عن شيء من هذا القبيل الحركة أو بعض الأحداث الأخرى التي يسمح لنا لالتقاط السحب. في واقع الأمر، السحب هو بالمثل في هذا نقطة نقطة نقطة قائمة من الخيارات الممكنة. ولذلك فإن هذا سيكون قوية طريقة لبدء الاستجابة للمستخدم حتى قبل أن ينقر في الواقع شيء صريح تقديم مثل. ولكن ونحن في طريقنا لتقديم على الموضوعات الزوجين للوصول إلى هناك. ولكن أولا، دعونا الانتقالية بعض الرمز الفعلي. لذلك أنا ذاهب للذهاب قدما وفتح دوم-0، وهو مثال بسيط جدا هنا انه اذا كنت تكبير ببساطة لديه هذا الإدخال هنا بالنسبة لي. وانا ذاهب الى المضي قدما واكتب في "ديفيد" لاسمي وانقر فوق إرسال. وبعد ذلك، وإن كان ذلك النوع من بثمن بخس، وأنا يكون هذا موجه التي دفعها الذي يقول: "مرحبا، ديفيد!" لذلك هذا هو نوع من لدينا مثل "مرحبا، العالم" أن فعلنا لحظة العودة في C و حتى في PHP لأنني حيوي أنتج اسمي. يمكنني القيام به اسم شخص آخر هنا. أنا يمكن ببساطة تغيير هذا، مثل، هانا، انقر فوق إرسال. وبالفعل، فإن التغييرات المنبثقة قليلا. الآن، والنوافذ المنبثقة هي واحدة من معظم الميزات المعنفات على شبكة الإنترنت. في واقع الأمر، مرة أخرى في حاصرات المنبثقة اليوم وجاء في رواج لأنك سيذهب الى بعض website-- ربما place-- مشكوك فيه التي من شأنها ثم فجأة بدء تمتليء الشاشة مع مجموعة كاملة من النوافذ المنبثقة. وحتى هذه القدرة ليطفو على السطح نوافذ أمام المستخدم لم يكن ولا سيما استقبالا جيدا من قبل الإنسانية. ولهذا السبب ترى هذا منع شيء، الذي يجعل من مجرد هذا الشيء كله قبيح. لذلك نحن ذاهبون في حاجة إلى أفضل طريقة للمطالبة المستخدم. ولكن الآن، يبدو أن العمل. حتى مجرد حدسي، ما ويبدو أن يحدث هنا؟ I المضي قدما وانقر إرسال، و ثم شيئا ما يحدث، بشكل واضح. ولكن ما لا يحدث ذلك لم يحدث الأسبوع الماضي أي وقت أنا النقر إرسال؟ ما لم يحدث على الشاشة؟ آسف؟ تحديث الصفحة. وقال إن URL لا تغيير على الإطلاق. قلت كان هذا دوم-0، وأنا ما زلت في دوم-0. عادة، لكنا الحصول على تغيير لبعض الدول الاخرى URL، مثل register.php أو ما شابه ذلك. ولكن حتى عندما رفض هذا الشيء عن طريق النقر فوق موافق، تلاحظ أن URL يبقى وضع تماما. و، في الواقع، إذا أنا قليلا المتشككين، اسمحوا لي أن تفتح كروم. اسمحوا لي أن فتح علامة التبويب الشبكة. وتلاحظ انها فارغة في الوقت الراهن. اسمحوا لي أن المضي قدما في إعادة ماريا. ليس هناك حركة مرور الشبكة على الإطلاق. لذلك ليس هناك HTTP. حتى في الواقع، إذا نظرت إلى شفرة المصدر لthis-- اسمحوا لي أن إغلاق هذه النافذة وانتقل إلى عرض المصدر. مثير للإعجاب. يبدو أن هناك بعض العلامات الجديدة، من بينها النصي. لذلك دعونا نلقي نظرة داخل CS50 IDE بالضبط ما كنت إرسالها إلى المستخدم. حتى هنا is-- دعونا التركيز على HTML فقط. وهنا في النصف السفلي من دوم-0.html. وتلاحظ أنه حصل على اللقب، علامة الرأس، علامة الجسم، علامة النموذج. ولكن ما يقفز خارج لكم في مختلفة، وخاصة إذا لم يسبق لك كتابي أي جافا سكريبت نفسك. اسمحوا لي أن انتقل قليلا إلى هنا. لقد حصلت على المدخلات، إدخال آخر لتقديم. لقد حصلت على الهوية، والذي هو نوع من جديد. لكننا لم نرى هذا مع CSS. ماذا هو بالتأكيد الجديد؟ نعم؟ لطيف. حسنا. ذلك حيث تقول onsubmit، لاحظت ما يبدو أن يتبع. هذا هو سمة في HTML التسميات. قيمتها هذه السلسلة نقلت هنا. وهذا يبدو قليلا غريبة للوهلة الأولى. انها ليست HTML. انها ليست CSS. هذا هو، كما قد يتبادر إلى ذهنك، وجافا سكريبت. لذلك يبدو أن في صلب هذا صفحة على شبكة الإنترنت هي وظيفة تسمى تحية. وأنا استنتاج أن فقط لأنها كلمة واحدة، تحية. انها حصلت على paren مفتوحة، paren وثيقة، منقوطة. يبدو وكأنه وظيفة C، يبدو وكأنه وظيفة PHP. والواقع، انه سيكون ل أن تكون وظيفة جافا سكريبت. ثم أعود كاذبة. سوف نعود ل أن في مجرد لحظة. ولكن حيث يتم تعريف هذه الوظيفة؟ حسنا اسمحوا لي أن انتقل إلى أعلى إلى أعلى الملف. وعلى الرغم من انها طابور طويل، انها واضحة نسبيا. اسمحوا لي أن التصغير هنا و التركيز على هذه الخطوط الأربعة. حتى في جافا سكريبت، فقط مثل PHP، أنت فقط ويقول، حرفيا، كلمة "وظيفة" اسم الوظيفة، ثم الأقواس مع أي arguments-- أي حجج في هذه القضية. وليس هناك نوع الإرجاع في جافا سكريبت، تماما مثل PHP. لذلك فمن اكثر مرونة قليلا من C. متعرج مفتوحة، بالقرب متعرج. في صلب جافا سكريبت هو function-- ليس function-- الموصى بها ولكن وظيفة تسمى حالة تأهب هدفه الوحيد في الحياة هو لسحب ما يصل قبيحة جدا أن المطالبة التي رأيناها قبل لحظة. الآن هذا هو نوع من الفم. ما الذي يحدث هنا؟ لذلك دعونا نبدأ ل تسليط الضوء على كل شيء هنا. هذا هو نفس الحجة لتنبيه. وما الذي يحدث؟ هذا يبدو وكأنه سلسلة. واتضح، على عكس PHP وخلافا ل C، لا يهم في جافا سكريبت إذا كنت علامات الاقتباس المفردة أو علامات اقتباس مزدوجة. انهم سوف يكون معادلا. وبصراحة، انها مجرد شعبية في هذه الأيام للمبرمجين جافا سكريبت لتتمكن دائما استخدام علامات الاقتباس المفردة لسبب ما. انها مجرد شيء للقيام به. ولكن يمكننا استخدام علامات الاقتباس المزدوجة، كذلك. حتى زائد هو شخصية جديدة. لكن أولئك منكم الذين فعلوا هذا من قبل، ماذا يعني زائد؟ نعم. سلسلة. لذلك رأينا هذا في PHP. هناك فقط نقطة مشغل في PHP التي وسلسلة سلسلتين معا. كان C ألم في الرقبة للقيام بذلك. نذكر من PSET ستة، الذي كان ألم خاص في الرقبة، سيكون لديك لاستخدام شيء من هذا القبيل strcat بعد تخصيص الذاكرة على المكدس أو كومة. كان عليك أن تقفز من خلال الأطواق فقط لسلسلة سلسلتين. في جافا سكريبت، انها سوبر بسيطة. مجرد استخدام المشغل زائد بينهما. لذلك أبحث مجمع شيء ويبدو أن هذا لأنه في نهاية هذه السلسلة كلها، أنا فقط سلسلة على علامة تعجب. حتى إذا ما ظهرت كانت "مرحبا، ديفيد"، "مرحبا، هانا" "مرحبا ماريا"، وهكذا دواليك، بشكل واضح هذا الشيء المتوسطة بين البلدين يجب أن الإيجابيات تعطيني الوصول إلى ماذا؟ ما في هناك بالتأكيد؟ نعم. ولذا فإنني سوف التظاهر هنا الإجابة على اسمهم، أليس كذلك؟ لذلك برزت أسمائهم حتى في المباراة النهائية نتيجة. فماذا يعني هذا؟ حسنا، لقد اقترحت في وقت سابق من هذا الصورة التي يسمى DOM يوجد هذا العنصر الجذر خاص الطريق حتى أعلى دعت الوثيقة. والآن، اتضح أن يحدث أن يكون متغير عمومي خاص في جافا سكريبت، في صلب وهو مجموعة كاملة من وظائف مفيدة. بين وظائف مفيدة وهي القدرة على الحصول على أي عقدة سليل. تلك المربعات أو المستطيلات أو الحذف هي الليمفاوية فقط في شجرة، إذا جاز التعبير. هكذا اتضح أن صلب كائن مستند جافا سكريبت هي وظيفة، والمعروفة أيضا باسم طريقة، وهذا يسمى getElementById. بناء الجملة من أجل الدعوة وظيفة في جافا سكريبت هذا هو داخل كائن أو المتغير هو فقط مع تدوين نقطة. ورأينا هذا في C ما بناء الجملة البنية. ترى هذا في PSET سبعة، نوع من، نوعا ما، عندما ترى CS50 :: الاستعلام. القولون القولون في PHP شيء آخر طريقة استدعاء دالة هذا داخل بعض وجوه. لكنه الآن في جافا سكريبت، انها مجرد نقطة. وحتى هذه الوظيفة، جيد بما فيه الكفاية، نوع من يقول ما does-- الحصول على عنصر عن الهوية. عنصر هو مجرد اسم آخر للعلامة أو عقدة في DOM. وحتى الحصول على عنصر عن طريق اسم "اسم" يعني this-- هنا هو بلدي HTML. وعلى أساس هذه HTML، ما عقدة أو ما علامة HTML أنا سيكون برمجيا سلم من خلال الدعوة document.getElementById؟ نعم بالضبط. انا ذاهب للحصول على المدخلات العنصر هناك الذين ID هو "اسم". لذلك على وجه التحديد، يمكنك التفكير في هذه الوظيفة، getElementById، كوسيلة لإعطاء دعم مؤشر إلى أن العقدة المحددة في الشجرة. نحن لم يوجه هذا شجرة، لكنه وسيلة للحصول على الوصول إلى ذلك مستطيل أو هذا المستطيل عن طريق تحديد بشكل فريد عبر المعرف الخاص به. الآن، لماذا هذا مفيد؟ حسنا، اتضح أنه بمجرد كنت قد حصلت تلك العقدة، هذا المستطيل من الصورة، تلك العقدة داخل منه، في المقابل، لديها مجموعة كاملة من أزواج قيمة المفتاح-properties-- أو البيانات، واحدة منها تسمى قيمة. لذلك حرفيا، انها نوع من الفم لشرح كل شيء. ولكن في نهاية اليوم، كل هذا يفعله هو تعطيك سلسلة المستخدم كتابتها في في هذا الشكل الهرمي. لكنني لا أحب اثنين من هذه الأشياء. أو بدلا من ذلك، هناك بعض الفضول لا يزال. بدا كل ذلك للعمل. لماذا تعتقد عدت كاذبة بعد استدعاء تحية؟ هذا تبدو قبيحة قليلا، أن لدي بيانين هناك مفصولة بفواصل منقوطة. احزر. إذا أزلت عودة كاذبة، ما قد يحدث، فقط غريزي؟ عذرا، أقول مرة أخرى؟ فتح حفنة من Windows. لذلك قد تكون ربما شيء من هذا القبيل سيحدث. ماذا بعد؟ قد يقدم طلبا أين؟ إلى نفس الصفحة. لذلك، في الواقع، هذا هو ذلك وأقرب الإجابة هنا، على الرغم من، على عكس في الماضي، لقد لا تحديد سمة العمل، والتي عادة ما يتعين علينا القيام به. تبين هناك الافتراضية. إذا لم تقم بتحديد العمل، انها مثل قوله الاقتباس، نهاية الاقتباس أو اسم الملف نفسه، وهو في هذه الحالة سوف يكون مثل دوم-0.html. مجرد نوع من الاستدلال على ذلك، أو بالأحرى ضمنية. وحتى لو كنت لا تفعل هذا، دعونا إشعار. اسمحوا لي أن حفظ هذا. ولقد إزالة عودة كاذبة. اسمحوا لي أن أعود إلى هذا مثال وقوة تحميله. وكنت قد شهدت لي أن أقترح هذا على CS50 مناقشة حفنة من الأوقات. إذا كان أي شيء بالوكالة من أي وقت مضى وغير تقليدي ليست يتصرف المتصفح كما هو متوقع، في كثير من الأحيان عليك أن ترغب في عقد تحويل ومن ثم انقر فوق تحديث. والتي تجبر كل ملف لإعادة تحميل وعدم استخدام ذاكرة التخزين المؤقت المحلية المتصفح أو نسخة حتى الآن، واسمحوا لي أن المضي قدما في فتح بلدي المفتش، علامة التبويب الشبكة. انا ذاهب الى فوق الحفاظ على سجل لأنني لا تريد أن حذف الصفوف مرة واحدة أحصل على نقله في أي مكان آخر. اسمحوا لي أن المضي قدما هنا و اكتب في اندى، انقر فوق إرسال. حسنا. ويبدو كما هو متوقع. تقول "مرحبا، اندى". اسمحوا لي أن انقر فوق موافق. مثير للإعجاب. لاحظ أن الصفحة قد تغيرت، وإن كان إلى الصفحة الأصلية. لاحظ نوع URL للتغيير. وأضافت علامة استفهام، التي عادة ما تكون مؤشرا التي حاولنا تقديم شيء. ثم في الجزء السفلي، أكثر صراحة، هنا هو طلب HTTP الفعلي، التي حصلت على استجابة من 200 أن جلبت لي هنا مرة أخرى. وهذا ليس ما نحن نريد أن نفعل، أليس كذلك؟ لأنني لا أريد إعادة تحميل الصفحة بأكملها. I بدلا يريد العودة كاذبة وذلك لماس كهربائى السلوك الافتراضي للمتصفح، والتي كان، بطبيعة الحال، إلى تقديم الصفحة. لذلك دعونا نلقي نظرة على مثال أفضل بشكل هامشي. هذا هو دوم إصدار واحد. وتلاحظ ما يلي. لا بأس إذا لم يكن لجروك كل من الأسطر من التعليمات البرمجية. ولكن ما هو تختلف اختلافا جوهريا عن هذا التنفيذ؟ سوف تنص على أنه يتصرف في نفسه، يفعل الشيء نفسه. ما من الواضح أنني فعلت بشكل مختلف؟ نعم؟ الحضور: (غير مسموع). DAVID مالان: نعم. بحيث يتم تعريف الدالة differently-- وبعبارة أخرى، غائبة عن النموذج، حتى هناك على خط 7-- أو بدلا من ذلك، خط 8-- لم يعد لا بد لي من السمة onsubmit. في المثال السابق، وكان لي ذلك. ثم كتبت حرفيا قانون بلدي هنا. ثم قلت عودة كاذبة. واذا لم فرك لك بطريقة خاطئة حتى الآن، يجب أن تبدأ بقدر كما، تماما كما في HTML، عندما بدأنا للمشاركة في تختلط عليه مع CSS في سمات نمط، كان فقط للحصول على القليل فوضوي أو تشعر قليلا خاطئ. وبالمثل هنا، إذا البدء في اتخاذ HTML، ثم تلقائيا صوت نزول المطر بعض شفرة جافا سكريبت في وسط سلسلة مقتبسة، انها لن يكون للصيانة جدا. الصحيح؟ انها ليست حتى اضحا في البداية المكان الذي يوجد فيه شفرة جافا سكريبت هو. لذلك سيكون من الرائع حقا كما مبدأ تصميم أفضل، دعونا نحافظ على HTML تماما فصل من جافا سكريبت. حتى أن تفعل ذلك، ما كنا القيام به هنا هو following-- نحن ببساطة استخدام HTML لتوصيف فقط. وذلك في إصدار واحد من هذا، كل لدي هو شكل مع هوية فريدة من نوعها. ثم إلى هنا، وأنا الاستفادة من السمات الخاصة للجافا سكريبت حيث يمكن أن لدي ما هو دعا وظيفة غير معروفة. لذلك تبين أنه إذا أسميه document.getElementById من 'عرض' هذا مثل إعطائي مؤشر ل هذه العقدة في شجرة بلدي، عنصر النموذج، إذا جاز التعبير. الآن، وأنا أعلم تماما من مع العلم قليلا من HTML نحن الآن بعد قراءة بعض على الانترنت إشارة، أن عنصر نموذج يدعم مجموعة كاملة من listeners-- الحدث في بعبارة أخرى، فإن قائمة من الحدث المستمعين الذي رأيناه قبل لحظة. أنا أعرف من قراءة الوثائق أن onsubmit هو حدث صحيح المستمع لعنصر نموذج. مرة واحدة حتى وأنا أعرف أن، انها آمنة بالنسبة لي أن أفعل وfollowing-- الحصول على تلك العقدة من الشجرة، العنصر النموذج، و صل الى ما يسمى ب الملكية onsubmit. وبالتالي فإن نقطة يعني فقط هذا خاصية، مثل قيمة خاصة داخل منه. وما نوع البيانات أنا تعيين، على ما يبدو، لonsubmit، وهو على نحو فعال متغير داخل من تلك العقدة في شجرة؟ انها حقل داخل تلك البنية. ما هو نوع البيانات؟ وظيفة، نعم. هكذا اتضح أن PHP لديه هذا. وعلى الرغم من أننا لا أقول لكم عن ذلك، لديها C أيضا مؤشرات الدالة، و القدرة على تمرير وتخصيص وظائف كما قيم المتغيرات "أنفسهم. ونحن لن إلى التراجع مرة أخرى إلى C. لكنه الآن، اتضح أن على الجانب الأيمن هنا، على الرغم من أنه يبدو قليلا غير تقليدي، وهذا يعني، يا المتصفح، أعطني وظيفة. أنا لا أريد حتى أن يكلف نفسه عناء إعطاء اسما لأنني حرفيا الذهاب لتعيين دعنا نسميها عنوان هذه الوظيفة على الفور إلى onsubmit. وبعبارة أخرى، المتصفح، لا تحتاج لمعرفة ما تسمى هذه الوظيفة. كنت فقط بحاجة الى معرفة حيث هو في الذاكرة. ولذا فإنه يكفي فقط ل لديها علامة المساواة هناك وليس لعناء تسمية هذا، مثل فو أو تحية أو أي كلمة أخرى. والآن هذا هو مجرد شيء الأسلوبية. أنا يمكن أن تتحرك هذه متعرج على the-- السطر التالي sorry-- كما نفعل عادة CS50. ولكن في جافا سكريبت، انها في الواقع شيوعا أسلوبيا للحفاظ على مجرد متعرج، و أول واحد، على أن السطر الأول. لكن فيما بعد، وهناك شيء مثير للاهتمام. أن متعرج مفتوحة فقط ترسم بداية مهمتي. وظيفة الآن متطابقة، إلا أنني قمت تضمنت كاذبة عودة داخل هذه الوظيفة. لأنه يتحول out-- وكنت فقط أعرف هذا من القراءة وdocumentation-- هذا إذا كانت وظيفة التي تقوم بتعيينها إلى معالج onsubmit ترجع كاذبة، المتصفح يعرف فقط ويوافق عدم تقديم النموذج إلى الخادم. اذا عاد صحيحا، فإنه سيقدم إلى خادم لأسباب سنرى هي مفيدة في مجرد لحظة. ثم الفاصلة المنقوطة بعد متعرج هناك فقط يعني انتهيت من تحديد وظيفة. كنت أعرف ماذا ندعو في أقرب وقت كما تسمع التقديم. حسنا. هذا لا يزال يمكن القول نوع من القبيح. ذلك ما يمكن أن نفعله؟ حسنا، اتضح بعد ذلك في الإصدار الثاني، وهو last-- وسنقوم وهلة فقط في هذا. في خطر جعل كان أقبح، اتضح أن هناك مكتبة في العالم دعا مسج. ومسج هو السوبر مكتبة جافا سكريبت شعبية التي تحظى بشعبية حتى أن معظم أي JavaScript-- انها ليست من غير المألوف للناس ليربك مسج مع جافا سكريبت. لماذا ا؟ جافا سكريبت نفسها لديها جدا طرق مطول للقيام things-- document.getElementById، dadadadadada. كنت في نهاية المطاف وجود جدا طوابير طويلة من التعليمات البرمجية. لذلك زميل يدعى جون RESID، الذي يعمل في الواقع لبدء التشغيل حتى في هذه الأيام، وخرج مع هذه المكتبة سنوات قبل أن الكثير من الناس قد ساهمت لودعا مسج أن يتغير بناء الجملة على النحو التالي. وفقط حتى كنت قد رأيت هذا، لأنك سوف دائما نرى هذا في حالة القيام المشروع النهائي على شبكة الإنترنت، هذا من شأنه أن يكون وسيلة ما يعادل تنفيذ هذه المهمة نفسها باستخدام هذه المكتبة الخاصة. الآن، بدلا من ندف وبصرف النظر في مجملها، دعونا ننظر فقط في بعض الأنماط. ويبدو أن هذا الجملة لدينا كم عدد وظائف مجهول أو وظائف المجهولون أو وظائف امدا AKA؟ اثنين، أليس كذلك؟ وأنت تعرف أنه حتى لو كنت لا مريح فائقة مع هذا، فقط من خلال حقيقة أنه يقول ظيفة () مرتين. واتضح أن ما هذا الرمز هو doing-- وسنقوم الرجوع إلى المراجع على الانترنت، في نهاية المطاف، على بعض المساعدة مع هذا. هذا يعني فقط أنه عندما وثيقة جاهزة، المضي قدما وتسجيل الدالة التالية كما يقدم معالج للHTML العنصر الذي هو عرض فكرة فريدة من نوعها. وبعد ذلك، عندما يحدث ذلك، دعوة هذين الخطين من التعليمات البرمجية. وهذا هو، بشكل مأساوي، وأكثر طريقة مطول للقول عودة كاذبة. وذكرنا هذا لمجرد سترى رمز مثل هذا على الانترنت. وانها شيء يمكن أن ينالها. ولكن بدلا من ذلك، نضع في اعتبارنا أن ما هو سيكون شيوعا في جافا سكريبت هو هذا النموذج. وولهذا السبب وتبين لنا أنه في الوقت الراهن. حسنا. ذلك دون مسكن جدا كثيرا على هذا النحو، وكانت هناك أي أسئلة على حتى هذه الأمثلة أو الأفكار الآن؟ حسنا. لذلك دعونا استخدام هذا لشيء مفيد. إنشاء صفحة على شبكة الإنترنت أن يقول عادل مرحبا، فلان وفلان ليس كل ما مثيرة للاهتمام، لا underwhelm. هذا واحد لن تكون جميلة، ولكنه لن يفعل شيئا مفيدا. واسمحوا لي أن أعود إلى بلدي الدليل هنا وفتح، ويقول، شكل 0.html. لذلك أفترض أن هذه هي طالبة صفحة التسجيل الألعاب الجماعية دون أي CSS أو أي شعور التصميم. وأريد أن أذهب إلى الأمام و سجل هنا مع كلمة مرور. وانا ذاهب الى توافق على هذه الشروط والشروط وانقر فوق تسجيل. والآن يقول الموقع: "أنت مسجل! (حسنا، لا حقا). " الذي يبدو أنه يعمل، ولكن اسمحوا لي أن نمضي قدما وقوة تحديث. واسمحوا لي أن أقول، لا، أنت لا تحتاج إلى عنوان بريدي الإلكتروني الفعلي. أو ربما نحن سوف أقول الإلكتروني في هناك. كلمة السر ستكون، مثل، 12345. وبعد ذلك، لمجرد أنا احمق، الآن حان 123456789. وأنا لا أذهب إلى خانة بك. هم. حسنا. لذلك هناك عدة فرص لتحسين هنا. وكما تعلمون، أو سوف نرى في PSET سبعة، والتي يمكنك إرسال code-- وسيكون لديك لكتابة كود في PHP-- للدفاع ضد هذه الأنواع من المستخدم أخطاء لأن المستخدم بشكل واضح لم تتعاون. وقال انه او انها لم يعط لك كل القيم التي يريد أو حتى في شكل ان كنت تريد لهم. لذلك عليك أن ترى في PSET السبع التي أننا يمكن أن يكون بالتأكيد بعض إذا كانت الظروف التي تقول إذا كان عنوان البريد الإلكتروني ليس username@something.edu، نحن يمكن فقط أقول آسف وأعتذر للمستخدم من ذلك بكثير، وكأنك قد يكون في PSET سبعة. أو إن لم تكن قد تأكدت من أنه مربع، تبين في PHP، يمكنك الكشف عن ذلك، جدا. وبالتأكيد إذا كانت كلمات المرور لا تطابق كما هو الحال في register.php لPSET سبعة، يمكنك الكشف عن ذلك. ولكن هذا الألم في الرقبة في ذلك الآن يطلبون لنا أن يذهب كل في طريقه إلى الملقم. وأبلغ المستعمل من الخطأ. وعلى الأقل إلا إذا كنت تستخدم بعض التقنيات مربي الحيوانات، الآن لديهم فوق السهم إلى الخلف. لن يكون لطيفا، مثل الكثير من المواقع اليوم، إذا كان لديك أكثر إلحاحا ردود الفعل، وعلى الفور؟ وبعبارة أخرى، اسمحوا لي أن أذهب إلى الإصدار واحد، والتي سوف يكون هناك أجمل. ولكن لديها هذه الميزة. مالان، 12345، 123456789، وليس الذهاب للتحقق مربع، التسجيل. كلمة المرور غير مطابقة. ذلك على الرغم من هذه منبثق هو ugly-- نحن يمكن أن يحل محل هذا في نهاية المطاف مع شيء من هذا القبيل التمهيد، التي سترى في PSET سبعة هو library-- شعبية جدا فعلت كشف أن كلمات المرور غير متطابقة. حسنا. حسنا، اسمحوا لي أن إصلاح ذلك باسم المستخدم. اسمحوا لي أن تمضي قدما ويقول 12345، 12345. لا يزال عدم التحقق الاتفاق. يجب عليك الموافقة على الأحكام والشروط. اذا لماذا؟ إذا كنا قد افترض مسبقا أن هناك وسيلة، ولقد يطلب منك في PSET سبعة للكشف عن الخطأ شروط مثل هذا من جانب الخادم، لماذا ينبغي لي تهتم به أيضا هذا في جافا سكريبت؟ ما هو حجة في صالح اضافة ما كنت على وشك أن نرى كما some-- هناك تعقيد إضافي. ربما ليس هناك رأسا على عقب. ماذا عساها أن تكون؟ الحضور: (غير مسموع). DAVID مالان: أوه، مثيرة للاهتمام. يستغل المحتملة. على يقين من ذلك، إذا كنت لا يعالج إدخال المستخدم الخاطئ بأن عظيم، ربما انها كل ما هو أفضل إذا كان حتى لا تصل إلى الخادم الخاص بك. وأود أن ابعاد هناك و مثلا، ربما يجب عليك إصلاح كل من هذه المشاكل. ولكن هذا العادلة. ماذا بعد؟ الحضور: (غير مسموع). DAVID مالان: نعم. هذا الرمز، وكما قلنا من قبل، هو فسر على العميل. فإنه لا يكلف نفسه عناء الخادم، مما يعني أنه لا تأثير الحمل على الخادم أو القدرات. والآن، لبعض لي من العمر، هذا أي تأثير هادف لأن لدي مستخدم واحد في الوقت الحالي. ولكن إذا كنت أي موقع حجم لائق، خصوصا أكبر، مثل الفيسبوك، وأكثر يمكنك إبقاء الناس خارج من الخادم الخاص بك كلما كان ذلك أفضل لأن الخادم، بطبيعة الحال، ليس لديها سوى كمية محدودة من ذاكرة الوصول العشوائي، عدد محدود من جيجاهيرتز، عدد محدود من الأشياء يمكن القيام به في وحدة الزمن. حتى إذا كان هناك المزيد من الناس في العالم ضرب الخادم الخاص بك، تسجيل عن طريق الخطأ غير صحيح، فقط، وكذلك إذا كنت يمكن الحفاظ على هذا الحمل خارج الخادم الخاص بك. بالإضافة إلى ذلك، لا سيما على المحمول device-- إذا كنت من أي وقت مضى تسجيل الدخول إلى my.harvard أو NETID ييل أو ما شابه ذلك، هناك هذا الكمون مع الكثير من مواقع من هذا القبيل حيث يستغرق، مثل، لعنة ثانية أو اثنتين في بعض الأحيان. ومن ثم، يا إلهي، إذا أخطأت، ثم لديك لتصل إلى الوراء وإعادة عليه. ولذلك لا يوجد الكمون، وخاصة على اتصالات شبكة الاتصال أبطأ. ولكن جافا سكريبت، ل تشغيله على العميل وليس في حاجة للذهاب ذهابا وإيابا عبر الإنترنت يحتمل أن تكون بطيئة اتصال، يمكنك الحصول على ردود فعل فورية تقريبا. لذلك دعونا ننظر إلى هذا. اسمحوا لي أن تفتح شكل 0 و ننظر إلى HTML هنا. ودعونا نرى ما يحدث. هذا هو شكل الذي العمل هو register.php. أنا فقط باستخدام حصول ذلك أن أتمكن من رؤية URL. ولكن لكلمات السر، وكنا نريد بالتأكيد لتغيير هذا الرد في الواقع. وهنا حقل إدخال نوع النص. وهنا آخر مساهمة حقل من نوع كلمة المرور. هنا هو، إذا كنت لم أر قط، مساهمة من نوع مربع. ولكن لا يوجد جافا سكريبت هنا على الإطلاق. هذا هو مجرد HTML التي يذهب إلى register.php. ولكن في نسخة واحدة، حيث كنت بدأت في الحصول على تلك النوافذ المنبثقة، دعونا نرى ما يحدث بالفعل هنا. في إصدار واحد، ما انا ذاهب الى see-- I أعتقد أنني يمكن أن المماطلة بما فيه الكفاية مع ما يكفي من الكلمات، ولكن أنا نفدت. في الإصدار احدا-- هناك نذهب. في إصدار واحد، لاحظ following-- وليس أفضل تنفيذ، ولكن هذا لقائي الأول. لاحظ أن أقل من شكل، ولدي العلامة النصي. وعلامة النصي تعني، مهلا، متصفح، هنا يأتي بعض التعليمات البرمجية في، عادة، وجافا سكريبت. والآن، لاحظ ما أفعله. على line-- أستطيع بالكاد قراءة it-- خط 32، ويقول: فار form-- حتى تعطي لي متغير يسمى النموذج. ومن ثم الحصول على document.getElementId من "التسجيل". ما هذا؟ حسنا، اسمحوا لي أن الترجيع هنا. وإشعار، آه، أعطى عنصر النموذج فكرة مبهمة ولكن صفية التسجيل. ولذلك فإن هذا يعطيني متغير يتيح لي الفرصة لانتزاع تلك العقدة، ودعا هذا المستطيل في شجرة النموذج. وسائل form.onsubmit، مهلا المتصفح، تسجيل المستمع الحدث في هذا النموذج. وبعبارة أخرى، عندما يكون هذا النموذج المقدمة، تنفيذ التعليمات البرمجية التالية. أنها لا تحتاج إلى اسم ل لماذا تحتاج إلى معرفة اسم؟ كنت فقط بحاجة الى معرفة ما لتنفيذ، إرجو انها وظيفة غير معروفة أو امدا. والتي هي وظيفة كل هذه السطور هنا. والآن، لنكون صادقين، حتى ولو كنت قد لا يكون من أي وقت مضى مكتوبة جافا سكريبت من قبل، انها مجرد C و PHP المنطق. حتى إذا form.email.value == "" - حتى إذا كان حقل البريد الإلكتروني فارغ، الصراخ المستخدم مع "عليك توفير عنوان البريد الإلكتروني الخاص بك ". آخر إذا form.password.value هو صرخة فارغة في المستعمل، "يجب تقديم كلمة المرور الخاصة بك." ومن المثير للاهتمام أكثر منطقيا، إذا form.password.value لا form.confirmation.value-- يساوي أين التأكيد يأتي من؟ اسمحوا لي أن الترجيع. حسنا، دعوت هذا الإدخال المجال هنا كلمة المرور. ودعوت هذا واحد هنا تأكيد. كان يمكن أن يطلق عليه كلمة اثنين أو أي شيء آخر. أنا مجرد التحقق منطقيا أن هذين هي نفسها. Else-- اتضح هذا هو السيد بوول again-- خانة الاختيار قيمة منطقية. لذلك إذا قلت، تعجب point-- إن لم يكن form.agreement.checked، الصراخ المستخدم كذلك. لذلك هذا النحو سترى هو شائعة جدا في جافا سكريبت، حيث لديك هذه الرموز منقط. عليك أن تبدأ مع كائن هنا. الغوص في أعمق إلى ل خاصية مثل كلمة المرور. ثم تحصل على قيمتها الفعلية. ومرة أخرى، وهنا هو الإدخال. هنا هو كلمة السر الاسم. وقيمته مهما كان الإنسان قد كتبته فعلا في. وذلك في كل من هذه الحالات، عدت كاذبة. ولكن إذا لم يكن كذلك، I العودة الحقيقية. وحتى الآن نرى استخدام قاهرة عندما كنت ستعود كاذبة ل وقف ما يفعل المستخدم وجعل له أو لها اختيار اكتب مرة أخرى أو مرة أخرى. خلاف ذلك، والعودة الحقيقية. واسمحوا لي أن أعرض واحدة البديل الآخر من هذا فقط البذور بعض فهمه. حسنا، في الإصدار 2 من هذا، شكل 2-- سأفعل ذلك مع موجة من يده. وهذا هو، بالنسبة لأولئك الفضوليين، النسخة مسج، لأولئك منكم الذين قد يرغبون في اشتغل في تلك المكتبة معينة. ولكن دعونا start-- وأي أسئلة؟ اسمحوا لي أن نتوقف لحظة ل التي كانت سريعة والكثير. ولكن الشيء الجميل هنا هو أن جميع من قانون هي نفسها الى حد كبير. الاشياء الجديدة هو ما هو دوم؟ ما هي هذه المستطيلات؟ ما هي هذه العقد؟ ما هي وظيفة غير معروفة؟ ما هو معالج حدث؟ ولكن لحسن الحظ، فإن معظم هذا هو فقط دائرة كاملة من، مثلا، في الأسبوع الصفر. حسنا. لذا فإن شيئا قليلا أكثر إثارة للاهتمام؟ حسنا، أولا وقبل كل شيء، اسمحوا لي ان اذهب قدما وفتح خرائط جوجل. وستلاحظ أن ل لحظة، على جزء من الثانية، لاحظ ما يحدث عندما I انقر بسرعة كافية. وهذا الاتصال في جامعة هارفارد هو ذلك بسرعة ان كنت لا تلاحظ ذلك حقا. ولكن ماذا نوع من نوع من رؤية إذا كنت فوق، وسحب سريع حقا؟ أولئك منكم مشاهدة على الانترنت، إذا كنت إبطاء هذا إلى سرعة 0.5X، يمكنك ان ترى هذا أفضل. ما كان يحدث فقط قبل أن النقر وجره؟ اسمحوا لي أن أحاول here-- اسمحوا لي أن تفعل شيء آخر، مثل 90210. دعنا نذهب بعيدا. كان ذلك حقا سريعة أيضا. ماذا عن عالم ديزني؟ هناك نذهب. حسنا. ما لم تراه لجزء من الثانية؟ فقط، مثل والساحات، أليس كذلك؟ النائبة عن البلاط؟ حسنا، ما الذي يحدث هنا؟ خرائط جوجل هو مثال جيد ل هذه التكنولوجيا التي دعا AJAX. وهذا هو المكان الذي سوف تبدأ في استخدام جافا سكريبت في سيما طريقة مغرية. مرة في اليوم، كان هناك هذا الموقع يسمى مابكويست. ويجب أن اتخذوا قطة من هذا من 1990s، حيث إذا أردت تبدو هنا على الخريطة، كنت حرفيا فوق السهم في أعلى أن أظهر لكم ساحة مختلفة من الخريطة. إذا أردت أن تحرك اليسار، كنت بالنقر على السهم الذي يظهر لك ساحة مختلفة من الخريطة. وبعض المواقع لا تزال تفعل هذا اليوم. ولكن حتى حصلت مابكويست أفضل، مثل خرائط جوجل. بدلا من ذلك، ما هو أفضل هذه أيام هي المواقع التي تستخدم AJAX. AJAX-- المعروف باسم جافا سكريبت غير المتزامنة وXML، الذي هو مجرد طريقة أخرى للقول تكنولوجيا أو تقنية يسمح للمتصفح باستخدام جافا سكريبت تقديم طلبات HTTP إضافية بعد الصفحة تم تحميل. فماذا يعني هذا؟ حسنا، قد يكون من نوع من مزعج في Gmail اذا في كل مره كنت تريد لفحص البريد الخاص بك، كنت قد ضرب حرفيا تحكم-R أو القيادة-R أو انقر فوق الزر تحديث والرتق الصفحة بأكملها سوف تحديث. الصحيح؟ فإنه ميض أبيض ربما لثانية. هل ترى شريط التقدم غبي. وفقط لمعرفة ما اذا كان لديك جديد البريد الإلكتروني، صفحة ويب كاملة وURL كنت في أن يكون لديك لإعادة تحميل. ولكن هذا ليس ما يحدث في Gmail. الصحيح؟ عندما تحصل على بريد إلكتروني جديد في جوجل، فإن ما يحدث على الشاشة؟ فإنه يظهر لأول مرة، أليس كذلك؟ هو فقط يبدو سحرية كما صف جديد في الجدول. الذي ينطوي في الواقع مبلغ محترم من التعقيد. في الواقع، إذا كنت تفكر في هذه الشجرة، وعلى الرغم من واحد بسيط هنا، Gmail-- وأنا يجب أن ننظر في رمز لتكون sure-- ربما لديه جدول HTML أو ربما قائمة غير مرتبة أنه يجعل كل من البريد الوارد الخاص بك رسائل البريد الإلكتروني في. وحتى إذا كان لك أن تتخيل هذا هناك هي شجرة في الذاكرة عندما كنت استخدام Gmail التي تبدو نوعا من نوع من مثل هذا، عندما يدرك جوجل، أوه، لديك بريد إلكتروني جديد، فإنه لا ترغب في إعادة الشجرة كلها. بدلا من ذلك، انها تريد للعثور على عقدة في الشجرة التي تمثل صندوق البريد الوارد ومجرد إدراج عقدة جديدة. لذلك تشبه الى حد بعيد PSET خمسة، حيث كنت كان لإدراج العقد في جدول التجزئة، وبالمثل يفعل جوجل، عبر شفرة جافا سكريبت التي تمت مكتوب اجتياز هذه الشجرة، ومعرفة أين غير أن وارد جزء من النافذة، ومن ثم إدراج صف جديد. وصف جديد يعني واحد فقط أو أكثر العقد جديدة في شجرة. وهكذا AJAX هي هذه التقنية أن يسمح لهذا بالضبط. مرة واحدة كنت قد زار URL، لكن مجنون لفترة طويلة هو عليه، ومرة واحدة كانت الصفحة تحتوي على تم تحميل، لا يزال بإمكانك الاستيلاء على المزيد من البيانات من internet-- سواء كان ذلك البريد الإلكتروني أو البلاط من map-- الاستيلاء عليها وراء الكواليس ثم أدخله في الصفحة ذلك أن الإنسان لا حقا تضطر إلى الانتظار لذلك. الفيسبوك رسول يعمل بنفس الطريقة. أي عدد من websites-- الآخر أوه، في الواقع، حتى هذا. أعني، وهذا هو، بصراحة، نوع من مزعج ميزة هذه الأيام. إذا أبدأ بالبحث عن هذا cats-- هو نوع من تجربة المستخدم الرهيبة. انها مجرد يبدأ بالبحث عن لي. حسنا ما هو يفعل؟ وURL لم يتغير حقا منذ أن بدأت الكتابة. ولكن ما يحدث في جميع أنحاء wire-- OK، هم مثيرة للاهتمام. ما يحدث في جميع أنحاء سلك هنا فقط يحصل أغرب. حسنا. لذلك اسمحوا لي المضي قدما وتفتيش عنصر وانتقل إلى علامة التبويب الشبكة ومحاولة لجعل هذا التقنية وأقل عن القطط. وأنا اكتب، حرفيا، القطط and-- ما يحدث per-- أنا لن فوق ذلك. حسنا. حتى أسفل هنا، ما الذي يحدث كل مرة كنت اكتب حرف، على ما يبدو؟ مثل، وانخفاض مستوى؟ ما يحدث مع كل تلك الأحرف أنا كتابة على لوحة المفاتيح؟ نعم؟ الحضور: (غير مسموع). DAVID مالان: بالضبط. كل من هذه الشخصيات هو الذهاب لجوجل، في وقت واحد. يبنون سلسلة على الخادم الخاص بهم الذي يمثل كل ما كنت كتبته في حتى الآن. وفي كل مرة أنا نوع حرف آخر، فإنها استخدام الخلطة السرية الخاصة بهم ل بحث خوارزمية ومعرفة، انه يعني هذه الصفحة القط أو هذه الصفحة القط أو ما شابه ذلك؟ حتى في بعض المعنى، فإنه يوفر لي مع تجربة أفضل في أنني لا حتى تحتاج إلى إكمال فكرتي. والواقع، انها مفيدة الشيء، الإكمال التلقائي بشكل عام. إذا الخوارزميات هي جيدة بما فيه الكفاية وإذا تفتيش بلدي واضحة بما فيه الكفاية، ليس لدي لكتابة الكلمة كاملة. انهم ذاهبون ليقول لي ما وأنا في البحث عن الحقيقة. وذلك ما يدعو جوجل الفورية البحث هو فقط باستخدام AJAX، استخدام التعليمات البرمجية التي تتيح لهم طلب محتوى إضافي عبر متصفح الإنترنت وراء الكواليس استخدام هذا لغة جديدة، وجافا سكريبت. لذلك لدينا بضع دقائق غادر. واسمحوا لي أن استدعاء رفيقي وصديقي كولتون على خشبة المسرح، إذ يبدو متعة ولا سيما آخر مرة لإدخال تكنولوجيا أن البعض منكم أبدت اهتماما في المشاريع النهائية. كنا نظن انها تريد ان تكون متعة للتحقيق حتى متطوعا، على الرغم من اليوم لتظهر لك إضافة ل هذا الذي يسمح you-- نعم، رأيت هذه اليد أولا. تأتي على ما يصل. عمل جيد جدا. عمل جيد. انا ذاهب الى المشروع هذا على الشاشة في لحظة فقط. ما اسمك للجميع؟ التعليم للجميع: أنا التعليم للجميع. DAVID مالان: الإيثانول؟ EFA: التعليم للجميع. DAVID مالان: التعليم للجميع؟ EFA: نعم. DAVID مالان: جميل أن نرى لك. حسنا. اسمحوا لي أن الحصول على هذه جاهزة. يأتي على أكثر من وسط مع كولتون هنا. ما الذي كولتون في يديه اليوم هو جهاز التحكم عن بعد. وذلك بدلا من مجرد الوقوف هناك في العالم ثلاثي الأبعاد ونظروا حولهم كما فعل كولتون، والآن يمكن للتعليم للجميع في الواقع يتجول من قبل الصعود، أسفل، يسار، والحق مثل نينتندو أو اكس بوكس ​​تحكم. التعليم للجميع: أنا ذاهب لتسقط من على خشبة المسرح. DAVID مالان: سأفعل الوقوف تقريبا أكثر من هنا. ولكن هذا هو الخطر. حسنا. فهيا، ووضع تلك جرا. اسمحوا لي أن المضي قدما في التبديل إلى الشاشة هنا. اسمحوا لي تحت أضواء خافتة. وكولتون، اسمحوا لي يأتي موقف إلى جانبك. هل أريد أن أشرح هنا مع هيئة التصنيع العسكري ما نقوم به؟ ها أنت ذا. COLTON: متأكد. حتى الآن نحن تحميل ما يصل إلى كوة، أعتقد operating-- غير العاملة النظام، ولكن البرنامج الرئيسي، حيث يمكنك الوصول إلى كافة الألعاب و التطبيقات التي هي في مكتبتك. حتى الآن، فإنه ينبغي أن أقول اضغط على لوحة اللمس للبدء. لوحة اللمس ستكون على الجانب الأيمن من الرأس. فهيا وtap-- التعليم للجميع: يا رجل. DAVID مالان: نعم، هناك تذهب. جودة التعليم للجميع رؤية هي أعلى بكثير من جودة. هذا هو مجرد واي فاي هنا. COLTON: فما كنت تريد الذهاب الى القيام به ونتطلع إلى أعلى يمين الشاشة. نعم، تلك اللعبة في أعلى يمين للغاية. وبعد ذلك عندما كنت اختيار ذلك، اضغط على لوحة اللمس مرة أخرى. أعتقد Dreadhalls لها. ثم هنا هو a-- هنا، اسمحوا لي عقد النظارات الخاصة بك بالنسبة لك. لذلك أنا فقط أعطى له وحدة تحكم. وحتى الآن انه يمكن السيطرة على اللعبة. وقال انه يمكن التحرك وأشياء من هذا القبيل. لذلك يذهب إلى الأمام والبحث عن لقمة. يجب أن تشاهد لعبة جديدة. فهيا ويمكنك أن تفعل ذلك. الآن، يجب أن تكون قادرة على السيطرة نفسك مع وحدة تحكم، فضلا عن، في أقرب وقت لعبة بتحميل هنا. قد يكون هذا مخيف قليلا. التعليم للجميع: الآن أنت تقول لي. حسنا. COLTON: حسنا. لذا تأكد من أنك يمكن أن تتحرك حولها. حسنا. يمكنك التحرك. في احسن الاحوال. حتى إذا نظرتم إلى أسفل، لديك خريطة. خريطة توضح مكان وجودك. يمكنك أن تبحث في جميع أنحاء الغرفة. يمكنك إيقاف تماما حولها. نعم بالضبط. التف حوله. فانظر إلى يسارك. أعتقد أن هناك شيء يمكنك التقاط للبرميل في الغرفة. التعليم للجميع: كيف يمكنني الحصول على خريطة للخروج من الطريق؟ COLTON: ابحث عن. مجرد إلقاء نظرة يصل. حسنا. ها أنت ذا. الآن المضي قدما ومجرد يستدير. حتى ننظر أبعد إلى يسارك. مواصلة التحرك نقاط. الحفاظ على المظهر نقاط. استمر. نعم. EFA: أوه، وبهذه الطريقة. COLTON: نعم. السير نحو ذلك مع وحدة تحكم. ها أنت ذا. الآن يجب أن أقول استلامه. ها أنت ذا. يستلم. حسنا. الآن، دعونا نخرج من هذه الغرفة. والمضي قدما في السير إلى أن الباب. حتى وأنت تسير في hold-- تقول الاستمرار على زر لإجبارها مفتوحة. لذلك يذهب إلى الأمام والاستمرار على زر. نعم، مما اضطرها فتح. حسنا. عمل جيد. نحن الآن خرجت من الغرفة. لذلك أنا ذاهب لمغادرة الباقي إليكم لنرى ما تجد. التعليم للجميع: أنا لا أذهب في غرفة مظلمة. أوه، الانتظار. الآن يجب أن أذهب إلى أسفل القاعة المظلمة؟ OK، انا ذاهب الى الوراء (غير مسموع). COLTON: حسنا. بعض مزيد من العناصر لالتقاط. يبدو بعض القطع النقدية. هذا هو اختيار القفل. حتى اذا وجدت مغلقة الباب، يمكنك استخدام ذلك. هل انت خائف؟ EFA: ليس بعد. COLTON: OK. Pretend-- نعم. مجرد التظاهر كنت يقف في الواقع هناك. وإذا قمت بتشغيل around-- كنت قد حصلت على تعتاد على ذلك. ولكن من المنطقي. DAVID مالان: وبينما تواصل توفير التعليم للجميع ل لعب، لأننا يمكن أن تفعل هذا كل يوم، يمكننا جميعا طرف إصبع القدم هنا. ولكن لدينا اثنين من الأزواج الأخرى، إذا كنت ترغب في الخروج واللعب. خلاف ذلك، وسوف نرى كنت المقبل يوم الاربعاء. شكرا لك المتطوعين لدينا اليوم. [تصفيق] [MUSIC - "ساينفلد THEME"] رئيس 1: حسنا، أنا وضع PL جديد جبل على. أنا فقط غيرت OLPF-- المتحدث 2: فما بالضبط تفعلون؟ رئيس 1: حسنا، كل واحد من these-- هنا، سوف تظهر لك هذا واحد هنا. يمكنك أن ترى هنا. SPEAKER 3: أعتقد أنا جيدة مع هذه. كنت تريد بعض أكثر من ذلك؟ SPEAKER 4: لا، أنا جيدة. (غير مسموع). SPEAKER 3: لا، (غير مسموع). لدينا بعض. رئيس 1: لون مختلف. المتحدث 2: OK. رئيس 1: حتى في نهاية المطاف ما هل هو يضبط اللون of--