1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [Həftə 9] 2 00:00:02,570 --> 00:00:04,740 [David J. Malan - Harvard Universiteti] 3 00:00:04,740 --> 00:00:07,170 [Bu CS50 edir. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 Bütün hüquqlar. Geri gəlmisiniz. Bu CS50, bu həftə 9 başlanğıc. 5 00:00:12,350 --> 00:00:16,600 Bu gün biz C kontekstində artıq dizayn, xüsusilə də diqqət 6 00:00:16,600 --> 00:00:20,010 lakin PHP kontekstində və SQL bir bit və JavaScript bit, 7 00:00:20,010 --> 00:00:23,730 xüsusilə pset 7 həm də sona doğru və həmçinin yekun layihə. 8 00:00:23,730 --> 00:00:26,310 Əslində, əgər yekun layihə o nöqtədə var 9 00:00:26,310 --> 00:00:30,100 ehtimalla ən azı bir fikir vermək üçün açılmış bir saat və ya siz əvvəl kimi burada 10 00:00:30,100 --> 00:00:33,730 son layihə və siz 1 və ya 2 sinif yoldaşları ilə əməkdaşlıq etmək istədiyiniz düşünür istəyirsinizsə, 11 00:00:33,730 --> 00:00:36,150 ilə birləşdirən sorun qarşılaşdıqda, əgər sinif yoldaşları deyib 12 00:00:36,150 --> 00:00:40,570 cs50.net/partners/form da formasını doldurub çekinmeyin. 13 00:00:40,570 --> 00:00:42,880 Bu, sadəcə, siz haqqında düşünür istəyirsinizsə, layihənin nə cür kim isteyen 14 00:00:42,880 --> 00:00:44,870 yalnız texniki səbəblərdən yerləşir yaşayır. 15 00:00:44,870 --> 00:00:49,510 Və sonra, növbəti həftə və ya orada tablo URL üzərində bir göz saxlamaq istəyirsinizsə 16 00:00:49,510 --> 00:00:53,520 Əgər Google doc bir read-yalnız versiyası bilərsiniz 17 00:00:53,520 --> 00:00:56,010 biz ki, məlumat toplanması edirik. 18 00:00:56,010 --> 00:00:58,930 Əgər kimsə ilə işləmək istəyirik Belə ki, əgər bütün vasitələrlə insanlara çatmaq üçün çekinmeyin 19 00:00:58,930 --> 00:01:00,480 ki, mexanizm vasitəsilə. 20 00:01:00,480 --> 00:01:02,690 Lakin insanlar əksəriyyəti iş solo yoxdur. Bu tamamilə gözəl var. 21 00:01:02,690 --> 00:01:06,120 Beləliklə, bu məcburi bir şəkildə olduğunu hiss etmir. 22 00:01:06,120 --> 00:01:09,680 Cümə günü o, yalnız mənə və burada komandanın bir neçə idi 23 00:01:09,680 --> 00:01:11,100 hissəsi boş teatr. 24 00:01:11,100 --> 00:01:14,600 3 turistlər var qədər oturan ki, bir az yöndəmsiz idi belə. 25 00:01:14,600 --> 00:01:18,970 Biz nə danışdı bazaları və biz pset 7 bir az danışdı. 26 00:01:18,970 --> 00:01:22,200 Və yalnız hələ video ki tutmaq olmadı əgər ki, gözəl var. 27 00:01:22,200 --> 00:01:26,770 Mən verilən biz başqa edəcək hər hansı bir şərtləri müəyyən etmək üçün cəhd edəcəyik 28 00:01:26,770 --> 00:01:28,840 cümə mühazirə əsaslanır. 29 00:01:28,840 --> 00:01:32,550 >> Ancaq bu gün biz nöqtəsinə almaq üçün cəhd olacaq 30 00:01:32,550 --> 00:01:34,990 yalnız pset 7 kimi bir şey edə deyil 31 00:01:34,990 --> 00:01:37,360 lakin həqiqətən, başlıq altında neler anlaşma 32 00:01:37,360 --> 00:01:41,910 xüsusən biz functions.php fayl baş qoymaq ki abstractions bəzi 33 00:01:41,910 --> 00:01:45,780 Siz nəhayət başa düşürəm ki, sizin həyatını bir az daha asan, lakin 34 00:01:45,780 --> 00:01:48,760 təlim təkərlər bir neçə həftə off gələndə siz hələ yaşaya bilər ki, 35 00:01:48,760 --> 00:01:53,750 real dünyada və altında hər CS50 çərçivəsində bu stuff edin. 36 00:01:53,750 --> 00:01:57,500 Tanış olan sizin üçün $ _SESSION, 37 00:01:57,500 --> 00:02:01,960 yaxud artıq cümə günü video tutulan SESSİYASI bizə nə imkan vermir 38 00:02:01,960 --> 00:02:04,330 bir PHP-based web proqram? 39 00:02:04,330 --> 00:02:09,650 Bu GET və POST etmək ruhunda oxşar deməkdir superglobal dəyişən deyil 40 00:02:09,650 --> 00:02:13,970 və bir neçə digər, lakin bu şey faydalı nə üçün vacibdir? 41 00:02:13,970 --> 00:02:18,320 >> SESSİYASI nə üçün istifadə olunur? Bəli. [Tələbə] Giriş 42 00:02:18,320 --> 00:02:21,040 Bağışlayın? [Tələbə] Giriş Həqiqətən Giriş. 43 00:02:21,040 --> 00:02:25,100 Pset 7 ildə biz giriş asanlaşdırmaq üçün bu SESSİYASI superglobal istifadə etdiyiniz 44 00:02:25,100 --> 00:02:28,600 Və nə bu superglobal haqqında gözəl bir assosiativ array var ki. 45 00:02:28,600 --> 00:02:33,190 Assosiativ dizi, geri, yalnız bir sıra, lakin onların göstəriciləri artıq nömrələri olmalıdır 46 00:02:33,190 --> 00:02:37,670 012 bəyənir. Onlar nömrələr ola bilər və ya hətta strings ola bilər. 47 00:02:37,670 --> 00:02:44,890 Siz hələ pset 7 daxil dived sonra əgər ki, biz əsas deyilən ID saxlanılması ki, xatırlayıram bilər 48 00:02:44,890 --> 00:02:50,330 dəyəri 123 kimi bir şeydir bu assosiativ serialın içərisində - 49 00:02:50,330 --> 00:02:53,780 nə hazırda istifadəçi ID daxil edir. 50 00:02:53,780 --> 00:02:59,470 Bunun üçün motivasiya istifadəçi localhost olub sonra belə ki, 51 00:02:59,470 --> 00:03:02,720 və ya veb ümumiyyətlə və onlar daxil sonra, 52 00:03:02,720 --> 00:03:07,320 onlar bir link basın və ya 5 dəqiqə üçün səhifəsinə qayıtmaq bile 53 00:03:07,320 --> 00:03:10,730 və ya bir saat və ya hətta bir gün onlar brauzer pəncərəsində açıq tərk, hətta 54 00:03:10,730 --> 00:03:14,370 bu superglobal vasitəsilə onlar daxil olmamısınız ki, xatırlayıram 55 00:03:14,370 --> 00:03:21,140 >> Başqa sözlə, bu, mənə bir istifadəçi haqqında istədiyiniz qədər uzun müddətli bir şey saxlamaq üçün imkan verir. 56 00:03:21,140 --> 00:03:24,390 Və siz bir alış-veriş sepeti təcəssüm kimi, həqiqətən, hesab edə bilər. 57 00:03:24,390 --> 00:03:27,740 Amazon kimi yerlərdə açıq-aydın, bir alış-veriş sepeti daxil şeyi qoymaq bildirin 58 00:03:27,740 --> 00:03:32,230 lakin HTTP, protokol Web səlahiyyətləri, vətəndaşlığı olmayan ki, 59 00:03:32,230 --> 00:03:34,230 mənada ki, siz bir veb səhifəsinə zaman, 60 00:03:34,230 --> 00:03:37,290 hissəsi bəzi sabit şəbəkə bağlantısı yoxdur 61 00:03:37,290 --> 00:03:39,270 brauzerinizin və server arasında. 62 00:03:39,270 --> 00:03:42,190 HTML və JPEGs və gifs nazil bütün ki, olduğunuz kimi 63 00:03:42,190 --> 00:03:48,200 əlaqədar üz gedir və yalnız server HTML və etajer surəti var. 64 00:03:48,200 --> 00:03:53,000 Amma server haqqında bir şey yadda istəyirsə, 65 00:03:53,000 --> 00:03:57,580 yükünü həqiqətən ki, məlumat yazmaq üçün server edir. 66 00:03:57,580 --> 00:04:00,130 Və server nəzarət edən belə proqramçı 67 00:04:00,130 --> 00:04:04,400 bu superglobal assosiativ serialın içərisində istədiyiniz ən bir şey qoya bilər 68 00:04:04,400 --> 00:04:06,850 və o, orada istifadəçi geri gəlir növbəti dəfə olacaq 69 00:04:06,850 --> 00:04:12,070 bu dəqiqə var və ya hətta gün sonra, onlar öz browser window yaxın təqdirdə, olub- 70 00:04:12,070 --> 00:04:14,360 olan nöqtə SESSİYASI yox. 71 00:04:14,360 --> 00:04:17,779 Belə ki, efemer storage, bu qeyri-davamlı, ve getmək üçün nəzərdə edir 72 00:04:17,779 --> 00:04:22,360 istifadəçi öz browser bağlayan kimi - sadəcə ki, nişanı, tez-tez bütün brauzer, 73 00:04:22,360 --> 00:04:24,930 bununla da səmərəli istifadəçi çıkıyor. 74 00:04:24,930 --> 00:04:28,000 Belə ki, bu şey həqiqətən necə həyata keçirilir? 75 00:04:28,000 --> 00:04:31,360 Biz cümə günü baxdı bir sadə misal da tez nəzər salaq. 76 00:04:31,360 --> 00:04:33,340 O tanımadığı üçün, bu kimi sadə idi. 77 00:04:33,340 --> 00:04:35,910 Bu, yeganə məqsədi həyat mənə bir web səhifə 78 00:04:35,910 --> 00:04:38,000 neçə dəfə mən bu səhifə olmuşlar. 79 00:04:38,000 --> 00:04:41,670 Bu onu ziyarət Bazar ertəsi burada ilk dəfə, belə ki, 0 dəfə deyir. 80 00:04:41,670 --> 00:04:46,940 >> Amma bu səhifə yeniden başlamaq əgər, o, 1 dəfə, 2, 3, 4, 5 deyir 81 00:04:46,940 --> 00:04:49,800 və bu son nəticədə yalnız up,, up, səslərin sayılması üzrə davam edəcək 82 00:04:49,800 --> 00:04:53,130 hər dəfə mən, həqiqətən, bu barədə yenidən basın. 83 00:04:53,130 --> 00:04:58,830 Belə ki, bu iş necə? Mənə counter.php adlı fayl içərisində gedək. 84 00:04:58,830 --> 00:05:02,490 Bunun üst hissəsi bütün mavi şərh, lakin maraqlı hissəsi burada. 85 00:05:02,490 --> 00:05:06,670 Line 13-də biz bu funksiya video zəng, 86 00:05:06,670 --> 00:05:09,600 və sanki siz olmaq istəyirsinizsə, nə etmək lazımdır bütün 87 00:05:09,600 --> 00:05:13,610 Bu xüsusi superglobal _SESSION $ deyilən etmək. 88 00:05:13,610 --> 00:05:17,430 Bu mümkün olan bütün edir və biz bütün mümkün necə bir anda görəcəksiniz. 89 00:05:17,430 --> 00:05:20,350 Mən yapýyorum nə line 16 bildirişdə. 90 00:05:20,350 --> 00:05:25,960 Başqa sözlə, indeks dəyəri - - "əks" counter adlı düyməsini edin 91 00:05:25,960 --> 00:05:32,310 Mən aşağıdakı xətti ilə nə işim, sonra SESSİYASI adlı serialın içərisində var? 92 00:05:32,310 --> 00:05:36,650 Line 18 edir nədir? 93 00:05:36,650 --> 00:05:40,360 >> [Işitilemez tələbə cavab] Nə olub? [Tələbə] dəyəri saxlanması. Yaxşı. 94 00:05:40,360 --> 00:05:45,800 Bu, yeni bir yerli müvəqqəti dəyişən hazırda SESSİYASI var ki, dəyəri saxlanılması oldu 95 00:05:45,800 --> 00:05:48,250 Bütün kiçik dollar counter. 96 00:05:48,250 --> 00:05:50,770 PHP artıq burada bir az tənbəl olunur bildirək ki. 97 00:05:50,770 --> 00:05:55,550 Ki, int və ya float və ya simli və ya kimi bir şey heç bir qeyd yoxdur edək 98 00:05:55,550 --> 00:06:00,480 PHP zəif tipli, çünki elə, bir dəyişən növü bilersiniz yoxdur 99 00:06:00,480 --> 00:06:03,310 və burada bu halda mən hətta hələ elan etdik. 100 00:06:03,310 --> 00:06:08,980 Mən bu qıvrım aşırma daxilində bu elan edirəm və C fərqli olaraq, bu həqiqətən tamam. 101 00:06:08,980 --> 00:06:13,800 Dərin bir dəyişən beyanları iç içə necə olursa PHP edir - 102 00:06:13,800 --> 00:06:16,650 daxili daxili buruq brace və analoji buruq brace, bu - 103 00:06:16,650 --> 00:06:21,230 bu anda zaman, proqram qalan mövcud olacaq 104 00:06:21,230 --> 00:06:22,680 yaxşı və ya pis üçün. 105 00:06:22,680 --> 00:06:26,930 Belə ki, dərhal biz burada yapýyorsun kimi siz müəyyən kimi qlobal olur. 106 00:06:26,930 --> 00:06:31,620 >> Əks halda, əgər mən bir şey SESSİYASI superglobal var ki, tapmıram 107 00:06:31,620 --> 00:06:34,680 Mən yəqin, 0 Bu dəyişən counter başlatılıyor alıram 108 00:06:34,680 --> 00:06:37,580 bununla yalnız istifadəçi əvvəl burada heç bir hərfinin. 109 00:06:37,580 --> 00:06:40,030 Və sonra bu kurs necə əks incrementing olunur? 110 00:06:40,030 --> 00:06:44,480 Mən bu assosiativ serialın içərisində olan dəyər yenilənməsi alıram 111 00:06:44,480 --> 00:06:49,530 Hal-hazırda + 1 nə counter üçün bərabər yaradılması. 112 00:06:49,530 --> 00:06:53,520 Mən bu səhifənin HTML burada aşağı diyirləyin, bu, həqiqətən, olduqca sadə. 113 00:06:53,520 --> 00:06:58,920 Mən bu səhifə orqanı var Bütün, "Siz və belə dəfə site olmuşlar." Dir 114 00:06:58,920 --> 00:07:00,350 Və bu bir PHP tikinti edir. 115 00:07:00,350 --> 00:07:06,080 Əgər varsa 00:07:12,600 Bu, biz C dəfələrlə gördüm olan printf kimi bir şey, həqiqətən ekvivalent var 117 00:07:12,600 --> 00:07:15,940 siz pset 7-spec artıq bildiyiniz kimi, baxmayaraq ki, 118 00:07:15,940 --> 00:07:20,160 print da yalnız bir şey yazdıran bir funksiyası var, bu, həqiqətən, format kodları istifadə etmir 119 00:07:20,160 --> 00:07:23,270 və həqiqətən həmçinin echo demək olar. 120 00:07:23,270 --> 00:07:27,460 Xalis təsiri nəticədə eyni olsa Onlar heç belə az fərqli deyilik. 121 00:07:27,460 --> 00:07:31,270 Bu bu istifadə Bürc bərabərdir Belə ki, bunu bir zərif şəkildə yalnız növ 122 00:07:31,270 --> 00:07:34,910 daha müfəssəl şəkildə daha başqa ola bilər. 123 00:07:34,910 --> 00:07:38,370 Belə ki, bütün bu saytda yoxdur. Bu counter dəyəri çap edir. 124 00:07:38,370 --> 00:07:40,550 Bu, həqiqətən, necə baş verir? 125 00:07:40,550 --> 00:07:43,250 Siz bir həftə geri bilər və ya belə əvvəl biz başlıq altında axtarır başladı 126 00:07:43,250 --> 00:07:47,910 bir web səhifə bu inspektor sekmesini istifadə edərək işləyir necə. 127 00:07:47,910 --> 00:07:51,900 >> Chrome, Mac versiyası, Windows versiyası, hətta Linux versiyası bu həm var 128 00:07:51,900 --> 00:07:59,510 Bu daxili ayıklama var qovuşdurmağımız və Firefox və IE oxşar mexanizmləri var 129 00:07:59,510 --> 00:08:01,400 browser daxilində. 130 00:08:01,400 --> 00:08:03,040 Nin aşağıdakı nəzər salaq. 131 00:08:03,040 --> 00:08:06,960 Biz burada Nişanlar bütöv bir dəstə var və leftmost bir Elements ki, geri sonra 132 00:08:06,960 --> 00:08:10,700 və HTML və JavaScript səhifə necə godawful asılı olmayaraq, 133 00:08:10,700 --> 00:08:15,710 elementləri nişanı ilə həqiqətən hiyerarşik HTML gedin bilər ki, geri 134 00:08:15,710 --> 00:08:17,050 və gözəl və təmiz. 135 00:08:17,050 --> 00:08:19,370 Google və ya Facebook kimi web məlumat çalışdığınız əgər 136 00:08:19,370 --> 00:08:22,370 və ya, həqiqətən, hər hansı bir web, siz off yəqin ki, daha yaxşı olduğunu dərk 137 00:08:22,370 --> 00:08:26,360 mənbə kodu ilə xam mənbə görüntülerken fərqli olaraq bu yol axtarır, 138 00:08:26,360 --> 00:08:29,580 olan biz xüsusilə Google saytda gördüm kimi, bir mess ola bilər. 139 00:08:29,580 --> 00:08:32,220 Mən əvəzinə burada Network sekmesini basın əgər, 140 00:08:32,220 --> 00:08:34,830 Mən bu səhifə zaman neler görmek edək. 141 00:08:34,830 --> 00:08:38,669 Birinci mənim cache temizlemek bildirin. 142 00:08:38,669 --> 00:08:43,570 Mən Chrome Ayarları daxil və sonra tarixi getmək üçün gedirəm 143 00:08:43,570 --> 00:08:46,420 və sonra bütün gəzən data sil. 144 00:08:46,420 --> 00:08:48,170 Siz digər məqsədlər üçün bunu etmək üçün istifadə edilə bilər, [gülüş] 145 00:08:48,170 --> 00:08:51,990 lakin bu inkişaf saytları gəldikdə, bu, həqiqətən faydalıdır - 146 00:08:51,990 --> 00:08:55,980 Əgər laughing edirsinizsə bilirsiniz. [Gülüş] 147 00:08:55,980 --> 00:08:59,310 Web inkişaf zaman reallıqdır, çünki həqiqətən həqiqətən faydalı 148 00:08:59,310 --> 00:09:04,100 cached HTML faylları yaddaşdakı JavaScript faylları kimi cookies və əşyalar kimi şeylər 149 00:09:04,100 --> 00:09:06,390 həqiqətən böyük bir baş ağrısı ola bilər, çünki əgər hər hansı səbəbdən 150 00:09:06,390 --> 00:09:11,500 brauzer bir fayl önbelleğe qərar və hələ siz server fayl dəyişikliklər etdik 151 00:09:11,500 --> 00:09:14,670 lakin browser həqiqətən fayl dəyişib ki yoxdur 152 00:09:14,670 --> 00:09:19,060 Siz Reload düyməsinə basın hətta və buna görə də həqiqətən, yenidən download deyil 153 00:09:19,060 --> 00:09:23,210 yalnız günah sizin kodu ilə deyil əmin etmək üçün ən surefire yollarından biri, 154 00:09:23,210 --> 00:09:26,480 bu brauzer davranış ile, brauzerinizin, burada getmək 155 00:09:26,480 --> 00:09:29,950 heç bir qarışıqlıq var ki, və yalnız bütün tarixi sil. 156 00:09:29,950 --> 00:09:33,210 >> Həqiqətən, paranoid olmaq istəyirsinizsə və sonra, brauzer çıxın, o, yenidən başladın 157 00:09:33,210 --> 00:09:35,660 və sonra gözlənildiyi kimi bütün iş əmin olun. 158 00:09:35,660 --> 00:09:38,820 Inkişaf edərkən Belə ki, qısa, klirinq cache yaxşıdır. 159 00:09:38,820 --> 00:09:40,690 Belə ki, burada biz Network nişanı var. 160 00:09:40,690 --> 00:09:46,020 Mən əvvəllər site 9 dəfə olmuşdur, lakin mənə indi davam və Reload basın imkan idi. 161 00:09:46,020 --> 00:09:47,500 Mən geri aşağı 0 edirəm. 162 00:09:47,500 --> 00:09:52,100 Nin həqiqətən bu SESSİYASI superglobal həyata keçirilir ki, necə edək. 163 00:09:52,100 --> 00:09:55,990 Mən edilmişdir ki, 1 HTTP request basın gedirəm 164 00:09:55,990 --> 00:09:58,810 və bu hata pəncərə mənə daxilində baxmaq imkanı verir. 165 00:09:58,810 --> 00:10:01,970 Burada maraqlı olmayan server, yalnız cavab baxın. 166 00:10:01,970 --> 00:10:04,030 Mən yolları istənilən sayda bu gördük. 167 00:10:04,030 --> 00:10:06,350 Amma nə texniki maraqlı mövzular var. 168 00:10:06,350 --> 00:10:11,770 Burada aşağı diyirləyin və tələbi mövzular diqqət və görünüşü mənbə basın 169 00:10:11,770 --> 00:10:14,400 nə mən gedirəm sanki HTTP tələb edir 170 00:10:14,400 --> 00:10:17,250 ki, yalnız mənim brauzerinizin server getdi 171 00:10:17,250 --> 00:10:21,400 Operativ sözü olan GET və sonra / counter.php fayl adı olan, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 yalnız mənim browser istifadə edir ki, HTTP buraxılış olan. 173 00:10:25,670 --> 00:10:31,070 Burada Bu xətt server adı nə browser server bir az öyüd-nəsihətdir 174 00:10:31,070 --> 00:10:33,020 ona danışmaq istəyir. 175 00:10:33,020 --> 00:10:38,200 Və sonra bu istirahət hazırda müvafiq bəzən maraqlı, lakin deyil. 176 00:10:38,200 --> 00:10:40,090 >> Bu maraq yalnız növüdür. 177 00:10:40,090 --> 00:10:43,530 Bu simli olsa sirli hər zaman brauzerinizin bir web olub 178 00:10:43,530 --> 00:10:47,110 siz istifadə etdiyiniz brauzer server məlumat verilir 179 00:10:47,110 --> 00:10:50,040 və istifadə və nə onların versiyası etdiyiniz əməliyyat sistemi. 180 00:10:50,040 --> 00:10:52,650 Əgər CNN və etajer kimi necə saytları merak etdiyiniz əgər 181 00:10:52,650 --> 00:10:56,860 Faizlərin Web, PC istifadəçi Mac istifadəçilərinin nə bilirik, 182 00:10:56,860 --> 00:11:00,820 IE istifadəçilər Chrome istifadəçiləri və kimi, bu, çünki bizim brauzerlərdə bütün 183 00:11:00,820 --> 00:11:04,300 Biz nə orada hər bir veb izah olunur. 184 00:11:04,300 --> 00:11:07,410 Bu mütləq kişisel məlumat yoxdur 185 00:11:07,410 --> 00:11:13,060 lakin nə IP ünvan istifadə etdiyiniz brauzer və OS və server demək deyil. 186 00:11:13,060 --> 00:11:14,720 Bu məlumat harada ki var. 187 00:11:14,720 --> 00:11:19,960 Bu sessiyanın gəldikdə Amma nə cavab header indi daha maraqlı edir. 188 00:11:19,960 --> 00:11:22,530 Mənə cavab yanında mənbəyinə basın edək. 189 00:11:22,530 --> 00:11:24,590 Burada maraqlı bir neçə şey var. 190 00:11:24,590 --> 00:11:27,580 1, biz 200 statusu kodu geri almışdır. 191 00:11:27,580 --> 00:11:29,840 Bütün yaxşı deməkdir, çünki Biz bu durum kodu görmək heç vaxt. 192 00:11:29,840 --> 00:11:32,920 Bu başqa bir şey fərqli olaraq sözün tamam deməkdir. 193 00:11:32,920 --> 00:11:36,380 Biz bəzən pis ki, bir sıra nədir? [Tələbə] 404. 194 00:11:36,380 --> 00:11:39,860 404, fayl tapılmadı, 403, siz artıq ilə büdrəmə bilər 195 00:11:39,860 --> 00:11:43,660 qadağan edən hansı chmod bir şey, çox güman unuttum deməkdir. 196 00:11:43,660 --> 00:11:45,190 Və digər bir dəstə var. 197 00:11:45,190 --> 00:11:47,760 >> Down burada, bu bir az dəli edir. 198 00:11:47,760 --> 00:11:52,340 Mən, həqiqətən, yalnız gedit onu sovuşdurmaq bir neçə dəqiqə əvvəl bu fayl yazdı. 199 00:11:52,340 --> 00:11:57,100 Həqiqətən Web idi əvvəl Niyə bu səhifə 1981-ci ildə başa idi? 200 00:11:58,010 --> 00:12:00,730 Nə olub? 201 00:12:00,730 --> 00:12:04,390 >> [Işitilemez tələbə cavab] vaxt möhürü. Amma niyə? 202 00:12:06,110 --> 00:12:09,120 Bu qədər əsassız, ancaq həqiqətən faydalıdır. 203 00:12:09,120 --> 00:12:15,500 Bu mənim brauzerinizin deyib yalnız artıq başa çatdığını xahiş etdik bu PHP fayl. 204 00:12:15,500 --> 00:12:18,580 Əslində, bu, 30 il əvvəl başa çatıb. 205 00:12:18,580 --> 00:12:20,260 Amma həqiqətən nə deməkdir? 206 00:12:20,260 --> 00:12:22,500 Bu, sadəcə, istifadəçi bu səhifə səfər növbəti dəfə deməkdir 207 00:12:22,500 --> 00:12:25,540 olub ünvan bölməsinə URL yeniden və ya yazaraq, 208 00:12:25,540 --> 00:12:28,010 Siz getmək və yeni bir kopyasını almaq əmin olun. 209 00:12:28,010 --> 00:12:30,840 Bu, cache busting bir nümunə növ 210 00:12:30,840 --> 00:12:33,790 yalnız tarayıcılar mane çalışır deməkdir ki, bir axmaq söz 211 00:12:33,790 --> 00:12:37,260 həqiqətən caching HTML ki, bir server göndərilən edilmişdir 212 00:12:37,260 --> 00:12:41,490 siz təsadüfən yenidən basın və sonra fayl eyni versiyası görmürəm ki. 213 00:12:41,490 --> 00:12:43,730 Siz, həqiqətən, yeni bir kopyasını göndərmək üçün server istəyirəm. 214 00:12:43,730 --> 00:12:47,440 Belə ki, 1981 var ki, yalnız ki Aracın seçilməsi nə deməkdir 215 00:12:47,440 --> 00:12:50,280 keçmişdə bir ixtiyari tarixi kimi. 216 00:12:50,280 --> 00:12:53,380 Lakin real şirəli xətt artıq bu biridir. 217 00:12:53,380 --> 00:12:57,550 Hətta 50 əvvəl yəqin cookies ilə yayğın tanış edirik. 218 00:12:57,550 --> 00:13:01,820 Kimi hazırda, xüsusilə də az rahat və ya arasında olanların arasında, 219 00:13:01,820 --> 00:13:04,120 sizin anlaşma bir cookie indi nə 220 00:13:04,120 --> 00:13:06,980 biz anlaşma daha çox texniki etmək haqqında olmalarına baxmayaraq? 221 00:13:08,150 --> 00:13:10,070 Çerez nedir? Bəli. 222 00:13:10,070 --> 00:13:13,890 [Tələbə] istifadəçi haqqında məlumat, onlar öz istifadəçi adı və ya bir şey yazdıq əgər istəyirəm. 223 00:13:13,890 --> 00:13:17,370 >> Yaxşı. Onlar artıq öz istifadəçi adı çap etdik olub, istifadəçi haqqında məlumat var. 224 00:13:17,370 --> 00:13:21,190 Cookie server bir istifadəçi haqqında bir şey yadda bilər qovuşdurmağımız bir yoldur. 225 00:13:21,190 --> 00:13:25,810 Və nə cookie həqiqətən bir mətn faylı və ya bytes bəzi ardıcıllıqla deyil 226 00:13:25,810 --> 00:13:28,340 ki, sizin browser daxilində server tərəfindən əkilmiş oldu 227 00:13:28,340 --> 00:13:31,960 və içərisində bir fayl və ya bytes arasında tanıdan bir növ edir. 228 00:13:31,960 --> 00:13:35,640 Bəlkə sözün istifadəçi adı, lakin daha tez-tez daha sirli görünüşlü bir şey var 229 00:13:35,640 --> 00:13:43,700 bo8dal3ct və s - - bu, həqiqətən böyük alfasayısal string burada bu şey kimi 230 00:13:43,700 --> 00:13:47,050 ki, həqiqətən yalnız sizin üçün benzersiz bir tanıdan üçün nəzərdə edir. 231 00:13:47,050 --> 00:13:49,790 Və ya bir virtual əl Markanın sort kimi hesab edə bilər. 232 00:13:49,790 --> 00:13:53,020 Əgər həqiqətən ödedim unutmayın ki, bəzi klub və ya bir oyuncaq park getmək Əgər 233 00:13:53,020 --> 00:13:55,850 və getdi, onlar bir növ sizin tərəfdən bir az qırmızı etiket qoymaq 234 00:13:55,850 --> 00:13:59,270 və artıq ödənilmiş etdiyiniz əks olan insanlar xatırladır 235 00:13:59,270 --> 00:14:01,340 və gəlmək və istədiyin kimi davam edə bilər. 236 00:14:01,340 --> 00:14:04,250 Cookie ruhunda ki, bir az oxşardır. 237 00:14:04,250 --> 00:14:08,070 Mən yalnız mənim önbelleğini temizlemenizi sonra olduğu kimi ilk dəfə mən, bu ziyaret 238 00:14:08,070 --> 00:14:11,620 web server, bu halda cihaz, mənim tərəfdən möhür qoymaq 239 00:14:11,620 --> 00:14:15,030 onun adı PHPSESSID ki, sessiya ID, 240 00:14:15,030 --> 00:14:18,260 Bu, həqiqətən uzun alfasayısal simli olan dəyərdir. 241 00:14:18,260 --> 00:14:22,470 >> Belə ki, mənim tərəfdən indi yüzünde növ belə mən edib, növbəti dəfə yenidən ki, 242 00:14:22,470 --> 00:14:25,230 ya əl, bir brauzerinizin bu URL ziyarət 243 00:14:25,230 --> 00:14:29,230 HTTP müəyyənləşdirilməsinin mənim browser əl möhürü təqdim edir 244 00:14:29,230 --> 00:14:31,940 təkrar və yenidən. 245 00:14:31,940 --> 00:14:34,550 Belə ki, hətta server mütləq, mən kim bilmir 246 00:14:34,550 --> 00:14:39,610 onlar ən azı mən ən azı, xüsusilə eyni istifadəçi və ya eyni brauzer Ben bilirik. 247 00:14:39,610 --> 00:14:45,660 Və bu SESSİYASI superglobal həyata necə nəhayət edir. 248 00:14:45,660 --> 00:14:51,200 Bu server, ikinci üçün bir haqqinda və ya üçüncü dəfə yenidən zaman olan heç bir fikrim yoxdur 249 00:14:51,200 --> 00:14:53,410 Bu əl möhürü təqdim halda. 250 00:14:53,410 --> 00:14:55,530 Və tez əl möhürü təqdim kimi, 251 00:14:55,530 --> 00:14:59,370 web server mahiyyətcə öz bir az bazasında gedir 252 00:14:59,370 --> 00:15:06,040 və çekləri, tamam, yalnız s istifadəçi bo8dal3ct əli möhürü görüldü və var. 253 00:15:06,040 --> 00:15:09,850 Mənə proqramçı saxlanılır nə məlumat görək 254 00:15:09,850 --> 00:15:12,380 Bu istifadəçi haqqında superglobal daxilində, 255 00:15:12,380 --> 00:15:17,000 və sonra mənə data superglobal iclasında daxilində daha əmin edək 256 00:15:17,000 --> 00:15:19,830 proqramçı məlumatların yenidən daxil ola bilərsiniz ki, 257 00:15:19,830 --> 00:15:23,360 o bir neçə dəqiqə və ya saat əvvəl yaradılıb belə. 258 00:15:23,360 --> 00:15:26,150 Bir müddət üçün pis rap alan Belə Başqa sözlə, peçenye, 259 00:15:26,150 --> 00:15:29,990 çünki brauzerlərdə insecurities və onlar, həqiqətən, gizlilik və bütün bu pozan bilər 260 00:15:29,990 --> 00:15:31,900 onlar həqiqətən çünki onlara olmadan böyük kommunal var 261 00:15:31,900 --> 00:15:36,110 siz daim baxın hər Facebook səhifəsinə giriş olunacaq 262 00:15:36,110 --> 00:15:40,680 Brauzer xatırlayaraq bəzi yol olmasaydı oxumaq və ya hər Gmail e-poçt 263 00:15:40,680 --> 00:15:43,320 Əgər siz artıq təsdiq etdik ki. 264 00:15:43,320 --> 00:15:46,640 >> Belə ki, bu yolla cookies tel arasında geri və irəli göndərilir. 265 00:15:46,640 --> 00:15:52,470 Cookies haqqında başqa bir maraq, xüsusilə burada, bu cleartext tamamilə olmasıdır. 266 00:15:52,470 --> 00:15:54,930 Heç burada heç bir şifreleme, var 267 00:15:54,930 --> 00:15:57,240 və həqiqətən mən hazırda HTTP istifadə edirəm. 268 00:15:57,240 --> 00:16:00,890 İndi 2 il əvvəl olan CS50 bizim Seçilmişlərə məqamlardan biri, 269 00:16:00,890 --> 00:16:04,750 vaxt ətrafında Firesheep adlı alət çıxdı edilib. 270 00:16:04,750 --> 00:16:08,320 Bu təhlükəsizlik tədqiqatçısı olmuşdur ki, bir proqram pulsuz parça oldu 271 00:16:08,320 --> 00:16:13,250 icma üçün wake-up call ermənilər tərəfindən xüsusi amansızlıqla həyata necə demək kimi 272 00:16:13,250 --> 00:16:17,900 Web müəyyən identifikasiyası mexanizmlərinin idi. 273 00:16:17,900 --> 00:16:22,880 Belə ki, bir müddət, Facebook HTTP, HTTPS heç bir artıq demək olar ki, tamamilə idi. 274 00:16:22,880 --> 00:16:25,640 Və siz kripto necə heç bir fikrim yoxdur, hətta, S təhlükəsiz 275 00:16:25,640 --> 00:16:27,950 belə ki, ən azı bir şifreleme cəlb var deməkdir. 276 00:16:27,950 --> 00:16:30,610 Facebook, istifadəçi adı və parol şifrelemek üçün istifadə etməyib 277 00:16:30,610 --> 00:16:33,560 , ancaq tezliklə siz baxdı kimi pokes ya mesaj və ya news feed 278 00:16:33,560 --> 00:16:35,360 ki, bütün unencrypted edilib. 279 00:16:35,360 --> 00:16:37,870 Belə ki, yalnız bir il və ya əvvəl 2 qədər Gmail idi. 280 00:16:37,870 --> 00:16:41,100 Siz daxil hər zaman, bəli, onlar, təhlükəsiz şifreleme istifadə 281 00:16:41,100 --> 00:16:44,300 amma bundan sonra onlar yox idi. Və nə ola bilər? 282 00:16:44,300 --> 00:16:49,210 Niyə yalnız vaxt bütün bu kimi istifadə hallarda Kriptoqrafiya istifadə? 283 00:16:49,210 --> 00:16:53,700 Nə olub? Mən bir şey eşitdim edirəm. [Tələbə] speed. 284 00:16:53,700 --> 00:16:56,250 Speed, sağ? Bu ətrafında yolları var. 285 00:16:56,250 --> 00:16:59,610 Yalnız növ, məntiqi bu barədə düşünmək Amma əgər siz, bir şey şifrelemek əgər 286 00:16:59,610 --> 00:17:01,820 ən azı bir az daha çox iş var. 287 00:17:01,820 --> 00:17:05,460 Pset 2 siz Sezar və ya Vigenere həyata və ya hətta Crack zaman, 288 00:17:05,460 --> 00:17:07,760 yalnız simli çap nisbətən asandır. 289 00:17:07,760 --> 00:17:12,040 Şifreleme və sonra minimal simli çap bir az daha çox iş tələb edir. 290 00:17:12,040 --> 00:17:14,520 >>  Google və Facebook kimi super məşhur saytları üçün, 291 00:17:14,520 --> 00:17:18,839 , onlar ziyarət hər bir veb səhifə üçün hər bir istifadəçi üçün daha çox iş var, əgər 292 00:17:18,839 --> 00:17:20,520 yalnız daha CPU zaman alır. 293 00:17:20,520 --> 00:17:22,920 Daha çox CPU vaxt lazımdır, əgər siz, daha çox server lazımdır 294 00:17:22,920 --> 00:17:24,270 sizə daha çox pul lazımdır deməkdir. 295 00:17:24,270 --> 00:17:27,579 Və bir çox ildir ki, bu, həqiqətən ən yaxşı təcrübə deyil. 296 00:17:27,579 --> 00:17:31,440 İnsanlar üçün lazım yalnız SSL şifreleme istifadə edir. 297 00:17:31,440 --> 00:17:34,960 Lakin, çıxdı, və Firesheep bu yoldaş kimi super aydın 298 00:17:34,960 --> 00:17:37,920 zaman hazırda Facebook-hazırda olan uşaqlar - 299 00:17:37,920 --> 00:17:39,880 Maraq Out, siz fess bilərsiniz əgər in görək. 300 00:17:39,880 --> 00:17:42,620 Bu foregrounded deyil, hətta əgər siz, hazırda bəzi nişanı Facebook edirsinizsə, 301 00:17:42,620 --> 00:17:46,610 URL HTTP və ya HTTPS edir? 302 00:17:46,610 --> 00:17:50,560 [Çox tələbə] S. S? [Gülüş] 303 00:17:50,560 --> 00:17:55,510 Okay. Hər hansı bir HTTP? Yalnız 1? Okay. 304 00:17:55,510 --> 00:17:58,940 Belə ki, hamımız indi ki, oğlan Facebook hesabı hack edə bilərsiniz. 305 00:17:58,940 --> 00:18:04,100 Əksər hissəsi üçün bu ən azı bəzi saytlarda, default tərəfindən açıq olmuşdur. 306 00:18:04,100 --> 00:18:08,120 Və uzun hekayə qısa, web trafik şifrelenmiş deyilsə, 307 00:18:08,120 --> 00:18:12,960 yalnız HTML, unencrypted də WiFis arasında geri və irəli getmək deyil 308 00:18:12,960 --> 00:18:16,760 belə cookies kimi şeylər hava ərzində geri və irəli getmək yoxdur 309 00:18:16,760 --> 00:18:18,940 şifreleme hər hansı formada olmadan. 310 00:18:18,940 --> 00:18:23,540 Yalnız proqramlaşdırma fərasət bir az və ya bacarıqları Googling bir az varsa 311 00:18:23,540 --> 00:18:27,410 bu ki, pulsuz proqram tapmaq üçün, siz bütün Starbucks oturub olunur 312 00:18:27,410 --> 00:18:30,680 ümumiyyətlə WiFi var unencrypted yerdə və ya hava limanında oturmaq 313 00:18:30,680 --> 00:18:36,070 və ya PHPSESSID: yalnız Set-Cookie kimi açar sözlər, üçün baxın 314 00:18:36,070 --> 00:18:39,300 Siz texniki fərasət varsa, yalnız WiFi izləmək çünki 315 00:18:39,300 --> 00:18:43,010 bu model üçün hava boyunca axını bit üçün, 316 00:18:43,010 --> 00:18:50,840 Əgər oğlan nin PHPSESSID bo8dal və s olur deyə bilərəm. 317 00:18:50,840 --> 00:18:53,890 Və sonra, siz kifayət qədər texniki fərasət etdiyiniz və ya sağ alət varsa 318 00:18:53,890 --> 00:18:58,890 Əgər yalnız reconfigure öz browser əl möhürü təqdim başlamaq bilər 319 00:18:58,890 --> 00:19:05,030 Facebook.com və Facebook yalnız siz ki, oğlan olduğunu güman edir 320 00:19:05,030 --> 00:19:09,880 Onlar bütün sizin kim deyil, siz bu unikal identifikatoru var. çünki 321 00:19:09,880 --> 00:19:14,650 Ki, unikal identifikatoru oğurlamaq və öz kimi web server təqdim Belə ki, əgər 322 00:19:14,650 --> 00:19:16,860 Onlar yalnız siz şəxsin news feed göstərmək üçün gedir 323 00:19:16,860 --> 00:19:18,980 və ya şəxsin mesajları və ya pokes. 324 00:19:18,980 --> 00:19:23,190 >> Mən bəlkə də Facebook üçün HTTPS aktivləşdirmək üçün necə indi Google olardı. 325 00:19:23,190 --> 00:19:25,150 Amma həqiqətən kimi sadə deyil. 326 00:19:25,150 --> 00:19:27,660 Və Facebook və Google və kimi, bu da həqiqətən yaxşı kazanılmış 327 00:19:27,660 --> 00:19:31,870 lakin HTTP istifadə etmir baxın hansı web saytları üçün bütün daha bir göz saxlamaq 328 00:19:31,870 --> 00:19:35,020 və onlara həssas informasiya bir növ, 329 00:19:35,020 --> 00:19:37,490 maliyyə və ya şəxsi var və ya bu kimi olub. 330 00:19:37,490 --> 00:19:43,180 Bu istifadə edirsinizsə, çox bəlkə bu kimi cookies çox asanlıqla oğurlanmış ola bilər 331 00:19:43,180 --> 00:19:46,270 və sonra saxta və dəqiq Firesheep nə var. 332 00:19:46,270 --> 00:19:48,250 Siz bir proqramçı olmaq yoxdur. 333 00:19:48,250 --> 00:19:51,680 İnternet bağlantısı, bu pulsuz aracı yukle nə idi Bütün oldu 334 00:19:51,680 --> 00:19:56,490 daxil və sonra siz Facebook adları göstərmək olardı və nə edəcəyini edir 335 00:19:56,490 --> 00:20:00,170 Əgər ətrafında bu nümayişdə Sanders ilə hər kəsin, 336 00:20:00,170 --> 00:20:03,260 onların adını basın və proqram prosesi avtomatlaşdırılmış və nə idi bütün edildi 337 00:20:03,260 --> 00:20:05,970 ki, cookie koklama öz kimi Facebook üçün təqdim 338 00:20:05,970 --> 00:20:07,990 və voiture, siz daxil etdiyiniz 339 00:20:07,990 --> 00:20:11,190 Belə ki, bu insanların başqa biri rəsmən "bu deyil". 340 00:20:11,190 --> 00:20:14,660 Öz ev şəbəkə və siz misgər istəyirsinizsə, bütün vasitələrlə, 341 00:20:14,660 --> 00:20:17,530 lakin bu bir universitet ətraf mühitə line keçmək yoxdur bilirik. 342 00:20:17,530 --> 00:20:20,030 >> Amma burada məqsəd bu deyil necə qeyd etmək həqiqətən 343 00:20:20,030 --> 00:20:22,320 lakin şeyi bu cür qarşı müdafiə etmək necə. 344 00:20:22,320 --> 00:20:26,180 Özünü qüsurlu olsa burada və mənasız həlli, 345 00:20:26,180 --> 00:20:31,360 həqiqətən davamlı HTTPS istifadə edərək hər hansı sites istifadə azaltmaq üçün. 346 00:20:31,360 --> 00:20:34,520 Belə ki, Facebook və Google kimi saytlar getdikcə onay var 347 00:20:34,520 --> 00:20:36,200 yerləşir, siz şey bu cür etmək üçün seçə bilərsiniz 348 00:20:36,200 --> 00:20:40,000 və bankların oxşar səbəblərdən ildir bu idi. 349 00:20:40,000 --> 00:20:43,580 Belə bir qorxu amil biz əgər bir az. Lakin özetle bu. 350 00:20:43,580 --> 00:20:46,420 Bu server sizin kim xatırlayır necə. 351 00:20:46,420 --> 00:20:50,760 Və onlar kim xatırlamaq kimi, onlar haqqında bir şey xatırlayıram 352 00:20:50,760 --> 00:20:56,140 proqramçı _SESSION $ adlanan bu xüsusi superglobal daxilində saxlanılır ki. 353 00:20:56,140 --> 00:20:59,750 Və pset 7, biz yalnız bir int yadda trivially istifadə etdiyiniz 354 00:20:59,750 --> 00:21:02,260 daxil edən istifadəçi məhz unikal ID, 355 00:21:02,260 --> 00:21:05,880 biz bilirik ki, onlar əvvəl orada oldum. 356 00:21:05,880 --> 00:21:12,450 Sonra sessiyalar və ya cookies və ya kimi hər hansı suallar? 357 00:21:12,450 --> 00:21:15,130 Firesheep artıq həmçinin iş deyil 358 00:21:15,130 --> 00:21:18,310 və bir xüsusi gecelik rejimi sizin kompüter qoymaq üçün 359 00:21:18,310 --> 00:21:20,700 siz həqiqətən özünüzə başqa trafik dinləmək edirik. 360 00:21:20,700 --> 00:21:23,940 Hal-hazırda Firesheep indirme istəyirsinizsə Belə ki, bu, olduqca asan var həyata 361 00:21:23,940 --> 00:21:26,850 bir dəfə nümayiş etdirmək idi. 362 00:21:26,850 --> 00:21:29,070 Bütün hüquqlar. Və Sanders bunu etmir. Evdə etməyin. 363 00:21:29,070 --> 00:21:30,890 Databases. 364 00:21:30,890 --> 00:21:33,580 Biz çox qəsdən pset 7 etdiyi şeylərdən biri 365 00:21:33,580 --> 00:21:37,780 biz bəzi istifadəçi kimlikleri ki, istifadəçilər üçün bir nümunə bazası masa vermək edilib 366 00:21:37,780 --> 00:21:41,020 orada bir istifadəçi adı və bəzi şifrelenmiş parol. 367 00:21:41,020 --> 00:21:44,520 Görürsünüz kimi artıq deyil varsa, siz cədvəldə bir az dəyişdirmək üçün olacaq. 368 00:21:44,520 --> 00:21:47,710 Siz ki, cədvəldə istifadəçilər hər bir cache əlavə etmək olacaq 369 00:21:47,710 --> 00:21:51,130 və başqa tarix masa, bir portfeli masa əlavə etmək olacaq 370 00:21:51,130 --> 00:21:53,310 və ya bəlkə də başqa bir şey çağırırıq. 371 00:21:53,310 --> 00:21:56,740 Amma bu necə düşünür baxımından, bu alət açmaq bildirin 372 00:21:56,740 --> 00:22:00,570 olan biz cümə istifadə, lakin tanımadığı halda, cihaz bir alət ilə gəlir 373 00:22:00,570 --> 00:22:04,680 , coincidentally PHP yazılı olan phpMyAdmin adlı 374 00:22:04,680 --> 00:22:07,950 amma həyat onun məqsədi, mən allıq ilə jharvard kimi burada daxil sonra, 375 00:22:07,950 --> 00:22:15,160 mənim bazası görüntü və dəyişən bir istifadəçi dostu yol verməkdir. 376 00:22:15,160 --> 00:22:18,040 >> Mən cihaz çalışan alıram ki, verilənlər bazası MySQL adlanır. 377 00:22:18,040 --> 00:22:23,420 Bu çox məşhur və istifadə etmək gözəl asan bir pulsuz açıq mənbə məlumat bazası var 378 00:22:23,420 --> 00:22:25,620 qarşısında bu kimi başa xüsusən ilə. 379 00:22:25,620 --> 00:22:29,350 Bu alət mənə imkan verir nə, məsələn, masa ətrafında poke edir. 380 00:22:29,350 --> 00:22:30,890 Mənə irəli getmək və bunu edək. 381 00:22:30,890 --> 00:22:36,580 Cümə günü biz super sadə idi ki, tələbələr adlı masa yaratmışdır. 382 00:22:36,580 --> 00:22:41,680 Id, adı və e-poçt - - Bu 3 sütun var idi və mən əl satır bir neçə daxil 383 00:22:41,680 --> 00:22:44,420 bu nümunə David və Mike kimi. 384 00:22:44,420 --> 00:22:47,290 Bu bir az daha edək və biz daha xatırlamaq istəyirəm ki, güman edək 385 00:22:47,290 --> 00:22:49,660 çox istifadəçi haqqında yalnız adı və e-poçt. 386 00:22:49,660 --> 00:22:53,090 Mənə üst burada Struktur qədər basın edək. 387 00:22:53,090 --> 00:22:55,440 Və yenə pset, burada lazımi addımlar vasitəsilə siz dolaşır 388 00:22:55,440 --> 00:22:58,150 Bu, bəzi bir az tez əgər belə narahat etmir. 389 00:22:58,150 --> 00:22:59,690 Sonra burada basın gedirəm. 390 00:22:59,690 --> 00:23:02,270 E-poçt sonra sütun bir sıra əlavə gedirəm 391 00:23:02,270 --> 00:23:04,130 Mən ev kimi bir şey əlavə etmək istəyirəm, çünki. 392 00:23:04,130 --> 00:23:06,640 Mən tələbə evində qeyd unuttum. 393 00:23:06,640 --> 00:23:11,400 Mənə tıklatın edək, indi biz təəssüf ki, soldan sağa bir az geniş ki, bu formada 394 00:23:11,400 --> 00:23:13,710 amma, bu sahədə ev adını zəng etmək üçün gedirəm 395 00:23:13,710 --> 00:23:16,050 və sonra növü İndi seçmək lazımdır. 396 00:23:16,050 --> 00:23:18,870 Belə edək MySQL müxtəlif növləri haqqında qısa bir bir chat var 397 00:23:18,870 --> 00:23:24,590 çünki PHP zəif tipli və sort sürətli və növləri ilə boş oynayır halbuki, 398 00:23:24,590 --> 00:23:29,430 bir verilənlər bazası, xüsusilə bu, həqiqətən, sizin xeyrinə yazaraq istifadə super vacibdir 399 00:23:29,430 --> 00:23:33,260 şeyi MySQL və digər verilənlər bazası mühərrikləri biri sizin üçün nə edə, çünki 400 00:23:33,260 --> 00:23:37,910 sizin bazasında saxta data qoymaq deyil ki, təmin edir. 401 00:23:37,910 --> 00:23:41,850 Bu sizin üçün mövcud yoxlanılması pulsuz səhv sortudur. 402 00:23:41,850 --> 00:23:46,250 >> Ev üçün açıq-aydın o MySQL bir 32-bit dəyəri olan bir int olmaq istəmirəm. 403 00:23:46,250 --> 00:23:49,810 Biz char dəyişən uzunluğu duran varchar barədə cümə günü qısaca danışmaq etdi. 404 00:23:49,810 --> 00:23:54,720 Bu nədir? Bu, bu bir növ bir simli olmaq istəyirəm ki, müəyyən etmək üçün imkan verir. 405 00:23:54,720 --> 00:23:56,840 Siz, həqiqətən, nə qədər uzun əvvəlcədən bilmirəm 406 00:23:56,840 --> 00:24:00,100 biz özbaşına, ev adı 255 simvol ola bilər demək lazımdır 407 00:24:00,100 --> 00:24:04,190 amma siz 32, 64 ilə getmək bilər - hər hansı bir sayı həqiqətən. 408 00:24:04,190 --> 00:24:10,700 Amma char adlı sahəsində bir varchar istifadə üstünlüyü nədir? 409 00:24:10,700 --> 00:24:15,110 Burada aşağı diyirləyin Yalnız daxilən əgər, karakter var və varchar var bildiriş. 410 00:24:15,110 --> 00:24:19,520 Varchar char dəyişən uzunluğu; char char sabit uzunluğu. 411 00:24:19,520 --> 00:24:24,730 Belə ki, yalnız müəyyən əsasında nə bu hər üstünlüyü və ya əlverişsiz var? 412 00:24:24,730 --> 00:24:30,490 Başqa sözlə, olan fərq haqqında qayğı, və ya nə qayğı lazımdır? 413 00:24:31,660 --> 00:24:35,750 >> Bəli. [Tələbə] Varchar daha çox rahatlıq var, ancaq daha çox yaddaş tutur. 414 00:24:35,750 --> 00:24:40,730 Yaxşı. Varchar daha çəkir - Bakalým. Mən doğru eşitdim əgər əmin deyiləm. 415 00:24:40,730 --> 00:24:42,360 Bir daha demək olarmı? 416 00:24:42,360 --> 00:24:45,850 [Tələbə] Mən varchar yəqin ki, daha çox rahatlıq var, ancaq daha çox yaddaş tutur bildirib. 417 00:24:45,850 --> 00:24:51,170 Maraqlı. Okay. Varchar yəqin ki, daha çox rahatlıq verir, lakin daha çox yaddaş tutur. 418 00:24:51,170 --> 00:24:53,220 Sonuncu mütləq doğru deyil. 419 00:24:53,220 --> 00:24:56,290 Bu kontekstdə asılıdır, amma ki, qayıda bildirin. 420 00:24:56,290 --> 00:25:03,230 >> [Işitilemez tələbə cavab] Exactly. 421 00:25:03,230 --> 00:25:06,900 Bu, faktiki char adətən daha çox yaddaş istifadə edir ki, işin var 422 00:25:06,900 --> 00:25:10,950 bir char, C kimi, bir string kimi, çünki simvol bir sıra var. 423 00:25:10,950 --> 00:25:13,690 Siz uzunluğu 255 bir char sahəsində demək əgər 424 00:25:13,690 --> 00:25:16,910 bazası sözün sizə 255 simvol vermək niyyətindədir. 425 00:25:16,910 --> 00:25:22,290 Və ev Mather və 6 simvol ümumi olan qədər başa əgər, 426 00:25:22,290 --> 00:25:25,090 siz 200 simvol üzərində israf edirik. 427 00:25:25,090 --> 00:25:29,640 >> Lazımi kimi səmərəli bir varchar yalnız çox simvol kimi istifadə So 428 00:25:29,640 --> 00:25:31,590 bir maksimum məbləği. 429 00:25:31,590 --> 00:25:35,470 Amma ödəmək qiyməti potensial, həqiqətən, performans. 430 00:25:35,470 --> 00:25:39,740 - Siz strings bütün 8 simvol olacaq ki, əvvəlcədən bilirsinizsə 431 00:25:39,740 --> 00:25:43,090 Məsələn, siz uzunluğu 8 parol tələb Güman - 432 00:25:43,090 --> 00:25:47,350 baxmayaraq heç vaxt münasibətilə char sahəsində istifadə ayaq 433 00:25:47,350 --> 00:25:51,100 parol kimi bir şey üçün sabit uzunluğu müəyyən edir 434 00:25:51,100 --> 00:25:53,300 çünki indi bazası da asan ola bilər. 435 00:25:53,300 --> 00:25:58,160 Ki, hər char sahəsində bilir, bir sütun, hər simli, eyni uzunluğu 436 00:25:58,160 --> 00:26:00,780 siz təsadüfi giriş xüsusiyyət geri almaq. 437 00:26:00,780 --> 00:26:05,110 Siz bazası masa müxtəlif char sahələri arasında ətrafında atlayabilir 438 00:26:05,110 --> 00:26:07,940 çünki satır ve sütun kimi bir verilənlər bazası edirəm. 439 00:26:07,940 --> 00:26:11,670 Strings hər biri eyni uzunluğu əgər, 440 00:26:11,670 --> 00:26:17,820 Siz ilk bir byte 0 bilirik ki, növbəti bir byte 8 edir 441 00:26:17,820 --> 00:26:20,240 və sonra 16 və daha sonra 24 və s. 442 00:26:20,240 --> 00:26:24,500 Bütün strings eyni uzunluğu əgər Belə ki, daha səmərəli ətrafında jump bilər. 443 00:26:24,500 --> 00:26:26,710 Belə ki, performansı baxımından bir faydası ola bilər 444 00:26:26,710 --> 00:26:29,420 lakin adətən siz əvvəlcədən bilən lüks yoxdur 445 00:26:29,420 --> 00:26:32,170 belə bir varchar getmək üçün bir yoldur. 446 00:26:32,170 --> 00:26:36,030 Burada hətta Facebook nəticədə qaçdı ki, başqa bir detal var. 447 00:26:36,030 --> 00:26:39,670 , Ints böyük və biz növ ismarıcları biz bir sıra istədiyiniz zaman istifadə 448 00:26:39,670 --> 00:26:41,750 ancaq yalnız 32 bit var. 449 00:26:41,750 --> 00:26:46,210 >> Və Facebook olduqca artıq 4 milyard istifadəçi yoxdur, baxmayaraq ki, 450 00:26:46,210 --> 00:26:48,680 orada bəzi insanlar birdən çox hesabı ilə mütləq var 451 00:26:48,680 --> 00:26:50,960 və ya hesabları açılıb və sonra bağlanıb ki, 452 00:26:50,960 --> 00:26:55,130 və belə Facebook özü bir neçə il əvvəl int keçid idi iman 453 00:26:55,130 --> 00:27:00,010 etmək əvəzinə yalnız 64 bit olan tutarlı adlanır kimi, Bigint. 454 00:27:00,010 --> 00:27:02,230 Belə ki, bu da bir dizayn qərar. 455 00:27:02,230 --> 00:27:06,570 Son layihə başlanğıc çevrilir əgər Siz qəribə uğurlu olacaq 456 00:27:06,570 --> 00:27:10,010 4 milyard və 1 istifadəçi, vermək və ya almaq etdi 457 00:27:10,010 --> 00:27:13,200 ints istifadə bir az qısadı biləcək halda. 458 00:27:13,200 --> 00:27:16,230 Əslində, sizin istifadəçi masa yəqin ints ilə yaxşı. 459 00:27:16,230 --> 00:27:19,340 Amma pset 7 kimi bir şey, sizin tarix masa kimi, 460 00:27:19,340 --> 00:27:23,700 siz etrade.com daxil inkişaf əgər minlərlə, milyonlarla istifadəçi ola bilər. 461 00:27:23,700 --> 00:27:26,020 Belə isə, siz artıq 4 milyard istifadəçi yoxdur bilər 462 00:27:26,020 --> 00:27:30,070 Siz nə bu istifadəçilərin vaxt dən çox 4 milyard əməliyyatlar ola bilər - 463 00:27:30,070 --> 00:27:33,200 alır və satır və öz tarixində şeylər. 464 00:27:33,200 --> 00:27:38,090 Siz tahmin etsəniz, - yenə, bu siz bu qədər məlumatlar var əgər üçün yaxşı problemləri var - 465 00:27:38,090 --> 00:27:40,920 bir int həcmi dən çox data tahmin etsəniz, 466 00:27:40,920 --> 00:27:47,740 Bigint kimi bir şey gedir tez-tez kifayət dizaynerlər tərəfindən qəbul bir istiqamət 467 00:27:47,740 --> 00:27:49,710 çünki bir problem olacaq deyil ki, insanlar xadimi, 468 00:27:49,710 --> 00:27:51,930 amma bu daha böyük bir şey seçmək üçün bu asandır. 469 00:27:51,930 --> 00:27:55,380 Ondalık biz sabit dəqiq müəyyən olan pset 7, istifadə etdiyiniz 470 00:27:55,380 --> 00:27:59,840 belə üzüb gedirdi və ikiqat və reals və kimi cəlb məsələləri qarşısını almaq olar. 471 00:27:59,840 --> 00:28:02,440 >> Və sonra bir sıra digər sahələri burada var. Biz müəyyən dərəcədə onlara bizim dalğa olacaq. 472 00:28:02,440 --> 00:28:07,270 Amma tarixi, dəfə bütün MySQL bir müəyyən format var 473 00:28:07,270 --> 00:28:10,830 və tarixləri və varchars kimi saxlanılması tarixləri üstünlüyü 474 00:28:10,830 --> 00:28:15,730 bazası, həqiqətən, müxtəlif formatlarda onları yeniden biçimlendirmeniz edə bilərsiniz 475 00:28:15,730 --> 00:28:18,800 ABŞ format və ya Avropa format və ya kimi olub - lakin siz bunu istəyirik - 476 00:28:18,800 --> 00:28:22,700 daha səmərəli yalnız bəzi ümumi varchar halda çox. 477 00:28:22,700 --> 00:28:25,150 Və sonra bəzi digər ikili, varbinary, blobs var. 478 00:28:25,150 --> 00:28:28,580 Bu ikili böyük obyektlərin və siz də ikili data saxlaya bilərsiniz 479 00:28:28,580 --> 00:28:30,750 həmçinin bazasında həndəsi data kimi. 480 00:28:30,750 --> 00:28:34,350 Amma bizim üçün, biz adətən ints və varchars və kimi qayğı lazımdır. 481 00:28:34,350 --> 00:28:36,230 Evi bu misal bitirmək edək. 482 00:28:36,230 --> 00:28:40,030 Mən özbaşına demək gedirəm House 255 chars olacaq. 483 00:28:40,030 --> 00:28:42,850 Sonra default dəyəri, biz bunu edə bilər. 484 00:28:42,850 --> 00:28:47,440 Biz default Məsələn, Mather House hər kəs qoymaq bilər. 485 00:28:47,440 --> 00:28:49,710 Yəni müəyyən necə ki bazası 486 00:28:49,710 --> 00:28:52,460 kimsə həmişə bir dəyəri var ki, təmin etməlidir. Amma ola tərk edəcəyik. 487 00:28:52,460 --> 00:28:55,270 Əslində, bir evdə kampus off yaşamaq deyil, insanlar üçün, 488 00:28:55,270 --> 00:28:59,590 bəlkə mən həqiqətən, ev üçün defolt dəyər NULL olduğunu müəyyənləşdirmək istəyirsinizsə 489 00:28:59,590 --> 00:29:04,890 və sonra mən bu kutuyu və istifadəçi evi NULL əgər tamam bazası demək lazımdır. 490 00:29:04,890 --> 00:29:07,270 >> Yenə bu yer bilər bir müdafiə mexanizmi 491 00:29:07,270 --> 00:29:10,590 belə ki mütləq PHP kodu qoymaq üçün yoxdur. 492 00:29:10,590 --> 00:29:14,630 Məlumat bazası şey və ya NULL deyil ki, təmin edəcək. 493 00:29:14,630 --> 00:29:17,310 Və sonra nəhayət, Features. 494 00:29:17,310 --> 00:29:18,920 Bunların heç biri həqiqətən uyğundur. 495 00:29:18,920 --> 00:29:22,880 Imzasız, Binary - o heç bir varchar üçün uyğundur. 496 00:29:22,880 --> 00:29:24,220 Index. 497 00:29:24,220 --> 00:29:27,320 Hər kəs bilir və ya index nə kimi bir tahmin xatırlayıram və ya varmı 498 00:29:27,320 --> 00:29:29,510 ev kimi bir şey? 499 00:29:29,510 --> 00:29:35,240 Bu da həqiqətən mühüm və nisbətən asan dizayn qərar. 500 00:29:35,240 --> 00:29:39,200 Hələ görməmişik edənlər üçün, cümə günü biz əsas açarları haqqında qısaca danışdım. 501 00:29:39,200 --> 00:29:43,240 Bir verilənlər bazası masa, bir əsas aparıcı sahəsində və ya sütun edir 502 00:29:43,240 --> 00:29:46,270 ki, benzersiz masa satır müəyyən edir. 503 00:29:46,270 --> 00:29:49,150 Beləliklə, biz kimlikleri cari masa, biz adları və e-poçt var. 504 00:29:49,150 --> 00:29:52,050 O hansı bir əsas açarı ola ən yaxşı namizəd 505 00:29:52,050 --> 00:29:55,810 onların rolu benzersiz satır müəyyən edir? 506 00:29:55,810 --> 00:29:57,530 Yəqin ID. 507 00:29:57,530 --> 00:29:59,930 Ola bilsin ki, biz də nə olsa istifadə edə bilər? 508 00:29:59,930 --> 00:30:02,860 Nəzəriyyə bu unikal çünki Bəlkə e-poçt istifadə edə bilər 509 00:30:02,860 --> 00:30:05,380 insanların e-poçt hesabları mübadiləsi halda. 510 00:30:05,380 --> 00:30:09,980 Lakin reallıq ki, siz 1234 kimi bir rəqəmli ID kullanıyorsanız, edir 511 00:30:09,980 --> 00:30:14,170 e-mail bu çox bayt və ya bu çox bayt ola bilər, halbuki ki, yalnız 32 bit var. 512 00:30:14,170 --> 00:30:16,610 Belə unikal identifikatorları üçün səmərəlilik baxımından, 513 00:30:16,610 --> 00:30:19,270 yalnız bir int istifadə etmək yaxşı təcrübə olmağa çalışır 514 00:30:19,270 --> 00:30:23,090 Siz arguably istifadə edə bilər ki, bəzi simli namizəd olsa belə. 515 00:30:23,090 --> 00:30:26,760 >> Ev kimi bir şey üçün bu əsas əsas olmamalıdır 516 00:30:26,760 --> 00:30:30,770 sonra yalnız 1 nəfər Mather yaşayır və Currier və analoji 1 nəfər. bilər, çünki 517 00:30:30,770 --> 00:30:32,790 Eynilə, bu unikal olmamalıdır. 518 00:30:32,790 --> 00:30:37,830 Əsas və unikal arasında fərq mövcud masa halda ki, 519 00:30:37,830 --> 00:30:42,620 ID əsas ola bilər, lakin e-poçt, biz yalnız göstərilən səbəbdən əsas deyil - 520 00:30:42,620 --> 00:30:44,740 performance - lakin unikal olmalıdır. 521 00:30:44,740 --> 00:30:47,200 Belə ki, hələ iddia etmədən unikallığı tələb edə bilər 522 00:30:47,200 --> 00:30:49,520 bir super əhəmiyyətli əsas sahə var. 523 00:30:49,520 --> 00:30:52,610 Amma bu bir olduqca faydalıdır: ana. 524 00:30:52,610 --> 00:30:56,180 Siz pset 7 və ya ümumiyyətlə, son layihə üçün əvvəlcədən bilirsinizsə 525 00:30:56,180 --> 00:30:59,480 Bu sahədə ev bir çox axtarış bir şey olacaq ki, 526 00:30:59,480 --> 00:31:01,910 da seçin söz və ya başqa bir şey istifadə edərək, 527 00:31:01,910 --> 00:31:05,180 sonra preemptively onun sehrli işləmək bazası deyə bilərsiniz 528 00:31:05,180 --> 00:31:10,510 və zəruri yaddaş heç bir xülya data strukturları yaradır əmin olun 529 00:31:10,510 --> 00:31:13,770 ev əsasında axtarış sürətləndirmək. 530 00:31:13,770 --> 00:31:17,860 Bəlkə bir hash table istifadə edəcək, bəlkə bir bağlı siyahı istifadə edəcək. 531 00:31:17,860 --> 00:31:21,260 Əslində, bir ağac istifadə üçün çalışır, tez-tez bir strukturu B-ağac çağırıb - 532 00:31:21,260 --> 00:31:24,090 bir ikili ağac lakin B-ağac - bir çox geniş ağac 533 00:31:24,090 --> 00:31:27,370 siz CS124 məlumat strukturları sinif kimi sinif görmək bilər. 534 00:31:27,370 --> 00:31:31,800 Lakin qısa, siz smart bazası proqram istifadə edərək, zaman narahat yoxdur. 535 00:31:31,800 --> 00:31:35,890 "Mən daha səmərəli bu axtarış edə bilərsiniz, belə ki ana bu sahədə." Siz, demək olar 536 00:31:35,890 --> 00:31:40,250 >> Bu off tərk və Mather yaşayan bazasında hər kəs üçün axtarış üçün cəhd edin, 537 00:31:40,250 --> 00:31:42,710 bu xətti axtarış daxil qalmaq olacaq. 538 00:31:42,710 --> 00:31:45,360 Və siz bir ev bütün yaşayış 6,000 undergrads var olsanız 539 00:31:45,360 --> 00:31:47,900 Əgər Matherites tapmaq üçün bütün masa axtarış olacaq 540 00:31:47,900 --> 00:31:52,190 siz ana desək, inşallah bir logarithmic axtarış yaxın bir şey isə 541 00:31:52,190 --> 00:31:54,510 bu cür tələbələr tapmaq üçün. 542 00:31:54,510 --> 00:31:56,750 Bu yandırmaq üçün bir pulsuz xüsusiyyət 543 00:31:56,750 --> 00:31:59,530 bu alan bəzi məbləği qiyməti gelir olsa belə. 544 00:31:59,530 --> 00:32:02,690 Nəhayət, avtomatik artırılması, bu AI sahəsində, 545 00:32:02,690 --> 00:32:05,830 olan yalnız bir int əgər deməkdir və özünüz arttırmayı qayğı istəmirəm 546 00:32:05,830 --> 00:32:07,570 Yeni bir istifadəçi var hər zaman ki, yoxlamaq 547 00:32:07,570 --> 00:32:11,910 və daxil olur ki, hər bir istifadəçi avtomatik olaraq yeni ID olacaq. 548 00:32:11,910 --> 00:32:15,620 Gəlin Save basın və indi bu layihə ilə günah görər. 549 00:32:15,620 --> 00:32:20,200 Mən İnsanlar, Mike və ev həm NULL ki, bildiriş daxil edin. 550 00:32:20,200 --> 00:32:22,420 Mən bu əl redaktə phpMyAdmin istifadə edə bilərsiniz. 551 00:32:22,420 --> 00:32:25,110 Mən Enter sonra Mather burada və növü getmək bilər 552 00:32:25,110 --> 00:32:27,740 və indi masa fərqli görürük. 553 00:32:27,740 --> 00:32:29,270 Amma mən də başqa bir şey edə bilərsiniz. 554 00:32:29,270 --> 00:32:33,530 Davudun ID 1, phpMyAdmin yenə yalnız inzibati vasitədir belə; 555 00:32:33,530 --> 00:32:35,970 bu istifadəçi heç görmək üçün gedir bir şey deyil. 556 00:32:35,970 --> 00:32:38,810 Mən bunun əvəzinə top SQL sekmesini basın əgər - 557 00:32:38,810 --> 00:32:41,450 və yenə pset 7 bu sorğu daha tanış edəcək - 558 00:32:41,450 --> 00:32:45,260 Mən əl SQL structured query language komanda keçirə bilər 559 00:32:45,260 --> 00:32:56,410 YENİLƏNİB istifadəçilər ev = 'Pfoho' WHERE id = 1 SET. 560 00:32:56,410 --> 00:33:00,830 Bu SQL queries, gözəl ki, soldan sağa olduqca oxunaqlı edir. 561 00:33:00,830 --> 00:33:04,350 Istifadəçilər masa Update, Pfoho ev adlanan sahəsində müəyyən 562 00:33:04,350 --> 00:33:06,830 istifadəçi ID 1 yerləşir. 563 00:33:06,830 --> 00:33:11,480 Və ya mən belə edə bilər email = 'malan@harvard.edu. 564 00:33:11,480 --> 00:33:14,860 Belə ki, uzun benzersiz mənə müəyyən kimi, həmçinin iş olardı. 565 00:33:14,860 --> 00:33:18,810 Amma ID yüksək performans olmaq üçün çalışır, belə ki, bunu bildirin. 566 00:33:18,810 --> 00:33:22,950 Nin dön basın edək. OK, lecture.users yoxdur. Mənim səhv nədir? 567 00:33:22,950 --> 00:33:26,220 Əslində burada adlı masa nədir? 568 00:33:26,220 --> 00:33:28,770 Ki, top sol burada nə yalnız çünki tələbələr deyirlər. 569 00:33:28,770 --> 00:33:31,860 Bu tələbələr, kullanıcılar deyirlər. Belə ki, indi tıklatın. 570 00:33:31,860 --> 00:33:34,330 1 satır təsir göstərmişdir. Sorğu took 0.01 seconds. 571 00:33:34,330 --> 00:33:38,010 Mən Pfoho, indi artıq Malan həyatını gözdən basın. 572 00:33:38,010 --> 00:33:42,070 Belə ki SQL bir dad var, lakin pset ki, bir az daha size yol edəcək. 573 00:33:42,070 --> 00:33:44,710 >> Mən artıq burada etdiyiniz bir axmaq qərar var. 574 00:33:44,710 --> 00:33:47,820 Mən bu verilənlər bazası dizayn səmərəsiz olduğunu iddia 575 00:33:47,820 --> 00:33:51,650 Çünki tələbələr masa əlavə daha çox insan, 576 00:33:51,650 --> 00:33:54,730 Mən, mən əlavə başlamaq TFS daha əlavə başlamaq bizə daha 577 00:33:54,730 --> 00:33:58,320 biz bu cədvəldə redundancies nə başlamaq olacaq? 578 00:34:00,840 --> 00:34:06,020 >> Bəli. [Tələbə] O tələbələr ki, görən, eyni istifadə etdiyiniz [işitilemez] 579 00:34:06,020 --> 00:34:07,360 Eyni - Sağ, dəqiq. 580 00:34:07,360 --> 00:34:10,400 400 nəfər Mather yaşayır əgər, vermək və ya almaq 581 00:34:10,400 --> 00:34:15,000 nəticədə bu masa "" Mather "," Mather deyirlər ki, 400 satır var gedir 582 00:34:15,000 --> 00:34:16,590 "Mather", "Mather", "Mather". 583 00:34:16,590 --> 00:34:19,820 Biz bu bayt bütün israf edirik və takeaways bir neçə orada var. 584 00:34:19,820 --> 00:34:23,080 Kimsə çox pul ödəyir yerləşir əgər 1, crazy künc halda var 585 00:34:23,080 --> 00:34:25,949 və renames Mather, indi bizim bütün verilənlər bazası masa dəyişdirmək lazımdır. 586 00:34:25,949 --> 00:34:29,730 Pfoho dəfə 15 il əvvəl Şimali House adlı baxmayaraq ki, tez-tez baş verəcək deyil, 587 00:34:29,730 --> 00:34:32,310 belə olur. Lakin bütün çekici deyil. 588 00:34:32,310 --> 00:34:36,000 Toplu data yeniləmə ehtiyacı kimi bir künc halda çox çekici 589 00:34:36,000 --> 00:34:41,150 bir verilənlər bazası üçün nə təkrar Mather saxlanılması və təkrar? edilir 590 00:34:41,150 --> 00:34:43,020 Sandıqı, 6 chars bir çox var. 591 00:34:43,020 --> 00:34:45,500 Can biz xüsusilə Pforzheimer üçün ki, daha yaxşı? 592 00:34:45,500 --> 00:34:48,320 Şübhəsiz ki, biz bir çox simvol daha yaxşı edə bilərsiniz. 593 00:34:48,320 --> 00:34:51,790 Niyə yalnız hər ev ilə benzersiz bir tanıdan şərik deyil 594 00:34:51,790 --> 00:34:55,020 və hər bir istifadəçi üçün mağaza? Belə ki, bu cəhd edək. 595 00:34:55,020 --> 00:35:00,610 Əksinə yalnız tələbələr masa istifadə çox, mənə üst sol qədər burada mənim mühazirə bazası qədər gedək. 596 00:35:00,610 --> 00:35:02,600 Burada edək ki, bu masa yarat deyir. 597 00:35:02,600 --> 00:35:04,550 Mənə ev adlı yeni masa yaratmaq edək. 598 00:35:04,550 --> 00:35:08,880 Sütun sayı 2 olacaq. Daxil edin. 599 00:35:08,880 --> 00:35:11,200 İndi 2 sahələri var. 600 00:35:11,200 --> 00:35:14,600 , Mən bu adı zəng gedirəm, və uzunluğu 255 bir varchar olacaq 601 00:35:14,600 --> 00:35:18,770 >> lakin olduqca ixtiyari var. Bu aşağı burada Konvensiya tərəfindən qoyulmuş edək. 602 00:35:18,770 --> 00:35:22,840 Belə ki, burada bir ID qablaşdırılmış. Nin hər ev benzersiz bir tanıdan verim. 603 00:35:22,840 --> 00:35:25,360 Nin hər ev bir ad verim. 604 00:35:25,360 --> 00:35:30,980 Olan identifikator yalnız müsbət nömrələri istifadə yalnız Konvensiya tərəfindən imzalanmamış olacaq ki, müəyyən edək. 605 00:35:30,980 --> 00:35:35,020 Nin davam və indi bu bir avtomatik increment sahəsində verim. 606 00:35:35,020 --> 00:35:38,160 Və biz başqa bir şey lazımdır? 607 00:35:38,160 --> 00:35:41,010 Nin davam və Saxla basın edək. 608 00:35:41,010 --> 00:35:42,480 İndi ikinci masa var. 609 00:35:42,480 --> 00:35:45,860 Bir kənara kimi, bu qədər sirli SQL skript deyil edək 610 00:35:45,860 --> 00:35:50,280 siz phpMyAdmin kimi inzibati alət istifadə əgər əl yazın idi ki. 611 00:35:50,280 --> 00:35:51,990 Biz ondan istifadə başqa səbəb idi. 612 00:35:51,990 --> 00:35:55,480 Əgər ətrafında basın, çünki pedaqoji və gözəl faydalı növ var 613 00:35:55,480 --> 00:36:01,050 və hər şeyi yalnız çıxarmaq və phpMyAdmin nə yapıştırarak necə anlamaq. 614 00:36:01,050 --> 00:36:04,150 Amma yarat masa komanda yalnız edam edildi nə və burada mənim masa. 615 00:36:04,150 --> 00:36:11,370 Mənə indi irəli getmək və Insert sekmesini tıklayarak xammal SQL çox oversimplify istifadə edək. 616 00:36:11,370 --> 00:36:15,040 Mənə, ev daxil edək 617 00:36:15,040 --> 00:36:22,230 və mən evin adı 'Mather' bir dəyəri gedir demək gedirəm. 618 00:36:22,230 --> 00:36:24,790 Vəssalam. Bu syntax bir az daha sirli edir. 619 00:36:24,790 --> 00:36:26,660 Bu əlavə etmək istədiyiniz sahələri adı. 620 00:36:26,660 --> 00:36:30,390 Bu biz həmin sahələrdə daxil etmək istədiyiniz dəyərlərdir. Mənə tıklatın edək. 621 00:36:30,390 --> 00:36:34,410 Daxil 1 satır 0.02 saniyə çəkdi. Mənə indi gözdən basın edək. 622 00:36:34,410 --> 00:36:42,020 >> Mən gözdən basın əgər edək, kimin ID avtomatlaşdırma ilə sayı 1 Mather var. 623 00:36:42,020 --> 00:36:45,000 Mənə başqa bir edək. Mənə SQL nişanı daxil edək. 624 00:36:45,000 --> 00:36:52,950 Ev daxil. Evin adı s Pfoho bir dəyəri davam edilir. 625 00:36:52,950 --> 00:36:56,350 Gedin. Mən təkrar-təkrar bunu edə bilərsiniz. 626 00:36:56,350 --> 00:36:59,470 Siz phpMyAdmin istifadə cansıxıcı almaq və ya, yalnız Insert sekmesini istifadə edə bilərsiniz 627 00:36:59,470 --> 00:37:01,000 və xammal SQL yazın yoxdur. 628 00:37:01,000 --> 00:37:04,690 Siz yalnız yazaraq daha tez həyata Bang bilər, məsələn, Currier daxil edin 629 00:37:04,690 --> 00:37:07,610 biz gözdən basın əgər və artıq 3 şəxsiyyət ilə Currier var. 630 00:37:07,610 --> 00:37:09,920 Belə ki, bu, bizim avtomatik increment ilə nə demək deyil. 631 00:37:09,920 --> 00:37:12,280 Amma indi biz tələbələr bir şey düzeltmek üçün var. 632 00:37:12,280 --> 00:37:16,240 Tələbə evi sahəsində data type indi nə olmalıdır? 633 00:37:16,240 --> 00:37:19,450 Bu, doğru bir int olmalıdır? 634 00:37:19,450 --> 00:37:23,950 Burada məqsəd həyata amil üçün Belə ki, başqa masalar, normallaşdırmaq kimi tanınan 635 00:37:23,950 --> 00:37:27,940 belə ki, mənim masalar hər hansı redundantly məlumat yoxdur. 636 00:37:27,940 --> 00:37:31,130 Və yenə burada olub yolunu Mather, Mather demək gedir 637 00:37:31,130 --> 00:37:34,220 Mather, çox lazımsız olan Mather, Pfoho, Pfoho, Pfoho, Pfoho, 638 00:37:34,220 --> 00:37:36,240 bu chars və israfçılıq baxımından. 639 00:37:36,240 --> 00:37:40,820 Mənə davam və tıklayarak Struktur bu dəyişiklik edək, 640 00:37:40,820 --> 00:37:44,620 və mənə irəli getmək və ev sahəsində off kontrol imkan, Change basın 641 00:37:44,620 --> 00:37:46,990 və indi mən int üçün bu dəyişdirmək üçün gedirəm. 642 00:37:46,990 --> 00:37:49,490 255 müvafiq deyil. 643 00:37:49,490 --> 00:37:54,010 Mənə davam və hələ NULL var ki, əgər gözəl deyək. Edin. 644 00:37:54,010 --> 00:37:55,870 İndi masa tələbələr, uğurla dəyişdikdə 645 00:37:55,870 --> 00:37:59,090 və yenidən qeyd ev bir int edir. 646 00:37:59,090 --> 00:38:02,220 Bu ints gəldiyi zaman bir kənara kimi, parantez sayı bilməz. 647 00:38:02,220 --> 00:38:03,770 >> Bu miras səbəblər üçün. 648 00:38:03,770 --> 00:38:06,920 Geri gün siz malik uygulamalar olmadığını zaman, yerine, bir command line mühit idi 649 00:38:06,920 --> 00:38:11,580 sizə göstərmək lazımdır 10 və 11-müvafiq olaraq müəyyən necə çox simvol 650 00:38:11,580 --> 00:38:13,950 terminal pəncərə əslində sahələrində göstərilmir. 651 00:38:13,950 --> 00:38:19,150 Bu faktiki sahəsində bit uzunluğu heç bir əlaqəsi yoxdur, biz yalnız indi üçün ignore bilərsiniz. 652 00:38:19,150 --> 00:38:20,990 İndi mən bu masa getmək lazımdır. 653 00:38:20,990 --> 00:38:24,610 Davud Mather yaşayır, əgər ev 0 olmamalıdır 654 00:38:24,610 --> 00:38:27,350 olan null yaxın bir default int dəyəri. 655 00:38:27,350 --> 00:38:29,810 O, ev 1 yaşamalıdırlar. 656 00:38:29,810 --> 00:38:36,870 Gəlin özbaşına demək Pfoho ildə Mike yaşayır, belə ki, ev sayı 2. 657 00:38:36,870 --> 00:38:40,160 İndi mənim stolüstü bir az daha sirli görünür. 658 00:38:40,160 --> 00:38:41,960 Amma səmərəliliyinin hesab edir. 659 00:38:41,960 --> 00:38:44,860 İndi, ev müəyyən etmək yalnız 32 bit kullanıyorum 660 00:38:44,860 --> 00:38:49,530 mənim ev Mather və Pfoho yalnız 1 canonical definition var deməkdir 661 00:38:49,530 --> 00:38:52,090 və ev masa var. 662 00:38:52,090 --> 00:38:55,880 Mən indi bu masalar yeniden istədiyiniz Belə ki, əgər bu şəkildə düşünürəm. 663 00:38:55,880 --> 00:39:01,980 Burada mənim tələbələr masa var və sağ tərəfdən bu nömrələri, 1 və 2 var. 664 00:39:01,980 --> 00:39:04,180 1 Mather edir, 2 Pfoho edir. 665 00:39:04,180 --> 00:39:08,580 Biz, ev adlanan bu digər cədvəldə həmin nömrə var 666 00:39:08,580 --> 00:39:11,020 O 3 ev üçün 1 və 2 və 3. 667 00:39:11,020 --> 00:39:14,990 Biz indi istəyirik kodu qabiliyyəti, PHP və SQL, var 668 00:39:14,990 --> 00:39:18,800 və düzmək üçün, bu masalar yeniden yerləşir bu tələbələr və bu evlərin varsa, 669 00:39:18,800 --> 00:39:22,050 biz birtəhər 1-ki, 1 xətləri qədər onlara birləşdirmək istəyirəm 670 00:39:22,050 --> 00:39:25,670 2 2 ilə qədər xətlər, belə ki, biz burada David anlamaq bilər 671 00:39:25,670 --> 00:39:28,000 və harada Mike və burada hər kəs yaşayır. 672 00:39:28,000 --> 00:39:31,850 Bunu etmək üçün biz aşağıdakı kimi bir SQL sorğu həyata keçirə bilər. 673 00:39:31,850 --> 00:39:40,470 Tələbələr ÜZRƏ evləri OL DAN * SEÇİN - 674 00:39:40,470 --> 00:39:43,000 İndi biz qoşulmaq üçün nə sahələrində istəyirsiniz? 675 00:39:43,000 --> 00:39:49,520 Students.house = houses.id belə. 676 00:39:49,520 --> 00:39:54,150 >> Bir az sirli, lakin bu hissəsi deməkdir sanki yeni müvəqqəti masa yaratmaq 677 00:39:54,150 --> 00:39:56,690 ki, tələbələr və evlərin qoşulması nəticəsində var. 678 00:39:56,690 --> 00:40:00,340 Və necə Burada mənim barmaqlarının ipuçlarını birləşdirmək istəyirsiniz? 679 00:40:00,340 --> 00:40:05,280 ID sahəsində tələbələr evlərin bərabər ev sahə seçin. 680 00:40:05,280 --> 00:40:10,220 Mən indi tıklatın əgər, mən ümid dəqiq nə geri almaq. 681 00:40:10,220 --> 00:40:15,890 David Mather edir, Mike Pfoho edir və mən də unikal identifikatorları görürük. 682 00:40:15,890 --> 00:40:18,640 Amma nöqtə tam bir masa var indi. 683 00:40:18,640 --> 00:40:23,020 Və pset 7 üçün burada paket və ya həqiqətən yekun layihə üçün: 684 00:40:23,020 --> 00:40:25,830 Siz redundantly informasiya hər hansı bir parça saxlanılması olduğunuz tapmaq 685 00:40:25,830 --> 00:40:28,850 bir ev olsun, bəlkə bir şəhər, dövlət, və saxlayın var 686 00:40:28,850 --> 00:40:32,050 Poçt adətən, lakin həmişə bir unikal identifikatoru kimi istifadə edilə bilər, 687 00:40:32,050 --> 00:40:35,810 phpMyAdmin kimi bir şey ilə əqli və sonra həyata keçir yoxdur 688 00:40:35,810 --> 00:40:40,660 ümumi məlumatların faktorinq, çünki sizin web daha yaxşı istifadə edir, xüsusən 689 00:40:40,660 --> 00:40:45,440 və daha çox məşhur, bu, hər şeyi super sürətli əmin olun ki, necə 690 00:40:45,440 --> 00:40:51,930 mümkün qədər unikallığı kimi çox göstərişlər kimi bazası verərək. 691 00:40:51,930 --> 00:40:53,860 Bu çox idi. 692 00:40:53,860 --> 00:40:59,010 Hər hansı sual? Bütün hüquqlar. Nin bir 5 dəqiqə fasilə etmək və regroup edək. 693 00:41:01,600 --> 00:41:03,540 Bütün hüquqlar. 694 00:41:03,540 --> 00:41:08,680 Aşağıdakı, mən CS161 gəldiyində bir neçə il əvvəl istifadə edilmiş bir nümunə 695 00:41:08,680 --> 00:41:10,960 olan kollec də əməliyyat sistemləri sinif 696 00:41:10,960 --> 00:41:15,160 gözəl olmaq üçün məlum lakin iş crazy məbləği olan 697 00:41:15,160 --> 00:41:19,810 və əməliyyat sistemi yaranır ki, aşağı səviyyəli problemlərin bəzi həqiqətən diqqət 698 00:41:19,810 --> 00:41:22,700 həmçinin belə bazaları dünyada. 699 00:41:22,700 --> 00:41:27,040 >> Aşağıdakı kimi il mənim professor, Margo Seltzer, bildirib ki, hekayə idi. 700 00:41:27,040 --> 00:41:30,990 Sizə və sizin roommate üçün bir az yurt soyuducu ki düşünək 701 00:41:30,990 --> 00:41:34,030 və siz də həqiqətən süd kimi. 702 00:41:34,030 --> 00:41:36,360 Belə ki, sinif bir gün evə gəlib, roommate, hələ yoxdur 703 00:41:36,360 --> 00:41:39,650 siz soyuducu açmaq və siz dərk "lənətləmək Oh, biz süd həyata edirik." 704 00:41:39,650 --> 00:41:42,070 Beləliklə, siz soyuducu yaxın, siz CVS üçün küçə arasında gəzmək 705 00:41:42,070 --> 00:41:45,830 və CVS bəzi süd almaq üçün getdikcə daha uzun xətləri almaq. 706 00:41:45,830 --> 00:41:48,470 Eyni zamanda, roommate, onun sinfi evə gəlir 707 00:41:48,470 --> 00:41:51,690 otağa gəlir, həqiqətən bəzi süd istəyən soyuducu, açılır 708 00:41:51,690 --> 00:41:54,130 soyuducuda açır və "Lanet olsun, heç bir süd". 709 00:41:54,130 --> 00:41:57,890 Belə ki, o, soyuducuda bağlayıb qapı həyata gəzinti və ABP gedir 710 00:41:57,890 --> 00:42:00,910 Siz bir-birinə daxil qabar etmək fikrində deyilik yerləşir CVS-dən və ya yerdə başqa 711 00:42:00,910 --> 00:42:02,790 bəzi süd almaq gedin. 712 00:42:02,790 --> 00:42:04,820 Əlbəttə, bir neçə dəqiqə sonra, siz də geri ev almaq 713 00:42:04,820 --> 00:42:07,740 və indi siz həqiqətən istəyirdim iki dəfə çox süd var. 714 00:42:07,740 --> 00:42:10,670 Əgər süd kimi, çünki süd olan, indi pis getmək olacaq 715 00:42:10,670 --> 00:42:14,200 lakin süd kimi həqiqətən deyil, belə ki, indi çox süd var, belə ki, turş olacaq. 716 00:42:14,200 --> 00:42:16,830 Bu dəhşətli, dəhşətli bir vəziyyət. 717 00:42:16,830 --> 00:42:22,920 Siz ilk roommate ev olsaydı nə bu çətin həll edə bilər? Bəli. 718 00:42:22,920 --> 00:42:25,970 [Tələbə] Siz qeyd yazmayıblar olmalıdır. [Gülüş] 719 00:42:25,970 --> 00:42:28,090 Yaxşı. Siz qeyd yazmayıblar olmalıdır. 720 00:42:28,090 --> 00:42:32,320 Siz ", süd Gone" deyərək kimi bir Post-it qeyd və ya qoymaq lazımdır 721 00:42:32,320 --> 00:42:36,830 və sonra roommate konseptual həqiqətən bunu kilitlendiyse olardı. 722 00:42:36,830 --> 00:42:38,010 Yoxsa 1 addım daha da bilər. 723 00:42:38,010 --> 00:42:41,060 Siz sözün, asma kilit bir növ ilə soyuducu kilidi bilər 724 00:42:41,060 --> 00:42:44,870 və indi roommate sanki soyuducu kilitlendiyse olunacaq. 725 00:42:44,870 --> 00:42:48,520 Biz proqramlaşdırma geri ümumiləşdirmək varsa, 726 00:42:48,520 --> 00:42:51,610 demək olar ki, dəyişən bir növ və ya struct kimi soyuducu hesab edə bilər 727 00:42:51,610 --> 00:42:53,500 məlumat üçün konteyner bir növ. 728 00:42:53,500 --> 00:42:58,290 Bu problem əsaslı burada həm yoxlamaq üçün icazə verilib ki, 729 00:42:58,290 --> 00:43:02,370 və ya, Bu data strukturunun dövlət oxumaq 730 00:43:02,370 --> 00:43:08,050 ancaq müxtəlif vaxtlarda bu dəfə və hələ hər iki qərar qəbul edib 731 00:43:08,050 --> 00:43:11,920 vaxt bu müxtəlif məqamlarını dünya dövlət əsaslanır. 732 00:43:11,920 --> 00:43:15,570 Beləliklə, siz soyuducu kilidli idi, ən azı roommate yol olardı 733 00:43:15,570 --> 00:43:19,070 dünyanın dövlət nəzarət edə edərək, bu 734 00:43:19,070 --> 00:43:22,530 belə o həmin qərar bilməz. 735 00:43:22,530 --> 00:43:25,780 O çıxır kimi verilənlər bazası ki, daim bu problem var. 736 00:43:25,780 --> 00:43:31,050 >> Biz bir ssenari tikintisi əgər in nəzər salaq. 737 00:43:31,050 --> 00:43:34,310 Pis bir adam sort olduğunu düşünək və Bank of America getmək 738 00:43:34,310 --> 00:43:37,950 tərəfindən bir neçə bankomat tərəfi var ki, kvadrat digər yerlərdə və ya, 739 00:43:37,950 --> 00:43:41,200 və elə bir ATM kartı dublikat necə fiqurlu - bütün çətin deyil. 740 00:43:41,200 --> 00:43:42,730 Bu yalnız bir maqnit zolağı var. 741 00:43:42,730 --> 00:43:45,180 Və nə siz cəhd etmək istəyirəm, bu oyunu deyil 742 00:43:45,180 --> 00:43:49,060 elə siz, digər maşın, 1 maşın başqa kart 1 kart qoymaq 743 00:43:49,060 --> 00:43:51,980 və mahiyyətcə, eyni zamanda pul çıxarmaq üçün cəhd etmək istəyirəm 744 00:43:51,980 --> 00:43:54,930 təsəvvür Çünki hekayə aşağıdakı kimi gedir. 745 00:43:54,930 --> 00:43:57,350 Sol maşın, kartınızı və PİN edir 746 00:43:57,350 --> 00:44:00,240 və sonra "mənə 100 dollar ver.", deyə 747 00:44:00,240 --> 00:44:04,790 ATM ilk onun bazasında və ya ekvivalent bir rejimindən bunu proqramlaşdırılmış - 748 00:44:04,790 --> 00:44:10,780 istifadə edir hansı məlumat bazası - bax bu istifadəçi öz hesabına ən azı $ 100 var? 749 00:44:10,780 --> 00:44:16,180 Əgər belədirsə, onda 100 $ tüpürmək və onların balans dan $ 100 çıxmaq. 750 00:44:16,180 --> 00:44:20,470 Amma təbii burada çox maşın var ya yoxladıqdan çox yolları 751 00:44:20,470 --> 00:44:23,560 ki, dünyanın dövlət, bank vault, siz nə qədər pul bax 752 00:44:23,560 --> 00:44:26,780 sol şans maşın ki, yalnız güman və sağ 753 00:44:26,780 --> 00:44:30,140 həm vaxt təxminən eyni anda ki, sual. 754 00:44:30,140 --> 00:44:34,160 >> Bu, əlbəttə, ola bilər. Bankomat bu gün kompüter var. 755 00:44:34,160 --> 00:44:37,670 Sol maşın deyir Belə ki, "Bəli, siz ən azı $ 100 var" 756 00:44:37,670 --> 00:44:42,150 Bu arada sağ maşın, "Bəli, ən azı $ 100 var" deyir, 757 00:44:42,150 --> 00:44:47,420 sonra onların hər ikisi öz proqramlarını başa çatdırmaq üçün davam və əslində $ 100 həyata tüpürmək 758 00:44:47,420 --> 00:44:50,820 və "Əvvəllər siz $ 200 idi.", deyə 759 00:44:50,820 --> 00:44:54,890 "Mənə indi hesabınıza, qalan 100 $ olmaq dəyişən yeniləmə edək." 760 00:44:54,890 --> 00:44:58,780 Onların həm hesabınıza balans yoxlanılmış və aşkar Ancaq $ 200 ki, 761 00:44:58,780 --> 00:45:02,000 100, - və onların hər ikisi sonra riyaziyyat və demək 200 etmək 762 00:45:02,000 --> 00:45:06,990 maşın potensial, hər bir maşın iki $ 100 vərəqələrinin həyata tüpürmək ki, 763 00:45:06,990 --> 00:45:11,360 lakin onlar yalnız $ 100 olmaq üçün məbləğ hesab balansı güncelledik. 764 00:45:11,360 --> 00:45:15,130 Başqa sözlə, siz $ 200 götürülmüş sonra, lakin onlar dünyanın dövlət tanış çünki 765 00:45:15,130 --> 00:45:18,840 eyni zamanda və sonra ki, dəyər əsasında qərar qəbul edib 766 00:45:18,840 --> 00:45:21,930 onlar nəticədə düzgün riyaziyyat edə bilər. 767 00:45:21,930 --> 00:45:25,520 Belə bir bank vəziyyət çox həqiqətən lockout bir növ olsun 768 00:45:25,520 --> 00:45:28,450 belə bir dəyişən dövlət işaretlediğinizden kimi ki 769 00:45:28,450 --> 00:45:31,220 ki, haqq-hesab balansı kimi, həqiqətən, vacibdir 770 00:45:31,220 --> 00:45:36,070 sizin şey bunu həyata qədər hər kəsdən ki, əsasında qərarlar qəbul etmək imkan vermir, 771 00:45:36,070 --> 00:45:38,920 bu halda sol ATM yerləşir edir. 772 00:45:38,920 --> 00:45:41,160 Hər kəs həyata kilidi. 773 00:45:41,160 --> 00:45:44,650 Siz, həqiqətən, müxtəlif yollarla bir neçə bu təsir edə bilər. 774 00:45:44,650 --> 00:45:48,660 >> MySQL ən sadə yolu biz sizə verdi ki, SQL bir xətt 775 00:45:48,660 --> 00:45:52,030 məhz bu kimi görünür ki, problem set dəqiqləşdirilməsi ilə. 776 00:45:52,030 --> 00:45:57,420 Bu adlı hər hansı - - bir id, rəmzi və payı səhmlərin sayı, masa daxil edin 777 00:45:57,420 --> 00:45:59,660 aşağıdakı dəyərlər, məsələn. 778 00:45:59,660 --> 00:46:03,370 Siz hələ spec oxumaq varsa, bu barədə necə getmək nə cəlb nümunəsidir 779 00:46:03,370 --> 00:46:07,340 Prezident Skroob bu quruş fond 10 səhmlərin alışı, 780 00:46:07,340 --> 00:46:10,340 onun istifadəçi ID sayı 7 olmaq olur? 781 00:46:10,340 --> 00:46:14,070 Bu cədvəl aşağıdakı id, simvolları və səhmlərin sayı daxil deyir 782 00:46:14,070 --> 00:46:18,200 7, DVN.V ', 10. 783 00:46:18,200 --> 00:46:21,510 Amma - amma, lakin, ancaq - ikinci xətt mühüm biridir. 784 00:46:21,510 --> 00:46:26,310 Duplicate KEY OLUNUB səhmlərin ÜZRƏ = səhmlərin + DƏYƏRLƏRİN (səhmlər). 785 00:46:26,310 --> 00:46:28,350 Belə ki, tamamilə ilk baxışda sirli-axtarır. 786 00:46:28,350 --> 00:46:31,990 Lakin bu SQL sorğu, bu, 2 xətt üzərində wraps baxmayaraq, 787 00:46:31,990 --> 00:46:35,920 1 uzun sorğu edir, bu atom deməkdir 788 00:46:35,920 --> 00:46:41,000 bu sorğu ya bütün birlikdə və ya icra olunacaq mənada. 789 00:46:41,000 --> 00:46:45,100 Və MySQL müəyyənləşdirilməsinin ki, bu sorğu həyata nasıl. 790 00:46:45,100 --> 00:46:51,010 Bu da bir dəfə və ya bütün icra zəmanət əl ilə müəyyən edir. 791 00:46:51,010 --> 00:46:54,020 Aşağıdakı kimi bu üçün motivasiya edir. 792 00:46:54,020 --> 00:46:58,540 Bu halda, fond 10, səhmlərinin çalışırıq, əgər 793 00:46:58,540 --> 00:47:02,260 bu süd eyni hekayə növü var, bu, ATM eyni hekayə növü var. 794 00:47:02,260 --> 00:47:04,970 >> Siz Əgər səhv bu sintaksis istifadə 795 00:47:04,970 --> 00:47:09,610 lakin əvəzinə bazası seçilməsi bu qəpik bitmədən neçə səhmlərin görmək 796 00:47:09,610 --> 00:47:13,750 Prezident Skroob var və o, 10 səhmlərə malik güman etmir 797 00:47:13,750 --> 00:47:19,330 və sonra bir split ikinci sonra sonra OLUNUB bəyanat etmək, 798 00:47:19,330 --> 00:47:24,810 hansı irəli getmək və daha 10 səhmlərin əlavə deyir ki, SQL bir bəyanatı 799 00:47:24,810 --> 00:47:28,700 onun cari 10 ki, ideal, cəmi 20 800 00:47:28,700 --> 00:47:33,490 problem, çünki bu gün verilənlər bazası sistemləri və çünki bu gün kompüter 801 00:47:33,490 --> 00:47:35,990 Bir neçə prosessorları, çox özəyi var - 802 00:47:35,990 --> 00:47:38,920 başqa sözlə, kompüter sözün bir neçə şeyler bilər - 803 00:47:38,920 --> 00:47:44,270 heç bir təminat yoxdur ki, sizin SELECT və bu halda OLUNUB 804 00:47:44,270 --> 00:47:46,150 geri geri baş gedir. 805 00:47:46,150 --> 00:47:49,140 Pis ssenari olacaq Beləliklə, siz seçin 806 00:47:49,140 --> 00:47:51,670 neçə bu quruş fond səhmlərinin Skroob yoxdur görmek üçün, 807 00:47:51,670 --> 00:47:54,710 və sonra yalnız təsadüfən digər verilənlər bazası sorğu icra edilir - 808 00:47:54,710 --> 00:47:57,740 bəlkə başqa bir brauzer pəncərəsində öz Skroob 10 səhmləri almaq üçün çalışırıq 809 00:47:57,740 --> 00:48:00,700 başqa pəncərədə ümumiyyətlə, çox ATM kimi - 810 00:48:00,700 --> 00:48:05,410 və başqa sorğu seçin və OLUNUB arasında olur ki, nəzərdə tutur. 811 00:48:05,410 --> 00:48:10,210 Bu Skroob indi səhmlərin bir sıra itirir ki, işin ola bilər 812 00:48:10,210 --> 00:48:14,340 başqa proses onun dünyanın dövlət yoxlanılması, çünki 813 00:48:14,340 --> 00:48:17,800 və ya o olmalıdır artıq səhmlərin olur. 814 00:48:17,800 --> 00:48:23,250 Biz, xüsusilə hekayə xətləri olacaq dəqiq nə özəllikləri girməyəcəyəm 815 00:48:23,250 --> 00:48:28,380 Bir dəyişənlərin dəyəri kontrol və sonra qərar qəbul etmək varsa, lakin point 816 00:48:28,380 --> 00:48:32,500 başqası o 2 hesabatları arasında bir şey bunu bir risk varsa, 817 00:48:32,500 --> 00:48:36,220 kimi ölçüde sistemlərində multiprocessor sistemləri ola bilər 818 00:48:36,220 --> 00:48:41,220 Eyni anda birdən çox şeyə qabiliyyəti ilə kompüterlər, pis şeylər ola bilər 819 00:48:41,220 --> 00:48:44,530 kimi bank hesablarına, iki dəfə çox süd alışı, səhv tahsil edilir 820 00:48:44,530 --> 00:48:46,730 səhmlərin və ya bu halda yanlış sayı. 821 00:48:46,730 --> 00:48:48,370 Amma bu barədə düşünmək daha asan bir yolu var. 822 00:48:48,370 --> 00:48:53,290 >> Siz doğru masa konfiqurasiya əgər Bu, SQL dəstəkləyir çıxır ki, 823 00:48:53,290 --> 00:48:56,920 Mən iddia edirəm ki, əməliyyatlar deyilən bir şey anlamaq həqiqətən daha asan edir 824 00:48:56,920 --> 00:49:00,650 Bu daha çox, lakin 1-liner deyil, belə ki, həqiqətən, çox cəlb bir az var. 825 00:49:00,650 --> 00:49:04,960 START əməliyyat adlı SQL bəyanat sözün var. 826 00:49:04,960 --> 00:49:08,300 Orada SEÇİN UPDATE, INSERT, SİLİNDİ və OL və digər bir dəstə kimi, 827 00:49:08,300 --> 00:49:10,970 START əməliyyat kimi açar sözlər var. 828 00:49:10,970 --> 00:49:13,560 Və sonra pset 7 kontekstində nə - 829 00:49:13,560 --> 00:49:17,270 siz pset 7 üçün bunu yoxdur, bu, açıq-aydın zəruri deyil ETİRAZ ki, 830 00:49:17,270 --> 00:49:18,830 lakin son layihələr üçün faydalı ola bilər - 831 00:49:18,830 --> 00:49:22,820 Bir START əməliyyat sorğu və sonra başqa bir sorğu zəng əgər 832 00:49:22,820 --> 00:49:25,620 və sonra başqa bir sorğu və sonra başqa bir başqa, bir, 833 00:49:25,620 --> 00:49:31,860 Siz SQL bəyanat Komitəsi zəng qədər bu sorğu həqiqətən, edam ediləcək 834 00:49:31,860 --> 00:49:37,220 hansı nöqtədə 2 hesabatlarında və ya 20 hesabatları olsun, onlar bütün, bir dəfə icra edəcək 835 00:49:37,220 --> 00:49:42,770 hansı başqa heç bir təsadüfən çox süd və ya debet çox pul əldə edə bilərsiniz deməkdir 836 00:49:42,770 --> 00:49:46,340 sizin queries bütün icra edəcək və ya çox səhmlərinin 837 00:49:46,340 --> 00:49:48,410 geri geri geri geri. 838 00:49:48,410 --> 00:49:51,580 Bu siz bu kimi bir şey yapýyorsun xüsusilə, super vacibdir. 839 00:49:51,580 --> 00:49:54,900 Bu edək bank hesabı güncelleyin deyir ki, ixtiyari nümunəsidir 840 00:49:54,900 --> 00:50:00,200 hesabı 2 saylı olduğu $ 1000 - balans bərabər balans yaradılması. 841 00:50:00,200 --> 00:50:04,260 Və sonra ikinci bəyanat İndi ki, $ 1000 depozit qoy edir 842 00:50:04,260 --> 00:50:07,310 daxil başqası kimin haqq-hesab sayı 1 bank hesabı var. 843 00:50:07,310 --> 00:50:10,400 >> Başqa sözlə, bu Sizi əmin etmək istədiyiniz bir mükəmməl nümunəsidir 844 00:50:10,400 --> 00:50:13,590 Bu hesabatları, həm də bütün baş və ya deyil ki, 845 00:50:13,590 --> 00:50:15,450 başqa müştəri berbat almaq üçün gedir çünki 846 00:50:15,450 --> 00:50:17,670 və onların pul almaq və digər bu depozit deyil olacaq 847 00:50:17,670 --> 00:50:20,470 Siz para olacaq yerləşir və ya bank berbat almaq üçün gedir 848 00:50:20,470 --> 00:50:23,140 ancaq istifadəçi hesabınızdan çıxmaq deyil. 849 00:50:23,140 --> 00:50:25,810 Belə ki, onların hər ikisi birlikdə icra etmək istəyirik. 850 00:50:25,810 --> 00:50:29,140 Belə ki, dünya əməliyyatlar aparır. 851 00:50:29,140 --> 00:50:31,360 Belə ki, fikrinizi arxasında saxlamaq üçün bir şey var 852 00:50:31,360 --> 00:50:34,710 yalnız bir yekun layihə məqsədləri üçün çox deyil, 853 00:50:34,710 --> 00:50:36,700 lakin yerdə son layihə almaq istəyirsinizsə, 854 00:50:36,700 --> 00:50:39,040 siz ətrafında bir şirkət başlamaq istəyirsinizsə, 855 00:50:39,040 --> 00:50:41,270 siz kampus bir tələbə qrupunun problemi həll etmək istəyirsinizsə, 856 00:50:41,270 --> 00:50:45,210 və həqiqətən canlı, aktiv haqqinda, bu yarana bilər ki, incə səhvlərindən sıralama var 857 00:50:45,210 --> 00:50:49,480 Siz olduqca vasitəsilə düşünmürəm əgər nə edə bilər, əgər 2 nəfər 858 00:50:49,480 --> 00:50:54,190 vaxt sanki eyni anda sizin web daxil olmaq üçün çalışırıq, 859 00:50:54,190 --> 00:50:56,890 qovuşdurmağımız onların sorğuları başqa interwoven almaq bilər. 860 00:50:58,840 --> 00:51:01,420 >> Bəzi JavaScript, onun teaser üçün hazır? 861 00:51:01,420 --> 00:51:04,320 Bu dövr üçün son dilidir. Bütün hüquqlar. 862 00:51:04,320 --> 00:51:09,940 Şükür, JavaScript, 2 dildə, C və PHP çox, çox, çox benzer 863 00:51:09,940 --> 00:51:11,140 biz belə uzaq etdik. 864 00:51:11,140 --> 00:51:14,340 Yoxdur pset 7 heç JavaScript, ancaq inanılmaz faydalı aracıdır 865 00:51:14,340 --> 00:51:18,840 bu web-based final layihələr edir və ya, həqiqətən, yalnız web proqramlaşdırma ümumiyyətlə gəldiyi zaman. 866 00:51:18,840 --> 00:51:20,950 DOM adlı bir şey Belə sürətli bir genel bakış. 867 00:51:20,950 --> 00:51:23,600 Burada həqiqətən yalnız hello, dünya deyir ki, super sadə web səhifə 868 00:51:23,600 --> 00:51:25,970 adı və bədən də. 869 00:51:25,970 --> 00:51:29,270 Bu abzas, bir müddət təklif etdi 870 00:51:29,270 --> 00:51:31,380 web pages bir iyerarxiya həqiqətən var. 871 00:51:31,380 --> 00:51:34,220 Mən bir ağac kimi HTML eyni parçasını cəlb edə bilər 872 00:51:34,220 --> 00:51:37,470 , C data strukturlarının bizim müzakirələr geri düşüncə aşağıdakı kimi. 873 00:51:37,470 --> 00:51:40,710 Mən sənəd node adlı xüsusi kök node var 874 00:51:40,710 --> 00:51:43,650 və biz yalnız bir anda JavaScript bu analog görəcəksiniz. 875 00:51:43,650 --> 00:51:48,330 Bu halda ilk uşaq və yalnız uşaq HTML tag edir. 876 00:51:48,330 --> 00:51:49,880 Bu doctype birbaşa Xəritəçəkmə var. 877 00:51:49,880 --> 00:51:53,170 Xüsusi bir şey, bu DOM gəldikdə biz yalnız ignore lazımdır 878 00:51:53,170 --> 00:51:55,810 bu Document Object Model ağac. 879 00:51:55,810 --> 00:51:59,530 Qeyd edək ki, bir düzbucaqlı kimi özbaşına təsvir etdiyiniz HTML tag, 880 00:51:59,530 --> 00:52:02,890 baş və bədən: 2 övladı var. 881 00:52:02,890 --> 00:52:04,840 >> Bu eyni düzbucaqlı kimi tərtib olunur. 882 00:52:04,840 --> 00:52:08,970 Bu baş orqanının sol ki pictorially mənalı. 883 00:52:08,970 --> 00:52:11,960 Bu dolayısı rəhbəri ağac birinci gəlir ki. 884 00:52:11,960 --> 00:52:14,910 Bu kimi cəlb Belə ki, bir ağac sifariş, əslində var 885 00:52:14,910 --> 00:52:17,460 şekiller və etajer ixtiyari olsa belə. 886 00:52:17,460 --> 00:52:20,360 Baş zamanda, mövzu adlı bir uşaq var 887 00:52:20,360 --> 00:52:25,170 və ixtisasın adı əslində "hello, dünya" olan öz uşaq var 888 00:52:25,170 --> 00:52:32,210 I qəsdən düzbucaqlı bu qədər müxtəlif etmək üçün burada bir oval kimi çəkdi. 889 00:52:32,210 --> 00:52:37,420 Hello, dünya həqiqətən bir mətn node isə bu düzbucaqlı, elementləridir. 890 00:52:37,420 --> 00:52:39,850 Belə ki, ağac bir node, ancaq node müxtəlif növü var 891 00:52:39,850 --> 00:52:41,730 Mən özbaşına fərqli o çəkdi. 892 00:52:41,730 --> 00:52:45,000 Eyni bədən, eləcə hello, dünya adlı bir uşaq var 893 00:52:45,000 --> 00:52:47,910 onlar təsadüfən eyni mətn olmalarına baxmayaraq müxtəlif node, 894 00:52:47,910 --> 00:52:52,100 amma eyni forma istifadə edərək tərtib etdik. Belə ki, kimin umurunda? 895 00:52:52,100 --> 00:52:56,820 Yaxşı, HTML haqqında gözəl nə bu iyerarxik xarakteri yoxdur ki. 896 00:52:56,820 --> 00:53:01,010 Və JavaScript və sərbəst mövcud xüsusilə kitabxana haqqında gözəl nə 897 00:53:01,010 --> 00:53:07,120 və jQuery kimi məşhur, bunu qəribə asan ağac strukturu bilərsiniz. 898 00:53:07,120 --> 00:53:11,790 Biz göstəricilərinə və traversing ağacları ilə C etdi işçilərinin hər hansı və qovşaqlarının haqqında recursing 899 00:53:11,790 --> 00:53:15,300 verilən hüququnun uşaq sol uşaq, biz sıralayabilirsiniz qəflətən almaq 900 00:53:15,300 --> 00:53:19,450 bir az sinir bozucu deyil, əgər qəribə maarifləndirici kimi 901 00:53:19,450 --> 00:53:22,470 lakin yaxın proqramlaşdırma haqqında getmək üçün səmərəli yoludur. 902 00:53:22,470 --> 00:53:24,470 Və JavaScript kimi bu yüksək dillərdə 903 00:53:24,470 --> 00:53:28,340 biz daha çox daxilən bu ağac naviqasiya bilərsiniz. 904 00:53:28,340 --> 00:53:30,430 >> Və həqiqətən sintaksis olduqca tanış olacaq. 905 00:53:30,430 --> 00:53:32,950 Əvvəl JavaScript görməmişəm, bu, həqiqətən, gözəl istinad edir 906 00:53:32,950 --> 00:53:35,910 Mozilla insanlar, bu insanların Firefox etmək, 907 00:53:35,910 --> 00:53:38,370 belə sizin rahatlığınız ki, göz pulsuz hiss edirsiniz. 908 00:53:38,370 --> 00:53:41,590 Nə tapa bilərsiniz - bu slaydlar biz başqa gün istifadə nə ilə eynidir - 909 00:53:41,590 --> 00:53:44,030 eyni, əsas getdi. 910 00:53:44,030 --> 00:53:47,010 Beləliklə, siz JavaScript bir proqram yazmaq zaman, heç bir əsas funksiyası var. 911 00:53:47,010 --> 00:53:48,690 Siz yalnız kodu yazmağa başlayın. 912 00:53:48,690 --> 00:53:51,660 Lakin JavaScript və C və PHP arasında əsas fərq 913 00:53:51,660 --> 00:53:55,890 ki, C və PHP belə uzaq server yan həyata keçirilib halbuki 914 00:53:55,890 --> 00:53:59,180 bu halda cihaz və ya daha ümumi bir server ilə, 915 00:53:59,180 --> 00:54:04,270 Dizayn JavaScript adətən bir brauzer tərəfindən icra edilir. 916 00:54:04,270 --> 00:54:08,440 Başqa sözlə, siz, biz təxminən etdiyiniz kimi, JavaScript kodu yazmaq bilər 917 00:54:08,440 --> 00:54:13,080 bir cihaz ilə server, ancaq siz CSS arasında HTML arasında daxil haqqında, 918 00:54:13,080 --> 00:54:16,100 Sizin gifs və PNGs və JPEGs arasında 919 00:54:16,100 --> 00:54:19,170 ki, siz JavaScript kullanıyorsanız, istifadəçi web page ziyaret zaman 920 00:54:19,170 --> 00:54:21,770 ki, JavaScript kodu, server browser gəlir 921 00:54:21,770 --> 00:54:24,540 və həqiqətən həyata ki browser edir. 922 00:54:24,540 --> 00:54:27,960 Belə ki, bu da əqli mülkiyyət mənalı təsir göstərir. 923 00:54:27,960 --> 00:54:32,600 JavaScript kodu gəldikdə hətta IP qorunması haqqında düşünmək silly növü var 924 00:54:32,600 --> 00:54:37,560 dilin təbiəti adətən browser yan icra olur çünki. 925 00:54:37,560 --> 00:54:40,360 >> Siz crazy və çirkin baxmaq edə bilərsiniz deməkdir ki, qaralmaq olar 926 00:54:40,360 --> 00:54:45,400 heç bir ağ ilə, insanların IP oğurlamaq üçün çətindir etmək dəhşətli dəyişən adları, 927 00:54:45,400 --> 00:54:48,120 lakin əsas bu brauzer yan icra olunur. 928 00:54:48,120 --> 00:54:51,790 Hətta bir kənara JavaScript istifadə edilə bilər server yan kimi, 929 00:54:51,790 --> 00:54:54,480 ən ümumi istifadə halda hazırda brauzerinizin hələ. 930 00:54:54,480 --> 00:54:59,800 Burada bu kimi görünür nə. Burada if-else if-else yalnız PHP kimi, yalnız C kimi inşa edir. 931 00:54:59,800 --> 00:55:02,420 Zaman "və ya" 2 şeyi birlikdə Burada bir Boolean ifadəsidir. 932 00:55:02,420 --> 00:55:04,330 Burada birlikdə zaman "və" 2 şeylər. 933 00:55:04,330 --> 00:55:08,300 Burada PHP oxşar olan bir keçid bəyanat edir 934 00:55:08,300 --> 00:55:10,810 ki, siz dəyərlərin müxtəlif növ bilərsiniz. 935 00:55:10,810 --> 00:55:15,180 Döngüler eynilə biz əvvəl gördüm nə eyni qurulmuş olan, burada loops var. 936 00:55:15,180 --> 00:55:18,110 Baxmayaraq ilmə, biz loops isə nə var. 937 00:55:18,110 --> 00:55:20,290 Dəyişənlər, heç belə bir az fərqli. 938 00:55:20,290 --> 00:55:24,560 Əgər PHP və C nə kimi Siz, dəyişənlərin elan yoxdur 939 00:55:24,560 --> 00:55:27,860 lakin eyni JavaScript zəif çap olunur. 940 00:55:27,860 --> 00:55:32,730 Siz int və ya float və ya simli və ya adətən belə bir şey daxil deyil. 941 00:55:32,730 --> 00:55:34,240 Siz var belirtebilirsiniz. 942 00:55:34,240 --> 00:55:38,040 Siz var bilersiniz yoxdur, ancaq əgər bu təsir göstərir. 943 00:55:38,040 --> 00:55:42,000 Siz var buraxmaq Adətən, əgər təsadüfən əvəzinə yerli qlobal dəyişən yaratmaq. 944 00:55:42,000 --> 00:55:46,420 Beləliklə, demək olar ki, həmişə yalnız var demək və sonra dəyişən adı mənə təklif edək. 945 00:55:46,420 --> 00:55:48,740 Bu bir növü deyil, dəyişən sadəcə var var. 946 00:55:48,740 --> 00:55:52,930 Bu 123 və ya "Salam, dünya" olub, nümunə ola bilər. 947 00:55:52,930 --> 00:55:58,910 Diziler indiki və PHP üçün syntactically oxşardır. 948 00:55:58,910 --> 00:56:03,690 Mən var nömrələri demək lazımdır və sonra dəyişən bəyan yenidən kvadrat mötərizə istifadə 949 00:56:03,690 --> 00:56:08,870 virgülle ayrılmış o bu xüsusi nömrələri ki array olan növüdür. 950 00:56:08,870 --> 00:56:11,740 Və sonra nəhayət, bu, həqiqətən müxtəlif görünür ki, yalnız biridir. 951 00:56:11,740 --> 00:56:16,700 PHP biz bir tələbə üçün assosiativ array həyata olardı Xatırladaq ki, 952 00:56:16,700 --> 00:56:20,220 Zamyla kimi dəyişən tələbə adlanır yerləşir ki, bu kimi baxmaq bilər. 953 00:56:20,220 --> 00:56:23,370 Bu kvadrat mötərizə burada bir sıra gəlir deməkdir. 954 00:56:23,370 --> 00:56:28,500 >> Mən rəqəmli göstəriciləri lakin strings istifadə deyiləm ki - id, ev, və adı - 955 00:56:28,500 --> 00:56:30,990 bu assosiativ array o deməkdir ki, 956 00:56:30,990 --> 00:56:34,490 və bu oxlar işarəsi və bucaqlı mötərizə bərabərdir 957 00:56:34,490 --> 00:56:37,310 əsas "id" deməkdir, dəyəri 1; 958 00:56:37,310 --> 00:56:39,310 əsas "ev" dir dəyəri Winthrop House; 959 00:56:39,310 --> 00:56:41,800 əsas "adı" dir dəyəri Zamyla Chan edir. 960 00:56:41,800 --> 00:56:47,110 Belə ki, içərisində öz dəyəri var hər biri bu assosiativ dizi, 3 düymələri var. 961 00:56:47,110 --> 00:56:52,880 Biz pset 7, və ya tezliklə olacaq, JavaScript eyni fikir, gördüm 962 00:56:52,880 --> 00:56:55,220 lakin bu kimi baxmaq olacaq. 963 00:56:55,220 --> 00:57:00,070 Belə ki, var tələbə - no dollar işarəsi və növü qeyd hələ lakin var - 964 00:57:00,070 --> 00:57:05,860 JavaScript sizin əsas dəyər cüt zaman çünki qıvrım aşırma açın bərabərdir və 965 00:57:05,860 --> 00:57:08,900 siz həqiqətən bir obyekt deyilən bir şey istifadə edin. 966 00:57:08,900 --> 00:57:13,490 Və APCS almaq və ya kimi etməyən sizin Java olan obyektlərin xatırlayıram bilər 967 00:57:13,490 --> 00:57:15,140 və ya oxşar dillər. 968 00:57:15,140 --> 00:57:17,880 JavaScript ilk növbədə, Java deyil. 969 00:57:17,880 --> 00:57:21,600 O, məşhur idi ki, başqa bir şey çırpmaq üçün qəsdən dizayn qərar il əvvəl 970 00:57:21,600 --> 00:57:25,640 onun adı, özü Java heç bir əsas əlaqəsi olsa belə. 971 00:57:25,640 --> 00:57:31,490 JavaScript obyekti var və siz buruq brace notation yolu ilə onlara yaradır. 972 00:57:31,490 --> 00:57:36,710 JavaScript obyektlərin PHP assosiativ serialların olduqca çox ekvivalent 973 00:57:36,710 --> 00:57:40,030 onların içərisində saxlanılması data gəldiyi zaman. 974 00:57:40,030 --> 00:57:44,100 >> Lakin daha güclü JavaScript siz çox asan funksiyaları ilişkilendirebilirsiniz 975 00:57:44,100 --> 00:57:48,040 bir obyekt daxilində, və digər dillərdə edə bilərsiniz baxmayaraq, 976 00:57:48,040 --> 00:57:50,040 biz görəcəksiniz kimi, olduqca ümumi bir paradiqma var. 977 00:57:50,040 --> 00:57:54,380 Bir sözlə, bu obyekt, xüsusilə Zamyla olan, tələbə təmsil 978 00:57:54,380 --> 00:58:00,380 və bu, konseptual bu yalnız syntactically müxtəlif oxşar. 979 00:58:00,380 --> 00:58:03,840 Nin həqiqətən bir fayl JavaScript istifadə edək. 980 00:58:03,840 --> 00:58:05,570 Bir script tag var həyata çevirir. 981 00:58:05,570 --> 00:58:08,180 Biz stil tag gördük və biz digər HTML tags gördük. 982 00:58:08,180 --> 00:58:11,510 Bu script tag həqiqətən bir JavaScript kodu ehtiva edir. 983 00:58:11,510 --> 00:58:15,500 Biz bir mənbə kodu əvvəlcədən hazırlanmış olduğu mənə cihaz daxil edək. 984 00:58:15,500 --> 00:58:18,700 Mən saytında hələ olunub, lakin mən sinif sonra edəcəyik. 985 00:58:18,700 --> 00:58:21,770 Nin, blink.html bu bir açmaq edək. 986 00:58:21,770 --> 00:58:27,560 Geri 1990-cı ildə, blink tag adlı HTML tag, sözün var idi 987 00:58:27,560 --> 00:58:30,340 və bu internet üzrə ən gözəl overused tags biri idi 988 00:58:30,340 --> 00:58:36,140 Bəzi 1990 üslub web səhifəsinə baxın və bu kimi flashing mətn görmeye başlamaq istədiyiniz vasitəsi 989 00:58:36,140 --> 00:58:39,810 Marquis tag nəticələri, mətn bu kimi davam etmişdir. 990 00:58:39,810 --> 00:58:45,070 Dünya həqiqətən bir web standart qəbul etdiyi neçə dəfə biri 991 00:58:45,070 --> 00:58:48,250 heyəti arasında hər kəs bir neçə il əvvəl qırpmaq tag öldürdü. 992 00:58:48,250 --> 00:58:52,860 Amma biz sizə güc nümayişi kimi JavaScript ilə xortlamaq bilər 993 00:58:52,860 --> 00:58:56,660 bir web səhifə daxilində bir proqram yazmaq bilər. 994 00:58:56,660 --> 00:59:00,240 Birinci nin yeni məhsulları üzərində keçmək və köhnə yalnız diqqət edək. 995 00:59:00,240 --> 00:59:01,780 >> Bu nümunə köhnə stuff deyil. 996 00:59:01,780 --> 00:59:06,350 Mən HTML tag, baş tag, və adı tag var. 997 00:59:06,350 --> 00:59:11,210 Sonra bir div burada bir bədən etiketi olan geri yalnız səhifə düzbucaqlı bölgüsü 998 00:59:11,210 --> 00:59:14,720 Mən "salam" nin özbaşına unikal ID təqdim etdik ki, 999 00:59:14,720 --> 00:59:18,320 yalnız mən benzersiz ona aid bir yol var ki, bir çox sadə mətn var: 1000 00:59:18,320 --> 00:59:20,220 hello, dünya. 1001 00:59:20,220 --> 00:59:23,940 İndi mənə bu faylı üst diyirləyin və yeni nə bildirin. 1002 00:59:23,940 --> 00:59:27,710 Yeni üst ki, ilk şey, skript faylı tag edir 1003 00:59:27,710 --> 00:59:31,280 və içərisində script tag bildiriş bir funksiyası elan etdik. 1004 00:59:31,280 --> 00:59:34,610 PHP olduqca oxşar JavaScript funksiyası, elan etmək üçün, 1005 00:59:34,610 --> 00:59:37,930 siz sözün funksiyası funksiyası sonra adı, parantez, yazmaq 1006 00:59:37,930 --> 00:59:40,400 və bəlkə bəzi dəlilləri hər hansı bir edir, əgər. 1007 00:59:40,400 --> 00:59:43,510 , Sonra mən həmişəki kimi mənim buruq brace var, indi biz bir az yeni kodu 1008 00:59:43,510 --> 00:59:45,230 lakin bu nə deməkdir bax edək. 1009 00:59:45,230 --> 00:59:48,670 Var div Belə ki, bu yalnız mənə bir dəyişən adlandırılan div vermək deməkdir. 1010 00:59:48,670 --> 00:59:50,530 Mən bu foo adlı bilərdi, ancaq div adlandırmaq istədi 1011 00:59:50,530 --> 00:59:52,620 ikinci aydın olacaq səbəblərə görə. 1012 00:59:52,620 --> 00:59:57,480 Sonra JavaScript çıxır - bu mənim web page daxil JavaScript kodu - 1013 00:59:57,480 --> 01:00:01,760 sənəd adlı növ xüsusi qlobal dəyişən var. 1014 01:00:01,760 --> 01:00:04,780 JavaScript əslində bir obyekt-yönümlü dilidir. 1015 01:00:04,780 --> 01:00:07,230 Biz, o deməkdir ki, nə kimi 50 ətraflı girməyəcəyəm 1016 01:00:07,230 --> 01:00:11,180 amma indi bir obyekt bir struct kimi olduqca çox olduğunu bilirik. 1017 01:00:11,180 --> 01:00:14,740 Ən problem bir müəyyən zaman geri yol gördüm kimi 1018 01:00:14,740 --> 01:00:17,150 biz bir struct məlumat bir çox qoymaq 1019 01:00:17,150 --> 01:00:21,330 Eynilə, brauzeri ilə gəlir ki, xüsusi struct sənəd 1020 01:00:21,330 --> 01:00:24,810 Hər hansı bir web səhifə ilə gəlir. Mən yaradılmış bir şey deyil. 1021 01:00:24,810 --> 01:00:28,210 Bu sənədin strukturu daxilində olsa da, siz məlumatların yalnız 1022 01:00:28,210 --> 01:00:30,010 lakin siz də funksiyaları vardır. 1023 01:00:30,010 --> 01:00:34,090 >> Və hər zaman, daxili obyektin bir quruluş içərisində bir funksiyası var 1024 01:00:34,090 --> 01:00:36,490 bir metod deyirlər. Lakin eyni şey. 1025 01:00:36,490 --> 01:00:40,110 Metodu yalnız belə başqa bir şey daxilində olur ki, bir funksiyası var. 1026 01:00:40,110 --> 01:00:42,990 Bu xüsusi qlobal dəyişən sənəd adlandırıb ki, bu vasitələri Belə ki, 1027 01:00:42,990 --> 01:00:47,690 funksiyası sanki o ki getElementById çağırıb. 1028 01:00:47,690 --> 01:00:52,460 Siz DOM bir element, Document Object Model ağacı olacaq 1029 01:00:52,460 --> 01:00:55,520 Bu halda təbrik uca ID edir. 1030 01:00:55,520 --> 01:00:59,200 Başqa sözlə, biz data strukturları sərf bütün vaxt burada dövrəyə girir. 1031 01:00:59,200 --> 01:01:01,400 Biz bir an əvvəl ki, bir DOM Bu şəkil, 1032 01:01:01,400 --> 01:01:06,100 səhifə Mən bu şəkil bir div olsa, bir az fərqli olsa 1033 01:01:06,100 --> 01:01:11,180 nə document.getElementById mənə qayıdandan səmərəli bir göstərici ola bilər 1034 01:01:11,180 --> 01:01:15,440 ağac, ağac olan düzbucaqlı istinad olan düzbucaqlı üçün. 1035 01:01:15,440 --> 01:01:18,410 Belə ki, həqiqətən bu funksiyaları bir zəng etmək nə deməkdir var. 1036 01:01:18,410 --> 01:01:21,960 Bu halda daha bir div var. Bu orqan və ya bir mövzu deyil. 1037 01:01:21,960 --> 01:01:26,480 Mən sonra indi bu dəyişən adlı div daxilində var ki, bu div ilə nə edək. 1038 01:01:26,480 --> 01:01:32,580 Bu dinamik səhifə CSS çimdik imkanı JavaScript ilə çıxır. 1039 01:01:32,580 --> 01:01:39,060 İndiyədək biz məhdud olsa etdik CSS, bütün stil atributları edir 1040 01:01:39,060 --> 01:01:41,730 və ya biz CSS yerləşir başqa qoymaq? 1041 01:01:42,730 --> 01:01:45,810 Korlanmış bir I növ. Fayl üst stil tag edir. 1042 01:01:45,810 --> 01:01:49,180 Və ya üçüncü yer olub? 1043 01:01:50,710 --> 01:01:54,590 >> Bir xarici fayl, bir şey. Css. 1044 01:01:54,590 --> 01:01:56,730 Belə ki, o, biz CSS bu günə qədər etdiyiniz 3 yerləri 1045 01:01:56,730 --> 01:01:59,310 lakin tutmaq biz sərt bütün kodlu etdik edir. 1046 01:01:59,310 --> 01:02:04,060 Bizim CSS nə mühazirə əvvəl pset 7 daxil göyərçin kimi qərar, biz qərara aldı. 1047 01:02:04,060 --> 01:02:07,380 Sizin CSS dəyişmək istəyirsinizsə Lakin, həqiqətən bunu edə bilər 1048 01:02:07,380 --> 01:02:09,370 bir dəfə bir faktiki proqramlaşdırma dili var. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - proqramlaşdırma deyil languages. JavaScript edir. 1050 01:02:13,910 --> 01:02:18,200 Belə ki, tez ağac həmin düzbucaqlı biri kimi çıxır ki, 1051 01:02:18,200 --> 01:02:23,050 DOM adlı, o, özü daxilində bəzi məlumatlar var. 1052 01:02:23,050 --> 01:02:27,820 Mən yalnız ağac tutdu ki div biz bunu daxilində mülkiyyət zəng edəcəyik, nə var 1053 01:02:27,820 --> 01:02:34,390 stil çağırıb və stil əmlak özü görünürlüğünü adlı əmlak var. 1054 01:02:34,390 --> 01:02:37,330 Mən yalnız CSS istifadə qaydaları ararken, bu bilirsən. 1055 01:02:37,330 --> 01:02:41,160 O deyir ki, bir görünürlüğünü CSS əmlak var həyata çevirir. 1056 01:02:41,160 --> 01:02:44,530 Bu görünən və ya deyil, görünən və ya bir şey edir. 1057 01:02:44,530 --> 01:02:46,810 Və necə ki bu. 1058 01:02:46,810 --> 01:02:50,510 Bu div də görünürlüğünü gizli, mən program xahiş edirəm 1059 01:02:50,510 --> 01:02:53,390 Mən bunu nə dəyişə bilərəm? Görünür. 1060 01:02:53,390 --> 01:02:58,840 Bu səhifə görünürlüğünü gizli deyil əgər Else, məntiqi Mən bunu gizli edə bilərəm. 1061 01:02:58,840 --> 01:03:04,070 Mən bu görünən və gizli və görünən və görünməyən deyil nə heç bir fikrim yoxdur. 1062 01:03:04,070 --> 01:03:06,000 Bu yol boyunca bir yoxsul dizayn qərar idi. 1063 01:03:06,000 --> 01:03:09,530 Ancaq o həqiqətən CSS ilə opposites var: görünən və gizli. 1064 01:03:09,530 --> 01:03:15,520 Bütün bu və off, bu və off mənim fayl CSS dəyişdirmək deməkdir bilir 1065 01:03:15,520 --> 01:03:16,870 xüsusi div üçün. 1066 01:03:16,870 --> 01:03:20,630 Ancaq yenə də, bu blink adlı bir funksiyası var. Bu blink funksiyası zaman adlanır? 1067 01:03:20,630 --> 01:03:24,080 Bu, başqa xüsusi qlobal dəyişən adlı pəncərə var çıxır ki, 1068 01:03:24,080 --> 01:03:28,220 sənəd ruhda oxşar, lakin sənəd web səhifə aiddir halbuki, 1069 01:03:28,220 --> 01:03:31,700 DOM ağac kimi, HTML siz server göndərilən 1070 01:03:31,700 --> 01:03:35,250 pəncərə, onun ətrafında xrom, ünvanı bar, mövzu bar aiddir 1071 01:03:35,250 --> 01:03:37,880 və web səhifə ətrafında məhsullarının bütün. 1072 01:03:37,880 --> 01:03:42,800 >> Və pəncərə obyekt setInterval adlı bu xüsusi funksiya daxilində var çıxır ki, 1073 01:03:42,800 --> 01:03:44,360 ki, deyir nə. 1074 01:03:44,360 --> 01:03:48,600 Bu interval müəyyən edəcək - bu halda hər 500 ms - 1075 01:03:48,600 --> 01:03:52,270 və bir tahmin etmək, nə 500 ms hər nə olacaq? 1076 01:03:52,270 --> 01:03:55,240 Bu funksiya blink icra edəcək. 1077 01:03:55,240 --> 01:03:58,560 Nə burada gözəl Biz heç baxmayaraq biz C bu edə bilərdi ki. 1078 01:03:58,560 --> 01:04:01,580 C ətrafında funksiyaları keçmək bilərsiniz funksiyası göstəricilərinə deyilən bir şey yoxdur 1079 01:04:01,580 --> 01:04:03,140 arqumentlər kimi. 1080 01:04:03,140 --> 01:04:07,620 Eyni JavaScript başqa bir funksiyası bir funksiyası adı keçə bilər. 1081 01:04:07,620 --> 01:04:10,630 Mən yapýyorum nə görürsünüz. Mən bunu deyiləm. 1082 01:04:10,630 --> 01:04:14,380 Mən blink sonra mötərizədə qoymaq edin ki, blink funksiyası zəng deməkdir. 1083 01:04:14,380 --> 01:04:17,430 Mən onlara buraxmaq edin ki, blink funksiyası burada deməkdir 1084 01:04:17,430 --> 01:04:21,330 ki setInterval hər 500 ms zəng edə bilərsiniz. 1085 01:04:21,330 --> 01:04:28,200 Belə ki, son nəticə, bu dəhşətli olsa, mən localhost getmək və blink.html getmək əgər ki, 1086 01:04:28,200 --> 01:04:32,120 İndi təkrar bu baş var. 1087 01:04:32,120 --> 01:04:34,950 Mən həqiqətən Element Inspect, biz bunu görürük əgər in görək. 1088 01:04:34,950 --> 01:04:38,550 Mənə Element Inspect edək, mənə bir az aşağı diyirləyin bildirin 1089 01:04:38,550 --> 01:04:44,320 Mənə burada Element seçmək bildirin, və Chrome-nin inspektor DOM içərisində görürük. 1090 01:04:44,320 --> 01:04:48,840 Bu sözün geri və irəli hər 500 ms dəyişən var. 1091 01:04:48,840 --> 01:04:55,660 Biz dost Nate, getmək edin 1092 01:04:55,660 --> 01:05:00,020 Heç bir interval ilə bu iş necə, oxşar ideya merak, əgər 1093 01:05:00,020 --> 01:05:04,810 lakin Nate həqiqətən burada bu halda rəng çox səmərəli istifadə edir. 1094 01:05:04,810 --> 01:05:07,350 Belə ki, nə daha biz, həqiqətən, bu nə ola bilər? 1095 01:05:07,350 --> 01:05:09,990 Nin başqa bir misal açmaq və bir cəhd edək 1096 01:05:09,990 --> 01:05:12,940 o program şeyi blink edilməsi daha çox yararlıdır. 1097 01:05:12,940 --> 01:05:17,990 Mənə bu gün formaları qovluğuna girin və form0 daxil edək. 1098 01:05:17,990 --> 01:05:20,820 Bu, mən gəlib biləcək ugliest mümkün forması idi 1099 01:05:20,820 --> 01:05:23,290 və mənə yalnız bir brauzer kimi görünür nə göstərmək bildirin. 1100 01:05:23,290 --> 01:05:28,960 >> Mənə localhost / formaları getmək və bu form0 deyil edək. 1101 01:05:28,960 --> 01:05:33,400 Bu, parol, e-poçt üçün bir neçə sahələrdə bir super çirkin HTML forması 1102 01:05:33,400 --> 01:05:37,190 parol, sonra bəzi şərtlər etmiş bir az onay. 1103 01:05:37,190 --> 01:05:41,350 Mən bu formu və sizə mənim e-mail vermək istəmirsinizsə tutmaq deyil 1104 01:05:41,350 --> 01:05:44,730 Mən bəlkə şərtləri razı istəmirəm, mən Qeydiyyat basın 1105 01:05:44,730 --> 01:05:46,920 və hər halda mənə vasitəsilə imkan verir. 1106 01:05:46,920 --> 01:05:50,800 Bu dump.php adlı axmaq PHP fayl təqdim olur. 1107 01:05:50,800 --> 01:05:58,420 Bunu yalnız diaqnostik məqsədlər üçün $ _GET məzmunu çap edir. 1108 01:05:58,420 --> 01:06:01,580 Bu yalnız artıq istifadəçi tərəfindən təqdim edilmişdir nə idi. 1109 01:06:01,580 --> 01:06:05,010 Ancaq biz, həqiqətən, istifadəçi formada təqdim doğrulamak üçün istədiyiniz nəzərdə tutur. 1110 01:06:05,010 --> 01:06:06,530 Mənə version 1 daxil edək. 1111 01:06:06,530 --> 01:06:11,420 Bu form1.html edir. Bu, yalnız pis kimi estetik görünür, ancaq nə xülya bilərsiniz. 1112 01:06:11,420 --> 01:06:15,450 Mən əməkdaşlıq olmadan Qeydiyyatdan basın varsa, mən yelled almaq. 1113 01:06:15,450 --> 01:06:17,320 "Siz e-mail lazımdır." 1114 01:06:17,320 --> 01:06:21,670 Bütün hüquqlar. Belə ki, mənə edək. Malan@harvard.edu belə. Mən bir parol lazım deyil. 1115 01:06:21,670 --> 01:06:25,100 Qeydiyyat. "Siz bir parol təmin etməlidir." Bütün hüquqlar. 1116 01:06:25,100 --> 01:06:28,470 Mən allıq bir parol təmin edəcək. Qeydiyyat. 1117 01:06:28,470 --> 01:06:32,300 "Parollar uyğun gəlmir." İndi allıq burada yazın var. 1118 01:06:32,300 --> 01:06:35,710 Mən təsadüfən ki yoxlanılır. Qeydiyyat. 1119 01:06:35,710 --> 01:06:39,860 "Siz və şərtləri razı olmalıdır." Bütün hüquqlar. Orada razıyam. Qeydiyyat. 1120 01:06:39,860 --> 01:06:43,700 İndi mənə orada diaqnostik çıxış göstərir. 1121 01:06:43,700 --> 01:06:45,630 >> Belə ki, yalnız nə oldu? 1122 01:06:45,630 --> 01:06:48,330 Biz formada təqdim doğrulamak üçün bu qabiliyyəti etdik. 1123 01:06:48,330 --> 01:06:51,420 Siz pset 7 daxil dive əgər Əslində, bir Üzr istəyir funksiyası var 1124 01:06:51,420 --> 01:06:54,620 ekranda bir mesaj ilə istifadəçi fəğan etmək olduqca asan edir. 1125 01:06:54,620 --> 01:06:57,580 Mən bir az fərqli mexanizmi, siqnalı funksiyası, kullanıyorum 1126 01:06:57,580 --> 01:07:03,690 bu çox çirkin istifadəçi ismarıclarınız edir ildən sonra gülümsədi ki funksiyası deyil. 1127 01:07:03,690 --> 01:07:05,710 Amma burada yapýyorum nə edək. 1128 01:07:05,710 --> 01:07:09,620 Bu form1.html və mən bəzi olduqca tanış sintaksis olduğunu fark: 1129 01:07:09,620 --> 01:07:12,920 bədən tag, forması tag, fəaliyyət atributu, üsul atribut. 1130 01:07:12,920 --> 01:07:17,050 Amma forma rahatlığı üçün unikal ID verdiyiniz bilərsiniz. 1131 01:07:17,050 --> 01:07:19,190 Sonra onun növü mətn bir e-poçt sahəsində var 1132 01:07:19,190 --> 01:07:23,780 kimin növü kimin növü parol parol təsdiq sahəsində bir parol sahəsində, 1133 01:07:23,780 --> 01:07:28,070 və sonra onun adı burada müqavilə bir onay, növü onay edir. 1134 01:07:28,070 --> 01:07:30,380 Və sonra bir submit 'düyməsinə var. 1135 01:07:30,380 --> 01:07:33,050 Amma daha mən nə üst bildiriş. 1136 01:07:33,050 --> 01:07:35,810 İlk növbədə, script tag digər istifadə var. 1137 01:07:35,810 --> 01:07:40,520 Yalnız CSS ilə kimi, başqa bir fayl bəzi JavaScript kodu varsa daxil edə bilərsiniz. 1138 01:07:40,520 --> 01:07:44,530 Və siz script mənbə ilə bunu, sonra mən yəqin bağlayıram qeyd 1139 01:07:44,530 --> 01:07:50,349 çox uzun yol googleapis.com lakin fayl adı jquery.min bitir üçün 1140 01:07:50,349 --> 01:07:52,420 minimum üçün. js. 1141 01:07:52,420 --> 01:07:55,969 jQuery yalnız JavaScript edir JavaScript üçün super məşhur kitabxana 1142 01:07:55,969 --> 01:07:58,230 bütün daha çox istifadəçi dostu istifadə etmək. 1143 01:07:58,230 --> 01:08:00,610 Bu səmərəli de fakto standart olmaq var. 1144 01:08:00,610 --> 01:08:04,090 Belə ki, hətta haqqında görmək istəyirik nə olsa da, təmiz JavaScript özlüyündə deyil 1145 01:08:04,090 --> 01:08:09,340 o qədər CS50 kitabxana kimi JavaScript üst bir kitabxana bir qat edir 1146 01:08:09,340 --> 01:08:13,670 aşağı səviyyədə C kodu üst; həqiqəti demək olar ki, İnternet hər kəs istifadə edir. 1147 01:08:13,670 --> 01:08:18,030 Belə ki, bu təlim təkərlər deyil. Bu yalnız yaxşı bu gün etiqad edir. 1148 01:08:18,030 --> 01:08:22,830 İndi öz script tag edir ki, aşağıda qeyd, mən burada etdik nə görürsünüz. 1149 01:08:22,830 --> 01:08:27,450 Bu jQuery bir şey bir az xülya ki çıxır. 1150 01:08:27,450 --> 01:08:29,660 JavaScript dollar əlamətləri var, lakin onlar mənasız edir. 1151 01:08:29,660 --> 01:08:32,870 >> Onlar məktubu A və ya B və ya C kimi 1152 01:08:32,870 --> 01:08:36,670 jQuery sadəcə onunla çəkilmiş iddia Konvensiyanın və ya sort qəbul etmişdir 1153 01:08:36,670 --> 01:08:40,280 $ onların xüsusi simvolu olacaq. 1154 01:08:40,280 --> 01:08:44,950 Siz script tag ilə burada bu qlobal JavaScript fayl up yük Belə kimi, 1155 01:08:44,950 --> 01:08:49,080 siz $ adlı xüsusi bir qlobal dəyişən girmə imkanı vardır. 1156 01:08:49,080 --> 01:08:53,009 Bu daha düzgün jQuery deyirlər, lakin $ kimi təxminən kimi sexy baxmaq deyil. 1157 01:08:53,009 --> 01:08:56,250 Ancaq $ heç bir xüsusi məna daşıyır. PHP bu xüsusi mənası var idi. 1158 01:08:56,250 --> 01:08:58,440 Siz dəyişən qarşısında var idi. 1159 01:08:58,440 --> 01:09:01,670 Bu yalnız onların etdi ki, bir sexy şeydir. 1160 01:09:01,670 --> 01:09:03,389 Burada nə gedir? 1161 01:09:03,389 --> 01:09:08,830 Mən jQuery funksiyası mənim qlobal dəyişən sənəd keçən alıram edək 1162 01:09:08,830 --> 01:09:10,860 və sonra mən zəng edirəm. hazırdır. 1163 01:09:10,860 --> 01:09:15,480 Nə jQuery mahiyyətcə bu, bəzi vanil JavaScript şeyi etmək üçün imkan verir ki, yoxdur 1164 01:09:15,480 --> 01:09:17,889 Sənədin obyekt kimi, pəncərə obyekt 1165 01:09:17,889 --> 01:09:20,790 və jQuery funksiyası bu keçir əgər - 1166 01:09:20,790 --> 01:09:24,429 və daha aydın olması üçün, bu jQuery adlı funksiyası - 1167 01:09:24,429 --> 01:09:28,240 bu nə sizə sənəd xüsusi versiyası qaytarır 1168 01:09:28,240 --> 01:09:30,700 ki, ilə bağlı daha çox funksionallıq var. 1169 01:09:30,700 --> 01:09:34,760 Belə ki, xam JavaScript heç hazır funksiyası var 1170 01:09:34,760 --> 01:09:37,810 ancaq ilk jQuery funksiyası sənəd keçmək əgər, 1171 01:09:37,810 --> 01:09:40,960 sizə sənəd obyekt xüsusi versiyası qaytarır 1172 01:09:40,960 --> 01:09:43,030 daha fantezi xüsusiyyətləri var. 1173 01:09:43,030 --> 01:09:48,230 Nəfər bunu niyə və ki. Bu yalnız biz görmək üçün olduğunuz kimi, nə şeyi daha asan edir. 1174 01:09:48,230 --> 01:09:49,820 Belə kodu xətti nə deməkdir? 1175 01:09:49,820 --> 01:09:52,690 Sənəd hazır olduqda kodu Bu xətt burada vasitələri - 1176 01:09:52,690 --> 01:09:56,830 başqa sözlə, bir browser Bu fayl üst aşağı oxu edilir - 1177 01:09:56,830 --> 01:09:59,200 davam və aşağıdakı funksiyanı yerinə. 1178 01:09:59,200 --> 01:10:03,540 Nə JavaScript həqiqətən maraqlıdır - və PHP həmçinin bu var - 1179 01:10:03,540 --> 01:10:05,450 anonim funksiyaları edir. 1180 01:10:05,450 --> 01:10:10,560 JavaScript siz heç bir adı var, lakin onlar bir orqan var ki, funksiyaları bəyan edə bilər. 1181 01:10:10,560 --> 01:10:12,570 Burada nə edək. 1182 01:10:12,570 --> 01:10:16,220 >> Bu hazır adlı funksiyası, və yalnız aşağıdakı deməkdir 1183 01:10:16,220 --> 01:10:20,220 bütün web page hazır olduqda, bütün server oxumaq edilmişdir zaman. 1184 01:10:20,220 --> 01:10:23,090 Siz nə istəyirsiniz? Mən kodu bir yığın icra etmək istəyirəm. 1185 01:10:23,090 --> 01:10:27,120 Biz dərhal bu kodu icra etmək istəmirəm edək ki,. 1186 01:10:27,120 --> 01:10:34,350 Mən bu öz əksini tapmayıbsa, bu kodu bu xətlər həyata başlamaq dərhal deməkdir. 1187 01:10:34,350 --> 01:10:39,040 Amma heç, heç, heç bir dedi alıram ki, bu kimi anonim funksiyası bu kesmek 1188 01:10:39,040 --> 01:10:43,000 vasitəsilə hələ icra etmir; nəticədə zəng. 1189 01:10:43,000 --> 01:10:45,430 Biz əvvəlki forma Məsələn bir an əvvəl bu gördüm. 1190 01:10:45,430 --> 01:10:49,990 500 ms sonra, nəhayət nə funksiyası zəng idi? Qırpmaq. 1191 01:10:49,990 --> 01:10:51,480 Eyni fikri belə. 1192 01:10:51,480 --> 01:10:53,950 Bu bir az qəribə görünür, hətta Yenə, yalnız indi iman haqqında qəbul 1193 01:10:53,950 --> 01:10:57,060 , nəticədə deyirlər ki, bir anonim funksiyası bəyan edir ki, 1194 01:10:57,060 --> 01:11:01,720 sadəcə function () {yazmaq 1195 01:11:01,720 --> 01:11:05,380 Yaxşı kodu biz nəhayət icra edir? Aşağıdakı. 1196 01:11:05,380 --> 01:11:10,460 Bu da bir az yeni görünür, lakin bu jQuery funksiyası var burada deməkdir 1197 01:11:10,460 --> 01:11:13,430 və bu indi bir qısa yoldur. 1198 01:11:13,430 --> 01:11:18,830 Əlbəttə ekranın altındakı HTML Bu parçasını bir ağac nümayəndəliyi. 1199 01:11:18,830 --> 01:11:21,730 Bu deyil. Bu səhifə bu hello, dünya misal daha çox maraqlıdır. 1200 01:11:21,730 --> 01:11:25,210 Amma bu HTML uyğun bir ağac var. 1201 01:11:25,210 --> 01:11:28,910 Bu recursive funksiyası bir cür həyata keçirilməsi üçün boyun bir ağrı ola bilər 1202 01:11:28,910 --> 01:11:34,380 kök node-da başlayacaq və sonra kimin ID qeydiyyatı olan node tapa bilərsiniz. 1203 01:11:34,380 --> 01:11:38,340 Bizə sanki bu üçün nə jQuery super asan edir. 1204 01:11:38,340 --> 01:11:43,000 Durmayın, mənə almaq nə div və ya hər hansı formada, nə HTML element 1205 01:11:43,000 --> 01:11:45,820 qeydiyyat şəxsiyyət var. 1206 01:11:45,820 --> 01:11:52,440 Bu document.getElementById (qeydiyyat) bərabərdir. 1207 01:11:52,440 --> 01:11:54,170 >> Niyə jQuery kimi insanlar? 1208 01:11:54,170 --> 01:12:00,110 Yazın qısa çünki. Amma ki, bütün var. Bu eyni fikirdir. 1209 01:12:00,110 --> 01:12:02,630 Mənə kimin ID qeydiyyatı olan tag alın. 1210 01:12:02,630 --> 01:12:06,300 Və bir formada olur ki, tag, təqdim edildikdə, 1211 01:12:06,300 --> 01:12:08,300 davam və bu kodu icra. 1212 01:12:08,300 --> 01:12:11,320 Belə ki, bir biz formada dəyərləndirmə edirik necə indi nəzər salaq. 1213 01:12:11,320 --> 01:12:15,950 Bu syntax ilk etiraf sirli, lakin nə olub? 1214 01:12:15,950 --> 01:12:21,050 Kodu bu xətt doğrudur, mən onun e-mail üçün istifadəçi fəğan gedirəm. 1215 01:12:21,050 --> 01:12:22,970 Belə kodu bu xətt nədir? 1216 01:12:22,970 --> 01:12:25,560 $ JQuery deməkdir. İndi bu bildiriş. 1217 01:12:25,560 --> 01:12:27,920 Bu CSS kimi növ edir. 1218 01:12:27,920 --> 01:12:33,370 Siz hələ CSS daxil dived varsa, bu kimin ID qeydiyyatı olan element deməkdir ki, bilirsiniz. 1219 01:12:33,370 --> 01:12:39,840 Yer bir uşaq və ya adı daxil edir qeydiyyatı nəslindən tapmaq deməkdir. 1220 01:12:39,840 --> 01:12:42,970 Və sonra kvadrat mötərizədə bu şey bir az filter edir. 1221 01:12:42,970 --> 01:12:47,010 Bu sirli görünür olsa da, bu yalnız onun ID qeydiyyatı olduğu şəklində getmək deməkdir 1222 01:12:47,010 --> 01:12:51,230 onun adı e-poçt ki, input element içərisində gedin, 1223 01:12:51,230 --> 01:12:55,440 və sonra onun dəyəri olur nə olursa olsun, onun dəyəri almaq - 1224 01:12:55,440 --> 01:12:59,670 asdf ki tipli nə varsa mən tipli və ya malan@harvard.edu bütün varsa. 1225 01:12:59,670 --> 01:13:05,250 Şəklində e-poçt sahəsində == heç bir dəyəri, istifadəçi da fəğan əgər. 1226 01:13:05,250 --> 01:13:09,700 Else Loqin sahəsində dəyəri == heç bir şey, istifadəçi da fəğan əgər. 1227 01:13:09,700 --> 01:13:19,520 >> Else Loqin sahəsində dəyəri təsdiq sahəsində dəyəri bərabər deyilsə, 1228 01:13:19,520 --> 01:13:22,850 digər formada element olan, istifadəçi da fəğan. 1229 01:13:22,850 --> 01:13:25,680 Və sonra nəhayət - və bu da öz bəzi yeni sintaksis var 1230 01:13:25,680 --> 01:13:29,270 lakin bir dəfə onu gördüm, ən azı bir az daha məqbul deyil - 1231 01:13:29,270 --> 01:13:34,060 kimin ID qeydiyyatı olan forma adı müqaviləsidir giriş element var başqa əgər 1232 01:13:34,060 --> 01:13:39,720 və yoxlanılır, davam və istifadəçi fəğan. 1233 01:13:39,720 --> 01:13:42,520 Mən tamamilə bu ilk baxışda tamamilə böyük olduğunu etiraf. 1234 01:13:42,520 --> 01:13:46,530 Yeni sintaksis bir çox var. Amma jQuery bütün nümunələri bu cür gedir. 1235 01:13:46,530 --> 01:13:49,880 Və vicdanla, mən hətta bir neçə dəqiqə əvvəl qədər bu mövcud bilmirdim. 1236 01:13:49,880 --> 01:13:53,640 Mən "bir onay jQuery yoxlanılır əgər necə yoxlamaq yoxdur?" Googled 1237 01:13:53,640 --> 01:13:55,680 bunu müxtəlif yolları var, çünki bu, sintaksis edir 1238 01:13:55,680 --> 01:13:58,010 faktiki xam JavaScript kodu. 1239 01:13:58,010 --> 01:14:01,030 Problem Set 7 ilk səhifə vurğulayır ki, 1240 01:14:01,030 --> 01:14:04,500 pset 7 çox özünüzü bootstrapping bir həyata deyil 1241 01:14:04,500 --> 01:14:08,650 biz ümid edirəm ki, bu pset həll olan konseptual çərçivə təmin etdik. 1242 01:14:08,650 --> 01:14:12,280 >> Amma tez-tez web dizayn halda, bu, həqiqətən, ətrafında soxmaq qədər sizin üçün deyil 1243 01:14:12,280 --> 01:14:16,680 belə uzun siz onlara istinad kimi Web kodu parçaları və nümunələr daxil 1244 01:14:16,680 --> 01:14:17,960 ilk hesabatında şərtlərinə görə, 1245 01:14:17,960 --> 01:14:21,460 və həyata ki, HTML, CSS, JavaScript və hətta SQL təlim 1246 01:14:21,460 --> 01:14:26,020 həqiqətən biz bu təlim təkərlər çıxarmaq başlayacaq bu at-ev həyata deməkdir. 1247 01:14:26,020 --> 01:14:29,150 Və çox bir browser ilə edə bilərsiniz daha çox şey var bilirik. 1248 01:14:29,150 --> 01:14:33,790 Bu elementlərin çox Inside hadisə işleyicileri adlı başqa şeylər var. 1249 01:14:33,790 --> 01:14:37,140 Və biz yalnız olanları baxdı baxmayaraq, onsubmit və onready adlı 1250 01:14:37,140 --> 01:14:40,310 siz onkeydown, onkeyup kimi şeylər edə bilərsiniz 1251 01:14:40,310 --> 01:14:43,410 istifadəçi bir əsas toxunduğu zaman kimi, bu və əsas qədər dinləyə bilərsiniz. 1252 01:14:43,410 --> 01:14:45,940 Gmail klaviatura qısa yolları var. 1253 01:14:45,940 --> 01:14:49,490 Google bəstələmək üçün C kimi klaviatura qısa yolları həyata edir? 1254 01:14:49,490 --> 01:14:54,120 Onlar onkeypress ya onkeyup və onkeydown kimi adlandırılan etdiyiniz kimi, tədbirlər üçün qulaq asmaq. 1255 01:14:54,120 --> 01:14:56,360 Heç bir menyu et üzərində siçan hovered varsa 1256 01:14:56,360 --> 01:15:00,180 və ani, voiture bütün menyu görünür və ya qrafik rengi 1257 01:15:00,180 --> 01:15:01,920 necə ki edirlər? 1258 01:15:01,920 --> 01:15:06,940 Onready ya onsubmit üçün qulaq asmaq deyil, siz onmouseover ya onmouseout üçün qulaq asmaq. 1259 01:15:06,940 --> 01:15:10,920 >> Belə ki, qısa, bu çox sadə əsasları ilə biz bu gün səthində danışıq başlayıb etdiyiniz 1260 01:15:10,920 --> 01:15:13,940 və biz artan siz, Çərşənbə üzrə gələcəkdə dalış lazımdır 1261 01:15:13,940 --> 01:15:17,530 Əgər siz artıq tanış olduğunuz şeyi cür həyata gücü. 1262 01:15:17,530 --> 01:15:21,620 Belə nin orada son qoy, biz Çərşənbə günü bu davam edəcəyik. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]