1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH بلومبرج: مرحبا الجميع. 3 00:00:07,030 --> 00:00:09,530 ونحن في طريقنا للبدء بضع دقائق في وقت مبكر 4 00:00:09,530 --> 00:00:11,738 لأن لدينا الكثير كله المواد من خلال الحصول على. 5 00:00:11,738 --> 00:00:12,790 أنا هانا. 6 00:00:12,790 --> 00:00:13,865 أنا TF. 7 00:00:13,865 --> 00:00:16,239 ماريا سوف يكون الانضمام لنا في غضون بضع دقائق. 8 00:00:16,239 --> 00:00:17,560 تدرس قسم اليمين من قبل. 9 00:00:17,560 --> 00:00:19,351 أنا أدرس قسم اليمين بعد، لذلك نحن ذاهبون 10 00:00:19,351 --> 00:00:21,200 أن يبقيه إلى ساعة ونصف. 11 00:00:21,200 --> 00:00:25,490 >> لذلك كما سترى هنا، لدينا تماما عدد قليل من الموضوعات نحن بحاجة للحصول على من خلال، 12 00:00:25,490 --> 00:00:27,200 ولذا فإننا سوف يذهب قليلا بسرعة. 13 00:00:27,200 --> 00:00:31,140 ولكن إذا كان في أي نقطة نقول شيئا بسرعة كبيرة جدا أو أنك لا تفهم، 14 00:00:31,140 --> 00:00:33,170 لا تتردد في المقاطعة مع الأسئلة. 15 00:00:33,170 --> 00:00:36,610 نحن نريد أن تكون قادرة على جعل هذا استعراض الدورة بصفة مفيدة لكم جميعا 16 00:00:36,610 --> 00:00:37,973 ممكن. 17 00:00:37,973 --> 00:00:38,920 رائع. 18 00:00:38,920 --> 00:00:41,650 >> لذلك دعونا الحق في القفز مع بعض الموضوعات التي نحن في الواقع 19 00:00:41,650 --> 00:00:46,980 جدا، وتغطيتها لفترة وجيزة للغاية بالنسبة لل مسابقة 0 في جلسة المراجعة مسابقة 0. 20 00:00:46,980 --> 00:00:48,840 ذلك بدءا من القوائم المرتبطة. 21 00:00:48,840 --> 00:00:52,090 وذلك فقط تأكد أن لديك بعض المعارف الأساسية حول القوائم المرتبطة 22 00:00:52,090 --> 00:00:55,110 ومريحة به بعض العمليات الأساسية. 23 00:00:55,110 --> 00:00:58,560 >> حتى لمجرد النظر، مرتبطة قوائم هي أفضل من صفائف 24 00:00:58,560 --> 00:01:01,020 لأنها يمكن أن تنمو بشكل حيوي. 25 00:01:01,020 --> 00:01:03,300 لذلك علينا أن ميزة كبيرة. 26 00:01:03,300 --> 00:01:06,031 لقد رأينا منهم يستخدم في الجداول التجزئة عندما كنا 27 00:01:06,031 --> 00:01:08,280 لا أعرف بالضبط كم عدد الأشياء التي كنت تريد الذهاب الى 28 00:01:08,280 --> 00:01:10,900 لتضاف الى هيكل بياناتنا. 29 00:01:10,900 --> 00:01:15,700 للأسف، لدينا قطعة من القائمة المرتبطة في جميع أنحاء الذاكرة، 30 00:01:15,700 --> 00:01:20,820 لذلك نحن لن تكون بالضرورة قادرة على القيام الوصول وقت ثابت 31 00:01:20,820 --> 00:01:22,502 إلى أي عنصر في القائمة المرتبطة. 32 00:01:22,502 --> 00:01:24,210 من أجل العثور على عنصر معين، ونحن 33 00:01:24,210 --> 00:01:26,510 أن تكرار كل الطريق من البداية. 34 00:01:26,510 --> 00:01:30,610 لذلك نضع في اعتبارنا أن معظم العمليات الأساسية هي أوميغا 1. 35 00:01:30,610 --> 00:01:32,130 لذلك إدراج هو مجرد الذهاب الى اتخاذ 1. 36 00:01:32,130 --> 00:01:37,520 حذف سيستغرق ن لأننا أن تذهب تجد من القائمة. 37 00:01:37,520 --> 00:01:39,260 والبحث أن تأخذ، في أسوأ الأحوال، ن. 38 00:01:39,260 --> 00:01:42,330 لا نستطيع أن نفعل شيئا من هذا القبيل البحث الثنائي على قائمة مرتبطة 39 00:01:42,330 --> 00:01:45,101 منذ لا نستطيع فقط القفز عشوائيا إلى الوسط. 40 00:01:45,101 --> 00:01:45,600 رائع. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 رائع. 43 00:01:48,960 --> 00:01:50,270 >> قليلا من المداخن. 44 00:01:50,270 --> 00:01:53,980 هذا، مرة أخرى، جاء في مسابقة 0، لذلك أنت يجب أن تكون مريحة السوبر معها. 45 00:01:53,980 --> 00:01:57,210 ولكن للمداخن، فإننا نطلب منك لنتذكر كومة من الصواني. 46 00:01:57,210 --> 00:01:59,940 وسيكون لأول مرة في، آخر من يخرج. 47 00:01:59,940 --> 00:02:02,272 لذلك نحن كومة الامور في المكدس، ثم 48 00:02:02,272 --> 00:02:04,980 إذا كنا نحاول أن يأخذ شيئا off-- الذي نسميه ظهرت قبالة 49 00:02:04,980 --> 00:02:06,581 وstack-- نأتي من أعلى. 50 00:02:06,581 --> 00:02:09,289 وإذا كنا نريد أن نضع شيئا في المكدس، ونحن نسميها دفع. 51 00:02:09,289 --> 00:02:13,170 لذلك دائما ما يكون يشبون من أسفل وكأنه كومة من الصواني. 52 00:02:13,170 --> 00:02:14,540 رائع. 53 00:02:14,540 --> 00:02:17,607 >> لقد رأيت أكوام تنفيذها مع كل القوائم المرتبطة والمصفوفات. 54 00:02:17,607 --> 00:02:19,440 إذا كنت تنفيذ مع المصفوفات، وتريد 55 00:02:19,440 --> 00:02:22,350 للتأكد من أن تتبع كل من الحجم والقدرة. 56 00:02:22,350 --> 00:02:27,540 لذلك حجم سيكون التيار عدد من الأمور في الكدسة، 57 00:02:27,540 --> 00:02:32,900 في حين أن القدرة هو العدد الإجمالي من الأشياء التي يمكن تخزينها في الكدسة. 58 00:02:32,900 --> 00:02:34,220 رائع. 59 00:02:34,220 --> 00:02:35,767 >> على نحو مماثل للغاية، لدينا قوائم الانتظار. 60 00:02:35,767 --> 00:02:38,850 في هذه الحالة، بدلا من التفكير كومة من الأدراج، والتفكير في خط. 61 00:02:38,850 --> 00:02:40,697 هذه ستكون أول مرة في، أولا خارج. 62 00:02:40,697 --> 00:02:42,780 حتى إذا كنت يصطفون ل شيء في المتجر، 63 00:02:42,780 --> 00:02:46,920 نأمل أن أول شخص في الخط سوف يتم ساعد أولا. 64 00:02:46,920 --> 00:02:49,350 >> بدلا من أن تقول دفعة و البوب ​​كما نفعل مع المكدس، 65 00:02:49,350 --> 00:02:52,000 نقول فقط إدراج بقائمة الانتظار وdequeue. 66 00:02:52,000 --> 00:02:54,970 ومرة أخرى، إذا كنت تنفيذ ذلك مع صفيف، 67 00:02:54,970 --> 00:02:56,720 نحن بحاجة للحفاظ على المسار ليس فقط حجم 68 00:02:56,720 --> 00:03:02,390 والقدرة، ولكن أيضا الرأس، والتي سيكون مقدمة قائمة الانتظار لدينا. 69 00:03:02,390 --> 00:03:03,010 رائع. 70 00:03:03,010 --> 00:03:05,770 أي أسئلة عن أي من ذلك؟ 71 00:03:05,770 --> 00:03:06,320 رائع. 72 00:03:06,320 --> 00:03:07,640 تتحرك على طول الحق. 73 00:03:07,640 --> 00:03:08,564 >> OK، الجداول التجزئة. 74 00:03:08,564 --> 00:03:10,605 هنا حيث يبدأ الحصول على اهتمام حقا. 75 00:03:10,605 --> 00:03:14,150 لذلك جدول تجزئة هو تطبيق واحد من مجموعة النقابي. 76 00:03:14,150 --> 00:03:16,700 وذلك أساسا ما حدث ولدينا كل هذه المدخلات، 77 00:03:16,700 --> 00:03:18,750 ونحن تعطيه لتجزئة وظيفة الذي يقول: 78 00:03:18,750 --> 00:03:21,840 حسنا، هذا هو المكان في جدول تجزئة أنه ينتمي. 79 00:03:21,840 --> 00:03:24,860 >> حتى أبسط دالة البعثرة التي شهدناها للتو قائلا: 80 00:03:24,860 --> 00:03:28,170 OK، لنفترض أننا نريد أن نضع السلاسل في جدول التجزئة لدينا. 81 00:03:28,170 --> 00:03:30,870 وفكرة بسيطة حقا قد يكون أن أقول، OK، 82 00:03:30,870 --> 00:03:34,350 دعونا فرز فقط من قبل الحرف الأول من الكلمة. 83 00:03:34,350 --> 00:03:37,570 حتى تستطيع أن ترى هنا، ونحن نأخذ الموز، وضعنا من خلال وظيفة تجزئة، 84 00:03:37,570 --> 00:03:40,190 ويقول: مهلا، هذا يجب أن تذهب في الفهرس 1. 85 00:03:40,190 --> 00:03:45,120 >> لذلك يمكن أن نفكر أساسا لتجزئة الجدول كما حفنة من الدلاء مختلفة. 86 00:03:45,120 --> 00:03:49,880 ولكل من هذه الدلاء يجري عقد رئيس قائمة مرتبطة. 87 00:03:49,880 --> 00:03:55,030 وفي ذلك قائمة مرتبطة هو المكان الذي يمكن فعلا وضع القطع المختلفة من البيانات. 88 00:03:55,030 --> 00:03:57,820 >> أكثر الغوص ذلك قليلا في وظيفة تجزئة، وهنا 89 00:03:57,820 --> 00:03:59,870 على سبيل المثال أنا فقط وصف حيث نقول فقط، 90 00:03:59,870 --> 00:04:02,460 OK، واتخاذ الحرف الأول كلمة ونحن 91 00:04:02,460 --> 00:04:03,990 الذهاب إلى ترتيب هذا الامر في الدلاء. 92 00:04:03,990 --> 00:04:08,490 لذلك يفترض، سوف يكون هناك 26 الدلاء، واحد لكل حرف من الحروف الأبجدية. 93 00:04:08,490 --> 00:04:10,090 لماذا ليست هذه وظيفة تجزئة كبيرة؟ 94 00:04:10,090 --> 00:04:13,461 ما يجعل هذا غير مثالية؟ 95 00:04:13,461 --> 00:04:13,960 نعم. 96 00:04:13,960 --> 00:04:15,790 >> الحضور: وأنت تسير أن يكون التصادم. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH بلومبرج: نعم، بالضبط. 98 00:04:16,390 --> 00:04:18,000 وأنت تسير أن يكون التصادم. 99 00:04:18,000 --> 00:04:18,954 بحيث شيء واحد. 100 00:04:18,954 --> 00:04:21,620 وسوف نتحدث عن كيف يمكننا إصلاح التصادم في ثانية واحدة. 101 00:04:21,620 --> 00:04:23,980 مشكلة أخرى مع هذا خاصة ظيفة تجزئة 102 00:04:23,980 --> 00:04:25,980 يختلف هذا لدينا دلاء ستكون 103 00:04:25,980 --> 00:04:28,960 أحجام جميلة مختلفة اختلافا جذريا. 104 00:04:28,960 --> 00:04:33,840 >> ونحن نعلم أن هناك الكثير كله المزيد من الكلمات التي تبدأ مع A من X، 105 00:04:33,840 --> 00:04:38,980 لذلك نحن ذاهبون الى جدا دلاء غير المتوازنة في جدول التجزئة لدينا. 106 00:04:38,980 --> 00:04:40,050 رائع. 107 00:04:40,050 --> 00:04:41,340 لذلك نعم، دعونا نعود إلى نقطة التصادم. 108 00:04:41,340 --> 00:04:42,900 ماذا نفعل اذا كان هناك تصادم؟ 109 00:04:42,900 --> 00:04:44,490 >> لدينا بضعة خيارات مختلفة. 110 00:04:44,490 --> 00:04:47,600 حتى واحد، لذلك نفترض أننا نحاول لوضع بري في جدول التجزئة لدينا. 111 00:04:47,600 --> 00:04:50,370 ونحن نرى، أوه، نريد لوضعها في مؤشر 1، 112 00:04:50,370 --> 00:04:52,070 ولكن الموز يعيش بالفعل هناك. 113 00:04:52,070 --> 00:04:53,110 ماذا نحن فاعلون؟ 114 00:04:53,110 --> 00:04:54,560 لدينا خياران رئيسيان. 115 00:04:54,560 --> 00:04:58,050 >> رقم واحد هو أننا نستطيع أن نقول، OK، ليس هناك مجال في مؤشر 1، 116 00:04:58,050 --> 00:05:03,210 ولكن دعونا فقط مواصلة البحث من خلال حتى نتمكن من العثور على بقعة مفتوحة أخرى. 117 00:05:03,210 --> 00:05:08,490 ولذا فإننا سوف أقول، OK، دعونا نضع في بقعة 3. 118 00:05:08,490 --> 00:05:09,240 هذا خيار واحد. 119 00:05:09,240 --> 00:05:11,470 وهذا يسمى خطية التحقيق. 120 00:05:11,470 --> 00:05:15,500 >> والخيار الثاني قائلا: حسنا، حسنا، دعونا فقط جعل كل من هذه الدلاء 121 00:05:15,500 --> 00:05:17,470 يكون رؤساء القوائم المرتبطة. 122 00:05:17,470 --> 00:05:21,910 وانه موافق إذا كان هناك أكثر من شيء واحد في دلو. 123 00:05:21,910 --> 00:05:23,820 نحن ذاهبون لمجرد إلحاقها على الجبهة. 124 00:05:23,820 --> 00:05:26,032 حتى هنا يمكنك أن ترى، OK، عندما كنا إدراج التوت، ونحن 125 00:05:26,032 --> 00:05:28,240 فقط أخذت الموز، نوع من دفعت أكثر من ذلك قليلا 126 00:05:28,240 --> 00:05:29,842 وألقى التوت في هناك. 127 00:05:29,842 --> 00:05:31,050 وهذا أيضا ما يرام تماما. 128 00:05:31,050 --> 00:05:32,830 وهذا ما يسمى تسلسل منفصل. 129 00:05:32,830 --> 00:05:38,100 يمكنك التفكير في هذا الأمر نوع من مثل مجموعة من رؤساء لالقوائم المرتبطة. 130 00:05:38,100 --> 00:05:41,950 أي أسئلة حول تجزئة الجداول، وظائف التجزئة؟ 131 00:05:41,950 --> 00:05:44,290 رائع. 132 00:05:44,290 --> 00:05:45,470 >> الأشجار ومحاولات. 133 00:05:45,470 --> 00:05:47,287 حتى شجرة هو أي نوع من بنية البيانات 134 00:05:47,287 --> 00:05:49,453 حيث هناك نوعا التسلسل الهرمي أو نوعا 135 00:05:49,453 --> 00:05:51,247 من المستوى لمختلف الأشياء الخاصة بك. 136 00:05:51,247 --> 00:05:53,580 وهذا سوف تصبح سوبر واضح عندما نرى مثالا على ذلك. 137 00:05:53,580 --> 00:05:56,960 ورأينا محاولات، جنبا إلى جنب مع الجداول التجزئة، في pset5-- 138 00:05:56,960 --> 00:06:00,700 التي، مرة أخرى، لعبة عادلة تماما لهذا quiz-- عن بيانات أخرى 139 00:06:00,700 --> 00:06:03,110 هياكل ما في وسعنا تخزين أشياء مختلفة. 140 00:06:03,110 --> 00:06:06,782 في حالة القاموس، نحن تخزين مجموعة من الكلمات. 141 00:06:06,782 --> 00:06:08,240 لذلك دعونا نلقي نظرة على بعض الأشجار. 142 00:06:08,240 --> 00:06:10,190 لذلك هذا هو مثال شجرة. 143 00:06:10,190 --> 00:06:13,105 أنه يحتوي على نوع من الهيكل، هذا الهيكل الهرمي، 144 00:06:13,105 --> 00:06:15,920 حيث يمكنك أن ترى أن هذه العقدة 1 في الجزء العلوي 145 00:06:15,920 --> 00:06:20,750 لديه نوعا من رتبة أعلى من 2 و 3، التي هي فوق 4 و 5 و 6 و 7، 146 00:06:20,750 --> 00:06:22,860 ما فوق 8 و 9. 147 00:06:22,860 --> 00:06:25,210 ذلك أن كل نعنيه شجرة، لذلك يمكن أن مجرد نوع 148 00:06:25,210 --> 00:06:26,660 من صورة هذا في رأسك. 149 00:06:26,660 --> 00:06:29,050 >> الآن، لدينا اثنين من الأشجار أكثر تخصصا. 150 00:06:29,050 --> 00:06:31,070 ذلك مثال واحد هو شجرة ثنائية. 151 00:06:31,070 --> 00:06:33,290 وشجرة ثنائية هي، مرة أخرى، فقط ستكون 152 00:06:33,290 --> 00:06:37,040 بنية بيانات مع نوع من التسلسل الهرمي، ولكن كل من العقد 153 00:06:37,040 --> 00:06:38,650 يمكن أن يكون في معظم طفلين. 154 00:06:38,650 --> 00:06:41,530 هذا هو المكان الذي يأتي ثنائي كلمة من. 155 00:06:41,530 --> 00:06:43,410 لذلك هذا هو مثال شجرة ثنائية. 156 00:06:43,410 --> 00:06:45,720 لذلك أن فئة صغيرة من الأشجار. 157 00:06:45,720 --> 00:06:48,960 >> الآن دعونا نصل حتى أكثر تحديدا و الحديث عن ثنائي البحث الثنائي trees-- 158 00:06:48,960 --> 00:06:51,310 أشجار، إلى حد ما. 159 00:06:51,310 --> 00:06:56,430 حتى هنا فكرة ليست فقط لا كل عقدة لها في معظم طفلين، 160 00:06:56,430 --> 00:07:00,300 ولكن كل من الأطفال إلى اليسار ستكون أصغر 161 00:07:00,300 --> 00:07:03,450 وجميع الأطفال إلى الحق سوف تكون أكبر. 162 00:07:03,450 --> 00:07:05,890 حتى إشعار فقط لدينا شجرة ثنائية، هناك 163 00:07:05,890 --> 00:07:08,650 لا توجد علاقة بين الأرقام. 164 00:07:08,650 --> 00:07:12,990 ولكن في بحثنا ثنائي شجرة، ونحن نرى، OK، وهنا 44. 165 00:07:12,990 --> 00:07:17,080 وكل رقم إلى اليسار من 44 هو كل شيء أصغر وإلى اليمين 166 00:07:17,080 --> 00:07:17,920 هو أكبر. 167 00:07:17,920 --> 00:07:20,130 >> والذي يحمل في كل مستوى الشجرة. 168 00:07:20,130 --> 00:07:24,810 حتى هنا، وهذا هو أصغر من 22 وهذا هو أكبر من 22. 169 00:07:24,810 --> 00:07:26,390 وهذا هو شجرة البحث الثنائية. 170 00:07:26,390 --> 00:07:28,900 لماذا نعتقد انه دعا شجرة البحث الثنائية؟ 171 00:07:28,900 --> 00:07:30,651 ما خوارزمية فإنه يذكرك؟ 172 00:07:30,651 --> 00:07:31,650 الحضور: بحث ثنائي. 173 00:07:31,650 --> 00:07:32,480 HANNAH بلومبرج: بحث ثنائي. 174 00:07:32,480 --> 00:07:35,150 لأنه إذا كنت تبحث عن عدد خاص في هذه الشجرة، 175 00:07:35,150 --> 00:07:38,800 في كل نقطة، يمكنك ضرب فقط نصف بعيدة عن الشجرة، وهو أمر عظيم. 176 00:07:38,800 --> 00:07:43,800 وبحيث سيكون ليقدم لنا شيئا أن يتطلع الكثير مثل البحث الثنائي. 177 00:07:43,800 --> 00:07:45,870 أي أسئلة؟ 178 00:07:45,870 --> 00:07:47,570 كل الحق، بارد. 179 00:07:47,570 --> 00:07:48,560 >> كل الحق، يحاول. 180 00:07:48,560 --> 00:07:49,657 الجميع المفضل. 181 00:07:49,657 --> 00:07:51,990 لذلك هذا هو المثال الذي شاهدنا مجموعة في الصف. 182 00:07:51,990 --> 00:07:54,710 ومرة أخرى، وهذا هو مجرد الطريقة التي يمكننا تخزين البيانات. 183 00:07:54,710 --> 00:07:57,530 في حالة القاموس، مرة أخرى، هذا هو مجرد الذهاب لتكون السلاسل. 184 00:07:57,530 --> 00:08:00,870 لذلك دعونا نرى ما هذا الواقع يبدو في مستوى أقل قليلا. 185 00:08:00,870 --> 00:08:03,690 >> لذلك دعونا نلقي نظرة في عقدة واحدة في TRIE. 186 00:08:03,690 --> 00:08:07,532 ونحن نرى، OK، هناك يجري أن تكون منطقية وعقدة، 187 00:08:07,532 --> 00:08:09,170 مؤشر إلى عقدة. 188 00:08:09,170 --> 00:08:11,400 ونحن نرى أن ويسمى منطقية is_word. 189 00:08:11,400 --> 00:08:13,490 ذلك أساسا، وهذا الذهاب لتتوافق 190 00:08:13,490 --> 00:08:16,750 لهذه المثلثات الصغيرة التي يقول: إذا كنت قد حصلت هنا، 191 00:08:16,750 --> 00:08:19,100 كنت قد وجدت كلمة كاملة. 192 00:08:19,100 --> 00:08:23,670 >> ونحن نعلم أن "تورينج" على هنا هو كلمة كاملة، 193 00:08:23,670 --> 00:08:28,030 في حين أن مجرد T-U-R ليست كلمة لأننا لا نرى أن دلتا قليلا. 194 00:08:28,030 --> 00:08:31,440 وأن دلتا قليلا، مرة أخرى، يتوافق هذا is_word، 195 00:08:31,440 --> 00:08:34,480 هذا is_word منطقية. 196 00:08:34,480 --> 00:08:36,320 ومن ثم لدينا مجموعة من الأطفال. 197 00:08:36,320 --> 00:08:39,860 لذلك على كل مستوى، ل لدينا عقدة معينة، 198 00:08:39,860 --> 00:08:42,470 والذي يشير إلى عقدة مجموعة من الأبجدية بأكملها. 199 00:08:42,470 --> 00:08:44,346 >> هكذا ترون، مرة أخرى، في هذا picture-- أنا 200 00:08:44,346 --> 00:08:48,170 ذاهب للحفاظ على القفز الى الوراء و forth-- أن هذا مجموعة في الجزء العلوي 201 00:08:48,170 --> 00:08:51,640 لديه مجموعة من مختلفة العقد نزوله منه. 202 00:08:51,640 --> 00:08:57,140 لديها 26 أو 27 إذا كنت تريد لتشمل الزائدة. 203 00:08:57,140 --> 00:09:01,320 وهذا يعطينا طريقة لتخزين البيانات لدينا 204 00:09:01,320 --> 00:09:04,450 في هذه الطريقة التي يمكن أن ينظر في التي يمكنك البحث عن بسرعة فائقة. 205 00:09:04,450 --> 00:09:06,650 ما هو الوقت المناسب لبحث TRIE؟ 206 00:09:06,650 --> 00:09:07,970 >> الحضور: (غير مسموع). 207 00:09:07,970 --> 00:09:08,300 >> HANNAH بلومبرج: نعم. 208 00:09:08,300 --> 00:09:09,550 من الناحية النظرية، وحان الوقت المستمر. 209 00:09:09,550 --> 00:09:13,230 انها لن يؤدي الا الى أن يكون حجم الكلمة التي تريد البحث عنها. 210 00:09:13,230 --> 00:09:15,950 حتى إذا أضفنا زليون المزيد من الكلمات لTRIE لدينا، 211 00:09:15,950 --> 00:09:18,160 انها لن تأخذنا أي لفترة أطول لتحديد 212 00:09:18,160 --> 00:09:19,690 إذا كانت كلمة معينة هي في TRIE. 213 00:09:19,690 --> 00:09:21,412 ولهذا لطيف حقا. 214 00:09:21,412 --> 00:09:23,697 >> الحضور: هل فقط تهيئة أن المصفوفة؟ 215 00:09:23,697 --> 00:09:24,780 فاتك نقطة أو اثنين. 216 00:09:24,780 --> 00:09:26,130 يمكنك مجرد الحديث عن أن لثانية واحدة؟ 217 00:09:26,130 --> 00:09:26,680 >> HANNAH بلومبرج: بالتأكيد، بالتأكيد. 218 00:09:26,680 --> 00:09:27,590 سؤال جيد. 219 00:09:27,590 --> 00:09:31,140 كان السؤال، ونحن لدينا مجموعة واسعة هذا 220 00:09:31,140 --> 00:09:34,180 ستكون لدينا نجم عقدة كما بدلا من عقدة عادلة، أليس كذلك؟ 221 00:09:34,180 --> 00:09:35,180 رائع. 222 00:09:35,180 --> 00:09:37,990 حتى هنا ما نقوله هو مجموعة لدينا فقط 223 00:09:37,990 --> 00:09:40,035 ستكون مؤشرات إلى صفائف الأخرى. 224 00:09:40,035 --> 00:09:42,910 حتى انها essentially-- ذلك النوع من وكأننا قائمة مرتبطة بهذه الطريقة 225 00:09:42,910 --> 00:09:46,620 حيث كل هؤلاء الأطفال نشير فقط إلى العقدة التالية. 226 00:09:46,620 --> 00:09:49,030 >> والطريقة التي نحن تحديد فعلا، مهلا، OK، 227 00:09:49,030 --> 00:09:52,320 لقد كرر خلال كامل كلمة واحدة، هي هذه الكلمة في القاموس، 228 00:09:52,320 --> 00:09:54,476 نحن تحقق هذا فقط is_word. 229 00:09:54,476 --> 00:09:55,100 السؤال الكبير. 230 00:09:55,100 --> 00:09:55,675 نعم. 231 00:09:55,675 --> 00:09:56,216 الحضور: OK. 232 00:09:56,216 --> 00:09:57,470 فما كان وقت لTRIE؟ 233 00:09:57,470 --> 00:09:58,386 >> HANNAH بلومبرج: بالتأكيد. 234 00:09:58,386 --> 00:10:01,852 وبالتالي فإن وقت التشغيل لTRIE ل بحث سوف يكون الوقت قد حان المستمر. 235 00:10:01,852 --> 00:10:04,310 حتى انها مجرد الذهاب ليكون عدد الحروف في الكلمة. 236 00:10:04,310 --> 00:10:06,310 انها لا تعتمد على حجم القاموس 237 00:10:06,310 --> 00:10:09,510 أو حجم بنية البيانات. 238 00:10:09,510 --> 00:10:12,170 حتى هنا على سبيل المثال أبسط قليلا. 239 00:10:12,170 --> 00:10:15,430 >> في هذه الحالة، يمكنك أن ترى أن الخفافيش كلمة في القاموس 240 00:10:15,430 --> 00:10:18,900 وعليك التكبير، ولكنك لم يكن لديك شيء من هذا القبيل حديقة الحيوان. 241 00:10:18,900 --> 00:10:20,050 كيف لنا أن نجعل حديقة الحيوان؟ 242 00:10:20,050 --> 00:10:24,276 كيف نضيف حديقة الحيوان لدينا القاموس، لTRIE لدينا؟ 243 00:10:24,276 --> 00:10:24,776 نعم. 244 00:10:24,776 --> 00:10:27,014 >> الحضور: جعل is_word صحيح ل(غير مسموع). 245 00:10:27,014 --> 00:10:27,930 HANNAH بلومبرج: جيد. 246 00:10:27,930 --> 00:10:31,731 لذلك نستطيع أن نقول Z-O-O، ومن ثم فاننا كنا تريد التحقق من هذا المربع أيضا. 247 00:10:31,731 --> 00:10:32,230 رائعة. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 دعونا نقارن فترة وجيزة جدا يحاول مقابل الجداول التجزئة. 250 00:10:37,930 --> 00:10:39,770 يحاول كبيرة حقا لأنه، كما قلنا، 251 00:10:39,770 --> 00:10:41,610 أنها توفر الوقت دائم البحث. 252 00:10:41,610 --> 00:10:44,285 ولكن العيب ضخمة غير انهم العملاقة. 253 00:10:44,285 --> 00:10:46,160 يمكنك الحصول على المعنى، حتى من خلال النظر في ذلك، 254 00:10:46,160 --> 00:10:48,454 أنه سيستغرق كمية كبيرة من الذاكرة. 255 00:10:48,454 --> 00:10:50,620 حتى انهم ذاهبون ليكون كبيرا أكبر من الجداول التجزئة، 256 00:10:50,620 --> 00:10:52,270 ولكن انهم ذاهبون لإعطاء لنا الأوقات بحث أسرع بكثير. 257 00:10:52,270 --> 00:10:54,478 ولهذا النوع من الخاص بك المقايضة، ما يهمك، 258 00:10:54,478 --> 00:10:57,350 سواء كان ذلك في سرعة أو الذاكرة. 259 00:10:57,350 --> 00:11:02,251 أي أسئلة على أي من ذلك، كل من هياكل البيانات C. 260 00:11:02,251 --> 00:11:02,750 جميل. 261 00:11:02,750 --> 00:11:03,250 حسنا. 262 00:11:03,250 --> 00:11:07,322 ونحن في طريقنا للانتقال إلى قليلا قليلا من تطوير الشبكة مع ماريا. 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA: جميل. 264 00:11:08,280 --> 00:11:09,036 حسنا. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH بلومبرج: يمكنك استخدام جهاز الكمبيوتر المحمول. 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: نيس. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK، بارد. 269 00:11:14,912 --> 00:11:17,120 ونحن نتحرك الآن إلى الويب التنمية، تحدثنا قليلا 270 00:11:17,120 --> 00:11:20,680 حول أذونات تغيير من الملفات والدلائل 271 00:11:20,680 --> 00:11:24,190 بحيث يمكن أن تكون في متناول للمستخدمين الآخرين، للعالم، 272 00:11:24,190 --> 00:11:28,640 وحتى يتسنى لنا أن نرى كيف في الأساس يمكننا أن أنقل لهم 273 00:11:28,640 --> 00:11:32,600 عندما نضع أشياء مثل المواقع بعد أن قمنا معظمها تم القيام. 274 00:11:32,600 --> 00:11:36,400 >> لذلك رأينا الأمر شمود، وهو تغيير الوضع، من حيث الأساس. 275 00:11:36,400 --> 00:11:39,300 وهذا أمر لينكس و يتغير أذونات الوصول 276 00:11:39,300 --> 00:11:40,410 من كائنات نظام الملفات. 277 00:11:40,410 --> 00:11:43,370 وكائن نظام الملفات مجرد دليل، ملف، 278 00:11:43,370 --> 00:11:46,810 كل ما يمكنك تغيير أذونات. 279 00:11:46,810 --> 00:11:53,750 >> لذلك نرى أذونات الملف، نكتب ليرة سورية الأوامر، القائمة، -l. 280 00:11:53,750 --> 00:11:56,500 وعند كتابة ذلك، ونحن عادة ما نرى بعض الأذونات 281 00:11:56,500 --> 00:11:59,660 التي تبدو نوعا من مثل هذا أمام اسم الدليل. 282 00:11:59,660 --> 00:12:01,260 لذلك د يشير إلى الدليل. 283 00:12:01,260 --> 00:12:05,930 ثم لدينا ثلاثة الثلاثيات التي في الأساس 284 00:12:05,930 --> 00:12:11,675 الرجوع إلى أذونات إما مستخدم أو مجموعة، أو العالم. 285 00:12:11,675 --> 00:12:16,490 >> أنواع أذونات ما في وسعنا يكون لهذه المجموعات الثلاث من الناس 286 00:12:16,490 --> 00:12:20,830 إما ص للقراءة، ث ل الكتابة، و x للتنفيذ. 287 00:12:20,830 --> 00:12:23,650 ونحن يمكن أن يكون لتلك مجموعة والعالم كذلك. 288 00:12:23,650 --> 00:12:26,940 الشيء هو أنه في بعض الأحيان صعبة عندما كنا اكتب الأمر شمود، 289 00:12:26,940 --> 00:12:32,960 كنا اكتب بعض رقم التي تتألف من ثلاثة أجزاء. 290 00:12:32,960 --> 00:12:36,990 حتى أننا يمكن أن نفعل مثل 777 والتي في الأساس 291 00:12:36,990 --> 00:12:40,450 يشار إلى القيمة المضافة كل من هذه الثلاثيات 292 00:12:40,450 --> 00:12:45,060 لص ستشير إلى 4، من شأنه ث الرجوع إلى 2، وسوف س الرجوع إلى 1، 293 00:12:45,060 --> 00:12:50,020 حتى عندما تضاف يصل، كل من الأرقام سوف ينزل إلى العدد التراكمي 294 00:12:50,020 --> 00:12:52,750 إلى القيمة التراكمية بين 0 و 7. 295 00:12:52,750 --> 00:12:55,150 ولذا فإننا يمكن أن يكون أيضا 0 بدون ضوابط على الإطلاق. 296 00:12:55,150 --> 00:12:58,200 وهذا من شأنه أن يعطي أساسا لنا أذونات إما المستخدم، 297 00:12:58,200 --> 00:13:00,450 مجموعة، أو العالم. 298 00:13:00,450 --> 00:13:02,620 أي أسئلة حول هذا حتى الآن؟ 299 00:13:02,620 --> 00:13:05,331 >> كان قلته قراءة 4: الجمهور؟ 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA: نعم. 301 00:13:06,164 --> 00:13:07,568 الحضور: (غير مسموع). 302 00:13:07,568 --> 00:13:08,504 HANNAH بلومبرج: نعم. 303 00:13:08,504 --> 00:13:11,790 الحضور: وبعد ذلك بإضافة كل تلك والبعض الآخر تشير إلى رقمك. 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA: نعم. 305 00:13:12,665 --> 00:13:14,970 نعم. 306 00:13:14,970 --> 00:13:17,810 هذه هي التساؤلات الكبرى. 307 00:13:17,810 --> 00:13:20,490 جميل. 308 00:13:20,490 --> 00:13:25,340 المقبل، ونحن قفز إلى HTML و أكثر قليلا عن تطوير الشبكة. 309 00:13:25,340 --> 00:13:27,990 لذا HTML يعني فقط لغة توصيف النص التشعبي. 310 00:13:27,990 --> 00:13:30,460 وهذا هو العلامات اللغة التي هو المعيار 311 00:13:30,460 --> 00:13:32,720 أن انها تستخدم لإنشاء صفحات الويب. 312 00:13:32,720 --> 00:13:35,750 >> انه دعا لغة ترميز لأنه لم يجمع في الواقع. 313 00:13:35,750 --> 00:13:40,310 أنه لا يقول كيف ينبغي بعض التعليمات البرمجية يتم تنفيذه أو أي شيء من هذا القبيل. 314 00:13:40,310 --> 00:13:44,800 كما يحدد فقط و يصف كيف يمكن لشبكة الإنترنت 315 00:13:44,800 --> 00:13:46,840 يجب تعيين الصفحة لأعلى مع كل عنصر من عناصره 316 00:13:46,840 --> 00:13:48,460 وكيف ينبغي أن ننظر إلى المستخدم. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> بعض من علامات HTML أننا ذهب أكثر هي التالية. 319 00:13:57,110 --> 00:14:00,500 كل الوثائق HTML لدينا بدأت مع أتش تي أم أل DOCTYPE. 320 00:14:00,500 --> 00:14:02,550 ثم لدينا دائما علامة HTML. 321 00:14:02,550 --> 00:14:03,930 لدينا رئيس والجسم. 322 00:14:03,930 --> 00:14:07,890 ومن المهم أن لديها HTML هذا النوع من بنية متداخلة 323 00:14:07,890 --> 00:14:09,280 لأنه من الواضح للغاية. 324 00:14:09,280 --> 00:14:13,200 ومن ثم يصبح واضحا جدا عندما كنا تحتاج إلى فتح وفعلا به وثيقة. 325 00:14:13,200 --> 00:14:18,400 ونحن بحاجة دائما إلى إغلاق العلامات التي نحن قد فتحت. 326 00:14:18,400 --> 00:14:23,170 >> وهنا لدينا بعض أنواع من الأشياء قبل أن نحن نريد أن يكون. 327 00:14:23,170 --> 00:14:26,580 لذلك لدينا، على سبيل المثال، عنوان CS50. 328 00:14:26,580 --> 00:14:31,980 ثم نحن في الواقع يمكن ربط ورقة أنماط 329 00:14:31,980 --> 00:14:34,030 الذي يحدد كيفية أسلوب موقعنا. 330 00:14:34,030 --> 00:14:35,650 هذا هو CSS. 331 00:14:35,650 --> 00:14:39,320 ونحن في طريقنا للذهاب أكثر من ذلك في القليلة القادمة من الشرائح كذلك. 332 00:14:39,320 --> 00:14:42,580 >> داخل الجسم، وضعنا بعض الطبقات ومعرفات. 333 00:14:42,580 --> 00:14:45,860 وكتذكير، مرة أخرى، معرفات فريدة من نوعها والطبقات 334 00:14:45,860 --> 00:14:47,390 يمكن أن تسند إلى سلع متعددة. 335 00:14:47,390 --> 00:14:52,110 وهذا يعني فقط أن يمكننا استخدام فئات ومعرفات 336 00:14:52,110 --> 00:14:55,860 ضمن structures-- البعض بذلك، ل سبيل المثال، ضمن ملفات CSS أو نمط 337 00:14:55,860 --> 00:15:00,940 sheets-- للإشارة إلى العناصر المحددة ويقول أساسا أننا نريد أن أسلوب 338 00:15:00,940 --> 00:15:03,280 أو تصميم بعض العناصر في بعض بطريقة معينة. 339 00:15:03,280 --> 00:15:06,440 ونشير لهم من قبل هوياتهم والطبقات. 340 00:15:06,440 --> 00:15:09,870 ويمكننا أيضا أن أشير إلى أشياء مختلفة بالسمات كذلك، 341 00:15:09,870 --> 00:15:13,830 ولكن معرفات والطبقات فقط تعطينا بعض التنوع وعلى وجه التحديد ما نحن 342 00:15:13,830 --> 00:15:15,850 أريد أن أشير إلى. 343 00:15:15,850 --> 00:15:19,620 >> حتى مجرد مثال. 344 00:15:19,620 --> 00:15:22,730 نستطيع، مرة أخرى، في إطار ملف CSS أين نحن 345 00:15:22,730 --> 00:15:25,770 تريد أن تحدد بعض style-- من الألوان، والخطوط، 346 00:15:25,770 --> 00:15:30,340 وأشياء من هذا القبيل هكذا- يضرب ما في وسعنا تعريف النمط للهيئة. 347 00:15:30,340 --> 00:15:32,640 بحيث تحديده للعلامة الجسم كله. 348 00:15:32,640 --> 00:15:36,160 ولكن بعد ذلك يمكننا أيضا تحديد أسلوب ل#title. 349 00:15:36,160 --> 00:15:40,390 ومرة أخرى، يشير الهاشتاج لدينا ID والنقطة يشير إلى صفنا. 350 00:15:40,390 --> 00:15:44,760 >> ثم لINFO.، ونحن يمكن أيضا تعيين بعض الصفات. 351 00:15:44,760 --> 00:15:49,750 ومرة أخرى، عندما نعود، كان لدينا فئة تسمى معلومات وعنوان الهوية الخاصة بنا. 352 00:15:49,750 --> 00:15:53,422 ويمكننا أن نرى أن نشير لهم من قبل #title وINFO.. 353 00:15:53,422 --> 00:15:55,380 الحضور: هل تقول رابطة هاشتاق [؟ تبنني؟ ؟] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: عذرا؟ 355 00:15:55,725 --> 00:15:58,120 الحضور: هل تقول رابطة هاشتاق [؟ تبنني؟ ؟] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: الوسم يعني ID، لذلك #title 357 00:16:01,400 --> 00:16:07,890 يشير إلى ما العناصر يكون هذا الرقم يسمى العنوان. 358 00:16:07,890 --> 00:16:10,735 ثم النقطة تشير إلى فئة. 359 00:16:10,735 --> 00:16:14,590 حتى INFO. ويشير إلى هذا العنصر لأنه يحتوي على معلومات الطبقة. 360 00:16:14,590 --> 00:16:15,090 اجل. 361 00:16:15,090 --> 00:16:17,905 >> الحضور: لماذا تميزها في HTML؟ 362 00:16:17,905 --> 00:16:20,985 لماذا لا تقول أشياء معينة هي معرفات وبعض الأشياء هي من الدرجة؟ 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA: هذا فقط ما يصل الى you-- 364 00:16:22,610 --> 00:16:24,151 HANNAH بلومبرج: كرر السؤال. 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA: أوه، آسف. 366 00:16:25,370 --> 00:16:29,480 لماذا نميز بعض العناصر كما معرفات وعناصر أخرى كفئات؟ 367 00:16:29,480 --> 00:16:34,760 هذا فقط لأنه في كثير من الأحيان حقا اختيار التصميم. 368 00:16:34,760 --> 00:16:38,520 فهو يوفر لك الكثير من براعة في كونها 369 00:16:38,520 --> 00:16:43,250 بوسعي أن أقول أريد هذا البند محدد أن يكون هذا الرقم لأنهم يريدون 370 00:16:43,250 --> 00:16:45,300 أن تفعل الكثير من الأشياء مع ذلك، وأنا فقط 371 00:16:45,300 --> 00:16:50,010 تريد تعريف النمط، نمط معين أو اللون مهما لهذا البند. 372 00:16:50,010 --> 00:16:52,630 والطريقة للقيام بذلك هو مجرد يعطيها ID. 373 00:16:52,630 --> 00:16:55,060 >> ثم إذا أريد أن يكون اثنين من عناصر مختلفة 374 00:16:55,060 --> 00:16:58,940 بعد ذلك، بدلا من الذهاب ووضع their-- 375 00:16:58,940 --> 00:17:03,840 بدلا من القيام بذلك من قبل العلامة لأن من شأنه علامة 376 00:17:03,840 --> 00:17:07,369 ضبط خلية للعلامة كاملة في كل مرة يتم استخدام هذه العلامة، 377 00:17:07,369 --> 00:17:09,740 يمكنك تعيين فئة لسلع متعددة. 378 00:17:09,740 --> 00:17:15,109 وبعد ذلك فقط الوصول إلى تلك الفئة ويقول أريد أن أسلوب هذه الفئة بهذه الطريقة. 379 00:17:15,109 --> 00:17:17,579 >> ومرة أخرى، يمكن للطبقة يكون سلع متعددة مختلفة 380 00:17:17,579 --> 00:17:21,150 وID أن تكون فريدة من نوعها. 381 00:17:21,150 --> 00:17:21,849 أسئلة كبيرة. 382 00:17:21,849 --> 00:17:25,339 اي أسئلة أخرى؟ 383 00:17:25,339 --> 00:17:26,220 OK، رهيبة. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 مرة أخرى، هذه هي الطريقة هذه المنتخبات يتم الرجوع إليها في CSS، مع الهاشتاج، 386 00:17:35,330 --> 00:17:40,031 مع نقطة، أو بدون أي شيء ل تعيين اسلوب بعض البطاقات، 387 00:17:40,031 --> 00:17:40,530 مثل الجسم. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 وهنا لدينا عام بناء جملة كيف يتم ذلك. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> تكرار بعض أفضل الممارسات لHTML و CSS، 392 00:17:55,680 --> 00:17:59,170 نحن بحاجة إلى ذلك، مرة أخرى، أغلق كافة علامات HTML أن نفتح. 393 00:17:59,170 --> 00:18:03,950 وما أوصينا لك قيام لمشاريع النهائية، 394 00:18:03,950 --> 00:18:10,560 فضلا عن CS50 المالية، هو جعل تأكد من أن جميع HTML الخاص بالتحقق من صحة. 395 00:18:10,560 --> 00:18:12,920 وهذا ما فعله مع W3 المصادقة. 396 00:18:12,920 --> 00:18:16,940 >> ثم ما فعلناه و ما نوصي به 397 00:18:16,940 --> 00:18:19,790 يفصل أسلوب، لذلك CSS من علامات HTML. 398 00:18:19,790 --> 00:18:24,210 لذلك أي شيء له صلة كيف الصفحة الخاصة بك هو الذهاب الى نظرة بصريا 399 00:18:24,210 --> 00:18:27,330 وكيف انها تسير إلى تعديل يجب ان تذهب الى وثيقة CSS. 400 00:18:27,330 --> 00:18:33,880 ثم العلامات قولك كيف تسير الامور هي في علاقتها ببعضها البعض هو HTML، 401 00:18:33,880 --> 00:18:37,550 والتي يجب ان تذهب داخل وثائق HTML الخاص بك. 402 00:18:37,550 --> 00:18:38,590 أي أسئلة؟ 403 00:18:38,590 --> 00:18:39,226 MHM. 404 00:18:39,226 --> 00:18:42,628 >> الحضور: ما يجري بالضبط على مع التحقق من صحة الصفحة 405 00:18:42,628 --> 00:18:47,945 عندما نقوم التحقق من صحة HTML أن [غير مسموع] خلقت؟ 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA: حتى what-- تعتقد أنك. 407 00:18:49,850 --> 00:18:53,020 ذلك بالضبط ما يجري على مع التحقق من صحة الصفحة 408 00:18:53,020 --> 00:18:55,570 وماذا علينا أن نفعل ذلك؟ 409 00:18:55,570 --> 00:18:59,180 في الأساس، ونحن بحاجة للقيام بذلك لأن الكثير من الأوقات، المتصفح الخاص بك، 410 00:18:59,180 --> 00:19:01,390 إذا كنت لا إغلاق علامة أو شيء من هذا القبيل، 411 00:19:01,390 --> 00:19:05,680 متصفحك لا يزال مستمرا ل تقديم صفحة، وربما لا تزال تعمل، 412 00:19:05,680 --> 00:19:10,840 لكنه أفضل الممارسات للتأكد من أن كنت قد، مرة أخرى، أغلقت كل الخاص به، 413 00:19:10,840 --> 00:19:13,190 أن جميع العناصر الخاصة بك الطريقة التي ينبغي أن يكون، 414 00:19:13,190 --> 00:19:18,470 وأساسا أنه قبل الاتفاقيات التي يتم مسبقا. 415 00:19:18,470 --> 00:19:21,970 >> انها، مرة أخرى، مجرد الشيء الذي يجب عليك 416 00:19:21,970 --> 00:19:24,040 أن تعلم أن تفعل، بدلا من الاضطرار 417 00:19:24,040 --> 00:19:25,696 كود sloppier وأشياء من هذا القبيل. 418 00:19:25,696 --> 00:19:26,688 نعم. 419 00:19:26,688 --> 00:19:27,680 أوه، آسف. 420 00:19:27,680 --> 00:19:29,221 أظن أنك رفع يدك. 421 00:19:29,221 --> 00:19:31,240 الجمهور: لا، كنت فقط (غير مسموع). 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> الحضور: شكرا لك. 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA: بالطبع، وشكرا لكم. 425 00:19:36,181 --> 00:19:41,680 ذلك مرة أخرى، يدور حول كيفية يتم نقل المعلومات 426 00:19:41,680 --> 00:19:44,630 ونماذج الاتصال لنقل المعلومات. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP يعني مجرد ناقل الحركة بروتوكول التحكم وIP 429 00:19:48,600 --> 00:19:51,260 يشير إلى بروتوكول الإنترنت. 430 00:19:51,260 --> 00:19:54,275 ويشير فقط ل يتم تسليم طريقة البيانات. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> اذا كان لدينا بعض البيانات التي يحتاج إلى تسليمها إلى you-- ذلك 433 00:20:02,710 --> 00:20:06,770 يمكنك تقديم طلب للحصول على خادم معين. 434 00:20:06,770 --> 00:20:09,800 على سبيل المثال، عندما كنا محاولة الوصول إلى cs50.net، 435 00:20:09,800 --> 00:20:12,420 نحن تقديم طلب ل خادم CS50، ونحن 436 00:20:12,420 --> 00:20:14,720 نرى أننا نريد للحصول على هذا النوع من المعلومات. 437 00:20:14,720 --> 00:20:19,294 وبعد ذلك يتم بناء على هذا البروتوكول لكيفية يتم تسليم هذه المعلومات، 438 00:20:19,294 --> 00:20:21,460 خادم يعطي معلومات يعود الينا، العميل. 439 00:20:21,460 --> 00:20:25,590 ثم نحن قادرون على عرض المعلومات للصفحة 440 00:20:25,590 --> 00:20:26,390 ومن ثم استخدامها. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> حتى ذلك الحين بروتوكول نقل النص التشعبي هو مجرد بروتوكول آخر أو مجموعة 443 00:20:33,050 --> 00:20:37,470 الاتفاقيات التي تعرف كيف متصفح الإنترنت وخادم الويب 444 00:20:37,470 --> 00:20:38,890 يجب التواصل. 445 00:20:38,890 --> 00:20:43,730 ووضع كل هذا معا، HTTP، مرة أخرى، 446 00:20:43,730 --> 00:20:50,960 فقط يعرف كيف أن هذا النص التشعبي تعريف من HTML التي كنا نعمل عليها، 447 00:20:50,960 --> 00:20:59,500 كيف ينبغي تسليمها لك و كيف أن البيانات التي يتم تسليمها لكم 448 00:20:59,500 --> 00:21:00,540 يحصل لك. 449 00:21:00,540 --> 00:21:05,990 >> وهذا هو السبب، إذا كنت تتذكر الرجال من فئة، كان لدينا الكثير من الطلبات 450 00:21:05,990 --> 00:21:08,970 وكان لدينا الكثير من تركيب لهذه الطلبات التي نحن 451 00:21:08,970 --> 00:21:10,250 الذهاب إلى يذهب أكثر من الآن. 452 00:21:10,250 --> 00:21:13,270 ذلك مرة أخرى، عندما نرسل طلب إلى الخادم، 453 00:21:13,270 --> 00:21:15,920 لدينا لتحديد بضعة أشياء. 454 00:21:15,920 --> 00:21:18,520 لذلك نحن بحاجة إلى إيجاد نوع طلب اننا وضع. 455 00:21:18,520 --> 00:21:22,180 ومرة أخرى، لدينا، على سبيل المثال، GET هو نوع واحد من طريقة 456 00:21:22,180 --> 00:21:25,290 أن لدينا في طلبنا. 457 00:21:25,290 --> 00:21:31,710 >> ثم HTTP / 1.1 هو مجرد البروتوكول الذي نستخدمه حاليا. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 في معظم الوقت، وهذا سوف إلى البروتوكول الذي نستخدمه. 460 00:21:36,890 --> 00:21:40,290 حتى إذا كان لديك سؤال من هذا القبيل في مسابقة بك. 461 00:21:40,290 --> 00:21:43,120 هذا هو الاتفاقيات ان لدينا حتى الآن. 462 00:21:43,120 --> 00:21:46,580 >> يشير مائل إلى أي نوع من الأشياء التي كنت الطالبة. 463 00:21:46,580 --> 00:21:52,810 ثم، مضيفنا هو، على سبيل المثال، في هذا القضية، ونحن نحاول أن يذهب إلى google.com. 464 00:21:52,810 --> 00:21:57,070 لذلك هذا هو قيمة للمضيف. 465 00:21:57,070 --> 00:21:59,330 هذا هو نوع من الطلب التي يمكن إرسالها. 466 00:21:59,330 --> 00:22:02,890 >> وبعد ذلك نوع من الاستجابة التي يمكن يتم إرسالها مرة أخرى، بناء على هذا البروتوكول، 467 00:22:02,890 --> 00:22:05,190 مرة أخرى، HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 لذلك هذا هو الإصدار HTTP مرة أخرى. 469 00:22:07,150 --> 00:22:09,730 200 OK هو مجرد رمز الحالة. 470 00:22:09,730 --> 00:22:12,860 وهذا موافق هو مجرد عبارة على أساس أن قانون الأحوال. 471 00:22:12,860 --> 00:22:15,520 >> وبعد ذلك نوع المحتوى يشير إلى نوع 472 00:22:15,520 --> 00:22:20,295 التي يتم إرجاعها لك هذا هو لذلك صفحة على شبكة الإنترنت الذي تتلقاه 473 00:22:20,295 --> 00:22:22,570 وأن المتصفح يمكن أن تجعل بعد ذلك. 474 00:22:22,570 --> 00:22:24,401 وهذا هو نص / HTML. 475 00:22:24,401 --> 00:22:26,660 >> الحضور: ماذا يعني 1.1؟ 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA: هذا مجرد نسخة of-- أوه، ماذا يعني 1.1؟ 477 00:22:29,910 --> 00:22:37,075 هذا هو مجرد نسخة، وHTTP نسخة من البروتوكول الذي نستخدمه. 478 00:22:37,075 --> 00:22:37,700 السؤال الكبير. 479 00:22:37,700 --> 00:22:38,366 اسئلة اخرى؟ 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> الحضور: هل يمكن أن نلخص نوع المحتوى سريعة الحقيقية؟ 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA: ول ما الخادم. 483 00:22:48,150 --> 00:22:51,020 نوع information-- ما هو كان نوع المحتوى الأسئلة. 484 00:22:51,020 --> 00:22:53,400 بحيث كان نوع المعلومات التي ستحصل عليها 485 00:22:53,400 --> 00:22:58,200 من الخادم، نوع البيانات التي يمكن للمتصفح ثم 486 00:22:58,200 --> 00:23:00,604 تقدم الذي تستخدمه. 487 00:23:00,604 --> 00:23:03,020 الحضور: هل هذا ما هذه بروتوكول أقول لك أن تفعل؟ 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA: عذرا؟ 489 00:23:03,390 --> 00:23:05,380 الحضور: هل هذا ما يقوله البروتوكول؟ 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA: إن protocol-- 491 00:23:05,915 --> 00:23:07,940 الحضور: --ماذا لل نوع المحتوى هو أو what-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA: ويستند هذا البروتوكول on-- ما هو البروتوكول أقول لك؟ 493 00:23:12,040 --> 00:23:16,070 هذا هو مجرد وسيلة أن هذه المعلومات 494 00:23:16,070 --> 00:23:18,610 تم تسليمها لك استنادا على أي نوع من البروتوكول 495 00:23:18,610 --> 00:23:21,830 وقد حصلت هذه المعلومات سلمت إليك. 496 00:23:21,830 --> 00:23:23,500 هل هذا معقول نوعا من؟ 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH بلومبرج: أنت يمكن التفكير في البروتوكول 499 00:23:30,070 --> 00:23:33,300 كما a-- أعتقد أستاذ وصف مالان ذلك 500 00:23:33,300 --> 00:23:36,910 في الصف كنوع من مثل a-- انها مثل أي ما يعادل المصافحة الإنسان. 501 00:23:36,910 --> 00:23:44,930 أقول، مثل، مهلا، أنا الطلب وI معرفة كيفية التعامل مع HTTP الإصدار 1.1. 502 00:23:44,930 --> 00:23:48,770 ثم يقول الخادم، أوه، حسنا، I-- وكلاهما موجود. 503 00:23:48,770 --> 00:23:51,337 أعرف أيضا كيفية التعامل مع HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 وانا ذاهب لإعطاء إجراء نسخ بعض المحتويات. 505 00:23:53,170 --> 00:23:56,230 في هذه الحالة، فإنه يجري أن تكون من نوع نص / HTML. 506 00:23:56,230 --> 00:23:58,480 حتى انها نوع من مجرد وسيلة منهم لcommunicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: انها مجرد مؤكدا أن كنت 508 00:24:00,480 --> 00:24:03,290 كل من التالية هي نفسها بروتوكول وأن كلا 509 00:24:03,290 --> 00:24:06,620 العميل وserver-- ذلك المتصفح وserver-- 510 00:24:06,620 --> 00:24:09,280 نوع من معرفة ما كنت الحديث عن وديك 511 00:24:09,280 --> 00:24:12,557 اتفاقية لتمرير في البيانات. 512 00:24:12,557 --> 00:24:17,022 >> الجمهور: هكذا نوع المحتوى part-- النص نوع المحتوى / html-- هذا هو 513 00:24:17,022 --> 00:24:18,521 جزء منفصل من نفس الرسالة؟ 514 00:24:18,521 --> 00:24:20,509 أم هو جزء من دعنا نقول، 200؟ 515 00:24:20,509 --> 00:24:22,010 هل نقول لهم ان 200 أو is-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA: 200 يقول كل شيء ذهب موافق. 517 00:24:23,770 --> 00:24:27,900 ثم نوع المحتوى هو نوع من جزء منفصل من نفس الرسالة، 518 00:24:27,900 --> 00:24:34,274 وقوله الشيء الذي أنا عاد هذا النوع من النص / HTML. 519 00:24:34,274 --> 00:24:35,690 انها مجرد إعطاء مزيد من المعلومات. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 هل لديك أي شيء للإضافة؟ 522 00:24:39,995 --> 00:24:40,495 حسنا. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> أي أسئلة أخرى حول هذا؟ 525 00:24:46,530 --> 00:24:48,370 رائع. 526 00:24:48,370 --> 00:24:54,070 وحتى بعض الحالات الأخرى التي HTTP يمكن أن نحصل بالإضافة إلى 200 OK، 527 00:24:54,070 --> 00:24:59,500 تلك التي شهدناها ربما ربما الكثير هم 403 و 404. 528 00:24:59,500 --> 00:25:05,190 حتى 404، إذا كنت تحاول وصول شيء لا وجود له. 529 00:25:05,190 --> 00:25:10,460 هكذا على سبيل المثال، في الخاص psets CS50 المالية، 530 00:25:10,460 --> 00:25:15,640 إذا كنت قد تم تقديم quote.html وأنت لم يكن لديك هذا الملف، 531 00:25:15,640 --> 00:25:19,740 ولكن بدلا من ذلك كان لديك quote.php، أن من شأنه أن يؤدي في 404 لم يتم العثور على 532 00:25:19,740 --> 00:25:21,600 لأنه قد لا وجود الملف. 533 00:25:21,600 --> 00:25:25,690 >> ل403 المحرمة، التي يشير إلى الأذونات. 534 00:25:25,690 --> 00:25:31,150 إذا كان الأمر كذلك بعض الملفات غير قابلة للقراءة من قبل العالم، قد تحصل على 403 عاد. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 البعض الآخر التي قد get-- 301، انتقل بشكل دائم. 537 00:25:37,810 --> 00:25:41,300 302، وجدت. 304، التعديل؛ 400، طلب غير صحيح؛ 538 00:25:41,300 --> 00:25:47,330 وخطأ خادم داخلي ثم ل 500 و 503، الخدمة غير متوفرة. 539 00:25:47,330 --> 00:25:48,140 نعم فعلا. 540 00:25:48,140 --> 00:25:51,490 >> الحضور: هل كنا نتوقع أن حفظ كل هذه الأوضاع؟ 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA: كنت أود أن يكون لهم على ورقة الغش الخاص بك. 542 00:25:53,739 --> 00:25:55,146 [ضحك] 543 00:25:55,146 --> 00:25:59,954 الحضور: هل كنا نتوقع أن تعرف ما يطلق كل واحد؟ 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA: هل هم؟ 545 00:26:00,995 --> 00:26:03,870 HANNAH بلومبرج: لتلك التي كانت لدينا تشغيل into-- ذلك السؤال was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA: هل كانوا يتوقعون أن أعرف ما كل واحد من هذه الحالة 547 00:26:08,010 --> 00:26:09,330 قد تكون نجمت رموز من قبل؟ 548 00:26:09,330 --> 00:26:13,240 حتى لتلك التي استخدمناها واجهت، وأود أن أقول، نعم. 549 00:26:13,240 --> 00:26:16,610 لذلك رأينا بالتأكيد 200 OK وحاضر في psets. 550 00:26:16,610 --> 00:26:19,071 رأيناه 403، 404. 551 00:26:19,071 --> 00:26:20,550 لبعضها الآخر؟ 552 00:26:20,550 --> 00:26:22,690 >> HANNAH بلومبرج: أود يقول 500 يبدو لعبة عادلة. 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500، نعم. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH بلومبرج: نعم. 555 00:26:24,246 --> 00:26:27,006 يكون مجرد شعور عام ما يسبب لهم. 556 00:26:27,006 --> 00:26:28,880 وأيضا فقط من خلال هذه أسماء، يمكنك نوع من 557 00:26:28,880 --> 00:26:32,890 مثل جعل تكهنا لماذا تسبب لهم في الواقع. 558 00:26:32,890 --> 00:26:36,919 على سبيل المثال، نقل بشكل دائم، وربما تم نقل الملف بشكل دائم. 559 00:26:36,919 --> 00:26:39,328 >> الحضور: ولكن على سابقة الامتحان، كان هناك ذلك 560 00:26:39,328 --> 00:26:41,050 كيف تتوقعون منا أن الإجابة على هذا؟ 561 00:26:41,050 --> 00:26:42,883 >> HANNAH بلومبرج: هذا كان يستحق نقطة الصفر. 562 00:26:42,883 --> 00:26:45,870 السؤال عن 418 على إبريق الشاي من الناحية الفنية حالة HTTP، 563 00:26:45,870 --> 00:26:47,090 ولكنه كان يستحق نقطة الصفر. 564 00:26:47,090 --> 00:26:48,320 ومن الواضح أن كنت لا من المتوقع أن نعرفهم. 565 00:26:48,320 --> 00:26:49,670 >> الجمهور: هل هو حقيقي؟ 566 00:26:49,670 --> 00:26:51,970 >> HANNAH بلومبرج: إنها حقيقية واحد، ولكن هذا لا يعني أي شيء. 567 00:26:51,970 --> 00:26:52,700 انها مجرد مزحة. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 الناس الإنترنت مضحكة. 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA: الأسئلة الكبرى، والرجال. 571 00:26:59,680 --> 00:27:01,452 اي أسئلة أخرى؟ 572 00:27:01,452 --> 00:27:04,891 >> الحضور: ما هو خطأ خادم داخلي؟ 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA: الداخلية خطأ في الخادم فقط 574 00:27:06,640 --> 00:27:10,050 يعني أن كنت قد تعرضت ل غير قادر على الاتصال 575 00:27:10,050 --> 00:27:13,400 مع الخادم لسبب ما. 576 00:27:13,400 --> 00:27:15,400 حتى انها ليست بالضرورة شيء له علاقة 577 00:27:15,400 --> 00:27:19,170 مع العميل أو شيء من هذا القبيل. 578 00:27:19,170 --> 00:27:22,170 أنا لا أعرف أي مثال محدد أننا قد ذهبت الى شرح، 579 00:27:22,170 --> 00:27:23,000 ولكن نعم. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH بلومبرج: بالتأكيد. 581 00:27:23,250 --> 00:27:25,625 هكذا على سبيل المثال، مثل دعنا أقول كنت تعمل على المزج 582 00:27:25,625 --> 00:27:30,440 وتوجه خادم Google أسفل لبعض السبب، انقطاع التيار الكهربائي، دعنا نقول. 583 00:27:30,440 --> 00:27:33,400 ومن شأن ذلك أن يكون الخادم الداخلي خطأ أو نوعا of-- مثلك 584 00:27:33,400 --> 00:27:34,630 لن تحصل على رد. 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA: نعم. 586 00:27:35,260 --> 00:27:37,050 انها فقط عندما كنت غير قادر على الاتصال 587 00:27:37,050 --> 00:27:40,299 مع الخادم لسبب ما ل من هو نزول أو سبب آخر. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 حتى القفز الى PHP. 590 00:27:47,690 --> 00:27:49,930 PHP، على عكس HTML، هو لغة برمجة. 591 00:27:49,930 --> 00:27:54,820 وبدأنا استخدامه لأنه مفيدة جدا لتطوير الشبكة. 592 00:27:54,820 --> 00:27:56,940 >> نحن استخدم لأول مرة في CS50 المالية. 593 00:27:56,940 --> 00:28:02,240 ويساعد في الأساس لنا تحقيق معا هذه العلامات، وتصميم، 594 00:28:02,240 --> 00:28:07,460 وكيف يمكننا فعلا استخدام المعلومات لعرض الأشياء على صفحة ويب. 595 00:28:07,460 --> 00:28:11,870 لذلك PHP نفسها يعني PHP النص التشعبي قبل المعالج، 596 00:28:11,870 --> 00:28:15,360 لذلك هو backnorym العودية في حد ذاته. 597 00:28:15,360 --> 00:28:22,330 والعلامات فتح لPHP نحن اليسار واليمين السهام مع علامات استفهام 598 00:28:22,330 --> 00:28:23,060 وبي. 599 00:28:23,060 --> 00:28:25,890 >> لذلك رأينا بالفعل حفنة من ذلك. 600 00:28:25,890 --> 00:28:29,150 الآن، نحن ذاهبون لمجرد يذهب أكثر بعض الأشياء الأساسية حول هذا الموضوع. 601 00:28:29,150 --> 00:28:32,280 حتى مع PHP، المتغير أسماء تبدأ مع علامة الدولار. 602 00:28:32,280 --> 00:28:35,660 نحن لم تحدد، مرة أخرى، اكتب متغير بعد الآن. 603 00:28:35,660 --> 00:28:38,450 مثلما فعلنا مع C، نحن لسنا بحاجة للقيام بذلك. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> يمكننا القيام به حفنة من مختلف الاشياء مع المتغيرات. 606 00:28:44,490 --> 00:28:47,750 يمكننا وضعها معا بواسطة وصل منهم 607 00:28:47,750 --> 00:28:52,900 مع تدوين نقطة، والتي لم نتمكن من القيام به في C مرة أخرى. 608 00:28:52,900 --> 00:28:57,490 مرة أخرى، لدينا أكثر قليلا براعة مع PHP من حيث المتغيرات. 609 00:28:57,490 --> 00:29:00,080 مرة أخرى، ليس لدينا وظيفة الرئيسية. 610 00:29:00,080 --> 00:29:03,370 >> ويتم تفسير PHP بدلا من جمعها، 611 00:29:03,370 --> 00:29:09,970 هكذا فقط كيف أننا لم تجعل لملفات C، نحن لا يجب أن نفعل ذلك لPHP. 612 00:29:09,970 --> 00:29:15,440 ولكن بدلا من ذلك، الطريقة التي اللغة يدار من قبل نفسه، يتم تفسيرها. 613 00:29:15,440 --> 00:29:18,550 ثم كتبته فضفاضة يعني فقط أننا 614 00:29:18,550 --> 00:29:22,490 لم يكن لديك لتحديد متغير نوع وأنواع متغير 615 00:29:22,490 --> 00:29:25,415 يفهم في وقت التشغيل. 616 00:29:25,415 --> 00:29:29,185 >> الحضور: ولكن ماذا فعلت لك يعني سلسلة نقطة؟ 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA: بالتأكيد. 618 00:29:30,060 --> 00:29:37,660 عندما نريد أن نضع الأمور together-- حتى لو كان لدينا بعض متغير 619 00:29:37,660 --> 00:29:41,500 كان قيمة 3 وكان لدينا آخر المتغير الذي كان قيمة السلسلة، 620 00:29:41,500 --> 00:29:45,920 يمكننا أن نضع المتغيرات معا عن طريق وضع نقطة بينهما 621 00:29:45,920 --> 00:29:46,970 ووصل لهم. 622 00:29:46,970 --> 00:29:52,670 أو يمكننا أن خلق ودعا اسم متغير 623 00:29:52,670 --> 00:29:56,900 ووضعها معا وصل سلسلتين. 624 00:29:56,900 --> 00:30:00,680 >> حتى لو كان لدينا سلسلة في ضعف ونقلت وضعنا نقطة بعد ذلك، 625 00:30:00,680 --> 00:30:03,660 ومن ثم كان لدينا سلسلة أخرى، أن من شأنه أن يخلق سلسلة تماما. 626 00:30:03,660 --> 00:30:05,242 >> الحضور: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA لاتفيا: كان ذلك واضحا؟ 628 00:30:06,450 --> 00:30:07,099 الجمهور: نعم. 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA: OK. 630 00:30:07,890 --> 00:30:08,766 نعم فعلا. 631 00:30:08,766 --> 00:30:11,146 >> الحضور: عندما تقول تفسير بدلا من جمعها، 632 00:30:11,146 --> 00:30:14,160 تتحدث عنك لا تحتاج إلى أن تكون محددة كما هو الحال عندما 633 00:30:14,160 --> 00:30:15,906 يتعلق الأمر PHP مقابل C؟ 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA: عندما نقول تفسير بدلا من جمعها، 636 00:30:20,710 --> 00:30:21,850 ماذا نعني؟ 637 00:30:21,850 --> 00:30:26,220 وهذا يعني أننا لسنا في حاجة الملفات القابلة للتنفيذ لتشغيل PHP. 638 00:30:26,220 --> 00:30:29,870 وهذا يعني أنه يعمل لأنه غني. 639 00:30:29,870 --> 00:30:31,650 هل هذا منطقي؟ 640 00:30:31,650 --> 00:30:32,495 اكثر قليلا. 641 00:30:32,495 --> 00:30:34,620 HANNAH بلومبرج: إذن أنت يمكن ان يخطر مترجم 642 00:30:34,620 --> 00:30:38,980 كما برنامج آخر غير مسؤولة للذهاب سطرا سطرا من خلال PHP 643 00:30:38,980 --> 00:30:42,745 وتنفيذ فعلا، في مقابل لتجميع كل شيء إلى أسفل إلى ثنائي. 644 00:30:42,745 --> 00:30:46,050 وهذا لا يعني في الواقع شيئا حول كيفية محددة يجب أن نكون. 645 00:30:46,050 --> 00:30:49,470 ما زلنا بحاجة إلى أن تكون دقيقة، ولا ننسى منقوطة الخاص بك، وتأكد 646 00:30:49,470 --> 00:30:51,470 لديك علامة الدولار الخاص بك، وأشياء من هذا القبيل. 647 00:30:51,470 --> 00:30:52,240 سؤال جيد. 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA: نعم. 649 00:30:53,115 --> 00:30:55,590 لذلك سطرا سطرا، كما تعارض مع الملفات C، 650 00:30:55,590 --> 00:30:59,100 علينا أن نجعل المباراة النهائية كله قبل أن نتمكن من تشغيل فعلا. 651 00:30:59,100 --> 00:31:00,360 هذا هو الفرق الرئيسي. 652 00:31:00,360 --> 00:31:02,655 ولكن مرة أخرى، لا يمكننا تكون حقا أقل تحديدا. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 حتى المصفوفات في PHP تمثل في الواقع خريطة أمر. 655 00:31:13,950 --> 00:31:17,550 >> من القيم صفائف المنتسبين إلى المفاتيح. 656 00:31:17,550 --> 00:31:23,350 بطريقتين أن تعلن ل مجموعة، بناء على هذا النحو، 657 00:31:23,350 --> 00:31:26,380 يمكننا أن نكون أكثر وضوحا في قوله لدينا مجموعة 658 00:31:26,380 --> 00:31:31,010 ولدينا هذا key1 أن يعين هذا value1 إلى، key2 أن خرائط و value2. 659 00:31:31,010 --> 00:31:34,660 أو نستطيع أن مجرد إنشاء صفيف الذي يحتوي على القيم نفسها 660 00:31:34,660 --> 00:31:38,360 ثم مفاتيح فهم بطريقة ما. 661 00:31:38,360 --> 00:31:40,000 أي أسئلة حول هذا؟ 662 00:31:40,000 --> 00:31:42,500 >> الحضور: ما من شأنه مفاتيح تكون في المثال الثاني؟ 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0، 1، 2، 3؟ 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA ZLATKOVA: على سبيل المثال، انها مجرد مفاتيح في هذا لا بالضرورة 667 00:31:55,780 --> 00:31:56,550 تحدث فرقا. 668 00:31:56,550 --> 00:32:01,720 انهم فقط تحديد كيف يمكنك استخدام القيم داخل منه. 669 00:32:01,720 --> 00:32:08,660 حتى إذا كان لدينا foreach حلقة في PHP التي من شأنها أن 670 00:32:08,660 --> 00:32:14,760 تسمح لنا للذهاب من خلال كل القيم، يمكننا أن نذهب من خلال كل القيم، 671 00:32:14,760 --> 00:32:19,570 حتى لو كان لدينا أو لم تحدد مفتاح معين داخل الموقع 672 00:32:19,570 --> 00:32:20,820 جملة السابق. 673 00:32:20,820 --> 00:32:23,460 >> بل وحتى مع هذا النوع من المصفوفة، وما زال بإمكاننا 674 00:32:23,460 --> 00:32:26,260 لدينا حلقة foreach الذي يمر عبر كل 675 00:32:26,260 --> 00:32:31,240 القيم في مفتاح في مجموعة. 676 00:32:31,240 --> 00:32:36,180 حتى بناء الجملة من foreach حلقة، ونحن نبدأ مع مجموعة. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 هذا المتغير $ آر هو مجموعة الفعلية لدينا أن حددنا في الشريحة السابقة 679 00:32:43,900 --> 00:32:47,550 كقيمة أن يذهب حرفيا من خلال كل من القيم، 680 00:32:47,550 --> 00:32:50,122 بغض النظر عما إذا كان لدينا مفتاح أم لا. 681 00:32:50,122 --> 00:32:53,080 وبعد ذلك يمكننا أن نفعل شيئا مع قيمة داخل حلقة foreach. 682 00:32:53,080 --> 00:32:57,730 ذلك مرة أخرى، إذا كان لدينا مجموعة مثل هذا هنا created-- 683 00:32:57,730 --> 00:33:03,270 لذلك لدينا مفتاح فو وقيمة بار، مفتاح الباز وقيمة qux-- 684 00:33:03,270 --> 00:33:09,730 فإننا يمكن أن يكون حلقة foreach أن يذهب من خلال مجموعة كقيمة أساسية 685 00:33:09,730 --> 00:33:11,900 ثم تفعل شيئا مع المفتاح و / أو قيمة. 686 00:33:11,900 --> 00:33:15,980 لكننا لا بالضرورة دائما يكون لديك foreach الحلقات التي 687 00:33:15,980 --> 00:33:19,410 يذهب من خلال مجموعة كما خريطة الرئيسية لقيمة. 688 00:33:19,410 --> 00:33:26,060 يمكننا أن نذهب من خلال foreach مجموعة حلقة كقيمة. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH بلومبرج: وأعتقد كان to-- سؤالك، ما 690 00:33:28,990 --> 00:33:31,229 هو مؤشر ضمني؟ 691 00:33:31,229 --> 00:33:31,895 الحضور: كندة. 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: أوه. 693 00:33:32,240 --> 00:33:33,406 HANNAH بلومبرج: نعم، نعم. 694 00:33:33,406 --> 00:33:36,150 ذلك أساسا، إذا لم تقم بتحديد مفتاح، انها ستكون 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA: نعم. 696 00:33:37,140 --> 00:33:41,718 كما هو الحال مع C، انها الصفر فهرستها إذا لم تقم بتحديد مفتاح. 697 00:33:41,718 --> 00:33:42,384 الحضور: آسف. 698 00:33:42,384 --> 00:33:43,827 هل يمكن أن حاول التكلم قليلا بصوت أعلى؟ 699 00:33:43,827 --> 00:33:45,270 أواجه قليلا من مشكلة سماع كل شيء. 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA: أنا آسف لذلك. 701 00:33:46,478 --> 00:33:48,439 نعم بالطبع. 702 00:33:48,439 --> 00:33:50,230 لذلك لا تريد لي أن يذهب أكثر من ذلك مرة أخرى؟ 703 00:33:50,230 --> 00:33:51,680 أو هو this-- 704 00:33:51,680 --> 00:33:54,930 الحضور: لذلك على slide-- السابقة إذا هل يمكن أن تذهب لتوه لثانية واحدة. 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA: بالطبع، آسف. 706 00:33:57,313 --> 00:33:59,237 الحضور: حتى الثانية مجموعة هنا لا 707 00:33:59,237 --> 00:34:04,135 يبدو أن لديها قيمة للمفتاح، نوعا ما [؟ العلاقة السببية. ؟] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA: الحق، الحق. 709 00:34:05,343 --> 00:34:07,608 الحضور: فكيف يفعل ذلك عمل عندما تقول انها كل شيء أو لا شيء. 710 00:34:07,608 --> 00:34:08,969 بالنسبة لي، الذي يبدو وكأنه ا [؟ فو؟] بالفعل. 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA: نعم، نعم. 712 00:34:10,093 --> 00:34:12,969 ذلك مرة أخرى، وهذا هو خريطة أمر في هذا المعنى 713 00:34:12,969 --> 00:34:15,639 أن يفهم من هناك، على سبيل المثال، والفهارس 714 00:34:15,639 --> 00:34:20,159 هنا يمكن أن تفهم على أنها 0، 1، 2، 3. 715 00:34:20,159 --> 00:34:25,929 مرة أخرى، هذا هو وجود تلك فهارس هي معادلا ل 716 00:34:25,929 --> 00:34:28,980 وجود مفاتيح تعيينها على القيم. 717 00:34:28,980 --> 00:34:34,710 حتى إذا كان لدينا مفتاح 0-- آسف. 718 00:34:34,710 --> 00:34:36,524 >> HANNAH بلومبرج: لا، هناك الطباشير هنا. 719 00:34:36,524 --> 00:34:36,929 انها فعلا لطيف حقا. 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: هذا أمر عظيم. 721 00:34:37,460 --> 00:34:38,260 حسنا. 722 00:34:38,260 --> 00:34:49,489 ذلك مرة أخرى، سوف يكون $ آر 0 المفتاح لقيمة 1. 723 00:34:49,489 --> 00:34:51,138 0 سيكون المفتاح لقيمة 1. 724 00:34:51,138 --> 00:34:51,971 الحضور: أنا آسف. 725 00:34:51,971 --> 00:34:53,190 انها غير مرئية. 726 00:34:53,190 --> 00:34:53,659 >> HANNAH بلومبرج: حسنا، فما باللك. 727 00:34:53,659 --> 00:34:54,980 كان الطباشير فكرة سيئة. 728 00:34:54,980 --> 00:34:58,030 أنا أعتبر الظهر. 729 00:34:58,030 --> 00:35:01,425 يمكنك التفكير في مفاتيح ك 0 الخرائط إلى القيمة 1. 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA: نعم. 731 00:35:02,300 --> 00:35:04,630 لذلك هذا هو 0، وهذا هو 1، 2، 3. 732 00:35:04,630 --> 00:35:05,760 يمكن أن تكون هذه المفاتيح الخاصة بك. 733 00:35:05,760 --> 00:35:10,020 يمكنك أن تفكر منهم as-- نعم. 734 00:35:10,020 --> 00:35:12,740 وذلك بدلا من الاضطرار مفاتيح واضحة، وانهم 735 00:35:12,740 --> 00:35:17,180 نوع من تفهم على أنها المؤشرات تبدأ في 0. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 لم الطباشير لا تساعد. 738 00:35:24,820 --> 00:35:25,722 نعم. 739 00:35:25,722 --> 00:35:30,914 >> الحضور: لحلقة foreach، إذا أردنا لعرض كقيمة، 740 00:35:30,914 --> 00:35:33,245 أنه سيكون مجرد تلقائيا مؤشر ل0؟ 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: نعم. 742 00:35:34,120 --> 00:35:35,745 فإنه تذهب من خلال كل من القيم. 743 00:35:35,745 --> 00:35:39,130 الحضور: (غير مسموع) كما 0 أو التي من شأنها أن تفعل فقط 0؟ 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA: عملتم لنقول كما علامة الدولار ثم 745 00:35:43,710 --> 00:35:46,266 بعض اسم متغير، قيمة. 746 00:35:46,266 --> 00:35:47,182 الحضور: (غير مسموع). 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA: عذرا؟ 749 00:35:50,964 --> 00:35:52,839 الحضور: عفوا، أنا فقط أحاول أن أتذكر. 750 00:35:52,839 --> 00:35:57,190 كيف يمكنك أن تفعل ذلك إذا كنت تستطيع ان تفعل ذلك تلقائيا الفهرسة فقط 0 من؟ 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVA: إذن كيف يمكنك أن تفعل ذلك إذا لم يكن لديك أسماء رئيسية محددة؟ 752 00:36:00,780 --> 00:36:01,710 >> الجمهور: نعم. 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA: أنت أردت فقط define-- نقول فقط نفسك بعض الاسم. 754 00:36:07,820 --> 00:36:17,950 لذلك ربما في psets الخاص بك، يا رفاق تذكر $ صف من الصفوف foreach $، 755 00:36:17,950 --> 00:36:24,610 أنشأنا بنفسي هذا الصف قائلا $ نريد أن نذهب من خلال صف واحد كما $ الصفوف. 756 00:36:24,610 --> 00:36:28,360 على الرغم من أننا لم يكن لدينا هذا $ صريح صفوف محددة، 757 00:36:28,360 --> 00:36:31,990 يمكننا أن اذهبوا و أقول هذا يمكن أن يكون المفتاح لدينا، 758 00:36:31,990 --> 00:36:33,615 واذهبوا من خلال كل من القيم. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> الجمهور: ذلك هو قيمة متغير جديد نحن بصدد إنشاء لتخزين (غير مسموع)؟ 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: حتى انها ليست بطبيعته متغير جديد. 763 00:36:49,990 --> 00:37:00,310 انها المتغير الذي يشير إلى داخل المصفوفة لكل واحد منهم. 764 00:37:00,310 --> 00:37:02,060 HANNAH بلومبرج: انها اسم متغير جديد. 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: نعم، انها اسم المتغير الجديد، 766 00:37:04,018 --> 00:37:06,680 ولكنها ليست inherently-- نعم. 767 00:37:06,680 --> 00:37:08,950 انها مجرد متغير جديد يمكنك أن تفعل ذلك. 768 00:37:08,950 --> 00:37:12,680 هكذا فقط كيف فعلنا $ صف واحد كما $ الصفوف، الصفوف 769 00:37:12,680 --> 00:37:17,980 كان اسم المتغير الجديد الذي نحن يمكن أن تخلق في حلقة foreach لدينا. 770 00:37:17,980 --> 00:37:22,065 لم يكن لديك لpreexist قبل ذلك. 771 00:37:22,065 --> 00:37:25,777 >> الحضور: هل يمكن أن تذهب من خلال المنطق لكل منهما، باستخدام المثال هناك؟ 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: MHM. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 أوه، آسف. 775 00:37:32,080 --> 00:37:33,780 وهنا المثال. 776 00:37:33,780 --> 00:37:34,280 بالتأكيد. 777 00:37:34,280 --> 00:37:38,950 لذلك لكل array-- ذلك وهذا يعني الذهاب إلى هذه المجموعة 778 00:37:38,950 --> 00:37:43,930 كمفتاح value-- أن يحدث للذهاب من خلال هذه المجموعة 779 00:37:43,930 --> 00:37:49,480 ويذهب أولا والحصول فو، و فو الرئيسي وشريط القيمة. 780 00:37:49,480 --> 00:37:51,570 ثم في اليوم الثاني التكرار من أجل حلقة، 781 00:37:51,570 --> 00:37:55,090 انها سوف تذهب من خلال واتخاذ والباز الرئيسي وqux قيمة. 782 00:37:55,090 --> 00:38:00,512 وبعد ذلك يمكنك أن تفعل شيئا مع أي منهما أو كليهما. 783 00:38:00,512 --> 00:38:03,488 >> الحضور: لذا فإن الفكرة وراء وجود نقطة أساسية إلى القيمة، 784 00:38:03,488 --> 00:38:07,470 ماذا في نهاية المطاف الوصول؟ 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA: ما هي الفكرة وجود لافتا الرئيسية لقيمة؟ 786 00:38:10,680 --> 00:38:16,400 انها مجرد اتفاقية أخرى، وآخر طريق الذهاب من خلال مجموعة 787 00:38:16,400 --> 00:38:22,600 والتمكن من الوصول إلى أي من مفتاح أو قيمة أو كليهما واستخدامها. 788 00:38:22,600 --> 00:38:27,100 >> الحضور: ما هو دور ل من أجل أن foreach يعمل في؟ 789 00:38:27,100 --> 00:38:29,250 حتى لو كنا لإضافة عناصر المصفوفة في وقت لاحق، 790 00:38:29,250 --> 00:38:32,140 فإن تلك تكون أول من ودعا في مجموعة foreach، 791 00:38:32,140 --> 00:38:33,750 أو قد يكون في وقت لاحق؟ 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA: فما هي النظام أن foreach 793 00:38:37,770 --> 00:38:39,210 حلقة يمر صفيف في؟ 794 00:38:39,210 --> 00:38:42,220 وغني عن طريق أولا عنصر إلى عنصر آخر، 795 00:38:42,220 --> 00:38:43,400 إلى العنصر أضاف الماضي. 796 00:38:43,400 --> 00:38:48,020 إذا قمت بإضافة العناصر في وقت لاحق، يفعلون أن accessed-- العناصر الأولى أن 797 00:38:48,020 --> 00:38:51,410 يمكن الوصول إليها كأول عناصر المصفوفة، 798 00:38:51,410 --> 00:38:57,620 وبعد ذلك كنت أذهب من خلال كل من عناصر كنوع من ordered-- 799 00:38:57,620 --> 00:39:02,930 ليس أمر، ولكن الطريقة التي كانت قد وضعت في مجموعة. 800 00:39:02,930 --> 00:39:06,855 >> الحضور: عناصر جديدة وهكذا وأضاف في وقت لاحق؟ 801 00:39:06,855 --> 00:39:10,680 حتى انهم added-- أنها سوف تكون تلك الأخيرة في [؟ تكرار. ؟] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA: عناصر جديدة can-- في الأساس، عند إضافة عناصر جديدة، 803 00:39:14,280 --> 00:39:16,520 وأضافوا إلى نهاية المصفوفة؟ 804 00:39:16,520 --> 00:39:17,632 >> الجمهور: نعم. 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: أعتقد ذلك. 806 00:39:18,840 --> 00:39:20,850 نعم فعلا. 807 00:39:20,850 --> 00:39:24,330 وبعد ذلك مع حلقة foreach الخاص بك، بعد أن كنت قد وأضاف عناصر جديدة 808 00:39:24,330 --> 00:39:26,790 وتذهب من خلالها، العناصر الجديدة من شأنه 809 00:39:26,790 --> 00:39:30,930 يكون accessed-- العنصر الجديد، لو كان وأضاف آخر، سيتم الوصول إليه آخر. 810 00:39:30,930 --> 00:39:34,416 >> الحضور: هل يمكن أن تعطي مجرد مثال من شيء من شأنه أن [غير مسموع] 811 00:39:34,416 --> 00:39:37,404 مع شيء مع قيمة مثل (غير مسموع) أو قيمة، 812 00:39:37,404 --> 00:39:38,910 مثل كيف كنت تهيئة ذلك؟ 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA: بالتأكيد. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 يمكن أن أعطي مثالا لما سنفعله مع القيمة؟ 816 00:39:46,410 --> 00:39:52,440 فما يا رفاق قد يكون على دراية هو أننا قد ذهبت من خلال مجموعة 817 00:39:52,440 --> 00:39:55,380 وطبع في الأساس كل عنصر من العناصر، 818 00:39:55,380 --> 00:40:00,910 على سبيل المثال، كجزء من قائمة مرتبة أو شيء من هذا. 819 00:40:00,910 --> 00:40:02,674 هل هذا يعقل أم نريد to-- 820 00:40:02,674 --> 00:40:04,340 الحضور: هل يمكننا طباعة هذه القيم من؟ 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: نعم، يمكننا طباعة ثم أساسا $ قيمة لأنه في 822 00:40:13,220 --> 00:40:16,570 أن قيمة محددة، وسنكون طباعة قيمة داخل منه. 823 00:40:16,570 --> 00:40:20,150 حتى لو كنا في أول التكرار لدينا من ذلك، ونحن المطبوعة قيمة $، 824 00:40:20,150 --> 00:40:23,775 نحن سيتم طباعة بار. 825 00:40:23,775 --> 00:40:27,020 >> الحضور: هل هناك أيضا ل الحلقات في PHP أو مجرد حلقات foreach؟ 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: هناك أيضا للحلقات في PHP. 827 00:40:30,430 --> 00:40:33,399 ومنطقهم هو الغالب نفس ما كنت قد استخدمت ل. 828 00:40:33,399 --> 00:40:34,690 الحضور: لذلك قيمته فارغة. 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA: انها مثل نفسه. 830 00:40:35,090 --> 00:40:35,590 نعم. 831 00:40:35,590 --> 00:40:37,747 الحضور: أنا مجرد الذهاب الى نسأل. 832 00:40:37,747 --> 00:40:39,695 لذلك عندما يعلن مجموعة، لا تحتاج 833 00:40:39,695 --> 00:40:42,617 لمعرفة ما حجم انه سيكون ل أن يكون، وهو ما يعني أنه يمكنك فقط 834 00:40:42,617 --> 00:40:44,417 إضافة ويسلب عناصر (غير مسموع). 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA: نعم. 836 00:40:45,250 --> 00:40:45,750 اجل. 837 00:40:45,750 --> 00:40:46,251 بالضبط. 838 00:40:46,251 --> 00:40:48,875 عندما نعلن صفيف، نحن لا تحتاج أن تقول ما حجم هو عليه، 839 00:40:48,875 --> 00:40:51,022 حتى نتمكن من مجرد إضافة عناصر على ذلك في وقت لاحق كذلك. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 المزيد من الأسئلة؟ 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 حتى يصل PHP و HTML معا، ما قمنا seen-- جيدا، 844 00:41:05,950 --> 00:41:15,130 على سبيل المثال، في هذا المثال، لدينا شكل HTML الذي يحتوي على حقل الإدخال. 845 00:41:15,130 --> 00:41:18,830 >> وحقل الإدخال هو اسم عادل ومن ثم فإنه يحتوي على زر إرسال. 846 00:41:18,830 --> 00:41:26,040 وعند الضغط على إرسال زر، في ملف hello.php لدينا، 847 00:41:26,040 --> 00:41:32,130 لأن أسلوب للنموذج هو الحصول عليها، يمكننا الوصول إلى كل ما هو في اسم 848 00:41:32,130 --> 00:41:40,360 قبل هذا يحصل متغير عالمي is-- بناء الجملة لأنها $ _GET. 849 00:41:40,360 --> 00:41:44,520 وبعد ذلك يمكننا الوصول مهما كانت إدخال المستخدم داخل هذا النموذج لاسم 850 00:41:44,520 --> 00:41:47,410 عن طريق تحديد اسم هذا الحقل. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> أي أسئلة أخرى أو أي أسئلة حول هذا مثال محدد؟ 853 00:41:55,060 --> 00:41:58,275 >> الحضور: أين هي PHP؟ 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA: هنا. 855 00:41:59,150 --> 00:42:01,150 لذلك هذا هو علامة فتح لدينا لPHP. 856 00:42:01,150 --> 00:42:01,530 >> الحضور: أوه، الحق. 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: نعم. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH بلومبرج: و= هو اختصار لذلك هو PHP ومجرد صدى. 860 00:42:09,609 --> 00:42:10,150 الحضور: أوه. 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: نعم، آسف. 862 00:42:10,720 --> 00:42:12,040 وأرجو أن يكون جعلت ذلك واضحا. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH بلومبرج: طباعة. 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA: انها مجرد وظيفة أن يسمح لنا لطباعة شيء. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 السؤال الكبير. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 حتى going-- نعم. 869 00:42:25,495 --> 00:42:31,940 >> الحضور: هل هناك سيكون تماما قليلا من ناحية ترميز PHP و HTML 870 00:42:31,940 --> 00:42:33,450 في مسابقة 1؟ 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA: يمكن أن يكون هناك قدر لا بأس به من تفسير 873 00:42:38,810 --> 00:42:43,330 من PHP و HTML، وليس بالضرورة مثل كمية كبيرة من الترميز، 874 00:42:43,330 --> 00:42:46,960 على الرغم من أنك قد تضطر إلى إرسال بريد حلقة foreach، على الرغم من حلقة for. 875 00:42:46,960 --> 00:42:49,790 أي من الحلقات أننا تغطية هنا هو لعبة عادلة. 876 00:42:49,790 --> 00:42:51,889 وهذا هو الغالب. 877 00:42:51,889 --> 00:42:53,430 HANNAH بلومبرج: سأكون مستعدا. 878 00:42:53,430 --> 00:42:57,010 في بنفس الطريقة التي طلبنا لك إرسال مجموعة من وظائف C في مسابقة 0، 879 00:42:57,010 --> 00:42:59,766 سأكون على استعداد للقيام نفس الشيء في PHP و JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: نعم. 881 00:43:00,640 --> 00:43:03,210 HANNAH بلومبرج: أود أن أقول وlittle-- كأننا لا 882 00:43:03,210 --> 00:43:06,251 سوف تجعلك إرسال بريد HTML ضخمة الصفحة فقط لأن هذا هو قليلا 883 00:43:06,251 --> 00:43:08,240 مملة، ولكن قد يكون لديك أجزاء. 884 00:43:08,240 --> 00:43:09,310 هذا هو لعبة عادلة تماما. 885 00:43:09,310 --> 00:43:11,082 تابع صفحة HTML الصغيرة وعادلة تماما. 886 00:43:11,082 --> 00:43:11,623 الحضور: OK. 887 00:43:11,623 --> 00:43:13,814 ماذا عن في جافا سكريبت كذلك؟ 888 00:43:13,814 --> 00:43:14,730 HANNAH بلومبرج: نعم. 889 00:43:14,730 --> 00:43:15,250 لعبة عادلة جافا سكريبت. 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: نعم. 891 00:43:15,635 --> 00:43:16,801 هذا هو لعبة عادلة تماما. 892 00:43:16,801 --> 00:43:19,280 HANNAH بلومبرج: أننا سنصل لأنه في مثل 10 دقيقة. 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL، مرة أخرى، لغة الاستعلام الهيكلية. 894 00:43:23,750 --> 00:43:28,651 انها اساسا يسمح لنا لإدارة البيانات في إدارة قواعد البيانات العلائقية 895 00:43:28,651 --> 00:43:29,150 نظام. 896 00:43:29,150 --> 00:43:31,149 وهذا يعني في الأساس فقط أن لدينا في مكان ما 897 00:43:31,149 --> 00:43:37,980 لتخزين بعض البيانات التي كنا قد ترغب في استخدام في موقع على شبكة الانترنت أو في شكل آخر. 898 00:43:37,980 --> 00:43:42,190 ومن ثم لدينا للحصول على الاستفسارات المعلومات من قاعدة البيانات الخاصة بنا، 899 00:43:42,190 --> 00:43:44,320 أو لادخال المعلومات الواردة فيها. 900 00:43:44,320 --> 00:43:47,560 وهناك الكثير من UPDATE ones-- المشترك، INSERT، SELECT و DELETE. 901 00:43:47,560 --> 00:43:50,790 >> وذلك لUPDATE، هذا هو بناء الجملة لتحديث البيانات في قاعدة بيانات. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 تحديث هذا الجدول يسمى الجدول بالقول SET، 904 00:43:57,340 --> 00:44:04,170 فإننا يمكن أن يحدد بعض القيم في جميع الصفوف يساوي شيئا آخر. 905 00:44:04,170 --> 00:44:09,410 ولذا فإننا يمكن أيضا تحديد بعض محددة الإدخالات التي نريد تعديلها 906 00:44:09,410 --> 00:44:11,240 والتي يمكن أن تكون باستخدام WHERE. 907 00:44:11,240 --> 00:44:16,380 ويمكننا تحديد أننا نريد فقط ل تعديل بعض الصفوف حيث المنزل ل، 908 00:44:16,380 --> 00:44:19,830 إذا كان لدينا جدول للطلاب وكان جميع الطلاب المنزل، 909 00:44:19,830 --> 00:44:24,890 ولذا فإننا سوف تعديل بعض القيم فقط حيث يساوي منزل كورير، 910 00:44:24,890 --> 00:44:25,430 على سبيل المثال. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> لINSERT، يمكننا إدراج بعض القيم في جدول. 913 00:44:31,800 --> 00:44:35,150 حتى INSERT INTO الجدول، ثم القيم، 914 00:44:35,150 --> 00:44:39,080 ثم بين قوسين، نحدده القيم التي تريد إدراج. 915 00:44:39,080 --> 00:44:43,220 حتى INSERT INTO الجدول، وCOL1 col2، والقيمة هي VAL1 وVAL2. 916 00:44:43,220 --> 00:44:48,930 لذلك هذا الأساس إدراج صف جديد في جدول يحتوي على القيم 1 و 2 917 00:44:48,930 --> 00:44:50,850 تحت الأعمدة 1 و 2. 918 00:44:50,850 --> 00:44:54,760 >> ثم نحن في طريقنا للذهاب أكثر مثال سريع لكيفية تبدو هذه 919 00:44:54,760 --> 00:44:56,310 كما هو الحال في قاعدة البيانات الخاصة بنا قليلا. 920 00:44:56,310 --> 00:44:58,685 ولكن هذا الاستعلام النهائي الذي I أعتقد أننا في طريقنا للذهاب أكثر، 921 00:44:58,685 --> 00:45:01,450 SELECT، فإنه يسمح لنا فقط لتحديد البيانات من جدول 922 00:45:01,450 --> 00:45:03,080 لربما استخدامها بعد ذلك. 923 00:45:03,080 --> 00:45:05,830 والطريقة التي نؤدي هذه هي أننا مجرد تخزينه في بعض متغير. 924 00:45:05,830 --> 00:45:07,780 ومن ثم يمكننا ربما استخدامه مرة أخرى. 925 00:45:07,780 --> 00:45:10,260 >> حتى نجمة اختيار وسائل تحديد كافة. 926 00:45:10,260 --> 00:45:13,280 هذا مجرد اختزال لاختيار جميع. 927 00:45:13,280 --> 00:45:19,760 من الجدول WHERE، نحن نبحث لبعض الظروف الخاصة، 928 00:45:19,760 --> 00:45:22,290 فأين يساوي العمود شيء ما، على سبيل المثال. 929 00:45:22,290 --> 00:45:24,410 إذا أردنا فقط ل حدد كل من الجدول، 930 00:45:24,410 --> 00:45:28,400 هذا يختار فقط كل الأعمدة وجميع الصفوف من الجدول. 931 00:45:28,400 --> 00:45:32,040 >> ومن ثم حذفها من الجدول أين عمود يساوي شيئا، 932 00:45:32,040 --> 00:45:36,440 هذا يحذف فقط بعض صف من جدول أعمالنا 933 00:45:36,440 --> 00:45:38,860 حيث لدينا بعض الظروف الخاصة. 934 00:45:38,860 --> 00:45:41,870 في هذه الحالة، فإن الظروف هي العمود يساوي شيئا. 935 00:45:41,870 --> 00:45:43,460 حتى مجرد مثال سريع من هذا. 936 00:45:43,460 --> 00:45:49,100 اذا كان لدينا هذا الجدول هنا، ونحن أدخله في جدول، هذه القيم، 937 00:45:49,100 --> 00:45:50,400 التي من شأنها أن إدراج صف جديد. 938 00:45:50,400 --> 00:45:56,380 وإذا كان لدينا لصناعة السيارات في الزيادة، وهذا من شأنه مجرد زيادة ID لدينا 0-1 ل 2 939 00:45:56,380 --> 00:46:00,010 >> إذا اخترنا كل من الطلاب، وذلك فقط بإرجاع كافة المجالات وكافة الصفوف. 940 00:46:00,010 --> 00:46:02,430 حيث السنة أكبر من أو يساوي 2016، 941 00:46:02,430 --> 00:46:04,390 التي من شأنها أن تعود فقط هانا ونفسي. 942 00:46:04,390 --> 00:46:08,360 ثم إذا اخترنا فقط عام معرف والسنة من الطلاب 943 00:46:08,360 --> 00:46:11,710 حيث كان المنزل هو كابوت البيت، أن سيكون، مرة أخرى، والعودة هانا ونفسي. 944 00:46:11,710 --> 00:46:14,430 >> ثم إذا حذفنا من الطلاب حيث اسم يساوي روب، 945 00:46:14,430 --> 00:46:16,760 التي من شأنها أن حذف الصف بأكمله. 946 00:46:16,760 --> 00:46:19,696 ثم إذا وضعنا اسم والطلاب UPDATE 947 00:46:19,696 --> 00:46:21,570 اسم SET يساوي Daven WHERE المنزل يساوي 948 00:46:21,570 --> 00:46:27,010 كابوت البيت، وهذا سبيلنا للذهاب الى تلك الصفوف ومن ثم تحديث الاسم. 949 00:46:27,010 --> 00:46:31,470 >> ثم بضعة أنواع البيانات SQL هي CHAR، VARCHAR، INT، وتطفو. 950 00:46:31,470 --> 00:46:32,760 هذه هي لعبة عادلة. 951 00:46:32,760 --> 00:46:36,740 وأود أن تذهب من جديد وتأكد من أنك تعرف 952 00:46:36,740 --> 00:46:40,930 ويكون لهم على ورقة الغش الخاص بك، ما كل من تلك الأحرف 953 00:46:40,930 --> 00:46:44,140 وقد استخدمت ل، ما كنت استخدمها على psets الخاص بك، 954 00:46:44,140 --> 00:46:48,050 وتأكد من أنك على دراية و مريحة مع وجود لاختيار 955 00:46:48,050 --> 00:46:51,450 من أنواع بيانات مختلفة في PSET الخاص بك. 956 00:46:51,450 --> 00:46:51,950 نعم فعلا. 957 00:46:51,950 --> 00:46:54,300 >> الحضور: ما تم تخزين هذا الجدول؟ 958 00:46:54,300 --> 00:46:57,119 نعم، حيث يتم تخزين هذا الجدول؟ 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA: حسنا، في الوقت الراهن، ليست تخزينه. 960 00:46:59,160 --> 00:47:00,700 على أي حال، حيث يتم تخزين هذا الجدول؟ 961 00:47:00,700 --> 00:47:04,503 ولكن يمكن تخزينها في قاعدة بيانات SQL. 962 00:47:04,503 --> 00:47:07,330 >> الحضور: وأين هو قاعدة بيانات SQL؟ 963 00:47:07,330 --> 00:47:11,200 في الكمبيوتر، الانترنت في مكان ما، والخادم؟ 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA: إنه يمكن أن يكون عدد من الاشياء المختلفة. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH بلومبرج: لقد تفاعل مع جداول SQL في الغالب مع بريس. 966 00:47:19,690 --> 00:47:22,060 ولذا فإننا يمكن أن تسأل الخادم لتخزينها بالنسبة لنا. 967 00:47:22,060 --> 00:47:23,830 نحن يمكن تخزينها على جهاز الكمبيوتر الخاص بنا. 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA: إنه يعتمد فقط على كيف تريد أن تفعل ذلك لنفسك. 969 00:47:27,950 --> 00:47:30,075 لكننا كنا تخزين منهم، كما ذكر هانا، 970 00:47:30,075 --> 00:47:31,755 على بريس، الذي هو على الانترنت. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 ومن ثم الطريقة التي نستخدم بها PHP و SQL، ونحن تخزينه 973 00:47:39,280 --> 00:47:43,450 في بعض متغير ما كنا الاستعلام عنه. 974 00:47:43,450 --> 00:47:48,370 >> لذلك إذا أردنا تحديد الكل من التاريخ حيث يساوي USER_ID معرف جلسة، 975 00:47:48,370 --> 00:47:53,900 التي من شأنها أن تحديد كافة الصفوف لشخص معين 976 00:47:53,900 --> 00:47:58,327 يتم تسجيل في من التاريخ الطاولة وفرزها في الصفوف. 977 00:47:58,327 --> 00:48:00,410 وهناك شيء بارد لمعرفته هو أن وظيفة الاستعلام CS50 ل 978 00:48:00,410 --> 00:48:02,180 يحمي من علامات حقن SQL. 979 00:48:02,180 --> 00:48:07,420 هذا يعني فقط أن يتأكد المدخلات التي يتم إدخالها هو الصحيح 980 00:48:07,420 --> 00:48:09,920 وأن الشخص الذي تدخل المدخلات 981 00:48:09,920 --> 00:48:15,100 لا تحاول إدخال بعض الخبيثة كود إما إسقاط الجداول لدينا 982 00:48:15,100 --> 00:48:17,305 أو حذف كل شيء داخل قاعدة بياناتنا. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> لمحة سريعة عن نموذج عرض المراقب نموذج، 985 00:48:23,400 --> 00:48:27,360 انها مجرد وسيلة لتنظيم والتفكير في التعليمات البرمجية. 986 00:48:27,360 --> 00:48:29,100 انها مرة أخرى، وهو نموذج التصميم. 987 00:48:29,100 --> 00:48:33,380 ما يعنيه ذلك هو أننا can-- وانها ممارسة جيدة 988 00:48:33,380 --> 00:48:37,790 لفصل أجزاء مختلفة من نظامنا وما 989 00:48:37,790 --> 00:48:40,530 التحكم في هذه النماذج الثلاثة. 990 00:48:40,530 --> 00:48:46,700 >> لذلك رأينا هو في معظم الأحيان لدينا قوالب، والتخطيط لدينا، والطريقة 991 00:48:46,700 --> 00:48:48,260 التي وضعناها كيف تبدو متاحة لدينا. 992 00:48:48,260 --> 00:48:55,190 وهذا في الغالب ملفات CSS لدينا وسيلة أن حددنا تصميم الكود، 993 00:48:55,190 --> 00:48:55,710 في الأساس. 994 00:48:55,710 --> 00:48:59,280 تحكم لدينا هو في الغالب ما كنا نقوم به مع ملفات PHP. 995 00:48:59,280 --> 00:49:03,030 ذلك مرة أخرى، والعمل مع المعلومات التي لدينا 996 00:49:03,030 --> 00:49:06,700 وتحديد كيف أن يتم استخدام المعلومات، 997 00:49:06,700 --> 00:49:10,660 ومن ثم تمرير هذه المعلومات إما على طريقة العرض أو النموذج. 998 00:49:10,660 --> 00:49:13,880 والنموذج، والطريقة التي كانت لدينا تم استخدام غير كانت قاعدة البيانات الخاصة بنا، 999 00:49:13,880 --> 00:49:17,510 فأين معلوماتنا المخزنة لذلك لديه في مكان ما 1000 00:49:17,510 --> 00:49:21,490 للعيش فيه، وأي من التعليمات البرمجية التي تتعلق الطريق 1001 00:49:21,490 --> 00:49:25,410 أن نحصل على تلك المعلومات أو الطريقة التي نقوم بتحديث هذه المعلومات. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> وذلك في نموذج MVC، HTTP يتم إرسال الطلبات إلى خادم الويب. 1004 00:49:33,200 --> 00:49:36,220 ثم، ويفسر تحكم الطلب من المستخدم 1005 00:49:36,220 --> 00:49:38,260 وبعد ذلك بالتحقق من صحة إدخال المستخدم. 1006 00:49:38,260 --> 00:49:41,580 انها اختياري لدينا وحدة تحكم التواصل 1007 00:49:41,580 --> 00:49:44,000 مع النموذج، لذلك شيئا مثل قاعدة البيانات الخاصة بنا 1008 00:49:44,000 --> 00:49:47,500 أو بعض الوظائف الأخرى أن التبديلات المعلومات. 1009 00:49:47,500 --> 00:49:50,340 ثم أخيرا، وحدة تحكم يمر المعلومات على الرأي 1010 00:49:50,340 --> 00:49:52,090 حتى أنه يمكن أن يكون أصدرت وما في وسعها 1011 00:49:52,090 --> 00:49:55,860 أصبح واضحا إلى أي شخص الوصول إلى صفحة الويب. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> أي أسئلة؟ 1014 00:50:01,340 --> 00:50:01,840 رائع. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 ذلك مرة أخرى، والنموذج، وظيفتها، ومرة ​​أخرى، 1017 00:50:08,469 --> 00:50:11,260 هو استمرار تخزين المعلومات، إدارة وتنظيم البيانات. 1018 00:50:11,260 --> 00:50:13,890 وما رأيناه حتى الآن هو قاعدة بيانات MySQL 1019 00:50:13,890 --> 00:50:16,200 وأي ملفات البيانات التي قد تستخدم. 1020 00:50:16,200 --> 00:50:20,580 >> عرض، عرض المعلومات ل المستخدم، واجهة المستخدم، أو واجهة المستخدم. 1021 00:50:20,580 --> 00:50:22,350 والمثال على ذلك هو HTML. 1022 00:50:22,350 --> 00:50:23,950 ومن ثم قد يكون لدينا الحد الأدنى PHP. 1023 00:50:23,950 --> 00:50:28,360 لذلك لحلقة التي بالتكرار على البيانات التي يتم طباعتها 1024 00:50:28,360 --> 00:50:30,720 هو جزء من الرأي، كما بدلا من وحدة تحكم. 1025 00:50:30,720 --> 00:50:35,660 وبعد ذلك الكثير من الملفات PHP لدينا تندرج في فئة وحدة تحكم. 1026 00:50:35,660 --> 00:50:38,410 كان يعالج فقط طلبات المستخدمين و يحصل على معلومات من هذا النموذج. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> القفز الى الوثيقة طراز كائن، وهذا فقط 1029 00:50:45,590 --> 00:50:47,700 يشير إلى الطريقة HTML وتنظم وثائق. 1030 00:50:47,700 --> 00:50:51,600 وانهم تنظيمها في شجرة هيكل يحتوي على التسلسل الهرمي. 1031 00:50:51,600 --> 00:50:56,720 لذلك إذا أردنا الحصول على (غير مسموع) تمثيل وثيقة، 1032 00:50:56,720 --> 00:51:02,750 يمكننا العمل مع وثيقة، مثل نحن أساسا التعامل مع الأشياء. 1033 00:51:02,750 --> 00:51:06,630 >> وجعل هذا قليلا أكثر وضوحا، عندما 1034 00:51:06,630 --> 00:51:10,540 لدينا الكثير لدينا علامات مختلفة تستجيب 1035 00:51:10,540 --> 00:51:12,590 لطرق مختلفة في شجرة لدينا. 1036 00:51:12,590 --> 00:51:17,070 ثم لهذا المثال، ونحن مضمون هذه الوثيقة عقدة البداية. 1037 00:51:17,070 --> 00:51:20,010 لدينا، إذن، لدينا عقدة HTML الذي يقسم إلى الرأس والجسم. 1038 00:51:20,010 --> 00:51:22,810 رئيس لديه عنوان وثم العنوان يحتوي مرحبا، العالم. 1039 00:51:22,810 --> 00:51:24,860 وجسمنا يحتوي فقط مرحبا، العالم كذلك. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> لذلك أي أسئلة على أي من الأشياء التي غطينا حتى الآن؟ 1042 00:51:31,900 --> 00:51:35,891 وإذا لم يكن كذلك، سوف هانا تولي مع جافا سكريبت. 1043 00:51:35,891 --> 00:51:36,390 رائع. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH بلومبرج: OK، بارد. 1045 00:51:37,473 --> 00:51:40,980 إذا كان أي شيء يأتي مع PHP أو HTML، أو أي من الاشياء ماريا تغطيتها، 1046 00:51:40,980 --> 00:51:42,700 يمكننا أن نتوقف دائما. 1047 00:51:42,700 --> 00:51:46,430 نقوم به على نحو أفضل مرة أخرى، ذلك رائع. 1048 00:51:46,430 --> 00:51:48,770 ومجرد أن أعود بسرعة حقا إلى هذا، 1049 00:51:48,770 --> 00:51:51,010 اذا نظرتم الى كل امتحان العام الماضي، وهذا 1050 00:51:51,010 --> 00:51:54,120 يأتي إما: هنا بعض HTML، وجعل هذا المخطط. 1051 00:51:54,120 --> 00:51:58,380 أو هنا هذا المخطط، وجعل بعض HTML، لذلك بالتأكيد ممارسة ذلك. 1052 00:51:58,380 --> 00:52:01,500 وبعد ذلك واحدة مضمونة السؤال الذي يمكنك الحصول على حق. 1053 00:52:01,500 --> 00:52:02,000 رائع. 1054 00:52:02,000 --> 00:52:04,510 لذلك دعونا نتحدث عن تفعيل جافا وكيف انها قليلا 1055 00:52:04,510 --> 00:52:09,130 تختلف عن لغات مثل PHP و C، واثنين من لغات رأينا مسبقا. 1056 00:52:09,130 --> 00:52:10,780 حتى رقم واحد، انها كتبته فضفاضة. 1057 00:52:10,780 --> 00:52:14,630 هذا هو مثل PHP، ولكن خلافا C. 1058 00:52:14,630 --> 00:52:15,890 >> انها لغة تفسيرها. 1059 00:52:15,890 --> 00:52:19,870 مرة أخرى، وهذا مثل PHP، على عكس C. وهذا 1060 00:52:19,870 --> 00:52:24,630 سوف تسمح لنا use-- ذلك يعمل بشكل جيد حقا مع صفحات الويب. 1061 00:52:24,630 --> 00:52:28,350 انها سوف تسمح لنا للتلاعب المحتوى وكيف يبدو 1062 00:52:28,350 --> 00:52:30,300 وماذا يفعل. 1063 00:52:30,300 --> 00:52:32,330 >> ونحن في طريقنا لرؤية قليلا من اياكس. 1064 00:52:32,330 --> 00:52:36,140 لأنها تتيح لنا التواصل غير متزامن مع خوادم مختلفة 1065 00:52:36,140 --> 00:52:37,950 والحصول على المعلومات. 1066 00:52:37,950 --> 00:52:42,820 وهذا هو الشيء الذي حقا يفصل JavaScript من PHP وC 1067 00:52:42,820 --> 00:52:45,590 غير أنه من جانب العميل. 1068 00:52:45,590 --> 00:52:49,860 كلا PHP و C عادة من جانب الخادم. 1069 00:52:49,860 --> 00:52:51,960 >> بالنسبة للجزء الأكبر و تماما تقريبا ما 1070 00:52:51,960 --> 00:52:53,900 رأيناه، على الأقل في هذه الفئة، وجافا سكريبت 1071 00:52:53,900 --> 00:52:57,040 يعمل على العميل، مما يعني أن المتصفح هو في الواقع 1072 00:52:57,040 --> 00:52:58,597 مسؤولة عن تشغيله. 1073 00:52:58,597 --> 00:53:01,180 وهذا يعني أننا لا بحاجة إلى التفاعل مع الخادم. 1074 00:53:01,180 --> 00:53:04,380 ذلك يعني أنه يمكن أن يكون أسرع كثيرا لأنه في الواقع مجرد انها كروم، 1075 00:53:04,380 --> 00:53:10,420 انها سفاري، انها فايرفوكس، مهما كنت استخدام في الواقع تشغيل جافا سكريبت. 1076 00:53:10,420 --> 00:53:12,290 >> الحضور: ماذا المتزامن يعني؟ 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH بلومبرج: آه، ما يعني بشكل غير متزامن؟ 1078 00:53:13,620 --> 00:53:14,250 السؤال الكبير. 1079 00:53:14,250 --> 00:53:17,890 means-- بشكل غير متزامن كذلك، فإن المحتوى الذي 1080 00:53:17,890 --> 00:53:22,140 نستخدمها هي، OK، ونحن يتم إنشاء صفحة على شبكة الإنترنت 1081 00:53:22,140 --> 00:53:23,860 ونحن بحاجة للحصول على بعض المعلومات. 1082 00:53:23,860 --> 00:53:28,250 حتى مع المثال من المزج، بعض المعلومات التي قد نرغب 1083 00:53:28,250 --> 00:53:30,580 غير عناوين المقالات. 1084 00:53:30,580 --> 00:53:33,330 الآن، نحن could-- خيار واحد هو أن تفعل ذلك بشكل متزامن 1085 00:53:33,330 --> 00:53:37,940 وهذا يعني دعونا وقف، الذهاب الحصول على المادة، 1086 00:53:37,940 --> 00:53:41,275 الحصول على الجزء الخلفي من المادة، ومن ثم تقدم، لكن ذلك سيكون بطيئا حقا. 1087 00:53:41,275 --> 00:53:44,150 ومن شأن ذلك أن يكون للمستخدم تجربة سيئة لأنك لن يكون مجرد الجلوس 1088 00:53:44,150 --> 00:53:46,630 هناك في انتظار شيء ما للرد. 1089 00:53:46,630 --> 00:53:50,020 >> يعني أننا غير متزامن سوف الاستمرار في الذهاب عن أعمالنا، 1090 00:53:50,020 --> 00:53:52,529 تقديم الصفحة، و سنرسل قبالة الطلب 1091 00:53:52,529 --> 00:53:54,570 وهذا النوع من الذهاب الى يحدث في الخلفية. 1092 00:53:54,570 --> 00:53:57,610 أعتقد أننا استخدام المثال في محاضرة الدعوة روب وقال: 1093 00:53:57,610 --> 00:53:59,980 مهلا، يمكنك أن تبحث هذا الأمر بالنسبة لي والحصول يعود لي، 1094 00:53:59,980 --> 00:54:02,870 بدلا من مجرد لي الانتظار على الهاتف. 1095 00:54:02,870 --> 00:54:07,020 ذلك يعني بشكل غير متزامن يحدث في الخلفية بعيدا عنا 1096 00:54:07,020 --> 00:54:08,676 بالتوازي. 1097 00:54:08,676 --> 00:54:10,400 >> السؤال الكبير. 1098 00:54:10,400 --> 00:54:11,830 أي شيء آخر؟ 1099 00:54:11,830 --> 00:54:12,330 رائعة. 1100 00:54:12,330 --> 00:54:15,020 ونحن سوف تقفز أكثر الكثير في طلبات متزامنة مع اياكس. 1101 00:54:15,020 --> 00:54:18,287 >> الحضور: هل JavaScript-- أين ان تسقط مع نموذج للرؤية وحدة تحكم؟ 1102 00:54:18,287 --> 00:54:19,620 HANNAH بلومبرج: السؤال الكبير. 1103 00:54:19,620 --> 00:54:23,320 أين سقوط جافا سكريبت مع نموذج للرؤية وحدة تحكم؟ 1104 00:54:23,320 --> 00:54:23,930 جلالة الملك. 1105 00:54:23,930 --> 00:54:28,350 واعتقد انه يمكن fall-- لذلك نحن لا عادة 1106 00:54:28,350 --> 00:54:31,340 أحب أن إسحق أنه في ذلك نموذج، ولكن أعتقد أن أقول، 1107 00:54:31,340 --> 00:54:34,280 OK، لذلك جافا سكريبت في الواقع هو الذهاب الى سماح 1108 00:54:34,280 --> 00:54:37,587 لنا لجمع البيانات، تفسير البيانات، فعلا 1109 00:54:37,587 --> 00:54:38,920 أشياء ذات مغزى مع البيانات. 1110 00:54:38,920 --> 00:54:41,100 وبهذه الطريقة، فمن تحكم تشبه جدا. 1111 00:54:41,100 --> 00:54:43,900 >> لكنه سيحتاج أيضا للسماح لنا عرض الأشياء والأمور الطباعة. 1112 00:54:43,900 --> 00:54:47,021 وبهذه الطريقة، فمن جدا-view هل أعجبتك. 1113 00:54:47,021 --> 00:54:47,520 نعم. 1114 00:54:47,520 --> 00:54:51,710 لذلك نوع من مثل PHP في حيث يمكن أن يكون نوع من الاثنين معا. 1115 00:54:51,710 --> 00:54:53,330 سؤال جيد. 1116 00:54:53,330 --> 00:54:55,209 أي شيء آخر؟ 1117 00:54:55,209 --> 00:54:56,000 كل الحق، رهيبة. 1118 00:54:56,000 --> 00:54:57,120 تتحرك على طول الحق. 1119 00:54:57,120 --> 00:54:59,110 >> لذلك دعونا نرى مثالا من كيف يمكننا استخدام 1120 00:54:59,110 --> 00:55:02,250 الجافا سكربت في أحد البرامج على شبكة الانترنت. 1121 00:55:02,250 --> 00:55:05,680 ولذا فإنني سوف تنظر في هذا index.html و مع حفنة من HTML. 1122 00:55:05,680 --> 00:55:08,800 والشيء أريدك التركيز على هذا الوسم النصي. 1123 00:55:08,800 --> 00:55:13,280 وهذا يقول: OK، أريد أن أشغل بعض جافا سكريبت وهنا هو المكان الذي يعيش فيه. 1124 00:55:13,280 --> 00:55:15,400 أنه يعيش في hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> وكثيرا مثل CSS، استطعنا وضع جافا سكريبت داخل HTML. 1126 00:55:21,120 --> 00:55:24,000 لماذا قد نريد أن نفصل بها؟ 1127 00:55:24,000 --> 00:55:24,500 نعم. 1128 00:55:24,500 --> 00:55:25,486 >> الحضور: أسهل للكتابة؟ 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH بلومبرج: نعم. 1130 00:55:26,402 --> 00:55:28,450 انها أسهل للاستخدام في جميع أنحاء صفحات الويب المختلفة. 1131 00:55:28,450 --> 00:55:29,980 إنها تحافظ الأمور أكثر نظافة. 1132 00:55:29,980 --> 00:55:32,090 انها مجرد الممارسة الجيدة. 1133 00:55:32,090 --> 00:55:32,590 رائع. 1134 00:55:32,590 --> 00:55:33,930 اجابة جيدة. 1135 00:55:33,930 --> 00:55:36,690 جيد جدا، لذلك هذا هو الذهاب أن تكون index.html و لدينا. 1136 00:55:36,690 --> 00:55:39,430 ثم إلى هنا هو لدينا ملف جافا سكريبت الصغير للغاية. 1137 00:55:39,430 --> 00:55:42,410 >> وكل ما يقوله هو في حالة تأهب مرحبا، العالم. 1138 00:55:42,410 --> 00:55:46,040 فما يحدث هو عندما هذه الصفحة renders-- 1139 00:55:46,040 --> 00:55:49,680 حتى إذا ذهبت إلى أي موقع هذا is-- كل ما سيحدث 1140 00:55:49,680 --> 00:55:53,330 وانها سوف يقولون، حسنا، أنا الذهاب لتشغيل هذا شفرة جافا سكريبت. 1141 00:55:53,330 --> 00:55:56,370 وهذه شفرة جافا سكريبت يقول فقط في حالة تأهب مرحبا، العالم. 1142 00:55:56,370 --> 00:55:59,090 لذلك أنا ذاهب للحصول على هذا ودية القليل المنبثقة. 1143 00:55:59,090 --> 00:56:00,360 >> رائع؟ 1144 00:56:00,360 --> 00:56:04,746 هذا هو نوع من مثل لدينا أولا جدا جافا سكريبت البرنامج، لدينا مرحبا، العالم. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 دعونا ننظر أكثر قليلا حول ما بناء جملة جافا سكريبت يبدو. 1147 00:56:12,190 --> 00:56:16,330 وعلى وجه التحديد، دعونا نقارن ذلك ل C وPHP، الذي رأيناه من قبل. 1148 00:56:16,330 --> 00:56:20,610 >> في جافا سكريبت، ونحن في طريقنا ل فار، واسم المتغير، ومن ثم 1149 00:56:20,610 --> 00:56:21,690 القيمة الفعلية لها. 1150 00:56:21,690 --> 00:56:26,170 ونحن لم تحدد نوع، فقط في مثل PHP، ولكن خلافا للغاية في C. 1151 00:56:26,170 --> 00:56:28,850 هكذا على سبيل المثال، إذا أردنا لتخزين قيمة 50، 1152 00:56:28,850 --> 00:56:32,490 في C، فإننا يجب أن أقول، مهلا، C، أريد صحيح، 1153 00:56:32,490 --> 00:56:35,076 انا ذاهب الى نسميها ط، وقيمته 50. 1154 00:56:35,076 --> 00:56:36,450 في PHP، انها أسهل قليلا. 1155 00:56:36,450 --> 00:56:41,880 نقول، مهلا، أريد متغير دعوت وقيمتها 50. 1156 00:56:41,880 --> 00:56:45,890 على نحو مماثل للغاية، في جافا سكريبت، ونحن أقول مهلا، أريد متغير يسمى ط، 1157 00:56:45,890 --> 00:56:47,080 قيمتها 50. 1158 00:56:47,080 --> 00:56:52,140 في كل مرة لاحقة أن أستعمل ط، ولست بحاجة لكتابة فار. 1159 00:56:52,140 --> 00:56:53,810 انها مجرد أنني منذ ذلك الحين فصاعدا. 1160 00:56:53,810 --> 00:56:58,660 وبنفس الطريقة، في C، حيث مرة واحدة ونحن نقول الباحث ط، نحن فقط استخدام ط. 1161 00:56:58,660 --> 00:57:00,340 رائع؟ 1162 00:57:00,340 --> 00:57:01,800 حسنا. 1163 00:57:01,800 --> 00:57:03,710 >> الانتقال إلى الحلقات، لحسن الحظ، هذه تقريبا 1164 00:57:03,710 --> 00:57:06,720 تبدو exactly-- اعتقد انهم بالضبط نفس ما 1165 00:57:06,720 --> 00:57:09,799 الحلقات تسير لتبدو وكأنها في شيء من هذا القبيل C حيث لديك للحلقة 1166 00:57:09,799 --> 00:57:11,840 وستكون لدينا ثلاثة parts-- والتهيئة، 1167 00:57:11,840 --> 00:57:13,640 شرط، والتحديث. 1168 00:57:13,640 --> 00:57:15,340 حلقة في حين، يبدو بالضبط نفس. 1169 00:57:15,340 --> 00:57:16,390 نحن فقط إعطائها الشرط. 1170 00:57:16,390 --> 00:57:18,264 >> وافعل حين حلقة، مرة أخرى، بالضبط نفس الشيء. 1171 00:57:18,264 --> 00:57:20,190 اعطيناها شرط. 1172 00:57:20,190 --> 00:57:24,510 دعنا نقول أردت أن تكرار over-- أردت أن تفعل شيئا خمس مرات. 1173 00:57:24,510 --> 00:57:27,840 في C، يمكننا كتابة لتهيئة ط يساوي 0. 1174 00:57:27,840 --> 00:57:30,480 أنا أقل من 5، ط ++. 1175 00:57:30,480 --> 00:57:34,240 الفرق الوحيد، في جافا سكريبت، بدلا من أن تقول كثافة العمليات ط يساوي 0، 1176 00:57:34,240 --> 00:57:36,820 نقول فار ط يساوي 0. 1177 00:57:36,820 --> 00:57:38,370 جميل. 1178 00:57:38,370 --> 00:57:41,320 هذا هو الفرق الوحيد. 1179 00:57:41,320 --> 00:57:43,200 أي أسئلة عن أي من ذلك؟ 1180 00:57:43,200 --> 00:57:44,160 نعم فعلا. 1181 00:57:44,160 --> 00:57:48,480 >> الحضور: حتى في PHP، هو نفسه شيء ما عدا ولكن مثل متغير؟ 1182 00:57:48,480 --> 00:57:49,564 أو كان ذلك مثالا فار؟ 1183 00:57:49,564 --> 00:57:50,480 HANNAH بلومبرج: نعم. 1184 00:57:50,480 --> 00:57:52,310 حتى في PHP، انها تسير لتكون علامة الدولار. 1185 00:57:52,310 --> 00:57:59,450 لذلك سيكون ل$ ط متساوين 0 $ ط أقل من 5، $ ط ++. 1186 00:57:59,450 --> 00:58:02,490 السؤال الكبير. 1187 00:58:02,490 --> 00:58:04,570 >> الآن دعونا نتحدث عن الإعلانات ظيفة. 1188 00:58:04,570 --> 00:58:07,010 في C، عندما أعلنا وظيفة، أعطينا اسم 1189 00:58:07,010 --> 00:58:08,490 وأعطينا بعض المعلمات. 1190 00:58:08,490 --> 00:58:10,670 وفي البداية، كتبنا نوع. 1191 00:58:10,670 --> 00:58:12,440 في جافا سكريبت، كل ما عليك القيام به هو إرسال 1192 00:58:12,440 --> 00:58:15,080 وظيفة الكلمة التي يقول: مهلا، جافا سكريبت، 1193 00:58:15,080 --> 00:58:16,570 أنا على وشك أن تحديد وظيفة. 1194 00:58:16,570 --> 00:58:18,520 >> في هذه الحالة، لديه اسم المبلغ. 1195 00:58:18,520 --> 00:58:20,820 ويستغرق حجتين، x و y. 1196 00:58:20,820 --> 00:58:23,280 لاحظ أننا لا يهمني حول أنواع x و y. 1197 00:58:23,280 --> 00:58:26,280 وتماما مثل C، لدينا هذه العودة الكلمة، 1198 00:58:26,280 --> 00:58:29,140 حتى نتمكن من فعل شيء مثل عودة x و y. 1199 00:58:29,140 --> 00:58:32,540 >> والآن بعد أن نكون قد كتبت هذا أولا وظيفة، يمكننا استخدام المبلغ في أي مكان. 1200 00:58:32,540 --> 00:58:34,740 وهذا شيء طيب تماما. 1201 00:58:34,740 --> 00:58:37,530 شيء واحد بارد حقا حول جافا سكريبت هذا هو جدا خلافا C 1202 00:58:37,530 --> 00:58:40,770 هذا هو وظائف يمكن أن يعامل مثل القيم. 1203 00:58:40,770 --> 00:58:43,895 حتى نتمكن من فعل شيء مثل هنا حيث أعتقد أنني تغطية هذا up-- 1204 00:58:43,895 --> 00:58:46,400 I التستر مجموع فار part-- وقلنا فقط 1205 00:58:46,400 --> 00:58:49,850 وظيفة س ص يساوي عودة X زائد ذ. 1206 00:58:49,850 --> 00:58:52,140 >> هذا هو ما يمكن أن يسمى وظيفة غير معروفة. 1207 00:58:52,140 --> 00:58:53,920 انها وظيفة من دون اسم. 1208 00:58:53,920 --> 00:58:56,290 في حين يقول هذا وظيفة خلاصة القول، كذا وكذا وكذا، 1209 00:58:56,290 --> 00:58:59,340 هذا القول مجرد وظيفة. 1210 00:58:59,340 --> 00:59:02,020 ولكن الآن على الرغم من ولدي هذه وظيفة مجهول، 1211 00:59:02,020 --> 00:59:03,630 أن وظيفة هو في الحقيقة مجرد قيمة. 1212 00:59:03,630 --> 00:59:05,160 يمكننا التعامل معها مثل قيمة. 1213 00:59:05,160 --> 00:59:10,180 >> حتى نتمكن من حفظه في متغير نفسه الطريقة التي يمكن تخزين 50 في متغير. 1214 00:59:10,180 --> 00:59:13,870 لذا يمكننا القول، OK، أريد متغير، انه دعا المبلغ، 1215 00:59:13,870 --> 00:59:16,011 وذلك هو هذه الوظيفة. 1216 00:59:16,011 --> 00:59:18,760 حتى هذين الأمرين هي في الواقع تنوي القيام به بالضبط نفس الشيء، 1217 00:59:18,760 --> 00:59:21,576 لكن بناء الجملة قليلا ويختلف نوع من مذكرة المرح. 1218 00:59:21,576 --> 00:59:22,076 نعم. 1219 00:59:22,076 --> 00:59:25,548 >> الحضور: لذلك يمكن أن نطلق عليه الوظيفة التي كان مجهول قائلا: 1220 00:59:25,548 --> 00:59:28,244 بين قوسين مبلغ 2، 5؟ 1221 00:59:28,244 --> 00:59:29,160 HANNAH بلومبرج: نعم. 1222 00:59:29,160 --> 00:59:32,280 يمكنك استدعاء هذا المجهول وظيفة في نفس الطريق. 1223 00:59:32,280 --> 00:59:33,350 كنت ستفعل مبلغ (2، 5) ؛. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 ومن شأن ذلك أن يكون على ما يرام تماما. 1226 00:59:38,200 --> 00:59:41,575 >> إذا لم أفعل يساوي مبلغ فار وظيفة، إذا كنت فقط حذف 1227 00:59:41,575 --> 00:59:45,480 this-- وأنا أعلم أنه في يدي، لكن أدعي أنني حذف this-- ثم 1228 00:59:45,480 --> 00:59:46,964 هو نوع من ذهب أن وظيفة فقط. 1229 00:59:46,964 --> 00:59:49,630 أنت لا يمكن أبدا استخدامها مرة أخرى ل لم يكن لديك اسم لذلك. 1230 00:59:49,630 --> 00:59:53,497 من الصعب أن أشير إلى شيء كنت لا تعرف ما للاتصال. 1231 00:59:53,497 --> 00:59:54,080 سؤال جيد. 1232 00:59:54,080 --> 00:59:54,580 نعم. 1233 00:59:54,580 --> 00:59:59,580 >> الحضور: هل لك أن ترجع المبلغ في أماكن أخرى مع قيمة x بالإضافة إلى ذ؟ 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH بلومبرج: هل لك المبلغ المرجعية في أماكن أخرى 1235 01:00:01,940 --> 01:00:03,360 مع قيمة x بالإضافة إلى ذ؟ 1236 01:00:03,360 --> 01:00:05,130 أنا لست متأكدا تماما ما تعنيه. 1237 01:00:05,130 --> 01:00:10,582 >> الحضور: حتى ماضيك شبه مجهول الوظيفة مبلغ يساوي هذا 1238 01:00:10,582 --> 01:00:14,452 وظيفة مجهول، لذلك المبلغ الآن متغير أنك can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH بلومبرج: الحق. 1240 01:00:15,410 --> 01:00:18,980 لذلك المبلغ هو متغير، لكنه actually-- 1241 01:00:18,980 --> 01:00:23,770 لذلك المبلغ هو متغير الذي القيمة هي وظيفة. 1242 01:00:23,770 --> 01:00:27,030 لذلك هو وظيفة، وهو نوع من شيء غريب التفاف رأسك حول 1243 01:00:27,030 --> 01:00:29,880 منذ كنا لعب مع C وأنت لا تستطيع أن تفعل ذلك في C. 1244 01:00:29,880 --> 01:00:32,679 ولكن الآن يمكن أن نطلق على خلاصة بنفس الطريقة يمكن أن نسميه المبلغ هنا. 1245 01:00:32,679 --> 01:00:33,220 الحضور: OK. 1246 01:00:33,220 --> 01:00:33,970 HANNAH بلومبرج: نعم. 1247 01:00:33,970 --> 01:00:34,553 سؤال جيد. 1248 01:00:34,553 --> 01:00:35,438 نعم. 1249 01:00:35,438 --> 01:00:39,862 >> الحضور: لذلك نحن لا تستخدم نماذج في PHP أو جافا سكريبت؟ 1250 01:00:39,862 --> 01:00:42,070 HANNAH بلومبرج: لا، نحن لا تحتاج إلى استخدام النماذج، 1251 01:00:42,070 --> 01:00:43,880 خصوصا في جافا سكريبت. 1252 01:00:43,880 --> 01:00:49,380 شيء واحد حتى الممارسة السيئة التي أنا أريد أن أقول أنه لا ينبغي عليك القيام به 1253 01:00:49,380 --> 01:00:52,620 هو لم يكن لديك لكتابة فار ط = 50. 1254 01:00:52,620 --> 01:00:54,840 هل يمكن أن مجرد البدء في القيام ط = 50. 1255 01:00:54,840 --> 01:00:57,490 وسيكون مجرد تقديم ط متغير عمومي. 1256 01:00:57,490 --> 01:01:00,550 >> انها ممارسة سيئة للغاية ل لا يقول صراحة فار ط، 1257 01:01:00,550 --> 01:01:01,800 ولكن هذا شيء يمكنك القيام به. 1258 01:01:01,800 --> 01:01:03,591 المترجم ليس الذهاب إلى الصراخ لك. 1259 01:01:03,591 --> 01:01:05,920 جافا سكريبت هي تشبه إلى حد ما، تستطيع فعل ما تريد. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 أوه، آسف. 1262 01:01:09,800 --> 01:01:10,300 هناك اثنين. 1263 01:01:10,300 --> 01:01:12,150 في السراويل البرتقالي. 1264 01:01:12,150 --> 01:01:13,190 انطلق. 1265 01:01:13,190 --> 01:01:14,390 >> الجمهور: لا، عليك أولا الذهاب. 1266 01:01:14,390 --> 01:01:16,765 >> الجمهور: لا، أنا فقط أقول لم يكن لدي يدي فوق. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 حسنا. 1269 01:01:20,748 --> 01:01:26,604 حتى لو كنت لاستدعاء أن أول مرة، وخلاصة القول الآن، 1270 01:01:26,604 --> 01:01:29,864 نحن نسميها بنفس الطريقة، س، ذ، مثل كل مرة واحدة؟ 1271 01:01:29,864 --> 01:01:30,780 HANNAH بلومبرج: نعم. 1272 01:01:30,780 --> 01:01:32,572 حتى هذين أساسا تفعل الشيء نفسه. 1273 01:01:32,572 --> 01:01:35,113 الحضور: وما هي ميزة استخدام واحدة أو أخرى؟ 1274 01:01:35,113 --> 01:01:37,500 HANNAH بلومبرج: لا ميزة استخدام واحد أو آخر. 1275 01:01:37,500 --> 01:01:40,080 أردت فقط أن تظهر لك اثنين قطع مختلفة من بناء الجملة. 1276 01:01:40,080 --> 01:01:42,770 وهناك الكثير من الأوقات، حيث مجهول وظائف لديها هدف 1277 01:01:42,770 --> 01:01:48,220 هو إذا كانت الوسيطة إلى آخر وظيفة يجب أن يكون وظيفة. 1278 01:01:48,220 --> 01:01:50,600 وسنرى أنه في ثانية فقط مع اياكس. 1279 01:01:50,600 --> 01:01:53,577 >> حتى إذا كان هذا لم يكن له أي معنى، تخزينه في الجزء الخلفي من رأسك. 1280 01:01:53,577 --> 01:01:55,660 حيث ان مجهول وظيفة قد يكون مفيدا 1281 01:01:55,660 --> 01:01:58,284 لأنها ليست حقا يستحق ويعطيها اسما منذ نحن فقط 1282 01:01:58,284 --> 01:01:59,443 تنوي استخدام مرة واحدة. 1283 01:01:59,443 --> 01:02:00,370 نعم. 1284 01:02:00,370 --> 01:02:03,635 >> الجمهور: إذا كانت x و y التغيير لاحقا على، سيتم جمعها تغيير كذلك؟ 1285 01:02:03,635 --> 01:02:06,510 HANNAH بلومبرج: إذا كانت x والتغيير ذ في وقت لاحق، وسوف ألخص تغيير كذلك؟ 1286 01:02:06,510 --> 01:02:08,840 لذلك هذا هو في الواقع أنا أعتقد شيء أن يكون، 1287 01:02:08,840 --> 01:02:12,260 مرة أخرى، تشعر أنها مجرد مختلفة جدا من C. وهذه ليست القيمة. 1288 01:02:12,260 --> 01:02:13,620 انها ليست 5. 1289 01:02:13,620 --> 01:02:15,550 انها مجرد وظيفة نفسها. 1290 01:02:15,550 --> 01:02:19,110 ذلك في أقرب وقت كنت تعطيه المعلمات، ثم عليك حساب في الواقع قيمة. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA: ثم يمكنك استدعاء الدالة 1292 01:02:21,193 --> 01:02:23,272 واستخدامه للحصول على بعض القيمة. 1293 01:02:23,272 --> 01:02:24,230 HANNAH بلومبرج: الحق. 1294 01:02:24,230 --> 01:02:25,250 بالضبط. 1295 01:02:25,250 --> 01:02:25,863 نعم. 1296 01:02:25,863 --> 01:02:27,946 >> الحضور: حتى إذا كنت فقط تخزينه في المتغير، 1297 01:02:27,946 --> 01:02:31,430 مثل فار س يساوي مجموع اثنين values-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH بلومبرج: نعم. 1299 01:02:32,420 --> 01:02:35,320 لذلك يمكن أن تفعله مجرد فار المبلغ يساوي مجموع القيمتين. 1300 01:02:35,320 --> 01:02:37,670 نعم. 1301 01:02:37,670 --> 01:02:38,680 اي أسئلة أخرى؟ 1302 01:02:38,680 --> 01:02:39,642 نعم. 1303 01:02:39,642 --> 01:02:42,047 >> الحضور: ولكن ذلك الخلط بين المبلغ والمبلغ؟ 1304 01:02:42,047 --> 01:02:45,062 مثل حالة استدعاء المبلغ المتغير الخاص بك، هل استدعاء الدالة المبلغ؟ 1305 01:02:45,062 --> 01:02:45,895 HANNAH بلومبرج: مم. 1306 01:02:45,895 --> 01:02:46,395 مم. 1307 01:02:46,395 --> 01:02:51,253 إذا كنت فعلت شيئا مثل، مبلغ يساوي مبلغ 2، 5؟ 1308 01:02:51,253 --> 01:02:53,170 >> الجمهور: نعم. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH بلومبرج: أعتقد أن هل الكتابة فوق قيمة المبلغ. 1310 01:02:56,465 --> 01:02:59,290 حتى آخر للاهتمام شيء عن جافا سكريبت 1311 01:02:59,290 --> 01:03:02,950 غير أن يمكن أن متغير واحد على مجموعة من أنواع مختلفة. 1312 01:03:02,950 --> 01:03:03,790 ممارسة سيئة. 1313 01:03:03,790 --> 01:03:06,280 يجب أن لا تفعل شيئا مثل ما قلته للتو. 1314 01:03:06,280 --> 01:03:10,240 >> ولكن في C، إذا تم تعيين ط يساوي عدد صحيح، 1315 01:03:10,240 --> 01:03:13,570 نحن نعلم أنه أبدا ستصبح سلسلة. 1316 01:03:13,570 --> 01:03:15,670 ليست هذه هي الحال في جافا سكريبت. 1317 01:03:15,670 --> 01:03:17,770 نعم، سؤال جيد. 1318 01:03:17,770 --> 01:03:20,151 أي شيء آخر؟ 1319 01:03:20,151 --> 01:03:20,650 حسنا. 1320 01:03:20,650 --> 01:03:21,850 تفعل كل الحق في الوقت المناسب. 1321 01:03:21,850 --> 01:03:23,050 حفظ الذهاب. 1322 01:03:23,050 --> 01:03:25,200 حسنا. 1323 01:03:25,200 --> 01:03:27,780 >> إذا نظرنا إلى مجموعة في جافا سكريبت، وهنا 1324 01:03:27,780 --> 01:03:30,250 مثال سريع لمجموعة من السلاسل. 1325 01:03:30,250 --> 01:03:31,967 ويمكن صفائف تنمو بشكل حيوي. 1326 01:03:31,967 --> 01:03:33,675 لم يكن لديهم ل حجم ثابت بنفس الطريقة 1327 01:03:33,675 --> 01:03:37,990 أن يفعلوا في C. يمكننا الوصول إلى عناصر فقط مع أقواس معقوفة. 1328 01:03:37,990 --> 01:03:41,720 >> أن يتطلع الكثير مثل PHP والكثير مثل C، حيث يمكننا القول، في هذه الحالة، 1329 01:03:41,720 --> 01:03:48,360 إذا أردت كلمة جافا سكريبت، وأود أن لا ARR بين قوسين معقوفين مع 0، 1، 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 ثم إذا كنت تتذكر عندما كنا في C أرغب في الحصول على طول صفيف، 1332 01:03:55,390 --> 01:03:56,820 كان مزعج حقا. 1333 01:03:56,820 --> 01:03:58,460 ولكن في جافا سكريبت، والسوبر سهلة. 1334 01:03:58,460 --> 01:03:59,910 كل ما نقوم به، مدة العرض. 1335 01:03:59,910 --> 01:04:01,120 يعطيها أطوال. 1336 01:04:01,120 --> 01:04:01,892 هذا هو. 1337 01:04:01,892 --> 01:04:03,140 >> الجمهور: هذا بسيط. 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH بلومبرج: نعم، يجعل حياتك أسهل كثيرا. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK، object-- لم يكن هناك. 1341 01:04:11,560 --> 01:04:15,480 الكائنات في جافا سكريبت يشعر الكثير مثل البنيات في C 1342 01:04:15,480 --> 01:04:18,280 والمصفوفات الترابطية في PHP. 1343 01:04:18,280 --> 01:04:20,270 ذلك ما رأيناه في الكثير من هو JSON، التي 1344 01:04:20,270 --> 01:04:23,150 لتقف على جافا سكريبت تدوين كائن. 1345 01:04:23,150 --> 01:04:25,550 وانها في الاساس وسيلة هيكلة بياناتنا. 1346 01:04:25,550 --> 01:04:27,880 >> لذلك دعونا نرى على سبيل المثال، ربما تكون أسهل. 1347 01:04:27,880 --> 01:04:32,540 حتى هنا مثال من كائن يخزن الطبقة، CS50. 1348 01:04:32,540 --> 01:04:37,790 وعندما أقول الطبقة، أعني بطبيعة الحال، لا like-- نعم، بالطبع، CS50. 1349 01:04:37,790 --> 01:04:40,730 وسترى أن كل شيء في وجوه 1350 01:04:40,730 --> 01:04:43,526 سوف تكون واردة في الأقواس المعقوفة. 1351 01:04:43,526 --> 01:04:48,260 >> ونبدأ في ربط أسماء الحقول أو مفاتيح مع قيم مختلفة. 1352 01:04:48,260 --> 01:04:52,920 حتى تتمكن من البدء أن نرى كيف يمكن لهذا النوع من يشعر وكأنه مجموعة النقابي في PHP. 1353 01:04:52,920 --> 01:04:57,450 لذلك نحن ذاهبون لربط حقل أو الاسم، وبالطبع رئيسي، مع سلسلة، 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> ونحن في طريقنا لدينا مدرب. 1356 01:04:59,940 --> 01:05:00,940 نحن ذاهبون الى TFS. 1357 01:05:00,940 --> 01:05:05,240 ونحن في طريقنا لديك عدد من psets ونحن في طريقنا لقد سجلت. 1358 01:05:05,240 --> 01:05:10,720 وشيء واحد بارد هو أن نلاحظ جميعا هذه الأمور لها أنواع مختلفة، 1359 01:05:10,720 --> 01:05:12,020 وهذا شيء طيب تماما. 1360 01:05:12,020 --> 01:05:15,330 >> أنه بخير لكائن، في الواقع، وربما من المتوقع لكائن 1361 01:05:15,330 --> 01:05:19,620 لدينا مجموعة من السلاسل والأرقام والقيم المنطقية والمصفوفات 1362 01:05:19,620 --> 01:05:23,420 وأي شيء آخر كنت قد تريد أن يكون داخل الكائن. 1363 01:05:23,420 --> 01:05:28,570 ونلاحظ أن هذه ستكون أسماء أو مفاتيح، وبعد ذلك فقط 1364 01:05:28,570 --> 01:05:30,300 تعيين يساوي مع قليل من القولون. 1365 01:05:30,300 --> 01:05:32,015 >> الحضور: بالضبط ما لا JSON يعني؟ 1366 01:05:32,015 --> 01:05:33,890 HANNAH بلومبرج: ما بالضبط هل JSON يعني؟ 1367 01:05:33,890 --> 01:05:36,470 JSON تقف فقط ل جافا سكريبت تدوين كائن. 1368 01:05:36,470 --> 01:05:38,430 انها مجرد وسيلة للتنسيق. 1369 01:05:38,430 --> 01:05:40,040 نعم. 1370 01:05:40,040 --> 01:05:41,800 انها وسيلة لتنسيق البيانات لدينا. 1371 01:05:41,800 --> 01:05:43,620 >> في C، انها البنيات. 1372 01:05:43,620 --> 01:05:45,800 في PHP، انها صفائف النقابي. 1373 01:05:45,800 --> 01:05:47,120 في جافا سكريبت، لدينا الكائنات. 1374 01:05:47,120 --> 01:05:48,969 >> الجمهور: ذلك هو CS50 كائن؟ 1375 01:05:48,969 --> 01:05:51,010 HANNAH بلومبرج: CS50 هو المطلوب في هذه القضية. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 الآن، كيف يمكننا الوصول فعلا تلك الحقول أو تغيير تلك المجالات. 1378 01:05:57,880 --> 01:06:03,920 على سبيل المثال، لنفترض أن قررنا أن أردت واحدة أقل PSET هذا الفصل الدراسي. 1379 01:06:03,920 --> 01:06:06,300 بدلا من تسعة، ونحن فقط ستكون لدينا ثمانية. 1380 01:06:06,300 --> 01:06:08,240 كيف يمكننا أن تغير ذلك؟ 1381 01:06:08,240 --> 01:06:09,436 >> أوه، بطريقة خاطئة. 1382 01:06:09,436 --> 01:06:11,060 هناك نوعان من الطرق التي يمكننا أن نفعل ذلك. 1383 01:06:11,060 --> 01:06:13,490 رقم واحد هو مع نقطة تدوين وعدد اثنين 1384 01:06:13,490 --> 01:06:15,750 هو مع التدوين قوس مربع. 1385 01:06:15,750 --> 01:06:19,720 لذلك، على سبيل المثال، إذا كنت أراد أن يغير أو الوصول 1386 01:06:19,720 --> 01:06:26,820 مجال psets في الكائن CS50 لدينا، ما أود القيام به هو CS50.psets، 1387 01:06:26,820 --> 01:06:30,770 حتى اسم نقطة الكائن اسم الحقل أو المفتاح. 1388 01:06:30,770 --> 01:06:37,120 >> على نحو مماثل للغاية، انها بالضبط أي ما يعادل تفعل CS50، ثم 1389 01:06:37,120 --> 01:06:42,050 بأقواس مربعة، psets. 1390 01:06:42,050 --> 01:06:42,837 رائع؟ 1391 01:06:42,837 --> 01:06:44,298 نعم. 1392 01:06:44,298 --> 01:06:47,707 >> الجمهور: ذلك هو JSON من الناحية الفنية لا يزال جافا سكريبت، 1393 01:06:47,707 --> 01:06:51,814 على الرغم من أن في psets نحن فصل بها (غير مسموع)؟ 1394 01:06:51,814 --> 01:06:52,730 HANNAH بلومبرج: بالتأكيد. 1395 01:06:52,730 --> 01:06:56,290 لذا فإن السؤال هو، هل جافا سكريبت وجسون يعادل؟ 1396 01:06:56,290 --> 01:07:00,750 حتى JSON هو التدوين، في الأساس الطريقة التي نكتب بها 1397 01:07:00,750 --> 01:07:02,700 كائن من جافا سكريبت. 1398 01:07:02,700 --> 01:07:05,190 حتى انهم يست بالضبط نفس الشيء. 1399 01:07:05,190 --> 01:07:08,950 >> وأود أن أقول جافا سكريبت، هناك هي الكائنات في جافا سكريبت. 1400 01:07:08,950 --> 01:07:12,590 JSON يأخذ تلك الكائنات و يطبع عليها ويعرضها 1401 01:07:12,590 --> 01:07:15,160 أو بتخزينها بطريقة لطيفة. 1402 01:07:15,160 --> 01:07:18,110 حتى JSON ليس البرمجة اللغة الطريقة التي جافا سكريبت. 1403 01:07:18,110 --> 01:07:20,900 انها مجرد تدوين ل كائنات لدينا في جافا سكريبت. 1404 01:07:20,900 --> 01:07:21,400 نعم. 1405 01:07:21,400 --> 01:07:24,144 >> الجمهور: ذلك بالضبط ما (غير مسموع) إكمال؟ 1406 01:07:24,144 --> 01:07:25,060 HANNAH بلومبرج: بالتأكيد. 1407 01:07:25,060 --> 01:07:27,727 ولذلك فإن هذا الواقع لا يفعل شيئا. 1408 01:07:27,727 --> 01:07:28,935 هذا هو مجرد وسيلة للوصول. 1409 01:07:28,935 --> 01:07:31,393 لذلك دعونا نقول أننا نريد تغيير عدد مجموعات مشكلة 1410 01:07:31,393 --> 01:07:32,450 9-8. 1411 01:07:32,450 --> 01:07:34,383 ما نقوم به هو أن تفعل شيئا مثل CS50.psets = 8 ؛. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> نعم، السؤال الكبير. 1414 01:07:39,400 --> 01:07:40,733 هذا هو فقط لتظهر لك بناء الجملة. 1415 01:07:40,733 --> 01:07:43,620 لا تفعل اي شيء في الواقع مفيدة. 1416 01:07:43,620 --> 01:07:46,085 أي أسئلة؟ 1417 01:07:46,085 --> 01:07:48,210 تتحرك على طول الحق. 1418 01:07:48,210 --> 01:07:51,960 >> لذلك دعونا ننظر إلى مثال سريع لكيفية يعمل جافا سكريبت لأنني قلت لك انه 1419 01:07:51,960 --> 01:07:55,170 يفعل كل هذه الأشياء باردة و يسمح لنا لتعديل صفحات الويب. 1420 01:07:55,170 --> 01:07:56,970 دعونا نرى فعلا في العمل. 1421 01:07:56,970 --> 01:07:59,850 حتى تأخذ، على سبيل المثال، هذا الملف HTML. 1422 01:07:59,850 --> 01:08:04,350 >> والشيء أريدك أن التركيز عليه هو هذه العلامة معينة، وهو زر، 1423 01:08:04,350 --> 01:08:06,182 مع search_button الهوية. 1424 01:08:06,182 --> 01:08:08,670 انها مجرد على الصفحة. 1425 01:08:08,670 --> 01:08:10,690 حتى الآن دعونا نرى ما يمكننا القيام به في الواقع. 1426 01:08:10,690 --> 01:08:12,560 >> حسنا، لنفترض عندما ان تنقر على هذا الزر، 1427 01:08:12,560 --> 01:08:16,010 نحن نريد أن نجعل من alert-- يمكنك النقر فوق الزر. 1428 01:08:16,010 --> 01:08:17,840 دعونا نرى كيف يمكننا أن نفعل ذلك. 1429 01:08:17,840 --> 01:08:23,869 حتى window.onload-- هذا ليس شيئا التي كنت قد رأيت في الصف، ول 1430 01:08:23,869 --> 01:08:26,180 لن تحتاج للتعرف عليها لهذه المسابقة. 1431 01:08:26,180 --> 01:08:33,660 ولكن هذا يقول في الأساس، OK، دعوة هذه الوظيفة عند تحميل النافذة. 1432 01:08:33,660 --> 01:08:35,080 >> ذلك أن مجرد نوع من التعليمات البرمجية الإعداد. 1433 01:08:35,080 --> 01:08:36,390 لا تقلق كثيرا عن ذلك. 1434 01:08:36,390 --> 01:08:39,170 ما أريدك أن تركز عليه هو هنا. 1435 01:08:39,170 --> 01:08:44,020 نقول يساوي فار searchButton document.getElementByID search_button. 1436 01:08:44,020 --> 01:08:46,450 >> وذلك قد يتبادر إلى ذهنك، هذا ما يفعله هو يقول: 1437 01:08:46,450 --> 01:08:50,920 OK، انتقل العثور على العنصر مع search_button ID. 1438 01:08:50,920 --> 01:08:52,790 والآن لدينا هذا العنصر الفعلي وأنا 1439 01:08:52,790 --> 01:08:56,279 الذهاب لتخزينه في searchButton متغير. 1440 01:08:56,279 --> 01:09:00,651 والآن يمكننا فعلا استخدام هذا العنصر وتغييره، أو الوصول قيمها، 1441 01:09:00,651 --> 01:09:01,359 أشياء من هذا القبيل. 1442 01:09:01,359 --> 01:09:04,649 يمكننا أن نبدأ فعلا ل التعامل مع صفحة الويب. 1443 01:09:04,649 --> 01:09:10,330 >> حتى هنا أقول، حسنا، الآن أن لدي هذا الزر، عند النقر فوقه، 1444 01:09:10,330 --> 01:09:12,859 استدعاء هذه الدالة مجهولة. 1445 01:09:12,859 --> 01:09:16,811 لذلك هذا هو المكان المجهول تصبح وظائف مفيدة. 1446 01:09:16,811 --> 01:09:18,060 وماذا تفعل وظيفة؟ 1447 01:09:18,060 --> 01:09:20,529 كذلك، فإنه يدعو هذا فقط وظيفة التنبيه ويقول: 1448 01:09:20,529 --> 01:09:22,910 ضغطت على زر البحث. 1449 01:09:22,910 --> 01:09:29,670 >> لذلك ما الذي سيحدث إذا ذهبت إلى أي مكان هذه HTML تعيش والنقر فوق الزر، 1450 01:09:29,670 --> 01:09:33,729 سوف تحصل على تنبيه القليل الهوى تقول النقر فوق الزر. 1451 01:09:33,729 --> 01:09:40,710 حتى الأشياء للتركيز على here-- document.getElementByID 1452 01:09:40,710 --> 01:09:44,960 يحصل معينة لHTML عنصر مع معرف معين. 1453 01:09:44,960 --> 01:09:48,529 والآن فإننا يمكن أن يحدد ما يجب أن يحدث عندما 1454 01:09:48,529 --> 01:09:50,702 يتم النقر أن عنصر معين. 1455 01:09:50,702 --> 01:09:52,670 >> الحضور: لدينا لوضع كل ذلك في؟ 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH بلومبرج: عذرا؟ 1457 01:09:53,162 --> 01:09:55,130 >> الحضور: هل علينا أن رمز جسديا كل ذلك؟ 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH بلومبرج: هل لدينا ل رمز جسديا كل ذلك؟ 1459 01:09:56,340 --> 01:09:56,839 نعم فعلا. 1460 01:09:56,839 --> 01:09:58,120 ليس هذا النوع من مزعج؟ 1461 01:09:58,120 --> 01:10:00,032 هذا هو الكثير من التعليمات البرمجية. 1462 01:10:00,032 --> 01:10:01,574 >> الحضور: هل يمكن استيراد شيء. 1463 01:10:01,574 --> 01:10:02,532 HANNAH بلومبرج: الحق. 1464 01:10:02,532 --> 01:10:03,610 يمكن أن نستخدم شيئا. 1465 01:10:03,610 --> 01:10:08,140 وفي particular-- أوه، انها تقول لي لدي لتعليم القسم. 1466 01:10:08,140 --> 01:10:11,061 على وجه الخصوص، دعونا استخدام المكتبة مسج، 1467 01:10:11,061 --> 01:10:13,060 لأن ذلك كان حقا منذ فترة طويلة ومزعج حقا 1468 01:10:13,060 --> 01:10:16,860 وأريد أن أكون قادرا على تبسيط ذلك وجعله أقصر وأسهل في الكتابة. 1469 01:10:16,860 --> 01:10:19,810 >> حتى مسج هي مكتبة جافا سكريبت. 1470 01:10:19,810 --> 01:10:24,930 ذلك هو البرمجة جافا سكريبت لغة؛ مسج هي مكتبة. 1471 01:10:24,930 --> 01:10:27,190 ويجعل حفنة من الأمور أسهل. 1472 01:10:27,190 --> 01:10:33,230 يجعل تغيير والذهاب عبر وثيقة HTML أسهل بكثير. 1473 01:10:33,230 --> 01:10:35,030 >> يجعل الأحداث معالجة أسهل. 1474 01:10:35,030 --> 01:10:37,580 يجعل الحركة أسهل ويجعل أياكس أسهل. 1475 01:10:37,580 --> 01:10:40,140 لذلك دعونا القفز إلى اثنين من تلك الأشياء الآن. 1476 01:10:40,140 --> 01:10:40,900 اعذرني. 1477 01:10:40,900 --> 01:10:42,620 قبل ان نفعل، بعض الجملة الأساسية. 1478 01:10:42,620 --> 01:10:46,870 >> وهذا ما يدعو إلى الأكثر مكتبة مسج تبدو. 1479 01:10:46,870 --> 01:10:50,520 ونحن نستخدم هذه الدولار sign-- أي علامة اتصال PHP، 1480 01:10:50,520 --> 01:10:56,030 فقط inconvenient-- اسم محدد، نقطة، ثم إجراء. 1481 01:10:56,030 --> 01:10:58,860 لذلك دعونا نرى بعض أمثلة ملموسة على ذلك. 1482 01:10:58,860 --> 01:11:02,980 >> لذلك هذا هو الواقع نفسه رمز من الشريحة الحدث. 1483 01:11:02,980 --> 01:11:08,740 بحيث يصبح هذا طويل، الشيء القبيح هذا أجمل بكثير، شيء أصغر. 1484 01:11:08,740 --> 01:11:10,370 لذلك دعونا محاولة لكسر هذه القاعده. 1485 01:11:10,370 --> 01:11:17,090 هذا يقول: OK، jQuery-- هذه الدولار sign-- مسج، تجد لي النافذة. 1486 01:11:17,090 --> 01:11:18,480 لذلك هذا هو محدد. 1487 01:11:18,480 --> 01:11:21,800 >> عند تحميل، استدعاء هذه الدالة. 1488 01:11:21,800 --> 01:11:23,880 لذلك هذا هو كل شيء في الداخل. 1489 01:11:23,880 --> 01:11:24,380 حسنا. 1490 01:11:24,380 --> 01:11:25,740 حتى الان جيدة جدا؟ 1491 01:11:25,740 --> 01:11:26,750 حسنا. 1492 01:11:26,750 --> 01:11:32,970 >> الآن، مسج، تجد لي الشيء مع search_button ID. 1493 01:11:32,970 --> 01:11:36,090 وما هو النقر فوقه، استدعاء هذه الدالة. 1494 01:11:36,090 --> 01:11:37,900 ثم هذه الدالة بالضبط نفس الشيء. 1495 01:11:37,900 --> 01:11:41,052 فقط تفعل قليلا من التنبيه، ضغطت على زر البحث. 1496 01:11:41,052 --> 01:11:42,650 >> لذلك من الجميل حقا. 1497 01:11:42,650 --> 01:11:46,260 يتكثف حقا و يبسط متاحة لدينا. 1498 01:11:46,260 --> 01:11:49,030 كيف أعرف أن انها search_button ID 1499 01:11:49,030 --> 01:11:50,960 وليس مثل الطبقة search_button؟ 1500 01:11:50,960 --> 01:11:52,024 >> الحضور: الوسم؟ 1501 01:11:52,024 --> 01:11:52,940 HANNAH بلومبرج: نعم. 1502 01:11:52,940 --> 01:11:56,450 هذا الرمز التجزئة، انها مجرد مثل CSS. 1503 01:11:56,450 --> 01:12:00,080 لذلك تذكر، مع CSS، عندما كنا أراد لتحديد شيء عن الهوية، 1504 01:12:00,080 --> 01:12:01,590 كنا الجنيه. 1505 01:12:01,590 --> 01:12:05,400 وعندما أردنا تحديد شيء على حسب الطبقة، ونحن نستخدم النقطة. 1506 01:12:05,400 --> 01:12:06,870 رائعة. 1507 01:12:06,870 --> 01:12:08,230 منطقي؟ 1508 01:12:08,230 --> 01:12:11,500 لذلك يفترض مسج ل مجرد جعل حياتنا أسهل. 1509 01:12:11,500 --> 01:12:12,000 نعم. 1510 01:12:12,000 --> 01:12:15,660 >> الحضور: لذلك أنا مرتبك قليلا كما كيف تعمل وظيفة غير معروفة. 1511 01:12:15,660 --> 01:12:19,027 هل تسمي هذه anonymouse وظيفة، وظيفة؟ 1512 01:12:19,027 --> 01:12:20,594 كيف يطلق عليه؟ 1513 01:12:20,594 --> 01:12:21,510 HANNAH بلومبرج: بالتأكيد. 1514 01:12:21,510 --> 01:12:25,812 حتى وظيفة هو مجرد الكلمة التي يقول: أنا على وشك أن تحديد وظيفة. 1515 01:12:25,812 --> 01:12:26,520 الحضور: أوه، حسنا. 1516 01:12:26,520 --> 01:12:27,353 HANNAH بلومبرج: OK؟ 1517 01:12:27,353 --> 01:12:32,120 وبعد ذلك تمر عليه بوصفه حجة to-- دعونا نلقي 1518 01:12:32,120 --> 01:12:37,040 هذا احدا-- الداخلية إلى وظيفة نقرة. 1519 01:12:37,040 --> 01:12:39,420 لذلك نعم، حتى أن وظيفة، هذه وظيفة مجهول، 1520 01:12:39,420 --> 01:12:40,910 يصبح حجة الفعلية. 1521 01:12:40,910 --> 01:12:43,632 لذلك تذكر في جافا سكريبت، ونحن يمكن علاج ظائف كقيم. 1522 01:12:43,632 --> 01:12:44,340 الحضور: أوه، حسنا. 1523 01:12:44,340 --> 01:12:45,256 HANNAH بلومبرج: نعم. 1524 01:12:45,256 --> 01:12:46,035 وأود أن "اه." 1525 01:12:46,035 --> 01:12:47,490 جميل. 1526 01:12:47,490 --> 01:12:49,915 اسئلة اخرى؟ 1527 01:12:49,915 --> 01:12:50,505 مرة؟ 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA: جيد. 1529 01:12:51,380 --> 01:12:52,760 جيد. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH بلومبرج: ممتاز. 1531 01:12:54,210 --> 01:12:55,720 بعض مسج مفيد سريع. 1532 01:12:55,720 --> 01:12:57,559 أنا لا أريد أن أذهب من خلال كل هذه. 1533 01:12:57,559 --> 01:12:59,350 سوف تكون هذه الشرائح حتى على الانترنت قليلا 1534 01:12:59,350 --> 01:13:02,040 في وقت لاحق، لذلك يمكنك التحقق ذلك في وقت لاحق قليلا. 1535 01:13:02,040 --> 01:13:07,120 ولكن في الأساس، الجنرال نمط يحمل حيث نقول، 1536 01:13:07,120 --> 01:13:11,510 OK، مهلا، مسج، وهنا قال لي محدد ثم هنا هو إجراء. 1537 01:13:11,510 --> 01:13:15,940 ويمكنك أن تفعل أشياء مثل وصول قيمة نموذج، الوصول إلى بعض HTML، 1538 01:13:15,940 --> 01:13:19,195 مراقبة ما يحدث عندما يقوم المستخدم يقدم نموذج، أشياء من هذا القبيل. 1539 01:13:19,195 --> 01:13:20,106 نعم فعلا. 1540 01:13:20,106 --> 01:13:22,090 >> الحضور: حتى في امتحان، ونحن في طريقنا إلى حاجة 1541 01:13:22,090 --> 01:13:25,066 لمعرفة الكثير جدا من وثائق مسج. 1542 01:13:25,066 --> 01:13:31,018 ذلك نظرا لأننا نسخ / لصق مسج الوثائق إلى ورقة الغش لدينا، 1543 01:13:31,018 --> 01:13:32,506 أين هو الخط الذي رسمته؟ 1544 01:13:32,506 --> 01:13:33,957 مثل وكم نحن بحاجة إلى تعلم؟ 1545 01:13:33,957 --> 01:13:35,290 HANNAH بلومبرج: السؤال الكبير. 1546 01:13:35,290 --> 01:13:37,765 السؤال هو نظرا أساسا أن لك 1547 01:13:37,765 --> 01:13:41,330 لا يمكن الوصول إلى وثائق مسج أثناء الاختبار، وكم يجب عليك 1548 01:13:41,330 --> 01:13:41,830 علم؟ 1549 01:13:41,830 --> 01:13:45,540 ونحن لن نتوقع منك أن تأتي حتى مع بعض وظيفة عشوائية 1550 01:13:45,540 --> 01:13:47,240 أننا نتوقع منكم أن جوجل. 1551 01:13:47,240 --> 01:13:52,930 >> الأشياء التي هي لعبة عادلة هي أود يقول عادل نوع من بناء جملة العام، 1552 01:13:52,930 --> 01:13:58,310 أن تكون قادرة على تحديد من قبل البائع بواسطة class-- حتى مجرد مثل CSS. 1553 01:13:58,310 --> 01:14:01,876 ثم الوظائف الفعلية ذاتهما، سنقوم على الأرجح اقول لكم. 1554 01:14:01,876 --> 01:14:02,376 نعم. 1555 01:14:02,376 --> 01:14:05,591 >> الحضور: حتى عند تحديد على حسب الطبقة سيعني نقطة. 1556 01:14:05,591 --> 01:14:06,840 HANNAH بلومبرج: نعم، بالضبط. 1557 01:14:06,840 --> 01:14:07,340 جيد. 1558 01:14:07,340 --> 01:14:10,461 عند تحديد حسب الطبقة، انها تسير أن نقطة بدلا من الجنيه. 1559 01:14:10,461 --> 01:14:10,960 نعم فعلا. 1560 01:14:10,960 --> 01:14:12,710 >> الحضور: هلا يذهب أكثر الفرق 1561 01:14:12,710 --> 01:14:14,310 بين اختيار من قبل البائع على حسب الطبقة؟ 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH بلومبرج: بالتأكيد. 1563 01:14:14,560 --> 01:14:17,510 الفرق بين اختيار ID واختيار على حسب الطبقة. 1564 01:14:17,510 --> 01:14:20,685 وكما قال ماريا في وقت سابق قليلا، هناك 1565 01:14:20,685 --> 01:14:26,280 يمكن أن يكون إلا عنصر HTML واحد مع هوية معينة، في حين أن الطبقة، 1566 01:14:26,280 --> 01:14:29,740 لأنها تتيح لنا مجموعة حفنة عناصر مختلفة معا، 1567 01:14:29,740 --> 01:14:34,300 من الأشياء التي ترتبط، ولكن ليس بالضبط نفس الشيء. 1568 01:14:34,300 --> 01:14:35,685 هل هذا يجيب على السؤال؟ 1569 01:14:35,685 --> 01:14:36,200 رائع. 1570 01:14:36,200 --> 01:14:37,194 نعم فعلا. 1571 01:14:37,194 --> 01:14:40,680 >> الحضور: ماذا لو كان لديك عدة الأشياء التي هي في نفس الدرجة؟ 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH بلومبرج: ماذا يحدث إذا كان لديك العديد من الأشياء التي 1573 01:14:42,150 --> 01:14:43,280 هي نفس الفئة؟ 1574 01:14:43,280 --> 01:14:45,829 لذلك، على سبيل المثال، إذا نحن فقط باستخدام نقية جافا سكريبت، 1575 01:14:45,829 --> 01:14:48,120 كنا نفعل شيئا مثل document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 ثم ما أن الواقع لا هي عوائد مجموعة من العناصر. 1578 01:14:56,320 --> 01:14:59,517 >> وعليك إما تكرار عبر لهم أو العثور على واحد التي تريد. 1579 01:14:59,517 --> 01:15:01,350 انها لن تتخلى كنت عنصر واحد. 1580 01:15:01,350 --> 01:15:03,450 انها ذاهب الى ان نعطيكم مجموعة من العناصر. 1581 01:15:03,450 --> 01:15:05,280 السؤال الكبير. 1582 01:15:05,280 --> 01:15:07,700 أي شيء آخر؟ 1583 01:15:07,700 --> 01:15:09,520 رائع. 1584 01:15:09,520 --> 01:15:12,860 >> لذلك أعتقد إذا كنت على دراية أي مسج رأيت في PSET، 1585 01:15:12,860 --> 01:15:15,600 يجب أن تكون على ما يرام. 1586 01:15:15,600 --> 01:15:16,325 سؤال؟ 1587 01:15:16,325 --> 01:15:17,610 اوه لا. 1588 01:15:17,610 --> 01:15:18,859 لدي حقا للتدريس. 1589 01:15:18,859 --> 01:15:19,358 استرح. 1590 01:15:19,358 --> 01:15:20,035 أنه سوف يكون على ما يرام. 1591 01:15:20,035 --> 01:15:20,660 سأحضر هناك. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> دعونا نتحدث عن اياكس. 1594 01:15:26,870 --> 01:15:31,350 حتى اياكس سيكون جيدا a--، دعونا نبدأ مع ما تمثله. 1595 01:15:31,350 --> 01:15:32,350 انها اختصار. 1596 01:15:32,350 --> 01:15:35,855 لأنها تقف متزامن جافا سكريبت وXML. 1597 01:15:35,855 --> 01:15:39,800 وXML هو في الأساس سيكون (غير مسموع) مع نوع البيانات المتوفرة لدينا. 1598 01:15:39,800 --> 01:15:42,100 لكننا لم تستخدم فعليا XML. 1599 01:15:42,100 --> 01:15:43,430 بدلا من ذلك، نحن فقط استخدام JSON. 1600 01:15:43,430 --> 01:15:48,350 >> ذلك أساسا، انها بعض data-- غير المتزامن، وجافا سكريبت، والبيانات، 1601 01:15:48,350 --> 01:15:50,040 في هذه الحالة، JSON. 1602 01:15:50,040 --> 01:15:52,820 وهدفنا، كما ذكرنا قليلا في وقت سابق، 1603 01:15:52,820 --> 01:15:56,880 هو أن تكون قادرة على تقديم طلب، وهذا الطلب تفعل 1604 01:15:56,880 --> 01:16:00,700 شيء في ل الخلفية، ولكن الاستمرار 1605 01:16:00,700 --> 01:16:02,550 نفعل كل ما كانت تنوي القيام به. 1606 01:16:02,550 --> 01:16:06,650 وبعد ذلك عندما تلك المعلومات استعداد، ثم سنقوم دمجه. 1607 01:16:06,650 --> 01:16:08,470 >> لذلك دعونا نرى ما هذا يبدو في الواقع مثل. 1608 01:16:08,470 --> 01:16:11,210 وهذا، يجب أن تكون قليلا مألوفة 1609 01:16:11,210 --> 01:16:13,680 من pset8، الشخص الذي تحولت فقط في. 1610 01:16:13,680 --> 01:16:16,200 لذلك ليس هنا مسج صحيح وظيفة أننا قد 1611 01:16:16,200 --> 01:16:18,250 تريد أن تعرف about-- هذه علامة الدولار. 1612 01:16:18,250 --> 01:16:21,500 لذلك يقول مسج وظيفة، .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> وما هذه الدالة هو عليه يأخذ URL وبعض parameters-- 1614 01:16:25,020 --> 01:16:28,000 لذلك أعتقد أن في حالة من pset8، وكان مثل، 1615 01:16:28,000 --> 01:16:33,520 كان URL articles.php و وكانت المعلمات الذهاب = بعض الرمز البريدي. 1616 01:16:33,520 --> 01:16:41,580 وتقول، حسنا، تقديم طلب ل هذا URL مع المعلمات معين. 1617 01:16:41,580 --> 01:16:43,480 وهذا يحدث فقط. 1618 01:16:43,480 --> 01:16:47,730 >> عندما ينتهي ذلك، فإنه إما الذهاب لإكمال بنجاح 1619 01:16:47,730 --> 01:16:49,370 أو انها سوف تفشل. 1620 01:16:49,370 --> 01:16:53,480 لذلك هذا هو ما يعادل الدعوة روب وأطلب منه أن يفعل شيئا. 1621 01:16:53,480 --> 01:17:00,260 ثم عندما يدعو الى الوراء، وقال انه إما أريد أن أقول انتهيت أو أنني فشلت. 1622 01:17:00,260 --> 01:17:04,030 >> وذلك في حالة ما إذا كنت فعلت، أقول لكم، حسنا، أنا فعلت. 1623 01:17:04,030 --> 01:17:05,980 ثم استدعاء هذه الدالة. 1624 01:17:05,980 --> 01:17:08,915 في هذه الحالة، فإنه سيكون ل دالة التي تأخذ بعض المعلومات. 1625 01:17:08,915 --> 01:17:12,890 واحد أننا نهتم عادة حوالي هو البيانات، البيانات التي كنا عاد فعلا 1626 01:17:12,890 --> 01:17:15,900 نتيجة الدعوة .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> ويمكنك أن تفعل شيئا معها. 1628 01:17:17,470 --> 01:17:23,670 حتى في حالة pset8، عرضنا على أنها قائمة. 1629 01:17:23,670 --> 01:17:29,050 فشل ستكون وظيفة الذي يسمى إذا فشل الطلب 1630 01:17:29,050 --> 01:17:30,450 لاي سبب كان. 1631 01:17:30,450 --> 01:17:35,104 وفي حالة pset8، نحن console.log فقط. 1632 01:17:35,104 --> 01:17:36,020 أي أسئلة على ذلك؟ 1633 01:17:36,020 --> 01:17:36,300 نعم. 1634 01:17:36,300 --> 01:17:39,633 >> الحضور: هل نحن فقط استخدام وظيفة ثيتا بدلا من وظيفة، textStatus، jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH بلومبرج: بالتأكيد. 1637 01:17:44,380 --> 01:17:46,713 لذلك نعم، أعتقد في PSET، نحن فقط رأيت وظيفة البيانات. 1638 01:17:46,713 --> 01:17:48,700 لذلك فمن the-- فقط نعم، OK. 1639 01:17:48,700 --> 01:17:50,510 وهذا ما رأيناه في PSET. 1640 01:17:50,510 --> 01:17:51,480 وهذا جيد تماما. 1641 01:17:51,480 --> 01:17:54,210 >> هذه ليست سوى إذا أردت لسحب مزيد من المعلومات، 1642 01:17:54,210 --> 01:17:57,190 هذه هي الأمور التي يمكن أن تحصل من .getJSON. 1643 01:17:57,190 --> 01:17:59,040 سؤال جيد. 1644 01:17:59,040 --> 01:17:59,706 أي شيء آخر؟ 1645 01:17:59,706 --> 01:18:00,206 نعم. 1646 01:18:00,206 --> 01:18:01,787 >> الحضور: حتى .getJSON هو اياكس؟ 1647 01:18:01,787 --> 01:18:02,620 HANNAH بلومبرج: OK. 1648 01:18:02,620 --> 01:18:05,700 لذلك هذا هو نوع من الجزء صعبة. 1649 01:18:05,700 --> 01:18:12,390 بل هو وظيفة مسج التي تسمح لك أن تفعل المكالمات غير متزامن. 1650 01:18:12,390 --> 01:18:16,080 وتلك المكالمات غير متزامن، وهذا ما كنا في اشارة الى حيث اياكس. 1651 01:18:16,080 --> 01:18:16,850 نعم. 1652 01:18:16,850 --> 01:18:20,185 التي أخذت مني وقتا طويلا حقا أن مزق عندما كنت طالبا. 1653 01:18:20,185 --> 01:18:21,560 الحضور: هل لك أن أقول مرة أخرى؟ 1654 01:18:21,560 --> 01:18:22,476 HANNAH بلومبرج: نعم. 1655 01:18:22,476 --> 01:18:23,630 يمكنني أن أقول مرة أخرى؟ 1656 01:18:23,630 --> 01:18:29,010 هذه الوظيفة .getJSON، بل هو وظيفة مسج. 1657 01:18:29,010 --> 01:18:31,970 وانها سوف تجعل استدعاء غير متزامن. 1658 01:18:31,970 --> 01:18:35,700 وهذه الدعوات غير متزامن، لقد تم اشارة الى تلك كما اياكس. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> اي أسئلة أخرى؟ 1661 01:18:41,872 --> 01:18:43,330 لدينا فقط بضع دقائق غادر. 1662 01:18:43,330 --> 01:18:45,080 ويذهب ماريا ل اختتام مع الأمن 1663 01:18:45,080 --> 01:18:47,464 وبعد ذلك نحن ذاهبون أن يكون مجرد عن القيام به. 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: ممتاز، OK. 1665 01:18:48,630 --> 01:18:54,030 لذلك هذا is-- اتخاذ بضع ثانية للنظر أكثر من ذلك. 1666 01:18:54,030 --> 01:18:56,750 وهذا ليس شيئا عظيما حقا. 1667 01:18:56,750 --> 01:18:59,430 ويمكن أن تقولوا لي لماذا؟ 1668 01:18:59,430 --> 01:19:05,650 ما يجري في فو وربما يمكن يحتمل أن يؤدي إلى شيء سيئ، 1669 01:19:05,650 --> 01:19:06,770 وما أن يسمى؟ 1670 01:19:06,770 --> 01:19:07,270 نعم. 1671 01:19:07,270 --> 01:19:10,391 الجمهور: إذا كانت حجة هذا مرت في أكثر من 12 حرفا، 1672 01:19:10,391 --> 01:19:11,454 يمكن أن تجاوز. 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA: الحق. 1674 01:19:12,370 --> 01:19:14,180 في احسن الاحوال. 1675 01:19:14,180 --> 01:19:15,384 ماذا يسمي؟ 1676 01:19:15,384 --> 01:19:16,300 ذكرتم فقط. 1677 01:19:16,300 --> 01:19:16,840 >> الحضور: تجاوز سعة المخزن المؤقت. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: نعم، عازلة تجاوز. 1679 01:19:18,381 --> 01:19:21,230 لذلك هذا هو الشيء الذي نحن أشير إلى أنه تجاوز سعة المخزن المؤقت. 1680 01:19:21,230 --> 01:19:25,500 ونحن نرى أن داخل فو، حددناها لدينا العازلة، ج، 1681 01:19:25,500 --> 01:19:27,240 مع حجم 12. 1682 01:19:27,240 --> 01:19:32,680 ومع ذلك، في الرئيسية، ونحن لا تحقق بأي شكل من الأشكال على الإطلاق 1683 01:19:32,680 --> 01:19:36,480 إذا كانت argv1-- بحيث كانت الحجة الثانية. 1684 01:19:36,480 --> 01:19:39,630 نحن لا تحقق ما إذا كان حجم فمن المناسب. 1685 01:19:39,630 --> 01:19:43,380 >> حتى إذا كان لدينا المتطفلين خاصة 1686 01:19:43,380 --> 01:19:47,170 الذين وضعوا في بعض الحجة التي كانت أكثر من 12، ثم يحتمل أن تكون 1687 01:19:47,170 --> 01:19:50,850 ما وراء حدود أن الحجة، وكان بعض رمز قابل للتنفيذ 1688 01:19:50,850 --> 01:19:55,570 إنه يحاول أن يفعل شيئا سيئا معها؛ ثم هذا، ماذا سيحدث، 1689 01:19:55,570 --> 01:19:59,310 ويعلو عودة عنوان الدالة فو، 1690 01:19:59,310 --> 01:20:04,370 مما تسبب في وظيفة إلى حين العودة إلى تنفيذ التعليمات البرمجية. 1691 01:20:04,370 --> 01:20:07,540 ثم الأشياء السيئة يمكن أن يحدث. 1692 01:20:07,540 --> 01:20:09,850 هل هذا يعقل أن الجميع؟ 1693 01:20:09,850 --> 01:20:12,424 >> وكيف يمكن أن نحمي ضد هذا؟ 1694 01:20:12,424 --> 01:20:13,090 أي اقتراحات؟ 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 في الأساس، داخل يحتمل أن تكون فو، كيف 1697 01:20:21,890 --> 01:20:28,294 يمكننا أن تحقق للتأكد من أن هذا لا يمكن أن يحدث؟ 1698 01:20:28,294 --> 01:20:33,879 >> الجمهور: إذا تم تجاوز حجم 12، كنت تخصيص ذاكرة إضافية؟ 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA: اقتراح هو، وتخصيص تجاوزت ذاكرة إضافية لحجم. 1700 01:20:37,170 --> 01:20:39,800 في الواقع، يمكننا أن نفعل شيئا ل الكثير أبسط من ذلك أيضا. 1701 01:20:39,800 --> 01:20:44,870 يمكننا أن مجرد الحصول على طول السلسلة من الحجة التي تم إدخالها، 1702 01:20:44,870 --> 01:20:48,590 معرفة ما اذا كان هذا هو أقل من أو يساوي 12-- 1703 01:20:48,590 --> 01:20:50,790 وهو ما نريدها أن تكون لأننا لا نريد 1704 01:20:50,790 --> 01:20:52,373 أن يتجاوز حدود عازلة لدينا. 1705 01:20:52,373 --> 01:20:55,690 ومن ثم إذا لم يحدث ذلك، فإننا يمكن أن تعمل مع الحجة. 1706 01:20:55,690 --> 01:21:00,296 ثم إذا كان كذلك، نريد فعلا لYELLO يحتمل أن المستخدم. 1707 01:21:00,296 --> 01:21:01,670 ولكن هذه هي الطريقة التي ستفعل ذلك. 1708 01:21:01,670 --> 01:21:02,443 نعم فعلا. 1709 01:21:02,443 --> 01:21:04,360 >> الحضور: هل لك شرح سريعة الحقيقية memcpy؟ 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA: أوه، آسف. 1711 01:21:05,443 --> 01:21:06,040 نعم فعلا. 1712 01:21:06,040 --> 01:21:11,290 Memcpy يأخذ كل ما is-- آسف، OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy يأخذ كل ما هو في شريط، كل ما مرت 1714 01:21:15,850 --> 01:21:18,050 على فو كما وسيطة سطر الأوامر. 1715 01:21:18,050 --> 01:21:19,440 لذلك سيستغرق argv1. 1716 01:21:19,440 --> 01:21:21,420 ويسمى Argv1 شريط هنا. 1717 01:21:21,420 --> 01:21:24,453 لذلك سيستغرق وبار انها سوف نسخه إلى ج. 1718 01:21:24,453 --> 01:21:25,402 >> الحضور: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: وانه سيكون ل copy-- الوسيطة الثالثة يشير فقط 1720 01:21:28,360 --> 01:21:30,601 إلى أي مدى سيكون لنسخ إلى ج. 1721 01:21:30,601 --> 01:21:31,142 الحضور: آه. 1722 01:21:31,142 --> 01:21:33,030 لذلك نسخ هذا واحد من كل ذلك الحين. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: نعم، انها نسخ كل ذلك. 1724 01:21:34,310 --> 01:21:34,810 نعم. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 أولا، أن نتأكد من شريط ليس يساوي فارغة لأنها المؤشر. 1727 01:21:41,910 --> 01:21:44,680 ثم نحصل على طول سلسلة من العارضة. 1728 01:21:44,680 --> 01:21:47,530 نضمن أنه أقل من أو يساوي 12. 1729 01:21:47,530 --> 01:21:50,070 ثم لأننا تأكدوا، يمكننا فعلا 1730 01:21:50,070 --> 01:21:53,122 memcpy ومما لا شك فيه أن هذا موافق. 1731 01:21:53,122 --> 01:21:53,705 أي أسئلة؟ 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 رائعة. 1734 01:21:58,690 --> 01:22:00,400 لدي سؤالان صحيحة أو خاطئة. 1735 01:22:00,400 --> 01:22:05,470 يمكن لأحد أن يقول لي على الفور إذا كانت هذه هي صحيحة أم خاطئة؟ 1736 01:22:05,470 --> 01:22:07,460 نعم، انها كاذبة. 1737 01:22:07,460 --> 01:22:07,960 بالضبط. 1738 01:22:07,960 --> 01:22:09,330 كلاهما كاذب. 1739 01:22:09,330 --> 01:22:12,682 وذلك باستخدام كلمة مرور واحدة هي فكرة جيدة أبدا حقا 1740 01:22:12,682 --> 01:22:14,890 لأنه إذا كان شخص ما يعرف كلمة السر الخاصة بك، فإنها يمكن فقط 1741 01:22:14,890 --> 01:22:16,260 الوصول إلى كافة الحسابات الأخرى الخاصة بك. 1742 01:22:16,260 --> 01:22:19,260 ومن ثم الرموز لا تفعل شيئا لضمان الأمن. 1743 01:22:19,260 --> 01:22:24,900 ينبغي أن ننظر عادة لHTTPS بدلا من HTTP وURL. 1744 01:22:24,900 --> 01:22:28,560 >> وبعض الأنواع الأخرى من الهجمات التي قمنا المذكورة، 1745 01:22:28,560 --> 01:22:31,390 أن داود قد ذكر في محاضرة هجمات حقن SQL. 1746 01:22:31,390 --> 01:22:37,310 لقد رأينا بالفعل أننا إذا don't-- لل وظيفة الاستعلام CS50 يتأكد أن SQL 1747 01:22:37,310 --> 01:22:39,530 لا يمكن أن تحدث هجمات الحقن. 1748 01:22:39,530 --> 01:22:42,640 ولكن إذا كنا لا تستخدم CS50، الاقتباس، نهاية الاقتباس "في الاستعلام" 1749 01:22:42,640 --> 01:22:46,830 سيكون لدينا للتأكد من أن إدخال المستخدم ليست في الواقع بعض SQL 1750 01:22:46,830 --> 01:22:49,670 الاستعلام من شأنها أن تتسبب جميع إلى إسقاط الجداول لدينا 1751 01:22:49,670 --> 01:22:54,070 أو شيئا سيئا ل يحدث مع قاعدة البيانات الخاصة بنا. 1752 01:22:54,070 --> 01:22:56,790 >> جلسة اختطاف هو نوع آخر من الهجوم 1753 01:22:56,790 --> 01:23:05,940 ما يحدث عند بعض سيئة شخص يستخدم الجلسة بعض الضحية 1754 01:23:05,940 --> 01:23:08,740 ID للوصول إلى معلومات تسجيل الدخول. 1755 01:23:08,740 --> 01:23:13,620 لذلك مثالا تافها جدا لذلك هو كما لو كان لدينا جهاز كمبيوتر عام، 1756 01:23:13,620 --> 01:23:21,120 ثم شخص سيء في سجلات ثم لديهم ملفات تعريف الارتباط التي يتم حفظها. 1757 01:23:21,120 --> 01:23:23,380 والكوكيز لا تتغير عن الدورة. 1758 01:23:23,380 --> 01:23:27,620 >> ثم قمنا الضحية تذهب في ومن ثم تسجيل الدخول إلى الموقع. 1759 01:23:27,620 --> 01:23:30,290 ملفات تعريف الارتباط لا تتغير لدورة معينة. 1760 01:23:30,290 --> 01:23:33,060 ثم الضحية بتسجيل إلى موقع ومن ثم يترك. 1761 01:23:33,060 --> 01:23:36,190 ثم الشخص الذي يعود ويمكن بعد ذلك الاستمرار في استخدام ID دورتهم 1762 01:23:36,190 --> 01:23:37,430 للوصول إلى المعلومات الخاصة بهم. 1763 01:23:37,430 --> 01:23:40,050 ولهذا مثال واحد من كيف يمكن أن يحدث. 1764 01:23:40,050 --> 01:23:45,570 >> ثم أود أن لا تقلق كثيرا حول رمز معين أو أي شيء 1765 01:23:45,570 --> 01:23:49,270 كما أن ذلك يمكن أن يسبب هذا، ولكن وجود نوع من فكرة ما 1766 01:23:49,270 --> 01:23:51,400 المتغيرات التي تنطوي عليها هذه هي. 1767 01:23:51,400 --> 01:23:53,897 ومن ثم التلاعب رأس البيانات هو نوع آخر من الهجوم 1768 01:23:53,897 --> 01:23:55,230 الذي لديه ديفيد تحدث عن. 1769 01:23:55,230 --> 01:23:59,730 ويشير فقط ل ما يمكن أن يحدث عندما 1770 01:23:59,730 --> 01:24:04,300 وردا على ذلك، HTTP استجابة داخل رأس لدينا 1771 01:24:04,300 --> 01:24:05,720 لم يتم مطهرة بشكل صحيح. 1772 01:24:05,720 --> 01:24:14,340 >> وأي من fields-- على سبيل المثال، اذا كان هناك من الكتابة واحدة من رأس 1773 01:24:14,340 --> 01:24:18,860 القيم لاحتواء أي شيء أكثر من ما ينبغي contain-- والواقع 1774 01:24:18,860 --> 01:24:22,720 تحتوي، على سبيل المثال، 200 موافق رمز حالة، بعد ذلك 1775 01:24:22,720 --> 01:24:26,890 من المحتمل أن تفعل الخبيثة الأمور عندما انهم ليس من المفترض أن. 1776 01:24:26,890 --> 01:24:30,815 ولكن أود أن لا تقلق جدا الكثير عن رمز معين 1777 01:24:30,815 --> 01:24:34,110 يمكن أن يسبب هذا، مجرد نوع من التفاهم 1778 01:24:34,110 --> 01:24:37,290 أشياء رفيع المستوى من هذا القبيل. 1779 01:24:37,290 --> 01:24:39,570 >> وأعتقد أن هذا هو كل شيء أن لدينا لتغطية. 1780 01:24:39,570 --> 01:24:40,090 مدهش. 1781 01:24:40,090 --> 01:24:43,310 أي شخص لديه أي أسئلة بشأن أي من الأشياء التي غطينا؟ 1782 01:24:43,310 --> 01:24:44,213 نعم فعلا. 1783 01:24:44,213 --> 01:24:48,077 >> الجمهور: ذلك النوع أحد أكثر من سؤال اللوجستي. 1784 01:24:48,077 --> 01:24:53,400 هو محتوى تركز أساسا على الأشياء بعد اختبار 1؟ 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: حتى السؤال هو، هو المحتوى 1786 01:24:55,730 --> 01:24:59,720 تركز أساسا على الأمور بعد اختبار 1؟ 1787 01:24:59,720 --> 01:25:06,070 وبالتالي فإن التركيز هو على بعد مسابقة 1، باستثناء 1788 01:25:06,070 --> 01:25:10,914 أننا بحاجة إلى التركيز على الأمور في pset5 والكثير من هياكل البيانات 1789 01:25:10,914 --> 01:25:11,580 أن غطينا. 1790 01:25:11,580 --> 01:25:14,300 ونحن لا نستطيع أن نقول أننا يمكن تجاهل أي شيء قبل 1791 01:25:14,300 --> 01:25:17,120 هذا لأنه يبني على أنها كذلك. 1792 01:25:17,120 --> 01:25:21,845 >> لذلك التركيز على ذلك، بالإضافة إلى المواد pset5 مثل بما في ذلك ربط القوائم، المداخن، 1793 01:25:21,845 --> 01:25:23,720 الطوابير، وكل شيء أن هانا ذهب أكثر. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH بلومبرج: الحق. 1795 01:25:24,050 --> 01:25:27,450 نعم، ذهبنا على كل الاشياء C في البداية بسرعة كبيرة. 1796 01:25:27,450 --> 01:25:29,090 ولكن تأكد من مراجعة ذلك. 1797 01:25:29,090 --> 01:25:32,700 أعود ومشاهدة الاستعراض مسابقة 0. 1798 01:25:32,700 --> 01:25:36,110 >> وقبل بضعة ملاحظات أكثر اللوجستية، فقط حين يكون لدينا اهتمام. 1799 01:25:36,110 --> 01:25:39,100 نحن ستكون لدينا ساعات العمل كلا يومي الاثنين والثلاثاء ليلة. 1800 01:25:39,100 --> 01:25:41,540 انهم ذاهبون ليكون في MD 119. 1801 01:25:41,540 --> 01:25:44,220 هذا هو كل شيء على شبكة الإنترنت، لذلك إذا كنت لا أسمع له، لا تقلق. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA: 8:30 حتي 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH بلومبرج: نعم، 8:30 حتي 11:00. 1804 01:25:46,260 --> 01:25:46,910 سنكون هناك. 1805 01:25:46,910 --> 01:25:48,368 سنكون هناك للإجابة على الأسئلة. 1806 01:25:48,368 --> 01:25:49,480 انها البرد جميلة وممتعة. 1807 01:25:49,480 --> 01:25:53,240 يا رفاق يمكن طرح أي سؤال أن يكون لديك في مسابقة 1. 1808 01:25:53,240 --> 01:25:55,740 ومسابقة 1 هي على الأربعاء، حظا سعيدا بذلك. 1809 01:25:55,740 --> 01:25:59,770 إذا كان لديك أي أسئلة، ربما يأتي الحديث لنا هنا واحد على واحد. 1810 01:25:59,770 --> 01:26:00,880 رائع. 1811 01:26:00,880 --> 01:26:01,630 شكرا جزيلا. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA: شكرا جزيلا، والرجال. 1813 01:26:02,880 --> 01:26:03,480 >> الحضور: ياي. 1814 01:26:03,480 --> 01:26:05,930 >> [تصفيق] 1815 01:26:05,930 --> 01:26:07,530