1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:04,810 [عزف الموسيقى] 3 00:00:04,810 --> 00:00:06,940 >> DOUG لويد: لذلك أكثر واحد نوع من فكرة أن 4 00:00:06,940 --> 00:00:12,120 نوع من يندرج تحت مظلة جافا سكريبت هي ما يسمى AJAX. 5 00:00:12,120 --> 00:00:15,310 حتى هذه النقطة، لدينا التفاعل مع جافا سكريبت 6 00:00:15,310 --> 00:00:17,727 وقد تقتصر على دفع زر ويحدث شيء. 7 00:00:17,727 --> 00:00:19,560 وتحديدا، شيء ما يحدث 8 00:00:19,560 --> 00:00:22,950 غير مواقعنا الشكل والمظهر التغييرات. 9 00:00:22,950 --> 00:00:23,450 الصحيح؟ 10 00:00:23,450 --> 00:00:26,540 مثل على وجه الخصوص، في وثيقة نموذج الكائن الفيديو، 11 00:00:26,540 --> 00:00:29,060 لقد غيرت لون الخلفية. 12 00:00:29,060 --> 00:00:33,240 ولكن عندما فعلت ذلك، لم يكن لدي للقيام بأي طلبات إضافية خاصة. 13 00:00:33,240 --> 00:00:36,800 لم يكن لدي أن أطلب خادم ترسل لي صفحة جديدة. 14 00:00:36,800 --> 00:00:39,620 أنا مجرد تغيير ما كان بالفعل. 15 00:00:39,620 --> 00:00:42,245 لم يكن لديك لإعادة تحميل الصفحة الخاصة بي، والأمور تغيرت بالتأكيد، 16 00:00:42,245 --> 00:00:43,760 لذلك هذا أمر عظيم. 17 00:00:43,760 --> 00:00:48,400 ولكن هناك بالتأكيد بعض دليل تفاعل المستخدم المعنية. 18 00:00:48,400 --> 00:00:53,140 AJAX هو أسلوب بارد التي تسمح لنا لتحديث محتويات الصفحة، 19 00:00:53,140 --> 00:00:55,750 وليس فقط في الشكل و يشعر، دون إعادة شحن. 20 00:00:55,750 --> 00:00:58,610 >> وعلى وجه التحديد عندما كنت أقول تحديث محتوى الصفحة، 21 00:00:58,610 --> 00:01:01,990 أنا لا أقول أننا إعادة كتابة الصفحة باستخدام جافا سكريبت. 22 00:01:01,990 --> 00:01:06,560 أنا أقول نطلب الواقع مزيد من المعلومات من الخادم 23 00:01:06,560 --> 00:01:08,640 دون صفحتنا الحاجة إلى إعادة تحميل. 24 00:01:08,640 --> 00:01:10,850 >> الآن هذا النوع من قليلا من تقنية أكثر تقدما 25 00:01:10,850 --> 00:01:11,950 أننا بصدد الحديث حول في هذا الفيديو. 26 00:01:11,950 --> 00:01:13,720 ونحن في طريقنا لديك بعض التفاعل. 27 00:01:13,720 --> 00:01:17,750 ولكن عندما نفعل ذلك، أنا ذاهب ليكون تقديم طلبات إلى خادم الويب. 28 00:01:17,750 --> 00:01:21,140 في هذه الحالة، فقط ما هو تشغيل أباتشي خادم الويب الخاص بي. 29 00:01:21,140 --> 00:01:25,010 انا ذاهب الى أن تكون القرارات إضافية طلبات بينما أنا بزيارة صفحة ويب، 30 00:01:25,010 --> 00:01:26,890 ولكن سوف يتم تحديث صفحتي. 31 00:01:26,890 --> 00:01:30,000 >> انها مجرد الذهاب الى غير متزامن تحديث الصفحة الخاصة بي. 32 00:01:30,000 --> 00:01:31,840 وهذا هو، في الواقع، AJAX التي تقف على، 33 00:01:31,840 --> 00:01:35,400 غير متزامن جافا سكريبت وإكس إم إل. 34 00:01:35,400 --> 00:01:37,910 XML هو نوع آخر من العلامات لغة، ويمكنك فرز لل 35 00:01:37,910 --> 00:01:39,680 التفكير في الأمر تماما مثل HTML. 36 00:01:39,680 --> 00:01:42,990 انها ليست تماما نفس الشيء، ولكن انها في الاساس مجرد لغة الترميز. 37 00:01:42,990 --> 00:01:47,770 لذلك فمن غير متزامن جافا سكريبت ولغة ترميز. 38 00:01:47,770 --> 00:01:50,590 >> وذلك من أجل استخدام هذه AJAX technique-- AJAX 39 00:01:50,590 --> 00:01:52,230 ليست لغة برمجة منفصلة. 40 00:01:52,230 --> 00:01:55,300 انها مجرد نوع من مجموعة من techniques-- نحن 41 00:01:55,300 --> 00:01:57,870 تحتاج إلى إنشاء الخاصة كائن جافا سكريبت، التي 42 00:01:57,870 --> 00:02:00,689 يتم استدعاء مدعوم. 43 00:02:00,689 --> 00:02:01,980 الآن، فإنه من السهل جدا للقيام بذلك. 44 00:02:01,980 --> 00:02:04,550 نقول فقط فار، أيا كان نريد أن نسمي هذا الكائن، 45 00:02:04,550 --> 00:02:07,030 يساوي مدعوم الجديد. 46 00:02:07,030 --> 00:02:11,050 والآن حصلنا عليها الآن والنوع AJAX من وجوه، 47 00:02:11,050 --> 00:02:14,370 أو مدعوم وجوه، والتي سوف تسمح لل 48 00:02:14,370 --> 00:02:18,360 لنا لتحديث بشكل غير متزامن صفحتنا. 49 00:02:18,360 --> 00:02:23,100 >> بعد أن نكون قد حصلت على هذا جديدة وجوه، وهذا مدعوم، 50 00:02:23,100 --> 00:02:27,760 علينا أن نفعل شيئا لل السلوك onreadystatechange. 51 00:02:27,760 --> 00:02:30,360 Onreadystatechange السلوك هو في الحقيقة مجرد 52 00:02:30,360 --> 00:02:34,080 عند تقديم طلب إلى صفحة الويب، صفحة 53 00:02:34,080 --> 00:02:35,880 يذهب من خلال عدد من الخطوات. 54 00:02:35,880 --> 00:02:37,370 أولا، لم يتم إرسال الطلب. 55 00:02:37,370 --> 00:02:39,860 ثم، فإن الطلب أرسلت، ولكن لا تصرف عليها. 56 00:02:39,860 --> 00:02:41,580 ثم تم عمل طلب عليه. 57 00:02:41,580 --> 00:02:43,680 ثم الطلب إرسالها إليك. 58 00:02:43,680 --> 00:02:46,930 >> ثم، كان الطلب محملة بالكامل في الصفحة الخاصة بك. 59 00:02:46,930 --> 00:02:48,640 تلك هي ولايات مختلفة. 60 00:02:48,640 --> 00:02:53,890 ولذا فإننا بحاجة إلى تعيين لدينا كائن مدعوم جديد 61 00:02:53,890 --> 00:02:58,740 لتغيير عند تغيير حالة استعداد. 62 00:02:58,740 --> 00:03:01,925 وعادة، ونحن نفعل ذلك من خلال تحديد وظيفة غير معروفة والتى 63 00:03:01,925 --> 00:03:04,490 نحن على دراية من جافا سكريبت الآن، أن 64 00:03:04,490 --> 00:03:09,840 ويسمى عند تغيير حالة استعداد. 65 00:03:09,840 --> 00:03:11,340 انها حقا ليست أكثر من ذلك بكثير. 66 00:03:11,340 --> 00:03:14,340 نحن ذاهبون لمجرد أن تحدد ل وظيفة مجهول، نوع من مثل ما 67 00:03:14,340 --> 00:03:16,440 كنا نفعل في جافا سكريبت، حيث كنا 68 00:03:16,440 --> 00:03:18,750 لها وظيفة غير معروفة الاستجابة لفي نقرة، 69 00:03:18,750 --> 00:03:23,230 أو عندما كنا نفعل خريطة الكائنات المختلفة في صفيف. 70 00:03:23,230 --> 00:03:25,220 >> حدث شيء عندما تم النقر شيء. 71 00:03:25,220 --> 00:03:28,810 في هذه الحالة، انها مجرد شيء يحدث عندما تكون الدولة في صفحتنا 72 00:03:28,810 --> 00:03:30,160 التغييرات. 73 00:03:30,160 --> 00:03:32,730 هناك نوعان من الخصائص الأخرى التي يتم الفرز of-- انهم لا 74 00:03:32,730 --> 00:03:35,524 خصائص الوحيدة التي ملازمة لمدعوم، 75 00:03:35,524 --> 00:03:36,940 ولكنهم هم مهم جدا. 76 00:03:36,940 --> 00:03:39,815 هناك شيء يسمى ReadyState عن، والتي كما يمكنك تخمين ربما، 77 00:03:39,815 --> 00:03:41,750 غير المتعلقة onreadystatechange. 78 00:03:41,750 --> 00:03:44,250 وهو يروي في الواقع كنت ما هو في ReadyState. 79 00:03:44,250 --> 00:03:46,289 0، 1، 2، 3، و 4 الاحتمالات هناك، 80 00:03:46,289 --> 00:03:48,080 وأنها نوع من تقريبا تتوافق مع ما 81 00:03:48,080 --> 00:03:50,030 كنت مجرد الحديث قبل حوالي الثانية. 82 00:03:50,030 --> 00:03:53,100 >> ثم وضع، الذي نأمل لو ذهب كل شيء جيد، 83 00:03:53,100 --> 00:03:56,710 هو 200، وهو باختصار ل، بطبيعة الحال، OK، 84 00:03:56,710 --> 00:03:58,330 ونحن على دراية من المتشعب. 85 00:03:58,330 --> 00:04:03,735 لذلك نحن على أمل أن الدولة مستعدة لدينا أربعة، ومركزنا هو 200. 86 00:04:03,735 --> 00:04:07,940 وإذا حالة استعداد لدينا أربعة، والاستجابة 87 00:04:07,940 --> 00:04:11,490 هو على استعداد لوضعها على الصفحة، والوضع هو 200، 88 00:04:11,490 --> 00:04:13,580 كنا قادرين على القيام كل شيء بنجاح، 89 00:04:13,580 --> 00:04:17,209 الآن يمكننا بشكل غير متزامن تحديث الصفحة لدينا 90 00:04:17,209 --> 00:04:21,730 دون الحاجة إلى إعادة تحميل المحتوى الكامل منه. 91 00:04:21,730 --> 00:04:27,710 >> بعد أن قمت بتعريف ما يحدث إلى سلوك onreadystatechange، 92 00:04:27,710 --> 00:04:31,020 ولقد تأكدت من أنه ReadyState عن هو 4 والحالة 200، 93 00:04:31,020 --> 00:04:33,900 ثم كل ما عليك القيام به هو فتح غير متزامن 94 00:04:33,900 --> 00:04:38,530 الطلب، مما يجعل مجرد وHTTP GET عموما الطلب. 95 00:04:38,530 --> 00:04:41,950 مجرد القيام برمجيا، بدلا من خلال متصفح الويب لدينا. 96 00:04:41,950 --> 00:04:43,786 ثم نرسل هذا الطلب. 97 00:04:43,786 --> 00:04:45,660 فماذا يعني هذا ربما تبدو وكأنها في السياق؟ 98 00:04:45,660 --> 00:04:49,790 حتى هنا وظيفة التي يتعامل مع طلبات AJAX. 99 00:04:49,790 --> 00:04:50,290 موافق؟ 100 00:04:50,290 --> 00:04:52,430 ولقد قال تعسفا أنها تقبل حجة. 101 00:04:52,430 --> 00:04:55,550 وهذا النوع من هيكل عظمي العام هنا. 102 00:04:55,550 --> 00:05:00,890 في البداية، وحصلنا على أنفسنا كائن مدعوم الجديد. 103 00:05:00,890 --> 00:05:03,830 ثم، ولست بحاجة لتعيين السلوك onreadystatechange. 104 00:05:03,830 --> 00:05:06,970 لذا فإنني سأقول عندما يتغير ReadyState عن، 105 00:05:06,970 --> 00:05:10,110 أريدك أن استدعاء هذه الدالة. 106 00:05:10,110 --> 00:05:12,570 >> وهو ذاهب الى تسأل السؤال، إذا في ReadyState 107 00:05:12,570 --> 00:05:17,240 هو 4، إذا كان قد تغير في ReadyState لتكون 4، وكان وضع 200، 108 00:05:17,240 --> 00:05:20,799 لذلك كان علينا طلب ناجحة، وأنا تريد أن تفعل شيئا إلى الصفحة. 109 00:05:20,799 --> 00:05:22,590 ونحن سوف نلقي نظرة على مثال ما 110 00:05:22,590 --> 00:05:25,010 قد يكون ذلك شيء في ثانية. 111 00:05:25,010 --> 00:05:27,830 حتى ذلك الحين، وأنا الآن قد حددت بلدي وظيفة مجهول، 112 00:05:27,830 --> 00:05:31,340 مهمتي استجابة كلما التغييرات ReadyState عن. 113 00:05:31,340 --> 00:05:37,120 >> حتى ذلك الحين أنا فقط بحاجة إلى فتح طلب، وذلك باستخدام طريقة فتح. 114 00:05:37,120 --> 00:05:39,160 وبعد ذلك، أبعث هذا الطلب. 115 00:05:39,160 --> 00:05:41,980 ودعونا نلقي نظرة على مثال ملموس أكثر 116 00:05:41,980 --> 00:05:46,290 ما AJAX يمكن القيام به على صفحات الويب لدينا. 117 00:05:46,290 --> 00:05:49,740 لذلك ليس لدي هنا بسيط جدا الصفحة دعت صفحة home.html. 118 00:05:49,740 --> 00:05:53,620 وأنا عندي يذهب للمعلومات هنا ونوعا من القائمة المنسدلة. 119 00:05:53,620 --> 00:05:55,390 >> وسوف نعيد النظر هذه في ثانية واحدة. 120 00:05:55,390 --> 00:05:59,150 ولكن أعتقد أنه يجب علينا الآن أن نلقي إلقاء نظرة على شفرة المصدر الفعلي. 121 00:05:59,150 --> 00:06:01,080 وهكذا، وانا ذاهب لفتح صفحة home.html. 122 00:06:01,080 --> 00:06:03,490 123 00:06:03,490 --> 00:06:04,740 وسنرى ما يحدث. 124 00:06:04,740 --> 00:06:08,240 حتى في أعلى جدا هنا، ولدي بعض الاشياء جافا سكريبت أن يحدث. 125 00:06:08,240 --> 00:06:12,470 >> وهنا، وأنا على ما يبدو لديها وشعبة الذين ID هو infodiv، 126 00:06:12,470 --> 00:06:15,290 وبعض المعلومات سوف نذهب الى هناك. 127 00:06:15,290 --> 00:06:16,374 ثم لدي هذا النموذج. 128 00:06:16,374 --> 00:06:18,081 وداخل هذا شكل، لدي شيء 129 00:06:18,081 --> 00:06:20,200 يسمى حدد، الذي هو مجرد القائمة المنسدلة 130 00:06:20,200 --> 00:06:22,150 مع مجموعة من الخيارات المختلفة. 131 00:06:22,150 --> 00:06:26,150 وعلى ما يبدو عندما يتغير هذا عندما الخيار الذي تم اختياره له 132 00:06:26,150 --> 00:06:30,600 تغير، وانا ذاهب للاتصال بعض من وظيفة cs50Info، 133 00:06:30,600 --> 00:06:33,190 ثم انا ذاهب الى تمر في this.value، 134 00:06:33,190 --> 00:06:35,740 حيث يشير هذا إلى الخيار الذي تم اختياره، 135 00:06:35,740 --> 00:06:39,820 والقيمة هي واحدة من هذه هنا، والخيار قيمة = يساوي فارغة، "بلومبرغ" 136 00:06:39,820 --> 00:06:42,610 "بودين"، "تشان"، و "مالان". 137 00:06:42,610 --> 00:06:45,090 >> وذلك ما قد فعلا يحدث هنا عندما أفعل هذا؟ 138 00:06:45,090 --> 00:06:48,800 حسنا، دعونا نلقي ننظر blumberg.html. 139 00:06:48,800 --> 00:06:51,330 140 00:06:51,330 --> 00:06:53,924 يبدو انها مجرد مقتطف من بعض الاكواد. 141 00:06:53,924 --> 00:06:56,090 في واقع الأمر، ما أنا على أمل سيحدث هنا 142 00:06:56,090 --> 00:07:00,020 وانا ذاهب لتكون قادرة على سد العجز هذه الاكواد مباشرة إلى صفحة الويب الخاصة بي 143 00:07:00,020 --> 00:07:02,970 دون الحاجة إلى إعادة تحميل الصفحة، بحيث أنه عندما 144 00:07:02,970 --> 00:07:07,510 اخترت هانا من القائمة المنسدلة القائمة، معلومات عن هانا، 145 00:07:07,510 --> 00:07:11,100 ولا سيما أن هذه المعلومات هنا في blumberg.html، 146 00:07:11,100 --> 00:07:12,574 هو ما يظهر على الصفحة. 147 00:07:12,574 --> 00:07:13,740 وأنا لم يكن لديك لتحديث. 148 00:07:13,740 --> 00:07:16,842 وإذا اخترت شخص آخر، أن معلوماتهم تظهر. 149 00:07:16,842 --> 00:07:17,550 كيف افعل هذا؟ 150 00:07:17,550 --> 00:07:20,290 مرة أخرى، وهذا يتطلب لنا استخدام بعض AJAX. 151 00:07:20,290 --> 00:07:22,540 وهكذا، ونحن سوف تفتح ajax.js. 152 00:07:22,540 --> 00:07:25,550 وهنا هو أن وظيفة، cs50Info. 153 00:07:25,550 --> 00:07:27,410 إذا كان اسم شيء، أعود. 154 00:07:27,410 --> 00:07:31,450 أنا لن تفعل أي شيء إذا وقد تم اختيار الخيار فارغا. 155 00:07:31,450 --> 00:07:35,420 خلاف ذلك، وانا ذاهب ل إنشاء مدعوم الجديد. 156 00:07:35,420 --> 00:07:39,020 ثم انا ذاهب الى القول، عندما تغييرات ReadyState عن، استدعاء هذه الدالة. 157 00:07:39,020 --> 00:07:43,630 >> وإذا في ReadyState هو 4 وكانت الحالة 200، 158 00:07:43,630 --> 00:07:45,740 هنا قليلا من مسج على خط 13. 159 00:07:45,740 --> 00:07:50,450 ولكن كل ما أفعله هو قائلا: تغيير محتويات infodiv 160 00:07:50,450 --> 00:07:57,820 ليكون ما عدت بمثابة رد من وجهة نظري HttpRequest. 161 00:07:57,820 --> 00:07:59,590 >> ما هي لغتي HttpRequest؟ 162 00:07:59,590 --> 00:08:02,020 حسنا، هذا صحيح هنا على خط 18 و 19. 163 00:08:02,020 --> 00:08:08,550 خط 18، وأنا إعداد الأساس وطلب GET لاسم + هتمل. 164 00:08:08,550 --> 00:08:11,170 ومرة أخرى، اسم هنا الحجة التي كانت 165 00:08:11,170 --> 00:08:14,280 مرت في كمعلمة إلى cs50Info. 166 00:08:14,280 --> 00:08:18,460 >> ذلك أساسا، أنا يمر في شخص ما اسم، وهي أن مجموعة من الخيارات 167 00:08:18,460 --> 00:08:22,980 الذي رأيناه في القائمة المنسدلة في النموذج. 168 00:08:22,980 --> 00:08:24,450 أنا الحصول على هذا الاسم. 169 00:08:24,450 --> 00:08:29,530 وأنا أقول أود منك ل يرجى الحصول بالنسبة لي أن file.html، 170 00:08:29,530 --> 00:08:31,020 ثم قم بإرسال هذا الطلب. 171 00:08:31,020 --> 00:08:34,820 >> وبحيث onreadystatechange يسير أن يكون الاستماع والانتظار والانتظار 172 00:08:34,820 --> 00:08:39,460 والانتظار، حتى في ReadyState هو 4، والوضع هو 200. 173 00:08:39,460 --> 00:08:44,970 لذلك فمن جاهزة للعمل، وكان الطلب ناجحا. 174 00:08:44,970 --> 00:08:49,500 ثم إذا كان كذلك، فإنه سيكون ل تغيير محتويات infodiv 175 00:08:49,500 --> 00:08:53,030 أن يكون النص الاستجابة التي حصلت على العودة. 176 00:08:53,030 --> 00:08:54,930 >> لذلك دعونا نرى كيف هذا قد عمل فعلا. 177 00:08:54,930 --> 00:08:58,860 ولذا فإننا سوف يتوجه الى متصفحي النافذة، وسوف نبحث هنا. 178 00:08:58,860 --> 00:09:01,359 لذلك دعونا نلقي نظرة على ما الذي يحدث هنا في AJAX. 179 00:09:01,359 --> 00:09:03,400 ولذا فإننا سوف اختيار شخص من القائمة المنسدلة. 180 00:09:03,400 --> 00:09:06,079 حتى في هذه الحالة، دعونا مجرد اختيار هانا. 181 00:09:06,079 --> 00:09:08,120 ولاحظ أن لهانا لقد تغيرت المعلومات، 182 00:09:08,120 --> 00:09:11,030 ولكن لم يكن لدي any-- بلدي لم يكن إعادة تحميل الصفحة بالكامل. 183 00:09:11,030 --> 00:09:12,190 بقي الاشياء. 184 00:09:12,190 --> 00:09:13,320 بقي معظم الاشياء. 185 00:09:13,320 --> 00:09:14,320 لم AJAX اختبار لا تغيير. 186 00:09:14,320 --> 00:09:16,700 الزر نفسه، وهذا القائمة المنسدلة لم تتغير. 187 00:09:16,700 --> 00:09:18,260 ولكن هناك معلومات لم تتغير. 188 00:09:18,260 --> 00:09:20,218 واعتمادا على كيفية بسرعة بلدي التحركات الكمبيوتر، 189 00:09:20,218 --> 00:09:24,430 كنت في الواقع قد نرى أن المحتوى يختفي ثم يظهر ثانية وحقا 190 00:09:24,430 --> 00:09:24,930 بسرعة. 191 00:09:24,930 --> 00:09:27,320 هذا المحتوى يجري حذف من infodiv، 192 00:09:27,320 --> 00:09:29,940 ومن ثم استبدالها طلب غير متزامن جديد. 193 00:09:29,940 --> 00:09:34,410 >> حتى لو كنت التبديل إلى أن أقول، Rob-- ومرة ​​أخرى، نلقي نظرة، 194 00:09:34,410 --> 00:09:38,379 وربما سنرى فعلا تختفي وتعود الى الظهور بسرعة. 195 00:09:38,379 --> 00:09:38,920 أنت ترى أن؟ 196 00:09:38,920 --> 00:09:41,400 كيف برزت فقط بعيدا، وبعد ذلك تعبئتها؟ 197 00:09:41,400 --> 00:09:43,640 هذا هو طلب AJAX نوع من الحدوث. 198 00:09:43,640 --> 00:09:46,060 وذلك اعتمادا على شخص اخترت، وأنا 199 00:09:46,060 --> 00:09:50,690 جعل المتزامن مختلفة طلب إلى ملف مختلف 200 00:09:50,690 --> 00:09:52,730 أن لدي في خدمة بلدي. 201 00:09:52,730 --> 00:09:55,550 ومحتويات بلدي infodiv تقوم بتحديث، 202 00:09:55,550 --> 00:09:58,457 استنادا إلى أي من هذه لقد اخترت. 203 00:09:58,457 --> 00:10:00,040 ولهذا حقا كل ما في AJAX. 204 00:10:00,040 --> 00:10:04,090 لأنها تتيح لنا لجعل هذه المتزامن طلبات والتحديثات لصفحة. 205 00:10:04,090 --> 00:10:06,450 دون الحاجة إلى تحديث الصفحة بأكملها، 206 00:10:06,450 --> 00:10:08,520 ونحن في طريقنا للحصول على جديد المحتوى من ذلك بجعل 207 00:10:08,520 --> 00:10:11,170 طلب العذبة الجديد إلى الملقم. 208 00:10:11,170 --> 00:10:13,420 وهكذا، يمكن أن تصبح صفحاتنا لا بأس به أكثر ديناميكية. 209 00:10:13,420 --> 00:10:15,128 >> وكلما تقدمنا ​​أكثر وأكثر تقدما، ل 210 00:10:15,128 --> 00:10:17,700 قد تحصل أشياء مثل مثلا، بريدك الالكتروني، 211 00:10:17,700 --> 00:10:19,850 حيث لم يكن لديك لفعل أي شيء. 212 00:10:19,850 --> 00:10:22,560 لم يكن لديك لفوق القائمة المنسدلة أو انقر فوق أي شيء، 213 00:10:22,560 --> 00:10:25,920 وفجأة، أحدث الخاص بك البريد الإلكتروني يظهر في الجزء العلوي. 214 00:10:25,920 --> 00:10:27,840 وهذا أيضا مجرد طلب اياكس. 215 00:10:27,840 --> 00:10:30,460 اياكس يطلب بك خادم، خادم البريد الإلكتروني، 216 00:10:30,460 --> 00:10:33,360 لإرسال أكثر من جميع المعلومات حول أحدث رسائل البريد الإلكتروني، 217 00:10:33,360 --> 00:10:38,110 وتغيير ما تراه على الشاشة ليكون أحدث لديك مجموعة من رسائل البريد الإلكتروني. 218 00:10:38,110 --> 00:10:41,080 وإذا كان لديك واحدة جديدة في هناك، ثم محتوى ذلك شعبة 219 00:10:41,080 --> 00:10:44,580 ستتغير لتعكس المحتوى المحدث. 220 00:10:44,580 --> 00:10:45,480 أنا دوغ ويد. 221 00:10:45,480 --> 00:10:47,500 هذا هو CS50. 222 00:10:47,500 --> 00:10:49,229