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