[00:00:02] [MUSIC PLAYING] HANNAH: Hi, hər kəs. Siz gələn üçün çox uşaqlar təşəkkür edirəm viktorina biri iyrənc hava iclası gözdən keçirin. Sizlərin, viktorina Bildiyiniz kimi bu çərşənbə edir. Beləliklə, biz getmək olacaq mövzular bir dəstə vasitəsilə. DAVIN: Hey, mən demək olar real tez bir şey? HANNAH: Bəli, Davin gedir real tez bir şey demək. DAVIN: Bağışlayın. Yalnız real sürətli, Əgər suallarınız varsa, viktorina, siz online bilərsiniz. Viktorina, 2014 viktorina bir gedin. Bu barədə maddi-texniki bazasının var getmək harada, nə vaxt gedəcək. Eyni zamanda alındı ​​edirsinizsə, biz istəyirik 5:30 makiyaj viktorina üçün gedir. Yoxsa mənə bir məsələ göndərdi əgər, bəzi digər məsələ var. Amma 5:30 makyaj edir çərşənbə vaxt. Amma suallarınız varsa, ümumi məsələlər, online Bütün logistika var. Belə ki, ilk kontrol. [00:00:47] HANNAH: Awesome. Belə ki, burada mövzular böyük siyahısı biz bu gün vasitəsilə getmək olacaq ki. Mən C bütün əhatə gedirəm ilk sütun məhsulları. Belə ki, C stuff ki, biz viktorina sıfır sonra əhatə etmişdir. Bir bağlı siyahı ilə başlayaraq, olan göstəricilərinə daxildir. [00:01:05] Bütün hüquqlar, belə ki, biz bunu gördük Son baxış iclasında, mən keçmək üçün gedirəm bu bir az daha sürətli edir. Siz mənə istəyirsinizsə, yalnız əl qaldırmaq aşağı yavaş və ya daha şey həll. Amma biz siyahıları bağlı istifadə biz serialların ilə C başladı. Və seriallarda böyük, lakin Bu problem bir sabit ölçüsü var. Əlaqəli siyahıları bizə yaratmaq imkan verir dinamik data strukturları ölçülü. [00:01:28] Və biz əsas əməliyyatları var, daxil, onda düzəlişlər və axtarış. Və biz daxil edə bilərsiniz ən pis halda daimi vaxt biz yalnız çox başında qoymaq əgər. Pis Sil və axtarış oh n vaxt böyük işi. Belə ki, yenə yalnız çevirmek Bu şəkillər vasitəsilə, Hesab edirəm ki, bu son dəfə gördüm bilirik, amma biz bizim bağlı siyahı izlemek istəyirsiniz takip ederek bizim bağlı siyahı bildirib. Biz bilirik ki, çünki Bizim qovşaqlarının hər bir yalnız qeyd edir bizim bağlı siyahı növbəti node. [00:01:58] Belə ki, biz takip necə. Bunlar baxmayaraq yaddaş davamlı ədəd, biz yalnız onları tapa bilərsiniz Müxtəlif oxlar aşağıdakı. Burada strukturu bir bağlı siyahı node üçün. Biz bu son dəfə gördüm. Biz struct node var. Və bu iki xüsusiyyətləri var. Sayı bir, faktiki dəyəri biz saxlamaq istəyirik. Bu halda, bu tam var. Bu simli ola bilər, bu ola bilər Siz istədiyiniz hər hansı bir char, ola bilər. Və sonra, biz takip lazımdır bizim bağlı siyahı növbəti node. Belə ki, bir olacaq növbəti node göstərici. Yalnız bunu Əgər Axtarış Mən əvvəl bildirib kimi Siz okları aşağı izləmək üçün istiyorum. Taxmaq, siz takip ki, Sizin siyahısı istirahət olduğu. Və baş yönlendirme istəyirəm Yeni element, qeyd etmək ki, bu halda, bir və sonra bir qeyd edəcək bağlı siyahı qalan. Belə ki, yenə, mən bu bir az bilirəm viktorina sıfır təkrar bit. Beləliklə, biz çox diqqətli olmaq lazımdır qaydası haqqında olan biz Biz bunu bu pointings etmək siyahısı geri izini itirmək. OK, hər hansı bir sualınız yalnız story siyahıları bağlıdır? Awesome, OK, sərin. [00:03:06] Beləliklə, biz bir şey üzərində getmək olacaq az daha mürəkkəb, ikiqat siyahıları bağlıdır. Saxlanması ilə yanaşı, belə ki, növbəti node track, biz də takip etmək istəyirəm əvvəlki node. Biz edirsinizsə, bu, bizə imkan verir ki, bizim bağlı siyahıda bir nöqtədə, yalnız irəli getmək, lakin də geri təkrarlamaq. Biz gördüyümüz kimi, çünki bir story bağlı siyahı, biz bir node idi və əgər qəflətən, biz qərar, həqiqətən, Mən getmək istəyirəm Məndən əvvəl node sağ, bütün getmək istiyorum geri rəhbəri yol aşkar qədər vasitəsilə təkrarlamaq Siz aradığınız node. [00:03:35] Belə ki, bu şeyi edir Biz etdiyiniz kimi qədər asan təkrarlamaq üçün çalışırıq bizim bağlı siyahı vasitəsilə. Amma bu bir takip tələb edir daha pointer, belə ki, daha bir node ulduz. Bütün hüquqlar, belə ki, burada fun hissəsi gəlir. Biz həyata təcrübə olacaq ikiqat bağlı siyahıları üçün çıxarın. Belə ki, bu bir şey deyil viktorina tamamilə ədalətli oyun. Bu keçmiş sınavlar göstərdi. Belə ki, mütləq hazırlanacaq C. bir az kod Bütün unutmayın Bu fun PHP və JavaScript, biz hələ yadda var C. etmək Belə ki, təzələmək Əgər paslı hiss edirik. [00:04:12] Bütün hüquqlar, biz bunu edə bilərsiniz əgər in görək. Sərin, OK. Beləliklə, biz cəhd olacaq Burada doğru redaktə etmək, planlaşdırıldığı kimi və inşallah bu gedir. Bütün hüquqlar, hər kəs mənə vermək istəyir Mən başlamaq lazımdır nə kimi bir təklif? Mən yalnız ehtimal edilməsi I ki, artıq bir quruluş müəyyən, bir mən, son page göstərdi Son slide. Mən bağlı mənim rəhbəri saxlanılması alıram bir pointer siyahısı siyahısını açıqlayıb. Hər kəs mənə başlamaq istəyir? [00:04:42] Auditoriya: Yeni yarada node siyahısını zəng etmək? [00:04:45] HANNAH: Awesome, belə ki, yaratmaq olacaq Yeni node siyahısını tarama. Hesab edirəm ki, istəyirəm. OK, mən yalnız pointer zəng edəcəyik. Və ilk başlamaq lazımdır? [00:04:57] Auditoriya: Yəqin ki, at Siyahıya rəhbəri. HANNAH: Beautiful. Biz rəhbəri başlamaq üçün istədiyiniz Mən siyahıda saxlanılır niyyətindədir. Awesome. İndiyə qədər belə yaxşı. İndi hədəfimiz edir siyahısını təkrarlamaq biz node ilə tapmaq qədər biz silmək istəyirik dəyər n. OK? [00:05:13] Belə ki, indi hissəsi olduğu biz vasitəsilə təkrarlamaq istəyirəm. Hər bir təklif edə bilər yolu təkrarlamaq üçün necə? [00:05:19] Auditoriya: A loop. [00:05:20] HANNAH: A loop. Mən onu sevirəm. Xüsusilə, biz isə loop cəhd edə bilərsiniz. OK, və biz əldə etdik bilirik ki, bizim siyahıda zaman nə sonu? Auditoriya: pointer null zaman. HANNAH: pointer null zaman. Gözəl, mən onu sevirəm. Sərin, OK. Mənim bounding brace əgər Belə ki, sorry cür ekran off düşür. Biz bunu geri gətirdi. Sərin, OK. Nə gələn var? [00:05:48] Belə ki, biz silmək istəyirik dəyəri n var node. Belə ki, hal harada tapmaq imkan Biz, həqiqətən, bizim node tapa bilərsiniz. Belə ki, necə yoxlamaq olar? Mən yalnız göstərici əgər, sonra demək istədiyiniz I göstərici dəyəri almaq istəyirəm, Mən yalnız n arrow yoxdur n, parametr bərabərdir Biz bu funksiya verdi ki, biz, həqiqətən, silmək istədiyiniz node. Burada qədər hər hansı bir sualınız? Bütün hüquqlar. OK, belə ki, indi tez şəkil çəkmək imkan board üçün bu görüntüləmək üçün. [00:06:24] Belə ki, bizim sevimli node var deyək. Və bir dəyəri var, yalnız dörd demək lazımdır. Və növbəti göstərir bizim bağlı siyahıda node. Və əvvəl heç bir şey yoxdur. Belə ki, biz əvvəlki var heç bir şey işarə. Bu halda, biz geri gətirin. OK, yalnız qurmaq mənim burada siyahısını bağlıdır. Və biz göstərir ki, bir siyahısı var Bu quruluş ilə başlayacaq. Mən bir daha çəkmək lazımdır tamlığı naminə. OK. Bu irəli qeyd edəcəyik. Mən ki, bir geri qeyd edəcəyik. Bağışlayın, sorry. Bəli, geri bu var. Daha bunu. OK, orada getmək. Bütün hüquqlar, var. OK, burada şəkil var. [00:07:21] OK, belə ki, biz iki işlərə baxmaq istəyirəm. birinci halda əgər node biz silmək üçün Bizim siyahı çox əvvəlində edir. Və sonra, ikinci halda biz istəyirik ki, başqa yerdə əgər hesab edir. Bu tamamilə başa düşürük ki, messy bütün Siliniyor ilə rəsm, lakin ümid biz çalışacağıq bir kodu ilə bu aydın etmək. [00:07:40] OK, belə ki, işi əhatə bildirin biz, bizim node tapılmadı və bu, çox da var bizim bağlı siyahı başlayın. Hər kəs mənə vermək kimi burada təklif nə Mən, həqiqətən, bizim node aradan qaldırılması üçün nə etməliyəm? Bu bir az çətin deyil. OK? [00:07:56] Auditoriya: Siz almaq lazımdır əvvəl olacaq node və bu qeyd etmək bundan sonra olacaq bir, və node almaq sonra və edəcək Bu əvvəl node qeyd. HANNAH: Məhz. OK, belə ki, bu halda oxlar iki hallarda var. Biz işi var biz aradığınız node siyahısı ön edir. OK, sonra iddia ki, təsvir sağ, başqa deyil? Bu siyahıda başqa bir yerdə var. Belə ki, qeyd etdi ki, biz lazımdır əvvəlki node baxmaq, və əvvəlki node etmək növbəti node qeyd. Belə ki, biz istəyirik deyək beş almaq üçün çalışır burada mənim çox messy rəsm. Biz əmin etmək istəyirəm Dörd indi altı göstərir. Altı Four'un növbəti xal. Və dörd altı əvvəlki xal. Yəni bizim məqsədi sağ, burada? Bu sizi hesab edirəm ki, nə yalnız orada bildirib. [00:08:56] OK, belə ki, ilk parça almaq imkan verir. Var edək Əvvəlki göstərici ötən. Belə ki, növbəti dörd-nin nə qeyd etməlidir? Məhz, bu halda, altı. Belə ki, biz növbəti, göstərici demək lazımdır. OK? Bütün hüquqlar. Belə ki, bu çirkin şəkil qurtarmaq imkan və bir az gözəl çəkmək üçün cəhd edin. Biz burada siyahısı baş. Və ilk node işarə dedik bizim bağlı siyahısı, dörd. Burada bizim ikinci node, beş deyil. Və üçüncü node altı. Yalnız eyni çəkmək üçün çalışırıq şəkil, yalnız bir az daha cleanly. OK, belə ki, dörd növbəti ilk beş göstərir. Altı Bəşir növbəti xal. Beş Six əvvəlki xal. Və dörd Beş əvvəlki xal. Belə ki, çox gözəl! Sərin, OK. [00:10:04] Belə ki, indi biz nə yalnız burada kodu bu xətt əvvəlki göstərici deyir növbəti belə ki, nə deməkdir? Baxırıq əgər o deməkdir Beş əvvəlki node getmək, və indi növbəti lazımdır ki, Beş növbəti point. Belə ki, mahiyyətcə, nə bunu var bu arrow Siliniyor edir ki, və sağ beş üzərində keçmək edir. Ki, aydındır? Hesab edirəm ki, bir az yarım yamalak ola bilər bilirik. Mən bəzi baş başını yırğalayır görürük. Bu yaxşı deyil. Sərin, OK. İndi növbəti addım nədir? [00:10:39] Mən növbəti yenidən etdik. İndi hansı digər arrow Mən dəyişdirmək lazımdır? Burada Bu. Altı əvvəlki. Biz altı əvvəlki istəmirəm Artıq beş qeyd etmək. Biz dörd qeyd etmək istəyirəm. Ki, şəkil mənada edirmi? Belə ki, indi biz, həqiqətən, beş həyata bilər. Belə ki, ki, parça əldə edək. Mən mən əvvəl nə etməliyəm Altı əvvəlki dörd yenidən? Hər hansı bir fikir? [00:11:14] Auditoriya: arasında node Pulsuz Bu null qəbulu ilə onlara? HANNAH: Cool. Əlbəttə, bizim son hədəfimiz node azad olacaq. Beləliklə, biz burada edə bilərsiniz. Pulsuz göstərici. Tamamilə. Amma belə ki, əvvəl, Bizim məqsədimiz sağ izlersin imkan Burada növbəti göstərici müəyyən edir bərabər əvvəlki əvvəlki göstərici ilə. Mən bu qədər əhatə olur bilirik. OK, sərin take-- bildirin. Hər kəs bu alt xətt bax edə bilərəmmi? Yoxsa super kiçik deyil? [00:11:50] Biz icra əvvəl Belə ki, Burada bu xətt, biz istəyirik əmin olun ki, göstərici növbəti null deyil. Pointer növbəti Çünki əgər səhv null nə cür Mən cəhd zaman olacaq bir null göstərici istinad? Auditoriya: Seg günah. HANNAH: A seg günah, gözəl. Əgər belə OK, ki, deyil null, onda biz yenidən qura bilərsiniz. Və biz dörd yenə altı nöqtə var. Bu nöqtəyə qədər suallar up? Bəli? [00:12:17] Auditoriya: Sizin birinci şərhdə, əgər, siz etdi arrow var demək növbəti və ya [Işitilemez]? HANNAH: Mən göstərici arrow n idi. Belə ki, əsasən, mən çalışıram nə , Mən cari node demək üzərində iterating, cari node ki, Mən göstərici saxlanılması alıram baxıram. Mən göstərici üzrə bilmək istəyirəm bu halda n dəyər. Mən görmək istəyirəm ki, Mən arıyorum node node mən silmək məqsədi alıram? Biz burada n göstərici nə ki, var. [00:12:47] Auditoriya: Belə arrow gedir n, siz dəyər yaratmaq və n adlı node onu saxlamaq? [00:12:55] HANNAH: Belə ki, mən əgər kimi Bu bağlı siyahı keçir və beş işarə. Mən əgər ki, dəyəri almaq istəyirsinizsə Mən ki sayı 5 almaq istəyirəm Mən göstərici arrow n var. Cool? Bəli. [00:13:07] Auditoriya: dəyişən adı n edir? HANNAH: Bəli. Biz bir geri çevirmek əgər Belə ki, slide, n adı daxilində dəyərinin bizim bağlı siyahıda node. Mən bir az əldə edə bilirik bit confusing də biz, çünki şey zəng biz n silmək istəyirəm. Belə ki, burada var bir xətt gəlir. Evet? [00:13:27] Auditoriya: Nə var [Işitilemez] onlar necə? A göstərici [Işitilemez]? [00:13:35] HANNAH: Sure. Siz aşağıdakı məsələlər barədə hansı line gedir? Auditoriya: Son line [işitilemez]. [00:13:44] HANNAH: Əlbəttə, OK. Belə ki, şəkil baxaq order bu izah etmək üçün cəhd. Mən, üzgünüm kamera, sual idi biz göstərici izah edə bilər növbəti pointer əvvəlki arrow. OK, belə ki, biz beş istəyirik deyək və bizim məqsədimiz beş silmək üçün. Belə ki, növbəti göstərici bu hansı üç qovşaqlarının bizə verir? Bu doğru, altıncı node gətirir? [00:14:10] OK, belə ki, indi biz xahiş edirik Altı əvvəlki üçün. OK? Və biz bu sıfırlama edirik dörd bərabər olmaq, olan beş əvvəlki oldu. Mən bu super deyil, bilirik ağır takip. Mən, həqiqətən, şəkil çəkmək gəlir Bu kimi bir sual almaq əgər. Bəli? [00:14:30] Auditoriya: səbəb varmı ki, biz [işitilemez] yoxdur? [00:14:37] HANNAH: Məhz. Sual idi, belə ki, niyə Biz burada yoxlamaq lazım deyil? Niyə biz yoxlamaq üçün ehtiyac yoxdur Əvvəlki göstərici null bərabər deyil? Biz, çünki bu artıq ayrılmış halda əgər göstərici üzrə çox başında. Çox yaxşı sual. Bu başqa bir şey? Sərin, OK. Belə ki, onu bitirmək bildirin. Biz demək olar ki, orada edirik. [00:14:59] Nə varsa Belə ki, rəhbərlik edir? Nə əvəzinə əgər beş silmək üçün çalışırıq, Biz, həqiqətən, dörd silmək istəyirdi? Mən nə olardı? Bəli, mən nə mənim baş yenidən istəyirsiniz? Onu bağırmaq? Auditoriya: sonra bir. HANNAH: Beautiful. OK, belə ki, biz işarə etmək istəyirəm siyahısı nə bizim göstərici növbəti node edir. Yaxşı. Və yalnız tamlığı nin xatirinə, biz Bizim siyahı kimi uzun check istədiyiniz kimi uzun siyahı deyil, null deyil boş, sonra biz qurmaq istəyirəm null bizim əvvəlki bərabərdir. Sual bu günə qədər? Bir addım üz from--? [00:15:53] Auditoriya: əgər olardı Siyahı null bərabər deyil? [00:15:55] HANNAH: Bəli, siz tamamilə doğru istəyirik. Mən təəssüf edirəm. Is siyahısı null bərabər deyil. Awesome. Bütün ekranda bu gətirmək üçün çalışırıq. Bu cür yola düşən oldu. Bağışlayın, uşaqlar. Və ən son deyil, bütün biz geri yoxdur var. OK. Bir çox crammed idi Həqiqətən tez. Bu artıq baxmaq üçün ikinci edin. Hər hansı bir sualınız varsa, mənə deyin. Evet? [00:16:20] Auditoriya: siyahısı Əgər Baş Nevermind, gözləyin then--. [00:16:26] HANNAH: OK, yaxşı. Siyahı rəhbəri Belə ki, bu, Biz daxil hər hansı aradan qaldırılması. Evet? [00:16:31] Auditoriya: izah edə bilər daha bəyanat ilk? N göstərici n bərabər olur? HANNAH: Sure. Belə ki, bu bütün funksiyası bizim məqsədimizdir dəyəri n var node silmək üçün. Belə ki, biz etdiyiniz kimi, biz tapmaq Bizim siyahısını iterating, dəyəri n node, ki biz silmək istəyirəm. Belə ki, silmə bütün baş ki, böyük əgər şərhdə daxilində. Ki, hissi verir mu? Cool. Evet? [00:16:59] Auditoriya: Bəlkə yalnız göremiyorum Bu, lakin siz də bir xətt ehtiyac yoxdur siyahısını scrolling üçün? HANNAH: Awesome. Bir az bu gətirsin və Biz aşağı doğru atmaq lazımdır. Bəlkə board var ki, bir az daha yaxşı bir fikir olmuşdur. Belə ki, necə irəli göstərici hərəkət olardı? [00:17:17] Auditoriya: Pointer göstərici plus bir bərabərdir. [00:17:20] HANNAH: Beautiful. Belə ki, bizə imkan verir ki, iterating vasitəsilə davam edir. OK. Auditoriya: orada bir başqa olmazdı? HANNAH: Bir dəfə daha? Auditoriya: ola bilməz əgər böyük köhnə sonra başqa Şərhdə [Işitilemez]? HANNAH: Hansı hissəsi? Mən təəssüf edirəm. [00:17:38] Auditoriya: traversal, orada bir başqa olmamalıdır? HANNAH: Siz tamamilə Bir başqa ola bilər. Mən geri hüququ var Orada, bir başqa ehtiyac yoxdur. Lakin Bəli, yaxşı sualdır. Bəli, OK? Auditoriya: Biz göstərici hesab edə bilər ki, siyahıda ilə hərəkət edir dəyəri alaraq siyahıda hər node? Yoxsa biz kimi düşünmək lazımdır Siyahıya xarici sort? [00:18:00] HANNAH: Ya bir gözəl olduğunu düşünürəm. Mən bunu təsəvvür yoldur Mən OK, Mən göstərici edirəm, deyirlər. Bu məni. Bu, mənim əl edir. Mən müxtəlif qeyd etmək gedirəm Mən vasitəsilə təkrarlamaq istəyirəm hər şeyi. Birincisi, mən qeyd gedirəm Siyahıya rəhbəri. Və mən, mənə deyir dörd qeyd etmək niyyətindədir. Və məni siyahı xarici olan Mən bu elementlərin hər qeyd edə bilərsiniz. Beləliklə, mən göstərici kimi özümü düşünürəm. Auditoriya: Belə silmək bu elementlərdən biridir, belə ki, danışmaq, özünüzü silin. HANNAH: Məhz. Belə ki, bir şey silmək Siz işarə edirik. Məsələn Belə ki, Biz harada istəyirik gördüm beş silmək üçün çalışırıq, Mən beş işarə edirəm zaman, Mən silmək istədiyiniz şey işarə edirəm. Məhz hüququ. Bəli? Auditoriya: Biz qayğı var n siyahısında olmayan halda? HANNAH: n siyahıda deyilsə? Baş verəcək ki, bütün sen edir vasitəsilə və təkrarlamaq təkrarlamaq niyyətində vasitəsilə, sonra siz olacaq olan null göstərici almaq üçün, və sonra ediləcək olacaq. [00:18:48] Auditoriya: Belə ki, biz var bir şey qayıtmaq? HANNAH: Biz bilər. yol müəyyən ki, əgər funksiyası, mən yalnız qaytarır ki, asılı olmayaraq qüvvədən düşür. Amma bir şey ola bilər tam qaytarılması kimi, və geri var Bu etmədikdə 1 mənfi. Kimi bir şey. Suallar yes with--? Auditoriya: [işitilemez]? HANNAH: Bağışlayın? Auditoriya: [işitilemez]? HANNAH: Sure. Biz bir dəfə Belə ki, actual-- var hərəkət görülən bütün bu işlər Bütün bu oxlar ətrafında, bizim bütün Məqsədi node xilas etmək idi ki, aradığınız. Bu halda belə, azad pointer, mən beş işarə edirəm, əgər, Bu orta node Siliniyor kimi. Bu pulsuz pointer hissəsi. Bu mənada? [00:19:29] Auditoriya: Belə ki, hətta fikir Siz [Işitilemez] idi? [00:19:31] HANNAH: Beləliklə, biz başında ehtimal biz idi bir siyahısı var idi already-- Onlar birlikdə bu qoymuşdu. Belə ki, bu tikintisi üçün siyahısı, onlar [işitilemez] must've. Cool. Bu başqa bir şey? Bəli? [00:19:46] Auditoriya: Siyahı əgər null xətt bərabər deyil? [Işitilemez]? HANNAH: Burada? Auditoriya: Bəli. HANNAH: OK, mən edirəm Mən yalnız əmin edilməsi alıram ki, Mən dereference siyahısına cəhd əvvəl, Mən əvvəlki daxil olmaq üçün cəhd əvvəl, Deyil ki, mən əmin etmək istəyirəm null mən bir seg günah yoxdur. Cool. [00:20:08] OK, mən bu qədər idi bir çox vasitəsilə almaq üçün. Belə ki, bu slide olacaq Sizə təqdim. Belə ki, daha ətraflı vasitəsilə bilərsiniz. Bəli? [00:20:17] Auditoriya: Niyə siyahısı [Işitilemez]? HANNAH: Sure. Belə ki, siyahı həqiqətən göstərir burada bu element, Siyahıda ilk element. Belə ki, əvvəlki ola bilməz. Bəli? [00:20:31] Auditoriya: pointer point mu yaddaş eyni ünvana? Eyni işarə etmir node kimi yaddaşında ünvanı Bu işarə ki? [00:20:40] HANNAH: Bəli, bu işarə yaddaş bu node. [00:20:43] Auditoriya: sağ, belə ki, zaman [Işitilemez]? [00:20:47] HANNAH: Bir mənada, bəli. OK. Bütün hüquqlar, bu birlikdə hərəkət edək. Və daha çox sualınız varsa, sonunda ətrafında qalmaq, və biz yenə onun vasitəsilə getmək olar. Sərin, OK. İndi biz hərəkət almaq masalar, çalışır hash, və ağaclar, siz super var olan p-set, beş Speller ilə tanış. [00:21:04] Belə ki, hash table yalnız bir deyil story bağlı siyahıları ilə array və ya ikiqat off gələn siyahıları bağlıdır. Beləliklə, biz bir növ var assosiativ array. Biz necə bu ki, buketler daxil olmaq üçün Diziler, biz bir hash funksiyası istifadə edin. Belə ki, bu halda, kimə nə hash funksiyası tapmaq yalnız bir əsasında olacaq giriş və çıxış? [00:21:31] Auditoriya: əlifba məktubu nömrəsi. HANNAH: Məhz. Bu, sadəcə əlifba sırası ilə onlara qoyur. Bir ilə başlayır hər şey Ilk bucket daxil edilir. B ilə hər şey daxil edilir İkinci bucket, belə ki, və s. Awesome, OK. Və bir hash funksiyası hər hansı bir deyil Bir sözlə edir funksiyası və demək nə Bu məxsus bucket. Olan giriş Belə ki, bizim array bu məxsusdur. [00:21:55] Belə ki, hər dəfə mənim vermək hash, bir söz fəaliyyət Bu mənə eyni demək lazımdır hər zaman yer. Biz hash funksiyası istifadə əgər Belə ki, Əvvəlki Slayd biz çeşidlənməsi edirik əlifbası ilk hərf, Mən vermək hər zaman mənim hash funksiyası "alma" həmişə 0 mənə geri vermək lazımdır. Mən alma varsa Mənim hash masa qoymaq, Mən hash funksiyası "alma" versəniz, Bu bucket 0 qoyun gedin demək lazımdır. Mən arıyorum Mənim hash masa alma və harada güc alma, demək canlı, sizin hash funksiyası xahiş edirik. Və 0 bucket getmək deyir. Bütün hüquqlar? Hash funksiyaları ilə suallar? Awesome. [00:22:34] Burada bir az daha çox ətraflı izahat bir hash funksiyası kimi baxmaq bilər nə. Bütün hüquqlar. Hash İndi, problem funksiyaları, bir ideal dünyada biz yalnız bir olardı hər bucket bir şey. Amma əslində, var yalnız bir söz ki, yoxdur A. ilə başlayır B. Belə ilə başlayır yalnız bir söz Bu halda, biz əgər birdən-birə ", giləmeyvə" almaq və biz bunu qoymaq istəyirəm Bizim hash masa, və biz oh, heç banan deyil, bax artıq, biz nə mý var? [00:23:03] Bəli, biz iki variant var. ilk seçim xətti, probing olan yalnız tapmaq getmək deməkdir Növbəti boş bucket. Növbəti boş array giriş tapmaq gedin. Və yalnız orada "giləmeyvə" qoydu. Beləliklə, mən bu ehtimal bilirik bucket bir banan ilə gedin. Lakin, bucket üç qoyun bucket, çünki üç boşdur. Başqa bir seçim yəqin ki, Siz həyata nə Sizin p-set, siz da ayrı-ayrı chaining idi. Belə ki, buketler hər, Sizin array elementləri hər, yalnız bir sözləri vardır, ancaq söz siyahısı bir göstərici keçirir. Siz əgər Belə ki, Sizin hash masa banan və birdən istəyirdi giləmeyvə, heç bir problem əlavə edin. Yalnız sonuna, və ya on giləmeyvə əlavə başlanğıc, bağlı siyahı. OK, zəhmli. Hash Suallar masalar biz getmək əvvəl? [00:23:58] Bütün hüquqlar. Ağaclar və çalışır. OK, belə ki, bu, başqa bir seçim idi lüğət həyata keçirilməsi üçün. Siz cəhd etdik bilər. Belə ki, ağac xüsusi növü var ki, bir çox səviyyəli hash masa kimi davranır. Belə ki, şəkil görəcəksiniz Bir sıra olduğu ki, seriallarda bir dəstə göstərir seriallarda bir dəstə işarə seriallarda bir dəstə ki, point. Və biz dəqiq nə ki, görürsünüz gələcək slayd kimi görünür. Və ümumiyyətlə, bir ağac yalnız hər hansı bir data strukturu olan məlumatlar bir iyerarxiya təşkil etdi. Belə ki, biz gördüm harada anlayış bir növ bir üst səviyyədə, növbəti səviyyəsi, növbəti səviyyəsi, növbəti səviyyəsi. Belə ki, bu yəqin ki, ən aydın deyil bəzi xüsusi nümunələr. Belə ki, burada bizim ağac var. Siz görə bilərsiniz xüsusi səviyyələri var ki, kök node, biri ilə başlamaq. Və biz ağac vasitəsilə aşağı bilərsiniz. [00:24:50] A ikili ağac bir ağac xüsusi növü. Və yalnız dəqiqləşdirilməsi bir ikili ağac hər node var ki ən çox iki yarpaqları. Beləliklə, siz hər hansı bir görmək fikrində deyilik Bu qovşaqlarının üç və ya dörd var və ya yarpaqları bir digər sayı. Və sonra daha konkret bir ikili axtarış ağac harada sol hər node node dəyəri kiçik sahib olur. Və hər dəyəri doğru böyük olacaq. Siz 44 bizim kök görmək Belə ki, sol, 11, 22 və 33- Bizim kök artıq bütün azdır. Və sağ bütün ədəd 66, 55, və 77 bigger--. Bu əmlak doğru aparır ağac hər səviyyədə. [00:25:37] Biz enmək zaman Hələ 22, 11 və 33, 11 kiçik 22 və 33 22 böyükdür. Bu daha asan axtarış edir Biz bir sıra aradığınız, çünki, Biz dəqiq bilmək olan filialı aşağı riayət edin. Belə ki, bu sizə bir xatırlatmaq lazımdır Binar axtarış az. Evet? [00:25:56] Auditoriya: Belə ki, etdiyiniz ikili izah Siz ən çox iki yarpaqları da var dedi? HANNAH: Mm-hm. Auditoriya: az ola bilər? HANNAH: Bəli. Belə ki, məsələn üçün, deyək şeyi daha sayı yox idi və siz doldurmaq bilər bütün sizin bir biri əgər yarpaqları, gözəl var. OK? Awesome. Ağac hər hansı digər suallar? OK. [00:26:16] Geri çalışır Mən söhbət kimi bir az əvvəl haqqında necə biz bu çox səviyyəli serialların var. Bu halda Belə ki, üst başlamaq. Və biz aşağı hər hansı bir sözü edin. Belə ki, biz istədik deyək Turing üçün baxmaq. Biz T-da başlayacaq, onu edin U olan bir sıra, və biz qədər aşağı edin Bu kiçik delta olmaq olan Bizə, bəli, bir söz aşkar deyir. Çalışır Clear? Şey orada getmək? Bəli? Auditoriya: delta simvolu olar cəhd ərzində yer tutur var? HANNAH: Bəli, belə ki, deyil mütləq belə bir delta olmaq lazımdır. Amma biz bir yol lazımdır bizim kompüter üçün üzr demək, ki, biz TUR bir söz deyil ki, bilirik. Qoy, çünki biz yox idi demək bir delta bu anlayış, bu anlayış təbrik, bir söz aşkar, Bu, T-U-R keçmək və təkrarlamaq ki və sonra mən onu aşkar, zəhmli demək! Bu söz olmalıdır. Lakin bu, həqiqətən deyil. Biz bütün Turing bir söz olsun. Beləliklə, biz bir şey olmalıdır deyir sonunda, təbrik edirəm, Bir qanuni söz gördük. Auditoriya: Siz kimi əgər Belə ki, Əlifbası 26 məktublar, Siz, həqiqətən, olardı Sizin cəhd 27 düymələri? [00:27:24] HANNAH: Awesome, evet. Belə ki, həqiqətən, mən hesab edirəm ki, növbəti slayd olacaq. Ta-da! Bir varsa harada Sizin cəhd node, sen əvəzinə 26 27 uşağı var olacaq. Ki, Hər hansı bir sualınız? Evet? Auditoriya: Niyə çalışır belə alır qədər yer [Işitilemez] kimi getmək? Nə [işitilemez] hesab olunur? HANNAH: Sure. Geri gedək. sual, niyə çalışır, belə ki, daha böyükdür bir hash masa kimi bir şey daha. Bu səviyyələrin hər Belə ki, hətta, onlar burada tərtib değilseniz Bütün 26 simvol var. Səbəb və siz bilməz Mən Turing üçün oh, demək, lakin kimi o hər hansı ehtiyac yoxdur U. Yaxşı səviyyəsində eyni şeyi, birdən əgər əlavə etmək istədi T-H kimi idi, bir şey, Siz lazımdır istədiyiniz ki, söz əlavə qabiliyyəti. Hər bir hərf üçün Belə ki, siz olacaq bir dəstə var bu off gələn Diziler. Belə ki, almaq istədiyiniz necə görə bilərsiniz həqiqətən böyük, həqiqətən sürətli. Hər hansı digər suallar? Bütün hüquqlar. Evet? [00:28:29] Auditoriya: zaman çalışır ki, hash masalar daha sürətli? [00:28:33] HANNAH: zaman çalışır ki, hash masalar daha sürətli? Belə ki, siz həqiqətən idi pis hash funksiyası. Belə ki, mən kimi idi deyək, burada hash funksiyası var. Nə olursa olsun söz Mənə ver, mən həmişə Ben array giriş 0 qoymaq üçün gedir. Və belə ki, biz yalnız qoyulması ilə başa böyük bir uzun bağlı siyahı hər şey. Və belə bir axtarış zaman pis edəcək n bu, bizim siyahısı çox sonunda əgər. Cəhd, biz yalnız təkrarlamaq lazımdır söz məktublar vasitəsilə. Biz bir dəstə əlavə Belə ki, hətta əgər Bizim cəhd daha çox söz, Bu artıq bizi deyil müəyyən bir söz tapmaq üçün. [00:29:09] Biz nə üçün bütün üçün, Məsələn, bu halda, Biz zoom aradığınız deyək, Biz yalnız üzərində təkrarlamaq lazımdır ki, Z-O-O-M, dörd məktublar. Belə ki, yalnız söz zoom uzunluğu. Bu neçə Fərq etməz daha çox söz bu cəhd qoydu. Biz həmişə əldə edə bilərsiniz bu dörd addımlar. Awesome. Bəli? [00:29:32] Auditoriya: Belə [işitilemez] sağ, bir sıra edir? [00:29:34] HANNAH: Mm-hm. Auditoriya: edirsinizsə [Işitilemez] axtarır, Siz getmək olardı Sizin array [Işitilemez] tapmaq üçün necə? HANNAH: Sure. Auditoriya: daha çox vaxt deyil? HANNAH: Mən gedirəm Mənim array hər zaman ki, A, B, C, D olacaq, E, F, G, blah blah blah, Mən həmişə bilirsinizsə belə ki, eyni dəqiq üçün, Mən həmişə bilirsinizsə bu əlifba sırası ilə, Mən yalnız O sayı demək olar Bunu əlifbası. Yalnız ki, yer jump. Ilə, xatırlayıram, çünki Diziler, biz əldə edə bilərsiniz davamlı ki, serialın hər hansı bir element biz aradığınız biz bilirik vaxt. Evet? [00:30:09] Auditoriya: Əvvəlki On [Işitilemez] 27 slide lakin ilk bir 26. [00:30:14] HANNAH: Bağışlayın? [00:30:15] Auditoriya: ilk deyil bir 0, belə ki, 26 ola bilməz? [00:30:18] HANNAH: biz 27 deyəndə Əlbəttə, belə ki, ki, Bizə 26 vasitəsilə 0 indeksləri verəcəyəm. Amma həqiqətən saymaq əgər o həyata, bu 27 olacaq. Yaxşı sual. Başqa bir şey? Evet? [00:30:31] Auditoriya: Belə çalışır var hash masalar daha yavaş? [00:30:34] HANNAH: çalışır ilə, olacaq nəzəriyyə, daha sürətli hash masalar lakin daha çox yaddaş tutur. Evet? Auditoriya: [işitilemez]? [00:30:45] HANNAH: üzüldüm Mən sizə eşitmək etməyib. Auditoriya: [işitilemez]. 25 0 siz 26 verir. [00:30:54] HANNAH: 0 25 ki sağ, siz 26 verəcək. [00:30:56] Auditoriya: Və sonra [işitilemez]. HANNAH: Sağ. Beləliklə, biz ifadə edirik sayı bizim array şeyi sayı. Biz 27 var Belə ki, bu Bizi verəcəyəm 0 26 vasitəsilə hansı verəcək Bu halda bizim üçün otaq, Mən apostrof, o cümlədən deyiləm. Belə ki, biz 25 0 var əldə edirik əlifbasının ilk 26 məktublar, əlifba və ya bütün 26 məktubları. Və sonra son şey, giriş 26 edir çek olacaq mark, və ya delta. Başqa bir şey? Awesome. Mənim yer itirdi. Sərin, OK. [00:31:31] Beləliklə, biz artıq bu toxunub. Amma böyük ticarət off çalışır və hash masalar arasında çalışır ilə təmin edir nəzəriyyəsi, daimi yuxarı baxmaq dəfə, lakin yaddaş bir çox istifadə edin. Bütün hüquqlar, indi biz bir az var az mürəkkəb strukturları, və biz C ilə həyata olacaq, və biz birlikdə hərəkət edəcəyik. [00:31:49] Çıxarıcı borular Belə ki, biz bunu gördük burada mühazirə siz kimi bir şey var qablar harada yığını qoymaq son şey yığını davam edir Siz off almaq ilk şey. Belə ki, həqiqətən bir yığın müəyyən nə son şey qoymaq ki, ilk olacaq şey çıxarmaq. Və biz istifadə terminologiya Əgər biz bir şey qoymaq olacaq, biz bir şey əlavə olacaq əgər bizim yığını, biz basmaqla ki, zəng. Və biz bir şey əgər off, biz yaratma deyirik. Və biz olacaq əgər , biz bir yığın həyata track saxlamaq üçün əmin olmaq lazımdır ölçüsü və gücü, həm də. Elementlərin ümumi sayı biz Belə ki, keçirilməsi və elementləri cari sayı ki, aparılır. [00:32:27] Və çox eyni, biz sıralarında var. Və yalnız fərq əvəzinə baca ilə edir dedik biz qoymaq ki, son şey Biz çıxarmaq ilk şeydir. Belə ki, sıralarında, biz qoymaq ilk şey olacaq ilk şey biz almaq. Belə ki, bu əgər kimi həqiqətən bir mağaza qədər astarlı və kömək edirik, line sonra ilk şəxs kömək etmək üçün ilk şəxs olmalıdır. Belə ki, bir sıra olacaq. [00:32:52] Beləliklə, biz takip lazımdır ölçüsü, gücü, və baş biz etdiyiniz ildən ön off hər kəs almaq üçün gedir əvəzinə geri siyahısı. Ki Suallar? Narahat hər hansı bir C suallar? Data strukturları, fun stuff varmı? Bütün hüquqlar, sərin. Beləliklə, mən Alison üçün təhvil lazımdır daha çox proqramlaşdırma daxil jump. [00:33:14] ALISON: Oh, görəcəyik. Biz burada necə görürsünüz. OK, Mən cəhd və uçmaq üçün gedirəm Bu məhsulları vasitəsilə uşaqlar. Hannah çox getdi bütün şeyi dərinliyi. Mən verməyə cəhd gedirəm Siz tez partlayış ümumi Biz bütün Davin əldə edə bilərsiniz, belə ki, fun JavaScript və təhlükəsizlik şeyi ki, bəlkə, həqiqətən, haqqında daha eşitmək istəyirəm. [00:33:33] OK, Hannah dediyi kimi, əgər Hər hansı bir sualınız, Mən çox sürətli gedirəm, xahiş edirik Mənə bildirin. Mən zəruri suallara cavab olacaq. Başlamaq Belə ki, biz başlamaq olacaq ilk şey yəqin ki, bir Siz web öyrəndim proqramlaşdırma, icazələrin. Belə ki, chmod, uşaqlar olduğunuz lazımdır bütün web bu ustaları Siz var proqramlaşdırma son vaxtlar bunu. Bu, əsasən yalnız bir komanda var ki, icazələrin dəyişikliklər və ya giriş icazələrin Bizim fayl sistemi obyektlərin. Əlbəttə ki, həqiqətən Siz değilseniz, bu bax Bu hər hansı bir sorun Sizin problem dəstləri zamanı, Siz uzun ls-l, istifadə edə bilər bu kimi görünüşü cür almaq üçün, Siz, həqiqətən, bütün görmək bir fayl üçün icazələrin. [00:34:16] Və həqiqətən, biz yalnız getmək olacaq olduqca tez vasitəsilə yalnız olduqca çox bu hər nə demək. Belə ki, burada d olan Yalnız kataloq üçün dayanır. Aydındır ki, burada biz RWX görmək oxunaqlı, yazılabilir, və proqram deyil. Bu da bit kimi təmsil oluna bilər, biz növbəti səhifədə nəzərə almaq lazımdır. Gördük Belə ki, hər triad Burada, belə ki, üç Triadalar var. Biz, r heç bir şey x və r RWX var heç bir şey bu ilk fayl x. Bu ümumi strukturu var. [00:34:49] Beləliklə, biz bir kataloq var. Biz bir istifadəçi qrupu var Bu icazələrin. Bu izinleri bir qrup, və dünya icazə var. Siz triad bu hesab edə bilər. Siz üç bit bu hesab edə bilər. Belə ki, onlar dəyərlər aça bilər hər hansı 0 qədər 7 olan niyə bəzən biz chmod nə idi Əvəzinə nə rw chmod 600. Biz orada bir nümunə nəzərə almaq lazımdır. Amma əsasən, siz hesab edə bilər yalnız RWX olaraq bu, və ya bir neçə onlara hesab edə bilər hara burada ilk arasında bir sıra təmsil 0, 7, ikinci bir arasında bir sıra təmsil 0, 7, və üçüncü OK, 0 və 7 arasında bir sıra təmsil edir? [00:35:38] r 4 dəyər w var bir 2 dəyəri, və x var niyə bu 1 dəyəri var Burada icazə 700 chmod olardı. Burada bu halda, biz deyir, çünki ilk bit orada Çevrilmiş olunur var. Belə ki, biz oxumaq üçün 4 var. ikinci bit üçün Çevrilmiş indi biz 6, belə ki, 2 olan, w. Və üçüncü bit Çevrilmiş 1 x, üçün, belə ki, biz yeddi almaq. Və əlbəttə, bizim qrup və bizim dünya hər 0 var. Belə ki, bu da chmod 700 bərabərdir. Mən mütləq çalışacaqlarını arasında Xəritəçəkmə başa düşürük. Var, mən əmin deyiləm əvvəl bir viktorina gəlib, ancaq bir ola bilər Mən xahiş edə bilər sual. [00:36:18] Bir az da gedir daha burada chmod, burada daxil çox ümumi bir chmod zəng strukturu. Belə ki, əlbəttə, biz burada chmod var. Bu istinad nə References, olan biz bu icazələrin verilməsi yaxud biz bu atırıq uzaq icazələrin. Beləliklə, biz burada bir icazələrin var, kimi biz bir plus x chmod təqdim etdik, biz tezliklə görəcəksiniz kimi. Yalnız bu xüsusi vermək deməkdir hər kəs üçün icazələrin. Bütün onları verin. Belə ki, çox yaxşı u plus x ola bilər və ya g plus x və ya o plus x və ya bir neçə onların. Birinci hissəsi həmişə ki istinadlar olacaq. Kim biz bu icazələrin verilməsi yaxud biz üz onları alaraq? [00:37:03] ikinci operatorudur. Belə ki, uşaqlar daha çox plus ilə məşğul. Bu icazələrin verir kim onları ötürür, minus isə, məntiqi, onları rədd et. Orada heç bir şey çox dəhşətli. Və sonra rejimi biz danışdıq nə , oxu, yazı, və ya icra edir. Belə ki, bir plus x yürütülebilir vermək deməkdir hər kəs üçün icazələrin. Və sonra, əlbəttə, olan xüsusi fayl və ya qovluq. OK? Chmod yaxşı hər kəs? Çox pis deyil? [00:37:37] OK, siz hər hansı ki, HTML, belə ki, Köhnə kifayət qədər MySpace yaş to--? Mən bölməsinə bu göndərdi və sözün yarısı insanlar Mən dəli idi kimi mənə baxdı. Mən uşaqlar kimi idi ki, köhnə deyilik. Hadi. Belə ki, Hypertext Markup Language, Bu vicdanla yalnız sizin üçün bir yol var web müəyyən şeylər keçirmək üçün. Belə ki, bir biçimlendirme dili var. Bu scripting dili deyil. Bu bir məntiq var. Bu dəyişdirmək üçün sadəcə Bir şey göstərilir. OK, belə ki, bir vacibdir fərq etmək. Bu biçimlendirme dili hesab, bir scripting dili. [00:38:12] Belə ki, burada biz HTML tags var. Bu slide yəqin ki, ən çox ilə tanış olmalıdır olanlar və həqiqətən rahat ola bilər. Belə ki, açıq-aydın, biz Bizim HTML tag olan ki, hər şey ilə təyin arasında bu iki HTML olacaq. Biz bəzi keçid olan açıq-aydın verəcək xarici web page bir link. Bəzi adı, burada baş daxilində. Biz bizim bədən bir mövzu deyil h1, belə ki, bu gözəl etmək lazımdır və qalın və daha böyük. Və sonra, biz bəzi bir paraqraf p. Siz yəqin ki, bilməlidir və hər şeyi ilə tanış olmaq Bir resim daxil necə kimi hər hansı digər mövzu dərsləri? Mən mütləq olacaq div rahat. Belə ki, bu tags əksəriyyəti ilə tanış olmalıdır ki. Amma əlbəttə ki, hər şey kimi CS 50, siyahı tam deyil. Belə ki, təzələmək əmin olun. [00:39:08] CSS, belə ki, CSS, siz hər hansı izləmək iki həftə əvvəl mənim seminar, həqiqətən, yalnız bir yoldur web page stil? OK, belə ki, biz bir biçimlendirme dili var. Yalnız mətn qayğı HTML, və bu səhifə ola bilər harada. Amma CSS olduqca edir nə həqiqətən. Siz HTML bu ola bilər faylları, lakin biz sonra haqqında danışmaq kimi, Hesab edirəm ki, bilər olduqca əminəm Bu, növbəti slayd ola ümumi təcrübə, və həqiqətən Biz, həqiqətən, təşviq təcrübə, saxlamaq üçün onlara ayrılmış zaman MVC və ki, bütün paradiqma haqqında danışmaq. Bu feeds nə həqiqətən var. [00:39:42] Belə ki, CSS yalnız bir yoldur hər şeyi olduqca baxmaq. Burada hər şeyi kimi bədən və #title və Info, Bu seçiciler və nə deyilir Onlar xüsusi şeyi seçin edir HTML fayl ərzində və nə stil tətbiq, hər hansı istədiyiniz şeyi sort, Sizin web xüsusi element üçün səhifə. Odur ki, biz bir fon rəngi və rəng və font ailə olmanın ki, bədən nə müraciət edib. Biz burada geri baxdı əgər Belə ki, başlığı tətbiq deyil. Bu, yalnız nə müraciət edirəm Bu bədən seçiciler, OK? [00:40:22] Burada adı ilə, bu eyni şey olacaq, Mətnin rəngi blue yalnız gedir olan ərzində nə təsir title seçiciler. Eləcə də burada info kimi, mətn, çəhrayı olacaq burada nə barədə məlumat. Yalnız bir şey ki, Bu səhifədə çəhrayı olacaq tarixi, Bazar ertəsi, Noyabr 17, 2014. OK, belə ki, CSS yalnız bir yoldur bəli over-- daha çox nəzarət var? [00:40:48] Auditoriya: Niyə var başlığı ilə hash istifadə etmək olar? [00:40:51] HANNAH: Next slide, söz! Biz orada almaq lazımdır. Biz hash istifadə etmək niyə bu. Belə ki, selectors üç əsas götürmək Biz uşaqlar danışmaq formaları. Mən daha çox öyrənmək istəyirsinizsə fyou, çox orada var. Böyük CSS sənədlər var. Etmək üçün bir tag adı var HTML yalnız normal tags ilə. H1, p, div, h2 Belə ki, şeyi bu növ. Və biz yalnız həmin olar. Biz burada görmək kimi, belə ki, bədən, bir normal tag var. Belə ki, biz yalnız bədən qoya bilər Biz CSS faylı söhbət edirik. [00:41:26] Adı, bütün səbəbdən biz Bu hash var biz nə var ID sayılır. Belə ki, bir ID hər zaman olmalıdır HTML page unikal Siz zaman, belə ki, istinad, siz Yalnız istinad etdiyiniz bilirik ki, müəyyən bir şey. Ilə, burada bu halda belə bizim Burada h1, CS 50 baxış iclası, biz adı bir id var. Yalnız istinad üçün Belə ki, Bizim HTML parça, bir hash adı yoxdur. Yalnız konvensiyası ilə, kimlikleri təyin olunur onların qarşısında bir hash ilə. Eyni şəkildə görürük Burada info bir sinif edir. Və CSS sinif Bir dot sinif kimi təyin və ya sinif nə nöqtə. Belə ki, burada bu halda, bu info var. [00:42:10] Mən onu geri almaq. Bu, həm də olacaq Burada CSS çəhrayı onlar həm info bir sinif var. Və CSS faylı, biz təyin etdik info bir sinif ilə bir şey çəhrayı olmalıdır. Ki, hissi edirmi? Bəli? [00:42:27] Auditoriya: Əgər etmək bədən ağ hər şey, və sonra etmək üçün cəhd mavi daxili bir şey, ki, problemlər yarada bilər? [00:42:34] HANNAH: Belə ki, CSS kaskad stillər. Belə ki, nə doğru deyil alt üstün olacaq. Belə ki, bədən bir şey varsa, və hər şey ağ etmək, və sonra siz adı dəyişdirmək və ya bədən daxilində mətn dəyişdirmək, ki, üzerine yazır. Doğru Belə ki, bir şey alt üstün olacaq. Bəli? [00:42:56] Auditoriya: Və kimlikleri, unikal lakin dərsləri daha çox ola bilər? HANNAH: Sağ. Belə ki, kimlikleri unikal olmalıdır, və dərsləri bilər istədiyiniz kimi bir çox şeyə baxın. Hər hansı digər suallar? Bəli. [00:43:09] Auditoriya: [işitilemez]. Mən olub merak alıram ki, bir fərq edir. HANNAH: Mən üzüldüm sual nə idi? Auditoriya: kiçik var "F" və paytaxtı "F." HANNAH: Belə ki, fərq kiçik "f" və kapital arasında "F" bir fərq etmək lazımdır. Belə ki, "f" 15 ya yol olacaq. Cool, başqa bir şey? Yaxşı hər kəs, CSS? Bəli? [00:43:30] Auditoriya: Bağışlayın. Bir sinif və ID ola bilər? [00:43:35] HANNAH: Bəli, edə bilərsiniz. Things bir sinif və ID həm də ola bilər. Mən yüksək gəlir Öz bu test. Əgər edərək ən yaxşı yalnız öyrənmək olacaq CSS bir şey çox sadə web page, Bəzi CSS tərtib və yalnız Onlar qarşılıqlı necə görüb. Və çox yaxşı qazanmaq lazımdır Bu işləri necə intuitiv mənada. [00:43:56] OK, CSS ilə yaxşı hər kəs? Siz bütün etmək olacaq İndi CSS ilə gözəl saytları. OK, ən yaxşı təcrübələr, yalnız Yadda saxlamaq üçün hər şeyi, hər şeyi Biz dok niyə bu that-- deyil Siz dizayner və etajer üçün. Belə ki, bütün HTML tags bağlayın. Siz açıq bədən varsa, yaxın bədən olmalıdır. Siz açıq ci bəndə varsa, yaxın maddə olmalıdır. Sizin səhifə doğrular yoxlayın. Siz uşaqlar çox tanış olmalıdır Bu p-set yeddi CS 50 maliyyə ilə W3 Validator ilə. Mən əvvəl qeyd etdiyim kimi bizim böyük paradiqmalar biri CSS stil ayıran edir HTML biçimlendirme olan. Və sonra, əlbəttə, biz aşağı burada bu böyük XKCD. Yay, komik relyef! [00:44:38] OK, TCP / IP. Bu və HTTP arasında, əsasən onlar həm protokolları istəyirik. Belə ki, yalnız hesab edə bilər Onların bir sıra qaydaların kimi necə hər şeyi idarə edən İnternet vasitəsilə hərəkət. Belə ki, ötürülməsi nəzarət protokol, və ya internet protokolu, əmin etmək üçün yalnız bir yoldur Bu olacaq yerləşir ki, data alır və biz əgər bilirik ki, Biz heç data itkin edirik. Belə ki, uşaqlar əgər mühazirə geri hesab edirəm ki, David ilə əvvəl bir neçə həftə biz onlar dörd zərflərin idi Bütün dörd biri kimi saylı, Dörd iki, dörd, üç, dörd dörd, bu qaydaları bir sıra edir. Biz OK, biz zaman istəyirik ifadə edərək, birdən çox paket göndərilməsi, Biz nömrəsinə gedir nə sayı ilə və neçə cəmi istifadəçi almaq lazımdır. [00:45:19] Və bu, yalnız izah kim məlumat onlar olub qəbul Əgər hər şey və ya kazanılmış Bir şey yol boyunca məğlub oldu. Onlar yenə də soruşmaq lazımdır. Bu, həqiqətən, qaydaları bir sıra edir. Bu, OK, hesab edə bilər necə? Və həmçinin, bu port ifadə edən Siz uşaqlar, mən mühazirə zamanı bilirəm can-- Onlar limanları bütün siyahısı var idi. Amma biz indi burada onlara yoxdur. [00:45:41] Belə ki, Hypertext Transfer Protocol yenə başqa bir protokol var edir. Belə ki, qaydaları bir set var bu halda, idarə, mətn necə köçürülür. Belə ki, yalnız brauzerlər imkan verir web server danışmaq. Biz burada dediyi kimi, bu insan Qucaqlaşma kimi. Bu idarə yalnız bir yol var necə web server edir brauzerinizin ilə qarşılıqlı olacaq. Biz nümunələri yalnız bir neçə var. Biz burada bir sorğu burada GET metodudur. Biz ki, HTTP 1.1 var Bizim üçün protokol versiyası. Və sonra, host, nə olan Biz, həqiqətən, daxil olmaq üçün çalışırıq. Və sonra, burada bax, biz Bu 200 ilə bir cavab almaq Bizim HTTP cavab kodu kimi OK. Biz gedirəm böyük bir siyahısı var bir ikinci qoparmaq üçün Sizlərin ilə tanış olmalıdır. Və biz, bu məzmun növü text / HTML olan yalnız məlumatların hansı növ deyir Biz OK, server qəbul olunur? Bu ana və bu məzmun növü HTTP başlıqlarını hissəsidir. Siz kimi bir neçə və ya az ola bilər kontekstində üçün lazım nə Siz ilə məşğul oluruq. Bəzən bir çox olacaq Sizin server gələn məlumat. Bəlkə bir çox tələb edirik istifadəçi məlumat. Bu kontekstdən asılı olaraq dəyişir. Siz CS 50 Study baxsaq, ki, bir çox daha çox var. Amma biz almaq üçün bir çox mən gedirəm vasitəsilə Sağ irəli əgər getmək üçün ki, uşaqlar ilə OK? Cool. Tutun. Mən mütləq var ha idarənin ixtiyari nümayəndəsinin, bütün siyahısı! Bu niyə bilmirəm burada bütün yol. Mən sözün köçürülüb fikir Mən sitting-- idi isə [00:47:15] DAVIN: Siz onu öyrətmək istəyirsiniz? Yoxsa mənə öyrətmək istəyirsiniz? [00:47:17] Auditoriya: Mən ola bilər fikir yalnız başlamaq onlara göstərir. Mən sizə daxil edə bilərsiniz, demək daha onlara, amma Bu I-ci ildən daha mənada fikir yalnız HTTP statusu bəhs edirdi. Belə ki, burada bütün siyahısı. Mən nə gedir nə tahmin Davin sonra onlara getmək niyyətindədir. Amma bütün siyahısı var dad preview gəlib. OK, biz bu gedir blow-- olacaq başqa heç kimi bir PHP crash kurs olacaq. [00:47:41] Belə ki, PHP, mətn preprocessor, bir recursive backronym var, bu da başqa bir şey seçildi deməkdir. Və sonra onlar bu kimi idi həqiqətən mənada etmir. Belə ki, onlar yalnız it-- adına və bir kisaltmasidir idi, onlar yalnız PHP etdi mətn preprocessor olan yalnız heç bir əhəmiyyət kəsb edir. Fun hekayə. Bu proqramlaşdırma dili var. Mən vurğulamaq Belə ki qədər HTML bir proqramlaşdırma dili deyil, bir biçimlendirme dili, PHP var bir proqramlaşdırma dilidir. Siz bu necə məntiq var, çünki. Conditionals var. Biz dəyişənlər var biz isə HTML o şeyi heç biri yoxdur. [00:48:12] Bütün hüquqlar, biz bu az bit burada PHP bir dad kimi. Belə ki, əsasları, dəyişən adları dollar işarəsi ilə başlayın. Bu kimi insanların çox. Bizə pul xatırladır. Bu, bütün böyük deyil. Biz bütün PHP istəyirik. Beləliklə, biz bir daxil deyil Artıq dəyişən növü. Bu run zamanı təyin edilir. tərcüməçi, olacaq oh, biz yalnız vasitəsilə run lazımdır və kontekstində görə, Biz növ hansı növ görəcəksiniz Bu dəyişənlər lazımdır. Heç bir əsas funksiyası var. Things yalnız davam edəcək. Sizin idxalı ilə Siz uşaqlar Sizin p-set son, bu görəcəksiniz. Əsas funksiyası həqiqətən yox idi. Siz yalnız nə yazdı Siz nə etmək istəyirdi. Və yalnız cür oldu. Belə ki, sizin üçün PHP var. [00:48:56] Diziler çox oxşardır. Biz hələ bu bracket var. Burada bəzi dəyişən var Varış adlanır və bərabər deyil to-- biz normal var bracket notation. Və biz bəzi əsas dəyəri. Və böyük fərq C və PHP seriallarda arasında bu associate-- ola bilər ki, Biz düymələri dəyərlər əlaqələndirmək olar. Belə ki, əvəzinə yalnız olan dizine bir sıra sayı və ya mövqeyi ilə array ki, element, biz, həqiqətən, əsas ilə əlaqələndirmək olar. Biz demək olar, OK, mən istədiyiniz hər hansı dəyəri meyvə ilə bağlıdır. Və bəlkə biz meyvə banan getdi var. Belə ki, bizə banan geri ediyorum. [00:49:41] Amma əsasən, ən çox Bu barədə güclü şey ki, uşaqlar yadda əgər biz əsasən mühazirə demo rewrote PHP speller və bu əmrində deyilirdi axtarış yalnız həqiqətən istəyirəm, Bu əsas mövcuddur? Ki, güc, həqiqətən növü var. Siz təkrarlamaq lazım deyil Sizin array vasitəsilə. Siz bilmək lazım deyil nə sahəyə var. Bu sonunda və ya əvvəlində ola bilər. Kimi uzun siz əsas bildiyiniz kimi ki, dəyəri ilə bağlı olub, PHP yalnız dəyər tüpürmək bilər sağ OK, siz həyata geri? [00:50:09] Və sonra, biz də yalnız var yalnız Çünki biz əsas dəyər cüt ola bilər Siz var demək deyil. Siz də yalnız yarada normal array Burada kimi, bu altındakı yalnız bir, iki, üç, dörd. Həmin bizim dəyərlərimiz. Və əslində, onların açarları indeksləri var. Belə ki, bir əsas sıfır olacaq. Iki əsas biri olacaq. Belə ki, və s, əgər Siz açıq-aydın bir əsas təyin, ki, güman bilər dəyəri yalnız onların göstəricisidir. Ki, hər kəs mənada edirmi? No suallar? Awesome. [00:50:38] OK, foreach üçün bir yoldur Sizin Diziler vasitəsilə təkrarlamaq. Belə ki, burada bir şey var yalnız ümumi quruluşu. Belə ki, foreach adı Bizim array, nə kimi Hər bir zəng etmək istəyirəm Sizin sıra element, və biz bir şey edə bilərsiniz ki, element və ya dəyəri ilə. Beləliklə, biz burada nümunə var. Biz assosiativ var Bu iki entries ilə array bar ilə foo ilə bağlı olan və baz ilə bağlı olan qux. Belə ki, düymələri foo və baz var. Dəyərlər bar və qux var. Belə ki, foreach, biz array var burada əsas dəyər cüt kimi. Bu olmaq üçün imkan verir əsas və dəyəri də. Bəlkə yalnız istədiyiniz dəyəri bu halda Yalnız Varış kimi edə bilər sonra $ dəyər və kimi yalnız dəyəri daxil olur Siz təkrarlamaq kimi. Amma bəlkə, bəzi Səbəbi, əsas istəyirik, Mən seçdi nə olan əvəzinə bu misal. Beləliklə, siz həqiqətən manipulyasiya edə bilər Bu halda əsas və dəyəri. OK? Sual? [00:51:41] Auditoriya: Siz istəyirdi yalnız əsas ki, manipulyasiya Siz foreach-- [00:51:45] ALISON: Sağ. Belə ki, istəyirdi yalnız düyməsini manipulyasiya, Siz hələ bu lazımdır sintaksis yalnız, çünki bir şey kimi Varış var, bir şey kimi, bu gedən istədiyiniz güman dəyəri deyil, düyməsini basın. Belə ki, Siz yalnız kimi varsa , bəlkə bu $ element kimi kimi Varış, bu xahiş edirik ki, güman olacaq hər nöqtədə yalnız dəyər. Siz açıq-aydın istəyirsinizsə, əsas ilə bir şey, Siz fikrində deyilik, hətta dəyəri bir şey, Bu struktur lazımdır Biz burada var harada aydın xahiş edirik əsas və dəyəri üçün. Böyük sual. Başqa bir şey? Cool. [00:52:27] Bütün hüquqlar, PHP və HTML. Oh, biz geri istəyirik p-set daha yeddi. Belə ki, bu bir az tanış baxmaq lazımdır. Belə ki, bu, bəzi sadə HTML forması ki, salam bir giriş adı var. Və biz GET bizim metodu var görürük. Və biz p-set xatırlayıram əgər, Bu formu təqdim edildikdə, var $ _GET deyilən bir sıra göndərir Bu giriş və ya dəyişənlərin bütün olmalıdır forması Bizim PHP manipulyasiya. Bu halda, istifadəçi Belə ki, onların adı qoymaq olardı. Onlar təqdim edir. Və biz burada sıra almaq olduğunu görəcəksiniz. Biz GET sıra var. Biz adını daxil olur. [00:53:11] Belə ki, deyir ki, OK, mənə vermək adı ilə bağlıdır ki, dəyəri, Burada əsas olan adı. Və birbaşa xəritələr nə Biz giriş adı olduğunu ifadə etdi. Belə ki, bu sizə əsas verən nə burada array olacaq. Ki, hər kəs mənada edirmi? Bəli? [00:53:32] Auditoriya: adı baxın GET mu [Işitilemez] bənövşəyi xətt? [00:53:36] ALISON: Burada bu aiddir. Belə ki, burada bu sahə Burada bu ad aiddir. Belə ki, bu adı bilərdi telefon nömrəsi, və ya hər hansı kimi. Bu ad əslində nə deyir Bu sahəyə zəng? Necə gedir bu sahəyə aiddir? Bu ad biz istəyirik, kimi həqiqətən edir Bu sahədə deyərək adı adlanır. Yəni biz daxil olacaq necə. [00:53:59] Auditoriya: Belə ki, kimi ki, giriş adı Bob bərabərdir, and-- [00:54:02] ALISON: Sağ sonra, orada Bob almaq olardı. Məhz. Hər kəs sərin? Bütün hüquqlar, belə ki, POST GET qarşı Bu iki əsas yolları ki, bir HTTP sorğu məlumatları keçir. Siz uşaqlar görüldü olmalıdır Bu ümid, həm də. GET, informasiya Belə ki, URL keçir. Beləliklə, siz heç Google əgər axtarış, YouTube, will yəqin ki, bir sual işarəsi bilərsiniz. Və sonra, bütün sözləri ki, yalnız orada qoydu. Və POST data keçir HTTP mesaj orqan. Belə ki, GET fərqli olaraq, siz cür hesab məlumat istifadəçi gizli olunur. Amma nə həqiqətən var anlamaq vacibdir Bu hələ ki, GET kimi etibarsız. Mən istifadə etmək istəyirəm bənzətməsi əgər Sizin bank hesab nömrəsi var və xarici yazmaq bir zərf, olduqca təhlükəli deyil. Siz olsaydı bir parça yazmaq üçün kağız və zərflərin daxilində qoymaq, Bu hələ ki, həqiqətən təhlükəli deyil Siz bütün açmaq deyil və faktiki məzmunu baxmaq mesaj olduğunu görürük. Belə ki, bu, "gizli" və kimi insanlar Bu təhlükəsiz hesab edirəm, lakin bu, həqiqətən deyil. Mən əminəm Davin edəcək bəlkə, daha almaq. Amma bu vacibdir fərq etmək və həqiqətən yaxşı bir şey anlamaq üçün. [00:55:15] OK, SQL, Yapılandırılmış Query Language. Bütün stuff ki, biz belə yaxınlarda gördüm! Belə ki, əsasən yalnız nəzərdə, təbii ki, data idarə olunması üçün. Siz uşaqlar ilə təcrübə bir çox idi PHP MyAdmin ilə masa bu. Və dörd ümumi sorğu var Biz istəyirik ki, uşaqlar bilmək. Belə ki, yeniləmə, insert var, seçin və silin. Belə ki, həqiqətən də bu bilirik əmin olun. Biz getmək olacaq həqiqətən sürətli onların vasitəsilə. [00:55:40] Belə ki, həqiqətən, yeniləmə nə Siz bunu hesab bilər yalnız sizin bazasında data yeniləyir. Beləliklə, biz burada nümunə var. Bu ümumi deyil yeniləmə sorğu strukturu. Beləliklə, biz masa yeniləmə ki, söhbət edirik. Və biz müəyyən qurmaq istəyirəm dəyərləri müəyyən sütunlar xüsusi dəyərləri bərabər. Belə ki, bu, yalnız dəyişən masa yenilikləri Bu halda bütün satır dəyərlər. Bu bir Belə ki, aşağı burada, faktiki Məsələn, biz insert-- üzr var. Bu slayd inkişaf etmiş Mənə olmadan həyata. [00:56:17] Belə ki, bu yenilikləri masa bərabər col1 müəyyən ev bərabərdir harada VAL1 üçün "Currier." Bu bir edir ki, yalnız yalnız dəyişikliklər xüsusi yerlərdə bu dəyərləri yeniləyir. Belə ki, bu ilk bir, bu dəyişikliklər Sizin masa hər şey üçün dəyərlər, OK? Bu dəyişiklik olacaq hər bir giriş üçün sütun, hər bir sıra üçün. Bu harada Lakin, ola bilər bir seçmə kimi düşünün. Belə ki, yalnız dəyişdirmək olacaq çox xüsusi yerlərdə. Belə ki, p-set, zaman yeddi bəlkə pul məbləği yenilənir istifadəçi var idi ki, yəqin ki, var idi Bəzi ID sağ, sessiya ID bərabər harada? [00:56:53] Siz istəmədiyini pul məbləği dəyişə hər bir şəxs üçün olan Sizin veb istifadə edilmişdir. Siz bir dəyişdirmək istədi xüsusi şəxs, həmin şəxs olan kim o zaman istifadə etdi. Sağ? OK, belə ki, insert daxil cədvəllər daxil müəyyən dəyərlər. Bu olduğunuzda kimi yeni istifadəçi yaratmaq. Burada ümumi strukturu nə masa daxil edilir Biz söhbət edirik. Dəyərlər olan dəyərlər ki, biz, həqiqətən, əlavə etmək istəyirəm. OK, biz burada bax belə ki, biz masa daxil etdik. Bu xüsusi sütun edir onların uyğun dəyərlər. Belə ki, bu, insert deyir olan yeni sıra dəyərləri VAL1 və val2 altında bu xüsusi sütun. [00:57:33] Belə ki, bəlkə yalnız doldurmaq istəyirəm Bu sırada yarım şeylər çıxdı. Bu hissəsi burada imkan verir nə var. Bu, həqiqətən sizə imkan verir hissəsi müəyyən edir. Bəli? [00:57:44] Auditoriya: Can yalnız [işitilemez] sıra [Işitilemez] hüceyrələri? [00:57:52] ALISON: yalnız doldurmaq varsa Sizin sıra müəyyən hissələri, Bu hüceyrələrin qalan yalnız boş. Kimi uzun siz onları imkan boş, bir problem deyil. Əgər siz onları əldə etmək üçün cəhd edin, bu Bəzi boş element geri olacaq. Amma bu bilmək vacibdir Müəyyən masalar ki, Onlar null olmaq üçün icazə lazımdır. Siz daxil ola bilər Sizin p-set zamanı problem Biz hər hansı bir imkan vermədi, çünki Sizin dəyərlər null ola bilər. Amma bir belirtebilirsiniz Sizin masa isteğe dəyər. [00:58:26] OK seçin, belə ki, bu əldə yalnız bir yolu bir masa xüsusi məlumat at Istədiyiniz bir identifikator. Masa yerdən Belə ki, seçin star col, bir şey yalnız deməkdir bərabərdir Mənə bağlı bütün məlumat vermək bu xüsusi sütun doğrudur. Belə ki, bu halda star olacaq OK, siz bütün sıra qayıtmaq? [00:58:49] Və sonra, bu halda, olan ulduz seçin masa yalnız bütün masa verir. Və sonra, açıq-aydın yalnız silmək masa sıra silir. Belə ki, masa silmək, nə masa biz istəyirik bəzi xüsusi sened identifikatoru və ya bir şərt doğrudur. Bəli? [00:59:07] Auditoriya: Sual. Niyə ikiqat istifadə olunur quotes, və olub ikiqat quotes və ya bir yoxdur quotes, bir fərq edir? [00:59:13] ALISON: Cüt quotes və ya bir quotes SQL bir fərq etmir. Mən başqa bir sual gördüm düşündüm. Bəli? [00:59:20] Auditoriya: nə təsir etmir sorğu xilas olur? [00:59:25] ALISON: Rob? [00:59:27] Rob: Siz demək nə sorğu qaçan? [00:59:31] Auditoriya: kimsə varsa bir şəklində bir sorğu idarənin ixtiyari nümayəndəsinin, [00:59:36] Rob: kimsə olsaydı bir quote qoymaq, sonra kimi uzun siz sanitizing etdiyiniz kimi Sizin giriş, o etməz. Amma bir kullanıyorsanız quote siz səhv var giriş qaçan, sonra bəli, onlar lazım olan qırmaq üçün bir quote qoymaq üçün Sizin kodu. ikiqat quotes istifadə əgər, Onlar ikiqat qoymaq lazımdır kodu pozmaq üçün sitat. Amma uzun şeyi xilas kimi Düzgün, bu məsələ deyil. Bu, sadəcə tərcümə olacaq hər halda doğru simvol. [00:59:59] Auditoriya: escape nə deməkdir? ALISON: Bəli, kimi sanitizing və escape. biz exam, böyük XKCD komik var onlar qoparmaq ki, oh Rob: Bu son slide var. ALISON: Bu, həqiqətən, son slide var? Oh my god. Orada biz mükəmməl, gedin. OK, belə ki, əsasən, siz vurmaq bilər Bu SQL sorğu daxil bir şey burada sizin pozur kodu və ya David göstərdi sinif, bəzi bir varsa quote 1 1 bərabərdir və kodu, əgər, biz yalnız birbaşa surəti, və biz bitən bir quote, nə olar, biz almaq Bəzi olduğunu ifadə edən doğru üçün qiymətləndirir edəcək Kimsə bizim verilənlər bazası daxil imkan və məlumat almaq ki, Onlara almaq istəmirəm. Belə ki, giriş sanitizing yalnız əmin edilməsi deməkdir biz bu qaçan ki, simvollar və onların təyin chars və şeylər kimi ki, icazə verilməlidir sözün alınacaq Bizim SQL bəyanat kimi. [01:01:04] Belə ki, böyük odur ki, biz bildirib ki, Sizlərin istifadə etmək lazımdır ki, HTML xüsusi chars idi olan bir şeydir Siz bir nəzər istəyirəm bilər ki. OK, silin. Data növləri, bu online olacaq. 15 dəqiqə tərk ildən, mən yalnız sağ bu yolu getmək üçün gedir. PHP və SQL, əsasən bu yalnız bir sorğu funksiyası var idi ki, qarşı qorumaq kömək Bu zərərli hücumları. Belə ki, zaman istifadə sorğu, biz əmin edilməsi hər şeyi sanitized və etajer edilmişdir. [01:01:36] MVC, yalnız bir dizayn paradiqma edir belə ki, model, görünüşü, nəzarətçi. Bu şeyi saxlamaq üçün yalnız bir yol var gözəl və eyni şəkildə parçalamaq Biz amil edirlər ki, funksiyaları daxil kodu. Bu yalnız bir web dizayn çərçivə ki, eyni şey imkan verir. Mən bu keçmək üçün gedirəm. [01:01:54] Bu bir şey deyil ki, mən super rahat olardı. Orada böyük kiçik masa var. Bu funksiyası verir model nümunəsi. Mən yalnız bu yolu mən, çünki gedirəm Həqiqətən Davin danışmaq istəyirəm. Hər hansı bir sualınız varsa, çekinmeyin. Mən sonra burada olacaq. Yalnız mənə danışmaq gəlir. Ki, biz HTTP halları var. Və Davin nin zərbə gedir 15 dəqiqə bu yolu. Bu, böyük olacaq. [01:02:17] DAVIN: OK. Ah, sizin mic? Bəli. Üzr istəyirik. ALISON: Way hazırlanacaq. DAVIN: Xeyr, mən hazıram. Mən hazıram. Bunu edək. Hazır. OK. Üzr istəyirik. Mən özümü qəhvə tökülən. Mən daha çox Ben əgər mən bilmirəm Mən silly baxmaq üzdü, və ya artıq qəhvə yoxdur. Hər halda, yalnız bir sürətli elan hesabatı haqqında uşaqlar var. Belə ki, uşaqlar bu hesabatı deyil viktorina nə rəsmi. Bu viktorina nə rəsmi edir. Həmçinin, web, biz demək Siz, OK, bu viktorina olacaq. Az istifadə etmək hesabatı Belə ki, rəsmi deyil, var. Və bu barədə səhvlər var. Belə ki, yaxşı, yalnız kor-koranə istifadə etmək deyil. Belə ki, Bəli, ki, var. Belə ki, bu real tez daxil edək. [01:03:05] Belə ki, HTTP halları. Belə ki, nə olur veb, hər şey yaxşıdır. Hər şey OK. Hər şey geri gəlir siz yol istəyirəm. Siz 200 OK almaq. 301, biz 301 əvvəl görmüşəm? Qədər nə gözləyin? Üzr istəyirik. Biz təhlükəsizlik zamanı i tin mühazirə gördüm. Əgər belə ki təhlükəsizlik zamanı David çap http sonra cs50.net getmək üçün cəhd Siz 301 köçürülüb görmək olacaq. Niyə? Bu yönlendirme olacaq, çünki Bizim HTTPS üçün avtomatik olaraq. [01:03:35] Belə ki, 301, yalnız bu köçürülüb əsasən bir yönlendirme. Və bu kimi, bu barədə düşünmək olar. 2-ci ilə başlamaq halları hər hansı o hər şey OK, OK, kimi. Başlamaq halları hər hansı 3, bu yönlendirme var. 4 ilə başlamaq halları, vasitə ki, Müştəri səhv bir növ var. 5 ilə başlamaq halları, ki, server səhv bir növ var. Belə ki, cür parçalamaq kimi halları. Belə ki, 304-ci ildə, belə ki, redaktə deyil sizin server.c p-dəsti, belə ki, sizə deyək dolu cat.html. Hər şey geri gəlir Siz 200s, OK, böyük olsun. [01:04:03] Siz onu yenilənmiş deyirlər. Yaxşı, ki, daxili cat.html, bir JPEG var. Yaxşı, ki, JPEG deyil davam yeniden almaq üçün. Başqa bir yazmaq fikrində deyilik Server sorğu GET, və sonra geri bütün məlumat almaq. Bu yalnız şəkil Olacaq ki, gedən maşın cached olmaq üçün. Və belə ki, image 304 olacaq. Belə ki, redaktə edilib deyil. Əgər həyata bağlamaq varsa, aydın cookies, sonra Yenile və yüklemek üçün cəhd edin daha, 200s görmək olacaq. Siz 304 görmək fikrində deyilik. [01:04:28] 400, pis sorğu, real tez kimi, əgər bir göndərmək üçün gedirdi Server JSON obyekt və JSON obyekt, səhv idi Siz kimi bir şey görəcəksiniz. 403, qadağan. Zaman qadağan görmək olardı? Yəqin ki, Yəqin ki? Auditoriya: chmod. DAVIN: chmod, evet. Belə ki, müəyyən deyil Düzgün icazələrin. 404, tapılmadı. Bu yalnız var. Siz səhv URL yazın Belə ki. 500, daxili server səhv, server yəqin ki, düzgün yapılandırılmış deyil. Sonunda bir şey deyil, server tərəfində bir şey. Və 503? Bir çox gördüm Son p-set 503s. Zaman ki, baş verəcək? Mən fısıltıyla eşitdim. [01:05:05] Auditoriya: zaman Google Bir robot deyilik edir. DAVIN: Bəli, Google qərar Siz 503s almaq bir robot istəyirik. Belə ki, bir overload var. Siz server tələb varsa çox, adətən müvəqqəti var. Və ən çox qeyd. Belə ki, 503 gördüm. Siz bir az qəbul ola bilər aranın ardından 503s, getdi və hər şey doğru idi. [01:05:20] GABE: Real sürətli, uşaqlar alıram Yəqin ki, 500 bu son problem set? Bəli? [01:05:27] Auditoriya: Adətən əgər server yersiz bir fayl var və ya [işitilemez] onların maşın [işitilemez]. [01:05:34] GABE: Belə ki, bir konfiqurasiya ola bilər server sizin PHP məsələ. Amma bu yalnız bir şey ola bilər Sizin unuttum bir nöqtəli vergül kimi. Siz PHP yazaraq edirsinizsə, bəzi səhv sintaksis siz kimi bir şey əldə edə bilər. OK? [01:05:46] DAVIN: Cool. Mənə AJAX qədər yalnız nə istəyirsiniz? [01:05:51] GABE: [işitilemez]. DAVIN: OK. Belə ki, DOM nədir? DOM mənası nədir? [01:05:55] Auditoriya: Document object model. DAVIN: Nice. Və niyə biz bunu edirsiniz? Awesome. Sağ, belə ki, yalnız daxil olmaq üçün imkan verir HTML, çox tez bizim səhifəsinə daxil. Niyə? Biz müalicə edirik Çünki bizim səhifə, bizim HTML tags müalicə, müalicə hər şey əgər onlar obyektləri istəyirik. Onlar kimi biz onları müalicə edirsinizsə obyektlərin, onda biz nə edə bilər? Bəli, biz onlara funksiyaları zəng edə bilərsiniz. Bu niyə vacibdir? Yaxşı, biz istifadə etmək olacaq, çünki JavaScript Bizim HTML yeniləmək üçün, bu obyektlərin yeniləmə. Biz obyektləri kimi onları müalicə əgər, belə ki, biz onlara funksiyaları zəng edə bilərsiniz. Mən bu bir az daxil olmaq üçün gedirəm Mən JavaScript getmək zaman daha çox, ancaq bütün kimi gördüm document.getElementByID. Belə ki, sənəd sizin deyil element, şəxsiyyət tərəfindən element almaq belə ki, baxmaq olacaq HTML tag bəzi ID. Və sonra, siz edə bilərsiniz ki, başqa bir şey. Məsələn, document.body kimi, sonra uşaq əlavə edə bilərsiniz. Belə ki, sənəd tapmaq olacaq. Siz sənəd var. Siz bədən tapmaq üçün olacaq. Siz cəsədini tapdı. Və sonra, siz olacaq bu barədə bəzi funksiyası zəng. Belə ki, uşaq əlavə və əlavə edə bilərsiniz Sizin bədən daxilində sonunda üzərinə bir HTML. Belə ki, əsasən, yalnız istəyirik bir obyekt kimi müalicə. Siz HTML müalicə edirik bir obyekt kimi tags. Və bu çox asan edir və sürətli onların yolu ilə getmək. Lakin bu da sizə imkan verir onlara funksiyaları zəng etmək üçün belə ki, manipulyasiya edə bilər və elementləri dəyişdirmək. [01:07:04] GABE: Bunu nəzərə alaraq, niyə belə JavaScript edir gözəl dil HTML ilə qarşılıqlı? Insanlar seçilməsi zaman Oran var brauzerinizin üçün dil, Müştəri tərəfi, JavaScript, həqiqətən gözəl Bu obyektlərin idarə həqiqətən yaxşı. Və obyektlərin cür kimi ki, HTML görünür obyektlərin, belə ki, JavaScript üçün çox asandır user cür etmək. DAVIN: Nice. Belə ki, burada yalnız bir misal var. Mən keçən il viktorina hesab edirəm ki, və ya bəlkə iki il əvvəl Bir ağac yaratmaq istədi. Belə ki, bu istədiyiniz nə dəqiq deyil. Belə ki, sənəd ilə həyata başlamaq. Və sonra əsasən Yalnız tags baxmaq. Siz biz baxmaq əgər Belə ki, HTML tag ilə başlayın. Və sonra, siz necə ipuçları almaq abzas əsasında bunu. Filiallarının Belə ki, baş cür off. Baş Inside, biz başlığı üçün bir tag. Beləliklə, biz bir adı tag var. Və daxili, biz bəzi simli var. Və belə ki, biz təmsil edir bir daire bir string. Bütün tags meydanlarda var. [01:07:54] Və baxsaq, biz əgər bir ağac kimi hesab, və ki HTML deyək bir valideyn, sonra baş və bədən bacı olacaq. Onlar həm olacaq ki, valideyn uşaqları. Onlar istəyirik, çünki Belə ki, Hər iki bacı, onlar cür yanında olacaq Bizim ağac model bir-birinə. Və sonra, siz əsasən eyni şey. Belə ki, çətin, lakin biz xahiş deyil viktorina əvvəl bu kimi suallar. GABE: heç mu bu günə qədər sual var? Yaxşı deyilmi? DAVIN: Cool. JavaScript, OK, yaxşı stuff. Belə ki, JavaScript, JavaScript nədir? Bəli, JavaScript bu That mürəkkəb, lakin bu vurğulayır bəzi ki unutulmamalıdır. Birincisi, bu, azad tipli oldu. Bu nə deməkdir? Belə ki, PHP nə oldu, yeah əmrində deyilirdi? [01:08:35] Auditoriya: Siz açıq-aydın yoxdur bu dəyişən hansı növ dövlət. DAVIN: Perfect. Belə ki, o yoxdur bildirib aydın dəyişən növü dövlət. Bu doğru deyil. Mən int əgər Belə ki, C, i 50 bərabərdir, sonra PHP, yalnız bu kimi, $ i, 50 bərabərdir. Sonra JavaScript, zəng nə olardı? Var, sağ? Var i 50 bərabərdir kimi olarıq. Amma sizin üçün yoxdur kimi, OK, bu int edir. OK, bu simli edir. Ehtiyac yoxdur ki, yoxdur. Bu şərh dil var. Belə ki, nə deməkdir? [01:09:04] Auditoriya: tərtib deyil. [01:09:06] DAVIN: demək nə tərtib deyil? Evet? [01:09:11] Auditoriya: Siz yoxdur kodu yenidən qurulması üçün hazır almaq üçün kompüter çalıştırmak üçün. Bu, sadəcə zamanı qəbul icra və kompüter [işitilemez]. DAVIN: Bəli, belə ki, olacaq tərcüməçi keçir. Amma doğru istəyirik. Belə ki, heç olacaq sağ, tərtib? Zaman edirdilər sizin PHP və JavaScript kodu, Siz tərtib adlı heç vaxt. Siz kimi bir şey deyilən heç və ya bu kimi bir şey. Bu şərh, çünki var. Belə ki, brauzer keçir hər zaman, bir tərcüməçi vasitəsilə gedir. Və bu şərh edəcək yalnız hemen sizin üçün real vaxt. Belə ki, bəzi müsbət və neqativlər nə bir şərh dil olan və tərtib dil olan? Belə ki, nə var, yeah compiling--? [01:09:50] Auditoriya: şərh yavaş. DAVIN: Hansı mənada? [01:09:57] Auditoriya: siz sonra tərtib yoxdur icra üçün hər hansı əlavə addımlar etmək Bu, bu [Işitilemez] halbuki. [01:10:04] DAVIN: sağ, mükəmməl. Belə ki, nə dedi əsasən tərtib, Siz tərtib edərkən, bir var upfront xərclərin çox, sağ? Siz tərtib olacaq. Amma siz onu tərtib sonra, compiler optimize olacaq. Bu sürətli olacaq. Bu, əsasən olacaq Bu ola bilər kimi sürətli ola bilər. , Siz heç vaxt şərh ilə ki, upfront dəyəri var. Əksinə, bu qədər yavaş olacaq Siz şərh hər bir zaman. Və siz olacaq Hər bir zaman şərh. Belə ki, bu olan əvəzinə Bir zaman dəyəri, indi sen şərh etmək niyyətindədir hər zaman səhifə göstərir. [01:10:29] Belə ki, tərcüməçilər, çünki yaxşı Siz tərtib etmək yoxdur, lakin onlar hər pis istəyirik bu, səhifə yük zaman üçün gedir Bu JavaScript şərh. Və bir az yavaş run olacaq Siz tərtib idi əgər daha. Siz oh communicate-- gözləyin imkan verir. Manipulyasiya üçün istifadə məzmunu və görünüşü. Biz yalnız bu barədə danışdıq. Bu DOM istifadə edir. AJAX, biz nəzərə almaq lazımdır Bir az AJAX. Və sonra, bu klient var. Belə ki, PHP server yan edir. JavaScript klient edir. Ki, müsbət hansılardır? Bu deyir. Bu doğru, sürətli var? Daha sürətli to-- yoxdur, çünki. Siz ünsiyyət yoxdur Bəzi digər cihaz ilə. Yalnız etdiyiniz əgər müştəri, siz heç vaxt istəyirik getmək üçün gedən və server nə görmək və sonra geri hesabat və ya kimi bir şey. Belə ki, klient çalışır bir az daha sürətli ola bilər. [01:11:15] GABE: Bəli, lakin bu PHP demək deyil JavaScript daha sürətli və ya kimi bir şey. Onlar eyni cür run Sürətli onlar həm də istəyirik, çünki şərh languages. yavaş şey Burada tələb edir. Belə ki, siz həqiqətən olacaq Braziliya bütün yol bəzi məlumat almaq ki, orada yaşayır. Lakin PHP və JavaScript, onlar cür eyni sürətlə axır. Bu bir edir Digər daha sürətli. Burada, həmçinin, oyun sual. Belə ki, JavaScript olur, heç vaxt doğru və ya yalan maşın kodu? [01:11:47] Auditoriya: False. GABE: False. Bu maşın olmaq var code maşın kodu, çünki yalnız bir şey maşın anlayır. Bu tərtib deyil baxmayaraq, hələ də maşın kodu olur tərcüməçi yalnız, çünki xətti ilə line gedir ki, bir proqram və o xətt çevirir bir şey kompüter anlayır. OK? Cool. [01:12:08] DAVIN: Burada bir çox əsas deyil Dünya JavaScript proqramı salam. Bu gördüm if-- Beləliklə, mən bilmirəm. Amma yalnız burada HTML var. Və əvəzinə həqiqətən qoyulması Script tags JavaScript, belə ki, adətən baş qoyun ediyorum. Siz script tags var. Siz onu buraxın. Biz burada etdik biz formasında verilməsi bağlıdır etdik ki, belə ki, biz JavaScript fayl bağlıdır etdik bunu bəyənir. Və bütün bu doğru etdik? Belə ki, zaman jQuery və istifadə Son p-set underscore.js, Siz code qədər ton yoxdur Sizin script tags, baş up. Siz bunu, ancaq ola bilər Yalnız onu birləşdirən edirik. Və bu birləşdirən edirik yalnız CSS ilə kimi. Yalnız edir Belə ki, asan belə oxumaq üçün 1000 xətləri uzun kimi deyil kodunuzu funksiyaları ton ilə istifadə edilə bilər. [01:12:52] Bunun yerine, yalnız keçid. Bu compartmentalizes. Bəzi header faylı yazılı kimi, və sonra C. ki, header fayl daxil olmaqla Yalnız bu kimi düşünün. Belə ki, bu nə edir? Bəli, bu çalıştırmak üçün gedir. Bu xəbərdarlıq olacaq. Belə ki, bir az almaq olacaq adlı salam dünya açılır. Quick sual, yalnız ağlı başında olma çek, belə ki, bədəndə burada bax Burada bədən, HTML deyirlər. Nə birinci gəlir? Mən burada bədən, HTML görürsünüzmü, və ya ilk siqnalı görürsünüz? [01:13:19] Auditoriya: Alert. [01:13:20] DAVIN: Sağ. O, alert deyir. Niyə? [01:13:22] Auditoriya: Çünki üstdən-aşağı gedin. [01:13:24] DAVIN: Bəli. Perfect. Belə ki, o, üst getmək deyir tamamilə doğru alt. Siz üstdən-aşağı getmək olacaq. Və JavaScript, jQuery, bir var kimi onload, və ya hazır funksiyası, ki, OK, qədər gözləyin deyir Bu HTML bütün yüklənmiş. Və sonra, JavaScript çağırırıq. Biz burada ki, yoxdur, çünki nə olacaq ilk şey Bu üstdən-aşağı getmək olacaq edir. Bu JS hit olacaq zəng ki, xəbərdar olacaq. Bundan sonra OK basın ki, alert üz gedir. Sonra göstərmək olacaq Burada bədən HTML. Nice. [01:13:54] OK, belə ki, yalnız real sürətli, yazı JavaScript super sürətli edir. Elan etmək üçün dəyişən, var adı. Belə ki, C, siz, int i var bu növü nə cür bəyan edir. PHP $. JavaScript, var. Biz bu barədə danışdıq. Bütün hüquqlar çıxaq. [01:14:11] Loops, eyni şey. Eyni şey. Function bəyanatlar, belə ki, yalnız C. gördüm kimi müxtəlif yalnız bir şey, belə ki, zaman digər proqramlaşdırma dilləri almaq, kimi 51 növbəti dövr almaq zaman və siz OCaml almaq ilə edirik Siz anonim funksiyaları ilə məşğul ola bilər. Belə ki, burada nə dəqiq var. Belə ki, məbləğində qoymaq istəyirəm, məbləği dəyər bir növ. Amma yalnız onu bir dəfə bunu bilər. Siz funksiyası zəng etmək istəmirəm, belə ki, məbləği, bir funksiyası bəyannamə verir. Bunun əvəzinə, yalnız istifadə anonim funksiyası kimi. Və bu bir çox gördüm. Siz bir misal görə bilərsiniz bir neçə slaydlar bu. Bəli, biz görəcəksiniz. GABE: Yaxşı sualdır. Siz istifadə edə bilərsiniz zaman Burada anonim funksiyası? Ümumiyyətlə, zaman bir şey istəyirəm, bir hadisə kimi, baş. Belə ki, siçan zaman tıklayan, məsələn, Bəzi funksiyası adlanır etmək istəyirəm. Belə ki, hadisə keçmək handler, siz hadisə keçmək cür, funksiyası Siz adlandırmaq istəyirəm. Və nə keçən edirik sonunda, kimi Günün yalnız bir göstərici funksiyası üçün təlimat. Belə ki, siz keçən edirik kimi deyil bütün indeksi, kimi funksiyası bir göstərici. Və sonra, zaman kimsə klik siçan, o funksiyası adlanır olur. [01:15:17] DAVIN: Diziler, belə ki, bir sıra bəyannamə var. Sonra bir sıra şeyi qoymaq. Daşınmaz tez, bu nə çap edəcək? Üçüncü element nə olacaq? [01:15:31] Auditoriya: "JS". [01:15:32] DAVIN: sağ, bu, "JS." Olacaq Gözləyin, geri. Uzunluğu nədir? [01:15:37] Auditoriya: üç. DAVIN: Üç, sağ? Məhz hesab edirəm ki, nə. OK, indi gedin. Diziler, onlara şeyi əlavə edə bilərsiniz. Belə ki, kənara gedə bilər ilkin həddi. Yalnız bir şey unutmayın. PHP, JavaScript, onlar bir az edirik şeyi baxımından az daha bağışlayandır kimi. Objects çox kimi structs C, çox PHP assosiativ seriallarda kimi. Siz bütün bu təcrübə yaşadım. Siz JSON keçən edirik JSON, belə ki, geri və irəli p-set səkkiz, ki, obyekt var. [01:16:03] Belə ki, Bəli, məsələn, real sürətli nümunəsidir. Burada bir obyekt deyil. Bu arayış yolu obyekt, tez belə ki, yalnız real, Mən tapmaq istəyirdim deyək out, OK, əlbəttə nədir? Və burada obyekt adı CS50 edir. Və sonra mən bir assosiativ olsaydı array, mən necə olardı? Mən, əsas istifadə edə bilərsiniz? Belə ki, serialın adı var. Mən bracket, quotes, əsas var son quotes, son bracket, və ki, istinad Mənim assosiativ array daxilində element. Necə müraciət etmək Mənim obyekt daxili kurs? Kimse Yok Mu bilirsinizmi? [01:16:39] Auditoriya: [işitilemez]. [01:16:40] DAVIN: Nə var? Auditoriya: CS50.course. DAVIN: sağ, evet. Belə ki, CS50.course. Belə ki, yol hər şeyi istinad Bir JSON obyekt daxilində nöqtə ilə. [01:16:48] Auditoriya: Siz həmçinin array sintaksis istifadə edə bilərsiniz. [01:16:53] DAVIN: gözəl, OK. [01:16:54] GABE: Siz də, CS50 bracket istifadə edə bilərsiniz dırnaq kimi simli. Auditoriya: Mən PHP eyni hesab edirəm. GABE: Bu eyni şey. DAVIN: Fine! Amma bu digər yerlərdə görəcəksiniz. Bəli, belə davam. Bu yalnız bildirib budur. JavaScript jQuery Məsələn daxil idi. Belə ki, bu, mənim DOM doğru deyil? Daşınmaz tez, mən bir rəhbəri, salam dünya, bədən. Mən bir düyməsinə var. Bu, "mənə təkan" deyir mən basmaq istəyirəm. Mən bir şey etmək istəyirəm Bu tıklayan zaman. Sağ, gələcək. [01:17:31] Sağ, belə ki, bu, mənim JavaScript edir. Belə ki, jQuery yalnız asandır yol JavaScript yazmaq üçün. Bu, mən göstərmək gidiyorum nə növbəti, jQuery olacaq eynidir. Belə ki, onlar eyni şeyi edəcəyik. Yalnız jQuery bir az daha asan olmağa çalışır. İnsanlar daha çox istəyirəm edirlər. Bu funksionallıq bir çox var. Belə ki, insanlar jQuery istifadə edirlər. Siz bütün son p-set jQuery istifadə olunur. Belə ki, bu nə edəcək? Nə bu JavaScript belə Bu JavaScript yalnız düz deyil. Bu nə olacaq? Bu nə olacaq? [01:18:03] Belə ki, ilk, siz pəncərə onload oldu. Sağ? Beləliklə, biz əvvəl görmədim. Belə ki, bu gözləmək gedir bütün pəncərə yük qədər. Belə ki, qədər gözləyin olacaq HTML, bütün şəkilləri yük əvvəl bir şey yoxdur. Belə ki, bizim DOM yüklənmiş deyək. Hər şey var. Sonra nə baş verəcək? Evet? [01:18:19] Auditoriya: Button görünür. [01:18:22] DAVIN: düyməsinə artıq var. Bəli, belə artıq düyməsinə var. Amma bu, demək gedir OK, Mən düyməsini basın əgər, belə ki, düyməsini artıq Orada ki, HTML tag kimi. , Gözləyin real sürətli geri. Bu tag hüququ burada Artıq bir düyməsinə olacaq. Bir düyməsinə artıq var. Amma sonra, JavaScript tag, burada, OK, mən istəyirəm deyir ID element almaq üçün, belə ki, axtarış düyməsinə yalnız OK, mən istəyirəm ki, deyir ki, düyməsini bu dəyişən xəritəsi. Belə ki, dəyişən yalnız bir deyil düyməsinə daxil olmaq üçün asan bir yoldur. Hesab edirəm ki, basın əgər Mən OK, demək düyməsini Hesab edirəm ki, element basın əgər, belə ki, bu element aiddir düyməsini, mən bunu basın varsa, sonra bir funksiyası zəng etmək istəyirəm. Burada o anonim biridir Biz söhbət fəaliyyət göstərir. [01:19:03] Yalnız bir funksiyası zəng. Ki, funksiyası Inside əsasən bir şey bir çox siqnalı gördüm. Axtarış düyməsini basın. Bu, əsasən bir düyməsinə var olacaq. Siz basın. Siz uyarı almaq. X out. Vəssalam. Evet? [01:19:16] Auditoriya: Belə ki, qoymaq əgər script HTML [işitilemez], script tag? [01:19:21] DAVIN: Siz script qoya bilər baş tag düz Bu onload var. Bu bir klik var ki, var. Belə ki, qədər gözləyin olacaq Əgər bir şey üçün basın. Amma onload təhlükəsiz olması yalnız etmək HTML hər şey yük əvvəlcədən. Evet? Siz bir şey demək istəyirəm? [01:19:40] GABE: [işitilemez]. DAVIN: Bəli. [01:19:42] Auditoriya: Belə onload engeller dəyişən axtarış düyməsini müəyyən yalnız document.getElementByID deyərək axtarış düyməsi dot [işitilemez]. [01:19:49] DAVIN: Əlbəttə, lakin sonra Sizin string yalnız böyük olur. Məhz, bu yalnız edir Bəli, sizin üçün daha asan etmək. Bəli? [01:19:56] Auditoriya: biz etdi window.onload yaratmaq? Və ya document.ready? [01:19:58] DAVIN: Bəli, var. Bəli, mən orada yoxlanılır. [01:20:02] GABE: onlara qayğı deyil üçün. [01:20:03] DAVIN: OK, belə ki, mən gedirəm hər halda sizə. Belə ki, əsasən, yalnız ümumi, belə ki, window.onload, sizin DOM qədər gözləyir HTML, yük. Bu images yük qədər gözləyir. O hər şeyi yük qədər gözləyir. document.ready, yalnız Sizin DOM yük qədər gözləyir. HTML bir dəfə bütün var, sonra Sizin DOM var, çalışan başlayır. Bu yalnız fərq var. [01:20:23] GABE: Quick ağlı başında olma burada yoxlayın. Belə ki, bu cür görülə bilər kod xətti kimi, sağ? Bu window.onload Çünki məhsullarının bir dəstə bərabərdir. JavaScript oxuyan zaman bu doğru və ya yalan, funksiyası icra edilir. False. OK? Burada nə, yalnız keçən edirik anonim funksiyaları kimi bu funksiya window.onload üçün. Və sonra zaman gedir həqiqətən həyata almaq üçün necə? Zaman pəncərə yük. Bir hadisə var. Belə ki, biz istəyirik hüquq t şey sağ, əvvəllər söhbət? Belə ki, hadisə baş zaman, funksiyası olur. Onclick ilə eyni şey. [01:20:59] DAVIN: OK, kimsə etdi ki, üz document.ready. Amma bu dəqiq same-- olacaq Auditoriya: dollar işarəsi, ki, bir document.ready edir. Bu qısa var. [01:21:07] DAVIN: Oh, ki? OK, belə ki, bu vasitələri document.ready, qısa. Amma bu window.onload eyni ki, az fərq istisna olmaqla Mən sizə dedim. Bu jQuery edir. Belə ki, bu eyni deyil Bu JavaScript şey. Bu, bəzi insanlar hesab izlersin edir daha yüngül olaraq, parlaq version ki, funksionallıq çox var ki, yəqin ki, istifadə edə bilərsiniz. Belə ki, bu eyni şey yoxdur. [01:21:34] Belə şeylər cür qeyd etmək. Digər misal Belə ki, , document.getElementByID idi belə ki, biz bu uzun idi olacaq string var nə ID element. Yəni burada bu zəng ilə əvəz edir. Belə ki, dollar işarəsi görmək sonra quote, hashtag oldu. Hashtag həmişə selector edir. OK, bu ID ilə nə var, deyir. Bir sinif üçün selector nədir? [01:21:56] Auditoriya: Dot. [01:21:57] DAVIN: Dot, doğru. Yalnız davam edirsinizsə bir tag, bu nədir seçin? Bu dəqiq, yalnız tag var. Və həmçinin, burada istifadə edə bilər. [01:22:05] GABE: And Tag tərəfindən, biz kimi demək div, məsələn, və ya baş üçün. [01:22:08] DAVIN: Və ya bədən və ya p və ya bu kimi bir şey, evet. Belə ki, burada, OK, əvəzinə deyərək document.getElementByID, Bu yalnız eyni şeydir. Just jQuery, bu qısa. Belə ki, sadə deyil. Beləliklə, bir daha onclick, yalnız basın. jQuery funksiyası, bu funksiya zəng. Alert eyni deyil. Belə ki, bir az var kiçik və ya az qısa, bir az bit insanlar düşünmək Bu yazmaq üçün bir az daha asan var, asan bir az anlamaq üçün. Amma bu jQuery edir. Bir çox bir az olsun bit qarışıq və narahat və onlar OK, jQuery, hesab edirəm ki, JavaScript çox fərqlidir. Mən bu yadda var iki fərqli şeylər. Bu deyil. Mən müxtəlif sintaksis var, deməkdir. Amma jQuery JavaScript edir. Bu, sadəcə bir zahirən var yaxşı versiyası daha asan ola bilər insanlar istifadə ki, başa düşürük. GABE: Bəli olmaq Dürüst ki, dollar işarəsi Siz jQuery görürük ki, ki, yalnız var jQuery müəyyən bir funksiyası adı. Bu xüsusi bir şey yoxdur. Bu, bir funksiyası yalnız adı var mı yalnız dollar işarəsi müəyyən edə bilər kimi. [01:23:03] DAVIN: Bəli, belə ki, bu barədə danışdıq. Bəzi faydalı şeylər. Mən köhnə sınavlar baxırdı. Son bir neçə sınavlar, onlar var bu kimi şeylər istifadə etmək idi. Belə ki, document.ready, belə ki, əmin hər şey etmək Sizdən əvvəl yüklü şeyler başlayın. ID seçin və ya seçin bir sinif, yalnız istədiyiniz bir sinif, son quote dot quote olacaq. Siz əgər, belə ki, təqdim bir forma və zəng təqdim forma sonra bu funksiya təqdim edir. Dəyər, belə ki, mən bir forma idi deyək təqdim, bir istifadəçi adı kimi, bir e-poçt, nə. Mən bir metin qutusu var idi. Belə ki, mətn qutusuna yazaraq alıram. Yaxşı, siz dəyər almaq istəyirsinizsə ki, mətn qutusuna həyata, siz dot val istifadə edin. Və sonra aşağı burada, dot HTML eyni sənəd dot kimi getElementByID dot InnerHTML. Belə ki, geri olacaq ki, ID HTML. Burada, yalnız bəzi istifadə ID və ya hər hansı dot HTML. Ki, element HTML almaq lazımdır. Əgər dəyişdirmək istəyirdi HTML, siz bir şey keçə bilər. Belə ki, sonra dot HTML kimi ola bilər, və istədiyiniz daxili, quotes, yeni HTML və ya bir şey. [01:24:05] GABE: OK, AJAX belə. Mən, həqiqətən, başa düşmək istəyirəm AJAX həqiqətən də. Mən sizə uşaqlar istəyirəm həqiqətən də AJAX başa düşürük. Əgər Çünki, Siz olduqca çox olacaq hər şeyi anlamaq ki, HTTP nə var, PHP, JavaScript bütün çünki AJAX birlikdə gəlir. AJAX bir dil deyil. AJAX bir texnikadır. Və müxtəlif alətlər çox istifadə edir. AJAX dayanır asynchronous JavaScript XML. Belə ki, üsul, dil, məlumat. [01:24:36] Biz istifadə ana dili Belə ki, AJAX hər şey tetiklemek üçün və hər şeyi idarə etmək sonra JavaScript edir. Aid Ona görə də JavaScript çox yaxın. Və sonra asinxron deyil biz bunu yoxdur, çünki bütün bir dəfə biz səhifə loading etdiyiniz zaman. Bu biz şey paralel cür şeylər. əsas ideyası AJAX istədiyiniz ki, bəzi xüsusi məlumat almaq üçün. Məsələn, yeni yazaraq edirik bir istifadəçi adı qeydiyyatdan istifadəçi adı, Mənim istifadəçi adı abc123 edir. Və sonra, sonunda forması, siz təqdim basın. Və bu, server getmək idi və sonra, məlumat bazasında yoxlamaq abc123 artıq var. Artıq varsa, bu deyir Artıq bazasında istifadəçi adı. Onlar sizə doldurmaq lazımdır bütün forma yenidən. Və bu, həqiqətən, həqiqətən, pis idi. [01:25:23] Və sonra insanlar demək, OK, niyə biz yalnız bilməz yalnız yoxlamaq üçün kiçik bir HTTP sorğu etmək Bu istifadəçi məlumat bazasında olub olmadığını görmek üçün istifadəçi əvvəl bütün şəklində təqdim? Belə ki, məsələn, zaman istifadəçi abc123 yazaraq başa Yalnız server bir az gedək bit və yalnız bir doğru və ya yalan almaq görmek üçün server ki, bir etibarlı istifadəçi adı və ya deyil. OK, belə ki, əsas biri indi də AJAX istifadə edir. [01:25:49] DAVIN: Belə ki, tez real jQuery bir Ajax zəng, Siz ki, demek bilər Bu sinxron olmaq istəyirəm. Bu lazım deyil. Amma bunu edə bilərsiniz. Siz ki, əgər nə olardı? Yaxşı, məsələn, zaman etdiyiniz xəbərlər və ya hər hansı almaq, Sənin Brauzer yalnız gözləmək gedir ki, bütün zəng tam qədər yerinə imkan siz başqa nə sağ sonra hər şeyi basın. [01:26:14] GABE: Bu artıq keçən deyil. Oh my god. Üzr istəyirik! Yup. "Keçmişdə, müştərinin istəyinə lazım Bir web bütün content. " Mən nə dedi var. Bu göndərmək üçün imkan verir Əlavə GET ya POST olmadan sorğu Bizim brauzer yeniden. Günün sonunda Belə ki, biz istəyirik həqiqətən bir HTTP sorğu edilməsi burada JavaScript istifadə edir. Əvvəl, çünki biz yalnız JavaScript istifadə artıq gəldi HTML dəyişdirmək üçün. İndi, biz interface istifadə edə bilərsiniz eləcə də web server ilə. bu baş yolu Biz müştəri var. Davin bir müşteri. O, bütün JavaScript var HTML çünki çalışan lal edir. JavaScript ağıllı deyil. Belə ki, Davin Davin onun smart var hissəsi və onun lal hissəsidir. O, indi onun smart hissəsi istifadə etmək olacaq. O JavaScript istifadə etmək olacaq sorğu, məsələn, abc123 olub verilənlər bazası və ya deyil. [01:27:04] Belə ki, Davin, xahiş edirik, yalnız mənə bir HTTP sorğu göndərin. Təşəkkür edirik. Belə ki, o, yalnız bir HTTP sorğu göndərib. Siz görmək? Və yalnız eyni yolu Hər hansı bir HTTP sorğu göndərilib ki. browser, Google Chrome və ya bir şey deyil Davin ki görmək olacaq HTTP sorğu göndərmək üçün çalışırıq, bir az hm kömək edir. Və getmək olacaq server bütün yol. İndi, server gedir Burada PHP və ya hər hansı digər dil. Bir normal HTTP sorğu kimi. Bu olduqca çox normal HTTP sorğu var. [01:27:31] Və sonra, server OK, demək gedir, Davin olub-olmadığını yoxlamaq üçün məni istəyir Bu abc123 bazası var. Model danışmaq gedin. model deyil deyir. abc123 yaxşı bir istifadəçi adı. Və sonra, web server gedir fayl müəyyən formada göstərmək üçün PHP istifadə edin. Bu sözün yalnız bir fayl ola bilər heç bir "bu" bəli "var, və ya, və ya kimi bir şey. Bu hər hansı bir fayl ola bilər. [01:27:54] Mən gedirəm kimi ola bilər Davin bir ördək bir şəkil göndərmək Bu verilənlər bazası var və əgər bir hamster bir şəkil göndərmək Bu məlumat bazasında deyil, əgər. Bu cür olardı lal, lakin bu iş olacaq. OK, belə ki, mən Davin bir ördək göndərin. Davin bir ördək var. İndi kim gedir ördək idarə etmək üçün? Davin ağıllı hissəsi yenidən, belə ki, JavaScript, sağ? JavaScript göndərdi sorğu və JavaScript sorğu almaq üçün gedir və bəzi formada şərh. [01:28:22] Bu mənada, bu olacaq sonra yaxşı edirəm ördək, əgər OK, deyirlər. Hamster, onda mən gedirəm artıq, istifadəçi adı, demək verilənlər bazası var. Lakin adətən, siz deyilik bir ördək göndərmək üçün gedir. Siz göndərmək olacaq qədər asan bir şey. Və nə biz istifadə XML edir. Və bu yaxınlarda biz JSON istifadə edin. JSON yalnız JavaScript edir Obyekt Notation olan əsasən bir almaq Bütün JavaScript obyekt. Və yalnız kimi, bir fayl qoyun uşaqlar gördüm ki, CS50 obyekt. Bir fayl qoyun və Siz Davin üçün artıq göndərin. [01:28:53] Belə ki, bu halda, mən JavaScript obyekt etmək və yalnız istifadəçi var, bəli deyirəm. Və ya istifadəçi yox, var. Və ona geri göndərin. Və niyə JSON? Şəxs Çünki kim bu qəbul edir JavaScript istifadə etmək niyyətindədir cavab idarə etmək. Və JavaScript belə yaxşı çünki işləyir JavaScript Obyekt Notation deyirlər. Sağ? Belə ki, o, yalnız bir funksiyası zəng və əldə edə bilərsiniz cavab bu gözəl obyekt. Və sonra, o, olub-olmadığını bilmək olacaq ki, istifadəçi bazasında və ya deyil. [01:29:22] Gördüyünüz Belə ki, onun bütün gəlir birlikdə web server, və sonra sorğu bir HTTP var bir HTTP cavab və hər şey. Belə ki, siz uşaqlar etmək Bu AJAX zəng anlamaq Bu kömək edir, çünki bütün anlamaq anlayışlar bəhs edirik. [01:29:37] Belə ki, burada bir misal var jQuery ilə AJAX. Və burada, biz almaq JSON yoxdur. Beləliklə, biz bir almaq üçün çalışırıq deyilik Burada bir pişik və ya ördək image. Biz JSON fayl almaq üçün çalışırıq. Və sonra biz qədər gözləyin bunu dot, həyata. Mən cavab gözləyirəm deməkdir. Bu bir az müddət bilər. Sonra bir az loading oldu. Sizin veb bunu istəyirsinizsə. Beləliklə görülən və dot nə bunu ne olur? Siz anonim keçmək funksiyası, yalnız biz əvvəl gördüm kimi. Həyata Çünki yalnız bir hadisədir Bir siçan və ya hər hansı tıklayarak kimi, jQuery üçün. Belə ki, bu funksiyası ilə keçmək məlumat, mətn, status və jqXHR. Və əsasən, ki yalnız bəzi dəyişənlər siz sonra istifadə edə bilərsiniz ki, HTTP sorğu statusu, gedir data sizə geri göndərmək üçün. Beləliklə sonra onu şərh edə bilər və onunla mənalı bir şey yoxdur. Bu uğursuz əgər, zaman uğursuz ola bilər? Yaxşı, zaman HTTP sorğu verir bu kimi bir 500 və ya bir şey. Sonra, siz demək olacaq status idi uğursuzluq hansı, və hər şeyi bütün növ. Siz əmin etmək lazımdır Hər iki halda idarə etmək, başqa proqram crazy gedir. [01:30:42] DAVIN: Belə ki, Bəli, bu dəqiq deyil Siz son p-set gördüm nə. Faktiki AJAX zəng almaq JSON edir. Bu çağırışdır. Və sonra, dot həyata kimi uğurlu əgər bu yoxlayır. Bu uğurlu olsa, istədiyiniz məlumatları ilə bir şey etmək. Siz ki, geri almaq JSON sorğu məlumat. Bu geri almaq nə. Belə ki, sizin p-set xatırlayıram əgər, Siz bir çox data bracket kimi idi i və ya hər hansı, dot link və ya adı. Geri nə olursa olsun gəlir ki, JSON olan hər hansı sahələri, o JSON obyekt var ki, geri əldə etdiyiniz nə var. Data geri əldə etdiyiniz nə. Mətn statusu, yalnız bir şey ki, Siz nə bilirik imkan verir. Və sonra, jqXHR ki, yalnız var jQuery XML HTTP sorğu. Yalnız bir obyekt kimi. Və sonra Gabe dediyi kimi, uğursuz. GABE: abc123 bizim kiçik misal olaraq verilənlər bazası var əgər yalnız yoxlamaq üçün və ya, data siz bir şey olardı məlumat dot istifadəçi adı varsa, nə olardı, PHP üçün yaradılan nə olan Siz data dot istifadəçi adı, sonra var, əgər Mən bildirmek üçün gedirəm, istifadəçi adı zaten var. Başqa, yalnız imkan gedirəm istifadəçi formasını dolduraraq davam etdirilir. OK, təhlükəsizlik, sərin. [01:31:50] DAVIN: Mənə istəyirsiniz? [01:31:52] GABE: Bu bir istəyirəm. Belə ki, bir şey tanış görünür ki. Biz demək olar ki tamamlayın. Belə ki, bu, yalnız nümunəsidir Sizlərin sinif gördüm. Siz burada argv1 istifadə edilmişdir. Bu command line arqument kimi. Və biz çıxarmaq hafiz edirik ki, ölçüsü 12 bufer daxil. Problem burada nə var? Buffer daşqın! Biz ölçüsü 12 bufer var. argv1 iki milyard ölçüsü ola bilər. Biz hər hansı bir sərhəd yoxlanılması yoxdur. Beləliklə, biz yaddaş bir çox surəti bilər. Biz xüsusilə olacaq Bu barədə pis. Ki, nə edə bilər çox çox bu halda deməkdir? Bəli? Auditoriya: iki milyard şeyi Part qaytarır çalıştırılabilir kodu daxil [Işitilemez]. GABE: Məhz. Belə ki cür insanların istifadə şey məsələn, iPhone jailbreak. Şey bu cür idi. Yalnız cihaz edə bilər, çünki Istədiyiniz hər hansı bir kodu icra. fix, belə ki, fix asandır. Yalnız həddi üçün kontrol edin. Siz null çünki kontrol biz həmişə null kontrol biz strings ilə məşğul oluruq. Və sonra, siz almaq simli uzunluğu əvvəl. Və əgər simli uzunluğu cari simli 0 ərzində uzunluğu, 12, sonra biz yaxşı deyilik. [01:33:03] DAVIN: Siz kontrol deyilsə null, real sürətli, nə olacaq? Bu seg günah lazımdır. Nə seg günah olacaq? Siz null haqqında strlen zəng edirik, çünki. GABE: Bəli. Birini istifadə edərək, Doğru və ya yalan parol yaxşı bir fikirdir. [01:33:19] Auditoriya: False. [01:33:20] GABE: False. Çox parol, və böyük, uzun olanları istifadə edin. Padlock nişanlar təhlükəsizliyini təmin. [01:33:26] Auditoriya: False. [01:33:27] GABE: False. Bu bir şey demək deyil. Bu, sadəcə bir icon var. SSL a qarşı qoruyur orta hücum man. Auditoriya: False. GABE: False. OK, belə ki, bütün bu yalan. Nice. [Işitilemez] Bu barədə danışmaq istəyirsiniz? Sizin növbəsində. DAVIN: hücumların növləri, ortada man. Orta hücumda bir adam nədir? Auditoriya: [işitilemez]. DAVIN: Bir göndərmək HTTP sorğu, onlar sağ, bunu edə bilər? Amma HTTPS göndərmək əgər, onlar yəqin ki, bunu edə bilməyəcək. Bal çox var keçid boyunca. Siz marşrutlaşdırıcıları var. Siz DNS server var. Kimsə fiziki edə bilər, əgər göndərilməsi ne görmək, belə ki, kimsə edə bilər həqiqətən sizin aranızda almaq, müştəri və server, və göndərilməsi ne görmək mümkün, bu orta hücum bir insandır. Beləliklə, siz almaq üçün çalışdığınız nə görmək server, və ya, pis see-- edə bilər Siz görmək edə bilər cookies və ya kimi bir şey. [01:34:16] Məsələn, əgər Belə ki, Əgər o, SSL istifadə etdiyiniz görmək mümkün ola bilər Sizin sessiya ID cookies. Bu sessiya oğurluq adlanır o ID cookies görür, çünki, və sonra o getmək edə veb və biclik etmək. Yalnız PHP istəyirəm, çünki, xatırlayıram biz daxil zaman, biz nə etməliyəm? Biz ID bərabər sessiya ID seçin. Belə ki, siz müəyyən edir. Sizin portfeli bilərsiniz Ona görə və hər kəsin başqa portfeli. [01:34:38] Bəli, mən cookie əldə edə Ben əgər, sonra ki, səhifə üzərində daxil ola bilərsiniz. Və sonra, mən yalnız sizin məhsulları edə bilərsiniz və alınması və stuff satış başlayın. Belə ki, sessiya oğurluq var. Amma belə ki mümkün to-- olmamalıdır orta hücum insan istifadə edə bilərsiniz hətta SSL istifadə edirsinizsə. Amma mümkün olmamalıdır. Onlar SSL istifadə edirsinizsə, Siz sessiya oğurlamaq bilməz. Niyə? Bütün şifrelenmiş, çünki, sağ? Bu şifrelenmiş varsa, və mən hələ də bir insan deyiləm Ortada mən hələ məlumat almaq. Ki, gözəl. Amma bu şifrəli edir. Beləliklə, mən, həqiqətən, istifadə edə bilməz. Belə ki, iki deyil. [01:35:09] Daşınmaz sürətli, cross site sorğu saxtakarlığı. Bir link var, əgər ki, yalnız var ki, link bir şey yoxdur bunu lazımdır düşünmürəm ki,. Belə ki, məsələn, link, əgər oldu səhmlərinin almaq və ya səhmlərinin gedir, və siz bilmirdim. Siz link tıklayan satın sorğu göndərdi və ya bir şey satılıb ki, Siz demək deyil. Ki, var. [01:35:25] Cross site scripting, burada, belə ki, Siz, dəyişən q vasitəsilə keçən edirik əvəzinə bir növ keçən dəyəri, bəlkə q bir ad kimi. Belə ki, əvəzinə q bərabər keçən Davin ya kimi bir şey, HTML istifadə etməyin, əgər xüsusi chars, əgər Bu əmin etmək üçün bu xilas yoxdur OK, sonra əvəzinə keçə bilər, Burada mən deyirəm deyək kimi çap və ya bir şey, sonra burada bir script zəng ilə keçə bilər. [01:35:51] Beləliklə, yerinə yalnız bir dəyişən almaq, Mən bu script zəng icra edəcək. Ki, script daxilində Belə ki, zəng nə edir? Document dot yer ki, olacaq Sənədin yerini dəyişmək. Beləliklə, mən yönlendirme gedirəm başqa bir yerdə. Bu pis oğlan deyirlər bu nümunə, çox yaxşı. Sözün hesab edə bilər. Və sonra, hətta var pis Mən gedirəm ki, bəzi müəyyən sonra cookie üçün dəyişən Bu veb var. Hesab edirəm ki, bərabər müəyyən etmək gedirəm sənəd dot cookie. Ona görə də mən gedirəm cookie oğurlamaq. Mən yönlendirme gedirəm bir haqqinda üçün bəzi məlumatlar ki, daxil edilməməlidir. Sen, çünki bu olur siz gördüm nə qaçan. Evet? [01:36:29] Auditoriya: Belə ki, yalnız bu, aydın etmək vulnerable.com ki, Bu həssasdır. Keçid görünür, belə ki, Hər hansı bir səhifə. Biri, bu klik vulnerable.com gedir. Siz vulnerable.com bir cookie var. Facebook demək edək həssas, facebook.com belə. Siz Facebook cookie var. Bu nə, sen facebook.com gedir, dərhal yönlendirme edir Siz badguy.com üçün ancaq cookie məlumat, o cümlədən. Belə ki, tez İstiqamətləndirmə var, ancaq Facebook cookie ki, yönlendirme ilə daxil edilir, və necə [işitilemez] var. GABE: Bəli, var bir çox orta şeylər Bu var əgər insanlar edə bilərsiniz ki,. Məsələn, Facebook icazə əgər hər kəsin, istifadəçi adını dəyişdirmək və onlar heç birini etmədi ağlı başında olma çek, belə ki, JavaScript şey daxil ola bilər ki, bir hamster üçün image dəyişir. Və eyni JavaScript edər Sizin səhifə views hər kəs daxil. Sizin səhifə views Belə ki, hər kəs istifadəçi adı eyni şey var. Və bir virus, çünki, Bu dözərək yayılır. DAVIN: Son keçmək lazımdır bir və sonra biz tamamlayın. Belə ki, bu yalnız bir nümunəsidir. Belə ki, bu onlar deyilik deyil Onların SQL masa qaçan. Belə ki, açılır. Belə ki, hər şeyi qaçmaq istəyirəm. Əvvəlki nümunə oldu cross site scripting ilə. Bağışlayın gec bir az qaçdı. Sabah, sorry! Sabah biz ofis saat var. 11:00 Cabbot 8:00 Belə ki ofis saat. ofis saat ciddi viktorina suallar üçün.