DAVID MALAN: Bütün hüququ. Bu CS50, və bu Həftə doqquz sonu. Bu artıq bir qasırğa olub Son bir neçə gün. Siz diz edirsinizsə problem, yeddi set dərin onu olduqca var həyata bit yeni ki, orada var. Amma biz parça bilməz əgər in görək hər şey birlikdə burada qısaca əvvəl sonra hələ off veering başqa istiqamət və görən harada başqa biz bilərsiniz. Belə ki, bu günə qədər, biz HTML haqqında söhbət etdik. Biz CSS haqqında söhbət etdik. Biz PHP haqqında söhbət etdik. Siz SQL yaşamağa başlamışdır etdik. Bu gün biz bir az danışmaq lazımdır JavaScript haqqında. Bəs bu disparate bütün etmək languages ​​birlikdə uyğun? Beləliklə, biz haqqında ötən həftə danışıb bir server olan anlayışı. Belə ki, yalnız bu düzbucaqlı çəkmək imkan burada bir web server kimi. Və bir web server, şübhəsiz ki, faylları xidmət edir. Və o, bəzi faylları HTML faylları ola bilər. Belə ki, hər biri bir web server həyata tüpürmək edə bilər bir fayl ola bilər ki, biz yalnız bu kimi çəkmək lazımdır Bəzi HTML olan. Belə ki, layman nin baxımından, nə HTML nə imkan vermir? Auditoriya: Page göz gözəl. DAVID MALAN: OK, bir səhifə gözəl baxmaq etmək, Mən sübut etdik edirəm, baxmayaraq ki, başqa. Belə ki, HTML pages qoymaq imkan vermir struktur, və bu imkan verir sort estetik bir səhifə qədər qeyd statik content qədər qeyd ki, sonra bir web browser ilə bilərsiniz. Amma bu əsas var. Bu statik məzmun var. Siz yazmaq, onu saxlamaq, və sonra gəmi. Və web server sonra xidmət Sizin qonaqlar qədər. Amma biz fərqli bir istifadə edərək şeyi stylize cəmi dil. Biz stil atributu istifadə etməyə başladı müəyyən tags. Və stil atributu us müəyyən edək font ölçüsü və rəngi kimi şeylər. Və yəqin ki, tapmaq üçün açılmış sonra, və ya tezliklə final üçün vəsiyyət potensial layihələr, hələ digər Siz CSS istifadə edə bilərsiniz ki, xassələri. Və layman nin baxımından, nə həqiqətən sonra CSS edir? Həmin onun yalnız misaldır. Bu nə imkan vermir ki, HTML nə görünmür biz belə uzaq gördüm? Auditoriya: özünüz üslub müəyyən. DAVID MALAN: üslub müəyyən Özünüz. Belə ki, sizin kimi dərsləri kimi şeylər müəyyən benzersiz rast, və ya ola bilər bir sənəd qovşaqlarının müəyyən qədər Əgər siz onları stylize bilər ki,. Lakin daha konkret, mən CSS demək istədiyiniz həqiqətən şeyi almaq imkan verir son mil və daha daxil imkan verir daha doğrusu, estetikasını çox hissəsi üçün HTML imkan verir halbuki Siz pages strukturu. Və bəzi yetirilməməsi var, baxmayaraq ki, kimi biz tag gördüm təxminən danışan bir mal tag, şeyi böyük və cəsarətli etdi. Ki, olduqca ümumi tərif var Tag - böyük və qalın. Nə font ölçüsü? Ki, nə rəng olar? Ki, necə qalın? Və CSS daha gözəl imkan verir kimi tune şeylər. Habelə layout, bəzi kimi siz gördük. Və səmimi, CSS bir az bir messy dil. Bu edə bilər ki, çox güclü Siz var ki, sözün hər hansı bir web bu gün internet görüldü, lakin Bu boyun bir ağrı növü var. Və bəzi başını çarptım var artıq yalnız etmək üçün divarları qarşı mərkəzi bir menyu kimi axmaq bir şey siz kazanılmış əgər problem yeddi müəyyən artıq point. Lakin həmin şeyi dərk zamanla daha asan əldə. Siz nümunələri qeyd başlayın. Və yenə, Google dost olacaq Siz olan müxtəlif yollarını problemləri bu cür həll edir. Mən CSS demək cəsarət, və HTML daha ümumiyyətlə, problemləri həll edə bilər bir çox yolları, bütün olan çox güc yaxşı ola bilər çox, doğru C kimi bir şey, hətta indi PHP, və ya JavaScript. Müxtəlif yalnız bir çox var şeyi yerinə qoymaq yolları. Amma bu almaq üçün başladı messy, dedik. Just cür HTML commingling və stil atributu ilə CSS bir az sloppy. Və belə ki, biz əvəzinə sort ifadə edərək, abstractly danışan, siz ki, ən azı amil başlamaq yəqin ki, sizin CSS həyata. Sizin stil atributları, lakin ən azı nə daxili stil tag istifadə web page hissəsi? Auditoriya: Head. DAVID MALAN: rəhbəri. İndiyə qədər, biz yalnız adı qaldı var, lakin siz də bir stil əlavə edə bilərsiniz tag, və təxminən sizin CSS qoya bilər Səhifənin üst doğru danışan. Amma sonra biz bir addım daha şeyi etdi və daha çox ki factored ayrı fayla. Və bu iki faylları idi elə indi bağlıdır. Və həqiqətən bu idi etdi ki, tag. Və nə mühüm və biri idi Bizim CSS faktorinq üçün motivasiya bütün daha? Auditoriya: reusability. DAVID MALAN: reusability. Sağ? Siz görmüşəm bilər p-set artıq yeddi ki pages bir çox satın səhifə satış səhifə, portfel səhifə yəqin ki, qədər eyni strukturlaşdırılmış. Üst bir CS50 maliyyə logo var Siz onu dəyişdirmək üçün qərar qəbul etdik halda. Bu bir footer var pages alt. Və CSS sonra onu amil imkan verir ayrı bir fayla belə ki, əgər Əgər qlobal şey dəyişmək istəyirsinizsə bütün site arasında, siz həqiqətən yalnız bir yerdə dəyişmək. Amma potensial ödəmək qiymət var həyata factored edərək tərəfindən Ayrı-ayrı daxil mənim HTML faylı CSS Bu ilə sened fayl Biz bazar ertəsi gördüm tag. İşin mənfi tərəfi odur ki, bu nə ola bilər? Biz olduğunuzda bir həftə əvvəl geri düşüncələri HTTP və TCP / IP və necə söhbət internet işləyir. Buraya bir şey? Auditoriya: Bu daha çox zaman alır. DAVID Malan: Bu daha çox zaman alır. Niyə? Auditoriya: [işitilemez]. DAVID Malan: Bəli. Belə ki, arguably bir az daha çox vaxt tələb edir. Biri, CSS açıq-aydın Çünki deyil eyni faylı. Belə ki, indi siz etmək üçün bir, lakin iki sorğuları. Və bu sorğuların hər biz gördüyümüz kimi Sözdə müfəttişi Chrome, və biz hər şəbəkə nişanı baxdı bu faylların bir HTTP tələb biz edir gördüm tələbi zaman bəzi məbləği. İndi, bəlkə bir çox deyil. Bəlkə yalnız 20 ms var. Bəlkə 200 ms var. Lakin, Facebook kimi bir səhifə haqqında düşünmək çox olan və ya CNN, və ya Google, biz var nümunələri daha İndiyədək baxdı. Bu pages, fayl onlarla ola bilər olan hər bir tələb edə bilər bir fayl download. Belə şeylər potensial bilər aşağı yavaş başlayın. Və xüsusilə bu gün zaman biz bütün bizim mobil mobil telefonlar və yavaş internet əlaqələri üçün olan Bir neçə, bir neçə ms gözləyin əlavə üçün daha ms faylları həqiqətən yavaş ola bilər. Gizlilik də izah edən söz növü var ki gözləmə ki, gözləyən zaman yaşamağa məlumat bir parça. Amma bir ayaq var. Belə ki, bütün növ deyil - faktiki burada tahterevalli bir qədər deyil. İndi İşin mənfi tərəfi odur, ancaq nə brauzerlər edə bilərsiniz onlar qarşısını almaq üçün smart etdiyiniz halda Eyni styles.css tələb olan fayl yenidən nə ola bilər? Bu cache. Belə ki, caching - C-A-C-H-E - ümumiyyətlə yalnız saxlamaq üçün burada deməkdir Siz ilk dəfə xahiş faylı və sonra da cache yoxlayın. , Siz saxlama konteyner növ istəyirik yoxlayın və artıq varsa, styles.css surəti, hətta bəzi başqa əgər p-set və ya hər hansı veb səhifəsinə sorğu yenidən, yalnız vermək istifadəçi həmin yaddaşdakı surəti. Istemeyi narahat etməyin. Orada İşin mənfi tərəfi odur, baxmayaraq ki, siz bəzi p-set ildə dövrəyə girdi var. Siz server bir dəyişiklik və əgər brauzerinizin geri getmək və bəzən browser edir, yenidən bir lütf və narahat etmir Sizin styles.css fayl yenidən downloading çünki, gel, bahis nə Facebook istifadə edir ki, bu üslub saat saat dəyişdirmək və ya gedir gün? Bu olduqca aşağı. Onlar zaman keçdikcə dəyişir, lakin bilər dəqiqə və ya saat. Web edərkən bir oyun Belə ki, Bilginize inkişaf, tez-tez aşağı keçirilir Misal üçün əsas keçmək basın və sonra brauzerinizin yeniden ki, iradə adətən browser yenidən demək hər şey, siz artıq olsa belə, keş o. Belə ki, yenə upsides və downsides, lakin onların hamısı nəticədə dizayn qərarları. Belə ki, indi, biz yalnız etmədi burada hekayə sonu. İndi geri getmək və geri və geri və əgər geri, biz yalnız tətbiq başladı HTML, lakin PHP. Belə ki, layman nin baxımından, nə PHP bizə imkan vermir? Auditoriya: [işitilemez]. DAVID Malan: Nə olub? Auditoriya: məntiq tətbiq kodu daxil. DAVID Malan: Bəli, təqdim kodunuzu daxil məntiq. Belə ki, əsl proqramlaşdırma dili var loops, və dəyişənlərin, və funksiyaları və şəraitlər, bütün biz geri yolu istifadə edərək olduğunuz şeylər zaman danışıq ildən. Və PHP, biz gördük, istifadə edilə bilər ya command line kimi - bu, nə bir şey yoxdur internet, belə ki, baxmayaraq həqiqətən, onun mənşəyi və nə çalışır yaxşı və əlverişli olacaq - lakin siz təbiəti yalnız PHP istifadə edə bilərsiniz bir print () vardır ki, funksiyası və printf () funksiyası, və ya echo () funksiyası. Yolları dəstələri var siz PHP ilə mətn çap edə bilərsiniz. Ona görə də bu proqramlaşdırma istifadə edə bilərsiniz dəqiq çıxış dil biz əvvəl söhbət nə. Siz dinamik yarada HTML. Bəlkə deyil bütün. Kimi Bəlkə ağır kodu əşyalar, mövzu və footer və logo, və stillər cədvəlləri, və bütün. Amma p-set yeddi kimi bir şey, siz səhmlərinin manipulyasiya və olduğunuz olan istifadəçi portfeli göstərən siz dinamik dəyişdirmək bilər niyyətindədir şübhəsiz ki, PHP və verir məntiqi istifadə bir proqramlaşdırma dili kimi sizə çıxış dinamik alt Saytın. Belə ki, dinamik web saytları haqqında danışmaq zaman, və ya web proqramlaşdırma, var həqiqətən haqqında nə söhbət edirik. PHP kimi dil, və ya şeyi istifadə adlandırılan Python, və ya Ruby, və ya Java, və ya bir verilənlər bazası sorğu hələ digər dillər, tez-tez və ya digər server və sonra dinamik HTML tüpürmək. İndi son nəticədə, bir kənara kimi, ki, ən web sites HTML, Sizin p-set yeddi, o cümlədən yəqin ki, böyük mess əgər olacaq Siz mənbə baxmaq bir browser kodu. Bu böyük deyil. Bu nöqtədə biz qayğısına zaman stil, biz qayğısına yazmaq ki, stuff. Biz məhsulları haqqında qayğı deyil nə kodunuzu çıxış edir. Belə ki, abzas narahat deyil o ki, PHP var burada əgər həqiqətən stuff tipi. Bütün sonra, brauzer, qayğı deyil və insan axtarır olmaz mənbəyində hər halda. Biz heyəti, məsələn, ki PHP baxaraq bilər. Mənə tez misal indi verim niyə başqa bu faydalı ola bilər. Belə ki, səmimi, son yadda bilməz dəfə mən bir problemi həll etmək üçün C istifadə real dünya. Bu məktəbin məzunu yəqin idi Mən bir dil istifadə etmək üçün lazım kifayət qədər aşağı səviyyədə idi və mənə verdi çox yüksək bir şey etmək imkanı həqiqətən çox CPU kimi saxlamaq üçün həyata böyük bir hissəsi dövründən mən biləcəyi kimi, Mən böyük veri kümeleri istifadə edirdi, çünki hər CPU dövrü sayılır. Və səmimi, hətta telefonlar kimi şeylər bu gün və digər cihazlar Siz olduqca çox yoxdur harada yaddaş və olduqca kimi yoxdur sürətli dillərindən istifadə çox CPU, hələ müraciət edir. Lakin real dünyada, zaman yalnız birlikdə bir proqram atmaq istəyirəm bəzi məlumatları təhlil və ya topladığımızda üçün qeydiyyatdan bütöv bir dəstə bəzi tələbə qrup və sizə çox istəyirəm tez göndərilməsi e-poçt avtomatlaşdırılması o hər bir bir-bir qeyd, sizin üçün nail olacaq yüksək səviyyədə dil C-dən belə danışmaq. PHP və ya Python kimi bir şey, və ya Ruby, və ya mövcud bir yarısı bir çox başqaları bu gün. Amma üç o, yəqin ki, var İndi ən moda hüququ. Və nə bu deməkdir siz ola bilərsiniz ki, mətn gedit kimi redaktoru və ya sonra ən çox başqa bir şey və yalnız başlamaq narahat olmadan kodu yazı olmadan, tərtib haqqında həqiqətən, yaddaş idarəetmə narahat ki, bir az olsa yadda saxlamaq sloppiness nəticədə geri gələcək data set olur, əgər yemək və ya böyük problem böyük olur. Lakin bu nə deməkdir Bizə aşağıdakı kimidir. Mənə davam və speller run edək problem altı seçin. Belə ki, bu, mənim trie-based təzahürüdür Mən böyük istifadə ki, Mən belə yaxşı çıxış board. Biz həftədə bir dəfə geri gəlmək və olacaq ki, üstün başa görənlər yenidən bizim son mühazirə böyük board. Amma indi, mənim irəli və yalnız gidelim mətn mənim həll run və biz edəcəyik getmək burada King James Müqəddəs, və. Belə ki, o guya bütün var həyata yanlış yazılmış sözlər Kral James Müqəddəs. Və həyata aldı cəmi yarım ikinci. Bu belə çox pis deyil xüsusi kompüter. Amma nə qədər hesab Mən yazmaq idi kodu. Yazmaq idi nə qədər kodu düşünün. Siz sərf neçə saat düşünün D-zalı və ya yurt ya hər əslində həlli qədər kodlaşdırma. Yaxşı, Mən, həqiqətən, yüksək səviyyədə varsa, PHP kimi dil, qeyd etmək Mən burada nə edə bilərsiniz. Birincisi, bu əvəzinə olduğunu güman Distribution kodu. Bu speller adlı bir fayl. Bugünkü hissəsi kimi mövcuddur distribution kodu. Və mən ən çox mənim əl dalğa gidiyorum ətraflı, lakin bu, həqiqətən edir necə maraqlı bir nümunə Bir dil port bilər PHP üzərində C kimi. Mən sözün, iki mətn pəncərə açdı speller.c mənim C versiya ilə bir, və mən yalnız mənim onu ​​tərcümə başlayıb PHP giderim istifadə edərək onu yazmağa ən yaxın ekvivalent fəaliyyət göstərir. Belə ki, bu bəzi şeyləri fərqlidir. Biz PHP istifadə etmir ki, ötən dəfə gördüm çox eyni şəkildə daxildir. Bu baxmayaraq, adətən tələb edir daxildir mövcuddur. Müəyyən bir az fərqli C # müəyyən, lakin var biz daimi etmək necə. O çıxır $ argc, PHP var belə ki, əvvəl gördüm. Bütün bunlar, yalnız dəyişənlərin var dollar əlamətləri ilə olan başlanğıc. Bu yalnız bir dəstə var Xatırladaq üzən xal. Belə ki, uzun hekayə qısa, siz xoş gəlmisiniz maraqlı bu vasitəsilə flip, bu Bu demək olar ki, bir xətt üçün-line dönüşüm PHP daxil speller.c C versiyası. Və sizin üçün bir daha bu nə ola bilər yarısı bir çox digər dillərdə. Amma nə maraqlı budur. Və ya nə açıq disheartening var bu deyil. Mənə davam və haqqında yazın edək dictionary.php və Ben iddia davam və yenidən həyata keçirəcəyik problem burada altı seçin. Belə ki, ilk nin təklif edək ki, bu həyata keçiriləcək fayl, PHP, mənə belə mənim tags açmaq bildirin. Mənə özümü qlobal verim dəyişən, $ ölçüsü sıfır olur. Və mən verəcəyəm özümü hash masa. Mən bu şey üçün bir hash masa istifadə edəcəyik. Nasıl PHP bir hash masa elan edirsiniz? Done. OK. Belə ki, açıq bracket yaxın bracket təmsil biz gördük kimi PHP nə? Bir sıra, lakin bilər bir sıra assosiativ array ola bilər. Assosiativ array edir məlumat quruluşu dəyərləri ilə asılı düymələri. İndi sayısal yönümlü sadə ilə dizi, o düymələri hansılardır? Zero, bir, iki, üç, sağ? Köhnə məktəb stuff C. geri Amma ola bilər həmçinin, foo kimi strings və bar olmaq və ya Maksvell, və ya hər hansı bu cür simli. Beləliklə, mən leverage edə bilər yalnız bir anda. Mənə davam və elan edək kimi bir funksiyası - ilk yük () nə edək. Belə ki, funksiyası yük (). Və PHP ki, bir az fərqli sözün funksiyası yazın, ancaq bir dönüş növü yazın yoxdur. Mən irəli getmək və demək gidiyorum ki, yük () funksiyası almaq lazımdır yalnız arqument $ lüğət, kimi C versiyası etdi. Mən yaddaş ki, edirəm. Və mən Ben ki, təklif Bunu etmək üçün gedir. Mən sadəcə foreach etmək gedirəm. Mən adlı bir funksiyası zəng etmək gidiyorum faylı () ki, adı keçən fayl olan dəyişən deyil Söz $ dollar lüğəti. Və sonra mənim burada loop üçün, Ben daxilində irəli getmək və saxlamaq niyyətindədir mənim $ Söz doğru olur ki, $ masa. Done. Oh, gözləyin. Done. OK. Bu yük () funksiyası PHP demək. İndi niyə ki işləyir? Mən cür burada aldadıcı alıram. Belə ki, bir, biz gördük foreach qısa son dəfə. Bu yalnız üzərində təkrarlamaq bilər o deməkdir ki, i ilə rahatsız olmadan bir array və n və plus plus ki, bütün. Lüğət, əlbəttə fayl adı böyük və ya kiçik kimi bir şey, iki Biz keçən dəfə istifadə lüğətlər. Fayl mətn açır ki, bir funksiyası fayl, xətti ilə line onu oxuyur və Siz böyük bir sıra geri əlləri, kimin elementlərin hər bir edir faylı line. Belə ki, fopen birləşməsi, və fread, və loop, və fclose isə, və bütün. Söz yalnız deməkdir nəhayət ki, var dəyişən mən daxil olmaq üçün gedirəm bu loop hər iteration. Belə ki, qısa, burada bu bir liner deməkdir adı edir fayl açmaq lüğət, dəyişən, üzərində təkrarlamaq bu xətti ilə line, və siz hər dəfə adlı dəyişən sözü bir line, mağaza, və sonra sözü ilə bir şey. Mən nə istəyirəm? Mən hash table söz qoymaq istəyirik. Bəli, mən bir şey qoya bilər mənim yalnız C kimi hash table kvadrat mötərizə istifadə. Bu mənim hash masa üçün adıdır. Hesab edirəm ki, hash daxil index gedirəm Bu yerdə masa. Belə ki, sıfır bracket deyil, bir bracket deyil. Bracket quote dırnağı bağlamaq bir şey, nə ki, söz. Və yalnız kimi siz ola bilər sizin hash table iş trie, yalnız mağaza səmərəli Boolean, dolayısı və ya açıq-aşkar. Done. Mən dəyər doğru saxlanılması alıram. İndi hər şeyi bir neçə var Mən burada guşələrindən kəsici alıram. Texniki, bir olmalıdır olacaq sonunda annoying yeni xətt, / n, Bu sözləri hər. Mən yəqin ki, bir PHP funksiyası zəng etməlidir adlı chop (), hansı olacaq olduqca sözün off doğramaq. Mən, həqiqətən, lazım başqa bir şey. Mən yəqin ki, hər ölçüsü arttırmayı lazımdır iteration, mən takip saxlanılması alıram qlobal bu nə. Və səmimi, və bu biridir değilseniz PHP stupider aspektləri, qlobal dəyişən istifadə edərək, sizə lazım aydın siz demək. Mən həqiqətən qlobal yazın gedirəm Indi $ ölçüsü, qlobal $ masa, və mənim funksiyası tamamlandı. Belə ki, çox əvvəl kimi sadə, lakin yəqin ki, C-dən az zaman aldı version, bəlkə? OK. Belə ki, indi çek () funksiyası bunu bildirin. Bu ən azı etdi əgər in nəzər edək Bu C. Beləliklə bizim etdi ki, sonunda saat Mənə irəli getmək və elan edək bir funksiyası kimi yoxlamaq. Olan dəlil söz edir Speller gəlib gedir. Mən yalnız yoxlamaq üçün gedirəm əgər Aşağıdakı dəyişən isset, masa Sözün bracket strtolower - mənim parantez bütün balans imkan - sonra doğru qayıtmaq. Else - ki, həqiqətən çətin idi bu proqramın tərkib hissəsidir. Başqa, saxta qayıtmaq. Done. Ki,) (çek var. İndi niyə bu işləyir? Yaxşı, bir mən, bir sözlə keçdi bir simli edir. Iki, mən hash daxilində yoxlanılması alıram $ masa adlanır kim masa. Mən zəng kiçik məcbur alıram in () tolower olduqca oxşar bir funksiyası C, amma bu bütün söz yoxdur, heç bir character. Və orada, başqa sözlə, müəyyən edilir bir dəyər başqa sözlə, müəyyən edilir, doğru, onda bəli, bu bir söz. Mən yük var onu qoymaq çünki (). Və əgər mən yalan qayıtmaq üçün gedirəm. İndi başqaları asandır. Function ölçüsü (), bu necə etməliyəm? Mən mahiyyətcə $ ölçüsü qayıtmaq yoxdur. Amma texniki lazımdır Bu annoying şey. Və həqiqətən eşitmək, mən kəsici edilib çox bir künc. Mən, həqiqətən, qlobal $ masa etmək lazımdır. Amma edib,) boşaltmaq ki. Boşaltmaq () gözəl deyil. Function boşaltmaq (). Necə I) (boşaltma həyata istəyirsiniz? Done. OK. Belə ki, (), yaddaş idarə edir boşaltmaq tamamilə sizin üçün qayğı PHP və bir çox kimi bir şey yüksək səviyyəli dil. Belə ki, bu gözəl deyil. Cəhənnəm, biz keçmişi sərf niyə Like C yazılı səkkiz plus həftə yəqin həqiqətən yavaş, həqiqətən, vaxt saat onlarla ilə istehlak problemləri bizim kəmərlər altında işləmək? Yaxşı, bir şey üçün, bu iş ola bilər kiçik proqramlar üçün gözəl. Bu, əlbəttə, sped mənim inkişaf zaman. Amma nə görək real dünyada. Bu kataloq gedək bir terminal pəncərə. Speller var. Və bir kənara kimi bildiriş və siz bilər problem set bu rast ola altı və ya problem yeddi seçin. Siz ciddi yoxdur . php ilə PHP faylları başa. Siz ki, ilk bir kimi bir xətt qoymaq çox top, xüsusi bir xətt var sintaksis ki, mahiyyətcə tapmaq deməkdir PHP deyilən və istifadə proqram Bu fayl şərh. Belə ki, indi heç kim həqiqətən bilir ki, Mən PHP proqram çalışan alıram. Mən sanki yalnız çalıştırabilirsiniz bir şey C. tərtib edilmişdir Amma burada bir şey var. Əslində, yenidən bunu edək. Dropbox/pset6 /. Speller var. OK, 0,44 saniyə. Bu daha sürətli bu vaxt var. İndi PHP versiyası daxil edək. Nice touch. Amma yalnız nə qədər vaxt düşünmək Mən ofis saat saxlanılır. OK. Belə 3.59 saniyə, olan faktiki ya dəqiq səs deyil. Amma ki, uzun hekayə qısa, çünki Siz böyük məbləğdə həyata çap etdiyiniz zaman məhsullarının ekran ki, özü hər şeyi aşağı yavaşlatır. Həqiqətən CPU etdi nə cihaz 3.59 saniyə, idi 0.44 tutan C, kontrast saniyə ən son. Bu, həqiqətən bir sifariş var müxtəlif bal gücündə. Belə ki, burada qiymət gələn? Niyə bu qədər çox yavaş? Niyə PHP belə zəif çıxış edir? Danielle? Auditoriya: Siz etmədi həqiqətən bir hash masa istifadə edin. DAVID MALAN: Mən, həqiqətən, olmadı bir hash masa istifadə edin. Mən cür etdi. Belə ki, assosiativ array var. Çox güman ki, PHP olan insanlar əgər həqiqətən ağıllı, onlar altında istifadə həyata başlıq faktiki hash table C və ya C + + kimi bir şey. Amma. Bəli. Auditoriya: [işitilemez]. DAVID MALAN: Bəli. Mən indi yazdı funksiyaları hər - həqiqətən, siz demək olar ki, bir dəfə daha az louder? Auditoriya: funksiyalarının Hər ki, Siz daxil var, çox daha tam gücü çox - DAVID MALAN: Belə ki, çox doğru. Biz istəyirik ki, daha çox yerüstü var həqiqətən, yalnız odaklanarak görən deyil Mən yalnız yazdığı dictionary.php. Əksinə, bütün tərcüməçi var fonunda gedir. Həqiqətən, mən bu proqram qaçdı zaman, tərtib adet sıfır və olanları çalışan deyil Mənim Intel CPU üçün nəzərdə tutulmuşdur. Əksinə, bu xətti ilə line çalışan Dəqiq görünür ki, PHP kodu kimi biz bunu yazdınız. Və belə bir istifadə zaman şərh dil, əslində bu qiymət ödəmək yoxdur. Bu oxumaq üçün bəzi vaxt olacaq alt üçün fayl top, sol sağ, və sonra hər icra line təkrar. İndi əslində, xüsusilə web, Siz, həqiqətən, bu prosesi sürətləndirmək bilər nəticələrinin caching ilə PHP kodu təfsir olunur. Və ki, web kəsb edir, çünki bir istifadəçi kimi varsa Burada məni, lakin 1000 və ya 10,000 users, sonra fayl bəlkə ilk dəfə əldə bu sonra yavaş, lakin bu çox daha sürətli edir. Amma bu da, yenə bir ticarət off edir. Və tədqiqat data kimi şey , və ya hətta kimi böyük bir şey Bu, sizin users keçdikcə ki, yavaşlama hiss başlamaq. Belə ki, qısa, dillər şərh , dəbdə çox çox məşhur və səmimi languages ​​siz yəqin ki, problemlərin həlli zaman çatmalıdır CS50 sonrakı. Amma həqiqətən nə qədər həyata başlıq altında verilən alaraq hash, həqiqətən, bu keçmiş neçə həftə masalar, ağaclar və çalışır, nəticədə həqiqətən istifadə olunan açıq bracket kimi şeyi həyata, kvadrat mötərizə, biz indi bilərsiniz verilən üçün təşəkkürlə almaq. Belə ki, indi bir nəzər salaq bu web kontekstində. Mən var ki, son dəfə qeyd PHP superglobals bir dəstə ki həqiqətən müvafiq deyil skript xətti. Onlar kontekstində daha müvafiq istəyirik bir web kontekstində PHP istifadə edərək. Belə ki üçün bir web server PHP çalışan HTML kimi məhsulları yaratmaq üçün. Və biz $ _GET və $ _POST nəzər, və olduğu avtomatik users 'var bir təqdim əgər giriş sadəcə başa bitən bir fayl yaratmaq. web PHP Aracın kimi server. Lakin ən qısa baxaq $ _COOKIE Və $ _SESSION. Layman nin baxımından, bir cookie kimi nə Siz kontekstində onu anlamaq web istifadə? Auditoriya: kompüter Fayl. DAVID MALAN: Bəli. Bu istifadəçi bir fayl var nə səhifəsinə tərəfindən əkilmiş Siz ziyarət üçün baş verir. Belə ki, siz getmək zaman Facebook, getmək zaman siz getmək zaman bankofamerica.com üçün google.com, siz demək olar ki, hər hansı bir getmək zaman Dünyada veb bu gün, cs50.net, o cümlədən bir cookie əkilir bilgisayarınızda olan RAM saxlanılan dəyəri ya sizin brauzerinizin yaddaş, və ya kompüter bəzən həqiqətən bir fayl saxlanılır sabit sürücü. Və adətən fayl nə saxlanılır istifadəçi adı deyil, sizin deyil parol, adətən bir şey deyil həssas veb belə deyil halda onların təhlükəsizliyi ilə yaxşı, lakin Bu böyük bir unikal identifikator arasında başqa şeylər. Bu əkilmiş böyük təsadüfi sayı sizin var kompüter lakin siz hesab edə bilər olan kimi sort bir virtual əl möhürü bir klub və ya bir oyuncaq park ki imkan verir personal ki, sahibləri xidmət, kim unutmayın. Böyük təsadüfi sayı kimi Belə ki, 12345678 ki, açıq-aydın, baxmayaraq ki, kimi ki, çox təsadüfi deyil, think əl möhürü ki, ziyarət zaman facebook.com ilk dəfə, onlar Sizin tərəfdən ki sayı möhürü. Və sonra siz, HTTP danışmaq çünki bir browser olan, çünki Facebook açıq-aydın bir web kimi eyni danışır server, protokol HTTP deyir ki, zaman sonra ziyarət facebook.com olsun, ikinci sonra, bir saat sonra, hətta növbəti gün, belə uzun siz açıq-aydın yoxdur kimi çıxdınız təsirli olan əllərinizi yuyucu kimi. HTTP siz təqdim etməlidir deyir sizin əl möhürü hər zaman ki, veb qayıt. Facebook onlar nə olar ki, əl möhürü baxmaq və onlar 123456789, oh, deyirlər. Mən ilk baxışdan bilmirəm ki, bu David Malan, Kembric edir Massachusetts, lakin onlar kontrol edə bilərsiniz onların verilənlər bazası və demək oh, şəxs kimin kompüter biz 123456789 əkilmiş haqqında David Malan, Kembric edir Massachusetts. Onun profile sonra istifadəçi göstərmək bildirin səhifə və ya onun News Feed. Amma bir problem var bu halda web həqiqətən işləri necə. Nin tez misal nəzər salaq. Nin faktiki facebook.com demək gedək. Amma biz orada getmək əvvəl, gəlin Mənə davam və Chrome-nin açmaq Burada inspektor aşağı. Mənə şəbəkə nişanı baxaq. Və indi irəli getmək və yazın bildirin https://facebook.com edir. Biz görmürük ki, və mən yapýyorum bu istiqamətləndirmə və tullantıların bütün vaxt o yolu axtarır. Mənə Enter edək. Bütün hüquqlar. Biz sorğuların bütün dəstə görürəm. Facebook var gəlir. Faylları bütün dəstə var. Və burada, mənim qeyd başına və ki, gizlilik son dəfə HTTP istekleri bir çox. Lakin birinci yəqin ki, ən maraqlı. Elə burada aşağıya fırladın bildirin, Mən ikinci zoom olacaq. Bu cür olacaq bir mess, lakin in nəzər salaq. Facebook bizə göndərir məhsullarının bütün dəstə. Amma Vay, maraqlı. Onlar heç bir əkin, lakin dörd edirik Burada mənim əl üzərinə əl marka. Set-çerez, Set-çerez, set-çerez, set-çerez. Və burada bir neçə xüsusiyyətləri vardır. Onların hamısı bəzi qeyd müddəti cür. Facebook ümid edir kimi Və görünür 2015-ci ilədək yadda saxla. Belə ki, güman etdiyi vaxt Mən daxil olmalısınız və ya onlar yalnız will avtomatik Ben kəsb geri gələn deyil. Belə ki, həqiqətən layiqli var vaxt məbləği. Və digər var şeyi burada. Bu cookie zorla görünür deyərək tərəfindən silinib onu 1970-ci ildə müddəti başa çatıb cookies mövcud əvvəl. Belə ki, browser yalnız gedir OK güman ki, kimi əlində möhürü yuyan. İndi mənim browser verir bir sonrakı request - Mənə davam və bunu bildirin yenidən və yenidən. İndi mənə geri diyirləyin bildirin top istək və enmək Burada, sorğu mövzular. Bu bildiriş. Belə ki, indi mən cavab başlıqlarını altında deyiləm lakin bu tələbi başlıqlarını deyir bilərsiniz. Və bildiriş ki, mənim brauzerinizin hissəsi kimi vuruş yenidən sonra tələbi var ən azı aşağıdakı göndərdi məlumat. Göstərilməyib-çerez, lakin çerez. Belə ki, bu xətt, HTTP mövzu belə mənim browser sort olduğu danışmaq Mənim təqdim edilməsi bilmədən və Facebook yoxlama üçün mənim əlimdən. Belə ki, bu cookies ola bilər nə üçün sonra istifadə? Kim unutmayın, və ya nə xatırlamaq neçə dəfə olub, və ya sonra həqiqətən şey. Belə ki, burada counter.php edir. Və mənə font zoom imkan verir. Və mən bu səhifəni yeniden hər dəfə qeyd necə bir çox dəfə xatırlayaraq oldu Mən orada oldum. Yaxşı ki, bütün təsirli deyil. Gəlin yalnız ki, nişanı yaxın və indi geri gidelim http://localhost/counter.php. Oh, bu maraqlı deyil. Bu hələ belə xatırladı Mən nişanı bağlı olsa. Və səmimi, mən brauzerinizin yaxın olsa, düzgün həyata əgər, mən hələ bu istifadəçi olduğunu unutmayın bilər o kim ilk dəfə idi və yalnız bir dəfə mən Chrome menyusu daxil, hansı burada burada və getmək Tarix, və Clear Tarama Data basın, Siz bəzi var bilər keçmiş, yalnız sonra cookies olacaq həqiqətən web zamanı silinəcək inkişafı. Beləliklə, biz getmək əgər - nin burada gedit qədər yaxın bildirin. Və biz bu faylı indi getmək edin. Mənə bizim daxil gedək vhosts / localhost / ictimai və mənə bunu bildirin counter.php. Bu olduqca edək ki, sadə proqram. Bu olduqca sadə web edir. Belə ki, fayl üst yalnız şərh edir. Amma burada yeni xətt var siz ki, p-set yeddi, artıq gördük session_start (). Bu PHP kodu bir xətt ki, mahiyyətcə web server izah etmək əlləri möhür və əmin əl marka yoxlamaq üçün əmin olun. Yəni bütün line edir, ve bizim üçün həmin prosesin bütün edir. Sonra yalnız var fark Burada iki filialları. Bu əks əsas daxili adlı xüsusi qlobal dəyişən $ _SESSION Müəyyən edilir - başqa sözlə, orada bəzi dəyəri olduqda - İT almaq və bir yerli mağaza imkan dəyişən counter $ çağırıb. Başqa, əks $ təyin edək 0 default dəyəri. İndi burada ki, PHP bir aspekti var bir xeyir və lənət, həm də. PHP bir az sloppy edir. Belə ki, C isə nə edəcəyini əks daxilində olmuşdur ya burada və ya burada? Bu məhdudlaşmır olardı o buruq aşırma üçün. Nə tahmin? PHP, bu hətta kənarda var Burada buruq burada aşırma, və burada, burada və hətta aşağı aşağıdır. Mən bu mənada bir xeyir demək kimi düşünmək yoxdur Biz həftə əvvəl etdiyi kimi çətin. Ancaq bu da ki, lənət bir az var Əgər bir dəyişən istifadə harada olursa olsun PHP, ən azı bu kimi bir proqramda, Bunun üçün qlobal əlçatan deyil yaxşı və ya pis üçün. Belə ki, indi unutmayın var Sizin dəyişənlər müəyyən ola bilər. Siz başqa yerdə onlara müəyyən ola bilər. Amma nə nəticədə nə üçün gedirəm? Hesab edirəm ki, qlobal daxilində saxlamaq gidiyorum ki, bir dəyər kimi dəyişən Counter əsas nəticəsi Counter plus 1. edirik Beləliklə, bu, yalnız hesab edir ki yoxdur ki, əks incrementation. Və mən saxlanılması alıram ki, əslində geri burada dəyəri deməkdir mahiyyətcə bazasında yeniləmə istifadəçi 123456789 olmuşdur unutmayın Burada iki dəfə. Mən növbəti dəfə daha bunu mən sahifani yeniden, bu yoxlamaq olacaq mənim əl möhür və demək, oh, istifadəçi 123456789 indi burada üç dəfə olmuşdur. Və nə PHP və analoji languages bizim üçün edirlər figuring olunur həyata necə və harada və necə uzun Bu xüsusi dəyərlər saxlamaq üçün superglobal. Bu növbəti dəfə superglobal I page ziyaret növ magically edir pre-yaşayış, dəyərləri ilə dolu ki, orada səfər son dəfə idi, ki, ikinci bir həftə əvvəl olub əvvəl və ya 2013-ci ildə biz indi söhbət edirik haqqında 2015. PHP və web server qayğı ki, bütün sizin üçün. Auditoriya: [işitilemez]. DAVID MALAN: PHP Dəyişənlər var Siz halda mahiyyətcə həmişə qlobal bir funksiyası daxilində onlara bəyan, və onlar üçün yerli yalnız funksiyası. Amma hər hansı bir yazılı deyil etdik, çünki funksiyaları, onlar indi səmərəli var burada mənim bütün fayl ərzində qlobal. Auditoriya: bir yolu var mı onlara yerli etmək? DAVID MALAN: hər hansı bir var mı onlara yerli etmək yolu? Yalnız funksiyaları onları qucaqlayaraq. Olan son versiyası PHP, siz bunu edə bilərsiniz anonim funksiyası. Amma ki, daha çox JavaScript kontekstində. Amma qısa cavab yoxdur. A artıq cavab yes deyil. Nice. Yaxşı viktorina sual. Bütün hüquqlar. Belə ki, nəhayət, özü səhifə deyil əslində olduqca sadə. Qeyd edək ki, I PHP rejimi, geri çıxmaq dəfə ki, aşağı bu məhsulları bütün Aşağıda yalnız tüpürmək almaq üçün gedir brauzerinizin xam həyata. Mən göndərmək istəyirəm, çünki gözəl olan istifadəçi bir HTML, lakin mən istəyirəm dinamik HTML yeniləmə. Və mən bunu edə bilərsiniz bir yol düzmək üçün çox tez PHP geri düşmək rejimi, istifadə açıq bracket sual işarəsi bərabər işarəsi, sonra çıxış dəyəri counter. Və ya bu, bir az sirli görünür əgər bərabər işarəsi yalnız bəzi həqiqətən Bu sintaktik şəkər printf ($ counter). Amma səmimi, yalnız bir az çirkin və annoying bir az yazın. Belə ki, PHP çox gözəl bu xüsusiyyət təklif edir yalnız daha deyə bilərsiniz müfəssəl eyni şəkildə. Belə ki, nə altında gedir başlıq? Tez şəbəkə baxaq burada counter.php üçün nişanı. Və Mənə davam və ilk gedək Sizin cookies sil. Gəlin açıq gəzən data bəri vaxt başlanğıcıdır. İndi burada geri gedək. İndi səhifəni yenidən bildirin. Mən geri sıfır da deyiləm. Mənim əl möhürü yuyulur edilmişdir, çünki, İndi yeni bir cookie almaq. Mən şəbəkə nişanı baxmaq və həqiqətən əgər cavab başlıqlarını, bildiriş baxmaq cihaz məni göndərir ki, onun adı qədər bir cookie özbaşına, lakin cür əsaslı, PHPSESSID. Və həqiqətən mənə bu göndərilməsi böyük təsadüfi sayı. Bu, olduqca bir sıra deyil. Bu olduqca hexadecimal deyil. Bu alfasayısal simli bir növ var, lakin ehtimalla bu təsadüfi deyil. Və əl möhürü edir, belə ki, Mən istinad edirəm ki, danışmaq. Eyni zamanda mən sonra yenidən basın və əgər Mənim ikinci dəfə bu ikinci xətti baxmaq indi sorğu, bildiriş ki, mənim sorğu başlıqlarını PHPSESSID bu bərabərdir daxildir, -cookie müəyyən, lakin yalnız cookie deyil. Və mənim brauzerinizin təqdimat var Mənim əl Markanın. Belə ki, indi bir iltifat kimi, və daha çox danışmaq lazımdır bir həftə və ya bu, lakin haqqında nə şəkildə bu sizə edir həssas, sizin Facebook hesabı həssas, və digər bu kimi həssas hesabları? Auditoriya: kimsə cookie varsa. DAVID MALAN: Bəli, əgər kimsə cookie var. Mən çox sizin bəzi kimi, həqiqətən demək bir klub və ya bir kimi mühakimə ola bilər oyuncaq park, bir şey cəhd edin kimi bu olsa, möhürü surəti geri başqa şəxsin əl üzərinə, sonra o kimi təqdim öz, həqiqətən baxmaq əgər eyni, 123456789, sonra web server yəqin yalnız gedir ki, istifadəçi siz ki, etibar. Və bu, həqiqətən bir fundamental edir təhlükə siz cookies istifadə hər zaman çünki kimsə yalnız belə spoofs əgər cookie danışmaq, nə tutulur həqiqətən çıxarmaq ya edir Sizin kompüter baxaraq və OK kimi olan. Davudun cookie, s JJ3JIK və və onlar bilmək kifayət qədər ağıllı olduğunuzu necə sort əl göndərmək üçün bir brauzer və ya bir olan cookie onlar yazmaq proqram, onlar tamamilə ola bilər sizin kimi bir haqqinda daxil. Bu biclik etmək çətin deyil başqası biz p-set yenidən halda iki, hansı nə tanıtdı? Auditoriya: kriptoqrafiya. DAVID MALAN: A az Kriptoqrafiya bit. Simple Kriptoqrafiya, ən azı ildə standart nəşr, lakin gizli yenə. az. Siz bütün şifrelemek əgər belə çıxır ki, bir şey istifadə edərək, bu mövzular İndi, SSL kimi daha familiarly bilirik bilər Secure Socket Layer, və ya https:// URL'leri, sonra bu şeyi bütün biz oldum baxma həqiqətən şifrelenir olunur, olan sizin kimi o deməkdir ki, əl möhürü oxuya bilməz. Yalnız facebook.com bilər, və ya google.com, və ya bu halda, cihaz bilər ki, əl möhürü oxuyun. Faciəli olsa və yenidən, bu NSA məhsulları ilə çox uyğun gec, hətta SSL breakable edir. Və bu çətin deyil hətta şifreleme çat. Belə şifreleme krekinq tərəfindən çox deyil, lakin tricking tərəfindən decrypting daxil browser məlumat vaxtından əvvəl. Ancaq yenə də, biz sizə dolaşmaq lazımdır ki, uzun əvvəl. Indi üçün, yalnız qorxmaq. Bu faciəvi cür doğrudur. Bütün hüquqlar. Belə ki, bu indi bizi tərk edir? Yaxşı, bunu edək. Nin irəli getmək və tez edək biz fasilə teaser əvvəl. Və biz bir az artıq uzanmaq lazımdır edirəm Bu gün, lakin biz daxil dalış olacaq bir şey yeni və sexy edəcək olan daha üçün iştaha itiləmək. Belə ki, teaser var. Belə ki, SQL, söhbət başladı belə qısa heç son dəfə. Siz, həqiqətən, əlləri çirkli almaq lazımdır p-set yeddi bu bəzi. Və layman nin baxımından, nə SQL yoxdur - S-Q-L - sizin üçün nə? Bu nədir? Bəli. Auditoriya: Siz giriş məlumatları edək. DAVID MALAN: Bəli. Bu siz kecmə data ili bazasında. Query Language strukturlaşdırılmış. Bu mahiyyətcə bir proqramlaşdırma dili. Bunun xüsusiyyətləri var ki, biz hətta sinif istifadə edəcək. Amma səmərəli bilərsiniz funksiyaları müəyyən. Onlar saxlanılır deyilir SQL prosedurları. Amma biz kifayət qədər sadə və yalnız saxlamaq lazımdır bəzi əsas əməliyyatlar üçün istifadə , seçilməsi data məlumat daxil kimi məlumatların yenilənməsi və data silmə. Və həqiqətən bir verilənlər bazası hesab edə bilər, bir SQL verilənlər bazası kimi, kimi Microsoft Excel olan. SQL bir əlaqələrə aiddir, çünki verilənlər bazası, burada relation yalnız masalar deməkdir. Satır ve sütun. Belə ki, bir şey bir elektron tablo qoya bilər Bu və ya Google Docs kimi, Bir SQL bazasında qoymaq bilər bir masa elan edərək. İndi, necə həqiqətən daxil edirsiniz məlumat? Yaxşı, əmrləri ilə və ya bu kimi queries. SELECT, INSERT, UPDATE, DELETE və. Və çox hissəsi üçün, o var Siz lazımdır dörd yalnız maddələr olduqca güclü bir şey problem yeddi seçin. İndi geri gün, həqiqətən ki bir bir verilənlər bazası ilə qarşılıqlı qara və ağ terminal pəncərə bu kimi bir yanıb-sönən tez. Və biz çalışan etdiyiniz bazası cihaz olan MySQL adlanır pulsuz və açıq mənbə verilənlər bazası engine. Google və Wikipedia oxumaq məqalə, siz adıdır ki, bilirsiniz bəzi keçid bir az Linux versiyasını. Maria bazası əslində bir MySQL danışmaq belə ödemek. Uzun hekayə qısa, Oracle MySQL alıb. Oracle böyük şirkət var. İnsanlar ki, narahat edilmişdir artıq olduqca açıq mənbə qalır bu ki, MySQL yalnız bir surəti , hələ də pulsuz hələ açıq mənbə və default Fedora Linux quraşdırılmışdır. Amma bu bir ağrı növü ilə tanış olmaq üçün boyun verilənlər bazası bu yol. Beləliklə, biz CS50 cihaz daxil adlı pulsuz açıq mənbə vasitədir phpMyAdmin. Bir təsadüf ki, Bu PHP yazılı. Heç bir fundamental var burada PHP üçün lazımdır. Amma bu yalnız bir web-based alətdir ki, biz quraşdırılmış, pulsuz yükləmək us üçün imkan verir ki, cihaz, bir qrafik istifadəçi interfeysi ilə p-set yeddi bazası ilə tədqiq etmək yeni verilənlər bazası yaratmaq, Öz yekun layihə üçün demək istədiyiniz əgər kimi, və nəticədə yaratmaq CS50 Maliyyə Kimi dinamik saytları Siz sorğu imkan verir ki, dinamik data yeniləmə. Siz istifadə etmək fikrində deyilik yalnız bir sadə mətn faylı və ya CSV. Siz, həqiqətən, bir smart bazası istifadə edə bilərsiniz daha çox icra edə bilər proqram ki, yalnız oxumaq daha inkişaf etmiş sorğu xətti hər şey vasitəsilə. Belə ki, məsələn, bu, vermək nə p-set yeddi qutusu həyata. Bu yəqin ən azı bir masa biri olan üç sütun, istifadəçi adı, onlardan biri hash edir və digər olan ID edir. Amma maraqlı şey, və yalnız burada bir fikir həyata tease, istifadəçi adı sağ, ehtimalla artıq nadir? Mən demək, ən hər hansı bir bax, əgər orada, bir istifadəçi adı iki Caesars ola bilməz. Iki malans ola bilməz. Iki jharvards ola bilməz. Onun unikal. Əks halda, onlar bilmirəm jharvard əslində. Belə ki, nə də motivasiya ola bilər sol üçüncü sütun olan kimi görünür orada deyilir ID, eyni unikal ki sayı? Bu bir az lazımsız hiss ilk baxışda mənə. Niyə var məcburedici ola bilər yalnız unikal istifadəçi adı, unikal nömrələri həm də? Auditoriya: Onlar ola bilər eyni parol. DAVID MALAN: People ola bilər eyni parol, əmin olun. Ki, tamamilə ola bilər. Lakin onlar bu unikal istifadəçi adı varsa, mən ki, həqiqətən deyil ki, iddia edirəm olsun, çünki onlar yazın əgər onların istifadəçi adı, mən yalnız yoxlamaq lazımdır onların parol, onların öz hash. Niyə başqa? Auditoriya: Faster axtarış. DAVID MALAN: Faster axtarış. Niyə? Auditoriya: ID yalnız biridir. DAVID MALAN: ID yalnız bir xarakter, və ya daha dəqiq desək, bu, bir sıra var, belə ki, yəqin ki, 32 bit və ya kimi bir şey. Halbuki istifadəçi adı, yəqin Jason Hirschhorn qədər sort var ridiculously uzun, və o olacaq simli mənə daha çox vaxt bəlkə H-I-R-S-C-H-H-O-R-N müqayisə, və üçün kimi bir / 0 və ya bir şey, fərqli olaraq, Jason baxmaq üçün yalnız deyərək mənə istifadəçi sayı iki verir. 32 bit var. Bu bir INT ki, Siz müqayisə etmək lazımdır. Və həqiqətən, dəqiq niyə bazaları üçün unikal kimlikleri təyin edirlər onlara satır. İndi digər məlumatlar növləri nə var yəqin İNT başqa bu kimi strings? Yaxşı, daha düzgün olmaq, Kimi SQL verilənlər bazası, MySQL, CHAR sahələri var. Və misleadingly bir az char bir CHAR deyil. Bir MySQL bazasında A CHAR sahədir bir və ya daha çox simvol, lakin var simvol sabit sayı. Belə ki, məsələn, mən artıq getmək əgər Əgər siz artıq var, ya phpMyAdmin kimi tezliklə problem yeddi qurmaq və mən gedəcək mənim bazasında, və yalnız əyləncə üçün, nin adlı yeni masa yaratmaq imkan yalnız iki sütun test. I Go basın lazımdır. Bu kifayət qədər tanış olacaq, Siz misgər xüsusilə də ətrafında öz. Burada yaratmaq ID yazın bilər növü INT yeni bir masa. Amma burada istifadəçi adınızı yazın bilər ki, əvvəllər masa yeniden. Mən bütün dəstə var fark seçmək növləri. Və bu çox nə phpMyAdmin cür gözəl. Bu sizin self-tədris növü var yalnız cür point, basın və bilərsiniz açılan menyular baxmaq, və nəticə çıxarmaq ki, nə səlahiyyətləri SQL verir. Və həqiqətən, mən Char seçerseniz, Mən sonra uzunluğu, və ya necə müəyyən etmək lazımdır çox dəyərləri, neçə simvol ola bilər. Belə ki, çox ortaq dəyərlər kimi şeylər 255, lakin bir az uzun. Adətən bir istifadəçi adı üçün səkkiz edir. Amma bu gün bir az kiçik. Belə ki, bu bir dizayn qərar deyil. Bu, 8 simvol max 32, 255, 1000? Bu qədər həqiqətən var. Amma CHAR sahəsində bir sabit sayı. Belə ki, çox neçə seçmək və növ edirik Siz uzun adınızı istəyirsinizsə berbat. Seçin bir çox və nə İşin mənfi tərəfi odur? Auditoriya: [işitilemez]. DAVID MALAN: Bu israfçı var. Just C kimi, bir böyük varsa yaddaş yığın sizə lazım çox, siz yalnız zaman israf və məkan israf. Belə ki, alternativ olaraq, var Bu problemi həll edən VARCHAR, , sabit uzunluğu kimi uzunluğu deyil müalicə lakin maksimum uzunluğu, və bir istifadə kimi dəyişən chars sayı, daha sonra sizin kimi yalnız bir çox chars istifadə etmək niyyətindədir həqiqətən lazımdır. Ki, mükəmməl səslənir. Niyə biz xilas yoxdur CHAR data yazın? Nə İşin mənfi tərəfi odur ola bilər səslənir VARCHARs istifadə kimi gözəl bir qalibiyyət var? Bəli? Auditoriya: [işitilemez]. DAVID MALAN: OK, yaxşı. Belə ki, sizin data bütün eyni əgər uzunluğu, narahatlıq nə var? Auditoriya: Əgər israf edirik, çünki bütün bunları izah edərək data. DAVID MALAN: Belə ki, sizin data bütün əgər eyni uzunluğu, baxmayaraq ki, mən iddia edirəm ki, maksimum uzunluğu ifadə VARCHAR haqqında fərqli heç bir char üzrə sabit uzunluğu ifadə əgər Siz əvvəlcədən ki sayı bilirik. Amma həqiqətən, mən sort will ki, cavab həqiqəti çıxarış bir max hələ də var ki, hansı ki, xüsusilə əgər, annoying ola ki, bir şəxsin adı qarşılaşa siz ki, qeyri-adi uzun təxmin edirik. Və bu da bir az daha az səmərəli deyil həqiqətən VARCHARs axtarış , axtarış chars qarşı xüsusilə çox var və uzun masalar üçün məlumatların çox. Belə ki, burada da, tematik yenidən heç Aşkar seçim. Belə ki, yalnız digər hissi vermək maraq ola bilər ki, məlumat növləri ya p-müəyyən yeddi və ya gələcək, INT var. BigInt, var olan uzun uzun kimi. Bu 64 bit olmağa çalışır. Siz görəcəksiniz olan Decimal var bir çox olan problem set, problemlərin təmiz cavab biz float və üzən ilə qarşılaşdı qeyri-dəqiqlik qeyd. Və sonra Datetime var. Ki, bir veri növü sözün var bir il kimi baxmaq, bir ay, bir gün, və bir saat, dəqiqə, ikinci. Amma SQL verilənlər bazası da var şeylər indeksləri zəng edəcəyik. Və index ki, bir şey deyil masa üçün oluştururken müəyyən axtarış və digər əməliyyatları etmək daha səmərəli. Xüsusilə, deyilən bir şey var Siz ola bilər ki, PRIMARY index aşağıdakı kimi bəyan edir. Biz sizin üçün bunu users masa biz sizə verir. Mən əl yeniden əgər Lakin qeyd burada verən istifadəçilər masa istifadəçilər bir ad. Mən artıq ID ifadə edildi. Mən INT ifadə edildi. Mən istifadəçi adı müəyyən maksimum 32 simvol. Amma biz saxlamaq əgər kifayət qədər bu scrolling geniş pəncərə, bildiriş bir var Mən belirtebilirsiniz başqa şeylər dəstə. Biri mən atributları daxil edə bilərsiniz kimi, siz nə, bu bilirik INT İmzasız olmalıdır. Mən mənfi nömrələri istəmirsinizsə, belə ki, bu imzasız etmək edək. Null burada müvafiq deyil, çünki Mən hər istifadəçi istəyirəm bir unikal nömrəsini edir. Mən null olmaq istəmirəm. Amma bu maraqlıdır. Mən ID olduqunu belirtebilirsiniz əsas bu verilənlər bazası əsas, və ya bu unikal, və ya dizine, və ya tam mətn var. Belə ki, bu gün məqsədlər üçün, uzun hekayə qısa, PRIMARY deməkdir ki, bu edilir həm konseptual və texniki ola biz benzersiz üçün istifadə sahəsində istifadəçilər müəyyən edir. Biz istifadəçilər axtarmaq zaman Belə ki, bu sort edir əsasən onlara baxmaq üçün vəd ki, unikal identifikator. Və bazası təmin edəcək ki, siz əgər bir istifadəçi sayı 3 var, siz bilməzsiniz fiziki başqa bir istifadəçi daxil ki, eyni sayda 3. Bu verilənlər bazası yalnız imtina edəcək Bu dəyişiklikləri üçün. Siz, çünki yaxşı bir şey olan Özünüz özünüzü qorumaq. özü Alternativ olaraq, istifadəçi adı üçün. Belə ki, ikinci sıra, geri, istifadəçi adı sahədir. Belə ki, burada ikinci sıra adınız, biz uzaq orada sol etdi. Belə ki, nə mən müəyyən edə bilərsiniz? Mən SQL görə, icazə alıram iki əsas düymələri müəyyən etmək. Siz harada birgə düyməsini belirtebilirsiniz həm də sahələrdə baxmaq, lakin onlar deyil fərdi əsas düymələri ola. Belə ki, sual həyata var. Mən seçmək üçün istəyirsiniz bilər? Yaxşı, UNİKAL bir ruhu oxşar Bu daxil olduğu ilkin əsas sahəsində unikal olmalıdır, lakin bu bir olacaq deyil Mən hər zaman istifadə edin. Və biz bütün bu bir istifadə etmək fikrində deyilik yenə nə səbəbdən vaxt? Əgər bu potensial yavaş Bu uzun bir istifadəçi adı var. Bu, sadəcə vaxt itkisi var. İNDEKSİ, eyni zamanda, bu ifadə unikal olacaq, amma istərdim deyil Siz altında sehrli işləmək daha sürətli məni etmək üçün başlıq Bu sahədə axtarış. Belə ki, bu yəqin ki, burada müvafiq deyil. Istifadəçi adı üçün, Mən mübahisə istədiyiniz UNİKAL yaxşı cavabdır. Amma biz daha istifadəçilər ki, güman yalnız istifadəçi adı daha maraqlı, hashes, və ID nömrələri. Nə biz insanların tam adlarını verdi əgər? Biz onlara ünvanlarını verdi, nə əgər və onlar haqqında digər məlumatlar? Yaxşı, əgər müəyyən bir bir sütun verilənlər bazası dizine, o deməkdir ki, MySQL, Oracle və ya, və ya hər hansı məlumat bazası Siz öz sehrli işləmək lazımdır, istifadə etdiyiniz və xülya data bir növ istifadə edin bir ağac, ya bir trie, və ya a kimi strukturu hash table, və ya zəmanət bir şey ki, siz istifadə məlumat üçün axtarış zaman xüsusi sahəsində seçin - kimi mənə hər kəs göstərir ki, Oxford küçəsində yaşayır. Ki, kimi bir sorğu. Siz əvvəlcədən müəyyən əgər ki, siz sahəsində bir index istəyirəm, axtarışlar daha sürətli, çox olacaq. Bir index, ən yaxşı daxil deyilsə edə bilərsiniz bir xətti axtarış əgər sıralanır deyil. Amma İNDEKSİ, ağıllı daxil əgər verilənlər bazası edən insanlar - indi ağac bilən sizin kimi insanlar və çalışır və hash masalar - avtomatik olaraq bir məlumat inşa edəcək əmin olun ki, RAM strukturu o axtarışlar çox daha sürətli edir. Fulltext eyni zamanda, ruhda oxşar edir lakin siz wildcard etməyə imkan verir axtarışlar kimi mənə hər kəs göstərir ki, ilə başlamaq küçələrdə yaşayır hər hansı səbəbdən məktubu Ç. Siz wildcard axtarış edə bilərsiniz kimi. Və ya, şou kimi daha çekici şeylər Mənə sözü olan hər kəs - Mənə onun adı başlayır hər kəs göstərmək xüsusi məktubu ilə. Siz açar sözlər, üçün axtarış edə bilərsiniz bu şəkildə. Bütün hüquqlar. Belə ki, dizayn imkanları orada potensial. Başqaları var ki, I will mənim əlləri dalğa. Bu ola bilər ki, həyata çevirir müxtəlif storage motor. Bu biz ehtiyac daha çox gizli, əlbəttə problem üçün yeddi seçin. Mənim cari olaraq, uşaqlar istifadə InnoDB deyilən bir şey. Siz bu yerə qeyd görəcəksiniz phpMyAdmin interface çox güman ki. Amma digər dizayn var bilirik ki, potensial var ki, qərarlar faiz final layihələr gəlmək əgər Siz web-based bir şey yoxdur. Amma bunu edək. Nin irəli getmək və bu qoymaq edək bir hekayə üçün bir iltifat kimi ekran sizə cəlb bir roommate, və süd bir şüşə. Bir iki dəqiqə edək və ya belə ki, burada pozub. Siz ətrafında qalmaq bilər, əgər nin gəlsin geri, SQL bir az daha baxmaq, və sonra JavaScript bir az p-set nəzərə səkkiz. Bütün hüquqlar. Belə ki, siz bir haqqında düşünür olsun çox asanlıqla yarana bilər ki, künc halda bir verilənlər bazası istifadə edərək, və ya kontekstində səmimi, hətta real dünya şeyi istifadə ATM pul almaq kimi. Belə ki, burada bir soyuducu var. Siz də bir var Güman yurt və ya ev. Və bir roommate, və həm də var Siz, həqiqətən, məsələn, süd kimi. Belə ki, bir gün sinif evə gəlib. O hələ geri deyil. Siz soyuducu açmaq. Siz, həqiqətən, süd böyük bir şüşə istəyirəm. Süd var. Beləliklə, siz nə edirsiniz? Siz soyuducu bağlayın. Siz açarları grab. Siz kvadrat çıxmaq. Və o da CVS line almaq self checkout şeylər həmişə artıq həqiqətən çox almaq cashiers olan. Afərin. Beləliklə, eyni zamanda, dot dot dot roommate ev gəlir və o eyni bir həsrət var bəzi süd üçün. Belə ki, o, soyuducu açır daxili görünür, və oh, lənətləmək. No süd. Belə ki, o rəhbərlik, getmək olur yalnız olan digər CVS, bir nədənsə üz blok və o, və ya o, bəzi süd almaq line olur. Eyni zamanda, o, ev gəlmək və ya o ev gəlir, və nə Əgər son nəticədə var? Iki dəfə çox süd. Amma həqiqətən kimi deyil süd qədər. Belə ki, indi ki, indi çox süd var onlardan biri yalnız turş getmək üçün gedir nəticədə. Belə ki, bu, həqiqətən, pis problem deyil. Sağ? Belə ki, nə baş verib? Belə ki, əsaslı, bu cür bir gülünc Məsələn. Amma başlıq altında, biz nə etdik burada baş sizin, həm də yoxlanılır edir bəzi parça dövlət yaddaş, soyuducu. Siz həm dövlət yoxlanılır bəzi dəyişən. Siz də bir nəticəyə çəkdi Əgər çıxış etdi. Amma təəssüf ki, zamanı roommate mağaza idi ki, dövlət dəyişən dəyişib, o geri gəldi və indi dövləti dəyişdirmək istəyir, lakin Artıq dəyişib edilmişdir onun haqqında. Və əlbəttə, o olmazdı onlar bilirdi əgər mağaza getdi Siz marşrutu en artıq idi ki,. Belə ki, real dünyada, necə ola bilər Siz fərz etsək, bu problemin qarşısını almaq soyuducu, bir roommate var, və həqiqətən süd istəyirsiniz? Auditoriya: bildirilməsi. DAVID MALAN: bildirilməsi. OK. Amma necə ünsiyyət bilər? Auditoriya: qeydi buraxın. DAVID MALAN: sağ, qeydi buraxın? Həmişə, qeyd tərk şou pərəstişkarları. Bütün hüquqlar, belə ki, həmişə bir qeyd buraxın, və ya bir asma kilit və ya bir şey kimi həqiqətən qoymaq sizin saxlayır ki, soyuducu dövlət yoxladıqdan dən roommate ki, dəyişən. İndi niyə bu ilgili ola bilər problem yeddi, ya ATM müəyyən. Bəli, ATM bir dünya təsəvvür yerləşir Bir ATM qədər getmək mümkün ola bilər burada maşın və burada başqa ATM. Və bu tez-tez baş verir. Və, iki ATM kartlar idi Güman olan əldə etmək mümkündür. Siz həm maşın daxil səmərəli eyni zamanda, inşallah heç bir axtarır isə. Və sonra sizin PİN yazın təxminən eyni zamanda. Və sonra bir balans sorğu etmək siz nə qədər pul görmək. Və siz $ 100 var deyirlər hesabınıza sol. Belə ki, mahiyyətcə eyni zamanda, siz daxil, bir sıfır, sıfır demək. Siz inşallah bir pulu geri almaq. Amma nə qədər pul geri almaq bilər? İndi gün sonunda kompüter, onlar söhbət etdiyiniz xüsusilə əgər server, mütləq şeylər yoxdur qaydada gözlənilir. Belə ki, çünki, nə güman orada nə şəbəkə sürətli məsələlər , və ya CPU məsələlər var, və ya kimi bir şey, güman ki, ilk ATM sizin balans və yoxlayır oh, bu şəxs $ 100 var, görür. Amma sonra çevirirsən olur, çünki bəlkə bir backup baş verir və belə ki, aşağı yavaşlatan. Və ya bəlkə, şəbəkə yoxlanılması isə əlaqə bir az yavaş, çünki var bu, yalnız baş verir. Onlar fiziki cihazlar edirik. Belə ki, eyni zamanda, ikinci ATM edir eyni sualı. David nə qədər pul var? $ 100 cavabdır. Amma ilk ATM hələ var, çünki Mesaj həm 100 $ çıxmaq göndərdi Bankomat bankın kassasında tanış var, indi $ 100 var, və görən həm maşın potensial var bir cavab tüpürmək gedir. İndi bu, bəzi mənada sizin üçün böyük bank nəticədə nə əgər tərəfindən minus 100 məbləği dəyişdirmək üçün dəyişən bərabər yaradılması Sizin fərqli olaraq bank, 0-a bərabər hesab 100 minus bunu. İndi bank üçün ən pis halda - və ya bank üçün ən yaxşı, eyni zamanda, onlar $ 200 vermək, və Sizin bank hesabı indi mənfi göstərir Həqiqətən deyil olan $ 100, bütün sizə fayda. Amma point ki, bu irqi əldə iki roommates üçün şərt süd, və ya pul almaq üçün çalışırıq iki ATM və vault dövlət dəyişdirmək eyni zamanda mövcud bir bir verilənlər bazası var zaman. İndi problem, bu məsələ yeddi müəyyən mənada yaranır ki, bir almaq əgər Facebook fond payı, və sonra üçün Siz ikinci pay almaq instansiya Facebook fond, etmək lazımdır proqramçı kimi bir qərar. Yeniləmək üçün necə qərar üçün verilənlər bazası, bahis siz olacaq edir bir ki, fond üçün sıra və bu var Onu həyata keçirmək üçün bir yoldur. Və bir payı olacaq Onların fond ticker simvolu olan FB, Bu istifadəçi adı və ya bu istifadəçi üçün ID, unikal identifikator. Amma eyni hekayə burada baş verə bilər. Siz görəcəksiniz kimi, SQL bir SELECT varsa problem görmək zaman, yeddi qurmaq, oh, David bir payı var Facebook fond. İndi bu iki səhmlər dəyişdirmək imkan, o almaq istəyir, çünki bir ikinci payı. Amma David həqiqətən iki idi Güman brauzer pəncərələrini açıq, və ya güman ki, iki həyat yoldaşları ilə birgə hesab var, və onların hər ikisi yerinə yetirmək üçün çalışırıq Eyni əməliyyat, orada da, potensial olmaq qərarı mövcud Əvvəlki əsasında qəbul Dünyanın dövlət - hesab bir payı var - indi və həm insanların, və ya hər ikisi server, iki səhmlər arttırmayı demək üçün cəhd edin. Amma bu halda, həvalə edə bilər Mənə həm səhmlərin pul, lakin yalnız bir dəfə artırılacağını. Belə ki, qısa, əsas problem burada, zarafat kimi bir tərk haqqında Qeyd edək ki, və ya bir asma kilit qoyaraq, edir əgər iki nəfər və ya iki mövzuları - danışıq geri edirəm - bəzi dəyişən dövlət yoxlayacaq bilər və sonra dəyişən dəyişdirmək üçün cəhd edin, lakin bu iki şeyi baş yoxdur Eyni zamanda, lakin müdaxilə almaq bilər məlumatlar, baş verən digər şeyi çox qəribə dövlət almaq. Və faydalana bilər və ya əziyyət bilər pul Məsələn mənada. Belə ki, problem yeddi müəyyən, sizə vermək kod bu bir xətt, uzun olan hekayə qısa, bu həll edir MySQL problem. Deyil ki, bu çox uzun təlimat hətta bir xətt üzərində uyğun burada ekran təmin edir ki, əməliyyat atom adlı budur. Bu, bütün bir dəfə olur, və ya Bu bütün baş vermir. Bu, çox uzun söz ola bilməz qismən müdaxilə almaq. Və bu nə sözün deyil nə deyir. Bəzi masa aşağıdakı daxil edin üç sahələri həmin xüsusi dəyərlər, lakin cüt düyməsi, insert yoxdur. Bir yeniləmə etməyin. Belə ki, bu SELECT və bunu kimi Eyni zamanda danışmaq belə INSERT. Və yəqin ki, var ki, əsas nə burada sövq? Bu çıxır, və siz bu görəcəksiniz problem, yeddi spec müəyyən çünki biz unikal əsas var elan etdik bu masa, belə ki, Bir neçə satır ola bilməz ilə eyni istifadəçi üçün Eyni quruş fond simvolu - burada bu nümunə, DVN.V edir bir silly quruş fond ki, biz spec baxın. , Biz bu unikal elan etdik çünki nə bu o deməkdir ki, siz əgər bir cüt sıra daxil etmək üçün cəhd edin, siz əvəzinə olmadan yeniləmə gedir başqa hər kəs dəyişdirmək imkanı olan ya dünyanın dövlət. Belə ki, qısa, bu təmin edir şeylər atom var. Ümumiyyətlə, baxmayaraq ki, verilənlər bazası MySQL kimi - və sizin üçün bu xüsusiyyət lazım deyil yeddi p-set, lakin yadda saxlamaq gələcək - əməliyyatlar adlanır nə dəstək, siz deyə bilərsiniz Sözün əməliyyat başlamaq. Daha sonra icra edə bilər iki SQL hesabatları. Siz görəcəksiniz və bir SQL şərhdə, p-müəyyən yeddi, bir az görünür ilə bu kimi bir şey. Bir masa adlanır hesabı güncelleyin. Nə bərabər balans sütunu balans sütun hazırda 1000 minus olduğu sayı, istifadəçi ID kimi hesab nömrəsi, 2 bərabərdir, və sonra yeniləmə hesab dot dot dot. Belə ki, layman nin baxımından, nə yoxdur bu iki sorgular etdiyini görünür bank real dünya mənada? Auditoriya: qənaət ötürülməsi. DAVID MALAN: Exactly. Birinə vəsait köçürülməsi digər hesabı. Bu başqa bir misal olduğu həqiqətən bu iki şeylər istəyirəm və ya baş deyil. Siz bir şey almaq istəmirəm Onların orta və potensial mess up riyaziyyat, və ya mess up nə qədər Siz pul, və ya nə qədər pul bank var. Belə ki, nə əməliyyatlar haqqında həqiqətən gözəl MySQL ki, və ümumiyyətlə verilənlər bazası, ki, onlar və həyata etdik etmiş ağıllı insanlar bu funksiyalar etmək üçün necə anlamaq o şeyi də baş əmin və ya bütün. Və həqiqətən etmək istəyən əgər insanların istifadə etdiyi bir web kampus, real dünyada insanlar, bunu başlanğıc mənada bir şey, bu növ var dizayn qərarları ki, heç belə əhəmiyyətli olacaq. Əks halda, siz itirmək, data itirmək başlamaq istifadəçilər, və ya ən pis halda biz potensial, burada gördük pul itirmək. Belə ki, yenə, çox problemi müəyyən yeddi, eləcə də bəlkə bəzi son layihələr siz. Belə ki, biz ki, şəkil dəyişdirmək imkan yalnız daha bir şəkildə bir an əvvəl. Mən əgər mənə, həqiqətən, görək - nope ki, getdi. Orada deyil. Biz keçən dəfə sol harada, belə deyil. Və biz silkələmək olacaq çıxır burada mix daha bir şey - JavaScript adlı dil. Belə JavaScript həqiqətən uyğun Bu parça daxil - və mən kifayət qədər otaq buraxmadı, bu miqyaslı indi deyil. OK, bu, həqiqətən riqqətli edir. OK, belə ki, JavaScript var. Bütün hüquqlar. Mən, həqiqətən, bir zarar edirəm. Bütün hüquqlar. Belə JavaScript başqa proqramlaşdırma dil və bizim son ki, kömək edir daha yoxdur ki, sakitləşdirmək burada yanğın hydrants. Belə JavaScript də şərh edir Siz nə deməkdir dil, adet sıfır və olanları onu tərtib. Siz yalnız run. Amma nə ilə əsaslı fərqli JavaScript adətən siz ki, web server run yoxdur. Bu run almaq deyil cihaz başına se. Əksinə, bir istifadəçi tərəfindən nazil olur öz browser daxil HTTP via - Chrome, Safari, Internet Explorer, Firefox, nə - və bu həyata ki, brauzer var xüsusi proqramlaşdırma dili. Belə ki, aydın olmaq üçün, PHP günə qədər olmuşdur command line at ya icra bir server qara və ağ şüşəqaldıran, Aracın, kompüter kimi cihaz istəyirəm, və ya bu oldu bir web server tərəfindən icra bir kompüter çalışan. Amma burada mövzu bu günə qədər ki, PHP edir server-yan icra, belə edilmişdir istifadəçi və istifadəçi browser PHP kodu bir line görür heç vaxt. Əslində, heç bir brauzeri açmaq əgər Sizin veb və ya başqa və siz həqiqətən, sizin pəncərə PHP kodu görmək, kimsə up yivli edib. Bu üçün nəzərdə deyil, çünki birbaşa brauzerinizin göndərildi. Bu edam çevirdi üçün nəzərdə HTML kimi bir şey. Amma JavaScript mahiyyətcə qarşı. Bu adətən daxilində çalıştırmak üçün nəzərdə edir bir istifadəçi browser pəncərə. Və saytlarda nə cür istifadə JavaScript sonra bu gün? Sözün hər məşhur veb kimi. Hər haqqinda siz uşaqlar yəqin ki, üçün JavaScript istifadə gündəlik istifadə sadə və hətta sexiest xüsusiyyətləri. Belə ki, Facebook kimi bir şey Ki, siz istifadə əgər söhbət. Necə ki, həqiqətən işləyir? Yaxşı günə qədər, işçilərinin bütün biz var HTML ilə aparılır və PHP ki, nəzərdə tutur , bir URL qoparmaq, və hit daxil edin və bəzi HTML content. Və siz dəyişikliklər linki basın URL, səhifə dəyişir və yenidən bəzi yeni məzmun. Başqa URL basın və ya bir formada təqdim başqa səhifəyə whisked almaq Siz yeni məzmun görmək. Amma Facebook Chat kimi bir şey istifadə edərək, və ya Gchat, və ya Google Maps, nadir hallarda bütün səhifə belə ki, təravətləndirir an bir ağ ekran görmək və sonra yeni məzmun. Əksinə, web pages bu gün dinamik var yenidən yenilənir və əldə təkrar bütün sort pərdə arxasında edir. Və çıxır siz getmək zaman ki, Facebook kimi bir şey, və ya Gchat, və ya Gmail və saytın yenilikləri avtomatik olaraq yeniden olmadan bütün ekran, nə baş ki, Brauzerinizin cür gizli və etdi əlavə HTTP istekleri - deyil, bütün web pages, həm yalnız kimi məlumatların kiçik chunks, ani mesaj sizin dost yalnız Siz və ya statusu yeniləmə ki göndərib kimsə yalnız siz və ya tweet göndərdi ki, kimsə yalnız göndərdi. Bu, sadəcə kiçik sorğu edilməsi oldu məlumat və sonra JavaScript istifadə edərək, bu dəyişdirmək, dil proqramlaşdırma nə web page olmadan kimi görünür server server olmadan yardım HTML yaradan. Belə ki, qısa, JavaScript sonra istifadə edilə bilər yalnız yeni məlumatlar almaq deyil bütövlükdə yeniden olmadan server səhifə və ya formu göndererek. O, həmçinin dəyişdirmək üçün istifadə edilə bilər sözdə DOM - sənəd obyekt modeli - olan yalnız xülya yoludur HTML ağac deyərkən biz sonuncu dəfə gördüm ki. Belə ki sakitləşdirmək üçün JavaScript edir syntactically belə C oxşar həmçinin. Heç bir əsas funksiyası var. Siz yalnız kodu yazmağa başlayın və bu icra və ya almaq daha düzgün şərh. Conditions bu kimi görünür. No C fərqli və ya Ki, məsələ PHP. Boolean ifadələr və ya-ed birlikdə bu kimi görünür. Birlikdə bu kimi baxmaq Anded. Switches bu kimi görünür. Loops bu kimi baxmaq edəcək. Loops bu kimi görünür baxmayaraq. Loops bu kimi baxmaq edəcək etməyin. Bu yeni deyil. Belə JavaScript bir foreach var per se tikintisi, lakin bu tikintisi Bu dəyişən sıra i və i üçün halda bir indeks dəyəri olur. Belə ki, bir az fərqli foreach baxmayaraq yeni versiyaları JavaScript, hər zaman həyata gəlir belə ki, hətta bu dil xüsusiyyətləri inkişaf edir. Və bir kənara, JavaScript, bu gün də yalnız kimi bir server istifadə edilə bilər PHP Node.js. adlı çərçivəsində istifadə CS50 nin TFS biri Kevin, rəhbərlik etdi mövcud ki Node.js mövzusunda seminar cs50.net/seminars. Siz maraqlı olduğunuz Belə ki, bilirik ki, siz kimi server tərəfində istifadə edə bilərsiniz yaxşı, lakin, kifayət qədər son trend var ancaq ki, bir güclü biridir. Bu, bir az fərqlidir. Bu JavaScript bir sıra edir. Və müxtəlif nə çəkir C və ya PHP qarşı? Bir neçə sürətli hekayələr var biz burada deyə bilərsiniz. Nə PHP qarşı itkin var? Auditoriya: [işitilemez]. DAVID Malan: Var? Bağışlayın, ancaq, yenə də demək? Auditoriya: elan deyil dəyişən növü. DAVID Malan: Biz bəyan deyilik dəyişən növü. Belə ki, həqiqətən, çox PHP kimi, biz deyilik Bu dəyişən növləri ifadə. Əksinə, biz daha ümumi olaraq istəyirik dəyişən üçün var edib. Biz PHP-nin narahatlıq yoxdur dollar işarə edən isə yorucu növü, daha aydın edir ki, bir şey dəyişən deyil. Burada Halbuki, biz növ geri döndük Yalnız zəng C yanaşması Biz istəyirik ki, adı ilə dəyişən ədəd kimi, bu vermək. Və həmçinin PHP kimi, biz üçün kvadrat mötərizədə ki, serialın içərisində dəyərlər. JavaScript belə dəyişənlərin də Bu kimi baxmaq bilər. Bu s adlı simli burada qeyd lakin eyni biz müəyyən deyil bir simli var. Burada baxmayaraq olmayan bir xüsusiyyətdir PHP eyni şəkildə mövcud lakin bir az eyni. Bu JavaScript bir obyekt deyil. Və obyektlər İsveçrə ordusu növ var Məlumat strukturunun bıçaq ki, siz şeyi hər hansı bir sıra istifadə edə bilərsiniz. Burada, məsələn, biz bəyan edirik dəyişən quote çağırıb. Dəyişən növü bir obyekt deyil. Siz C struct kimi hesab edə bilər ki, düymələri və dəyərləri var. Symbol bir açardır. FB yəqin, bir dəyərdir bir fond rəmzidir. Vergül. Qiymət başqa əsas və onun dəyəri yəqin bir üzən point, və ya ümumiyyətlə sayı $ 49,26 JavaScript. Belə ki, PHP yoxdur - olduqca PHP obyektlər görməmişik Bu kimi, lakin biz bir analog gördünüz, nə idi? Auditoriya: [işitilemez]. DAVID Malan: Assosiativ Diziler. PHP assosiativ Diziler vardır, halbuki onun sintaksis heç qədər belə deyil müxtəlif - biz kvadrat mötərizədə gördüm. Biz qəribə okları simvol gördüm. JavaScript obyektləri var, lakin bu əsasən semantik fərq və İndi müxtəlif sinonimi. Lakin, kənara kimi, PHP var ki, bir yol obyektlərin Java və digər Dil obyektləri var obyekt-yönümlü proqramlaşdırma. Lakin bu yalnız istifadə edəcəyik İndi məlumat növləri üçün. Obyektləri və assosiativ seriallarda. Bu biri ola bilər bir az daha aydın. Bir obyekt faydalı niyə burada. Bir tələbə bəyan etmək istədiyiniz zaman, Zamyla kimi, biz, həqiqətən bilər ki, daxili danışmaq belə içine kimi buruq Mötərizədə istifadə object düymələri bütün dəstə əvvəl burada və dəyərlər. Biz ID, ev, və bir adı Bir nöqtəli vergül izlədi Zamyla, sonunda adi. Down burada da, bu bir az çoxdur, çox güclü, həmçinin, müxtəlif, lakin bu gün. Burada bir sıra var, və mən bilirəm ki, bir kvadrat mötərizə up var üst və bir kvadrat mötərizə alt. Bu nə data bir sıra edir JavaScript yəqin yazın? Bu, görünür bir sıra edir üç obyektləri kimi. Mən yalnız bir obyekt bilirik qıvrım aşırma çünki. Və açıq buruq brace var qeyd bəzi stuff, yaxın buruq brace, vergül, sonra bir daha, vergül, və sonra bir daha. Belə ki, üç dəlilləri var iki vergüllə ayrılır. Belə ki, bu üç obyektlərin bir sıra edir. Və həmin obyektlərin hər görünür bəzi tələbə və ya personal şəxsiyyət ilə sort, hər, ev, və adı. Amma bu bir şey deyilən etdik JSON çağırıb - JavaScript Obyekt Notation. Və bu data format ki, həqiqətən belə çox məşhur və edir vogue bu gün ki, bir yazmaq əgər Facebook istifadə edir ki proqram API, Twitter API, həqiqətən, demək olar ki, orada hər hansı bir API bu gün, CS50 öz bəzi, o cümlədən Əgər geri almaq data deyil köhnə məktəb CSV format. Geri Çünki ki, CSV super sadədir. Bu yalnız sütun ayrılmış vergüllə. JSON data daha çox metadata verir. Bu hər dəyəri ilə əsas assosiasiya belə onlar yalnız güman yoxdur ki, zeroth sütun bir dəyəri, sütun edir bir sütun iki başqa, başqa. Burada JSON obyekt hər şey sort edir öz-özünə izah, çünki hər Bu fayl adları bir sözün var kimi qarşısında adı sitat string. Belə ki, bir nəzər salaq burada nümunələri neçə. Mənə cihaz daxil edək. Və mənə bizim vhost daxil bildirin xalqın içinə directory. Və mənə daxil bildirin JavaScript directory. Və nin irəli getmək və açmaq bildirin DOM yalnız deməkdir dom-0.html, sənəd obyekt model. Bu, ağac məhsulları Mən daha əvvəl də ifadə. Və mənə aşağıdakı təklif edək. Burada elə bir web page var bədən olduqca sadədir. Belə ki, aşağı burada altındakı, Mən bir forma var bildiriş. Biz əvvəl gördük. Bu olan biri iki giriş var Adı ID, biri bir növü vardır təqdim və ilk bir növü mətn. Belə ki, bu, həqiqətən, olduqca sadə səslənir. Burada gedək. Burada bu səhifəyə geri getmək edək. Nin localhost daxil bildirin, və getmək JavaScript kataloq və getmək burada dom-0, və biz bu formadadır. Belə ki, yəqin var bütün bu səhifə yoxdur. Ilə bir ad sahə var bir düyməsinə göndərin. Amma burada PHP istifadə etmək niyyətində deyiləm. Mən hər şey klient gedirəm aşağıdakı kimi belə JavaScript danışmaq. Mən, həqiqətən, adı verilmişdir etdik ki, görürsünüz bu giriş sahəsində unikal identifikator olan, həqiqətən bir anda mənə bir müddət saxlamaq. Və mən bir tag təqdim etdik bilərsiniz Mənim web page başla  tag. Belə ki, JavaScript ki, bu mənada var bir klient proqramlaşdırma dili. Bu halda, yalnız CSS kimi, mən gətirdik düz mənim HTML daxilində. Amma bir funksiyası elan etdik ihbar ki, bir az PHP kimi görünür syntactically, lakin bu, həqiqətən edir JavaScript, çünki yenidən, bu Brauzerinizin klient. Bu gedir nə bir tahmin etmək nə olsa belə, sintaksis bəzi burada yeni. Auditoriya: kim salam söyləyin. DAVID MALAN: Bu salam demək olacaq kim bu səhifə olub. Belə ki, necə? Belə ki, JavaScript çıxır bildiriş bir alert () funksiyası var. Bu, çox növ kədərli funksiyası olduğunu həqiqətən, yalnız istifadəçilər annoy üçün çalışır. Bu, həqiqətən, istifadə etməlidir bir deyil adətən, lakin tez və çirkli yol sort bir şey çap qrafik istifadəçi bir brauzer kimi, interfeys. Mən var ki, burada edək bir tək quotes string. Belə çıxır ki, C, JavaScript fərqli olaraq həqiqətən bir istifadə edə bilərsiniz quotes, və səmimi yalnız növü var arasında üslub Konvensiyanın JavaScript proqramçılar vahid quotes istifadə etmək. PHP, onlar həqiqətən az var müxtəlif məna. Amma indi üçün, yalnız bilirik ki, ki, yeganə səbəbi var. JavaScript konqres tez-tez edir vahid quotes istifadə, lakin biz istifadə edə bilər iki həm yerlərdə quotes həmçinin. Belə ki, bu maraqlıdır. Biz ki, son dəfə xatırlayıram Bir ağac çəkdi ki, ekranda şəkil Siz HTML node idi və burada node və bədən node rəhbərlik, və sonra bəzi mətn. Amma bir xüsusi node var idi Mən sənəd deyilir ki, çox üst. Bəli, bu bir, JavaScript çıxır JavaScript bir proqram yazmaq zaman Bir brauzer, siz etmək imkanı var xüsusi qlobal dəyişən. , PHP-nin superglobals ruhu oxşar bu bir adlanır bütün kiçik sənəd. Bu struct kimi, lakin bu struct də bunun içərisində funksiyaları vardır. Belə ki, bir C struct yalnız adətən məlumat var. Amma bu kimi bir JavaScript obyekt texniki, funksiyaları var da başqa üsulları kimi tanınan, Bunun içərisində. Və daxilində bir funksiyası zəng edə bilərsiniz Bu obyekt olduqca sözün onun bunu adı, dot, və sonra adı funksiyası, və ya yenidən metodu. Bu, həqiqətən, yalnız bir sinonimi var. Bu funksiya nə edir? Siz cür onun adı tahmin edə bilərsiniz. ID element alın. Belə ki, bu web page axtarış gedir, üçün axtarır ki, ağac axtarış , AKA element, bir var nə node quote dırnağı bağlamaq adı unikal ID. Və sonra mən nə üçün gedirəm? Mən daxili dəyəri almaq üçün gedirəm olan ağac node, və gedirəm elə ki, adı salam demək. Belə ki, biz etdik, baxmayaraq ki, bir tahmin etmək hələ bu göründüyü kimi, nə artı simvol burada və burada yəqin ki, demək? Auditoriya: Concatenate. DAVID MALAN: Concatenate. Sağ və bu yalnız sort qərarları dizayn insanlar il əvvəl. PHP, siz concatenate nöqtələr ilə şeyi. C, bir neçə hoops vasitəsilə jump və strcopy kimi funksiyaları () və ya zəng strcat () və ya digər funksiyaları. Amma JavaScript, siz müsbət istifadə edin. Belə ki, bu, yalnız concatenating olunur üç strings - hello, bir adı, və sonra ünlem. Belə ki, zaman və nə bu funksiyası olsa adlanır? Yaxşı, bir tahmin etmək Alt HTML. Niyə adlı () salamlayıram, və ya edir? Görünür, ən yaxşı kimi mən, demək bilər Bu formu təqdim edildikdə, təqdim, Mən nə üçün gedirəm Bu quotes daxilində. Və xüsusi, mən zəng etmək üçün gedirəm salamlayıram () və sonra saxta qayıtmaq. Yaxşı, nə xalis görək təsiri burada ilk. Mənə irəli getmək və yazın edək demək, Loren, tarixi, ildə. Loren Hello. Bəlkə bu yalnız idi əgər in nəzər salaq bir uğurlu həyata keçirilməsi. Xeyr. Belə ki, həyata yazaraq var nə Mən, həqiqətən, orada qoymaq ad. Amma dəyişən deyil nə görürsünüz. URL hələ dom-0.html edir. Heç bir register.php var. Ikinci fayl var. Heç bir tədbir atributu var. Belə ki, nə bu qaytarılması yalan ehtimalla bunu? Niyə sonra salamlayıram zəng () və edirəm yəqin ki, yalan qaytarılması? Siz basın zaman nə normal olur Hətta biz bir formada təqdim Ötən həftə görüldü? Auditoriya: [işitilemez]. DAVID MALAN: Bu doğru, haradasa gedir? Bəzi hedef URL gedir. Amma burada baş istəmirəm. Mən web page tamamilə olmaq istəyirəm bir dəfə olduğunuz Gmail kimi dinamik , siz orada qalmaq. URL bir şəkildə dəyişməzsə bütün səhifə yeniden göstərir. Əksinə, mən yalnız bir şey dəyişmək istəyirsinizsə bir şey çap kimi burada ekranda. Yaxşı görüntülərini təmiz bildirin up bir az. Mənə deyil dom-0 açmaq edək, lakin me dom-2 açmaq bildirin. Just belə ki, burada bəzi sintaksis gördüm. Belə çıxır ki, nə biz yalnız xam JavaScript istifadə etməyib. Belə ki, bu həqiqətən dilidir JavaScript. Siz bəzi bilirik bilər jQuery adlı kitabxana. Belə ki, jQuery eyni deyil JavaScript kimi bir şey. Bu həqiqətən ağıllı bir kitabxana var oğlan yazdığı və təbliğ belə indi dünyada demək olar ki, hər kəs JavaScript istifadə edərkən jQuery istifadə edir. Və ilk baxışda, vicdanla, bir az daha sirli görünür. Amma siz getmək xüsusilə, əgər tapa bilərsiniz orada web ilə yekun layihə üçün inkişaf, siz tapa bilərsiniz ki, bu şeyi təmizləyir və olduqca saxlayır kodu bir neçə satır. Belə ki, yalnız nəzər edək necə Bu formu işləyir. Mən yəqin nə aradan qaldırılması idi bildirək mənim HTML? Təqdim handler xeyir var belə danışmaq. Heç bir atributu var. Çünki bilirsiniz ki, nə Mən, həqiqətən, kimi deyil? Biz düşən kimi mən hiss etdim orada köhnə vərdişləri. Bu sloppy hiss etməyə başlayır kimi ilə həm CSS qaynayıb- HTML, siz cür atma edirik, çünki bütün müxtəlif dillər yer, eyni bu hiss başladınız aşağı getmək üçün pis bir yol kimi burada Mən daxili JavaScript kodu qoyulması alıram mənim HTML yerine faktorinq. Belə ki, burada bir dərs var. Dom-2.html, mən faktorinq alıram. Mən bir az şeyi edirəm fərqli. Indi üçün, mən mənim əlləri dalğa gedirəm Bu, həqiqətən, nə də başlıq altında. Amma yalnız indi üçün güman ki, ilk Bu kitabxana kodu line jQuery yalnız deməkdir adlı zaman sənəd aşağıdakı, hazırdır. Web pages edə bilər, çünki yüklemek üçün bir müddət. Siz yavaş internet ola bilər əlaqəsi və bu iplik bilər və iplik, və nəhayət, dolu olacaq. Kodu ki, xətt yalnız qədər gözləyin deyir bütün səhifə, sənəd hazırdır Bu kodu həyata əvvəl, hazırdır. İndi qeyd, bu yəqin ki, ilk ən faydalı üz jQuery almaq. Burada Bu xətt ruhunda çox oxşardır burada bu qədər uzun xətt. Xam JavaScript kodu, orada isə bir sənəd qlobal obyekt var ki, ,) (getElementById adlı funksiyası var yazan insanlar jQuery demək ki, sadələşdirilmiş dollar işarəsi, və sonra daxili parantez sonra iki quotes qoymaq və izlədi bir hash simvolu qoymaq siz qamarlamaq istəyirəm unikal ID. Belə ki, bu bərabərdir document.getElementById. Eyni zamanda,. Yalnız deməkdir təqdim Siz etdiyiniz hər hansı formada təqdim edilməsi sol toxunaraq, getmək qabaqda və bu icra. Amma bu çox artıq maraq var. Haqqında qəribə nə Mən burada qeyd etdik? Yalnız bu cür syntactically edir yeni, itkin bir şey də var. Auditoriya: Bu, yalnız funksiyası adlanır? Bu alert adlı deyil? DAVID MALAN: Bəli. Yaxşı, belə alert () aşağı burada, ədalətli olmalıdır. Amma heç bir qeyd yoxdur Bildiyiniz kimi, adı, foo və ya burada bir şey. Və həqiqətən, bu xüsusiyyətlərindən biridir olduqca ki, JavaScript güclü, həm də olduqca yeni. Və PHP həqiqətən də bu var. Mənə davam və bunu bildirin real sürətli bir şey. Mənə irəli getmək və burada bu qoyaq. Mənə bunu bildirin. Function. ) Üzrə (bu handler zəng edək. A handler funksiyası belə danışmaq. Bəzi əməliyyat emal ki, bir şey. Mənim abzas təmizləmək edək. Və burada bu qoymaq. Və burada qoymaq. Yep. OK. Belə ki, indi mən adlı funksiyası var Mən, həqiqətən, bilmirəm ki, handler () hələ nə. Bu, sadəcə hələ ki, stuff var. Whoops. Çox aldıq. Bunu edək. Bütün hüquqlar. Üzr istəyirik. Bütün hüquqlar. Mənə bunu bildirin. OK. Ki, gözəl və düz görünür İndi irəli. Mənə bunu bildirin. Bunu. Və OK. Belə ki, indi burada bu qoymaq bildirin. Tez No daha proqramlaşdırma. OK. Belə ki, indi-nin geri gedək harada hekayə başladı. Əvvəllər, dedim ki, burada bu xətt sənəd hazır olduqda deməkdir, getmək qabaqda və bunu. Mən nə istəyirəm? Yaxşı xüsusi, mən getmək istəyirəm qabaqda və aşağıdakı. Sonra kodu bu xətt icra və nə mən nə istəyirəm bu zəng edir şəklində təqdim zaman fəaliyyət göstərir. İndi bu maraqlı nə edir. Bu funksiya özü deyil. Mən parantez qoyulması deyiləm edək burada normal şəkildə. Mən sözün adlı funksiyası keçən alıram başqa funksiyası handler () kimi bir arqument kimi () təqdim adlı bir dəyişən kimi olsa. Və bu xüsusiyyətlərindən biridir JavaScript, özləri funksiyaları edir həqiqətən yalnız obyektləri var. Əslində, onlar, həqiqətən, yalnız istəyirik bir növ dəyişənlər. Və funksiyanın adı, əgər handler (), I bilməz heç bir səbəb yoxdur burada bir arqument kimi keçir. Və bu forma zaman deməkdir demo ID ilə təqdim, bu funksiya zəng. Amma indi, bu bütün əvvəlki halına qaytar əgər niyə mən bəlkə nə idi bu bir an əvvəl? Bəli, bu bir anonim funksiyası var. Səmimi çünki mən niyə, mən həyata elan vaxt sərf narahat bir funksiyası adlanır handler () yalnız zəng etmək üçün bir və yalnız bir yerdə bu? Mən adı lazım deyil, və mən əgər daha çox yer zəng etmək lazımdır, yalnız funksiyası həyata bildirin sağ mən lazım. Və JavaScript və PHP dəstək nə anonim funksiyaları deyilir ki, Mənə məhz burada etmək üçün imkan verir. Amma biz yalnız səthi kazıma edirik. Yalnız bir neçə ilə tease bildirin burada final nümunələri. I quote.php getmək varsa. Bu, həqiqətən, PHP olduğunu qeyd yazdığı funksiyası, bir PHP proqram, gözləyir ki, adlı HTTP parametri simvolu və mən keçə bilər FB kimi bir dəyəri. Və biz, həqiqətən, mənbə baxmaq əgər kodu, bu bir pulsuz veb querying edir yalnız p-set kimi, Yahoo Maliyyə adlı yeddi və bu, mənim qaytarılması yəqin nə isə tanınmış format JSON edir - JavaScript Obyekt Notation. Bu, sadəcə bir obyekt var. Qıvrım aşırma edək, quotes, kolon və vergülləri. İndi isə, bu olduqca sərin. Mən yəqin ki, bir proqramlaşdırma istifadə edə bilərsiniz, çünki URL'leri yaratmaq üçün dil ki, dinamik bu kimi baxmaq sağ? Google bu dəyişə bilərsiniz və Google geri almaq $ 1,017.55 səhmlərinin qiyməti. Beləliklə, biz indi bu istifadə edə bilərsiniz əgər in görək. Mənə, burada ajax-0 getmək imkan olan Aşağıdakı kimi görünür. Bu ki, yalnız bir web var bir düyməsinə ilə bir forma. Mənə burada YHOO qabaqda getmək və yazın edək Yahoo fond simvolu üçün alın basın Quote, indi mən kazanılmış etdik bilərsiniz 32,86 ilə bir uyarı. Mənə həqiqətən bir meraklı versiyası gedək Bu səhifə, version iki və Microsoft, MSFT deyək yazın. Quote alın. İndi, heç bir uyarı bildiriş. Həyəcan bu qiymət deyir yerləşir təyin olunacaq? Nümunələri sadə olduğunu nə Gchat göstərişlər və Facebook Chat, və Gmail, və digər bu kimi saytları faktiki edirik web page dəyişir. Bu bildiriş. Mənə səhifəni yenidən bildirin. Mənə Chrome inspektor açmaq bildirin. Mənə elementləri gedək aşağı burada nişanı. İndi aşağı burada zoom əgər bildiriş və Bu qədər açıq, bu olduğunu qeyd mənim HTML DOM - mənim sənəd object model. Bu, mənim HTML edir. Amma indi gedir, baxmayaraq ki, qeyd həm də onu görmək üçün bir az çətin olacaq bir dəfə yerlərdə, mən FB yazın əgər burada, alt izləmək ekran yalnız. Bu, həqiqətən, dəyişən Tez mənim HTML. Və sadəcə bunu edir bu kimi bir şey etməklə. I ajax-2 açmaq varsa, bildiriş həyata kimi sexy bir şey , bu, olduqca çirkin, baxmayaraq ki, lakin kimi inkişaf etmiş funksional, bəzi var Alt HTML. Amma tag üçün istifadə bildiriş. Biz əvvəl bu istifadə etdik, lakin bu kimi bir, lakin onu məcbur etmir yeni xətt üzərində hər şey. Bu, sadəcə bir düzbucaqlı bölgəsi edir eyni xətt üzrə mahiyyətcə. Mən qiymət ID verdi ki, görürsünüz. Və eyni istifadə edərək çıxır JavaScript kitabxana, mən bir funksiyası var adlı quote () ki, zaman deyirlər şəklində təqdim edilir. Və nə edirəm bu. Mən JavaScript dəyişən elan edirəm dəyəri qənaət url adlı quote.php? simvolu =. Başqa sözlə, mən başlıyorum sonra bir HTTP sorğu hazırlamaq və Mən bir plus ilə üzərində concatenating alıram şəxsiyyət ilə nə element rəmzi ki, hansı xəbərdarlıq edir mətn sahəsində sağ aşağı burada. Belə ki, yalnız biz keçmişdə formaları idi istəyirəm. Siz əgər, sonra bu, jQuery çıxır zəng. bir val üzvü çağırır ki, val () funksiyası, bir dəyər funksiyası, olur ki istifadəçi daxil yazdığınız edib nə Və sonra şəbəkə trafik bütün bu olur. $. GetJSON. Və bir kənara kimi, dollar əlamətidir yalnız stenoqrafiya notation. Bu, həqiqətən jQuery.getJSON var. Bu URL JSON mənə almaq və zaman sorğu geri gəlir, bu zəng funksiyası arqument kimi keçmək nə server geri gəldi. , Başqa sözlə mən geri getmək əgər browser və mən quote.php geri, nə mənim browser edir əldə edir məlumatların bu yığın. Mən burada bu web page getmək zaman, biz əvəzinə şəbəkə getmək əgər bildiriş nişanı və onu təmizləmək, sonra yazın Google GOOG kimi bir şey və alın Quote, səhifə dəyişməyib fark. Amma bir HTTP sorğu, və nə oldu Biz baxsaq burada geri gəldi cavab JSON bütün dəstə edir biz nəhayət əldə ki, burada bu sadə line. Data kazanılmış nə edir server. Qiymət adı Mən qayğı əsas. Belə ki, data.price mənə verir. İndi isə, bu son nümunəsidir. Siz səhifə ilə hələ daha çox edə bilərsiniz. Bir həqiqətən, iki. Biz geri gətirə bilər siz bu yadda əgər, tag. Bu JavaScript var. Biz bunu edə bilər. Çox maraqlı. Biz cliffhanger kimi tərk edəcəyik. Amma daha excitingly, siz bu kimi şeylər. I geolocation-1 getmək varsa, bu çıxır Chrome biz var bilir ki, enlem boylam 42.37. -71,10. Belə ki, daha çox var var sizin ixtiyarınızdadır. Amma ki, növbəti həftə daha çox. Bazar ertəsi baxın.