>> 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.