[ნაწილი 9 - ნაკლებად კომფორტული] [Nate Hardison - ჰარვარდის უნივერსიტეტის] [ეს არის CS50. - CS50.TV] ყველა უფლება. ასე რომ, ბოლო მონაკვეთზე სემესტრში. უნდა დაიწყოს, მე ვიცი, რომ გარკვეული ტირის დაკავდით Ajax, მაგრამ არსებობს სხვა რაიმე თემა, რომ ჩვენ უნდა აკეთებს პირველი? ნება მომეცით გადართოთ მეტი iPad ისე, რომ ჩვენ - ნება მომეცით გამოიყენოთ შავი ნაცვლად ფორთოხალი. Ajax არის მენიუში. ნებისმიერი სხვა? ნებისმიერი სხვა თემა რომ ხალხს ვხედავ? მე მოვისმინე DOM ძალიან ადრე. [სტუდენტი] jQuery. JQuery. Okay. jQuery. ჩვენ შეგვიძლია stab at, რომ ძალიან. [სტუდენტი] XML. XML. [სტუდენტი] JSON. XML, JSON. Okay. PHP? ყველა კარგი? C? ყველა კარგი? [სტუდენტი] ეს არ ავნებს ვისაუბროთ PHP. Hash მაგიდები? ლელო? უკავშირდება სიები? [სტუდენტი] Oh, on ვიქტორინა გასულ წელს, არსებობს მაგიდა omega და დიდი O. ჰო. [სტუდენტი] იმ დროს, სხვადასხვა სახის ვერსიები და ილუზიები. შეგვიძლია ვისაუბროთ, რომ? Yeah. ჩვენ ვსაუბრობთ ცოტა მონაცემების სტრუქტურებში. [სტუდენტი] Yeah. [სტუდენტი] ცდილობს. [Hardison] Data სტრუქტურებში. ჩვენ ვსაუბრობთ რამდენიმე ლელო დარწმუნებული ვარ. [სტუდენტი] უნდა გვქონდეს CSS ცოტა? Yeah, ჩვენ შეგვიძლია გავაკეთოთ პატარა CSS. ნებისმიერი სხვა თემა? Sam? [სტუდენტი] Scope PHP. [Hardison] Scope. Scope PHP. [სტუდენტი] HTTP. HTTP. გასაოცარია. ვფიქრობ ერთი გზა ამის გაკეთება იქნება ორგანიზება ყველაფერს სახის ქრონოლოგიურად და იწყება მონაცემთა სტრუქტურები, რადგან ეს იყო პირველი. ან შეგვიძლია მივანიჭოთ ეს გარკვეული პრიორიტეტი წონის და წავიდეთ იქ. ასე რომ რას ბიჭებს ფიქრობთ? არის რაღაც, რომ ყველა კვდება ვხედავ? მოდით რეიზი ხელში. როგორ შესახებ Ajax? რამდენი თქვენგანი ბიჭები გვინდა ვიცოდეთ Ajax? რამდენი თქვენ, როგორიცაა, "Man, Ajax, მაქვს თქვენ"? არავინ. ყველა უფლება. ასე რომ, Ajax არის საკმაოდ მაღალი. მოდით ვარსკვლავი, რომ ბიჭი. როგორ შესახებ DOM? ყველას მზად როკ DOM? არა? Okay. ჩვენ ვარსკვლავს რომ ერთი ძალიან. jQuery? Queryless. დიახ. Okay. რამდენიმე ადამიანი jQuery, მაგრამ მაინც ადამიანები არიან უფრო chill რომ. Okay. XML? XML. [სტუდენტი] თქვენ სარგებლობთ რომ მეტი კონტექსტში Ajax? იმ გაგებით, რომ - დიახ. ვგულისხმობ, ეს არის ძირითად კომპონენტს Ajax, ამიტომ ვფიქრობ, ჩვენ შეგვიძლია bundle რომ Ajax, სტატისტიკა შესახებ მთელი რამ არსებობს. JSON? რა არის JSON? Okay, გაგრილებას. მონაცემთა სტრუქტურები? ხალხი შეგრძნება საკმაოდ კარგი არსებობს? თქვენ იცით თქვენი უკავშირდება სიები, იცით თქვენი hash მაგიდები? როგორ მოხდა Speller წავიდეთ ყველას? ეს იყო doozy, huh? ჰო. Okay. ჰო, შეიძლება ვისაუბროთ ცოტა იმ მაგრამ ერთხელ, არ არის ისეთი მნიშვნელოვანი. CSS? რაც თქვენს საიტებზე გამოიყურება საკმაოდ. Okay. Scope in PHP? ერთი დიდი მხრივ იქ. ორი დიდი ხელები, სამი. Okay. იქნებ საშუალო მხრივ. [სტუდენტი] მეტი 2. ჰო. Sam წინასაარჩევნო კამპანიას. მიიღოთ თქვენი ხელები up. HTTP? Okay. მოდით ვნახოთ. ეს გამოიყურება ნამდვილად მოსწონს Ajax და DOM არის up for grabs. ასე რომ დავიწყოთ, რომ. მე ვფიქრობ, ჩვენ გვაქვს რამდენიმე ვარიანტი აქ. ერთი არის ის, რომ სახის გავაკეთოთ recap რა Ajax და XML რადგან ჩვენ ნამდვილად არ გვაქვს დრო, რომ გავაკეთოთ, რომ განყოფილებაში ან პრობლემა ადგენს. მეორე ის არის, რომ ჩაყვინთვის შევიდა გარკვეული პრობლემები წინა წლების ტესტებში და ვნახოთ, რა ხდება იქ. ნებისმიერი უპირატესობა შორის 2? [სტუდენტი] ვფიქრობ კონკრეტული მაგალითები იქნება უფრო სასარგებლო. კონკრეტული მაგალითები უფრო გამოსადეგი? ყველა უფლება. ნებისმიერი პირობა, კერძოდ, იმ თქვენ Ajax ეკიპაჟის? არანაირი პრობლემა გსურთ შევხედოთ? [სტუდენტი] არის ღონისძიება დამმუშავებლის დაკავშირებული Ajax ყველა? ვფიქრობ that's - JavaScript ღონისძიება ელფოსტის აუცილებელი არ ეხება Ajax. მათ შეუძლიათ. [სტუდენტი] ჰო, კიდევ ერთი კონცეფცია, რომელიც მე არ რეალურად მიიღონ. Okay. [სტუდენტი] მაგრამ, ვფიქრობ, ვიქტორინაში წარსულში წელს არის 1 დიდი პრობლემა მოგვიანებით ნაწილების ვიქტორინა, რომელიც დაკავშირებული Ajax და სინტაქსი, რომ მე ნამდვილად არ - ყველა უფლება. და ელა? [სტუდენტი] მე ვგრძნობ, რომ მე ვიცი, რა Ajax არის, მაგრამ მე არ ვიცი, როგორ გამოიყენოს იგი. Okay. [სტუდენტი] ვგრძნობ რომ მე არ ვიცი, რა Ajax არის ან როგორ გამოიყენოს იგი. [სიცილის] Okay. რომელიც მუშაობს კარგად. ვნახოთ. მოდით იქნებ შევხედოთ კარგი მაგალითია Ajax პირველი. მოგესალმებით, მივესალმები. იმედი მაქვს, რომ თქვენ okay კამერა. თუ არა, თქვენ შეგიძლიათ გათიშეთ out უკან. კარგი მაგალითი Ajax. ნება მომეცით გადართოთ მეტი ჩემი ლეპტოპი. აქ ჩვენ ვიმყოფებით Google.com. რამდენი თქვენგანი ბიჭები ოდესმე ითამაშა fun "როგორ შევიდე?" თამაში Google? როგორ შემიძლია - და თქვენ მიიღებთ ყველა fun რამ ამუშავება - დააყენა ეს მუსიკა ჩემს Tumblr? და შეგიძლიათ შეინახოთ აპირებს და ყველა ამ სახის fun stuff. რა ხდება აქ? როგორც თქვენ ჩაწერეთ Google შეკითხვაზე ყუთი, რეალურ დროში შედეგების განახლება. ასე, რომ ეს - და თქვენ შეამჩნევთ, რომ ყველა შედეგების დაიწყოს განახლების შესახებ Google ვებ გვერდზე. ეს არ არის რაღაც, რაც ხდება თქვენს კომპიუტერში. ქსელში ჩართული ამ. Google არის ჩართული ამ. გამოდის, რომ ყოველ დროს, თქვენ დააჭირეთ გასაღები, როგორც ამბობენ, G ან L, და ძიების შედეგების განახლება, თუ რა ხდება არსებობს გარკვეული JavaScript გვერდზე რომ გამოვლენის, რომ თქვენ დაპრესილი გასაღები, და ეს მიღების ქსელის თხოვნით Google.com ჩატვირთვა up ყველა უახლესი შედეგები რომელიც საუკეთესო ჯდება შეკითხვაზე, რომ თქვენ აკრეფილი ჯერჯერობით. სამწუხაროდ, მე ვფიქრობ, რომ თუ ჩვენ უნდა შევხედოთ ამ - მე ვაპირებ შევხედოთ წყარო - ყველაზე მეტად ამ Ajax და JavaScript კოდი აქ ყველაფერი minified და ხშირად scrambled ცოტა ძალიან. Minification სიტყვასიტყვით არის პროგრამა, შეგიძლიათ აწარმოებს თქვენი JavaScript კოდი მეშვეობით და ეს ცვლის ყველა თქვენი ცვლადი სახელები და ხდის მთლიანად unreadable მაგრამ ცდილობს, რომ თქვენი JavaScript როგორც მოკლე, რაც შეიძლება ასე რომ, როდესაც თქვენ თქვენი JavaScript ფაილები მეტი ქსელის თქვენ არ მქონე ჩატვირთვა ან გააგზავნოთ დიდი ფაილი. ასე რომ, ამ პერსონალის არის საკმაოდ რთული წასაკითხი, მაგრამ დაკრძალეს აქ, რა უფლებამოსილება ამ typeahead - buzzword ამ - არის Ajax მოითხოვს. რით Ajax მოთხოვნა განსხვავდება ნებისმიერი სხვა სახის ქსელის მოთხოვნა? Sam? [სტუდენტი] თქვენ არ შეცვლის URL. [Hardison] მარჯვენა. ზუსტად. თქვენ შეამჩნევთ, როგორც მე აკრიფოთ "როგორ შემიძლია შევიტანო jawbone in pairing რეჟიმში?" [Chuckles] ყოველთვის არსებობს გარკვეული fun - Yeah. თქვენ შეამჩნევთ, რომ ამ URL აქ ზედა არ იცვლება, და მთელი გვერდი არ არის განაახლოს. ასე რომ, თუ დავაკვირდებით ამ სახის პერსონალის უფლება აქ, ამ ბარი ზედა, ეს Google, და მაშინ შავი ბარი აქ, რომელიც ხშირად უწოდებენ chrome ვებ გვერდზე, რომ არ იცვლება. მთელი გვერდი არ არის განაახლოს. Ajax მოთხოვნის გამოიყენება ამოცნობა მხოლოდ შედეგების გვერდი, უბრალოდ, 1 პატარა ნაწილი გვერდზე ისე თქვენ არ მქონე წასვლა სრულიად განსხვავებული URL, სრულიად სხვა ფაილი, და ჩატვირთოს, რომ მეხსიერებაში. ასე რომ, როდესაც გესმით ხალხი ვსაუბრობთ დინამიური Web 2.0 ტიპის რევოლუცია, ეს იყო უკან ბევრი მას. ეს არის ის, რაც საშუალებას გაძლევთ დაწეროთ კედელზე ჩანაწერი ფეისბუქზე, მოხვდა Post, და პოსტ გამოჩნდება გარეშე მთელი Facebook გვერდი გამაგრილებელი ან გადახვევა მეშვეობით bunch of ფოტო და ჩატვირთვა photos დინამიურად, რადგან, თუ რამდენად იქნება ეს ლევან გაჩეჩილაძე თუ წავიდა თქვენი Facebook გვერდი, დაწკაპავთ ფოტოები, და შემდეგ იძულებული გახდა იჯდეს იქ და დაველოდოთ ხოლო ყველა რამდენიმე ათასი თქვენი Facebook photos დატვირთული მეხსიერებაში? რომ უზარმაზარი დატვირთვა. მაგრამ Ajax შეგიძლიათ გააკეთოთ, რომ asynchronously, და ეს ასინქრონული ნაწილი Ajax. ყველა უფლება. ჩვენ კარგი? ამჯამად ყველას სახის მესმის დაახლოებით რა Ajax აკეთებს? ეს კეთდება მიერ JavaScript, ეს კეთდება სახის დინამიურად asynchronously შემდეგ გვერდზე არის დატვირთული. ხშირად მოდის შემდეგ, როგორც ერთგვარი პასუხი ღონისძიება, რომელიც არის ან მაუსის დაწკაპუნებით ან კლავიშების ან რამე მაგდაგვარს. და მაშინ იგი იღებს გადმორეკეს სერვერზე, თუ თქვენ Google.com ან Facebook.com, retrieves რამდენიმე ახალი შინაარსი მაშინ არიან ან განახლება ან რამე მსგავსი. Cool. ყველა უფლება. მოდით შევხედოთ რამდენიმე მაგალითები წინა წლებში. ჩვენ წასვლა ტესტებში. და შემდეგ Charlotte, თქვენ მოხსენიების Quiz 1 2011 წლიდან. [სტუდენტი] Yeah. ერთი რამ მინდა სიფრთხილით არის, რომ შევხედავთ წინა წლების ტესტებში თქვენ ნახავთ ამ პერსონალის მოუწოდა XHR ხშირად ურთიერთობისათვის Ajax. XHR და XML HttpRequest სახის ნედლეული გზა აკეთებს Ajax, თუ გნებავთ. ამ წელს ჩვენ გადავიდა თითქმის მთლიანად გამოყენებით ამ jQuery ბიბლიოთეკა. jQuery არის ბიბლიოთეკაში დამხმარე JavaScript ფუნქციები და კლასები და ყველა სახის goodies, და jQuery სახის აბსტრაგირებას ნედლეული XHR პერსონალის დაშორებით თქვენ ასე, რომ ეს ბევრი ადვილია ამის გაკეთება ფაქტობრივი Ajax პერსონალი. ასე რომ, როგორც თქვენ სენსორული მეშვეობით ეს წინა წლების ტესტებში და თქვენ ხედავს პერსონალი, რომელიც ამბობს, XHR და ახალი XML HttpRequest, ყველა რომ მსგავსი საქმიანობები, შეგიძლიათ იგნორირება, რომ. იმის ნაცვლად, რომ ჩვენ ვაპირებთ მხოლოდ jQuery გზა. ჩვენ არ ველით, რომ თქვენ იცით, XML HttpRequest. მაგრამ კარგი იცოდეს, რომ ეს არის სინონიმი ამ იდეას Ajax, ამ ასინქრონული JavaScript მიღება XML ან JSON ან რასაც მეტი ქსელში. მაგრამ თავდაპირველად, იგი კორელირებს XML ან უკავშირდება XML. ყველა უფლება. მოდით გადახვევა down. გახსოვს, რომელიც პრობლემას, კერძოდ, Charlotte? იყო თუ არა ამ გვერდზე, რომ მე ეძებს უფლება აქ? [სტუდენტი] ჰო, მე ვფიქრობ, რომ ასეა. [Hardison] Ah, მე მივიღე ეს. Okay. ჰო. მოდით ვისაუბროთ ამ მართლაც სწრაფად. გზა Ajax სამუშაოების თქვენ მოხვდით გარკვეული JavaScript ფაილის თქვენს კომპიუტერში, და მართლაც ის გაშვებული სახის კონტექსტში თქვენს ბრაუზერში. ასე რომ, თუ თქვენი საბოლოო პროექტი გააკეთოს - არ ვიცი - ახალი dating site ჰარვარდის ადამიანი და გსურთ თქვენი dating site აქვს უნარი გააგზავნოთ ანონიმური შეტყობინებები საწყისი პირი პირი ან ანონიმური Facebook კედლის მსგავსი შეტყობინება და თქვენ გინდათ გამოიყენოთ Ajax, რომ რატომღაც ასე რომ, როდესაც თქვენ შეგიძლიათ გაგზავნა ეს არ ამოცნობა მთელი საიტი, თქვენი JavaScript კოდი, რომ თქვენ შეიქმნა ახალი Ajax ზარი. მე იხილავს თუ არა ამის გაკეთება on ლეპტოპი. მნიშვნელოვანი ნაწილი შესახებ Ajax მოწოდება არის, რომ ამ სახის asynchronicity მას იმ გაგებით, რომ - ნება მომეცით გადართოთ თავში ჩემი iPad - იმ გაგებით, რომ თუ მაქვს კოდი, რომელიც აპირებს ამბობენ დაკავდით Ajax, მაშინ მე არ შემიძლია ძალიან შემდეგი ხაზი ჩემს JavaScript კოდი ველით, რომ Ajax იქნება დასრულებული. რა ხდება არის ის, რომ როგორც თქვენი კოდი ეშვება თანამიმდევრულად in JavaScript, როდესაც თქვენ ამ Ajax ზარი, თქვენ არსებითად forking off და გაგზავნის თხოვნით out ინტერნეტი ზოგიერთ სერვერზე მეტი აქ, რომელიც ამ ყუთში მე ხატვის და აშკარად არ ნახატი ძალიან კარგად. თქვენ forking off ამ ზარის სერვერზე რომ აპირებს გარკვეული დრო რადგან ის მიდის off ინტერნეტი და მიდის და ჰიტები, რომ სერვერზე და მიდის და მოუწოდებს, რომ PHP სკრიპტი, რომელიც თქვენ წერილობითი უკან ბოლომდე რეალურად ჩაწერა, რომ ანონიმური გაგზავნა თქვენს მონაცემთა ბაზაში ან რამე მაგდაგვარს. ასე რომ, გარკვეული დრო დასჭირდება, და მაშინ საბოლოოდ, როდესაც სერვერზე ხდება დამუშავება თქვენი Ajax მოთხოვნით, იგი დაბრუნდება თქვენი JavaScript კოდი, მაგრამ თქვენ ნამდვილად არ ვიცი, სად, როდის აღსრულების თქვენ აპირებს მიიღოს ამ საპასუხოდ. როგორ არის ამ სიფრთხილით JavaScript? ეს არის სადაც საქმე ამ პრობლემას, რომ ჩვენ ვსაუბრობთ on ლეპტოპი სადაც თქვენ რეგისტრირდებით დამმუშავებლის, თქვენ რეგისტრირდებით კონკრეტული JavaScript ფუნქცია აწარმოებს როდესაც Ajax მოთხოვნით დასრულდა. თქვენ არ შეგიძლიათ უბრალოდ გააკეთეთ თქვენი Ajax ზარი და შემდეგ მომდევნო ხაზი კოდი ვივარაუდოთ, რომ Ajax დარეკეთ დასრულდა. ნაწილი სილამაზის ეს გსურთ თქვენი სკრიპტი გაგრძელდება გასაშვებად შემდეგ ის გააკეთა Ajax დარეკეთ რადგან ეს შეიძლება ჩანგლის off ამ ცალკეული მოთხოვნით შენარჩუნებას და დამუშავების სხვა რამ. თქვენ მოხვდით ამ სახის concurrency აპირებს აქ, სადაც თქვენი JavaScript აგრძელებს აწარმოებს და აკეთეთ სხვა სახალისო რამ, შეიძლება კვლავაც დაიძაბება სხვა Ajax მოითხოვს. თქვენი Ajax მოითხოვს უბრალოდ გარეთ ქსელის და შემდეგ უკან დაბრუნდნენ, როდესაც ისინი დავბრუნდებით, მაგრამ, როდესაც თქვენ რეგისტრირდებით ამ კურატორმა ფუნქცია, ეს მაშინ, როდესაც თქვენ იცით, რომ თქვენი Ajax დარეკეთ დაბრუნდა, რადგან ეს ფუნქცია იღებს მოუწოდა. ასე რომ ნაცვლად, რომელმაც ამ თანმიმდევრული შესრულების გზა, რომელიც ჩვენ გამოიყენება C, თქვენ რა უფრო მსგავსია იმისა, რაც ჩვენ ვნახეთ Scratch დასაწყისში სემესტრის სადაც თქვენ გაქვთ ეს მაუწყებლობა და მაშინ თქვენ ამ "როდესაც მწვანე დროშა დააწკაპებთ" ან "როდესაც მე მიიღოს ამ ღონისძიებაში." რომ არსებითად, რა ხდება აქ JavaScript ამ Ajax მოითხოვს. იყიდება ამ კითხვაზე პასუხი on line 20, "კონტექსტში Ajax, რას ხაზი კოდი გავაკეთოთ?" შეიძლება ვინმეს სახის დავესესხებით, რაც მე უბრალოდ განაცხადა ადასტურებენ გაგება? [სტუდენტი] მე ბოდიში. რას მარცხენა ნახევარში ამბობენ? [Hardison] xhr.onreadystatechange. უკაცრავად. მე არც შეწყვიტა? ეს არის ის, რომ XHR სინტაქსი, რომ ჩვენ არ უნდა გაუმკლავდეთ. თქვენ გაქვთ მსგავსი კონცეფცია ერთად jQuery. მოდით წავიდეთ კოდის, ოთხშაბათი, ინდექსი. მოდით შევხედოთ ამ მდე. ყველა უფლება. მივიღე ეს. აქ არის ის, რომ Ajax სინტაქსი, რომ ჩვენ ვსაუბრობთ. აქ თქვენ სასურველი Ajax მოთხოვნით. თქვენ განაცხადა, "ეს არის URL მინდა გარეთ და ping". "მინდა POST ნაცვლად GET". და მაშინ მონაცემები ტიპის "მინდა JSON უნდა დაუბრუნდეს." ერთხელ, XML იყო ერთგვარი ტრადიციული რამ. მაგრამ რაც ჩვენ ვეძებთ არის, რომ ფუნქცია. ეს არის ის, რომ სწორედ აქ. ეს ფუნქცია (პასუხი) არის ის, რომ onreadystatechange. ეს არის კურატორმა. ეს არის ის გაეშვება, როდესაც ეს მოთხოვნა ბრუნდება. ასე რომ, თქვენ შეამჩნევთ, რომ ეს ფუნქცია, რომ ტომი არ გაუკეთებია უფლება აქ რომ ჩვენ ვისაუბრეთ ლექციების ოთხშაბათს იყო ყველაფერი ქმნის, რომ fun typeahead ჩვენთვის. თქვენ შეამჩნევთ, რომ რასაც ის აკეთებს არის ის მშენებლობის Ajax მოთხოვნა და შემდეგ იქ არაფერი შემდეგ Ajax მოთხოვნით. ის არ დამუშავების პასუხი Ajax მოთხოვნის შემდეგ ზარის მზადდება. ის მხოლოდ ვაკეთებთ ამ კურატორმა ფუნქცია რომ დაერქმევა, როგორც კი პასუხი არ მოდის უკან. Sam. [სტუდენტი] Do Ajax მოთხოვნები უნდა იყოს type POST ან შეიძლება იყოს მისაღებად? ისინი შეიძლება იყოს. [სტუდენტი] როგორ უნდა, რომ მუშაობა თუ თქვენ არ შეცვლის URL? როგორ იქნებოდა, რომ იმ შემთხვევაში, თუ თქვენ არ შეცვლის URL? უბრალოდ დამოკიდებულია სადაც მონაცემები აპირებს. ასე რომ, კითხვა შეიძლება Ajax მოთხოვნები იქნება POST ან GET? რომ სადაც ეს შეიძლება იყოს. უბრალოდ ნამდვილად სემანტიკური განსხვავება POST და GET. GET, როგორც წესი, იმას ნიშნავს, რომ თქვენ მხოლოდ კითხულობს რაღაც სერვერზე და თქვენ არ შეცვლის არაფერს, ხოლო POST როგორც წესი, გულისხმობს რომ თქვენ წერილობით მონაცემები ან თქვენ წერილობით რაღაც სერვერზე. ხშირად გამოიყენებთ POST როდესაც თქვენ ცდილობს შეცვალოს სახელმწიფო სადღაც. სწორედ ამიტომ შემოსვლა ყოველთვის წავიდეთ ერთად HTTP POST, ხოლო Google აკეთებს bunch of GET მოითხოვს. რეალურად, თუ ჩვენ დავუბრუნდებით ჩვენი Google მაგალითი და, თუ დავაკვირდებით ჩვენი დეველოპერი ინსტრუმენტები აქ, მოდით შევხედოთ დეველოპერი იარაღები აქ ბოლოში და ქმნის ქსელში. როგორც ჩვენ ვიწყებთ აკრეფით, შეგიძლიათ ნახოთ ყველა ამ GET ითხოვს უერთდებიან ხედავთ ყველა ამ GET ითხოვს აქ ბოლოში ეკრანზე რომ ყველა ამ xjs. ეს არის Ajax მოთხოვნა ბრუნდებოდა. და თუ ჩვენ დააწკაპუნეთ მასზე, ჩვენ ვხედავთ, თუ რას ამბობდა და როგორია მისი პასუხი. ეს გვაძლევს ყველა ამ ინფორმაციას პასუხი რომ მივიღეთ როდესაც ჩვენ გაგზავნილი Google სათაურებში, რომლებიც ქვემოთ აქ. მოდით ვნახოთ, თუ მას აქვს - ეს იქნება ჩვენი შეკითხვაზე string სადღაც. წინადადებების URL. ჰო. Original შეკითხვაზე, იგნორირება ცუდი შეკითხვაზე, მეორე უღელტეხილზე, როგორ მე მეტრზე - ყოველ შემთხვევაში, სადღაც აქ ნახავთ ამ "როგორ მე მეტრზე შეკითხვის" ამ მოთხოვნის სერვერზე. და მაშინ პასუხი ბრუნდებოდა არის ის, რასაც ჩვენ ვხედავთ. ასე რომ, დიახ, ეს შეიძლება იყოს GET, ან POST. ეს tends უნდა იყოს მხოლოდ სემანტიკური განსხვავება. ჩვენ შეგვიძლია მოიცავს, რომ HTTP. დიახ, ელა? [სტუდენტი] განსხვავებაა JSON და XML მხოლოდ, რომ JSON უფრო თანამედროვე? არის განსხვავება JSON და XML, რომ JSON უფრო თანამედროვე? XML და JSON არის მხოლოდ 2 სხვადასხვა გზები კოდირების მონაცემები. XML არის გააფართოვოთ Markup Language. HTML არის subset XML. ასე მაგალითად, მოდით დახევის up TextEdit. XML მხოლოდ განისაზღვრება, როგორც მონაცემები, რომელიც ერთვის სერია tags. ასე რომ, html, / html, ეს ბიჭები ძალაშია tags. მოდით აფეთქება ეს ზომა აქ და ეს უფრო იკითხება. hello! XML მხოლოდ განსაზღვრავს tag როგორც რაღაც მსგავსი სადაც თქვენ გაქვთ ღია კუთხე bracket, სახელი tag, და მაშინ ნებისმიერი რაოდენობის ატრიბუტები, რომელიც HTML ჩვენ ხშირად არ აქვს ატრიბუტები. მაგრამ მაგალითად, თუ ჩვენ გვქონდა სცენარი აქვს, ხშირად მას აქვს ტიპის ტექსტი, JavaScript. და შიგნით tags არის მონაცემები. ჭეშმარიტი XML შეგიძლიათ რეალურად განსაზღვრავს ამ tags იყოს რაც გაგიხარდებათ. უბრალოდ გზა სტრუქტურირებას თქვენს ინფორმაციას. ასე მაგალითად, თუ მინდოდა encode ჩემი ოჯახი XML, მე ვერ გავაკეთებ რაღაც მსგავსი, როგორიც მამა და შემდეგ მის შესახებ ინფორმაცია და ძმა და ამით ინფორმაცია ჩემი ძმა. მხოლოდ ამ გზით სტრუქტურირებას თქვენი მონაცემების XML. JSON, მეორეს მხრივ, შემდეგნაირად JavaScript Object Notation, აქედან გამომდინარე, J-S-O-N, JSON. ასე რომ, ვიდრე წერილობით ამ სახის tag, ჭდის ტიპის ფორმატი, ჩვენ ნაცვლად წერენ, როგორც JavaScript ობიექტი. ასე რომ, JavaScript ობიექტს აქვს Curly გაუწიოს გახსნა რამ და შემდეგ Curly გაუწიოს დახურვა რამ. ნება მომეცით დააშორებს ცოტა, zoom სისტემაში და მერე რა თქვენ არ ხართ სახელები სფეროებში, ასე რომ, "მამა" და მერე შეეძლო მის შესახებ ინფორმაცია და შემდეგ "ძმა" და ინფორმაციას ჩემს ძმას. და რა თქმა უნდა, ყველაფერი აქ არის - ვფიქრობ, თუ რა არის ლამაზი შესახებ JSON როგორც ეწინააღმდეგებოდა XML იმიტომ, რომ JSON ობიექტი ამ ობიექტის notation რომ JavaScript აქვს. JavaScript ნამდვილად ადვილად გაიყვანოს, რომ მეხსიერებაში და მკურნალობა, ისევე როგორც JavaScript ობიექტი უფლება, როდესაც თქვენ მიიღებთ უკან სერვერზე. არ არსებობს parsing, რომ ეს ნამდვილად უნდა გავაკეთოთ, რომ მძიმე მოვალეობა ან მძიმე მოხსნას, ხოლო ერთად XML თქვენ უნდა გამოიყენოთ plugins ან გარკვეული - დამოკიდებულია რა ზუსტად თქვენ გადამცემი და რა თქვენ იყენებთ მიიღოს XML, თქვენ შეიძლება უნდა გავაკეთოთ ცოტა მეტი მუშაობა parsing, ხოლო ამ JavaScript პერსონალის, თუ თქვენ მხოლოდ წერილობით JavaScript და თქვენ მიღების JavaScript უკან, ეს მართლაც ადვილია მუშაობა. სხვა საქმეა, რომ ადამიანი იქნება აღინიშნოს, ზოგჯერ ის არის, რომ XML თქვენ გაქვთ ყველა ამ ღია tags და ახლო tags, ასე რომ, მას შეუძლია მიიღოს დიდი, მას შეუძლია მიიღოს პატარა bloated. ასე რომ, არსებობს, რომლებიც ისაუბრებენ, თუ როგორ დავუკავშირდეთ JSON თქვენ არ გაქვთ ყველა ამ ღია tags და ახლო tags, ამიტომ უფრო შეკუმშული. მიზეზი, რომ მნიშვნელოვანია, რომ როდესაც თქვენ უნდა გადაწეროთ რამ მეტი ქსელის როდესაც თქვენ საუბარი სერვერზე, ნაკლებად, რომ უნდა გადაეცეს ინტერნეტით, სწრაფად ყველაფერი. ყოველ შემთხვევაში, გასაღები takeaway აქ ისინი მხოლოდ 2 სხვადასხვა გზები სტრუქტურირებას თქვენი მონაცემები, ფორმატირება თქვენი მონაცემები. ყველა უფლება. გაქვთ სხვა კითხვები? Charlotte? [სტუდენტი] შემიძლია ვთხოვო 1 ბოლო შეკითხვა სინტაქსი Ajax? რა თქმა უნდა. [სტუდენტი] თუ თქვენ დავუბრუნდეთ მაგალითს კოდი და მხოლოდ დააშორებს ცოტა, არსებობს მხოლოდ 1 ხაზი კოდი ზემოთ. შეგვიძლია უბრალოდ up? ი ("keyup ', function () ის არის, რომ ნაკრები ცარიელი შემდეგ ფრჩხილებში on ("keyup" გულისხმობდა ფუნქცია შემდეგ წარმატება? [Hardison] ჯგუფი რამდენიმე რამ აქ. ი ("keyup" ეს არის გზა აკეთებს ექვივალენტი Scratch როცა გასაღები არის დაპრესილი და მოხსნას off გასაღები. სინამდვილეში, JavaScript გაქვთ ("keydown", შესახებ ("keyup", და ("keypress ', და შეგიძლიათ გააკეთოთ რამ თითოეულ იმ 3 სხვადასხვა მოვლენები. ეს არის რეგისტრაციის ღონისძიება დამმუშავებლის ნებისმიერ დროს ძირითადი მოდის up, და შემდეგ ეს ფუნქცია ამ მთელი რამ ყველა გზა ქვემოთ არსებობს. ეს ფუნქცია არ აქვს სახელი. სახის უცნაური. ყველა ჩვენი ფუნქცია ჩვენ გავაკეთეთ C და PHP არ გვქონდა სახელები. ეს არის ის, რაც ჩვენ მოვუწოდებთ ანონიმური ფუნქცია. აზრი, არა? No name. Anonymous. რა არის მოსახერხებელი შესახებ ანონიმური ფუნქცია? ცხადია, ჩვენ ვერ ვუწოდებ ამ ფუნქციის სადმე სხვაგან ჩვენი კოდი. როგორ ჩვენ მოვუწოდებთ ამ ფუნქციის სხვაგან ჩვენი კოდი? ჩვენ არ შეგვიძლია. იქ არ არის სახელი. მე არ შემიძლია ვთქვა, "Oh yeah, მოვუწოდებთ, რომ ფუნქცია, რომ მე განაცხადა on (" keyup ". რა არის მოსახერხებელი ამის შესახებ, თუმცა ის არის, რომ JavaScript როდესაც ჩვენ მუდმივად რეგისტრაციის ამ ღონისძიების ელფოსტის - ის, რაც ამ ეწოდება, თქვენ რეგისტრაციისას ამ ფუნქციას, როგორც კურატორმა, როდესაც გასაღები მოდის - არის ეს მართლაც ლამაზი შეძლებს მხოლოდ განსაზღვრავს ამ ფუნქციების სახის inline და უბრალოდ, ვამბობთ, "როდესაც keyup დაპრესილი, გახსოვდეთ ეს ფუნქცია, რომ მე ვაპირებ განსაზღვრავს სწორედ აქ, და ის გახსოვთ ეს ფუნქცია და შემდეგ იგი ყველაფერს გააკეთებს ამ ფუნქციის როდესაც გასაღები მოდის up. ჩვენ ვსაუბრობთ ამ უფრო ერთხელ თქვენ მიიღებთ უფრო ფუნქციონალური პროგრამირების. ეს არის ცოტა გემოს რომ სადაც ჩვენ არსებითად გავლის ფუნქცია გარშემო როგორც ობიექტი, თითქმის, თითქოს, როგორც ცვლადი. ვიდრე გავლის სიმებიანი ან int, ჩვენ ავლით ფუნქცია. რომ სახის უცნაური რამ, მაგრამ რა ლამაზი არის, რომ ყველა ცვლადის აქ, შიგნით ამ ფუნქციას, სკოპინგის საკითხები nice რადგან თუ თქვენ გაქვთ ცვლადი აქ, შეგიძლიათ მიმართოთ, რომ ცვლადი შიგნით ამ ფუნქციას იმიტომ, რომ ეს ფუნქცია განაცხადა შიგნით ამ სხვა ფუნქცია. ასე რომ თქვენ უნდა ჰქონდეს სარგებელი იგრძნობა. კიდევ ერთხელ, რომ რაღაც რომ უფრო მეტა. თქვენ დაფაროს იგი მომავალში კლასები. Yeah. [სტუდენტი] მას შემდეგ, რაც ფუნქცია ანონიმური, შეიძლება იყოს გამოყენებული სადმე სხვაგან? ან შეიძლება გამოყენებულ იქნეს მხოლოდ კონტექსტში ეს ფუნქცია? [Hardison] ეს გამოიყენება მხოლოდ კონტექსტში ამ ფუნქციას. ჰო. დიახ? იგი რაღაც ვუყოთ იმ ფაქტს, რომ ის ობიექტზე ორიენტირებული ენა? [Hardison] აქვს თუ არა მას რაიმე ვუყოთ იმ ფაქტს, რომ ის ობიექტზე ორიენტირებული? მე ვიტყოდი, რომ ეს უფრო არ უკავშირდება იმ ფაქტს, რომ ეს ფუნქციური ასპექტები. ჩვენ ვსაუბრობთ ობიექტზე ორიენტირებული პარადიგმის პროგრამირების, და ეს არის ერთგვარი ერთ იმ ასპექტები ფუნქციონალურ პარადიგმაში პროგრამირება სადაც თქვენ მიღების ფუნქციებს, შედგება სხვა ფუნქციები და თქვენ გავლით ფუნქციები გარშემო. [სტუდენტი] ასე რომ, JavaScript ფუნქცია ენა ასევე. მას აქვს ელემენტები, რომ, დიახ. ჰო. JavaScript და სხვა მრავალი - PHP აქვს ამ ძალიან, Python აქვს იგივე სახის პერსონალი, Ruby აქვს ამ სახის ნივთები, ასევე, და ეს არის საერთო მეტი ასეთი თანამედროვე ენებზე. თქვენ ნამდვილად მიიღოთ ამ სკრიპტირების ენებზე, რომლებიც სახის jack-of-all-გარიგებები. ეს იგივეა, დიდი ცხიმოვანი შვეიცარიის არმიის დანა, ერთი, რომ თქვენ ვერ დააყენა ჯიბეში იმიტომ, რომ ეს ძალიან ფართო. რომ სახის ზოგიერთი ამ ენებზე გახდა. ნებისმიერი სხვა კითხვები? ყველა უფლება. როგორ ხარ ბიჭებს შეგრძნება? მოდით დავუბრუნდეთ ამ ვიქტორინაში მართლაც სწრაფი და ვნახოთ, თუ შევძლებთ პასუხის გაცემა 21 და 20. ჩვენ ვისაუბრეთ 20 როგორც ჩვენ რეგისტრირებული ამ კურატორმა. ეს საკითხი აქ, "რა იქნება ეფექტი, თუ ჩვენ წერდა, რომ შეესაბამება წყვილი ფრჩხილებში?" ხედავთ განსხვავებას, თუ როგორ ზედა არ არსებობს ბრჭყალების და ქვემოთ აქ არსებობს ფრჩხილებში შემდეგ ფუნქციის სახელი? ერთი რამ, რომ მნიშვნელოვანია აღინიშნოს, აქ ჩვენ მხედველობაში ფუნქცია. ეს არ არის ანონიმური ფუნქცია. ის მიეცა სახელი, კურატორმა, ხოლო ჩვენი Ajax აქ, რომ ჩვენ მხოლოდ შევხედავთ, ყველა ფუნქციებს, რომ ჩვენ ავლით გარშემო ყველა ანონიმური: არა ფუნქციის სახელი, არცერთი ფუნქცია სახელი. ასე რომ, ეს არის ჩვეულებრივი პრაქტიკა, რათა განისაზღვროს ამ ფუნქციების სახის inline როგორც ანონიმური ფუნქციები ზოგიერთი სკოპინგის სარგებელი. თქვენ შეიძლება ძალიან კარგად არ არის განსაზღვრული ამ ფუნქციის უფლება აქ და ამ თემაზე ("keyup" ფუნქცია. თქვენ შეიძლება არ განისაზღვრება ამ ბიჭს როგორც ფუნქციების სახელები სხვაგან თქვენი JavaScript კოდი, და შემდეგ ნაცვლად განსაზღვრის ფუნქცია აქ, თქვენ გაივლის სახელით ფუნქცია სწორედ ამ ადგილზე. ერთი რამ აღვნიშნო არის ის, რომ თქვენ არ გსურთ გამოიყენოთ ფრჩხილებში თუ გადიოდნენ სახელით ფუნქცია, რადგან, როდესაც თქვენ გამოიყენოს ფრჩხილებში, თქვენ რაც გულისხმობს "მოვუწოდებთ ამ ფუნქციის" ხოლო ნაცვლად აქ ჩვენ უბრალოდ სურთ გაიარონ სახელით ფუნქცია. თუ დავაკვირდებით, რა ხდება აქ, დიდი განსხვავება ის არის, რომ ეს ყველაზე ხაზი კოდი აცხადებს ეფექტურად შენარჩუნება მომცეთ ფუნქცია მოუწოდა კურატორმა, და როდესაც Ajax ზარი ასრულებს, დარეკეთ ამ ფუნქციას, რეალურად შეასრულოს ფუნქცია, plug in არგუმენტები, ყველაფერი, რომ მუშაობა, ხოლო ამ ხაზის ქვემოთ აქ ამბობს ნაცვლად შენარჩუნების მაჩვენებელი ფუნქცია მოუწოდა კურატორმა, ამ onreadystatechange ველი გამართვას გეგმავს შედეგი ფუნქცია მოუწოდა კურატორმა, ამიტომ აპირებს შეაფასოს კურატორმა, ის აპირებს სინამდვილეში კურატორმა ახლა - არა, როდესაც Ajax ზარი ასრულებს მაგრამ სწორედ ახლა, რომელიც არ არის ის, რაც თქვენ გსურთ, თუ თქვენ წერა რაღაც გაუმკლავდეთ Ajax მოწოდება, რომ ის დასრულდა. ყველა უფლება. კითხვები რომ? ეს დახვეწილი განსხვავება. ეს დახვეწილი განსხვავება. ერთი რამ მინდა აუცილებლად ვარაუდობენ აკეთებს, თუ არ კეთდება ეს - რადგან ეს არის ახალი პერსონალი; სჭირდება, ხოლო ის ნამდვილად ჩაიძიროს თუ თქვენ რეალურად აკრიფოთ ზოგიერთი ამ პერსონალის out - მე მოგიწოდებთ თქვენ გავლა კოდის რომ Tommy წარმოდგენილი ლექცია ოთხშაბათი იმიტომ, რომ ის ნამდვილად გაიარა ბევრი პერსონალი, სახის ბუნდოვანი. მინდა რეალურად ცდილობენ აკრეფით გარეთ. სცადეთ კოდირების რაღაცები up. მიიღოს. Js ფაილი. ტიპი out კოდი თავს. ნუ უბრალოდ დააკოპირეთ და ჩასვით. ნუ უბრალოდ აწარმოებს CP. სცადეთ აკეთებს, რომ უბრალოდ სახის FLEX თქვენი JavaScript კუნთების. ვნახოთ, რა რამ. მაგალითად, აქ მე ეძებს quote7.js ამ კოდის ოთხშაბათს ლექცია. სცადეთ აპირებს და ნაცვლად მხოლოდ მიღების ყველა ამ ფუნქციების ანონიმური, გადააკოპირეთ ეს კოდი, ფაქტიურად დაცემას ეს წარმატება კოდი გადააკოპირეთ ეს, ჩასვით იგი სხვა ფუნქცია, და მისცეს მას სახელი, და შემდეგ ცდილობენ გავლით სახელი და ვნახოთ, რა მოხდება. [სტუდენტი] ვერ რომ იყოს ცალკე ფაილი ან იგივე ფაილი? ეს შეიძლება იყოს ცალკე ფაილი თუ სწორად არის იგი. ერთი რამ, რომ იქნება - ხრიკი არის ამჯამად ამ ფუნქციის ეხება ნებისმიერ ცვლადები, რომლებიც გარეთ არის ეს? და მე ვფიქრობ, რომ ეს ეხება მხოლოდ პასუხი. ჰო. შეგიძლიათ დაასახელოთ ეს. შეგიძლიათ გაიყვანოს იგი გარეთ, თქვენ შეგიძლიათ მისცეს მას სახელი, და მაშინ ვერ გაივლის სახელი აქ. ამიტომ მინდა მისცეს, რომ ლელო, ვნახოთ, როგორ მუშაობს. ყველა უფლება. კითხვები? კითხვები? მე მიყვარს შეკითხვებს. მე არ ვიცი თქვენს შესახებ, ბიჭები, მაგრამ მე მინდა მათ. როგორ ხარ ბიჭებს შეგრძნება ამის შესახებ? არსებობს სახის ეს, "Oh, crap" განწყობა ოთახში. [სტუდენტი chuckle] ის არის, რომ ერთგვარი როგორ თქვენ ბიჭები შეგრძნება? [სტუდენტი] Yeah. Yeah? დიახ, Daniel? [სტუდენტი] ვფიქრობ, მე მესმის სახის საერთო ცნებები, რომ თქვენ ვსაუბრობთ, ისევე როგორც ანონიმური ფუნქცია და ყველა ამ პერსონალის, მაგრამ მე არ მესმის ნახევარი სინტაქსი, რომ იქ ახლა, მსგავსი იმისა, რაც ul საშუალებით, li, ამ სხვადასხვა tags. არა მგონია, მე მინდა შეძლებს კოდექსში რაღაც JavaScript. Fair. არის ის, რომ საერთო განცდა, საერთო განწყობა, ეს ჟღერს? Okay. [სტუდენტი] თუ ჩვენ გვჭირდება? იქნება, ჩვენ გვჭირდება კოდი? თქვენ უნდა იყოს მზად dissect მსგავსი რამ, მე ვიტყოდი. მე არ ვარ ერთი წერა გამოცდის, მაგრამ მინდა აუცილებლად ვთქვა, რომ თუ ეს არის საერთო განწყობა, სახის, რომ ბევრი ამ სინტაქსი აქ ჰგავს, "რა ჯოჯოხეთი ხდება?" "მე სრულიად ცურვა", მაშინ მოდით ვისაუბროთ, რომ და დაფიქსირება, რომ. გასწავლოთ კარგი? ყველა უფლება. ასე რომ, რა ხდება აქ? ავიღოთ ამ ხაზს. მოდით ცდილობენ აპირებს გარშემო ოთახში. მე უბრალოდ ვაპირებ მოვუწოდო ხალხს 1 by 1, და მაძლევს თქვენი საუკეთესო გამოიცანით. ჩვენ ყველაფერს გავაკეთებთ, რომ ეს სწრაფად. თქვენ მოხვდით 5 seconds უპასუხოს. თუ არ უპასუხებს, ჩვენ გადავა მომდევნო პირი. და ეს არ არის დიდი გარიგება, რადგან ვიცი, ეს გიჟები პერსონალი. ჩვენ დავიწყებთ აქ. Charlotte, რა ამ ხაზის გაკეთება? [სტუდენტი] ეს შექმნის ცვლადში წინადადებები და განსაზღვრავს ის ტოლია, რაც ul არის. [Hardison] მარჯვენა. ჯიმი, რა არის ul? [სტუდენტი] არ ვიცი. [Hardison] Okay, cool. Charlotte მთლიანად უფლება. ამ ხაზი კოდი, რომ მე ხაზგასმით აქ აცხადებს ცვლადში წინადადებები, JavaScript ცვლადი. ჩვენ მივიღეთ ამ var სიტყვის წინაშე, რაც დარწმუნებული ვარ, რომ ცვლადი რჩება ადგილობრივი იმ ფარგლებში, რომ შემოსული და ეს ul რამ, რომ ჩვენ არ მინახავს ადრე ნამდვილად, ვნახოთ, თუ არის კარგი - ნება მომეცით გადართოთ თავში ჩემი iPad. New გვერდზე. დარწმუნებული ვარ, რომ თქვენ ბიჭები მინახავს ul ადრე. ეს არის უწესრიგო სია. ასე რომ თქვენ ოდესმე მინახავს ვებ გვერდზე, სადაც თქვენ უნდა ტყვიები და თქვენ უნდა Thing 1 Thing 2, და ა.შ. და ა.შ.? ეს არის უწესრიგო სია. გზა თქვენ, რომ კოდექსის ამ HTML არის ნეტავ იწყება ღია tag რომ ხსნის უწესრიგო სია, ნეტავ დახუროს იგი ახლო აქვს, რომ ხურავს უწესრიგო სია, და შემდეგ შუა ნეტავ უნდა ჩამოვთვალოთ ნივთები, li. და შიგნით li მიერ იქნება ტექსტში არიან, ასე რომ Thing 1 და Thing 2. შემდეგ ჩვენ გვინდა დახურვა ჩვენს სიაში საქონლის tags. უწესრიგო სიები super საერთო, რადგან ეს არის დიდი გზა მიიღოს იგივე სტილის გამოიყენება a row რამ. ასე რომ, თუ გადავხედავთ, მაგალითად, pset 7 კოდი ბევრი nav pills, ნავიგაცია pills, რომლებიც გამოიყენება სხვადასხვა ბმულები ყიდვა, გაყიდვა, Quote, ისტორია, ყველა რომ, ის ხორციელდება როგორც უწესრიგო სიები, და ისინი გამოიყენება CSS ამოიღონ ეს ტყვია რაოდენობა და სახის შეცვალოს გარშემო ოდნავ. რომ სახის ძალა CSS ის არის, რომ HTML აღწერს სტრუქტურა. გვაქვს სია, სიის საკითხი. ეს უწესრიგო. არ არსებობს პირველი, მეორე, მესამე. უბრალოდ სიაში. და ასე იყოს ეს ჩაერთვებიან ეს მხოლოდ ტყვიები. თუ ჩვენ ნაცვლად დაწერა ol, ასე რომ, მე ვაპირებ, რომ შეიცვალოს ეს ol სია როგორც ეწინააღმდეგებოდა ul, რას აკეთებთ? კარგი იქნებოდა, თავი დაეღწია ამ ტყვიები და რა იქნებოდა ნაცვლად იყოს დანომრილი სია რადგან ახლა გვაქვს შეკვეთით. სტილის სიაში შემდეგ, რაც თქვენ ითამაშოს გარშემო in CSS, და რომ სადაც დაკარგულია დაწერა ჩატვირთვის ბიბლიოთეკა CSS ითამაშა გარშემო ერთად სტილის უწესრიგო სია მიიღოს ეს არაა იმ ლამაზი პატარა nav აბი. თუ დავაკვირდებით Google, მაგალითად, მოდით შევხედოთ ამ ბიჭს. Back to "როგორ მე მეტრზე თქვენი დედა" - ჟღერს სახის გერმანული. მე მიყვარს გერმანული. ჟღერს ასე fun. ვწუხვარ, თუ არსებობს რაიმე German ეგ თვალს, რომელიც სწყენოდათ. ყოველ შემთხვევაში, თუ დავაკვირდებით ამ კავშირების აქ ზედა და დავაკვირდებით, რა ხდება იქ, ჩვენ შეგვიძლია შეამოწმოს ის გამოყენებით ამ ბიჭს. მე ვარ გზა ქვემოთ აქ კუთხეში. შემქმნელი ინსტრუმენტები Chrome არის გასაოცარია. თუ ბიჭები დაიწყოს, რომ ითამაშოს გარშემო მას ან ეძებოთ გაკვეთილები, ეს ხელს შეუწყობს ბევრი თუ თქვენ აკეთებთ ვებ დაფუძნებული პროექტები. მე დააწკაპუნეთ ჩემი პატარა ინსპექტორი. მე ვაპირებ გადახვევა უკან აქ. მე ვაპირებ რა ყველა ეს ბიჭები არიან. მე zoom სისტემაში მე ვაპირებ დააჭირეთ ამ. მაშინ მე შემიძლია zoom უკან და ვნახოთ რა ის რეალურად არის HTML გზა ქვემოთ აქ. როგორც ჩანს, Google-მა წყობილი იგი უბრძანა სიაში. ამიტომ, ჩვენ მივიღეთ ამ span, რომელიც ამბობს, + თქვენ, და რომ წყობილი შიგნით წამყვანმა tag, ასე რომ, რაც მას clickable და ის აკავშირებს მას ჩემი Google+ გვერდზე. ის წყობილი შიგნით სიაში ნივთი, და ის წყობილი შიგნით ამ უბრძანა სიაში. და ახლა თუ მე რეალურად დააწკაპუნეთ სიის ელემენტი, იგი ხაზს უსვამს, რომ ეს ჩემთვის იქ. თუ მე ხაზი გავუსვა უწესრიგო სია, თქვენ ხედავთ, როგორ ფოკუსი მიდის ზედა. ეს ინაცვლებს მდე და აჩვენებს ჩემთან მთელი უბრძანა სიაში. ასე რომ, Google ახლახან ითამაშა გარშემო სტილის მიიღოს ამ სიაში გამოჩნდება იგრძნობა. რომ საკმარისია გართობა სიებში. დასაწყისზე ინტელექტუალური ან ამ პერსონალი. ახლა ჩვენ ვიცით, რა უწესრიგო სია - იმედია. მოდით ვისაუბროთ ამ შემდეგი ხაზი კოდი, (var i in response.symbols). Ella. [სტუდენტი] მე არ ვიცი. [Hardison] No იდეა. Okay. ვნახე ამისთვის loop ადრე, როგორც მე მგონია. [სტუდენტი] Yeah. [Hardison] გახსოვთ აკეთებს თითოეული PHP? [სტუდენტი] დიახ. [Hardison] ეს არის ზუსტად რომ. ეს არის თითოეული loop in JavaScript. ეს არის მოკლე გზა, ვიდრე აკეთებს for (var i = 0; i