1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [أسبوع 9] 2 00:00:02,570 --> 00:00:04,740 [ديفيد J. مالان - جامعة هارفارد] 3 00:00:04,740 --> 00:00:07,170 [هذا CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 حسنا. مرحبا بك مرة أخرى. هذا هو CS50، وهذا هو بداية الأسبوع 9. 5 00:00:12,350 --> 00:00:16,600 اليوم ونحن نركز بشكل خاص على التصميم، لم يعد في سياق C 6 00:00:16,600 --> 00:00:20,010 ولكن في سياق PHP وقليلا من SQL وقليلا من جافا سكريبت، 7 00:00:20,010 --> 00:00:23,730 ولا سيما باتجاه نهاية كل pset 7 و أيضا المشروع النهائي. 8 00:00:23,730 --> 00:00:26,310 في الواقع، إذا كنت في تلك المرحلة في المشروع النهائي 9 00:00:26,310 --> 00:00:30,100 حيث يفترض ابتداء من ساعة أو نحو ذلك قبل كنت على الأقل بدأت تعطي بعض التفكير 10 00:00:30,100 --> 00:00:33,730 إلى المشروع النهائي وكنت أفكر كنت ترغب في التعاون مع 1 أو 2 زملاء الدراسة، 11 00:00:33,730 --> 00:00:36,150 إذا كنت تواجه مشكلة في التواصل مع زملاء الدراسة قال، 12 00:00:36,150 --> 00:00:40,570 لا تتردد في ملء النموذج في cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 فقط ما يطلب لك من أنت، أي نوع من المشروع كنت تفكر في، 14 00:00:42,880 --> 00:00:44,870 المكان الذي تعيش فيه فقط لأسباب لوجستية. 15 00:00:44,870 --> 00:00:49,510 ثم إذا كنت تريد إبقاء العين على مدى الاسبوع المقبل أو نحو ذلك في جدول URL هناك، 16 00:00:49,510 --> 00:00:53,520 ثم يمكنك ان ترى نسخة للقراءة فقط من محرر مستندات Google 17 00:00:53,520 --> 00:00:56,010 التي نحن جمع تلك المعلومات. 18 00:00:56,010 --> 00:00:58,930 حتى إذا كنت تريد أن تعمل مع شخص ما، وبكل الوسائل لا تتردد في التواصل مع الناس 19 00:00:58,930 --> 00:01:00,480 عبر هذه الآلية. 20 00:01:00,480 --> 00:01:02,690 ولكن الغالبية من الناس القيام منفردا العمل. هذا شيء طيب تماما. 21 00:01:02,690 --> 00:01:06,120 لذلك لا نرى أن هذا هو بأي حال من الأحوال إلزاميا. 22 00:01:06,120 --> 00:01:09,680 يوم الجمعة كان مجرد لي وعدد قليل من الفريق هنا، 23 00:01:09,680 --> 00:01:11,100 المسرح فارغة بالنسبة للجزء الاكبر. 24 00:01:11,100 --> 00:01:14,600 وكانت هناك 3 السياح الجلوس هناك، حتى أن كان محرجا قليلا. 25 00:01:14,600 --> 00:01:18,970 ما تحدثنا عنه كان قواعد البيانات وتحدثنا عن pset 7 أ قليلا. 26 00:01:18,970 --> 00:01:22,200 وإذا لم يحدث ذلك للقبض على الفيديو فقط حتى الآن، هذا شيء طيب. 27 00:01:22,200 --> 00:01:26,770 سأحاول أن تحدد أي شروط أننا سنتخذ خلاف ذلك أمرا مفروغا منه 28 00:01:26,770 --> 00:01:28,840 استنادا إلى محاضرة يوم الجمعة. 29 00:01:28,840 --> 00:01:32,550 >> ولكن اليوم ونحن في طريقنا إلى محاولة لتحصل على نقطة 30 00:01:32,550 --> 00:01:34,990 لا مجرد القدرة على فعل شيء مثل pset 7 31 00:01:34,990 --> 00:01:37,360 ولكن فهم حقيقة ما يجري تحت غطاء محرك السيارة، 32 00:01:37,360 --> 00:01:41,910 ولا سيما بعض من تجريدات أن نضع في مكان في الملف functions.php 33 00:01:41,910 --> 00:01:45,780 لجعل حياتكم أسهل قليلا ولكن حتى يتسنى لك فهم في نهاية المطاف 34 00:01:45,780 --> 00:01:48,760 بحيث عندما عجلات التدريب تؤتي ثمارها في غضون بضعة أسابيع ما زال يمكنك البقاء على قيد الحياة 35 00:01:48,760 --> 00:01:53,750 في العالم الحقيقي، والقيام بذلك دون أي إطار الاشياء CS50 تحت لك. 36 00:01:53,750 --> 00:01:57,500 هذا _SESSION دولار، لأولئك منكم الذين هم على دراية 37 00:01:57,500 --> 00:02:01,960 أو الذين اشتعلت بالفعل الفيديو يوم الجمعة، ماذا الدورة فلنفعل 38 00:02:01,960 --> 00:02:04,330 في تطبيق ويب يستند إلى PHP؟ 39 00:02:04,330 --> 00:02:09,650 هذا هو متغير superglobal، مما يعني انها مماثلة للحصول على وسأعين 40 00:02:09,650 --> 00:02:13,970 وعدد قليل من الآخرين، ولكن ما هو هذا الشيء مفيد لل؟ 41 00:02:13,970 --> 00:02:18,320 >> ما هو الدورة استخدامها ل؟ نعم. [طالب] تسجيل الدخول. 42 00:02:18,320 --> 00:02:21,040 آسف؟ [طالب] تسجيل الدخول. تسجيل الدخول. الواقع. 43 00:02:21,040 --> 00:02:25,100 7 نحن في pset كنت تستخدم هذه الدورة superglobal لتسهيل تسجيل الدخول. 44 00:02:25,100 --> 00:02:28,600 وما هو الجميل في هذا هو أن superglobal انها مجموعة النقابي. 45 00:02:28,600 --> 00:02:33,190 مجموعة النقابي، التذكير، هو مجرد مجموعة مؤشرات ولكن الذي لم يعد لدينا لتكون الأرقام 46 00:02:33,190 --> 00:02:37,670 مثل 012. يمكن أن تكون أرقام أو أنها يمكن أن تكون سلاسل من ذلك. 47 00:02:37,670 --> 00:02:44,890 وحتى إذا كنت قد اتجه الى pset 7 ولكن، ولعلكم تذكرون أننا تخزين مفتاح يسمى ID 48 00:02:44,890 --> 00:02:50,330 داخل هذه المجموعة النقابي قيمته هو شيء من هذا القبيل 123 - 49 00:02:50,330 --> 00:02:53,780 أيا كان دخوله حاليا في هوية المستخدم هو. 50 00:02:53,780 --> 00:02:59,470 الدافع لهذا هو أنه حتى بعد قيام المستخدم بزيارة المضيف المحلي 51 00:02:59,470 --> 00:03:02,720 أو موقع الويب الخاص بي بشكل عام ومن ثم تسجيل ما قد في، 52 00:03:02,720 --> 00:03:07,320 حتى إذا لم تقم بالنقر فوق ارتباط أو العودة إلى موقع الويب الخاص بي لمدة 5 دقائق 53 00:03:07,320 --> 00:03:10,730 أو حتى ساعة واحدة أو حتى يوم واحد ولكنها تترك نافذة مفتوحة على المتصفح، 54 00:03:10,730 --> 00:03:14,370 يمكن عن طريق هذا superglobal أتذكر أن يتم تسجيل في. 55 00:03:14,370 --> 00:03:21,140 >> وبعبارة أخرى، فإنه يسمح لي لتخزين أي شيء على المدى الطويل قليلا أريد حول مستخدم. 56 00:03:21,140 --> 00:03:24,390 ويمكنك التفكير في الأمر حقا كما تجسد عربة التسوق. 57 00:03:24,390 --> 00:03:27,740 أماكن مثل الأمازون السماح من الواضح انكم نضع الأمور في عربة التسوق، 58 00:03:27,740 --> 00:03:32,230 ولكن HTTP وبروتوكول أن القوى الويب، عديم الجنسية 59 00:03:32,230 --> 00:03:34,230 بمعنى أن عند زيارة موقع على شبكة الانترنت، 60 00:03:34,230 --> 00:03:37,290 بالنسبة للجزء الأكبر لم يكن لديك اتصال شبكة ثابتة بعض 61 00:03:37,290 --> 00:03:39,270 بين المتصفح والخادم. 62 00:03:39,270 --> 00:03:42,190 بمجرد لقد قمت بتحميل ملفات JPEG وHTML وملفات GIF وقبل كل شيء، أن 63 00:03:42,190 --> 00:03:48,200 الاتصال يذهب بعيدا وعليك نسخة من HTML وwhatnot من الخادم. 64 00:03:48,200 --> 00:03:53,000 ولكن إذا كان الملقم يريد أن يتذكر شيئا عنك، 65 00:03:53,000 --> 00:03:57,580 يقع العبء على الملقم لتسجيل تلك المعلومات بالفعل. 66 00:03:57,580 --> 00:04:00,130 وحتى تتمكن مبرمج الذين لديهم السيطرة على الخادم 67 00:04:00,130 --> 00:04:04,400 يمكن وضع أي شيء تريده معظم داخل مجموعة هذه النقابي superglobal 68 00:04:04,400 --> 00:04:06,850 وسوف يكون هناك في المرة القادمة المستخدم يعود، 69 00:04:06,850 --> 00:04:12,070 سواء كان ذلك دقيقة أو حتى أيام في وقت لاحق، إلا إذا كانوا إغلاق نافذة المتصفح الخاصة بهم، 70 00:04:12,070 --> 00:04:14,360 في الدورة التي يختفي نقطة. 71 00:04:14,360 --> 00:04:17,779 لذلك فمن التخزين المؤقتة، فمن غير الثابتة، والتي من المفترض أن تذهب بعيدا 72 00:04:17,779 --> 00:04:22,360 بمجرد إغلاق المستخدم المستعرض الخاص بهم - لا أن مجرد علامة التبويب، في كثير من الأحيان المتصفح بأكمله، 73 00:04:22,360 --> 00:04:24,930 وبالتالي تسجيل فعال للمستخدم بها. 74 00:04:24,930 --> 00:04:28,000 فكيف يتم هذا الشيء في الواقع تنفيذها؟ 75 00:04:28,000 --> 00:04:31,360 دعونا نلقي نظرة سريعة على مثال بسيط نحن ننظر في يوم الجمعة. 76 00:04:31,360 --> 00:04:33,340 بالنسبة لأولئك غير مألوف، كان بسيطا مثل هذا. 77 00:04:33,340 --> 00:04:35,910 هذه هي صفحة ويب هدفه الوحيد في الحياة هو أن تقول لي 78 00:04:35,910 --> 00:04:38,000 كم عدد المرات التي زرت هذه الصفحة. 79 00:04:38,000 --> 00:04:41,670 هذه هي المرة الأولى هنا يوم الاثنين ان زرت عليه، لذلك يقول 0 مرة. 80 00:04:41,670 --> 00:04:46,940 >> ولكن إذا كنت بدء إعادة هذه الصفحة، تقول 1 مرة، 2، 3، 4، 5، 81 00:04:46,940 --> 00:04:49,800 وسيكون هذا في نهاية المطاف تبقي فقط على العد حتى يصل، حتى، حتى يصل 82 00:04:49,800 --> 00:04:53,130 في كل مرة كنت فوق تحديث الواقع عليه. 83 00:04:53,130 --> 00:04:58,830 فكيف هو هذا العمل؟ اسمحوا لي أن انتقل من هذا الملف داخل دعا counter.php. 84 00:04:58,830 --> 00:05:02,490 الجزء العلوي من كل ذلك هو تعليق الأزرق، ولكن الجزء المثير للاهتمام هنا. 85 00:05:02,490 --> 00:05:06,670 على خط 13 ونحن نسمي هذا session_start وظيفة، 86 00:05:06,670 --> 00:05:09,600 وهذا هو حرفيا كل ما عليك القيام به إذا كنت تريد أن يكون الوصول 87 00:05:09,600 --> 00:05:13,610 لهذا دعا superglobal خاص دولار _SESSION. 88 00:05:13,610 --> 00:05:17,430 أن يجعل كل ذلك ممكنا، وسنرى في لحظة كيف أن كل شيء ممكن. 89 00:05:17,430 --> 00:05:20,350 في 16 خط إشعار ما أفعله. 90 00:05:20,350 --> 00:05:25,960 إذا كان مفتاح، ودعا مكافحة - وبعبارة أخرى، فإن القيمة الرئيسية - "مكافحة" 91 00:05:25,960 --> 00:05:32,310 يوجد داخل هذه المجموعة تسمى الدورة، ثم ماذا أفعل معها في خط أدناه؟ 92 00:05:32,310 --> 00:05:36,650 ما هو السلالة 18 تفعل؟ 93 00:05:36,650 --> 00:05:40,360 >> [رد الطالب غير مسموع] ما هذا؟ [طالب] تخزين القيمة. جيدة. 94 00:05:40,360 --> 00:05:45,800 انها تخزين قيمة هذا في الدورة في الوقت الحالي في متغير مؤقت جديد المحلية، 95 00:05:45,800 --> 00:05:48,250 $ العداد في جميع صغيرة. 96 00:05:48,250 --> 00:05:50,770 تلاحظ أن يجري بالفعل PHP قليلا كسول هنا. 97 00:05:50,770 --> 00:05:55,550 تلاحظ أننا لا نملك أي ذكر لكثافة العمليات أو تعويم أو سلسلة أو أي شيء من هذا القبيل 98 00:05:55,550 --> 00:06:00,480 لأن يتم كتابتها ضعيفة PHP، حيث لم يكن لديك لتحديد نوع متغير، 99 00:06:00,480 --> 00:06:03,310 وهنا في هذه الحالة أنا لم أعلن حتى الآن. 100 00:06:03,310 --> 00:06:08,980 أنا معلنا أنه داخل هذه الأقواس المتعرجة وعلى عكس C، وهذا هو في الواقع ما يرام. 101 00:06:08,980 --> 00:06:13,800 بغض النظر عن مدى تداخل عميق إعلان متغير هو في PHP - 102 00:06:13,800 --> 00:06:16,650 داخل متعرج، داخل متعرج وما شابه ذلك - 103 00:06:16,650 --> 00:06:21,230 فإنه في تلك اللحظة في الوقت المناسب وجود للفترة المتبقية من البرنامج، 104 00:06:21,230 --> 00:06:22,680 للأفضل أو للأسوأ. 105 00:06:22,680 --> 00:06:26,930 حتى يصبح على الفور العالمية بمجرد تحديد ذلك كما نقوم به هنا. 106 00:06:26,930 --> 00:06:31,620 >> وإلا، إذا أنا لا أجد أن هناك أي شيء في superglobal الدورة، 107 00:06:31,620 --> 00:06:34,680 أنا على ما يبدو تهيئة هذا العداد إلى 0 متغير، 108 00:06:34,680 --> 00:06:37,580 وبالتالي افتراض فقط للمستخدم لم يكن هنا من قبل. 109 00:06:37,580 --> 00:06:40,030 ثم وهذا بالطبع هو تزايد العداد كيف؟ 110 00:06:40,030 --> 00:06:44,480 أنا استكمال القيمة التي هو داخل هذه مجموعة النقابي 111 00:06:44,480 --> 00:06:49,530 من خلال تحديد ذلك تساوي كل ما العداد حاليا + 1. 112 00:06:49,530 --> 00:06:53,520 إذا كنت انتقل لأسفل هنا إلى HTML من الصفحة، انها في الواقع بسيط جدا. 113 00:06:53,520 --> 00:06:58,920 و، كل ما لدي في الجسم من هذه الصفحة "قد زار هذا الموقع يمكنك مرات كذا ونحو ذلك." 114 00:06:58,920 --> 00:07:00,350 وهذا هو بناء PHP. 115 00:07:00,350 --> 00:07:06,080 إذا كنت تفعل <؟ =، وهذا هو ما يعادل نحو فعال إلى ما وظيفة؟ 116 00:07:07,920 --> 00:07:12,600 انها حقا أن يعادل شيء من هذا القبيل printf، الذي رأيناه مرات عديدة في C، 117 00:07:12,600 --> 00:07:15,940 على الرغم من أن كما كنت قد تعرف بالفعل من المواصفات في pset 7، 118 00:07:15,940 --> 00:07:20,160 الطباعة أيضا وظيفة فقط التي تطبع شيء، أنه لا يستخدم في الواقع رموز تنسيق، 119 00:07:20,160 --> 00:07:23,270 ويمكنك أن تقول في الواقع صدى أيضا. 120 00:07:23,270 --> 00:07:27,460 انهم جميعا من أي وقت مضى حتى قليلا مختلفة على الرغم من أن الأثر الصافي هو في نهاية المطاف نفسه. 121 00:07:27,460 --> 00:07:31,270 حتى هذا الاستخدام للعلامة يساوي هو مجرد نوع من طريقة أنيقة للقيام بذلك 122 00:07:31,270 --> 00:07:34,910 أكثر وضوحا من قد يكون الأمر خلاف ذلك قادرة على. 123 00:07:34,910 --> 00:07:38,370 ذلك أن جميع هذا الموقع لا. فإنه يطبع من قيمة العداد. 124 00:07:38,370 --> 00:07:40,550 كيف يتم كل هذا يحدث بالفعل؟ 125 00:07:40,550 --> 00:07:43,250 ولعلكم تذكرون في الأسبوع أو قبل ذلك بدأنا تبحث تحت غطاء محرك السيارة 126 00:07:43,250 --> 00:07:47,910 في صفحة ويب كيف يعمل باستخدام علامة التبويب هذه المفتش. 127 00:07:47,910 --> 00:07:51,900 >> الكروم لديه هذه النسخة في كل من ماك، نسخة ويندوز، وحتى نسخة لينكس، 128 00:07:51,900 --> 00:07:59,510 وفايرفوكس وإنترنت إكسبلورر لديها آليات مماثلة حيث لديك هذا المصحح المدمج في 129 00:07:59,510 --> 00:08:01,400 داخل المتصفح. 130 00:08:01,400 --> 00:08:03,040 دعونا نلقي نظرة على ما يلي. 131 00:08:03,040 --> 00:08:06,960 لدينا مجموعة كاملة من علامات التبويب هنا، ويذكرون أن واحد هو أقصى اليسار عناصر، 132 00:08:06,960 --> 00:08:10,700 وبغض النظر عن مدى godawful في HTML و JavaScript في صفحة، 133 00:08:10,700 --> 00:08:15,710 مع التذكير بأن علامة التبويب عناصر يمكنك التنقل في الواقع HTML هرميا 134 00:08:15,710 --> 00:08:17,050 وجميلة وبدقة. 135 00:08:17,050 --> 00:08:19,370 إذا كان الأمر كذلك كنت في محاولة لمعرفة من موقع على شبكة الانترنت مثل غوغل أو الفيسبوك 136 00:08:19,370 --> 00:08:22,370 أو حقا أي موقع، ندرك أن ربما كنت أفضل حالا 137 00:08:22,370 --> 00:08:26,360 النظر إلى شفرة المصدر بهذه الطريقة بدلا من عرض المصدر الخام، 138 00:08:26,360 --> 00:08:29,580 التي يمكن أن تكون فوضى، كما رأينا وخاصة في الموقع جوجل. 139 00:08:29,580 --> 00:08:32,220 حتى لو كنت فوق علامة التبويب بدلا من ذلك على شبكة هنا، 140 00:08:32,220 --> 00:08:34,830 دعونا نرى ما يحدث عندما أقوم بزيارة هذه الصفحة. 141 00:08:34,830 --> 00:08:38,669 اسمحوا لي أولا مسح ذاكرة التخزين المؤقت الخاصة بي. 142 00:08:38,669 --> 00:08:43,570 انا ذاهب للذهاب إلى إعدادات في كروم ثم انتقل إلى التاريخ 143 00:08:43,570 --> 00:08:46,420 واضح بعد ذلك كل بيانات التصفح. 144 00:08:46,420 --> 00:08:48,170 قد تستخدم لأفعل هذا من أجل أغراض أخرى، [ضحك] 145 00:08:48,170 --> 00:08:51,990 ولكن عندما يتعلق الأمر تطوير مواقع الويب، انها فعلا مفيدة - 146 00:08:51,990 --> 00:08:55,980 إذا كنت تعرف الضحك. [ضحك] 147 00:08:55,980 --> 00:08:59,310 انها في الواقع مفيدة حقا عندما تطوير مواقع الإنترنت لأن الواقع هو 148 00:08:59,310 --> 00:09:04,100 أشياء مثل ملفات تعريف الارتباط والملفات أشياء مثل HTML مؤقتا، مؤقتا ملفات JavaScript 149 00:09:04,100 --> 00:09:06,390 يمكن أن تصبح في الواقع صداعا كبيرا، لأنه إذا لأي سبب من الأسباب 150 00:09:06,390 --> 00:09:11,500 المتصفح تقرر تخزين بعض الملفات وبعد كنت قد أجريت تغييرات على هذا الملف على الملقم 151 00:09:11,500 --> 00:09:14,670 لكن المتصفح لم يدرك حقا أن الملف قد تغير 152 00:09:14,670 --> 00:09:19,060 وبالتالي لا فعلا إعادة تحميل البرنامج حتى عندما تضغط على زر تحديث، 153 00:09:19,060 --> 00:09:23,210 واحدة من الطرق الأكثر مؤكدة النجاح لمجرد التأكد من الخطأ ليست مع التعليمات البرمجية، 154 00:09:23,210 --> 00:09:26,480 انها مع سلوك المتصفح، هو أن يذهب هنا في متصفحك 155 00:09:26,480 --> 00:09:29,950 وامسح فقط كل تاريخ حتى لا يكون هناك أي التباس هذا. 156 00:09:29,950 --> 00:09:33,210 >> ثم إذا كنت تريد حقا أن تكون بجنون العظمة، إنهاء المستعرض، إعادة تشغيله، 157 00:09:33,210 --> 00:09:35,660 ثم تأكد من كل شيء يعمل كما هو متوقع. 158 00:09:35,660 --> 00:09:38,820 لذلك باختصار، مسح ذاكرة التخزين المؤقت هو جيد عند القيام التنمية. 159 00:09:38,820 --> 00:09:40,690 حتى هنا لدينا علامة التبويب شبكة الاتصال. 160 00:09:40,690 --> 00:09:46,020 I سابقا قد زار الموقع 9 مرات، ولكن اسمحوا لي الآن المضي قدما وانقر فوق تحديث. 161 00:09:46,020 --> 00:09:47,500 وأنا تتراجع إلى 0. 162 00:09:47,500 --> 00:09:52,100 دعونا نرى كيف هو الواقع الذي يتم تنفيذه هذا superglobal الدورة. 163 00:09:52,100 --> 00:09:55,990 أنا ذاهب إلى الضغط على طلب HTTP 1 أن تم، 164 00:09:55,990 --> 00:09:58,810 ويتيح هذا الإطار التصحيح لي نظرة من الداخل على ذلك. 165 00:09:58,810 --> 00:10:01,970 هنا أرى مجرد استجابة من الملقم، وهي ليست مثيرة للاهتمام. 166 00:10:01,970 --> 00:10:04,030 لقد رأيت هذا في أي عدد من الطرق. 167 00:10:04,030 --> 00:10:06,350 ولكن ما هي مثيرة للاهتمام من الناحية الفنية الرؤوس. 168 00:10:06,350 --> 00:10:11,770 إذا كنت انزل هنا والتركيز على رؤوس طلب وانقر فوق عرض المصدر، 169 00:10:11,770 --> 00:10:14,400 ما أنا ذاهب لرؤية حرفيا على طلب HTTP 170 00:10:14,400 --> 00:10:17,250 الذي ذهب لتوه من متصفحي إلى الملقم، 171 00:10:17,250 --> 00:10:21,400 الحصول على كونها كلمة المنطوق و، ثم / counter.php كونها اسم الملف 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 كونها مجرد إصدار HTTP التي تستخدم متصفحي. 173 00:10:25,670 --> 00:10:31,070 هذا الخط هنا هو تذكير قليلا من متصفح إلى خادم ما اسم مركز الخدمة 174 00:10:31,070 --> 00:10:33,020 أنه يريد التحدث إليه. 175 00:10:33,020 --> 00:10:38,200 ومن ثم بقية هذا مثير للاهتمام في بعض الأحيان ولكن ليس في الوقت الراهن ذات الصلة. 176 00:10:38,200 --> 00:10:40,090 >> هذا هو مجرد نوع من الفضول. 177 00:10:40,090 --> 00:10:43,530 خفي على الرغم من هذه السلسلة هو، في أي وقت متصفحك يزور موقع على شبكة الانترنت 178 00:10:43,530 --> 00:10:47,110 انها إعلام الخادم ما المتصفح الذي تستخدمه 179 00:10:47,110 --> 00:10:50,040 وما نظام التشغيل الذي تستخدمه وإصدار ما منه. 180 00:10:50,040 --> 00:10:52,650 إذا كان الأمر كذلك كنت قد تساءلت عن كيفية مواقع مثل CNN وwhatnot 181 00:10:52,650 --> 00:10:56,860 تعرف ما هي النسب المئوية من مستخدمي ماك على مستخدمي الانترنت PC،، 182 00:10:56,860 --> 00:11:00,820 IE المستخدمين، والمستخدمين كروم وما شابه ذلك، انها لجميع المتصفحات 183 00:11:00,820 --> 00:11:04,300 يقولون كل موقع واحد هناك ما نحن عليه. 184 00:11:04,300 --> 00:11:07,410 أنه لا يحتوي على معلومات شخصية بالضرورة، 185 00:11:07,410 --> 00:11:13,060 ولكنه اخبار الخادم ما هو عنوان بروتوكول الإنترنت والمتصفح وما كنت تستخدم نظام التشغيل. 186 00:11:13,060 --> 00:11:14,720 ذلك حيث ان هذه المعلومات. 187 00:11:14,720 --> 00:11:19,960 ولكن ما هو أكثر إثارة للاهتمام عندما يتعلق الأمر الآن إلى هذه الدورات هو رأس استجابة. 188 00:11:19,960 --> 00:11:22,530 اسمحوا لي انقر فوق عرض المصدر المقبل للاستجابة. 189 00:11:22,530 --> 00:11:24,590 ما المثير للاهتمام هنا هو عدد قليل من الأشياء. 190 00:11:24,590 --> 00:11:27,580 1، وصلنا مرة أخرى رمز حالة من 200. 191 00:11:27,580 --> 00:11:29,840 نحن لا نرى هذا رمز الحالة لأن ذلك يعني كل شيء على ما يرام. 192 00:11:29,840 --> 00:11:32,920 وهذا يعني حرفيا بخير وعلى النقيض من شيء آخر. 193 00:11:32,920 --> 00:11:36,380 ما هو عدد نرى في بعض الأحيان فهذا أمر سيئ؟ [طالب] 404. 194 00:11:36,380 --> 00:11:39,860 404، لم يتم العثور على الملف، قد تكون عثرة 403 على بالفعل، 195 00:11:39,860 --> 00:11:43,660 المحرم، مما يعني أنك نسيت أن شيئا شمود، على الأرجح. 196 00:11:43,660 --> 00:11:45,190 وهناك حفنة من الآخرين. 197 00:11:45,190 --> 00:11:47,760 >> هنا أسفل، وهذا هو مجنون قليلا. 198 00:11:47,760 --> 00:11:52,340 أنا فقط حقا كتب هذا الملف قبل بضع دقائق من صقه في gedit. 199 00:11:52,340 --> 00:11:57,100 لماذا لم تنتهي هذه الصفحة في عام 1981 قبل كان هناك حقا ويب؟ 200 00:11:58,010 --> 00:12:00,730 ما يحدث هناك؟ 201 00:12:00,730 --> 00:12:04,390 >> [رد الطالب غير مسموع] الطابع الزمني. ولكن لماذا؟ 202 00:12:06,110 --> 00:12:09,120 انها تعسفية إلى حد ما، ولكنها في الواقع مفيدة. 203 00:12:09,120 --> 00:12:15,500 ما هو هذا القول هو لمتصفحي هذا الملف PHP التي طلبتها للتو قد انتهت بالفعل. 204 00:12:15,500 --> 00:12:18,580 في الواقع، انها انتهت قبل 30 عاما. 205 00:12:18,580 --> 00:12:20,260 ولكن ماذا يعني ذلك حقا؟ 206 00:12:20,260 --> 00:12:22,500 بل يعني فقط في المرة التالية يقوم المستخدم بزيارة هذه الصفحة، 207 00:12:22,500 --> 00:12:25,540 سواء عن طريق إعادة كتابة أو عنوان الموقع في شريط العنوان، 208 00:12:25,540 --> 00:12:28,010 تأكد من أن تذهب وجلب نسخة جديدة منه. 209 00:12:28,010 --> 00:12:30,840 هذا هو نوع من مثال على خرق ذاكرة التخزين المؤقت، 210 00:12:30,840 --> 00:12:33,790 كلمة غبي هذا يعني فقط محاولة لثني المتصفحات 211 00:12:33,790 --> 00:12:37,260 من الواقع HTML التخزين المؤقت انه تم ارسال هذا من ملقم 212 00:12:37,260 --> 00:12:41,490 بحيث لا تضغط على زر إعادة التحميل عن طريق الخطأ ونرى بعد ذلك نفس النسخة من الملف. 213 00:12:41,490 --> 00:12:43,730 كنت فعلا تريد الملقم لإرسال نسخة جديدة. 214 00:12:43,730 --> 00:12:47,440 وبالتالي فإن حقيقة أنه عام 1981 يعني فقط أن هذا ما هو اختيار الجهاز 215 00:12:47,440 --> 00:12:50,280 كموعد التعسفي في الماضي. 216 00:12:50,280 --> 00:12:53,380 لكن الخط الحقيقي العصير الآن هذا واحد. 217 00:12:53,380 --> 00:12:57,550 حتى قبل 50 وربما كنت على دراية غامضة مع ملفات تعريف الارتباط. 218 00:12:57,550 --> 00:13:01,820 اعتبارا من الآن، وخاصة بين من هم أقل مريحة أو بين بين، 219 00:13:01,820 --> 00:13:04,120 ما هو ملف تعريف الارتباط في فهم الخاص بك الآن 220 00:13:04,120 --> 00:13:06,980 على الرغم من أننا على وشك أن تجعل فهمك أكثر تقنية؟ 221 00:13:08,150 --> 00:13:10,070 ما هو ملف تعريف الارتباط؟ نعم. 222 00:13:10,070 --> 00:13:13,890 [طالب] معلومات عن المستخدم، مثل إذا كانت قد كتبت اسم المستخدم أو شيء. 223 00:13:13,890 --> 00:13:17,370 >> جيدة. انها معلومات عن المستخدم، سواء كانت قد كتبته في اسم المستخدم الخاصة بهم بالفعل. 224 00:13:17,370 --> 00:13:21,190 الكوكيز هي وسيلة يمكن أن نتذكر حيث ملقمات شيئا عن مستخدم. 225 00:13:21,190 --> 00:13:25,810 وما الكعكة هو حقا هو ملف نصي أو بعض تسلسل بايت 226 00:13:25,810 --> 00:13:28,340 انها زرعت من قبل الملقم التي داخل المتصفح الخاص بك، 227 00:13:28,340 --> 00:13:31,960 وداخل هذا الملف أو بين تلك بايت هو نوع من أنواع المعرف. 228 00:13:31,960 --> 00:13:35,640 ربما انها حرفيا اسم المستخدم الخاص بك، ولكن في كثير من الأحيان هو شيء خفي ذات مظهر أكثر 229 00:13:35,640 --> 00:13:43,700 مثل هذا الشيء هنا - bo8dal3ct وهكذا دواليك - هذه السلسلة الأبجدية الرقمية كبيرة حقا 230 00:13:43,700 --> 00:13:47,050 في الحقيقة كان ذلك يعني مجرد أن يكون معرف فريد بالنسبة لك. 231 00:13:47,050 --> 00:13:49,790 أو يمكنك التفكير في ان هذا النوع من طابع جهة الظاهري. 232 00:13:49,790 --> 00:13:53,020 إذا ذهبت إلى النادي أو بعض متنزه، أن نتذكر أن كنت قد دفعت فعلا 233 00:13:53,020 --> 00:13:55,850 وضعوا ذهب في، ملصقا حمراء صغيرة على يدك من نوع ما، 234 00:13:55,850 --> 00:13:59,270 ويذكر أن الناس في عداد بعد أن كنت قد دفعت بالفعل 235 00:13:59,270 --> 00:14:01,340 ويمكنك أن تأتي وتذهب كما يحلو لك. 236 00:14:01,340 --> 00:14:04,250 ملفات تعريف الارتباط قليلا مماثلة في الروح على ذلك. 237 00:14:04,250 --> 00:14:08,070 أول مرة زرت هذا الموقع، كما فعلت بعد مسح ذاكرة التخزين المؤقت الخاصة بي، 238 00:14:08,070 --> 00:14:11,620 وضع خادم الويب، والأجهزة في هذه الحالة، ختم على يدي 239 00:14:11,620 --> 00:14:15,030 اسمه PHPSESSID، الدورة ID، 240 00:14:15,030 --> 00:14:18,260 قيمتها هي هذه السلسلة الأبجدية الرقمية طويلة حقا. 241 00:14:18,260 --> 00:14:22,470 >> حتى الآن هذا النوع من كتب على يدي بحيث في المرة القادمة أنا ضربت تحميل 242 00:14:22,470 --> 00:14:25,230 أو زيارة هذا يدويا URL في المتصفح، 243 00:14:25,230 --> 00:14:29,230 من متصفحي تعريف HTTP هو الذهاب الى تقديم يد الطابع 244 00:14:29,230 --> 00:14:31,940 مرارا وتكرارا وتكرارا. 245 00:14:31,940 --> 00:14:34,550 حتى على الرغم من أن الملقم لا يعرف بالضرورة من أنا، 246 00:14:34,550 --> 00:14:39,610 أنهم على الأقل يعرفون أنني المستخدم نفسه أو على الأقل، وبشكل أكثر تحديدا، والمتصفح نفسه. 247 00:14:39,610 --> 00:14:45,660 وحتى هذا هو في نهاية المطاف كيفية تنفيذ superglobal الدورة. 248 00:14:45,660 --> 00:14:51,200 خادم ليس لديه فكرة من أنت عندما تقوم بزيارة موقع على شبكة الانترنت للمرة الثانية أو مرة الثالثة 249 00:14:51,200 --> 00:14:53,410 إلا إذا كنت تقديم هذا الطابع اليد. 250 00:14:53,410 --> 00:14:55,530 وبمجرد تقديم هذا الطابع جهة، 251 00:14:55,530 --> 00:14:59,370 خادم الويب يذهب أساسا إلى قاعدة بيانات صغيرة خاصة به 252 00:14:59,370 --> 00:15:06,040 والشيكات، حسنا، لقد رأيت للتو الطابع يد bo8dal3ct المستخدم وهكذا دواليك. 253 00:15:06,040 --> 00:15:09,850 دعني أرى ما هي المعلومات المخزنة ومبرمج 254 00:15:09,850 --> 00:15:12,380 داخل superglobal عن هذا المستخدم، 255 00:15:12,380 --> 00:15:17,000 وثم اسمحوا لي أن تأكد من أن البيانات مرة أخرى داخل دورة superglobal 256 00:15:17,000 --> 00:15:19,830 بحيث يمكن للمبرمج إعادة وصول إلى هذه البيانات 257 00:15:19,830 --> 00:15:23,360 حتى لو تم تعيينها بعض دقائق أو ساعات الماضى. 258 00:15:23,360 --> 00:15:26,150 حتى في غيرها من الكلمات، الكوكيز، والتي حصلت على الراب سيئة لبعض الوقت 259 00:15:26,150 --> 00:15:29,990 بسبب انعدام الأمن في المتصفحات ويمكن أن تنتهك الخصوصية حقا، وهذا كل شيء، 260 00:15:29,990 --> 00:15:31,900 لديهم في الواقع فائدة كبيرة لأن بدونها 261 00:15:31,900 --> 00:15:36,110 كنت باستمرار أن تسجيل الدخول إلى كل صفحة الفيسبوك التي تزورها 262 00:15:36,110 --> 00:15:40,680 أو كل ما تقرأه بريد Gmail الإلكتروني إذا كان المتصفح لا يكون وسيلة للتذكر 263 00:15:40,680 --> 00:15:43,320 لقد كنت أن مصادقة بالفعل. 264 00:15:43,320 --> 00:15:46,640 >> حتى في هذه الطريقة يتم إرسال الكوكيز جيئة وذهابا عبر السلك. 265 00:15:46,640 --> 00:15:52,470 آخر الفضول حول ملفات تعريف الارتباط، خصوصا هنا، هو أن هذا هو نص واضح تماما في. 266 00:15:52,470 --> 00:15:54,930 ليس هناك تشفير يجري هنا على الإطلاق، 267 00:15:54,930 --> 00:15:57,240 وبالفعل أنا باستخدام HTTP في الوقت الراهن. 268 00:15:57,240 --> 00:16:00,890 واحدة من المفضلة لدينا لحظات في CS50، الذي هو الآن 2 منذ سنوات، 269 00:16:00,890 --> 00:16:04,750 وقد جاء في وقت قريب أداة تسمى Firesheep بها. 270 00:16:04,750 --> 00:16:08,320 كان هذا قطعة من البرمجيات الحرة التي تم إجراؤها من قبل الباحث الأمني 271 00:16:08,320 --> 00:16:13,250 على أنها دعوة للاستيقاظ للمجتمع أن أقول فقط كيف تنفذ بوحشية 272 00:16:13,250 --> 00:16:17,900 وكانت آليات المصادقة معينة على الويب. 273 00:16:17,900 --> 00:16:22,880 كذلك لبعض الوقت، وكان الفيسبوك بالكامل تقريبا على HTTP، HTTPS لا. 274 00:16:22,880 --> 00:16:25,640 وحتى لو كان لديك أي فكرة كيف يعمل التشفير، S آمنة 275 00:16:25,640 --> 00:16:27,950 لذلك يعني أن هناك على الأقل بعض التشفير المعنية. 276 00:16:27,950 --> 00:16:30,610 لم تستخدم الفيسبوك لتشفير أسماء المستخدمين وكلمات المرور، 277 00:16:30,610 --> 00:16:33,560 ولكن بمجرد نظرت الخاص الوخزات أو الرسائل أو خلاصتك الأخبار، 278 00:16:33,560 --> 00:16:35,360 كان كل ذلك غير مشفرة. 279 00:16:35,360 --> 00:16:37,870 لذلك كان بريد جوجل حتى عام واحد فقط أو 2 قبل. 280 00:16:37,870 --> 00:16:41,100 أي وقت قمت بتسجيل الدخول في، نعم، استخدموا التشفير الآمن، 281 00:16:41,100 --> 00:16:44,300 ولكن بعد ذلك لم تكن. وربما السبب في ذلك؟ 282 00:16:44,300 --> 00:16:49,210 لماذا لا تستخدم الترميز فقط كل الوقت في حالات الاستخدام مثل هذا؟ 283 00:16:49,210 --> 00:16:53,700 ما هذا؟ أعتقد أنني سمعت شيئا. [طالب] سرعة. 284 00:16:53,700 --> 00:16:56,250 السرعة، أليس كذلك؟ هناك طرق للتغلب على هذه. 285 00:16:56,250 --> 00:16:59,610 ولكن إذا كنت مجرد نوع من التفكير في الامر منطقيا، إذا قمت بتشفير شيء، 286 00:16:59,610 --> 00:17:01,820 ما عليك القيام به على الأقل عمل أكثر من ذلك بقليل. 287 00:17:01,820 --> 00:17:05,460 في pset 2 عند تنفيذها أو قيصر أو الكراك حتى Vigenere، 288 00:17:05,460 --> 00:17:07,760 الطباعة فقط سلسلة من السهل نسبيا. 289 00:17:07,760 --> 00:17:12,040 تشفير ثم طباعة سلسلة الحد الأدنى يتطلب العمل أكثر قليلا. 290 00:17:12,040 --> 00:17:14,520 >>  لمواقع شعبية مثل السوبر جوجل والفيسبوك، 291 00:17:14,520 --> 00:17:18,839 إذا كان لديك لبذل المزيد من العمل لكل مستخدم لكل صفحة ويب واحدة زيارتهم، 292 00:17:18,839 --> 00:17:20,520 ان يستغرق الامر سوى الى مزيد من الوقت CPU. 293 00:17:20,520 --> 00:17:22,920 وإذا كنت بحاجة لمزيد من الوقت CPU، قد تحتاج أكثر من ملقمات، 294 00:17:22,920 --> 00:17:24,270 مما يعني أنك قد تحتاج المزيد من المال. 295 00:17:24,270 --> 00:17:27,579 وكذلك لسنوات عديدة هذا في الحقيقة مجرد ليست أفضل الممارسات. 296 00:17:27,579 --> 00:17:31,440 كان الناس استخدام التشفير SSL فقط عندما يحتاجون إليها. 297 00:17:31,440 --> 00:17:34,960 إلا أنه تبين أنها، وكما مع هذا الزميل Firesheep أدلى سوبر واضحة، 298 00:17:34,960 --> 00:17:37,920 عند الرجال الذين هم حاليا في الفيسبوك الآن - 299 00:17:37,920 --> 00:17:39,880 بدافع الفضول، دعونا نرى إذا كان عليك فيس أعلى. 300 00:17:39,880 --> 00:17:42,620 إذا كنت في الفيسبوك الآن في بعض التبويب، حتى لو كان لا foregrounded ذلك، 301 00:17:42,620 --> 00:17:46,610 هو HTTP URL الخاص بك أو HTTPS؟ 302 00:17:46,610 --> 00:17:50,560 [الطلاب متعددة] S. S؟ [ضحك] 303 00:17:50,560 --> 00:17:55,510 حسنا. أي HTTP؟ فقط 1؟ حسنا. 304 00:17:55,510 --> 00:17:58,940 لذلك يمكن لنا جميعا أن الرجل الإختراق الفيسبوك حساب الآن. 305 00:17:58,940 --> 00:18:04,100 بالنسبة للجزء الأكبر أصبح هذا قيد التشغيل بشكل افتراضي، على الأقل في بعض المواقع. 306 00:18:04,100 --> 00:18:08,120 وقصة قصيرة طويلة، إذا حركة المرور الخاصة بك على شبكة الإنترنت غير مشفرة، 307 00:18:08,120 --> 00:18:12,960 الأمر لم يقتصر على HTML العودة وذهابا عبر WiFis غير مشفرة، 308 00:18:12,960 --> 00:18:16,760 لذلك أشياء مثل ملفات تعريف الارتباط تذهب جيئة وذهابا طوال الهواء 309 00:18:16,760 --> 00:18:18,940 دون أي شكل من أشكال التشفير. 310 00:18:18,940 --> 00:18:23,540 إذا كان الأمر كذلك لديك فقط قليلا من الدهاء البرمجة أو قليلا من المهارات غوغلينغ 311 00:18:23,540 --> 00:18:27,410 للعثور على البرمجيات الحرة التي تفعل ذلك، كل ما عليك القيام به هو الجلوس في ستاربكس 312 00:18:27,410 --> 00:18:30,680 أو الجلوس في المطار حيث هناك عموما غير مشفرة واي فاي 313 00:18:30,680 --> 00:18:36,070 ومجرد مشاهدة لكلمات رئيسية مثل كوكي-SET: PHPSESSID أو 314 00:18:36,070 --> 00:18:39,300 لأنه إذا كان لديك والدهاء التقنية لمجرد مشاهدة واي فاي 315 00:18:39,300 --> 00:18:43,010 لجميع من البتات التي تتدفق طوال الهواء لهذا النمط، 316 00:18:43,010 --> 00:18:50,840 هل يمكن القول بعد ذلك أن الرجل PHPSESSID يحدث أن تكون bo8dal وهكذا دواليك. 317 00:18:50,840 --> 00:18:53,890 وبعد ذلك مرة أخرى إذا كنت بما فيه الكفاية من الناحية الفنية والدهاء أو لديك الأداة المناسبة، 318 00:18:53,890 --> 00:18:58,890 يمكنك ثم إعادة تكوين مجرد متصفح الخاص بك لبدء تقديم هذا الطابع اليد 319 00:18:58,890 --> 00:19:05,030 لFacebook.com، والفيسبوك هو مجرد الذهاب الى افتراض أن كنت ذلك الرجل 320 00:19:05,030 --> 00:19:09,880 لأن كل ما نعرفه هو ليس من أنت ولكن أن يكون لديك هذا معرف فريد. 321 00:19:09,880 --> 00:19:14,650 حتى إذا كنت سرقة معرف فريد أن وتقديمها إلى خادم الويب الخاصة بك و، 322 00:19:14,650 --> 00:19:16,860 وهم في طريقهم فقط لتظهر لك ذلك الشخص تغذية الأخبار 323 00:19:16,860 --> 00:19:18,980 أو ذلك الشخص أو رسائل الوخزات. 324 00:19:18,980 --> 00:19:23,190 >> وأود أن جوجل الآن كيفية تفعيل HTTPS لربما الفيسبوك. 325 00:19:23,190 --> 00:19:25,150 لكنها في الحقيقة بهذه البساطة. 326 00:19:25,150 --> 00:19:27,660 وهكذا قد حصلت على الفيسبوك وجوجل ومثل جيد حقا في هذا، 327 00:19:27,660 --> 00:19:31,870 ولكن إبقاء العين على المزيد من المعلومات عن أي جميع المواقع التي تزورها التي لا تستخدم HTTP 328 00:19:31,870 --> 00:19:35,020 ولها نوع من المعلومات الحساسة عليها، 329 00:19:35,020 --> 00:19:37,490 سواء كان ذلك مالية أو شخصية أو ما شابه ذلك. 330 00:19:37,490 --> 00:19:43,180 لو انهم لا يستخدمون هذا، يمكن من المحتمل جدا أن يكون مثل هذا الكوكيز بكل سهولة سرقتها 331 00:19:43,180 --> 00:19:46,270 ومزورة ثم، وهذا هو بالضبط ما فعلته Firesheep. 332 00:19:46,270 --> 00:19:48,250 هل بالضرورة أن يكون مبرمجا. 333 00:19:48,250 --> 00:19:51,680 وكان كل ما كان علي القيام به لديك اتصال بالإنترنت، وتحميل هذه الأداة المجانية، 334 00:19:51,680 --> 00:19:56,490 وما من شأنه أن القيام به هو تسجيل الدخول، ومن ثم سوف تظهر لك أسماء الفيسبوك 335 00:19:56,490 --> 00:20:00,170 الجميع في ساندرز، خاصة في هذه المظاهرة، من حولك 336 00:20:00,170 --> 00:20:03,260 وكل ما كان علي القيام به وانقر على اسم البرنامج وأتمتة عملية 337 00:20:03,260 --> 00:20:05,970 من استنشاق ملف تعريف الارتباط هذا، عرضه على الفيسبوك كما الخاصة بك، 338 00:20:05,970 --> 00:20:07,990 و، فويلا، وكنت لك بالدخول. 339 00:20:07,990 --> 00:20:11,190 لذلك هذا هو آخر واحد من تلك "لا تفعل ذلك" رسميا. 340 00:20:11,190 --> 00:20:14,660 إذا كان لديك شبكة منزلك وتريد العبث، وبكل الوسائل، 341 00:20:14,660 --> 00:20:17,530 ولكن هذا لا تدرك عبور خط على بيئة الجامعة. 342 00:20:17,530 --> 00:20:20,030 >> لكن الهدف هنا هو في الحقيقة لا أن أؤكد كيفية القيام بذلك 343 00:20:20,030 --> 00:20:22,320 ولكن كيف للدفاع ضد هذه الأنواع من الأشياء. 344 00:20:22,320 --> 00:20:26,180 والحل هنا تافهة، على الرغم من أنها نفسها معيبة، 345 00:20:26,180 --> 00:20:31,360 هو حقا للحد من استخدام أي المواقع التي لا تستخدم HTTPS باستمرار. 346 00:20:31,360 --> 00:20:34,520 حتى مواقع مثل الفيسبوك وجوجل بشكل متزايد خانات 347 00:20:34,520 --> 00:20:36,200 حيث يمكنك الاشتراك في هذا النوع من الشيء، 348 00:20:36,200 --> 00:20:40,000 وكان هذا البنوك لسنوات لأسباب مشابهة. 349 00:20:40,000 --> 00:20:43,580 حتى قليلا من عامل الخوف إذا وسعنا. ولكن هذا كل شيء باختصار. 350 00:20:43,580 --> 00:20:46,420 هذه هي الطريقة التي يتذكر الخادم من أنت. 351 00:20:46,420 --> 00:20:50,760 وبمجرد أن أتذكر من أنت، فإنها يمكن أن تذكر أي شيء عنك 352 00:20:50,760 --> 00:20:56,140 الذي تخزين مبرمج داخل هذا superglobal خاص يسمى $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 وpset 7 نحن نقوم باستخدامه بشكل مسلي فقط أن نتذكر عدد صحيح، 354 00:20:59,750 --> 00:21:02,260 وهي فريدة من نوعها ID للمستخدم الذي يسجل في، 355 00:21:02,260 --> 00:21:05,880 حتى يتسنى لنا معرفة لقد كانت هناك قبل. 356 00:21:05,880 --> 00:21:12,450 ثم أي أسئلة أو ملفات تعريف الارتباط على دورات أو ما شابه ذلك؟ 357 00:21:12,450 --> 00:21:15,130 Firesheep لا يعمل وكذلك بعد الآن، 358 00:21:15,130 --> 00:21:18,310 وعليك ان تضع الكمبيوتر في وضع لمنحل خاص 359 00:21:18,310 --> 00:21:20,700 لذلك كنت فعلا الاستماع لحركة المرور إلى جانب أنفسكم. 360 00:21:20,700 --> 00:21:23,940 حتى إذا كنت تحميله حاليا Firesheep، وتحقيق انها ليست تماما كما سهل 361 00:21:23,940 --> 00:21:26,850 كما كان من قبل للتظاهر. 362 00:21:26,850 --> 00:21:29,070 حسنا. ولا تفعل ذلك في ساندرز. نفعل ذلك في المنزل. 363 00:21:29,070 --> 00:21:30,890 قواعد البيانات. 364 00:21:30,890 --> 00:21:33,580 واحدة من الأشياء فعلنا في 7 pset عمدا جدا 365 00:21:33,580 --> 00:21:37,780 ونقدم لكم جدول نموذج قاعدة البيانات للمستخدمين أن لديه بعض هويات المستعملين، 366 00:21:37,780 --> 00:21:41,020 بعض أسماء المستخدمين، كلمات المرور المشفرة وبعض فيها. 367 00:21:41,020 --> 00:21:44,520 وكما سترى، إذا كنت لم تقم بذلك بالفعل، وأنت تسير لدينا لتغيير الجدول قليلا. 368 00:21:44,520 --> 00:21:47,710 وأنت تسير لدينا لإضافة بعض ذاكرة التخزين المؤقت إلى كل من المستخدمين في هذا الجدول، 369 00:21:47,710 --> 00:21:51,130 وأنت تسير لدينا لإضافة جدول آخر التاريخ، جدول المحافظ، 370 00:21:51,130 --> 00:21:53,310 أو الاتصال ربما شيء آخر. 371 00:21:53,310 --> 00:21:56,740 ولكن من حيث التفكير في كيفية القيام بذلك، دعونا فتح هذه الأداة 372 00:21:56,740 --> 00:22:00,570 التي كنا يوم الجمعة، ولكن إذا غير مألوفة، ويأتي مع الجهاز أداة 373 00:22:00,570 --> 00:22:04,680 دعا بريس الذي هو مكتوب في PHP قبيل الصدفة، 374 00:22:04,680 --> 00:22:07,950 ولكن الغرض منه في الحياة، بعد أن سجل في jharvard هنا مع قرمزي، 375 00:22:07,950 --> 00:22:15,160 هو أن تعطيني وسيلة سهلة الاستخدام لعرض وتغيير قاعدة البيانات الخاصة بي. 376 00:22:15,160 --> 00:22:18,040 >> وتسمى قاعدة البيانات التي أنا على التوالي على الأجهزة الخلية. 377 00:22:18,040 --> 00:22:23,420 هذه هي شعبية جدا، وانها خالية قاعدة بيانات مفتوحة المصدر التي من السهل رائعة للاستخدام، 378 00:22:23,420 --> 00:22:25,620 مع مقدمات خاصة من هذا القبيل. 379 00:22:25,620 --> 00:22:29,350 ما هذه الأداة يسمح لي أن أفعل، على سبيل المثال، هو كزة حول الجداول. 380 00:22:29,350 --> 00:22:30,890 اسمحوا لي أن نمضي قدما ونفعل ذلك. 381 00:22:30,890 --> 00:22:36,580 يوم الجمعة أنشأنا جدول يسمى الطلاب التي كانت بسيطة عظمى. 382 00:22:36,580 --> 00:22:41,680 وكان 3 أعمدة - رقم أو اسم، والبريد الإلكتروني - وأنا إدراجها يدويا زوجين من الصفوف 383 00:22:41,680 --> 00:22:44,420 مثل ديفيد ومايك في هذا المثال بالذات. 384 00:22:44,420 --> 00:22:47,290 دعونا نلقي هذا قليلا كذلك، ودعونا نفترض أننا نريد أن نتذكر أكثر 385 00:22:47,290 --> 00:22:49,660 من مجرد اسم والبريد الإلكتروني حول مستخدم. 386 00:22:49,660 --> 00:22:53,090 اسمحوا لي هنا انقر فوق البنية في الأعلى. 387 00:22:53,090 --> 00:22:55,440 ومرة أخرى، pset مناحي لكم من خلال الخطوات المطلوبة هنا، 388 00:22:55,440 --> 00:22:58,150 لذلك لا تقلق إذا كان بعض من هذه قليلا سريعة. 389 00:22:58,150 --> 00:22:59,690 ثم أنا ذاهب إلى الضغط على هنا. 390 00:22:59,690 --> 00:23:02,270 أنا ذاهب لإضافة بعض الأعمدة بعد عدد من البريد الإلكتروني 391 00:23:02,270 --> 00:23:04,130 لأنني أريد أن أضيف شيئا مثل المنزل. 392 00:23:04,130 --> 00:23:06,640 لقد نسيت لتسجيل منزل الطالب. 393 00:23:06,640 --> 00:23:11,400 اسمحوا لي فوق الانتقال، والآن لدينا هذا الشكل وهذا هو للأسف قليلا واسعة من اليسار إلى اليمين، 394 00:23:11,400 --> 00:23:13,710 ولكن أنا ذاهب إلى استدعاء اسم هذا البيت المجال، 395 00:23:13,710 --> 00:23:16,050 وفوق نوع لدي الآن للاختيار. 396 00:23:16,050 --> 00:23:18,870 لذلك دعونا لها دردشة قصيرة عن أنواع مختلفة في الخلية 397 00:23:18,870 --> 00:23:24,590 لأن في حين يتم كتابتها ضعيفة PHP وانها نوع من يلعب بسرعة وفضفاضة مع أنواع، 398 00:23:24,590 --> 00:23:29,430 في قاعدة بيانات خاصة أنه من المهم فعلا سوبر لاستخدام الكتابة لصالحك 399 00:23:29,430 --> 00:23:33,260 لأنه لا يمكن واحد من الخلية الأشياء ومحركات قواعد البيانات الأخرى القيام به للكم 400 00:23:33,260 --> 00:23:37,910 وتأكد من أنك لا تضع بيانات وهمية في قاعدة البيانات الخاصة بك. 401 00:23:37,910 --> 00:23:41,850 هذا هو نوع من الخطأ مجانا التحقق المتاحة لك. 402 00:23:41,850 --> 00:23:46,250 >> لبيت نحن بالطبع لا تريد أن يكون الباحث، والذي هو قيمة 32 بت في الخلية. 403 00:23:46,250 --> 00:23:49,810 لم نتحدث لفترة وجيزة يوم الجمعة عن VARCHAR، التي تقف على طول متغير حرف. 404 00:23:49,810 --> 00:23:54,720 ما هو هذا النظام؟ هذا يسمح لك بتحديد التي تريد أن تكون هذه سلسلة من نوع ما. 405 00:23:54,720 --> 00:23:56,840 كنت لا أعرف حقا مقدما متى هو عليه، 406 00:23:56,840 --> 00:24:00,100 وهكذا لن نقول تعسفا اسم البيت يمكن أن تكون 255 حرفا، 407 00:24:00,100 --> 00:24:04,190 ولكن هل يمكن أن تذهب مع 64، 32 - أي عدد حقا. 408 00:24:04,190 --> 00:24:10,700 ولكن ميزة استخدام VARCHAR على حقل يسمى شار ما هو؟ 409 00:24:10,700 --> 00:24:15,110 فقط إذا انتقل لأسفل بشكل حدسي أنا هنا، لاحظ هناك شار وهناك VARCHAR. 410 00:24:15,110 --> 00:24:19,520 VARCHAR هو طول متغير شار؛ شار هو طول ثابت شار. 411 00:24:19,520 --> 00:24:24,730 مستندا في ذلك فقط على هذا التعريف، ما هو ميزة او عيب كل من هذه؟ 412 00:24:24,730 --> 00:24:30,490 وبعبارة أخرى، الذي يهتم تمييز، أو لماذا يجب أن يهمك الأمر؟ 413 00:24:31,660 --> 00:24:35,750 >> نعم. [طالب] VARCHAR أكثر مرونة ولكن يستغرق أكثر من الذاكرة. 414 00:24:35,750 --> 00:24:40,730 جيدة. VARCHAR يستغرق أكثر - دعونا نرى. أنا لست متأكدا مما إذا كان سمعت ذلك الحق. 415 00:24:40,730 --> 00:24:42,360 يمكنك أن تقول أن مرة أخرى؟ 416 00:24:42,360 --> 00:24:45,850 [طالب] قلت VARCHAR وربما المزيد من المرونة لكنه يأخذ المزيد من الذاكرة. 417 00:24:45,850 --> 00:24:51,170 مثيرة للاهتمام. حسنا. VARCHAR يعطي ربما كنت أكثر مرونة ولكن يستغرق أكثر من الذاكرة. 418 00:24:51,170 --> 00:24:53,220 هذا الأخير ليس صحيحا بالضرورة. 419 00:24:53,220 --> 00:24:56,290 ذلك يعتمد على السياق، ولكن دعونا نعود إلى ذلك. 420 00:24:56,290 --> 00:25:03,230 >> [رد الطالب غير مسموع] بالضبط. 421 00:25:03,230 --> 00:25:06,900 انها في الواقع الحالة التي سوف تستخدم عادة شار المزيد من الذاكرة 422 00:25:06,900 --> 00:25:10,950 لأن شار، كما هو الحال في C، مثل سلسلة، انها مجموعة من الأحرف. 423 00:25:10,950 --> 00:25:13,690 حتى إذا كنت أقول حقل حرف بطول 255، 424 00:25:13,690 --> 00:25:16,910 قاعدة البيانات هو الذهاب حرفيا لتعطيك 255 حرفا. 425 00:25:16,910 --> 00:25:22,290 وإذا كان المنزل ينتهي به الأمر MATHER و6 أحرف المجموع، 426 00:25:22,290 --> 00:25:25,090 كنت إضاعة أكثر من 200 حرفا. 427 00:25:25,090 --> 00:25:29,640 >> لذلك يستخدم بشكل فعال VARCHAR فقط كما العديد من الشخصيات ما هو ضروري 428 00:25:29,640 --> 00:25:31,590 يصل إلى الحد الأقصى. 429 00:25:31,590 --> 00:25:35,470 ولكن الثمن الذي تدفعه هو في الواقع الأداء، يحتمل. 430 00:25:35,470 --> 00:25:39,740 إذا كنت تعرف مسبقا أن جميع سلاسل الخاص بك سوف تكون 8 أحرف - 431 00:25:39,740 --> 00:25:43,090 على سبيل المثال، افترض أنك تحتاج إلى كلمات مرور بطول 8 - 432 00:25:43,090 --> 00:25:47,350 الجانب العلوي من استخدام حقل شار في بعض الأحيان، ولكن ليس في كثير من الأحيان، 433 00:25:47,350 --> 00:25:51,100 هو تحديد طول ثابت عن شيء مثل كلمة مرور 434 00:25:51,100 --> 00:25:53,300 لأنه الآن يمكن أن تكون قاعدة البيانات حتى أكثر ذكاء. 435 00:25:53,300 --> 00:25:58,160 إذا كان يعلم أن كل ميدان شار، كل سلسلة في عمود هو طول نفس، 436 00:25:58,160 --> 00:26:00,780 تحصل مرة أخرى ميزة من الوصول العشوائي. 437 00:26:00,780 --> 00:26:05,110 يمكنك القفز نحو الحقول بين مختلف شار في الجدول قاعدة البيانات الخاصة بك 438 00:26:05,110 --> 00:26:07,940 أعتقد بسبب وجود قاعدة بيانات والصفوف والأعمدة. 439 00:26:07,940 --> 00:26:11,670 إذا كان الأمر كذلك كل واحد من السلاسل هو طول نفس، 440 00:26:11,670 --> 00:26:17,820 هل تعلم أن أول واحد هو في البايت 0، المرحلة التالية هي في 8 بايت 441 00:26:17,820 --> 00:26:20,240 ثم بعد ذلك 16 و 24 و هكذا دواليك. 442 00:26:20,240 --> 00:26:24,500 حتى إذا كانت كافة سلاسل ذات طول نفس، يمكنك القفز نحو أكثر كفاءة. 443 00:26:24,500 --> 00:26:26,710 لذلك يمكن أن تكون ذات فائدة من حيث الأداء، 444 00:26:26,710 --> 00:26:29,420 ولكن عادة ما لم يكن لديك متسع من معرفة مسبقا، 445 00:26:29,420 --> 00:26:32,170 لذلك VARCHAR هو الطريق للذهاب. 446 00:26:32,170 --> 00:26:36,030 هنا آخر التفاصيل التي واجهت الفيسبوك حتى النهاية. 447 00:26:36,030 --> 00:26:39,670 رجات كبيرة، ونحن نوع من استخدامها بشكل افتراضي في أي وقت نريد عدد، 448 00:26:39,670 --> 00:26:41,750 ولكن هذا فقط 32 بت. 449 00:26:41,750 --> 00:26:46,210 >> وعلى الرغم من الفيسبوك لايوجد جدا 4000000000 للمستخدمين الآن، 450 00:26:46,210 --> 00:26:48,680 هناك بالتأكيد بعض الناس هناك حسابات متعددة مع 451 00:26:48,680 --> 00:26:50,960 أو الحسابات التي تم فتحها ومن ثم أغلقت، 452 00:26:50,960 --> 00:26:55,130 وهكذا أعتقد الفيسبوك نفسها قبل سنوات قليلة كان الانتقال من الباحث 453 00:26:55,130 --> 00:27:00,010 ل، كما تسمى بجدارة، BIGINT، الذي هو مجرد 64 بت بدلا من ذلك. 454 00:27:00,010 --> 00:27:02,230 لذلك هذا هو أيضا قرار تصميم. 455 00:27:02,230 --> 00:27:06,570 هل سيكون محظوظا بشكل مثير للدهشة إذا كان المشروع النهائي يتحول بدء التشغيل، 456 00:27:06,570 --> 00:27:10,010 و4 مليارات و المستخدمين 1، يعطي أو يأخذ، 457 00:27:10,010 --> 00:27:13,200 وفي هذه الحالة قد يكون باستخدام رجات قليلا قصيرة النظر. 458 00:27:13,200 --> 00:27:16,230 لكن في الواقع، لديك المستخدمين الجدول هو على الارجح مع غرامة رجات. 459 00:27:16,230 --> 00:27:19,340 ولكن لشيء من هذا القبيل pset 7، مثل الجدول الخاص بك التاريخ، 460 00:27:19,340 --> 00:27:23,700 قد يكون لديك آلاف أو ملايين من المستخدمين إذا كنت تتطور إلى etrade.com. 461 00:27:23,700 --> 00:27:26,020 ذلك في حين قد لا يكون لديك أكثر من 4 مليار مستخدم، 462 00:27:26,020 --> 00:27:30,070 هؤلاء المستخدمين قد لديك لديها أكثر من 4 مليارات المعاملات مع مرور الوقت - 463 00:27:30,070 --> 00:27:33,200 وتشتري وتبيع والأشياء في تاريخهم. 464 00:27:33,200 --> 00:27:38,090 حتى إذا كنت لا تتوقع - مرة أخرى، وهذه هي المشاكل الجيد أن يكون إذا كان لديك الكثير من هذه البيانات - 465 00:27:38,090 --> 00:27:40,920 إذا كنت لا تتوقع تجاوز حجم البيانات لكثافة العمليات، 466 00:27:40,920 --> 00:27:47,740 الذهاب مع شيء من هذا القبيل BIGINT هو اتجاه لا يكفي في كثير من الأحيان اعتمدت من قبل المصممين 467 00:27:47,740 --> 00:27:49,710 لأن الناس هذا الرقم لن يكون مشكلة، 468 00:27:49,710 --> 00:27:51,930 ولكن من السهل اختيار هذا شيء أكبر من ذلك. 469 00:27:51,930 --> 00:27:55,380 العشري الذي نستخدمه في pset 7، والذي يحدد بدقة الثابتة 470 00:27:55,380 --> 00:27:59,840 حتى تتمكن من تجنب القضايا التي تنطوي على العوامات والزوجي وريال وما شابه ذلك. 471 00:27:59,840 --> 00:28:02,440 >> وبعد ذلك هناك بعض المجالات الأخرى هنا. سنقوم موجة أيدينا عليهم إلى حد ما. 472 00:28:02,440 --> 00:28:07,270 لكن التواريخ والأوقات جميعها في شكل المقررة الخلية، 473 00:28:07,270 --> 00:28:10,830 ويمتاز التمر تخزين كتواريخ وvarchars لا 474 00:28:10,830 --> 00:28:15,730 يعني أن قاعدة البيانات يمكن إعادة صياغة الواقع منهم إلى صيغ مختلفة، 475 00:28:15,730 --> 00:28:18,800 إذا كان شكل أو تنسيق أمريكي أوروبي أو ما شابه ذلك - ولكن تريد ذلك - 476 00:28:18,800 --> 00:28:22,700 أكثر كفاءة مما لو كانت مجرد بعض VARCHAR عام. 477 00:28:22,700 --> 00:28:25,150 وبعد ذلك هناك بعض الثنائية الأخرى، VARBINARY، النقط. 478 00:28:25,150 --> 00:28:28,580 هذه هي كائنات كبيرة ثنائية، ويمكنك أيضا تخزين البيانات الثنائية 479 00:28:28,580 --> 00:28:30,750 وكذلك البيانات في قاعدة بيانات هندسية. 480 00:28:30,750 --> 00:28:34,350 ولكن بالنسبة لنا سوف نهتم عادة حوالي رجات وvarchars وما شابه ذلك. 481 00:28:34,350 --> 00:28:36,230 دعونا حتى الانتهاء من هذا المثال مع بيت. 482 00:28:36,230 --> 00:28:40,030 وسوف منزل انا ذاهب الى القول تعسفا تكون 255 حرف. 483 00:28:40,030 --> 00:28:42,850 ثم القيمة الافتراضية يمكن أن نفعل ذلك. 484 00:28:42,850 --> 00:28:47,440 يمكن افتراضيا نضع الجميع في البيت ماثر، على سبيل المثال. 485 00:28:47,440 --> 00:28:49,710 هذه هي الطريقة التي يمكننا تحديد أن قاعدة البيانات 486 00:28:49,710 --> 00:28:52,460 ينبغي أن تكفل شخص ما لديه دائما قيمة. ولكن سأترك أن يكون. 487 00:28:52,460 --> 00:28:55,270 في الواقع، بالنسبة للأشخاص الذين يعيشون خارج الحرم الجامعي وليس في المنزل، 488 00:28:55,270 --> 00:28:59,590 ربما أنا فعلا تريد لتحديد أن القيمة الافتراضية للمنزل هو NULL، 489 00:28:59,590 --> 00:29:04,890 وبعد ذلك تحتاج إلى التحقق من هذا المربع ونقول للقاعدة لا بأس إذا منزل المستخدم هو NULL. 490 00:29:04,890 --> 00:29:07,270 >> مرة أخرى، هذا هو آخر الآلية الدفاعية يمكنك وضعها في مكان 491 00:29:07,270 --> 00:29:10,590 لذلك أنت لا تملك حتى لوضعها في التعليمات البرمجية PHP بالضرورة. 492 00:29:10,590 --> 00:29:14,630 وقاعدة البيانات ضمان أن الأمور ليست NULL أو. 493 00:29:14,630 --> 00:29:17,310 ثم أخيرا، السمات. 494 00:29:17,310 --> 00:29:18,920 أيا من هذه هي حقا ذات الصلة. 495 00:29:18,920 --> 00:29:22,880 ثنائي، غير موقعة - أيا من تلك ذات الصلة إلى VARCHAR. 496 00:29:22,880 --> 00:29:24,220 مؤشر. 497 00:29:24,220 --> 00:29:27,320 لا أحد يعرف أو يتذكر أو لديك تخمين حول ما هو فهرس 498 00:29:27,320 --> 00:29:29,510 عن شيء مثل المنزل؟ 499 00:29:29,510 --> 00:29:35,240 هذا هو في الواقع أيضا قرارا هاما التصميم وسهلة نسبيا. 500 00:29:35,240 --> 00:29:39,200 بالنسبة لأولئك الذين لم نر حتى الآن أنه يوم الجمعة تحدثنا باختصار عن المفاتيح الأساسية. 501 00:29:39,200 --> 00:29:43,240 في جدول قاعدة بيانات، والمفتاح الأساسي هو حقل أو عمود 502 00:29:43,240 --> 00:29:46,270 الذي يعرف بشكل فريد الصفوف في الجدول. 503 00:29:46,270 --> 00:29:49,150 ذلك في الجدول الحالي لدينا معرفات، لدينا أسماء ورسائل البريد الإلكتروني. 504 00:29:49,150 --> 00:29:52,050 أي من هذه هو أفضل مرشح ليكون المفتاح الأساسي، 505 00:29:52,050 --> 00:29:55,810 دور الذي هو بشكل فريد الصفوف؟ 506 00:29:55,810 --> 00:29:57,530 ربما ID. 507 00:29:57,530 --> 00:29:59,930 يمكن القول، يمكننا أيضا استخدام ما على الرغم من؟ 508 00:29:59,930 --> 00:30:02,860 ربما يمكنك استخدام البريد الإلكتروني لأنه في نظرية انها فريدة من نوعها 509 00:30:02,860 --> 00:30:05,380 إلا إذا تقاسم الناس حسابات البريد الإلكتروني. 510 00:30:05,380 --> 00:30:09,980 ولكن الواقع هو أنه إذا كنت تستخدم معرف رقمي مثل 1234، 511 00:30:09,980 --> 00:30:14,170 هذا فقط 32 بت، في حين عنوان بريد إلكتروني يمكن أن يكون هذا أو هذا كثير بايت بايت كثيرة. 512 00:30:14,170 --> 00:30:16,610 لذلك من حيث الكفاءة لمعرفات فريدة من نوعها، 513 00:30:16,610 --> 00:30:19,270 فإنه يميل إلى أن يكون مجرد الممارسة الجيدة لاستخدام الباحث 514 00:30:19,270 --> 00:30:23,090 حتى لو كان لديك بعض المرشحين السلسلة التي يمكنك استخدامها يمكن القول. 515 00:30:23,090 --> 00:30:26,760 >> عن شيء مثل البيت، هذا لا ينبغي أن يكون مفتاح أساسي 516 00:30:26,760 --> 00:30:30,770 لأن ثم يمكن فقط 1 شخص يعيشون في ماثر و 1 شخص في كورير وما شابه ذلك. 517 00:30:30,770 --> 00:30:32,790 وبالمثل، يجب أن لا تكون فريدة من نوعها. 518 00:30:32,790 --> 00:30:37,830 الفرق بين الابتدائي وفريدة من نوعها هو أنه في حالة جدول أعمالنا الحالية، 519 00:30:37,830 --> 00:30:42,620 وID تكون الأولية ولكن ليس البريد الإلكتروني الأساسي لسبب ذكرنا للتو - 520 00:30:42,620 --> 00:30:44,740 الأداء - ولكن ينبغي أن يكون لا يزال فريدة من نوعها. 521 00:30:44,740 --> 00:30:47,200 حتى تتمكن من فرض تفرد تزال دون المطالبة 522 00:30:47,200 --> 00:30:49,520 انه عظمى الحقل الأساسي الهام. 523 00:30:49,520 --> 00:30:52,610 ولكن هذا هو واحد مفيدة جدا: مؤشر. 524 00:30:52,610 --> 00:30:56,180 إذا كنت تعرف مسبقا للمشروع الخاص بك النهائي، لpset 7، أو بصفة عامة، 525 00:30:56,180 --> 00:30:59,480 أن هذا البيت المجال سيكون شيئا كنت ابحث على الكثير 526 00:30:59,480 --> 00:31:01,910 باستخدام الكلمة تحديد أو شيء آخر، 527 00:31:01,910 --> 00:31:05,180 ثم يمكن أن أقول لكم استباقي قاعدة البيانات للعمل سحره 528 00:31:05,180 --> 00:31:10,510 وتأكد من أنه يخلق في الذاكرة أي هياكل البيانات اللازمة الهوى 529 00:31:10,510 --> 00:31:13,770 لتسريع عمليات البحث على أساس المنزل. 530 00:31:13,770 --> 00:31:17,860 ربما سيكون استخدام جدول التجزئة، وربما سيكون من استخدام قائمة مرتبطة. 531 00:31:17,860 --> 00:31:21,260 وغالبا ما تسمى هيكل في الواقع، فإنه يميل إلى استخدام شجرة، شجرة B-- 532 00:31:21,260 --> 00:31:24,090 لا شجرة ثنائية لكن B-شجرة - وهي شجرة واسعة جدا 533 00:31:24,090 --> 00:31:27,370 قد تشاهد في فئة مثل CS124، الطبقة هياكل البيانات. 534 00:31:27,370 --> 00:31:31,800 ولكن باختصار، لم يكن لديك ما يدعو للقلق أنه عند استخدام البرمجيات الذكية قاعدة البيانات. 535 00:31:31,800 --> 00:31:35,890 يمكن أن أقول لكم فقط، "مؤشر هذا المجال حتى أتمكن من البحث عليها بشكل أكثر كفاءة." 536 00:31:35,890 --> 00:31:40,250 >> إذا تركت هذا الخروج ومحاولة للبحث عن كل شخص في قاعدة البيانات الذي يعيش في ماذر، 537 00:31:40,250 --> 00:31:42,710 من أن تتحول الى البحث الخطي. 538 00:31:42,710 --> 00:31:45,360 وإذا كنت قد حصلت على 6000 الجامعيون جميع الكائنات الحية في بعض المنازل، 539 00:31:45,360 --> 00:31:47,900 وأنت تسير للبحث في الجدول بأكمله للعثور على Matherites، 540 00:31:47,900 --> 00:31:52,190 في حين إذا كنت أقول مؤشر، ونأمل أن يكون شيء قريب من البحث لوغاريتمي 541 00:31:52,190 --> 00:31:54,510 للعثور على تلك الأنواع من الطلاب. 542 00:31:54,510 --> 00:31:56,750 هذا هو مجرد ميزة مجانية لتشغيل، 543 00:31:56,750 --> 00:31:59,530 على الرغم من أنها لا تأتي بسعر قدرا من الفضاء. 544 00:31:59,530 --> 00:32:02,690 وأخيرا، الزيادة تلقائية، AI هذا المجال، 545 00:32:02,690 --> 00:32:05,830 وهو ما يعني فقط اذا كان عدد صحيح وكنت لا تريد لرعاية لزيادة ذلك بنفسك 546 00:32:05,830 --> 00:32:07,570 في كل مرة كان هناك مستخدم جديد، والتحقق من ذلك، 547 00:32:07,570 --> 00:32:11,910 وسوف يحصل كل مستخدم أن يحصل تلقائيا إدراج ID جديد. 548 00:32:11,910 --> 00:32:15,620 دعونا انقر فوق حفظ، والآن دعونا العثور على خطأ مع هذا التصميم. 549 00:32:15,620 --> 00:32:20,200 إذا ذهبت إلى استعراض، لاحظ أن كل من مايك وبيتي هو NULL. 550 00:32:20,200 --> 00:32:22,420 يمكنني استخدام بريس لتحرير هذا يدويا. 551 00:32:22,420 --> 00:32:25,110 يمكنني أن أذهب هنا واكتب في ماذر ثم اضغط Enter، 552 00:32:25,110 --> 00:32:27,740 وتلاحظ الآن الجدول مختلفة. 553 00:32:27,740 --> 00:32:29,270 ولكن لاحظت أنني يمكن أن تفعل شيئا آخر أيضا. 554 00:32:29,270 --> 00:32:33,530 ID داود هو 1، لذا بريس مرة أخرى مجرد أداة إدارية؛ 555 00:32:33,530 --> 00:32:35,970 هذا ليس شيئا المستخدمون أي وقت مضى الذهاب لرؤية. 556 00:32:35,970 --> 00:32:38,810 حتى لو كنت فوق علامة التبويب بدلا SQL تصل إلى أعلى الصفحة - 557 00:32:38,810 --> 00:32:41,450 ومرة أخرى، سوف أعرض لكم pset 7 إلى أكثر من هذه الأسئلة - 558 00:32:41,450 --> 00:32:45,260 لا أستطيع تنفيذ يدويا SQL لغة الاستعلام الهيكلية الأمر 559 00:32:45,260 --> 00:32:56,410 UPDATE SET المستخدمين منزل = 'Pfoho' WHERE ID = 1. 560 00:32:56,410 --> 00:33:00,830 هذه الاستعلامات SQL هي، وهو ما يكفي لطيف، قراءة جميلة من اليسار إلى اليمين. 561 00:33:00,830 --> 00:33:04,350 تحديث جدول المستخدمين، تعيين حقل يسمى بيت لPfoho 562 00:33:04,350 --> 00:33:06,830 حيث ID للمستخدم هو 1. 563 00:33:06,830 --> 00:33:11,480 أو يمكن أن أفعل حتى البريد الإلكتروني حيث = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 ما دام لي الذي يعرف بشكل فريد، والتي تعمل أيضا. 565 00:33:14,860 --> 00:33:18,810 لكن ID يميل إلى أن يكون أداء أعلى، لذلك دعونا نفعل ذلك. 566 00:33:18,810 --> 00:33:22,950 دعونا انقر فوق انتقال. حسنا، lecture.users غير موجود. ما هو خطأي؟ 567 00:33:22,950 --> 00:33:26,220 ما هو جدول يسمى في الواقع هنا؟ 568 00:33:26,220 --> 00:33:28,770 انه دعا الطلاب لمجرد أن ما فعلناه هنا في أعلى اليسار. 569 00:33:28,770 --> 00:33:31,860 انه دعا الطلاب، وليس المستخدمين. انقر فوق الانتقال حتى الآن. 570 00:33:31,860 --> 00:33:34,330 1 الصف تتأثر. استغرق الاستعلام 0.01 ثواني. 571 00:33:34,330 --> 00:33:38,010 إذا كنت انقر فوق استعراض الآن، يعيش حاليا في مالان Pfoho. 572 00:33:38,010 --> 00:33:42,070 ذلك أن آخر طعم SQL، ولكن pset سوف المشي لكم من خلال أكثر قليلا من ذلك. 573 00:33:42,070 --> 00:33:44,710 >> هناك قرار غبي لقد قدمت بالفعل هنا. 574 00:33:44,710 --> 00:33:47,820 أنا أزعم أن هذا هو تصميم قاعدة البيانات غير فعالة 575 00:33:47,820 --> 00:33:51,650 لأن المزيد من الناس أود أن أضيف إلى جدول الطلاب، 576 00:33:51,650 --> 00:33:54,730 أكثر منا I البدء في إضافة، وأكثر من TFS I البدء في إضافة، 577 00:33:54,730 --> 00:33:58,320 ونحن في طريقنا للبدء التكرار لمعرفة ما في هذا الجدول؟ 578 00:34:00,840 --> 00:34:06,020 >> نعم. [طالب] وترى أن ذلك يصب في الطلاب، ونحن نستخدم نفس [غير مسموع] 579 00:34:06,020 --> 00:34:07,360 نفس - يمين، بالضبط. 580 00:34:07,360 --> 00:34:10,400 إذا كان الأمر كذلك 400 شخص يعيشون في ماذر، يعطي أو يأخذ، 581 00:34:10,400 --> 00:34:15,000 في نهاية المطاف هذا الجدول هو الذهاب الى الصفوف دينا 400 التي تقول "ماذر"، "ماذر" 582 00:34:15,000 --> 00:34:16,590 "ماذر"، "ماذر"، "ماذر". 583 00:34:16,590 --> 00:34:19,820 نحن نضيع كل هذه بايت، وهناك زوجين من الوجبات السريعة هناك. 584 00:34:19,820 --> 00:34:23,080 1، هناك حالة الزاوية مجنون اذا كان شخص ما يدفع فيها الكثير من المال 585 00:34:23,080 --> 00:34:25,949 وإعادة تسمية ماثر، لدينا الآن لتغيير جدول أعمالنا قاعدة بيانات كاملة. 586 00:34:25,949 --> 00:34:29,730 هذا لن يحدث في كثير من الأحيان ل، على الرغم من كان يطلق عليه يوما Pfoho شمال بيت قبل 15 عاما، 587 00:34:29,730 --> 00:34:32,310 لذلك يحدث. ولكن هذا ليس كل ما مقنعة. 588 00:34:32,310 --> 00:34:36,000 أكثر إقناعا من حالة الزاوية مثلها في ذلك مثل الحاجة إلى تحديث البيانات في معظم 589 00:34:36,000 --> 00:34:41,150 لقاعدة بيانات يتم تخزين لماذا أنت MATHER مرارا وتكرارا و؟ مرارا وتكرارا 590 00:34:41,150 --> 00:34:43,020 أن الكثير من حرف، 6 أحرف. 591 00:34:43,020 --> 00:34:45,500 لا يمكن أن نفعل أفضل من ذلك، وخاصة بالنسبة للPforzheimer؟ 592 00:34:45,500 --> 00:34:48,320 بالتأكيد يمكننا أن نفعل أفضل من ذلك العديد من الشخصيات. 593 00:34:48,320 --> 00:34:51,790 لماذا لا يربط فقط عن معرف فريد مع كل بيت 594 00:34:51,790 --> 00:34:55,020 والمخزن الذي لكل مستخدم؟ لذلك دعونا نحاول ذلك. 595 00:34:55,020 --> 00:35:00,610 بدلا من مجرد استخدام الجدول الطلاب، اسمحوا لي أن ترتفع إلى قاعدة البيانات محاضرتي هنا حتى في أعلى اليسار. 596 00:35:00,610 --> 00:35:02,600 تلاحظ هنا تقول إنشاء الجدول. 597 00:35:02,600 --> 00:35:04,550 اسمحوا لي أن إنشاء جدول جديد يسمى المنازل. 598 00:35:04,550 --> 00:35:08,880 عدد الأعمدة ستكون 2. دخول. 599 00:35:08,880 --> 00:35:11,200 الآن لقد 2 المجالات. 600 00:35:11,200 --> 00:35:14,600 أنا ذاهب لاستدعاء هذا الاسم، وانها ستكون من VARCHAR طول 255، 601 00:35:14,600 --> 00:35:18,770 >> ولكن هذا التعسفية جدا. اسمحوا لي أن وضع هذا إلى هنا من الاتفاقية. 602 00:35:18,770 --> 00:35:22,840 لذلك وضع معرف هنا. دعونا نعطي كل بيت على معرف فريد. 603 00:35:22,840 --> 00:35:25,360 دعونا نعطي كل بيت اسما. 604 00:35:25,360 --> 00:35:30,980 دعونا تحديد أن المعرف سيكون فقط من خلال الاتفاقية الموقعة لاستخدام أرقام موجبة فقط. 605 00:35:30,980 --> 00:35:35,020 دعونا نمضي قدما واعطاء هذه الزيادة تلقائية لحقل في الوقت الراهن. 606 00:35:35,020 --> 00:35:38,160 وهل نحن بحاجة أي شيء آخر؟ 607 00:35:38,160 --> 00:35:41,010 دعونا نمضي قدما وانقر فوق حفظ. 608 00:35:41,010 --> 00:35:42,480 الآن لدي الجدول الثاني. 609 00:35:42,480 --> 00:35:45,860 تلاحظ بوصفها جانبا هذا هو الأمر SQL خفي قليلا 610 00:35:45,860 --> 00:35:50,280 التي من شأنها أن كان لديك لكتابة يدويا إذا لم تكن تستخدم أداة إدارية مثل بريس. 611 00:35:50,280 --> 00:35:51,990 وهناك سبب آخر لذلك نستخدمها. 612 00:35:51,990 --> 00:35:55,480 انها نوع من رائعة مفيدة تربويا لأنه يمكنك انقر فوق حول 613 00:35:55,480 --> 00:36:01,050 ومعرفة كيفية عمل الأشياء عن طريق نسخ ولصق فقط ما لم بريس. 614 00:36:01,050 --> 00:36:04,150 ولكن الأمر إنشاء الجدول هو ما أعدم فقط، وهنا مائدتي. 615 00:36:04,150 --> 00:36:11,370 اسمحوا لي الآن المضي قدما واستخدام SQL الخام بدلا من تبسيط بالنقر فوق علامة التبويب إدراج. 616 00:36:11,370 --> 00:36:15,040 اسمحوا لي أن تفعل INSERT INTO المنازل، 617 00:36:15,040 --> 00:36:22,230 وانا ذاهب الى نطق الاسم من المنزل وستكون لدينا قيمة "ماذر". 618 00:36:22,230 --> 00:36:24,790 هذا هو. بناء الجملة هذا هو أكثر من ذلك بقليل خفي. 619 00:36:24,790 --> 00:36:26,660 هذا هو اسم من الحقول نريد إدراجه. 620 00:36:26,660 --> 00:36:30,390 هذه هي القيم التي تريد إدراجها في تلك المجالات. اسمحوا لي انقر فوق انتقال. 621 00:36:30,390 --> 00:36:34,410 من 1 الصف المدرج 0.02 ثواني. اسمحوا لي الآن انقر فوق استعراض. 622 00:36:34,410 --> 00:36:42,020 >> إذا كنت تلاحظ انقر فوق استعراض، وهناك ماثر، الذي هو من التشغيل الآلي ID الرقم 1. 623 00:36:42,020 --> 00:36:45,000 اسمحوا لي أن تفعل شيئا آخر واحد. اسمحوا لي أن انتقل إلى علامة التبويب SQL. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO المنازل. اسم منزل وستكون لدينا قيمة Pfoho وهكذا دواليك. 625 00:36:52,950 --> 00:36:56,350 الذهاب. ويمكنني أن تستمر في فعل ذلك مرة أخرى ومرة ​​أخرى ومرة ​​أخرى. 626 00:36:56,350 --> 00:36:59,470 أو إذا كنت تشعر بالملل باستخدام phpMyAdmin، يمكنك استخدام علامة التبويب إدراج فقط 627 00:36:59,470 --> 00:37:01,000 وليس من الضروري أن اكتب SQL الخام. 628 00:37:01,000 --> 00:37:04,690 يمكنك مجرد فرقعة من ذلك بسرعة أكبر من خلال الكتابة، على سبيل المثال، كورير، أدخل، 629 00:37:04,690 --> 00:37:07,610 والآن إذا كنا انقر فوق استعراض، وهناك كورير مع ID من 3. 630 00:37:07,610 --> 00:37:09,920 لذلك هذا هو ما نعنيه طريقة لصناعة السيارات. 631 00:37:09,920 --> 00:37:12,280 ولكن الآن لدينا لإصلاح شيء ما في الطلاب. 632 00:37:12,280 --> 00:37:16,240 يجب على الطلاب في ما نوع بيانات الحقل المنزل يكون الآن؟ 633 00:37:16,240 --> 00:37:19,450 وينبغي أن يكون الباحث، أليس كذلك؟ 634 00:37:19,450 --> 00:37:23,950 لذا فإن الهدف هنا هو لخصم ما، والمعروف باسم تطبيع، جداول 635 00:37:23,950 --> 00:37:27,940 ذلك أننا لا تخزين المعلومات بوفرة في أي من الجداول بلدي. 636 00:37:27,940 --> 00:37:31,130 ومرة أخرى، فإن الطريق كنا هنا هو الذهاب الى القول ماثر، ماذر، 637 00:37:31,130 --> 00:37:34,220 ماثر، ماذر، Pfoho، Pfoho، Pfoho، Pfoho، والتي لا لزوم لها جدا 638 00:37:34,220 --> 00:37:36,240 من حيث التبذير من حرف. 639 00:37:36,240 --> 00:37:40,820 لذلك اسمحوا لي المضي قدما في تغيير هذا عن طريق النقر هيكل، 640 00:37:40,820 --> 00:37:44,620 واسمحوا لي أن تمضي قدما وتحقق خارج الملعب المنزل، انقر فوق تغيير، 641 00:37:44,620 --> 00:37:46,990 والآن انا ذاهب الى تغيير هذا أن يكون الباحث. 642 00:37:46,990 --> 00:37:49,490 255 لم تعد ذات الصلة. 643 00:37:49,490 --> 00:37:54,010 اسمحوا لي أن أقول المضي قدما وهذا شيء طيب اذا كان لا يزال NULL. حفظ. 644 00:37:54,010 --> 00:37:55,870 الآن تم تغيير الجدول الطلاب بنجاح، 645 00:37:55,870 --> 00:37:59,090 وتلاحظ مرة أخرى المنزل هو الباحث. 646 00:37:59,090 --> 00:38:02,220 بوصفها جانبا، تجاهل عدد من الأقواس عندما يتعلق الأمر رجات. 647 00:38:02,220 --> 00:38:03,770 >> هذا هو لأسباب الإرث. 648 00:38:03,770 --> 00:38:06,920 مرة في اليوم عندما كنت لا تملك واجهات، وكان بدلا بيئة سطر الأوامر، 649 00:38:06,920 --> 00:38:11,580 و10 و 11 على التوالي المحدد عدد الحروف التي يجب أن تظهر 650 00:38:11,580 --> 00:38:13,950 في إطار المحطة الطرفية لعرض الواقع المجالات. 651 00:38:13,950 --> 00:38:19,150 أنه ليس لديها ما تفعله مع قليلا من طول الحقل الفعلي، لذلك سنقوم تجاهل ذلك تماما في الوقت الراهن. 652 00:38:19,150 --> 00:38:20,990 الآن يجب أن أذهب إلى هذا الجدول. 653 00:38:20,990 --> 00:38:24,610 وإذا كان ديفيد يعيش في ماذر، يجب ألا يكون البيت 0، 654 00:38:24,610 --> 00:38:27,350 وهو القيمة الافتراضية الباحث الأقرب إلى NULL. 655 00:38:27,350 --> 00:38:29,810 فعليه أن يعيش في منزل 1. 656 00:38:29,810 --> 00:38:36,870 دعنا نقول أن حياة مايك تعسفا في Pfoho، لذلك البيت رقم 2. 657 00:38:36,870 --> 00:38:40,160 الآن مائدتي يبدو قليلا أكثر خفي. 658 00:38:40,160 --> 00:38:41,960 ولكن النظر في الكفاءة. 659 00:38:41,960 --> 00:38:44,860 أنا باستخدام 32 بت الآن فقط لتحديد المنزل، 660 00:38:44,860 --> 00:38:49,530 وهو ما يعني أن هناك فقط 1 تعريف الكنسي ماثر بيتي وPfoho 661 00:38:49,530 --> 00:38:52,090 وهذا في الجدول المنازل. 662 00:38:52,090 --> 00:38:55,880 إذا كان الأمر كذلك أريد أن الانضمام الآن هذه الجداول، التفكير في الأمر بهذه الطريقة. 663 00:38:55,880 --> 00:39:01,980 هنا لدي الطلاب بلدي الجدول، وعلى الجانب الأيمن هناك هذه الأرقام، 1 و 2. 664 00:39:01,980 --> 00:39:04,180 1 هو ماثر، 2 هو Pfoho. 665 00:39:04,180 --> 00:39:08,580 لدينا نفس هذه الأرقام في هذا الجدول الأخرى، وهو ما يسمى المنازل، 666 00:39:08,580 --> 00:39:11,020 1 و 2 و 3 لتلك المنازل 3. 667 00:39:11,020 --> 00:39:14,990 ما نريد ان نفعله الان هو لديها القدرة في التعليمات البرمجية، وPHP SQL، 668 00:39:14,990 --> 00:39:18,800 لفرز من الانضمام هذه الجداول، حيث إذا كانت هذه هي الطلاب وهذه هي المنازل، 669 00:39:18,800 --> 00:39:22,050 نريد أن الجمع بين لهم حتى بطريقة ما أن 1 يصطف مع 1، 670 00:39:22,050 --> 00:39:25,670 2 خطوط مع 2، وحتى نتمكن من معرفة من أين ديفيد 671 00:39:25,670 --> 00:39:28,000 وحيث مايك وحيث يعيش الجميع. 672 00:39:28,000 --> 00:39:31,850 لذلك يمكننا تنفيذ استعلام SQL كما يلي. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM الطلاب تنضم المنازل ON - 674 00:39:40,470 --> 00:39:43,000 والآن ما الحقول التي نريد للانضمام على؟ 675 00:39:43,000 --> 00:39:49,520 حتى students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> A خفي قليلا، ولكن هذا الجزء يعني حرفيا إنشاء جدول جديد مؤقتا 677 00:39:54,150 --> 00:39:56,690 هذا هو نتيجة لانضمام الطلاب والمنازل. 678 00:39:56,690 --> 00:40:00,340 وكيف تريد أن تجمع بين أصابعي نصائح من هنا؟ 679 00:40:00,340 --> 00:40:05,280 تعيين "فيلد هاوس يساوي المنازل 'للطلاب حقل معرف. 680 00:40:05,280 --> 00:40:10,220 وإذا كنت الآن فوق الانتقال، أعود بالضبط ما كنت آمل أن. 681 00:40:10,220 --> 00:40:15,890 ديفيد هو في ماذر، مايك هو في Pfoho، وأرى أيضا معرفات فريدة من نوعها. 682 00:40:15,890 --> 00:40:18,640 ولكن النقطة هي الآن لدي جدول كامل. 683 00:40:18,640 --> 00:40:23,020 وبالتالي فإن الوجبات الجاهزة هنا لpset 7 أو حقا للمشروع النهائي: 684 00:40:23,020 --> 00:40:25,830 إذا وجدت أن كنت تخزين أي معلومة و مكررين الا 685 00:40:25,830 --> 00:40:28,850 سواء كان ذلك في المنزل، وربما انها المدينة والولاية، والرمز البريدي 686 00:40:28,850 --> 00:40:32,050 حيث يمكن عادة ولكن ليس دائما ZIP أن تستخدم معرف فريد، 687 00:40:32,050 --> 00:40:35,810 لا تذهب من خلال ممارسة عقليا وبعد ذلك مع شيء من هذا القبيل بريس 688 00:40:35,810 --> 00:40:40,660 من التخصيم إلى أن بيانات مشتركة خاصة لموقع الويب الخاص بك تحصل على المزيد من استخدام جيد 689 00:40:40,660 --> 00:40:45,440 وأكثر شعبية، وهذا هو كيف يمكنك التأكد من أن كل شيء بسرعة فائقة، 690 00:40:45,440 --> 00:40:51,930 من خلال إعطاء قاعدة البيانات كما تلميحات كثيرة لتفرد ممكن. 691 00:40:51,930 --> 00:40:53,860 كان ذلك كثيرا. 692 00:40:53,860 --> 00:40:59,010 أي أسئلة؟ حسنا. دعونا نأخذ استراحة 5 دقائق بالسيارة هناك وتجميع صفوفهم. 693 00:41:01,600 --> 00:41:03,540 حسنا. 694 00:41:03,540 --> 00:41:08,680 ما يلي هو مثال الذي تم استخدامه قبل بضع سنوات عندما أخذت CS161، 695 00:41:08,680 --> 00:41:10,960 التي هي الطبقة أنظمة التشغيل في الكلية 696 00:41:10,960 --> 00:41:15,160 الذي يعرف لكونها مذهلة، ولكن كمية مجنونة من العمل، 697 00:41:15,160 --> 00:41:19,810 ويركز حقا على بعض المشاكل ذات المستوى المنخفض التي تنشأ في أنظمة التشغيل 698 00:41:19,810 --> 00:41:22,700 وأيضا حتى في العالم من قواعد البيانات. 699 00:41:22,700 --> 00:41:27,040 >> القصة كانت على قيل من قبل أستاذي، مارجو سيلتزر، ذلك العام على النحو التالي. 700 00:41:27,040 --> 00:41:30,990 لنفترض أن لديك ثلاجة النوم قليلا بالنسبة لك وشريك الغرفه 701 00:41:30,990 --> 00:41:34,030 وكلا منكم حقا مثل الحليب. 702 00:41:34,030 --> 00:41:36,360 حتى تتمكن من العودة الى الوطن يوم واحد الطبقة، الحجرة ليست هناك حتى الآن، 703 00:41:36,360 --> 00:41:39,650 فتح الثلاجة، وكنت أدرك، "يا لعنة، ونحن من الحليب". 704 00:41:39,650 --> 00:41:42,070 حتى إغلاق الثلاجة، يمكنك السير عبر الشارع لCVS 705 00:41:42,070 --> 00:41:45,830 وتحصل في طوابير طويلة على نحو متزايد لشراء بعض الحليب في CVS. 706 00:41:45,830 --> 00:41:48,470 وفي الوقت نفسه، الحجرة الخاص يعود للمنزل من له أو لها الدرجة، 707 00:41:48,470 --> 00:41:51,690 يأتي إلى الغرفة، ويفتح الثلاجة يريد حقا بعض الحليب، 708 00:41:51,690 --> 00:41:54,130 يفتح الثلاجة و، "اللعنة، لا الحليب." 709 00:41:54,130 --> 00:41:57,890 حتى انه أو انها تغلق الثلاجة، يمشي خارج الباب، ويذهب إلى برنامج الجسر الأكاديمي 710 00:41:57,890 --> 00:42:00,910 أو في مكان آخر غير المكان الذي أنت CVS لن تصطدم بعضها البعض 711 00:42:00,910 --> 00:42:02,790 للذهاب الحصول على بعض اللبن. 712 00:42:02,790 --> 00:42:04,820 بالطبع بضع دقائق في وقت لاحق، وكلاهما تحصل في الوطن 713 00:42:04,820 --> 00:42:07,740 والآن لديك الحليب مرتين بقدر ما يريد فعلا. 714 00:42:07,740 --> 00:42:10,670 ويجري الحليب، والآن انه سيكون سيئا للذهاب لأنك مثل الحليب 715 00:42:10,670 --> 00:42:14,200 ولكنك لا أحب الحليب، وحتى الآن كان لديك الكثير من الحليب، لذلك سيكون لتعكر. 716 00:42:14,200 --> 00:42:16,830 هذا هو فظيعة، فظيعة الوضع. 717 00:42:16,830 --> 00:42:22,920 كان من الممكن أن تحل هذه المعضلة ما إذا كنت في المنزل الحجرة الأولى؟ نعم. 718 00:42:22,920 --> 00:42:25,970 [طالب] يجب أن تكون قد ترك رسالة. [ضحك] 719 00:42:25,970 --> 00:42:28,090 جيدة. يجب أن كنت قد تركت ملاحظة. 720 00:42:28,090 --> 00:42:32,320 ينبغي أن يضع لك مذكرة بعد ذلك أو ما شابه قائلا: "ذهب للحليب،" 721 00:42:32,320 --> 00:42:36,830 ومن ثم فإن المفهوم الخاص الحجرة وتخوض من القيام فعلا ذلك. 722 00:42:36,830 --> 00:42:38,010 أو هل يمكن أن تذهب 1 الخطوة أخرى. 723 00:42:38,010 --> 00:42:41,060 هل يمكن قفل الثلاجة حرفيا مع بعض النوع من القفل، 724 00:42:41,060 --> 00:42:44,870 والآن سوف حرفيا الحجرة الخاصة بك يكون مؤمنا من الثلاجة. 725 00:42:44,870 --> 00:42:48,520 إذا كان لنا أن التعميم إلى البرمجة، 726 00:42:48,520 --> 00:42:51,610 يمكنك التفكير تقريبا من الثلاجة على انها نوع من متغير أو البنية و، 727 00:42:51,610 --> 00:42:53,500 نوع من الحاويات للحصول على معلومات. 728 00:42:53,500 --> 00:42:58,290 المشكلة الأساس هنا هو أن سمح كلا منكم لتفقد 729 00:42:58,290 --> 00:43:02,370 أو قراءة حالة هذا الهيكل البيانات، 730 00:43:02,370 --> 00:43:08,050 ولكن ينظر لكم انه في أوقات مختلفة وبعد كل واحد منكما اتخاذ قرار 731 00:43:08,050 --> 00:43:11,920 استنادا إلى حالة العالم في تلك اللحظات المختلفة في الوقت المناسب. 732 00:43:11,920 --> 00:43:15,570 لذلك كنت قد قفل الثلاجة، وكنت قد تجنب ما لا يقل عن شريك الغرفه 733 00:43:15,570 --> 00:43:19,070 بعد أن تمكنت من لتفقد أحوال العالم، 734 00:43:19,070 --> 00:43:22,530 لذلك يمكن له أن جعلت نفس المقرر. 735 00:43:22,530 --> 00:43:25,780 ذلك قواعد البيانات، كما اتضح، لديك هذه المشكلة باستمرار. 736 00:43:25,780 --> 00:43:31,050 >> دعونا نرى ما اذا كنا نستطيع بناء السيناريو. 737 00:43:31,050 --> 00:43:34,310 لنفترض أنك نوع من رجل سيء وتذهب إلى بنك أوف أميركا 738 00:43:34,310 --> 00:43:37,950 أو واحدة من الأماكن الأخرى في الساحة التي لديها أجهزة الصراف الآلي زوجين الجانب إلى جنب، 739 00:43:37,950 --> 00:43:41,200 وبرزت على نحو ما لكم كيف لتكرار بطاقة ATM - ليس كل ما الثابت. 740 00:43:41,200 --> 00:43:42,730 انها مجرد الشريط المغناطيسي. 741 00:43:42,730 --> 00:43:45,180 وذلك ما تريد القيام به هو محاولة لعب هذه اللعبة 742 00:43:45,180 --> 00:43:49,060 حيث يمكنك وضع بطاقة 1 إلى 1 آلة، وآخر بطاقة في آلة أخرى، 743 00:43:49,060 --> 00:43:51,980 وتريد أساسا في محاولة لسحب الأموال في وقت واحد، 744 00:43:51,980 --> 00:43:54,930 لأن نتصور أن القصة على النحو التالي. 745 00:43:54,930 --> 00:43:57,350 الجهاز على اليمين يأخذ بطاقة PIN الخاص بك و، 746 00:43:57,350 --> 00:44:00,240 ثم يقول: "أعطني 100 دولار." 747 00:44:00,240 --> 00:44:04,790 وتمت برمجة أجهزة الصراف الآلي للقيام أولا حدد على قاعدة البيانات الخاصة به أو ما يعادلها - 748 00:44:04,790 --> 00:44:10,780 مهما كانت قاعدة البيانات باستخدام انها - لمعرفة هل هذا مستخدم على الأقل 100 دولار في حسابه؟ 749 00:44:10,780 --> 00:44:16,180 إذا كان الأمر كذلك، ثم يبصقون من 100 دولار وطرح 100 دولار من موازناتها. 750 00:44:16,180 --> 00:44:20,470 ولكن بالطبع إذا كان هناك أجهزة متعددة هنا أو طرق متعددة للتفتيش 751 00:44:20,470 --> 00:44:23,560 الدولة من هذا العالم، وقبو البنك، لمعرفة كم من المال لديك، 752 00:44:23,560 --> 00:44:26,780 لنفترض أن مجرد صدفة الجهاز على اليسار واليمين 753 00:44:26,780 --> 00:44:30,140 كلا نسأل هذا السؤال في اللحظة نفسها تقريبا في الوقت المناسب. 754 00:44:30,140 --> 00:44:34,160 >> وهذا يمكن أن يحدث بالتأكيد. أجهزة الصراف الآلي وأجهزة الكمبيوتر في هذه الأيام. 755 00:44:34,160 --> 00:44:37,670 حتى إذا كان الجهاز على اليسار يقول: "نعم، لديك على الأقل 100 دولار،" 756 00:44:37,670 --> 00:44:42,150 وفي الوقت نفسه الجهاز على الحق يقول: "نعم، لديك على الأقل 100 دولار،" 757 00:44:42,150 --> 00:44:47,420 ثم كل منهما المضي قدما لإنهاء برامجها ويبصقون فعلا 100 دولار 758 00:44:47,420 --> 00:44:50,820 ويقول: "في السابق كان لديك 200 دولار." 759 00:44:50,820 --> 00:44:54,890 "اسمحوا لي تحديث المتغير ليكون 100 $ الآن ترك في الحساب." 760 00:44:54,890 --> 00:44:58,780 ولكن إذا كان كل منهم قد فحص رصيد حسابك، ووجدت أنه من $ 200 761 00:44:58,780 --> 00:45:02,000 وكلا منهم ثم القيام الرياضيات و 200 أقول - 100، 762 00:45:02,000 --> 00:45:06,990 الآلات ويبصقون يحتمل من مشروعي قانونين 100 دولار في كل جهاز، 763 00:45:06,990 --> 00:45:11,360 ولكن لقد تحديثها فقط رصيد حسابك المبلغ ليكون 100 دولار. 764 00:45:11,360 --> 00:45:15,130 وبعبارة أخرى، كنت قد اتخذت من 200 دولار، ولكن لأنها تفقد حالة العالم 765 00:45:15,130 --> 00:45:18,840 في وقت واحد ومن ثم اتخاذ قرار بناء على تلك القيمة، 766 00:45:18,840 --> 00:45:21,930 لأنها قد لا تفعل الرياضيات بشكل صحيح في نهاية المطاف. 767 00:45:21,930 --> 00:45:25,520 حتى في حالة البنك أيضا كنت تريد حقا أن يكون نوعا من تأمين 768 00:45:25,520 --> 00:45:28,450 بحيث بمجرد كنت قد دققت في حالة بعض متغير 769 00:45:28,450 --> 00:45:31,220 هذا أمر مهم حقا، مثل رصيد الحساب الخاص بك، 770 00:45:31,220 --> 00:45:36,070 لا تدع أي شخص آخر اتخاذ القرارات على أساس أن تتم حتى تفعل الشيء الخاص بك، 771 00:45:36,070 --> 00:45:38,920 حيث في هذه الحالة أنت ATM على اليمين. 772 00:45:38,920 --> 00:45:41,160 قفل الجميع بها. 773 00:45:41,160 --> 00:45:44,650 يمكنك تحقيق هذا التأثير في الواقع في عدة طرق مختلفة. 774 00:45:44,650 --> 00:45:48,660 >> إن أبسط طريقة في الخلية هو خط من SQL التي قدمناها لك 775 00:45:48,660 --> 00:45:52,030 في مشكلة مواصفات المجموعة التي تبدو تماما مثل هذا. 776 00:45:52,030 --> 00:45:57,420 إدراج في الجدول - أيا كان يطلق عليه - معرف، رمزا، وحصة، وعدد من الأسهم، 777 00:45:57,420 --> 00:45:59,660 القيم التالية، على سبيل المثال. 778 00:45:59,660 --> 00:46:03,370 إذا كنت لم أقرأ حتى الآن المواصفات، وهذا هو مثال تنطوي كيف يمكنك أن تذهب نحو 779 00:46:03,370 --> 00:46:07,340 شراء 10 سهم من الأسهم بنس لهذا Skroob الرئيس، 780 00:46:07,340 --> 00:46:10,340 ID المستخدم الذي صادف أن يكون الرقم 7؟ 781 00:46:10,340 --> 00:46:14,070 هذا يقول INSERT INTO الجدول التالي هوية، رمز، وعدد الأسهم 782 00:46:14,070 --> 00:46:18,200 ، 7 'DVN.V'، و 10. 783 00:46:18,200 --> 00:46:21,510 ولكن - ولكن، ولكن، ولكن - في السطر الثاني هو المهم. 784 00:46:21,510 --> 00:46:26,310 ON KEY UPDATE أسهم مكررة = + سهم VALUES (سهم). 785 00:46:26,310 --> 00:46:28,350 تماما حتى خفي المظهر للوهلة الأولى. 786 00:46:28,350 --> 00:46:31,990 ولكن الحقيقة أن هذا الاستعلام SQL، على الرغم من أنها التفاف على خطوط 2، 787 00:46:31,990 --> 00:46:35,920 هو 1 الاستعلام طويلة، وهذا يعني أنه من ذرية 788 00:46:35,920 --> 00:46:41,000 بمعنى أن هذا الاستعلام إما سوف يتم تنفيذها جميعا أو لا على الاطلاق. 789 00:46:41,000 --> 00:46:45,100 وتعريف الخلية، هذه هي الطريقة التي تنفذ هذا الاستعلام. 790 00:46:45,100 --> 00:46:51,010 ومن جانب التعريف الوارد في دليل مضمونة لتنفيذ دفعة واحدة أو لا على الاطلاق. 791 00:46:51,010 --> 00:46:54,020 الدافع لذلك هو على النحو التالي. 792 00:46:54,020 --> 00:46:58,540 إذا في هذه الحالة تحاول شراء 10 سهم من الأسهم، 793 00:46:58,540 --> 00:47:02,260 انها نوع من قصة نفس الحليب، انها نوع من قصة بنفس ATM. 794 00:47:02,260 --> 00:47:04,970 >> إذا كنت نقع في خطأ عدم استخدام بناء الجملة التالي 795 00:47:04,970 --> 00:47:09,610 ولكن بدلا من ذلك اختيار من قاعدة البيانات لمعرفة عدد أسهم هذا السهم فلسا واحدا 796 00:47:09,610 --> 00:47:13,750 لا يكون الرئيس Skroob، ونفترض أن لديه 10 سهم، 797 00:47:13,750 --> 00:47:19,330 وبعد ذلك بعض من الثانية في وقت لاحق لديك ثم عبارة UPDATE، 798 00:47:19,330 --> 00:47:24,810 الذي هو آخر بيان في SQL التي تقول المضي قدما وإضافة 10 المزيد من الأسهم 799 00:47:24,810 --> 00:47:28,700 إلى 10 منصبه الحالي بشكل مثالي بحيث يكون المجموع 20، 800 00:47:28,700 --> 00:47:33,490 المشكلة هي أنه في نظم قواعد البيانات اليوم، ولأن أجهزة الكمبيوتر في اليوم 801 00:47:33,490 --> 00:47:35,990 لديك معالجات متعددة، متعددة النوى - 802 00:47:35,990 --> 00:47:38,920 وبعبارة أخرى، يمكن لأجهزة الكمبيوتر أن تفعل الأشياء حرفيا متعددة في وقت واحد - 803 00:47:38,920 --> 00:47:44,270 ليس هناك ضمان بأن ما تتمتعون به SELECT وUPDATE الخاص بك في هذه الحالة 804 00:47:44,270 --> 00:47:46,150 وسيحدث العودة إلى الوراء. 805 00:47:46,150 --> 00:47:49,140 لذلك السيناريو السيئ ستكون أنت تفعل SELECT 806 00:47:49,140 --> 00:47:51,670 لمعرفة عدد أسهم هذا السهم فلسا واحدا لا يكون Skroob، 807 00:47:51,670 --> 00:47:54,710 وبعد ذلك فقط عن طريق الصدفة يتم تنفيذ استعلام آخر قاعدة البيانات - 808 00:47:54,710 --> 00:47:57,740 ربما Skroob في نافذة متصفح أخرى تحاول شراء 10 سهم 809 00:47:57,740 --> 00:48:00,700 في إطار آخر تماما، مثل الكثير من ATM - 810 00:48:00,700 --> 00:48:05,410 وافترض أن يحصل في استعلام آخر بين SELECT وتحديث. 811 00:48:05,410 --> 00:48:10,210 يمكن أن يكون عليه الحال الآن أن يفقد بعض Skroob عدد الأسهم 812 00:48:10,210 --> 00:48:14,340 لأن عملية أخرى يتم فحص حالة عالمه، 813 00:48:14,340 --> 00:48:17,800 أو يحصل على المزيد من الأسهم مما كان ينبغي أن يكون. 814 00:48:17,800 --> 00:48:23,250 ونحن لن نذهب إلى تفاصيل عن بالضبط ما هذه الخطوط قصة معينة سيكون، 815 00:48:23,250 --> 00:48:28,380 ولكن النقطة هي إذا كان لديك للتحقق من قيمة المتغيرات ومن ثم اتخاذ قرار، 816 00:48:28,380 --> 00:48:32,500 إذا كان هناك خطر من شخص آخر القيام بشيء في ما بين تلك التصريحات 2، 817 00:48:32,500 --> 00:48:36,220 كما يمكن أن يحدث في الأنظمة ذات المعالجات المتعددة، في نظم مولتيكوري، 818 00:48:36,220 --> 00:48:41,220 أجهزة الكمبيوتر لديهم القدرة على القيام بأمور متعددة في آن واحد، يمكن أن تحدث أمور سيئة 819 00:48:41,220 --> 00:48:44,530 يتم خصم الحسابات المصرفية مثل بشكل غير صحيح، وشراء الحليب مرتين قدر، 820 00:48:44,530 --> 00:48:46,730 أو في هذه الحالة عددا خاطئا لسهم. 821 00:48:46,730 --> 00:48:48,370 ولكن هناك طريقة أسهل للتفكير في ذلك. 822 00:48:48,370 --> 00:48:53,290 >> تبين أن SQL يدعم أيضا، إذا قمت بتكوين الجدول الخاص بك بشكل صحيح، 823 00:48:53,290 --> 00:48:56,920 ما يسمى المعاملات، وأنا أزعم هو في الواقع أسهل لفهم 824 00:48:56,920 --> 00:49:00,650 من هذا، ولكنها ليست 1-الخطوط الملاحية المنتظمة، حتى انها في الواقع أكثر قليلا المعنية. 825 00:49:00,650 --> 00:49:04,960 هناك حرفيا في بيان SQL دعا TRANSACTION START. 826 00:49:04,960 --> 00:49:08,300 تماما مثل هناك SELECT، UPDATE، INSERT، DELETE، والانضمام وحفنة من الآخرين، 827 00:49:08,300 --> 00:49:10,970 هناك كلمات رئيسية مثل TRANSACTION START. 828 00:49:10,970 --> 00:49:13,560 وماذا تفعل بعد ذلك في سياق pset 7 - 829 00:49:13,560 --> 00:49:17,270 لم يكن لديك للقيام بذلك لpset 7؛ التنازل صراحة انه ليس من الضروري أنها، 830 00:49:17,270 --> 00:49:18,830 ولكن لمشاريع النهائي يمكن أن يكون مفيدا - 831 00:49:18,830 --> 00:49:22,820 إذا قمت استدعاء استعلام من TRANSACTION START ثم استفسار آخر 832 00:49:22,820 --> 00:49:25,620 وثم آخر ثم آخر والاستعلام، وآخر، وآخر، 833 00:49:25,620 --> 00:49:31,860 لن تلك الاستفسارات حتى يتم تنفيذها بالفعل استدعاء بيان SQL ارتكابها، 834 00:49:31,860 --> 00:49:37,220 وعند هذه النقطة، سواء كان في 2 بيانات أو تصريحات و20، كل ما يتم تنفيذها في وقت واحد، 835 00:49:37,220 --> 00:49:42,770 وهو ما يعني لا أحد يستطيع شراء بطريق الخطأ الكثير من الحليب أو الخصم الكثير من المال 836 00:49:42,770 --> 00:49:46,340 أو شراء أسهم كثيرة جدا لأن كل استفساراتك سيتم تنفيذ 837 00:49:46,340 --> 00:49:48,410 العودة إلى الوراء إلى العودة إلى الوراء. 838 00:49:48,410 --> 00:49:51,580 وهذا هو المهم فائقة، وخصوصا عندما كنت تفعل شيئا من هذا القبيل. 839 00:49:51,580 --> 00:49:54,900 هذا مثال التعسفية التي تقول دعونا تحديث حساب مصرفي 840 00:49:54,900 --> 00:50:00,200 عن طريق تحديد التوازن يساوي رصيد - 1000 دولار حيث رقم الحساب هو 2. 841 00:50:00,200 --> 00:50:04,260 ثم البيان الثاني هو الآن دعونا أن تودع 1000 $ 842 00:50:04,260 --> 00:50:07,310 في حساب شخص آخر رقم الحساب البنك الذي هو 1. 843 00:50:07,310 --> 00:50:10,400 >> وبعبارة أخرى، وهذا هو مثال ممتاز عن المكان الذي ترغب في التأكد من 844 00:50:10,400 --> 00:50:13,590 أن كلا من هذه البيانات أو لا يحدث على الإطلاق 845 00:50:13,590 --> 00:50:15,450 لأن خلاف ذلك العميل هو الذهاب الى الحصول على ثمل 846 00:50:15,450 --> 00:50:17,670 وأنت تسير على اتخاذ أموالهم وليس إيداع في مكان آخر، 847 00:50:17,670 --> 00:50:20,470 أو البنك هو الذهاب الى الحصول على ثمل أين أنت ذاهب لإيداع الأموال 848 00:50:20,470 --> 00:50:23,140 ولكن ليس طرح فعلا من حساب المستخدم. 849 00:50:23,140 --> 00:50:25,810 لذلك أنت تريد كل منهما لتنفيذ معا. 850 00:50:25,810 --> 00:50:29,140 يدخل بالتالي في المعاملات العالم. 851 00:50:29,140 --> 00:50:31,360 لذلك هذا شيء أن نأخذ في الجزء الخلفي من عقلك، 852 00:50:31,360 --> 00:50:34,710 وليس ذلك بكثير لأغراض المشروع مجرد النهائي، 853 00:50:34,710 --> 00:50:36,700 ولكن إذا كنت تريد أن تأخذ المشروع النهائي الخاص بك في مكان ما، 854 00:50:36,700 --> 00:50:39,040 إذا كنت ترغب في بدء بعض الشركات من حوله، 855 00:50:39,040 --> 00:50:41,270 إذا كنت ترغب في حل مشكلة بعض مجموعة الطالب في الحرم الجامعي 856 00:50:41,270 --> 00:50:45,210 وفعلا لديها حية، نشطة موقع، وهذه هي نوع من البق الدقيقة التي يمكن أن تنشأ 857 00:50:45,210 --> 00:50:49,480 إذا كنت لا أعتقد تماما من خلال ما يمكن أن يحدث إذا كان 2 الناس 858 00:50:49,480 --> 00:50:54,190 تحاول الوصول إلى موقع الويب الخاص بك في اللحظة نفسها حرفيا في الوقت المناسب، 859 00:50:54,190 --> 00:50:56,890 قد خلاف ذلك حيث الحصول على استفساراتهم متشابكة. 860 00:50:58,840 --> 00:51:01,420 >> مستعد لبعض جافا سكريبت، دعابة منه؟ 861 00:51:01,420 --> 00:51:04,320 هذه هي لغتنا مشاركة للفصل الدراسي. حسنا. 862 00:51:04,320 --> 00:51:09,940 لحسن الحظ، يبدو جافا سكريبت جدا، جدا، تشبه الى حد بعيد لغات 2، C وPHP، 863 00:51:09,940 --> 00:51:11,140 لقد فعلنا حتى الآن. 864 00:51:11,140 --> 00:51:14,340 ليس هناك الجافا سكربت في pset 7، ولكنه أداة مفيدة بشكل لا يصدق 865 00:51:14,340 --> 00:51:18,840 عندما يصل الأمر إلى القيام على شبكة الإنترنت أو المشاريع النهائية حقا البرمجة فقط على شبكة الإنترنت عموما أكثر. 866 00:51:18,840 --> 00:51:20,950 حتى لمحة سريعة عن ما يسمى DOM. 867 00:51:20,950 --> 00:51:23,600 وهنا لصفحة الويب سوبر البسيطة التي تقول حقا فقط مرحبا، العالم 868 00:51:23,600 --> 00:51:25,970 سواء في العنوان وفي الجسم. 869 00:51:25,970 --> 00:51:29,270 كما تم اقتراح المسافة البادئة لبعض الوقت، 870 00:51:29,270 --> 00:51:31,380 هناك بالفعل التسلسل الهرمي لصفحات الويب. 871 00:51:31,380 --> 00:51:34,220 ويمكنني أن يوجه هذا مقتطف من نفس HTML مثل شجرة، 872 00:51:34,220 --> 00:51:37,470 التفكير في العودة إلى مناقشاتنا هياكل البيانات في C، كما يلي. 873 00:51:37,470 --> 00:51:40,710 لدي بعض عقدة جذر خاصة تسمى العقدة الوثيقة، 874 00:51:40,710 --> 00:51:43,650 وسنرى هذا في التناظرية الجافا سكربت في لحظة واحدة. 875 00:51:43,650 --> 00:51:48,330 الطفل الأول والطفل الوحيد لأنه في هذه الحالة هو العلامة HTML. 876 00:51:48,330 --> 00:51:49,880 ليس هناك رسم الخرائط مباشرة من DOCTYPE. 877 00:51:49,880 --> 00:51:53,170 هذا شيء خاص، لذلك يجب علينا تجاهله عندما يتعلق الأمر هذه DOM، 878 00:51:53,170 --> 00:51:55,810 هذا طراز كائن المستند شجرة. 879 00:51:55,810 --> 00:51:59,530 تلاحظ أن علامة HTML التي صورت بشكل تعسفي لقد على شكل مستطيل، 880 00:51:59,530 --> 00:52:02,890 يوجد 2 الأطفال: الرأس والجسم. 881 00:52:02,890 --> 00:52:04,840 >> يتم رسمها على شكل مستطيلات وبالمثل تلك. 882 00:52:04,840 --> 00:52:08,970 فمن معنى بالصور التي هي رأس على يسار الجسم. 883 00:52:08,970 --> 00:52:11,960 وهذا يعني أن رئيس يأتي أولا في الشجرة. 884 00:52:11,960 --> 00:52:14,910 ولذلك لا يوجد في الواقع طلب إلى شجرة عند استدراجه من هذا القبيل، 885 00:52:14,910 --> 00:52:17,460 على الرغم من أن الأشكال وwhatnot تعسفية. 886 00:52:17,460 --> 00:52:20,360 من ناحية اخرى رئيس طفل واحد يسمى العنوان، 887 00:52:20,360 --> 00:52:25,170 ولقب في الواقع الطفل الخاصة به، والتي هي "مرحبا، العالم"، 888 00:52:25,170 --> 00:52:32,210 التي وجهت عمدا كما بيضاوي هنا لجعلها مختلفة قليلا من المستطيل. 889 00:52:32,210 --> 00:52:37,420 هذه المستطيلات هي عناصر، في حين مرحبا، العالم هو في الحقيقة عقدة النص. 890 00:52:37,420 --> 00:52:39,850 لذلك فمن عقدة في شجرة، ولكن هذا نوع مختلف من عقدة 891 00:52:39,850 --> 00:52:41,730 ووجه ذلك أنا بشكل مختلف بشكل تعسفي. 892 00:52:41,730 --> 00:52:45,000 وبالمثل لا يكون الجسم طفل يدعى مرحبا، العالم أيضا، 893 00:52:45,000 --> 00:52:47,910 عقدة مختلفة حتى على الرغم من انهم من قبيل الصدفة نفس النص، 894 00:52:47,910 --> 00:52:52,100 ولكن لقد وجهت إليه باستخدام نفس الشكل. لذلك من يهتم؟ 895 00:52:52,100 --> 00:52:56,820 حسنا، ما هو الجميل في HTML هو أنه لديه هذا النوع هرمي. 896 00:52:56,820 --> 00:53:01,010 وما هو لطيفة عن جافا سكريبت والمكتبات وخاصة التي تتوفر بحرية 897 00:53:01,010 --> 00:53:07,120 وشعبية مثل مسج، يمكنك التنقل في بنية شجرة من السهل بشكل مثير للدهشة. 898 00:53:07,120 --> 00:53:11,790 أي من الأشياء فعلنا في C مع مؤشرات والأشجار وتعبر recursing على العقد 899 00:53:11,790 --> 00:53:15,300 الطفل الأيسر للطفل الحق، فجأة ونحن يمكن فرز من الأمور المسلم 900 00:53:15,300 --> 00:53:19,450 كما يتم المنير مثير للدهشة بعض الشيء إن لم يكن محبطا 901 00:53:19,450 --> 00:53:22,470 ولكن ليس ما يقرب من وسيلة فعالة لتذهب نحو البرمجة. 902 00:53:22,470 --> 00:53:24,470 وحتى مع هذه اللغات مثل جافا سكريبت مستوى أعلى 903 00:53:24,470 --> 00:53:28,340 سوف نكون قادرين على التنقل هذه الشجرة أكثر حدسي. 904 00:53:28,340 --> 00:53:30,430 >> وبالفعل بناء الجملة ستكون مألوفة تماما. 905 00:53:30,430 --> 00:53:32,950 إذا كنت لم أر قط سكريبت قبل، وهذا هو مرجع لطيف 906 00:53:32,950 --> 00:53:35,910 من اهل موزيلا، والناس الذين جعل فايرفوكس، 907 00:53:35,910 --> 00:53:38,370 لذلك لا تتردد في تصفح هذا على راحتك. 908 00:53:38,370 --> 00:53:41,590 ما سوف تجد - وهذه الشرائح هي مطابقة لما كنا في ذلك اليوم - 909 00:53:41,590 --> 00:53:44,030 وبالمثل، قد ولى الرئيسية. 910 00:53:44,030 --> 00:53:47,010 حتى عندما كنت في كتابة برنامج جافا سكريبت، لا يوجد الوظيفة الرئيسية. 911 00:53:47,010 --> 00:53:48,690 كنت مجرد بداية كتابة التعليمات البرمجية. 912 00:53:48,690 --> 00:53:51,660 ولكن الفرق الرئيسي بين جافا سكريبت وC وPHP 913 00:53:51,660 --> 00:53:55,890 هو انه في حين C وPHP حتى الآن تم تنفيذ جانب الملقم 914 00:53:55,890 --> 00:53:59,180 من الأجهزة في هذه الحالة أو عادة أكثر من خادم، 915 00:53:59,180 --> 00:54:04,270 عادة يتم تنفيذ جافا سكريبت حسب التصميم من قبل المتصفح. 916 00:54:04,270 --> 00:54:08,440 وبعبارة أخرى، قد تكتب شفرة جافا سكريبت، ونحن على وشك، 917 00:54:08,440 --> 00:54:13,080 على ملقم في الجهاز، ولكنك إدراجه ضمن HTML الخاص بك، بين CSS الخاص بك، 918 00:54:13,080 --> 00:54:16,100 بين الخاص وPNGs متحركة وصور JPEG الخاص بك 919 00:54:16,100 --> 00:54:19,170 بحيث عندما يقوم المستخدم بزيارة صفحة الويب الخاصة بك، إذا كنت تستخدم جافا سكريبت، 920 00:54:19,170 --> 00:54:21,770 أن يأتي شفرة جافا سكريبت من خادم الى المتصفح، 921 00:54:21,770 --> 00:54:24,540 وانها المتصفح الذي ينفذ فعليا. 922 00:54:24,540 --> 00:54:27,960 ولذلك فإن هذا له آثار ذات مغزى للملكية الفكرية حتى. 923 00:54:27,960 --> 00:54:32,600 انها نوع من السخيف أن يفكر حتى عن حماية الملكية الفكرية الخاصة بك عندما يتعلق الأمر شفرة جافا سكريبت 924 00:54:32,600 --> 00:54:37,560 لأن من طبيعة اللغة يحصل تنفيذه عادة الجانب المتصفح. 925 00:54:37,560 --> 00:54:40,360 >> يمكنك تعتم عليه، مما يعني أنه يمكنك جعلها تبدو مجنونة والقبيح 926 00:54:40,360 --> 00:54:45,400 مع عدم وجود مسافة بيضاء، أسماء المتغيرات الرهيبة، لتجعل من الصعب على الناس لسرقة IP الخاص بك، 927 00:54:45,400 --> 00:54:48,120 ولكن المفتاح هو أن يتم تنفيذه الجانب المتصفح. 928 00:54:48,120 --> 00:54:51,790 على الرغم من باعتبارها جانبا جانب الملقم ويمكن استخدام جافا سكريبت، 929 00:54:51,790 --> 00:54:54,480 حالة الاستخدام الأكثر شيوعا في الوقت الحالي لا يزال على المتصفح. 930 00:54:54,480 --> 00:54:59,800 وهنا ما يبدو. هنا هو IF-IF-آخر بناء آخر مثل C، تماما مثل PHP. 931 00:54:59,800 --> 00:55:02,420 وهنا لعند التعبير المنطقي "أو" الأشياء 2 معا. 932 00:55:02,420 --> 00:55:04,330 هنا عند "و" الأشياء 2 معا. 933 00:55:04,330 --> 00:55:08,300 وهنا لبيان التبديل، وهو ما يماثل PHP 934 00:55:08,300 --> 00:55:10,810 في هذا يمكنك التبديل على أنواع مختلفة من القيم. 935 00:55:10,810 --> 00:55:15,180 وبالمثل لدينا الحلقات الحلقات هنا، والتي تنظم بشكل مماثل لما رأيناه من قبل. 936 00:55:15,180 --> 00:55:18,110 بينما حلقات، ونحن قد حصلت على القيام به أثناء الحلقات. 937 00:55:18,110 --> 00:55:20,290 المتغيرات، من أي وقت مضى حتى قليلا مختلفة. 938 00:55:20,290 --> 00:55:24,560 كنت بتعريف المتغيرات مثلك في PHP وC، 939 00:55:24,560 --> 00:55:27,860 ولكن بالمثل وكتابة سكريبت ضعيفة. 940 00:55:27,860 --> 00:55:32,730 لم تقم بتحديد كثافة العمليات أو تعويم أو سلسلة أو أي شيء من هذا القبيل عادة. 941 00:55:32,730 --> 00:55:34,240 يمكنك تحديد فار. 942 00:55:34,240 --> 00:55:38,040 لم يكن لديك لتحديد فار، ولكن لما له من آثار إذا لم تقم بذلك. 943 00:55:38,040 --> 00:55:42,000 إذا قمت بحذف فار عادة، يمكنك إنشاء متغير عمومي بطريق الخطأ بدلا من المحلية. 944 00:55:42,000 --> 00:55:46,420 لذلك اسمحوا لي أن أقترح عليك أن أقول دائما تقريبا فار ثم اسم المتغير. 945 00:55:46,420 --> 00:55:48,740 انها ليست النوع، انها فقط للمتغير فار. 946 00:55:48,740 --> 00:55:52,930 وهذا سيكون كمثال على ذلك، سواء كان ذلك 123 أو "مرحبا العالم". 947 00:55:52,930 --> 00:55:58,910 صفائف موجودة ومماثلة لبناء جملة PHP. 948 00:55:58,910 --> 00:56:03,690 أنا أقول أرقام فار وبعد ذلك استخدام الأقواس المربعة مرة أخرى لتعريف متغير 949 00:56:03,690 --> 00:56:08,870 الذي هو نوع الصفيف التي لديها هذه الأرقام خاصة في ذلك مفصولة بفواصل. 950 00:56:08,870 --> 00:56:11,740 ثم أخيرا، وهذا هو الوحيد الذي يبدو حقا مختلفة. 951 00:56:11,740 --> 00:56:16,700 أذكر أنه في PHP كنا نفذت مجموعة النقابي للطالب 952 00:56:16,700 --> 00:56:20,220 مثل Zamyla التي قد تبدو هذه، حيث يتم استدعاء المتغير الطلاب. 953 00:56:20,220 --> 00:56:23,370 المعقوفتين يعني هنا يأتي صفيف. 954 00:56:23,370 --> 00:56:28,500 >> حقيقة أنني لا تستخدم مؤشرات رقمية ولكن سلاسل - ID، المنزل، واسم - 955 00:56:28,500 --> 00:56:30,990 يعني أن هذا هو مجموعة النقابي، 956 00:56:30,990 --> 00:56:34,490 وهذه السهام مع علامة التساوي وقوس الزاوية 957 00:56:34,490 --> 00:56:37,310 يعني أن المفتاح هو "معرف"، القيمة هي 1؛ 958 00:56:37,310 --> 00:56:39,310 والمفتاح هو "المنزل"، القيمة هي ينثروب البيت؛ 959 00:56:39,310 --> 00:56:41,800 والمفتاح هو "اسم"، القيمة هي Zamyla تشان. 960 00:56:41,800 --> 00:56:47,110 ولذلك لا يوجد 3 مفاتيح داخل هذه المجموعة النقابي، كل منها له قيمة خاصة به. 961 00:56:47,110 --> 00:56:52,880 لقد رأينا أن في pset 7، أو كنت قريبا، في جافا سكريبت نفس الفكرة، 962 00:56:52,880 --> 00:56:55,220 لكنه سيحتاج للبحث من هذا القبيل. 963 00:56:55,220 --> 00:57:00,070 فار ذلك الطالب - أي علامة الدولار ولم يذكر نوع ولكن لا يزال فار - 964 00:57:00,070 --> 00:57:05,860 يساوي ثم قم بفتح الأقواس المتعرجة لفي جافا سكريبت عندما يكون لديك أزواج قيمة المفتاح، 965 00:57:05,860 --> 00:57:08,900 كنت فعلا استخدام ما يسمى كائن. 966 00:57:08,900 --> 00:57:13,490 وربما أولئك منكم الذين لم تأخذ ناقلات الجنود المدرعة أو ما شابه ذلك نذكر الكائنات من جافا 967 00:57:13,490 --> 00:57:15,140 أو لغات مشابهة. 968 00:57:15,140 --> 00:57:17,880 جافا سكريبت غير جافا، أولا وقبل كل شيء. 969 00:57:17,880 --> 00:57:21,600 لقد كان قرارا متعمدا لسنوات توقف عن التدخين شيء آخر التي كانت شعبية، 970 00:57:21,600 --> 00:57:25,640 اسمها، على الرغم من أنها لا علاقة أساسية لجافا نفسها. 971 00:57:25,640 --> 00:57:31,490 سكريبت لديه الكائنات، وإنشاء لهم عن طريق التدوين متعرج. 972 00:57:31,490 --> 00:57:36,710 الكائنات في جافا سكريبت هي جميلة يعادل الكثير لصفائف النقابي في PHP 973 00:57:36,710 --> 00:57:40,030 عندما يتعلق الأمر تخزين البيانات داخل منهم. 974 00:57:40,030 --> 00:57:44,100 >> ولكن حتى أكثر بقوة في جافا سكريبت كنت المنتسبين بسهولة جدا وظائف 975 00:57:44,100 --> 00:57:48,040 داخل كائن، ولكن يمكنك القيام بذلك في لغات أخرى، 976 00:57:48,040 --> 00:57:50,040 هو الى حد بعيد نموذج المشتركة، كما سنرى. 977 00:57:50,040 --> 00:57:54,380 باختصار، هذا الكائن يمثل الطالب الذي هو Zamyla خاصة، 978 00:57:54,380 --> 00:58:00,380 وانها مماثلة من الناحية المفاهيمية، تماما مختلفة بناء جملة من هذا. 979 00:58:00,380 --> 00:58:03,840 دعونا فعلا استخدام جافا سكريبت في ملف. 980 00:58:03,840 --> 00:58:05,570 اتضح أن هناك علامة النصي. 981 00:58:05,570 --> 00:58:08,180 شاهدنا علامة الأناقة ورأيناه به HTML الأخرى. 982 00:58:08,180 --> 00:58:11,510 العلامة النصي وسوف تحتوي على شفرة جافا سكريبت في الواقع بعض. 983 00:58:11,510 --> 00:58:15,500 اسمحوا لي ان اذهب الى الجهاز حيث لدينا بعض التعليمات البرمجية المصدر مسبقة الصنع. 984 00:58:15,500 --> 00:58:18,700 أنا لم تنشر حتى الآن على الموقع، ولكن سأفعل ذلك بعد انتهاء اليوم الدراسي. 985 00:58:18,700 --> 00:58:21,770 دعونا فتح هذا واحد، blink.html. 986 00:58:21,770 --> 00:58:27,560 مرة أخرى في 1990s، كان هناك حرفيا علامة HTML دعا العلامة طرفة، 987 00:58:27,560 --> 00:58:30,340 وكان هذا واحد من العلامات الأكثر يبالغ رائعة على الإنترنت 988 00:58:30,340 --> 00:58:36,140 حيث كنت زيارة بعض 1990s صفحة ويب نمط وتبدأ في رؤية النص وامض أنت مثل هذا، 989 00:58:36,140 --> 00:58:39,810 النتائج من العلامة ماركيز، والتي سوف النص مثل هذا. 990 00:58:39,810 --> 00:58:45,070 واحدة من المرات القليلة التي وافقت العالم في الواقع على مستوى شبكة الإنترنت، 991 00:58:45,070 --> 00:58:48,250 قتل الجميع في جميع المجالات العلامة ميض قبل بضع سنوات. 992 00:58:48,250 --> 00:58:52,860 ولكن يمكننا استئنافها مع جافا سكريبت كدليل على قوة لديك 993 00:58:52,860 --> 00:58:56,660 عندما يمكنك كتابة برنامج داخل صفحة الويب. 994 00:58:56,660 --> 00:59:00,240 دعونا أولا تخطي الاشياء الجديدة والتركيز فقط على النظام القديم. 995 00:59:00,240 --> 00:59:01,780 >> هنا الاشياء القديمة في هذا المثال. 996 00:59:01,780 --> 00:59:06,350 لدي علامة HTML، علامة الرأس، وعلامة العنوان. 997 00:59:06,350 --> 00:59:11,210 ثم لدي العلامة BODY هنا مع DIV، والتي تذكر هو مجرد تقسيم مستطيل من الصفحة 998 00:59:11,210 --> 00:59:14,720 أنني أعطيت معرف فريد تعسفا من "تحية" ل، 999 00:59:14,720 --> 00:59:18,320 فقط حتى لدي وسيلة للإشارة إلى أنه فريد، لديها بعض النصوص بسيطة جدا: 1000 00:59:18,320 --> 00:59:20,220 مرحبا، العالم. 1001 00:59:20,220 --> 00:59:23,940 والآن اسمحوا لي انتقل لأعلى إلى الأعلى من هذا الملف ونرى ما هو جديد. 1002 00:59:23,940 --> 00:59:27,710 أول ما الجديد أعلى حتى هو علامة النصي، 1003 00:59:27,710 --> 00:59:31,280 وداخل النصي إشعار العلامة لقد أعلن وظيفة. 1004 00:59:31,280 --> 00:59:34,610 للإعلان عن وظيفة في جافا سكريبت، PHP جميلة مماثلة ل، 1005 00:59:34,610 --> 00:59:37,930 تكتب حرفيا وظيفة ثم اسم الدالة، قوسين، 1006 00:59:37,930 --> 00:59:40,400 وربما بعض الحجج إذا كان يأخذ أي. 1007 00:59:40,400 --> 00:59:43,510 ثم أنا عندي بلدي قوس مجعد كالمعتاد، والآن لدينا بعض التعليمات البرمجية الجديدة قليلا، 1008 00:59:43,510 --> 00:59:45,230 ولكن دعونا نرى ماذا يعني هذا. 1009 00:59:45,230 --> 00:59:48,670 حتى DIV فار، هذا يعني فقط أن تعطيني DIV متغير يسمى. 1010 00:59:48,670 --> 00:59:50,530 يمكن أن يكون ذلك دعوت فو، ولكني أردت أن يطلق عليه DIV 1011 00:59:50,530 --> 00:59:52,620 لأسباب من شأنها أن تكون واضحة في الثانية. 1012 00:59:52,620 --> 00:59:57,480 ثم تبين في جافا سكريبت - وهذا هو شفرة جافا سكريبت جزءا لا يتجزأ من صفحة الويب الخاصة بي - 1013 00:59:57,480 --> 01:00:01,760 هناك متغير من نوع خاص يسمى العالمية الوثيقة. 1014 01:00:01,760 --> 01:00:04,780 جافا سكريبت هي في الواقع لغة وجوه المنحى. 1015 01:00:04,780 --> 01:00:07,230 ونحن لن أخوض في التفاصيل في 50 على ما يعنيه ذلك، 1016 01:00:07,230 --> 01:00:11,180 لكن في الوقت الراهن نعلم أن كائن هو الى حد كبير مثل البنية. 1017 01:00:11,180 --> 01:00:14,740 مثل رأينا في طريق العودة عندما واحدة من أقدم مجموعات مشكلة 1018 01:00:14,740 --> 01:00:17,150 حيث وضعنا الكثير من المعلومات في البنية، 1019 01:00:17,150 --> 01:00:21,330 وبالمثل يتم توثيق البنية الخاصة التي تأتي مع المتصفح، 1020 01:00:21,330 --> 01:00:24,810 يأتي مع أي صفحة ويب. انها ليست شيئا أنا خلقت. 1021 01:00:24,810 --> 01:00:28,210 داخل هذا الهيكل الوثيقة، على الرغم من، لديك ليس فقط البيانات 1022 01:00:28,210 --> 01:00:30,010 ولكن لديك أيضا وظائف. 1023 01:00:30,010 --> 01:00:34,090 >> وأي وقت لديك وظيفة داخل هيكل، داخل كائن، 1024 01:00:34,090 --> 01:00:36,490 انه دعا أسلوب. ولكن هذا الشيء. 1025 01:00:36,490 --> 01:00:40,110 وهناك طريقة هي وظيفة فقط أن يحدث ذلك لتكون داخل شيء آخر. 1026 01:00:40,110 --> 01:00:42,990 ولذلك فإن هذا يعني أن هذا المتغير العالمي خاصة تسمى وثيقة 1027 01:00:42,990 --> 01:00:47,690 لديه وظيفة تسمى getElementById أن يفعل حرفيا ذلك. 1028 01:00:47,690 --> 01:00:52,460 سوف تحصل على عنصر من DOM، شجرة طراز كائن المستند، 1029 01:00:52,460 --> 01:00:55,520 ID الذي هو في هذه الحالة تحية. 1030 01:00:55,520 --> 01:00:59,200 وبعبارة أخرى، كل هذا الوقت قضينا على هياكل البيانات هنا يأتي دور. 1031 01:00:59,200 --> 01:01:01,400 هذه صورة لDOM التي كانت لدينا قبل لحظة، 1032 01:01:01,400 --> 01:01:06,100 على الرغم من أن الصفحة هي مختلفة قليلا، إذا كان لي DIV في هذه الصورة، 1033 01:01:06,100 --> 01:01:11,180 ماذا document.getElementById سيعود لي على نحو فعال مؤشر 1034 01:01:11,180 --> 01:01:15,440 إلى المستطيل في شجرة، في إشارة إلى المستطيل في الشجرة. 1035 01:01:15,440 --> 01:01:18,410 بحيث ما يعنيه أن الكلمة في الواقع واحدة من تلك الوظائف. 1036 01:01:18,410 --> 01:01:21,960 في هذه الحالة مرة أخرى انها DIV. انها ليست هيئة أو العنوان أ. 1037 01:01:21,960 --> 01:01:26,480 لذلك دعونا نرى ما أقوم به بعد ذلك مع هذا DIV الآن أن لدي داخل هذا DIV متغير يسمى. 1038 01:01:26,480 --> 01:01:32,580 اتضح مع جافا سكريبت لديك القدرة على قرص CSS من الصفحة الخاصة بك بشكل حيوي. 1039 01:01:32,580 --> 01:01:39,060 حتى الآن، كل من CSS فعلناه، وإن كانت محدودة، في سمات النمط، 1040 01:01:39,060 --> 01:01:41,730 أو في أي مكان آخر قد وضعنا CSS؟ 1041 01:01:42,730 --> 01:01:45,810 النوع الأول من تلك التي فسدت. في علامة النمط في الجزء العلوي من الملف. 1042 01:01:45,810 --> 01:01:49,180 أو كان في المركز الثالث؟ 1043 01:01:50,710 --> 01:01:54,590 >> ملف خارجي، شيء ما. المغلق. 1044 01:01:54,590 --> 01:01:56,730 حتى تلك هي 3 أماكن فعلناه CSS حتى الآن، 1045 01:01:56,730 --> 01:01:59,310 لكن الصيد هو الثابت ترميز لدينا كل شيء. 1046 01:01:59,310 --> 01:02:04,060 كنت قررت وأنت حمامة في pset 7، قررنا ما قبل محاضرة CSS سيكون لدينا. 1047 01:02:04,060 --> 01:02:07,380 ولكن إذا كنت ترغب في تغيير CSS الخاص بك، يمكنك القيام به في الواقع أن 1048 01:02:07,380 --> 01:02:09,370 مرة واحدة لديك لغة البرمجة الفعلية. 1049 01:02:09,370 --> 01:02:13,910 CSS، HTML - لغات البرمجة لا. جافا سكريبت هي. 1050 01:02:13,910 --> 01:02:18,200 لذلك تبين أن في أقرب وقت لديك واحدة من تلك المستطيلات من الشجرة 1051 01:02:18,200 --> 01:02:23,050 دعا DOM، فقد بعض البيانات نفسها داخل منه. 1052 01:02:23,050 --> 01:02:27,820 وبالتالي فإن DIV أن أمسكت فقط من شجرة لديه ما سنقوم استدعاء خاصية داخل منه 1053 01:02:27,820 --> 01:02:34,390 دعا الاسلوب، والخاصية نمط له حد ذاته خاصية تسمى الرؤية. 1054 01:02:34,390 --> 01:02:37,330 وأود أن أعرف هذا فقط عن طريق البحث عن دليل مستخدم لCSS. 1055 01:02:37,330 --> 01:02:41,160 اتضح أن هناك خاصية CSS الرؤية التي تفعل ما تقول. 1056 01:02:41,160 --> 01:02:44,530 فإنه يجعل شيئا مرئيا أم لا، مرئية أم لا. 1057 01:02:44,530 --> 01:02:46,810 وكيف يمكنك أن تفعل ذلك هو هذا. 1058 01:02:46,810 --> 01:02:50,510 أنا أسأل برمجيا إذا كان مخفيا وضوح هذا DIV، 1059 01:02:50,510 --> 01:02:53,390 ما يمكنني تغييره إلى؟ مرئية. 1060 01:02:53,390 --> 01:02:58,840 آخر إذا لم يتم إخفاء وضوح هذه الصفحة، I منطقيا لا تجعل من المخفية. 1061 01:02:58,840 --> 01:03:04,070 ليس لدي فكرة لماذا انها مرئية وخفية وغير مرئية وغير مرئية. 1062 01:03:04,070 --> 01:03:06,000 كان هذا قرارا سوء التصميم على طول الطريق. 1063 01:03:06,000 --> 01:03:09,530 ولكن هذه هي في الواقع الأضداد في CSS: مرئية ومخفية. 1064 01:03:09,530 --> 01:03:15,520 كل هذا لا يعني أنه هو تغيير CSS من ملفي وخارجها، وداخل وخارج 1065 01:03:15,520 --> 01:03:16,870 لذلك DIV خاص. 1066 01:03:16,870 --> 01:03:20,630 ولكن مرة أخرى، هذا هو وظيفة تسمى طرفة. عند وظيفة وميض دعا؟ 1067 01:03:20,630 --> 01:03:24,080 تبين أن هناك آخر متغير العالمية الخاصة نافذة دعا، 1068 01:03:24,080 --> 01:03:28,220 مماثلة للوثيقة، ولكن، في حين تشير الوثيقة إلى صفحة الويب الخاصة بك 1069 01:03:28,220 --> 01:03:31,700 مثل شجرة DOM، أرسل HTML لك من خادم، 1070 01:03:31,700 --> 01:03:35,250 نافذة يشير إلى الكروم المحيطة بها، شريط العناوين، وشريط العنوان، 1071 01:03:35,250 --> 01:03:37,880 وجميع تلك الأشياء حول صفحة الويب الخاصة بك. 1072 01:03:37,880 --> 01:03:42,800 >> واتضح أن الكائن النافذة لديها وظيفة خاصة داخل من وصفته setInterval 1073 01:03:42,800 --> 01:03:44,360 أن تفعل ما تقول. 1074 01:03:44,360 --> 01:03:48,600 فإنه سيتم تعيين فاصل زمني - في هذه الحالة كل ميلي ثانية 500 - 1075 01:03:48,600 --> 01:03:52,270 و، واتخاذ تخمين، ما تنوي القيام به من كل 500 مللي ثانية؟ 1076 01:03:52,270 --> 01:03:55,240 انه سيكون لتنفيذ ذلك برمشة وظيفة. 1077 01:03:55,240 --> 01:03:58,560 وما هو لطيف هنا هو أننا كان يمكن أن يتم ذلك في C على الرغم من أننا لم يفعل. 1078 01:03:58,560 --> 01:04:01,580 C لديها ما يسمى مؤشرات الدالة حيث يمكنك تمرير وظائف في جميع أنحاء 1079 01:04:01,580 --> 01:04:03,140 كوسائط. 1080 01:04:03,140 --> 01:04:07,620 وبالمثل يمكن في جافا سكريبت يمكنك تمرير اسم وظيفة في وظيفة أخرى. 1081 01:04:07,620 --> 01:04:10,630 وتلاحظ ما أفعله. أنا لا أفعل هذا. 1082 01:04:10,630 --> 01:04:14,380 إذا وضعت بين قوسين بعد طرفة، فهل يعني استدعاء الدالة طرفة. 1083 01:04:14,380 --> 01:04:17,430 إذا كنت حذفت منها، وهذا يعني هنا هي وظيفة وميض 1084 01:04:17,430 --> 01:04:21,330 لذلك يمكن أن يطلق عليه setInterval كل ميلي ثانية 500. 1085 01:04:21,330 --> 01:04:28,200 وبالتالي فإن النتيجة النهائية، على الرغم من أنه الفظيعة، هو أن إذا ذهبت إلى المضيف المحلي والذهاب إلى blink.html، 1086 01:04:28,200 --> 01:04:32,120 لدي الآن هذا يحدث مرارا وتكرارا. 1087 01:04:32,120 --> 01:04:34,950 وإذا كنت فعلا فحص العنصر، دعونا نرى ما اذا كنا نستطيع رؤية ذلك. 1088 01:04:34,950 --> 01:04:38,550 اسمحوا لي أن فحص العنصر، اسمحوا لي أن انتقل لأسفل قليلا، 1089 01:04:38,550 --> 01:04:44,320 اسمحوا لي أن اختيار عناصر أكثر من هنا، ثم لاحظ المفتش DOM داخل كروم. 1090 01:04:44,320 --> 01:04:48,840 انها حرفيا تغيير ذهابا وإيابا كل ميلي ثانية 500. 1091 01:04:48,840 --> 01:04:55,660 إذا ذهبنا إلى صديقنا نيت، 1092 01:04:55,660 --> 01:05:00,020 إذا كنت من أي وقت مضى يتساءل كيف يعمل هذا، فكرة مشابهة مع فاصل، 1093 01:05:00,020 --> 01:05:04,810 ولكن في الواقع هو جعل نيت الاستخدام الفعال للغاية من اللون في هذه الحالة بالذات هنا. 1094 01:05:04,810 --> 01:05:07,350 بحيث ما نقوم به في الواقع أكثر مع هذا؟ 1095 01:05:07,350 --> 01:05:09,990 دعونا فتح مثال آخر ومحاولة شيء 1096 01:05:09,990 --> 01:05:12,940 هذا برمجيا حتى أكثر فائدة من جعل الامور طرفة. 1097 01:05:12,940 --> 01:05:17,990 اسمحوا لي أن انتقل إلى الدليل أشكال لدينا اليوم والذهاب إلى form0. 1098 01:05:17,990 --> 01:05:20,820 وكان هذا بأبشع صورة ممكنة أن أتمكن من الخروج مع، 1099 01:05:20,820 --> 01:05:23,290 واسمحوا لي أن تظهر لك فقط ما يبدو في مستعرض. 1100 01:05:23,290 --> 01:05:28,960 >> اسمحوا لي أن انتقل إلى المضيف المحلي / أشكال، وهذا هو form0. 1101 01:05:28,960 --> 01:05:33,400 هذا هو السوبر شكل HTML القبيح الذي يحتوي على حقول قليلة للبريد الإلكتروني، لكلمة، 1102 01:05:33,400 --> 01:05:37,190 كلمة المرور، ثم خانة اختيار قليلا على الموافقة على بعض الشروط والأحكام. 1103 01:05:37,190 --> 01:05:41,350 الصيد هو إذا أقوم بزيارة هذا الشكل، وأنا لا أريد أن أقدم لكم عنوان بريدي الإلكتروني، 1104 01:05:41,350 --> 01:05:44,730 أنا لا أريد أن أوافق على الشروط والأحكام ربما، أستطيع انقر فوق تسجيل 1105 01:05:44,730 --> 01:05:46,920 ويتيح لي من خلال أي حال. 1106 01:05:46,920 --> 01:05:50,800 يحدث هذا أن يقدم إلى ملف PHP غبي دعا dump.php. 1107 01:05:50,800 --> 01:05:58,420 كل ما يفعله هو طباعة محتويات $ _GET فقط لأغراض التشخيص. 1108 01:05:58,420 --> 01:06:01,580 وهذا ما تم تقديمه من قبل المستخدم للتو. 1109 01:06:01,580 --> 01:06:05,010 ولكن لنفترض أننا نريد فعلا للتحقق من صحة تقديم النموذج المستخدم. 1110 01:06:05,010 --> 01:06:06,530 اسمحوا لي أن انتقل إلى الإصدار 1. 1111 01:06:06,530 --> 01:06:11,420 هذا هو form1.html. يبدو جماليا مثلما سيئة، ولكن لاحظ كيف يتوهم هو عليه. 1112 01:06:11,420 --> 01:06:15,450 إذا كنت انقر فوق تسجيل دون التعاون، وأحصل صرخ في و. 1113 01:06:15,450 --> 01:06:17,320 "يجب توفير عنوان بريدك الإلكتروني." 1114 01:06:17,320 --> 01:06:21,670 حسنا. لذلك اسمحوا لي أن أحاول ذلك. حتى malan@harvard.edu. أنا لست بحاجة إلى كلمة مرور. 1115 01:06:21,670 --> 01:06:25,100 تسجيل. "يجب توفير كلمة مرور." حسنا. 1116 01:06:25,100 --> 01:06:28,470 ولذا فإنني سوف توفر كلمة مرور من قرمزي. تسجيل. 1117 01:06:28,470 --> 01:06:32,300 "كلمات المرور غير متطابقة." لا بد لي من كتابة هنا الآن في قرمزي. 1118 01:06:32,300 --> 01:06:35,710 راجعت قصد ذلك. تسجيل. 1119 01:06:35,710 --> 01:06:39,860 "يجب أن توافق على البنود والشروط". حسنا. أوافق هناك. تسجيل. 1120 01:06:39,860 --> 01:06:43,700 والآن يظهر لي الناتج التشخيص هناك. 1121 01:06:43,700 --> 01:06:45,630 >> ذلك ما حدث للتو؟ 1122 01:06:45,630 --> 01:06:48,330 لدينا هذه القدرة على التحقق من صحة التقارير النموذج. 1123 01:06:48,330 --> 01:06:51,420 في الواقع، إذا كنت فعلت الغوص في pset 7، هناك وظيفة الاعتذار 1124 01:06:51,420 --> 01:06:54,620 أن يجعل من السهل جدا أن يصيح في المستخدم مع رسالة على الشاشة. 1125 01:06:54,620 --> 01:06:57,580 أنا باستخدام آلية مختلفة قليلا، وظيفة التنبيه، 1126 01:06:57,580 --> 01:07:03,690 وهي ليست وظيفة لابتسم لأنه يجعل على العضو رسائل قبيحة جدا. 1127 01:07:03,690 --> 01:07:05,710 ولكن دعونا نرى ما أفعله هنا. 1128 01:07:05,710 --> 01:07:09,620 هذا هو form1.html، وتلاحظ أن لدي بعض بناء جملة مألوفة جدا: 1129 01:07:09,620 --> 01:07:12,920 العلامة الجسم، العلامة النموذج، سمة العمل، سمة الأسلوب. 1130 01:07:12,920 --> 01:07:17,050 ولكن لاحظ لقد أعطيت بلدي نموذج معرف فريد للراحة. 1131 01:07:17,050 --> 01:07:19,190 ثم انني قد حصلت على حقل البريد الإلكتروني الذي هو نوع النص، 1132 01:07:19,190 --> 01:07:23,780 حقل كلمة المرور نوعه هو حقل كلمة السر تأكيد، التي هي كلمة السر نوع، 1133 01:07:23,780 --> 01:07:28,070 ثم مربع اختيار اسمه اتفاق هنا، هو نوع مربع. 1134 01:07:28,070 --> 01:07:30,380 ثم لقد حصلت على زر إرسال. 1135 01:07:30,380 --> 01:07:33,050 ولكن لاحظت في الجزء العلوي أكثر ما لدي. 1136 01:07:33,050 --> 01:07:35,810 بادئ ذي بدء، هناك استعمال آخر للعلامة النصي. 1137 01:07:35,810 --> 01:07:40,520 إذا كان لديك بعض شفرة جافا سكريبت في ملف آخر، تماما مثل مع CSS يمكنك إدراجه. 1138 01:07:40,520 --> 01:07:44,530 ويمكنك أن تفعل ذلك مع المصدر النصي، ثم لاحظ وأنا ربط على ما يبدو 1139 01:07:44,530 --> 01:07:50,349 لgoogleapis.com إلى مسار طويل جدا ولكن اسم الملف الذي ينتهي في jquery.min 1140 01:07:50,349 --> 01:07:52,420 لأدنى حد ممكن. شبيبة. 1141 01:07:52,420 --> 01:07:55,969 مسج هي مكتبة جافا سكريبت السوبر شعبية لأن يجعل من مجرد سكريبت 1142 01:07:55,969 --> 01:07:58,230 ومما يزيد من سهولة الاستخدام. 1143 01:07:58,230 --> 01:08:00,610 أصبح بشكل فعال على مستوى الواقع. 1144 01:08:00,610 --> 01:08:04,090 على الرغم من ذلك ما كنت على وشك أن نرى ليست نقية جافا سكريبت في حد ذاتها، 1145 01:08:04,090 --> 01:08:09,340 بل هو على رأس مكتبة جافا سكريبت يشبه إلى حد كبير مكتبة CS50 هو عبارة عن طبقة 1146 01:08:09,340 --> 01:08:13,670 على رأس من التعليمات البرمجية C على مستوى منخفض، والحقيقة هي تقريبا كل شخص على الإنترنت يستخدمه. 1147 01:08:13,670 --> 01:08:18,030 لذلك فان هذه ليست عجلات التدريب. هذا هو مجرد ممارسة أفضل في هذه الأيام. 1148 01:08:18,030 --> 01:08:22,830 تلاحظ الآن أن أدناه هو علامة بلدي النصي الخاصة، وتلاحظ ما فعلته هنا. 1149 01:08:22,830 --> 01:08:27,450 تبين أن يفعل شيئا مسج يتوهم قليلا. 1150 01:08:27,450 --> 01:08:29,660 سكريبت لديه علامات الدولار، لكنهم لا معنى لها. 1151 01:08:29,660 --> 01:08:32,870 >> انهم مثل الحرف A B أو C. أو 1152 01:08:32,870 --> 01:08:36,670 وقد اعتمدت مسج ببساطة اتفاقية أو نوع من المطالبة وضعت إلى حقيقة 1153 01:08:36,670 --> 01:08:40,280 التي من شأنها أن تكون رمزا $ الخاصة. 1154 01:08:40,280 --> 01:08:44,950 وذلك في أقرب وقت قمت بتحميل هذا الملف جافا سكريبت العالمية هنا مع العلامة النصي، 1155 01:08:44,950 --> 01:08:49,080 لديك حق الوصول إلى متغير عالمي الخاص الذي يسمى $. 1156 01:08:49,080 --> 01:08:53,009 أكثر بشكل صحيح يسمى مسج، ولكن هذا لا يبدو تقريبا مثل جنسي $. 1157 01:08:53,009 --> 01:08:56,250 ولكن $ ليس له معنى خاص. في PHP كان لها معنى خاص. 1158 01:08:56,250 --> 01:08:58,440 كان عليك أن يكون ذلك أمام متغير. 1159 01:08:58,440 --> 01:09:01,670 هذا هو مجرد شيء مثير أن أخذوا على. 1160 01:09:01,670 --> 01:09:03,389 ما يجري هنا؟ 1161 01:09:03,389 --> 01:09:08,830 لاحظت أنا عابرة إلى وظيفة مسج المستند متغير عمومي 1162 01:09:08,830 --> 01:09:10,860 ثم ادعو. جاهزة. 1163 01:09:10,860 --> 01:09:15,480 ما لا مسج أساسا هو أنه يسمح لك أن تأخذ بعض الأشياء سكريبت الفانيليا 1164 01:09:15,480 --> 01:09:17,889 مثل كائن مستند، الكائن النافذة، 1165 01:09:17,889 --> 01:09:20,790 وإذا كنت تمر في وظيفة لمسج - 1166 01:09:20,790 --> 01:09:24,429 ومرة أخرى، أن تكون واضحة، وهذا هو دالة يسمى مسج - 1167 01:09:24,429 --> 01:09:28,240 ما يفعله هو أنه يعود لك إصدار خاص من الوثيقة 1168 01:09:28,240 --> 01:09:30,700 لديها أكثر الوظائف المرتبطة به. 1169 01:09:30,700 --> 01:09:34,760 حتى في جافا سكريبت الخام ليس هناك وظيفة جاهزة، 1170 01:09:34,760 --> 01:09:37,810 ولكن إذا قمت بتمرير الوثيقة إلى وظيفة مسج الأولى، 1171 01:09:37,810 --> 01:09:40,960 فإنها ترجع لك إصدار خاص من كائن مستند 1172 01:09:40,960 --> 01:09:43,030 يحتوي على ميزات أكثر الهوى. 1173 01:09:43,030 --> 01:09:48,230 وهذا هو السبب الذي جعل الناس ترغب في ذلك. فإنه يجعل الأمور أسهل فقط القيام به، ونحن على وشك أن نرى. 1174 01:09:48,230 --> 01:09:49,820 فماذا يعني هذا السطر من التعليمات البرمجية يعني؟ 1175 01:09:49,820 --> 01:09:52,690 هذا السطر من التعليمات البرمجية هنا يعني عندما يكون المستند على استعداد - 1176 01:09:52,690 --> 01:09:56,830 وبعبارة أخرى، بمجرد الانتهاء من قراءة هذا المتصفح أعلى إلى أسفل الملف - 1177 01:09:56,830 --> 01:09:59,200 والمضي قدما في تنفيذ الدالة التالية. 1178 01:09:59,200 --> 01:10:03,540 ما هو حقا للاهتمام في جافا سكريبت - وPHP وهذا أيضا - 1179 01:10:03,540 --> 01:10:05,450 هو مجهول وظائف. 1180 01:10:05,450 --> 01:10:10,560 في جافا سكريبت إمكانية تعريف الوظائف التي ليس لها اسم ولكن لديهم الجسم. 1181 01:10:10,560 --> 01:10:12,570 تلاحظ ما يحدث هنا. 1182 01:10:12,570 --> 01:10:16,220 >> هذه هي وظيفة تسمى جاهزة، وهذا يعني فقط القيام بما يلي 1183 01:10:16,220 --> 01:10:20,220 عندما صفحة ويب كاملة على استعداد، عندما يكون كل ذلك تم قراءة في من الخادم. 1184 01:10:20,220 --> 01:10:23,090 ماذا تريد أن تفعل؟ أريد أن تنفيذ قطعة من التعليمات البرمجية. 1185 01:10:23,090 --> 01:10:27,120 لاحظ أننا لا نريد أن تنفيذ هذه التعليمات البرمجية على الفور. 1186 01:10:27,120 --> 01:10:34,350 إذا كنت حذف هذه، فإن هذا يعني على الفور بدء في تنفيذ هذه الأسطر من التعليمات البرمجية. 1187 01:10:34,350 --> 01:10:39,040 ولكن الحقيقة أن أقوله لا، لا، لا، هذا التفاف وظيفة في مثل هذا المجهول 1188 01:10:39,040 --> 01:10:43,000 يعني عدم تنفيذه حتى الآن؛ يطلق عليه في نهاية المطاف. 1189 01:10:43,000 --> 01:10:45,430 رأينا هذا قبل لحظة في مثالنا النموذج السابق. 1190 01:10:45,430 --> 01:10:49,990 ما وظيفة لم نسميه في نهاية المطاف، 500 مللي ثانية في وقت لاحق؟ الوميض. 1191 01:10:49,990 --> 01:10:51,480 وبالتالي فإن الفكرة نفسها. 1192 01:10:51,480 --> 01:10:53,950 مرة أخرى، حتى لو كان هذا يبدو قليلا غريبة، تأخذ فقط في الوقت الراهن على الإيمان 1193 01:10:53,950 --> 01:10:57,060 أن تعلن وظيفة مجهول أن يطلق في نهاية المطاف، 1194 01:10:57,060 --> 01:11:01,720 تكتب ببساطة وظيفة () { 1195 01:11:01,720 --> 01:11:05,380 فما رمز نحن ذاهبون لتنفيذ في نهاية المطاف؟ ما يلي. 1196 01:11:05,380 --> 01:11:10,460 هذا يبدو جدا جديدة قليلا، ولكن هذا يعني وهنا وظيفة مسج، 1197 01:11:10,460 --> 01:11:13,430 وهذا هو الآن اختصار. 1198 01:11:13,430 --> 01:11:18,830 هذا مقتطف من HTML في الجزء السفلي من الشاشة بالطبع لديه بعض التمثيل شجرة. 1199 01:11:18,830 --> 01:11:21,730 انها ليست هذه. هذه الصفحة هو أكثر إثارة للاهتمام من هذا المثال مرحبا العالم. 1200 01:11:21,730 --> 01:11:25,210 ولكن هناك بعض الأشجار الذي يتوافق مع هذه HTML. 1201 01:11:25,210 --> 01:11:28,910 سيكون من ألم في الرقبة لدينا لتنفيذ بعض نوع من وظيفة العودية 1202 01:11:28,910 --> 01:11:34,380 لبدء في عقدة الجذر ومن ثم العثور على العقدة التي ID هو التسجيل. 1203 01:11:34,380 --> 01:11:38,340 وذلك ما يجعل من السهل سوبر مسج بالنسبة لنا هو حرفيا هذا. 1204 01:11:38,340 --> 01:11:43,000 المضي قدما والحصول على البيانات أيا كان شكل أو DIV أيا كان، أيا كان عنصر HTML 1205 01:11:43,000 --> 01:11:45,820 وجود هوية للتسجيل. 1206 01:11:45,820 --> 01:11:52,440 وهذا يعادل document.getElementById ('تسجيل'). 1207 01:11:52,440 --> 01:11:54,170 >> لماذا الناس مثل مسج؟ 1208 01:11:54,170 --> 01:12:00,110 لأنه أقصر لكتابة. ولكن هذا كل ما هو عليه. انها نفس الفكرة. 1209 01:12:00,110 --> 01:12:02,630 يحصل لي العلامة التي ID هو التسجيل. 1210 01:12:02,630 --> 01:12:06,300 وعند تقديم هذه العلامة، الذي صادف أن يكون شكلا،، 1211 01:12:06,300 --> 01:12:08,300 والمضي قدما في تنفيذ هذه التعليمات البرمجية. 1212 01:12:08,300 --> 01:12:11,320 لذلك دعونا نلقي نظرة واحدة الآن في مستوى قيامنا بهذا الأمر التحقق من صحة النموذج. 1213 01:12:11,320 --> 01:12:15,950 بناء الجملة خفي المسلم في البداية، ولكن ما الذي يحدث؟ 1214 01:12:15,950 --> 01:12:21,050 إذا كان هذا الخط من التعليمات البرمجية صحيحا، انا ذاهب الى الصراخ للمستخدم لتوفير عنوان البريد الإلكتروني الخاص به. 1215 01:12:21,050 --> 01:12:22,970 فما هو هذا السطر من التعليمات البرمجية؟ 1216 01:12:22,970 --> 01:12:25,560 $ يعني مسج. تلاحظ الآن هذا. 1217 01:12:25,560 --> 01:12:27,920 هذا هو نوع من مثل CSS. 1218 01:12:27,920 --> 01:12:33,370 إذا كنت قد اتجه الى CSS حتى الآن، عليك أن تعرف أن هذا يعني العنصر الذي هو معرف تسجيل. 1219 01:12:33,370 --> 01:12:39,840 مساحة يعني إيجاد طفل أو سليل تسجيل اسمه الإدخال. 1220 01:12:39,840 --> 01:12:42,970 ومن ثم هذا الشيء بين قوسين معقوفين هو عامل تصفية قليلا. 1221 01:12:42,970 --> 01:12:47,010 وحتى لو كان هذا يبدو خفي، وهذا يعني فقط الانتقال إلى النموذج الذي هو ID التسجيل، 1222 01:12:47,010 --> 01:12:51,230 انتقل إلى إدخال عنصر داخل هذا اسمه البريد الإلكتروني، 1223 01:12:51,230 --> 01:12:55,440 وبعد ذلك الحصول على قيمتها، مهما كانت قيمته يحدث أن تكون - 1224 01:12:55,440 --> 01:12:59,670 قوات الدفاع الذاتى الجوية اذا كان هذا كل ما كتبته أو malan@harvard.edu اذا كان هذا ما كتبته أنا. 1225 01:12:59,670 --> 01:13:05,250 إذا كان الأمر كذلك قيمة حقل البريد الإلكتروني للنموذج == لا شيء، يصيح في المستخدم. 1226 01:13:05,250 --> 01:13:09,700 آخر إذا كانت قيمة حقل كلمة المرور == لا شيء، يصيح في المستخدم. 1227 01:13:09,700 --> 01:13:19,520 >> آخر إذا كانت قيمة حقل كلمة المرور لا تساوي قيمة حقل تأكيد، 1228 01:13:19,520 --> 01:13:22,850 التي كانت العنصر شكل آخر، يصيح في المستخدم. 1229 01:13:22,850 --> 01:13:25,680 ثم أخيرا - وهذا واحد لديه أيضا بعض بناء الجملة جديدة من تلقاء نفسها، 1230 01:13:25,680 --> 01:13:29,270 ولكن مرة واحدة كنت قد رأيت ذلك، فإنه على الأقل أكثر من ذلك بقليل معقولة - 1231 01:13:29,270 --> 01:13:34,060 والا اذا شكل الذي هو معرف تسجيل يحتوي على عنصر المدخلات اسمه اتفاق 1232 01:13:34,060 --> 01:13:39,720 ويتم اختبار ذلك، والمضي قدما ويصيح في المستخدم. 1233 01:13:39,720 --> 01:13:42,520 لذلك أنا أعترف تماما هذا هو تماما الساحقة للوهلة الأولى. 1234 01:13:42,520 --> 01:13:46,530 انها الكثير من بناء جملة جديدة. ولكن كل مسج يلي هذه الأنواع من الأنماط. 1235 01:13:46,530 --> 01:13:49,880 وبصراحة، لم أكن أعرف حتى هذه كانت موجودة حتى قبل بضع دقائق. 1236 01:13:49,880 --> 01:13:53,640 أنا googled، "كيف تحقق مما إذا تم سحب مربع اختيار في مسج؟" 1237 01:13:53,640 --> 01:13:55,680 وهذا هو لغوي، لأنه لا يوجد طرق مختلفة للقيام بذلك 1238 01:13:55,680 --> 01:13:58,010 مع شفرة جافا سكريبت الفعلية الخام. 1239 01:13:58,010 --> 01:14:01,030 وذلك في الصفحة الأولى من مجموعة مشكلة 7 يؤكد، 1240 01:14:01,030 --> 01:14:04,500 pset 7 هو إلى حد كبير ممارسة في إلباس الحذاء نفسك 1241 01:14:04,500 --> 01:14:08,650 حيث قمنا بتوفير، ونأمل، والإطار المفاهيمي الذي لمعالجة pset. 1242 01:14:08,650 --> 01:14:12,280 >> ولكن كما هو الحال غالبا مع تصميم المواقع الإلكترونية، والامر متروك لكم حقا لكزة حولها، 1243 01:14:12,280 --> 01:14:16,680 إدراج قصاصات من رمز وأمثلة من الويب طالما كنت أذكر منهم 1244 01:14:16,680 --> 01:14:17,960 في شروط على أن الورقة الأولى، 1245 01:14:17,960 --> 01:14:21,460 وندرك أن تعلم HTML، CSS، JavaScript و SQL حتى 1246 01:14:21,460 --> 01:14:26,020 ومن المفترض حقا أن تكون هذه العملية في المنزل ونحن نبدأ في اتخاذ هذه العجلات من التدريب. 1247 01:14:26,020 --> 01:14:29,150 وندرك أيضا أن هناك أشياء كثيرة يمكنك القيام به أكثر مع متصفح. 1248 01:14:29,150 --> 01:14:33,790 داخل معظم هذه العناصر هناك أشياء أخرى تسمى معالجات الأحداث. 1249 01:14:33,790 --> 01:14:37,140 وعلى الرغم من أننا مجرد النظر في تلك onsubmit ودعا onready، 1250 01:14:37,140 --> 01:14:40,310 يمكنك أن تفعل أشياء مثل حدثين onkeydown، onkeyup، 1251 01:14:40,310 --> 01:14:43,410 مثل عندما يلمس المستخدم مفتاح، يمكنك الاستماع لذلك ومفتاح رفع. 1252 01:14:43,410 --> 01:14:45,940 جوجل لديها اختصارات لوحة المفاتيح. 1253 01:14:45,940 --> 01:14:49,490 كيف تتعامل Google تنفيذ اختصارات لوحة المفاتيح مثل C لإنشاء؟ 1254 01:14:49,490 --> 01:14:54,120 يستمعون للأحداث، كما انهم يسمى، مثل onkeypress أو onkeyup وحدثين onkeydown. 1255 01:14:54,120 --> 01:14:56,360 إذا كنت قد سبق لك حلقت مؤشر الفأرة فوق بعض خيار القائمة 1256 01:14:56,360 --> 01:15:00,180 وجميع من فويلا، فجأة، تظهر قائمة أو يتغير لون الرسم، 1257 01:15:00,180 --> 01:15:01,920 كيف يفعلون ذلك؟ 1258 01:15:01,920 --> 01:15:06,940 بدلا من الاستماع لonready أو onsubmit، كنت استمع لonmouseover أو onmouseout. 1259 01:15:06,940 --> 01:15:10,920 >> لذلك باختصار، مع هذه الأساسيات البسيطة جدا التي قد بدأنا تخدش سطح اليوم 1260 01:15:10,920 --> 01:15:13,940 وسنقوم الغوص في مزيد من يوم الاربعاء، لديك، على نحو متزايد، 1261 01:15:13,940 --> 01:15:17,530 القدرة على تنفيذ ذلك النوع من الأشياء التي كنت بالفعل على دراية. 1262 01:15:17,530 --> 01:15:21,620 لذلك دعونا تنتهي عند هذا الحد، وسنواصل هذا يوم الاربعاء. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]