1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [კვირა 9] 2 00:00:02,570 --> 00:00:04,740 [დევიდ ჯ Malan - ჰარვარდის უნივერსიტეტი] 3 00:00:04,740 --> 00:00:07,170 [ეს არის CS50. - CS50.TV] 4 00:00:07,170 --> 00:00:12,350 ყველა უფლება. კეთილი იყოს. ეს არის CS50, და ეს არის დაწყების კვირაში 9. 5 00:00:12,350 --> 00:00:16,600 დღეს ჩვენ ფოკუსირება კერძოდ დიზაინი, აღარ კონტექსტში C 6 00:00:16,600 --> 00:00:20,010 მაგრამ კონტექსტში PHP და ცოტა SQL და ცოტა JavaScript, 7 00:00:20,010 --> 00:00:23,730 განსაკუთრებით მიმართ ბოლომდე ორივე pset 7 და ასევე თქვენი საბოლოო პროექტი. 8 00:00:23,730 --> 00:00:26,310 რეალურად, თუ თქვენ იმ ეტაპზე თქვენს საბოლოო პროექტი 9 00:00:26,310 --> 00:00:30,100 სადაც სავარაუდოდ, როგორც საათობრივად ან იმდენად წინ თქვენ მინიმუმ დაიწყო უკვე მისცა, აზრის 10 00:00:30,100 --> 00:00:33,730 თქვენი საბოლოო პროექტი და თქვენ ფიქრი გსურთ ითანამშრომლებს 1 ან 2 თანაკლასელები, 11 00:00:33,730 --> 00:00:36,150 თუ თქვენ მქონე უბედურება დაკავშირებულია განაცხადა თანაკლასელები, 12 00:00:36,150 --> 00:00:40,570 მოგერიდებათ შეავსოთ ფორმა cs50.net/partners/form. 13 00:00:40,570 --> 00:00:42,880 უბრალოდ სთხოვს ვინ ხარ შენ, რა სახის პროექტი თქვენ ფიქრი, 14 00:00:42,880 --> 00:00:44,870 სადაც თქვენ ცხოვრობთ მხოლოდ ლოგისტიკური მიზეზებით. 15 00:00:44,870 --> 00:00:49,510 ხოლო შემდეგ, თუ თქვენ გსურთ ადევნეთ თვალი მომდევნო კვირაში ცხრილების URL არსებობს, 16 00:00:49,510 --> 00:00:53,520 შეგიძლიათ შემდეგ დაინახავთ წაუკითხავი ვერსია Google doc 17 00:00:53,520 --> 00:00:56,010 რომელშიც ჩვენ შეგროვება, რომ ინფორმაციას. 18 00:00:56,010 --> 00:00:58,930 ასე რომ, თუ გსურთ მუშაობა ვინმეს, აუცილებლად მოგერიდებათ მივაწვდინოთ ხალხს 19 00:00:58,930 --> 00:01:00,480 მეშვეობით, რომ მექანიზმი. 20 00:01:00,480 --> 00:01:02,690 მაგრამ უმრავლესობა FOLKS გავაკეთოთ მუშაობა სოლო. სწორედ მთლიანად ჯარიმა. 21 00:01:02,690 --> 00:01:06,120 ასე რომ არ იგრძნონ, რომ ეს არანაირად სავალდებულო. 22 00:01:06,120 --> 00:01:09,680 პარასკევს ეს მხოლოდ მე და რამდენიმე გუნდი აქ, 23 00:01:09,680 --> 00:01:11,100 ცარიელი თეატრის ამისთვის დიდი ნაწილი. 24 00:01:11,100 --> 00:01:14,600 იყო 3 ტურისტი იჯდა იქ, ასე რომ იყო ცოტა უხერხულია. 25 00:01:14,600 --> 00:01:18,970 რა ჩვენ ვისაუბრეთ იყო მონაცემთა ბაზები და ჩვენ ვისაუბრეთ pset 7 ცოტა. 26 00:01:18,970 --> 00:01:22,200 და თუ თქვენ ასე არ მოხდა დაიჭიროთ, რომ ვიდეო უბრალოდ არ არის, რომ ჯარიმა. 27 00:01:22,200 --> 00:01:26,770 ვეცდები, რომ განსაზღვროს ნებისმიერი თვალსაზრისით, რომ ჩვენ სხვაგვარად თავისთავად 28 00:01:26,770 --> 00:01:28,840 ეფუძნება პარასკევის ლექცია. 29 00:01:28,840 --> 00:01:32,550 >> მაგრამ დღეს ჩვენ ვაპირებთ ცდილობენ თქვენ წერტილი 30 00:01:32,550 --> 00:01:34,990 არა მხოლოდ კონკრეტდება გამოუვა რაღაც pset 7 31 00:01:34,990 --> 00:01:37,360 მაგრამ ნამდვილად გასაგებად, რა ხდება ქვეშ hood, 32 00:01:37,360 --> 00:01:41,910 განსაკუთრებით ზოგიერთი აბსტრაქციები რომ ჩვენ დასვა ადგილი functions.php ფაილში 33 00:01:41,910 --> 00:01:45,780 რათა თქვენი ცხოვრების ცოტა ადვილი, მაგრამ ისე, რომ თქვენ საბოლოოდ მესმის 34 00:01:45,780 --> 00:01:48,760 ასე რომ, როდესაც სასწავლო თვლები მოვა off რამდენიმე კვირაში თქვენ მაინც გადარჩება 35 00:01:48,760 --> 00:01:53,750 რეალურ ცხოვრებაში და ამას ვაკეთებთ, პერსონალის გარეშე CS50 ფარგლებში ქვეშ თქვენ. 36 00:01:53,750 --> 00:01:57,500 ეს $ _SESSION, იმ თქვენ ვინც იცნობს 37 00:01:57,500 --> 00:02:01,960 ან ვინც უკვე დაიჭირეს ვიდეო პარასკევს, რას სესიაზე მოდით გავაკეთოთ 38 00:02:01,960 --> 00:02:04,330 in PHP დაფუძნებული ვებ განაცხადის? 39 00:02:04,330 --> 00:02:09,650 ეს არის superglobal ცვლადი, რაც იმას ნიშნავს, რომ ის მსგავსი სულისკვეთებით მიიღონ და პოსტ 40 00:02:09,650 --> 00:02:13,970 და რამდენიმე სხვები, მაგრამ რა არის ეს რამ სასარგებლოა? 41 00:02:13,970 --> 00:02:18,320 >> რა არის სესიაზე გამოიყენება? Yeah. [სტუდენტი] შემოსვლა სისტემაში 42 00:02:18,320 --> 00:02:21,040 უკაცრავად? [სტუდენტი] შემოსვლა სისტემაში შემოსვლა სისტემაში მართლაც. 43 00:02:21,040 --> 00:02:25,100 In pset 7 ჩვენ გამოყენებისას სესიაზე superglobal ხელი შეუწყოს ხე შემოსული 44 00:02:25,100 --> 00:02:28,600 და რაც ლამაზი ამ superglobal არის, რომ ასოციაციურ მასივში. 45 00:02:28,600 --> 00:02:33,190 ასოციაციურ მასივში, გაწვევას, მხოლოდ მასივი, მაგრამ რომლის ინდექსების აღარ უნდა იყოს ნომრები 46 00:02:33,190 --> 00:02:37,670 მოსწონს 012. ეს შეიძლება იყოს ნომრები ან ისინი შეიძლება კი სიმები. 47 00:02:37,670 --> 00:02:44,890 და თუ თქვენ dived შევიდა pset 7 ჯერჯერობით, თქვენ შეიძლება გავიხსენოთ, რომ ჩვენ შენახვის გასაღები მოუწოდა ID 48 00:02:44,890 --> 00:02:50,330 შიგნით ამ ასოციაციურ მასივში, რომლის ღირებულება არის რაღაც 123 - 49 00:02:50,330 --> 00:02:53,780 რასაც ამჟამად რეგისტრირებული მომხმარებლის ID არის. 50 00:02:53,780 --> 00:02:59,470 მოტივაცია არის ის, რომ შემდეგაც კი მომხმარებელს უკვე მოინახულა Localhost 51 00:02:59,470 --> 00:03:02,720 ან ჩემი ნახვა საზოგადოდ და შემდეგ ისინი შესული სისტემაში, 52 00:03:02,720 --> 00:03:07,320 მაშინაც კი, თუ ისინი არ დააჭერთ ბმულს ან დაბრუნდეს ჩემი საიტი 5 წუთში 53 00:03:07,320 --> 00:03:10,730 ან თუნდაც საათში ან თუნდაც დღეში მაგრამ დაეტოვებინა ბრაუზერის ფანჯარაში ღია, 54 00:03:10,730 --> 00:03:14,370 მეშვეობით ამ superglobal შემიძლია გვახსოვდეს, რომ ისინი ხართ შემოსული 55 00:03:14,370 --> 00:03:21,140 >> სხვა სიტყვებით, ის საშუალებას ჩემთვის შესანახად ოდნავ გრძელვადიანი არაფერი მინდა შესახებ მომხმარებელს. 56 00:03:21,140 --> 00:03:24,390 და შეგიძლიათ წარმოიდგინოთ, რომ ეს მართლაც როგორც განსახიერება of კალათა. 57 00:03:24,390 --> 00:03:27,740 მსგავს ადგილებში Amazon აშკარად მოგცემთ დააყენა რამ შევიდა კალათა, 58 00:03:27,740 --> 00:03:32,230 მაგრამ HTTP, ოქმი რომ ძალაუფლება ვებ, არის მოქალაქეობის არმქონე 59 00:03:32,230 --> 00:03:34,230 იმ გაგებით, რომ როდესაც თქვენ ესტუმრებით ნახვა, 60 00:03:34,230 --> 00:03:37,290 ამისთვის დიდი ნაწილი თქვენ არ ზოგიერთი მუდმივი კავშირი 61 00:03:37,290 --> 00:03:39,270 შორის თქვენი ბრაუზერის და სერვერზე. 62 00:03:39,270 --> 00:03:42,190 როგორც კი თქვენ გადმოწერილი HTML და JPEGs და GIFs და ყველა რომ, 63 00:03:42,190 --> 00:03:48,200 კავშირი მიდის და თქვენ უბრალოდ უნდა ასლი HTML და whatnot საწყისი სერვერზე. 64 00:03:48,200 --> 00:03:53,000 მაგრამ თუ სერვერზე სურს გვახსოვს რაღაც თქვენს შესახებ, 65 00:03:53,000 --> 00:03:57,580 ტვირთი სერვერზე რეალურად ჩანაწერის ინფორმაციას. 66 00:03:57,580 --> 00:04:00,130 და ასე რომ თქვენ პროგრამისტის, რომელსაც აქვს კონტროლის სერვერი 67 00:04:00,130 --> 00:04:04,400 შეგიძლიათ განათავსოთ საუკეთესო არაფერი გინდათ შიგნით ამ superglobal ასოციაციურ მასივში 68 00:04:04,400 --> 00:04:06,850 და ის მუდმივად იქნება შემდეგი დროის მომხმარებლის ბრუნდება, 69 00:04:06,850 --> 00:04:12,070 თუ არა ეს წუთი ან თუნდაც დღის შემდეგ, თუ ისინი დახურვა მათი ბრაუზერის ფანჯარაში, 70 00:04:12,070 --> 00:04:14,360 სადაც წერტილი სესიაზე ქრება. 71 00:04:14,360 --> 00:04:17,779 ასე რომ ეფემერული შენახვის, ეს არასამთავრობო დაჟინებული და ეს იმას ნიშნავდა, რომ მიდიან 72 00:04:17,779 --> 00:04:22,360 როგორც კი მომხმარებლის ხურავს მათი ბრაუზერი - არა მხოლოდ, რომ tab, ხშირად მთელი ბრაუზერის, 73 00:04:22,360 --> 00:04:24,930 რითაც ეფექტურად ხე მომხმარებლის გარეთ. 74 00:04:24,930 --> 00:04:28,000 მაშ როგორ არის ეს საგანი რეალურად განახორციელა? 75 00:04:28,000 --> 00:04:31,360 ავიღოთ სწრაფი შევხედოთ მარტივ მაგალითს ჩვენ შევხედეთ პარასკევს. 76 00:04:31,360 --> 00:04:33,340 მათთვის უცნობ, ეს იყო როგორც მარტივი, როგორც ეს. 77 00:04:33,340 --> 00:04:35,910 ეს არის ვებ გვერდზე, რომლის ერთადერთი მიზანი ცხოვრებაში არის მეუბნებოდა 78 00:04:35,910 --> 00:04:38,000 რამდენჯერ მე ნამყოფი ამ გვერდზე. 79 00:04:38,000 --> 00:04:41,670 ეს არის პირველი შემთხვევა, აქ ორშაბათს, რომ ვიყავი, ასე რომ წერია 0 ჯერ. 80 00:04:41,670 --> 00:04:46,940 >> მაგრამ თუ დავიწყო გადატვირთვა ამ გვერდზე, ნათქვამია 1 დროს, 2, 3, 4, 5, 81 00:04:46,940 --> 00:04:49,800 და ეს საბოლოოდ მხოლოდ გააგრძელოს დათვლის up, up, up, up, up 82 00:04:49,800 --> 00:04:53,130 თითოეული დროს მე რეალურად დააჭირეთ ჩატვირთვა მასზე. 83 00:04:53,130 --> 00:04:58,830 მაშ როგორ არის ამ სამუშაო? ნება მომეცით წასვლა შიგნით ამ ფაილის მოუწოდა counter.php. 84 00:04:58,830 --> 00:05:02,490 ზედა ნაწილს ეს ყველა ლურჯი კომენტარი, მაგრამ საინტერესო ნაწილი არის აქ. 85 00:05:02,490 --> 00:05:06,670 On line 13 ჩვენ მოვუწოდებთ ამ ფუნქციის session_start, 86 00:05:06,670 --> 00:05:09,600 და ეს არის ფაქტიურად ყველა თქვენ მხოლოდ უნდა თუ გინდათ ჰქონდეს 87 00:05:09,600 --> 00:05:13,610 ამ სპეციალური superglobal მოუწოდა $ _SESSION. 88 00:05:13,610 --> 00:05:17,430 რომ ხდის ყველა შესაძლო, და ჩვენ ვხედავთ, როგორ მომენტში რომ ყველა შესაძლო. 89 00:05:17,430 --> 00:05:20,350 შეესაბამება 16 notice რა ვაკეთებ. 90 00:05:20,350 --> 00:05:25,960 თუ გასაღები, რომელსაც ეწოდება Counter - სხვა სიტყვებით, ინდექსი ფასი - "მთვლელი" 91 00:05:25,960 --> 00:05:32,310 არსებობს შიგნით ამ მასივი მოუწოდა სესიაზე, მაშინ, რა ვარ მე აკეთებს ერთად ის ხაზის ქვემოთ? 92 00:05:32,310 --> 00:05:36,650 რა არის ხაზზე 18 აკეთებთ? 93 00:05:36,650 --> 00:05:40,360 >> [Inaudible სტუდენტი საპასუხოდ] რა არის რომ? [სტუდენტი] შენახვის ღირებულება. კარგი. 94 00:05:40,360 --> 00:05:45,800 ეს შენახვის ღირებულება, რომელიც არის ამ სესიაზე ახლავე in new ადგილობრივი დროებითი ცვლადი, 95 00:05:45,800 --> 00:05:48,250 $ Counter ყველა ამას. 96 00:05:48,250 --> 00:05:50,770 გაითვალისწინეთ, რომ PHP უკვე პატარა ზარმაცი აქ. 97 00:05:50,770 --> 00:05:55,550 გაითვალისწინეთ ჩვენ არ გვაქვს რაიმე ნახსენები int ან ათწილადი ან სიმებიანი ან არაფერი რომ 98 00:05:55,550 --> 00:06:00,480 რადგან PHP არის სუსტად აკრეფილი, რომლის დროსაც თქვენ არ დააკონკრეტა ტიპის ცვლადი, 99 00:06:00,480 --> 00:06:03,310 და ამ შემთხვევაში აქ მე კი არ გამოაცხადა ამჟამად. 100 00:06:03,310 --> 00:06:08,980 მე გამოცხადების მას შიგნით ამ Curly braces და განსხვავებით C, ეს არის რეალურად okay. 101 00:06:08,980 --> 00:06:13,800 რაც არ უნდა ღრმად წყობილი ცვლადი განცხადებას არის PHP - 102 00:06:13,800 --> 00:06:16,650 შიგნით Curly გაუწიოს, შიგნით Curly გაუწიოს და მოსწონს - 103 00:06:16,650 --> 00:06:21,230 იგი იმ მომენტში დროში არსებობს დარჩენილი პროგრამა, 104 00:06:21,230 --> 00:06:22,680 უკეთესი ან უარესი. 105 00:06:22,680 --> 00:06:26,930 ასე რომ, ეს დაუყოვნებლივ ხდება გლობალური, როგორც კი თქვენ განსაზღვრავს, როგორც ვაკეთებთ აქ. 106 00:06:26,930 --> 00:06:31,620 >> წინააღმდეგ შემთხვევაში, თუ არ ნახავთ, რომ იქ არაფერი სესიაზე superglobal, 107 00:06:31,620 --> 00:06:34,680 მე აშკარად ინიციალიზაციისას ამ ცვლადი counter 0, 108 00:06:34,680 --> 00:06:37,580 ამით უბრალოდ ვთქვათ მომხმარებლის არასოდეს ყოფილა აქ ადრე. 109 00:06:37,580 --> 00:06:40,030 და მაშინ ეს, რა თქმა უნდა არის დამატება counter როგორ? 110 00:06:40,030 --> 00:06:44,480 მე განახლებაზე ღირებულების რომ შიგნით ამ ასოციაციურ მასივში 111 00:06:44,480 --> 00:06:49,530 მიიღწევა ის ტოლია რასაც counter გაკეთებული არის + 1. 112 00:06:49,530 --> 00:06:53,520 თუ მე გადახვევა ქვემოთ აქ HTML გვერდზე, ეს რეალურად საკმაოდ მარტივია. 113 00:06:53,520 --> 00:06:58,920 ყველა მე გამაჩნია ორგანოს ეს გვერდი, "თქვენ არ მოინახულა საიტი ასე და ასე ჯერ." 114 00:06:58,920 --> 00:07:00,350 და ეს არის PHP შენება. 115 00:07:00,350 --> 00:07:06,080 თუ 00:07:12,600 მართლაც ექვივალენტურია რაღაც printf, რომელიც ჩვენ ვნახეთ ბევრჯერ C, 117 00:07:12,600 --> 00:07:15,940 თუმცა, როგორც მოგეხსენებათ უკვე სპეც წელს pset 7, 118 00:07:15,940 --> 00:07:20,160 ბეჭდვითი ასევე ფუნქცია რომ ბეჭდავს რაღაც გარეთ, იგი ფაქტობრივად არ გამოიყენოთ ფორმატის კოდები, 119 00:07:20,160 --> 00:07:23,270 და თქვენ შეგიძლიათ რეალურად ამბობენ ეხო ისევე. 120 00:07:23,270 --> 00:07:27,460 ისინი ყველა ოდესმე ისე ოდნავ განსხვავებული, მიუხედავად იმისა, სუფთა ეფექტი არის საბოლოოდ იგივე. 121 00:07:27,460 --> 00:07:31,270 ასე რომ, ეს გამოყენება ტოლობის ნიშანი მხოლოდ სახის ელეგანტური გზა ამის გაკეთება 122 00:07:31,270 --> 00:07:34,910 მეტი succinctly ვიდრე თქვენ შეიძლება სხვაგვარად შეძლებენ. 123 00:07:34,910 --> 00:07:38,370 ასე რომ ყველა საიტი არ. იგი ბეჭდავს out ღირებულება Counter. 124 00:07:38,370 --> 00:07:40,550 როგორ ხდება ეს ყველაფერი რეალურად ხდება? 125 00:07:40,550 --> 00:07:43,250 გაიხსენეთ კვირაში წინ დავიწყეთ ეძებს ქვეშ hood 126 00:07:43,250 --> 00:07:47,910 როგორ ვებ გვერდზე მუშაობს გამოყენებით ამ ინსპექტორი tab. 127 00:07:47,910 --> 00:07:51,900 >> Chrome აქვს ამ ორივე Mac ვერსია, Windows ვერსია, და კიდევ Linux ვერსია, 128 00:07:51,900 --> 00:07:59,510 და Firefox და IE აქვს მსგავსი მექანიზმები, რომლითაც თქვენ ეს ჩამონტაჟებული debugger 129 00:07:59,510 --> 00:08:01,400 შიგნით ბრაუზერში. 130 00:08:01,400 --> 00:08:03,040 მოდით შევხედოთ შემდეგ. 131 00:08:03,040 --> 00:08:06,960 გვაქვს მთელი თაიგული ჩანართების აქ, და გავიხსენოთ, რომ leftmost ერთი არის ელემენტები, 132 00:08:06,960 --> 00:08:10,700 და არა აქვს მნიშვნელობა რამდენად godawful HTML და JavaScript არის გვერდი, 133 00:08:10,700 --> 00:08:15,710 გავიხსენოთ, რომ ელემენტები tab შეგიძლიათ რეალურად ნავიგაცია HTML იერარქიულად 134 00:08:15,710 --> 00:08:17,050 და ლამაზი და neatly. 135 00:08:17,050 --> 00:08:19,370 ასე რომ, თუ თქვენ ცდილობთ ვისწავლოთ ნახვა, როგორიცაა Google ან Facebook 136 00:08:19,370 --> 00:08:22,370 ან მართლაც ნებისმიერ ნახვა, გააცნობიეროს, რომ თქვენ ალბათ უკეთესი იქნება 137 00:08:22,370 --> 00:08:26,360 ეძებს კოდის ამ გზით, როგორც ეწინააღმდეგებოდა ათვალიერებენ ნედლეული წყარო, 138 00:08:26,360 --> 00:08:29,580 რაც შეიძლება იყოს არეულობა, როგორც ჩვენ ვნახეთ განსაკუთრებით Google-ის საიტი. 139 00:08:29,580 --> 00:08:32,220 ასე რომ, თუ მე ნაცვლად დააწკაპუნეთ ქსელი tab აქ, 140 00:08:32,220 --> 00:08:34,830 ვნახოთ რა ხდება, როდესაც მე ეწვევა ამ გვერდზე. 141 00:08:34,830 --> 00:08:38,669 პირველი ნება მომეცით გარკვევას ჩემი ქეში. 142 00:08:38,669 --> 00:08:43,570 მე ვაპირებ წასვლას პარამეტრების Chrome, შემდეგ კი ისტორია 143 00:08:43,570 --> 00:08:46,420 და შემდეგ წმინდა ყველა განცხადება მონაცემები. 144 00:08:46,420 --> 00:08:48,170 თქვენ შეიძლება გამოყენებულ იქნას ამით სხვა მიზნით, [სიცილის] 145 00:08:48,170 --> 00:08:51,990 მაგრამ როდესაც საქმე განვითარებად საიტებზე, სინამდვილეში სასარგებლო - 146 00:08:51,990 --> 00:08:55,980 თუ თქვენ იცინის თქვენ იცით. [სიცილის] 147 00:08:55,980 --> 00:08:59,310 სინამდვილეში მართლაც სასარგებლოა, როდესაც განვითარებად საიტებზე რადგან რეალობა 148 00:08:59,310 --> 00:09:04,100 რამ, როგორიცაა cookies და რამ, როგორიცაა ქეშირებული HTML ფაილი ქეშირებული JavaScript ფაილები 149 00:09:04,100 --> 00:09:06,390 შეიძლება რეალურად გახდეს დიდი თავის ტკივილი, რადგან თუ სხვადსხვა მიზეზის გამო 150 00:09:06,390 --> 00:09:11,500 ბრაუზერის გადაწყვეტს ქეში რამდენიმე ფაილი და ჯერჯერობით თქვენ ცვლილებები შეიტანა, რომ ფაილი სერვერზე 151 00:09:11,500 --> 00:09:14,670 მაგრამ ბრაუზერი არ ნამდვილად მიხვდა, რომ ფაილი შეიცვალა 152 00:09:14,670 --> 00:09:19,060 და ამიტომ ფაქტობრივად არ ხელახლა გადმოწეროთ მაშინაც კი, როდესაც თქვენ დააჭირეთ ღილაკს ჩატვირთვა, 153 00:09:19,060 --> 00:09:23,210 ერთერთი ყველაზე surefire გზა უბრალოდ დარწმუნდით ბრალი არ არის თქვენი კოდი, 154 00:09:23,210 --> 00:09:26,480 ეს ერთად ქცევის ბრაუზერი, არის წავიდეთ აქ თქვენს ბრაუზერში 155 00:09:26,480 --> 00:09:29,950 და მხოლოდ გარკვევას მთელი ისტორია ისე, რომ არ არსებობს გაურკვევლობა. 156 00:09:29,950 --> 00:09:33,210 >> ხოლო შემდეგ, თუ თქვენ ნამდვილად გსურთ იყოს Paranoid, დატოვა ბრაუზერის, გადატვირთეთ იგი, 157 00:09:33,210 --> 00:09:35,660 და შემდეგ დარწმუნდით ყველა მუშაობს როგორც მოსალოდნელია. 158 00:09:35,660 --> 00:09:38,820 ასე მოკლედ, გაწმენდის cache კარგია, როცა აკეთებს განვითარებას. 159 00:09:38,820 --> 00:09:40,690 ასე რომ აქ გვაქვს ქსელი tab. 160 00:09:40,690 --> 00:09:46,020 მე ადრე მოინახულა საიტი 9 ჯერ, მაგრამ ნება მიბოძეთ წავიდეთ წინ არის და დაწკაპეთ ჩატვირთვა. 161 00:09:46,020 --> 00:09:47,500 და დავბრუნდი ქვემოთ 0. 162 00:09:47,500 --> 00:09:52,100 მოდით რეალურად ვხვდებით, როგორ შეიძლება ის არის, რომ ამ სხდომაზე superglobal ხორციელდება. 163 00:09:52,100 --> 00:09:55,990 მე ვაპირებ დააწკაპუნეთ 1 HTTP მოთხოვნის, რომ გაკეთდა, 164 00:09:55,990 --> 00:09:58,810 და ამ გამართვის ფანჯარა საშუალებას ჩემთვის შიგნიდან რომ. 165 00:09:58,810 --> 00:10:01,970 აქ მე ვხედავ მხოლოდ რეაგირება სერვერზე, რომელიც არ არის საინტერესო. 166 00:10:01,970 --> 00:10:04,030 მე ვნახე ეს ნებისმიერი რაოდენობის გზები. 167 00:10:04,030 --> 00:10:06,350 მაგრამ რა ტექნიკურად საინტერესოა headers. 168 00:10:06,350 --> 00:10:11,770 თუ მე გადახვევა ქვემოთ აქ და ფოკუსირება მოთხოვნის ზედა და დააჭირეთ იხილე წყარო, 169 00:10:11,770 --> 00:10:14,400 რა მე ვაპირებ ვხედავ არის სიტყვასიტყვით HTTP მოთხოვნის 170 00:10:14,400 --> 00:10:17,250 რომ წავიდა, ჩემი ბრაუზერის სერვერზე, 171 00:10:17,250 --> 00:10:21,400 GET მყოფი ოპერატიული სიტყვა და შემდეგ / counter.php მყოფი ფაილის სახელი, 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 მხოლოდ კონკრეტდება ვერსია HTTP, რომ ჩემი ბრაუზერის იყენებს. 173 00:10:25,670 --> 00:10:31,070 ეს ხაზი აქ არის პატარა შეხსენება საწყისი ბრაუზერი სერვერზე რა სახელით სერვერზე არის 174 00:10:31,070 --> 00:10:33,020 რომ მას სურს გაიგო. 175 00:10:33,020 --> 00:10:38,200 და შემდეგ დანარჩენი ეს არის ზოგჯერ საინტერესო მაგრამ არა შესაბამისი ახლავე. 176 00:10:38,200 --> 00:10:40,090 >> ეს არის მხოლოდ სახის ცნობისმოყვარეობა. 177 00:10:40,090 --> 00:10:43,530 Cryptic თუმცა ამ სტრიქონს, ნებისმიერ დროს თქვენი ბრაუზერის სტუმრობს ნახვა 178 00:10:43,530 --> 00:10:47,110 იგი ინფორმირება სერვერზე რა ბრაუზერში თქვენ იყენებთ 179 00:10:47,110 --> 00:10:50,040 და რა ოპერაციული სისტემა თქვენ იყენებთ და რა ვერსია მისი. 180 00:10:50,040 --> 00:10:52,650 ასე რომ, თუ თქვენ ოდესმე გვაინტერესებდა, როგორ საიტებზე, როგორიცაა CNN და whatnot 181 00:10:52,650 --> 00:10:56,860 ვიცით, რა პროცენტული არის Mac მომხმარებლებს ინტერნეტში, PC მომხმარებლებს, 182 00:10:56,860 --> 00:11:00,820 IE მომხმარებლებს, Chrome წევრებს და მოსწონს, ეს იმიტომ, რომ ყველა ჩვენი ბროუზერები 183 00:11:00,820 --> 00:11:04,300 ვეუბნებით თითოეული ნახვა out არსებობს, რაც ჩვენ ვართ. 184 00:11:04,300 --> 00:11:07,410 ეს სულაც არ შეიცავდეს პირად ინფორმაციას, 185 00:11:07,410 --> 00:11:13,060 მაგრამ ჯერ გეტყვით სერვერს რა თქვენი IP არის და რა ბრაუზერი და OS თქვენ იყენებთ. 186 00:11:13,060 --> 00:11:14,720 ასე რომ, სადაც ეს ინფორმაცია. 187 00:11:14,720 --> 00:11:19,960 მაგრამ რა არის უფრო საინტერესო არის, როდესაც საქმე ეს სხდომები არის საპასუხო header. 188 00:11:19,960 --> 00:11:22,530 ნება მომეცით დააჭირეთ View Source შემდეგ რეაგირება. 189 00:11:22,530 --> 00:11:24,590 რა არის საინტერესო აქ არის რამდენიმე რამ. 190 00:11:24,590 --> 00:11:27,580 1, მივიღეთ უკან მდგომარეობა კოდი 200. 191 00:11:27,580 --> 00:11:29,840 ჩვენ არასდროს ვხედავთ ამ სტატუსის კოდი რადგან ეს ნიშნავს, რომ ყველა კარგად არის. 192 00:11:29,840 --> 00:11:32,920 ეს ნიშნავს სიტყვასიტყვით okay განსხვავებით რაღაც. 193 00:11:32,920 --> 00:11:36,380 რა რაოდენობის ჩვენ ხანდახან ვხედავ, რომ არის ცუდი? [სტუდენტი] 404. 194 00:11:36,380 --> 00:11:39,860 404, ფაილი ვერ მოიძებნა, 403 თქვენ შეიძლება stumbling საფუძველზე უკვე, 195 00:11:39,860 --> 00:11:43,660 რაც აკრძალულია, რაც იმას ნიშნავს, თქვენ დაავიწყდა chmod რაღაც, სავარაუდოდ. 196 00:11:43,660 --> 00:11:45,190 წინ კიდევ ერთი bunch of სხვები. 197 00:11:45,190 --> 00:11:47,760 >> Down აქ, ეს არის პატარა გიჟები. 198 00:11:47,760 --> 00:11:52,340 მე ნამდვილად უბრალოდ დაწერა ამ ფაილის რამდენიმე წუთის წინ მიერ pasting მას gedit. 199 00:11:52,340 --> 00:11:57,100 რატომ ამ გვერდზე იწურება 1981 წელს ადრე მართლაც იყო საიტი? 200 00:11:58,010 --> 00:12:00,730 რა ხდება იქ? 201 00:12:00,730 --> 00:12:04,390 >> [Inaudible სტუდენტი საპასუხოდ] დრო შტამპი. მაგრამ რატომ? 202 00:12:06,110 --> 00:12:09,120 ეს გარკვეულწილად თვითნებური, მაგრამ სინამდვილეში სასარგებლო. 203 00:12:09,120 --> 00:12:15,500 რა ამ ამბობს ჩემს ბრაუზერს ამ PHP ფაილი თქვენ უბრალოდ მოითხოვა უკვე გაუვიდა. 204 00:12:15,500 --> 00:12:18,580 ფაქტობრივად, ეს ვადა გაუვიდა 30 წლის წინ. 205 00:12:18,580 --> 00:12:20,260 მაგრამ რას ნიშნავს? 206 00:12:20,260 --> 00:12:22,500 ეს უბრალოდ ნიშნავს, შემდეგი დროის მომხმარებლის სტუმრობს ამ გვერდზე, 207 00:12:22,500 --> 00:12:25,540 თუ არა მიერ გადატვირთვა ან აკრეფით URL განცხადებაში ბარი, 208 00:12:25,540 --> 00:12:28,010 დარწმუნდით წასვლა და მოიტანონ ახალი ასლი. 209 00:12:28,010 --> 00:12:30,840 ეს არის ერთგვარი მაგალითი cache busting, 210 00:12:30,840 --> 00:12:33,790 სულელური სიტყვა, რომელიც მხოლოდ იმას ნიშნავს, ცდილობს დაუკარგავს ბრაუზერები 211 00:12:33,790 --> 00:12:37,260 საწყისი რეალურად ქეშირების HTML რომ ჩამოვიდა სერვერი 212 00:12:37,260 --> 00:12:41,490 ასე რომ თქვენ არ მოხვდა შემთხვევით განახლება და შემდეგ ვხედავთ იგივე ვერსია ფაილი. 213 00:12:41,490 --> 00:12:43,730 თქვენ ნამდვილად გინდათ სერვერზე გააგზავნოს ახალი ასლი. 214 00:12:43,730 --> 00:12:47,440 ასე რომ ის ფაქტი, რომ ეს 1981 უბრალოდ იმას ნიშნავს, რომ სწორედ ელექტრო მოწყობილობების არის არჩევის 215 00:12:47,440 --> 00:12:50,280 როგორც თვითნებური თარიღი წარსულში. 216 00:12:50,280 --> 00:12:53,380 მაგრამ რეალური წვნიანი ხაზი არის ამ ერთ. 217 00:12:53,380 --> 00:12:57,550 ჯერ კიდევ 50 თქვენ ალბათ ბუნდოვნად იცნობს cookies. 218 00:12:57,550 --> 00:13:01,820 როგორც ახლა, განსაკუთრებით იმ ნაკლებად კომფორტული ან შორის, 219 00:13:01,820 --> 00:13:04,120 რა არის ფუნთუშა თქვენს გაგება ახლავე 220 00:13:04,120 --> 00:13:06,980 მიუხედავად იმისა, რომ ჩვენ დაახლოებით რათა თქვენი გაგება უფრო ტექნიკური? 221 00:13:08,150 --> 00:13:10,070 რა არის ბმული? Yeah. 222 00:13:10,070 --> 00:13:13,890 [სტუდენტი] ინფორმაცია მომხმარებლის, ისევე როგორც, თუ ისინი დაწერილი მათი სახელი ან რაღაც. 223 00:13:13,890 --> 00:13:17,370 >> კარგი. ეს ინფორმაციას მომხმარებელი, თუ არა ისინი აკრეფილი მათი მომხმარებლის სახელი უკვე. 224 00:13:17,370 --> 00:13:21,190 ნაჭდევი გზა, რომლითაც სერვერებს მახსოვს რაღაც შესახებ მომხმარებელს. 225 00:13:21,190 --> 00:13:25,810 და რა ფუნთუშა მართლაც არის ტექსტური ფაილი ან თანმიმდევრობა bytes 226 00:13:25,810 --> 00:13:28,340 რომ დარგეს მიერ სერვერზე შიგნით ბრაუზერში 227 00:13:28,340 --> 00:13:31,960 და შიგნით რომ ფაილი ან იმ bytes ერთგვარი იდენტიფიკატორი. 228 00:13:31,960 --> 00:13:35,640 შეიძლება უფრო სიტყვასიტყვით თქვენი მომხმარებლის სახელი, მაგრამ უფრო ხშირად ეს რაღაც უფრო cryptic ორიენტირებული 229 00:13:35,640 --> 00:13:43,700 მსგავსი რამ აქ - bo8dal3ct და ა.შ. - ეს მართლაც დიდი ალფანუმერული სიმებიანი 230 00:13:43,700 --> 00:13:47,050 რომ მართლაც მხოლოდ ნიშნავს, რომ უნიკალური იდენტიფიკატორი თქვენთვის. 231 00:13:47,050 --> 00:13:49,790 ან თქვენ შეგიძლიათ ვფიქრობ, რომ ეს ერთგვარი ვირტუალური მხრივ შტამპი. 232 00:13:49,790 --> 00:13:53,020 თუ ზოგიერთ კლუბში ან გასართობი პარკი, უნდა გვახსოვდეს, რომ თქვენ რეალურად გადახდილი 233 00:13:53,020 --> 00:13:55,850 და Gone in, ისინი პატარა წითელი სტიკერზე თქვენი მხრივ რაიმე სახის, 234 00:13:55,850 --> 00:13:59,270 და რომ ახსენებს ადამიანს counter რომ თქვენ უკვე გადახდილი 235 00:13:59,270 --> 00:14:01,340 და შეგიძლიათ დაბრუნდნენ, როგორც თქვენ, გთხოვთ. 236 00:14:01,340 --> 00:14:04,250 Cookies ხართ პატარა მსგავსი სულისკვეთება რომ. 237 00:14:04,250 --> 00:14:08,070 პირველად ვიყავი ამ ნახვა, როგორც მე, უბრალოდ გააკეთეს შემდეგ იღებენ ჩემი ქეში, 238 00:14:08,070 --> 00:14:11,620 სერვერზე, ელექტრო ამ შემთხვევაში, დააყენოს ბეჭედი ჩემს მხრივ 239 00:14:11,620 --> 00:14:15,030 რომლის სახელიც PHPSESSID სხდომის ID, 240 00:14:15,030 --> 00:14:18,260 რომელთა ღირებულება არის ამ მართლაც ხანგრძლივი ალფანუმერული სიმებიანი. 241 00:14:18,260 --> 00:14:22,470 >> ასე რომ, ახლა ერთგვარი emblazoned ჩემს მხრივ ისე, რომ მომავალი დრო მე მოხვდა განაახლეთ 242 00:14:22,470 --> 00:14:25,230 ან ხელით ეწვევა ამ მისამართს ბრაუზერში, 243 00:14:25,230 --> 00:14:29,230 ჩემი ბრაუზერის მიერ განმარტებას HTTP აპირებს წარმოადგინოს მხრივ შტამპი 244 00:14:29,230 --> 00:14:31,940 ისევ და ისევ და ისევ. 245 00:14:31,940 --> 00:14:34,550 ასე რომ მიუხედავად იმისა, რომ სერვერზე არ არის აუცილებელი იცის ვინ ვარ, 246 00:14:34,550 --> 00:14:39,610 ისინი მინიმუმ იცოდეს, რომ მე ვარ იგივე მომხმარებლის ან თუნდაც, უფრო კონკრეტულად კი, იმავე ბრაუზერში. 247 00:14:39,610 --> 00:14:45,660 და ა.შ. ეს არის საბოლოო ჯამში როგორ სესიაზე superglobal ხორციელდება. 248 00:14:45,660 --> 00:14:51,200 სერვერზე არ არის იდეა ვინ ხარ შენ, როდესაც თქვენ დავუბრუნდეთ ნახვა მეორე ან მესამე 249 00:14:51,200 --> 00:14:53,410 თუ თქვენ წარმოადგინოს ამ მხრივ შტამპი. 250 00:14:53,410 --> 00:14:55,530 და როგორც კი თქვენ წარმოადგინოს, რომ მხრივ შტამპი, 251 00:14:55,530 --> 00:14:59,370 სერვერზე არსებითად გადადის პატარა მონაცემთა ბაზის საკუთარი 252 00:14:59,370 --> 00:15:06,040 და ამოწმებს, okay, მე ახლახან ჩანს მხრივ შტამპი მომხმარებლის bo8dal3ct და სხვ. 253 00:15:06,040 --> 00:15:09,850 ნება მომეცით ვხედავ თუ რა ინფორმაციას პროგრამისტი არ ინახება 254 00:15:09,850 --> 00:15:12,380 შიგნით superglobal ამ მომხმარებლის, 255 00:15:12,380 --> 00:15:17,000 და მაშინ ნება მომეცით დარწმუნდით, რომ მონაცემები კვლავ შიგნით სესიაზე superglobal 256 00:15:17,000 --> 00:15:19,830 ისე, რომ პროგრამისტი შეიძლება ხელახლა შედიხართ, რომ მონაცემები 257 00:15:19,830 --> 00:15:23,360 თუნდაც ის შეიქმნა რამდენიმე წუთის ან საათის წინ. 258 00:15:23,360 --> 00:15:26,150 ასე რომ, სხვა სიტყვებით, cookies, რომლებმაც მოიპოვეს ცუდი Rap გარკვეული დროის განმავლობაში 259 00:15:26,150 --> 00:15:29,990 გამო insecurities წელს ბრაუზერები და მათ შეუძლიათ ნამდვილად არღვევს ჩვენი კონფიდენციალურობის და ამ ყველაფრისა, 260 00:15:29,990 --> 00:15:31,900 სინამდვილეში გააჩნიათ დიდი კომუნალური ვინაიდან მათ გარეშე 261 00:15:31,900 --> 00:15:36,110 თქვენ მუდმივად უნდა შესასვლელად ყველა Facebook გვერდზე თქვენ ეწვევა 262 00:15:36,110 --> 00:15:40,680 ან ყოველ Gmail ელ წაიკითხოთ თუ ბრაუზერის არ გვაქვს გზა დამახსოვრების 263 00:15:40,680 --> 00:15:43,320 რომ თქვენ უკვე დამოწმებული. 264 00:15:43,320 --> 00:15:46,640 >> ასე რომ ამ გზით Cookies იგზავნება უკან და მეოთხე მასშტაბით მავთული. 265 00:15:46,640 --> 00:15:52,470 კიდევ ერთი ცნობისმოყვარეობა შესახებ cookies, განსაკუთრებით აქ, არის, რომ ეს არის სრულიად cleartext. 266 00:15:52,470 --> 00:15:54,930 იქ არ არის დაშიფვრის მიმდინარეობს აქ განაწილებაზე, 267 00:15:54,930 --> 00:15:57,240 და მართლაც მე გამოყენებით HTTP მომენტში. 268 00:15:57,240 --> 00:16:00,890 ერთი ჩვენი სანიშნეს მომენტია, CS50, რომელიც არის 2 წლის წინ, 269 00:16:00,890 --> 00:16:04,750 იყო დაახლოებით დრო ინსტრუმენტი მოუწოდა Firesheep გამოვიდა. 270 00:16:04,750 --> 00:16:08,320 ეს იყო თავისუფალი ნაჭერი პროგრამული უზრუნველყოფა, რომელიც გააკეთა უსაფრთხოების მკვლევარი 271 00:16:08,320 --> 00:16:13,250 როგორც გაღვიძების მოწოდება თანამეგობრობას ვთქვა, თუ რამდენად atrociously განხორციელდა 272 00:16:13,250 --> 00:16:17,900 გარკვეული ავტორიზაციის მექანიზმები Web იყო. 273 00:16:17,900 --> 00:16:22,880 ასე რომ, გარკვეული დროის, Facebook იყო თითქმის მთლიანად მეტი HTTP, HTTPS არ. 274 00:16:22,880 --> 00:16:25,640 და მაშინაც კი, თუ თქვენ არ ვიცი როგორ მუშაობს შიფრის, S არის უსაფრთხო 275 00:16:25,640 --> 00:16:27,950 ეს იმას ნიშნავს, არსებობს მინიმუმ კოდირების ზოგიერთი ჩართული. 276 00:16:27,950 --> 00:16:30,610 Facebook საერთოდ გამოყენებული დაშიფვრა მომხმარებლის სახელები და პაროლები, 277 00:16:30,610 --> 00:16:33,560 მაგრამ, როგორც კი თქვენ შევხედე თქვენი pokes ან შეტყობინებებს, ან თქვენი ამბები feed, 278 00:16:33,560 --> 00:16:35,360 ყველა რომ იყო unencrypted. 279 00:16:35,360 --> 00:16:37,870 ასე იყო Gmail სანამ მხოლოდ წელიწადში ან 2 წინ. 280 00:16:37,870 --> 00:16:41,100 ნებისმიერ დროს თქვენ ხართ შესული სისტემაში, დიახ, ისინი გამოყენებული უსაფრთხო შიფრირების, 281 00:16:41,100 --> 00:16:44,300 მაგრამ შემდგომ ისინი არ გაჩერდნენ. და რატომ შეიძლება რომ იყოს? 282 00:16:44,300 --> 00:16:49,210 რატომ არა მხოლოდ გამოიყენოს კრიპტოგრაფიის ყველა დროის გამოყენების შემთხვევებში ასე? 283 00:16:49,210 --> 00:16:53,700 რა არის ეს? ვფიქრობ გავიგე რაღაც. [სტუდენტი] სიჩქარე. 284 00:16:53,700 --> 00:16:56,250 სიჩქარე, არა? არსებობს გზები გარშემო. 285 00:16:56,250 --> 00:16:59,610 მაგრამ თუ უბრალოდ სახის დაფიქრდით ლოგიკურად, თუ გაშიფრავს რაღაც, 286 00:16:59,610 --> 00:17:01,820 ამისათვის მინიმუმ ცოტა მეტი მუშაობა. 287 00:17:01,820 --> 00:17:05,460 In pset 2 როდესაც თქვენ განხორციელებული Caesar ან Vigenere ან თუნდაც კრეკი, 288 00:17:05,460 --> 00:17:07,760 უბრალოდ ბეჭდვა სიმებიანი შედარებით ადვილი. 289 00:17:07,760 --> 00:17:12,040 Encrypting და შემდეგ დაბეჭდვის სიმებიანი მინიმალურად მოითხოვს ცოტა მეტი მუშაობა. 290 00:17:12,040 --> 00:17:14,520 >>  იყიდება სუპერ პოპულარული საიტებზე, როგორიცაა Google და Facebook, 291 00:17:14,520 --> 00:17:18,839 თუ თქვენ გაქვთ უფრო მეტი მუშაობის თითოეული მომხმარებლის ამისთვის თითოეული ვებ გვერდზე ისინი მოინახულებენ, 292 00:17:18,839 --> 00:17:20,520 რომ მხოლოდ იღებს უფრო CPU დრო. 293 00:17:20,520 --> 00:17:22,920 და თუ გჭირდებათ მეტი CPU დროს, თქვენ ალბათ საჭიროა მეტი სერვერები, 294 00:17:22,920 --> 00:17:24,270 რაც იმას ნიშნავს, თქვენ ალბათ საჭიროა მეტი ფული. 295 00:17:24,270 --> 00:17:27,579 და ასე მრავალი წლის განმავლობაში ამ უბრალოდ ნამდვილად არ იყო საუკეთესო პრაქტიკა. 296 00:17:27,579 --> 00:17:31,440 ხალხი გამოიყენოთ SSL შიფრირების მხოლოდ მაშინ, როდესაც ისინი საჭირო. 297 00:17:31,440 --> 00:17:34,960 მაგრამ აღმოჩნდა, და როგორც ამ თანამემამულე ერთად Firesheep გააკეთა სუპერ წმინდა, 298 00:17:34,960 --> 00:17:37,920 როდესაც თქვენ ბიჭები რომლებიც ამჟამად Facebook-ზე ახლა - 299 00:17:37,920 --> 00:17:39,880 აქედან ცნობისმოყვარეობა, ვნახოთ თუ თქვენ fess up. 300 00:17:39,880 --> 00:17:42,620 თუ თქვენ წლის Facebook ახლავე ზოგიერთ tab, თუნდაც ეს არ foregrounded, 301 00:17:42,620 --> 00:17:46,610 თქვენი URL HTTP ან HTTPS? 302 00:17:46,610 --> 00:17:50,560 [მრავალჯერადი სტუდენტებს] S. S? [სიცილის] 303 00:17:50,560 --> 00:17:55,510 Okay. ნებისმიერი HTTP? მხოლოდ 1? Okay. 304 00:17:55,510 --> 00:17:58,940 ასე რომ ყველა ჩვენგანი შეიძლება hack რომ Guy Facebook-ის ანგარიშის ახლავე. 305 00:17:58,940 --> 00:18:04,100 უმეტესწილად ეს გახდა ჩართული იყოს, ყოველ შემთხვევაში ზოგიერთი საიტებზე. 306 00:18:04,100 --> 00:18:08,120 და გრძელი ამბავი მოკლედ, თუ თქვენი ვებ Traffic არ არის დაშიფრული, 307 00:18:08,120 --> 00:18:12,960 არა მხოლოდ ამჯამად HTML უკან და მეოთხე მასშტაბით WiFis unencrypted, 308 00:18:12,960 --> 00:18:16,760 ასე რომ რამ, როგორიცაა Cookies უკან და მეოთხე მთელი საჰაერო 309 00:18:16,760 --> 00:18:18,940 ყოველგვარი ფორმის კოდირებით. 310 00:18:18,940 --> 00:18:23,540 ასე რომ, თუ თქვენ გაქვთ უბრალოდ ცოტა პროგრამირების საზრიანი ან ცოტა Googling უნარები 311 00:18:23,540 --> 00:18:27,410 მოძიების უფასო პროგრამული უზრუნველყოფის რომ აკეთებს ამას, ყველა თქვენ უნდა გააკეთოთ იჯდეს Starbucks 312 00:18:27,410 --> 00:18:30,680 ან იჯდეს აეროპორტში, სადაც ის ჩვეულებრივ unencrypted WiFi 313 00:18:30,680 --> 00:18:36,070 და მხოლოდ მიაქციოს Keywords მოსწონს Set-Cookie: PHPSESSID ან 314 00:18:36,070 --> 00:18:39,300 რადგან თუ თქვენ გაქვთ ტექნიკური საზრიანი უბრალოდ უყუროთ WiFi 315 00:18:39,300 --> 00:18:43,010 ყველა ბიტი, რომ ნაკადის მასშტაბით საჰაერო ამ ნიმუში, 316 00:18:43,010 --> 00:18:50,840 შეგიძლიათ შემდეგ ამბობენ, რომ გაი ს PHPSESSID ხდება იყოს bo8dal და სხვ. 317 00:18:50,840 --> 00:18:53,890 და მერე ისევ თუ თქვენ საკმარისად ტექნიკურად საზრიანი ან აქვს უფლება ინსტრუმენტი, 318 00:18:53,890 --> 00:18:58,890 შეგიძლიათ შემდეგ მხოლოდ reconfigure თქვენი საკუთარი ბრაუზერის დაიწყოს წარდგენის რომ მხრივ შტამპი 319 00:18:58,890 --> 00:19:05,030 to Facebook.com და Facebook უბრალოდ აპირებს ვივარაუდოთ, რომ თქვენ, რომ ბიჭს 320 00:19:05,030 --> 00:19:09,880 რადგან ყველა იციან არ არის ვინ ხარ შენ, არამედ, რომ თქვენ ეს უნიკალური იდენტიფიკატორი. 321 00:19:09,880 --> 00:19:14,650 ასე რომ, თუ თქვენ იპარავს, რომ უნიკალური იდენტიფიკატორი და წარადგინოს იგი სერვერზე როგორც საკუთარ, 322 00:19:14,650 --> 00:19:16,860 ისინი უბრალოდ აპირებს აჩვენოს, რომ პირის ამბები Feed 323 00:19:16,860 --> 00:19:18,980 ან რომ პირის შეტყობინებები ან pokes. 324 00:19:18,980 --> 00:19:23,190 >> და მინდა Google ახლა როგორ გაააქტივოთ HTTPS Facebook-ალბათ. 325 00:19:23,190 --> 00:19:25,150 მაგრამ ეს ნამდვილად არ არის, როგორც მარტივი, როგორც რომ. 326 00:19:25,150 --> 00:19:27,660 და ასე Facebook და Google და მოსწონს არ მიღებული მართლაც კარგი ამ, 327 00:19:27,660 --> 00:19:31,870 მაგრამ შენარჩუნება თვალის ყველა მეტი ნებისმიერი საიტებზე თქვენ ესტუმრებით, რომ არ იყენებენ HTTP 328 00:19:31,870 --> 00:19:35,020 და გარკვეული სახის მგრძნობიარე ინფორმაციას მათ, 329 00:19:35,020 --> 00:19:37,490 თუ არა ფინანსური ან პირადი ან ანალოგიური. 330 00:19:37,490 --> 00:19:43,180 თუ ისინი არ იყენებენ ამ, საკმაოდ შესაძლოა შეიძლება Cookies მოსწონს ეს ძალიან ადვილად მოპარული 331 00:19:43,180 --> 00:19:46,270 და შემდეგ ყალბი და ეს ზუსტად რა Firesheep გააკეთა. 332 00:19:46,270 --> 00:19:48,250 თქვენ არ უნდა იყოს პროგრამისტი. 333 00:19:48,250 --> 00:19:51,680 ყველა თქვენ უნდა გაეკეთებინათ იყო არ ინტერნეტ კავშირს, download this უფასო ინსტრუმენტი, 334 00:19:51,680 --> 00:19:56,490 და რა იქნებოდა გააკეთოთ თქვენ შეხვიდეთ სისტემაში და მაშინ გაჩვენებთ Facebook სახელები 335 00:19:56,490 --> 00:20:00,170 ყველას წელს Sanders, ამ კონკრეტულ დემონსტრირება, თქვენს გარშემო 336 00:20:00,170 --> 00:20:03,260 და ყველა თქვენ უნდა გაეკეთებინათ იყო დააწკაპუნეთ მათი სახელი და პროგრამული ავტომატიზირებულია პროცესი 337 00:20:03,260 --> 00:20:05,970 საქართველოს sniffing რომ ფუნთუშა, წარდგენის მას Facebook როგორც საკუთარ, 338 00:20:05,970 --> 00:20:07,990 და, voila, თქვენ ხართ შემოსული 339 00:20:07,990 --> 00:20:11,190 ასე რომ, ეს არის კიდევ ერთი იმ "არა ამ" ოფიციალურად. 340 00:20:11,190 --> 00:20:14,660 თუ თქვენ გაქვთ თქვენი საკუთარი სახლის ქსელში და გსურთ Tinker, ყველა საშუალებით, 341 00:20:14,660 --> 00:20:17,530 მაგრამ გააცნობიეროს ეს იმას გადაკვეთა ხაზი უნივერსიტეტის გარემოში. 342 00:20:17,530 --> 00:20:20,030 >> მაგრამ მიზანი აქ მართლაც აღვნიშნო არ როგორ უნდა გააკეთოს ამ 343 00:20:20,030 --> 00:20:22,320 მაგრამ როგორ დაიცვან წინააღმდეგ ასეთი რამ. 344 00:20:22,320 --> 00:20:26,180 და ტრივიალური გამოსავალი აქ, მიუხედავად იმისა, რომ თავად არის სრულყოფილი, 345 00:20:26,180 --> 00:20:31,360 არის ნამდვილად შეამციროს ნებისმიერი საიტებზე რომ არ იყენებთ HTTPS მუდმივად. 346 00:20:31,360 --> 00:20:34,520 ამიტომ საიტებზე როგორიცაა Facebook და Google სულ უფრო აქვს checkboxes 347 00:20:34,520 --> 00:20:36,200 სადაც შეგიძლიათ აირჩიონ წელს ამ სახის რამ, 348 00:20:36,200 --> 00:20:40,000 და ბანკებს არ ჰქონდათ ამ წლების განმავლობაში, ამ მიზეზით. 349 00:20:40,000 --> 00:20:43,580 ასე რომ მხოლოდ ცოტა შიშის ფაქტორი თუ შეგვიძლია. მაგრამ ეს მას მოკლედ. 350 00:20:43,580 --> 00:20:46,420 ასე სერვერი ახსოვს ვინ ხარ შენ. 351 00:20:46,420 --> 00:20:50,760 და როგორც კი მახსოვს ვინ ხარ შენ, ისინი მახსოვს არაფერი თქვენ 352 00:20:50,760 --> 00:20:56,140 რომ პროგრამისტი არ ინახება შიგნით ამ სპეციალური superglobal მოუწოდა $ _SESSION. 353 00:20:56,140 --> 00:20:59,750 და pset 7 ჩვენ იყენებს trivially უბრალოდ უნდა გვახსოვდეს, int, 354 00:20:59,750 --> 00:21:02,260 კერძოდ უნიკალური პირადობის მომხმარებლის რომელმაც შესული სისტემაში, 355 00:21:02,260 --> 00:21:05,880 ასე რომ, ჩვენ ვიცით, რომ ისინი უკვე იქ ადრე. 356 00:21:05,880 --> 00:21:12,450 ნებისმიერი კითხვები შემდეგ სხდომებზე ან Cookies ან მოსწონს? 357 00:21:12,450 --> 00:21:15,130 Firesheep არ მუშაობს ისევე აღარ, 358 00:21:15,130 --> 00:21:18,310 და თქვენ უნდა დააყენოს თქვენი კომპიუტერის შევიდა სპეციალური Promiscuous რეჟიმი 359 00:21:18,310 --> 00:21:20,700 ამიტომ თქვენ ფაქტობრივად მოსმენის სატრანსპორტო გარდა თქუენგან. 360 00:21:20,700 --> 00:21:23,940 ასე რომ, თუ თქვენ გაკეთებული ჩამოტვირთვის Firesheep, გააცნობიეროს ეს არ საკმაოდ მარტივი 361 00:21:23,940 --> 00:21:26,850 როგორც ეს ადრე იყო იმის დემონსტრირება. 362 00:21:26,850 --> 00:21:29,070 ყველა უფლება. და არა ის Sanders. ამის გაკეთება სახლში. 363 00:21:29,070 --> 00:21:30,890 მონაცემთა ბაზა. 364 00:21:30,890 --> 00:21:33,580 ერთი რამ ჩვენ გააკეთა pset 7 სრულიად შეგნებულად 365 00:21:33,580 --> 00:21:37,780 იყო ჩვენ გაძლევთ ნიმუში მონაცემთა ბაზა მაგიდა წევრებს, რომ აქვს გარკვეული მომხმარებლის პირადობის, 366 00:21:37,780 --> 00:21:41,020 ზოგიერთი მომხმარებლის სახელები და ზოგიერთი დაშიფრული პაროლები მასში. 367 00:21:41,020 --> 00:21:44,520 და როგორც თქვენ ნახავთ, თუ არ უკვე, თქვენ აპირებს აქვს შეცვალოს მაგიდასთან ცოტა. 368 00:21:44,520 --> 00:21:47,710 თქვენ აპირებთ უნდა დაამატოთ რაიმე cache თითოეულ წევრებს ამ მაგიდასთან, 369 00:21:47,710 --> 00:21:51,130 და თქვენ ვაპირებთ უნდა დაამატოთ კიდევ ერთი ისტორია მაგიდასთან, პორტფელების მაგიდა, 370 00:21:51,130 --> 00:21:53,310 ან ალბათ ეძახით რაღაც. 371 00:21:53,310 --> 00:21:56,740 მაგრამ თვალსაზრისით ფიქრი როგორ გააკეთებს, მოდით გახსენით ეს ინსტრუმენტი 372 00:21:56,740 --> 00:22:00,570 რომელიც ჩვენ გამოყენებული პარასკევს, მაგრამ თუ უცნობ, ელექტრო გააჩნია ინსტრუმენტი 373 00:22:00,570 --> 00:22:04,680 მოუწოდა phpMyAdmin რომელიც ერთსა დაწერილი PHP, 374 00:22:04,680 --> 00:22:07,950 მაგრამ მისი მიზანი ცხოვრებაში, შემდეგ მე, შედით აქ როგორც jharvard ერთად ჟოლოსფერი, 375 00:22:07,950 --> 00:22:15,160 არის მომეცი მოსახერხებელი გზა ათვალიერებენ და იცვლება ჩემი მონაცემთა ბაზა. 376 00:22:15,160 --> 00:22:18,040 >> მონაცემთა ბაზა, რომელიც მე გაშვებული ელექტრო ეწოდება MySQL. 377 00:22:18,040 --> 00:22:23,420 ეს არის ძალიან პოპულარული, და ეს უფასო ღია კოდის მონაცემთა ბაზა, რომელიც არის ულამაზესი მარტივი, 378 00:22:23,420 --> 00:22:25,620 განსაკუთრებით წინა დამთავრდა მოსწონს ეს. 379 00:22:25,620 --> 00:22:29,350 რა ამ ინსტრუმენტი საშუალებას ჩემთან გავაკეთოთ, მაგალითად, არის poke გარშემო მაგიდები. 380 00:22:29,350 --> 00:22:30,890 ნება მომეცით წავიდეთ წინ და ამის გაკეთება. 381 00:22:30,890 --> 00:22:36,580 პარასკევს შევქმენით მაგიდა მოუწოდა სტუდენტებს, რომ იყო სუპერ მარტივია. 382 00:22:36,580 --> 00:22:41,680 მას ჰქონდა 3 მწკრივი - პირადობის მოწმობა, სახელის, და ელ - და მე ხელით ჩასმული რამდენიმე რიგები 383 00:22:41,680 --> 00:22:44,420 მოსწონს დავით და მაიკ ამ კონკრეტულ მაგალითს. 384 00:22:44,420 --> 00:22:47,290 ავიღოთ ეს ცოტა შემდგომი, და მოდით ვივარაუდოთ, რომ ჩვენ გვინდა გვახსოვდეს მეტი 385 00:22:47,290 --> 00:22:49,660 ვიდრე უბრალოდ სახელი და ელექტრონული ფოსტის შესახებ მომხმარებელს. 386 00:22:49,660 --> 00:22:53,090 ნება მომეცით დააწკაპუნეთ სტრუქტურა აქ ზედა. 387 00:22:53,090 --> 00:22:55,440 ისევ და ისევ, pset დადის თქვენ მეშვეობით საჭირო ნაბიჯები აქ, 388 00:22:55,440 --> 00:22:58,150 ასე არ ინერვიულოთ, თუ ზოგიერთი ამ ოდნავ სწრაფი. 389 00:22:58,150 --> 00:22:59,690 მაშინ მე ვაპირებ დააწკაპუნეთ აქ. 390 00:22:59,690 --> 00:23:02,270 მე ვაპირებ დაამატოთ ზოგიერთი მწკრივების რიცხვი შემდეგ ელ 391 00:23:02,270 --> 00:23:04,130 რადგან მინდა დაამატოთ რაღაც სახლი. 392 00:23:04,130 --> 00:23:06,640 დამავიწყდა ჩაწერას სტუდენტის სახლი. 393 00:23:06,640 --> 00:23:11,400 ნება მომეცით დააჭირეთ წადი, და ახლა გვაქვს ამ ფორმით, რომ სამწუხაროდ არის პატარა ფართო მარცხნიდან მარჯვნივ, 394 00:23:11,400 --> 00:23:13,710 მაგრამ მე ვაპირებ მოვუწოდო სახელი ამ სფეროში სახლი, 395 00:23:13,710 --> 00:23:16,050 და მაშინ ტიპის მე ახლა უნდა აირჩიოთ. 396 00:23:16,050 --> 00:23:18,870 მოდით აქვს მოკლე სტატისტიკა შესახებ სხვადასხვა ტიპის MySQL-ში 397 00:23:18,870 --> 00:23:24,590 რადგან მაშინ როდესაც PHP არის სუსტად აკრეფილი და ეს ერთგვარი უკრავს სწრაფი და ფხვიერი ერთად ტიპის, 398 00:23:24,590 --> 00:23:29,430 მონაცემთა ბაზაში განსაკუთრებით ეს სუპერ მნიშვნელოვანია რეალურად გამოიყენოს აკრეფით თქვენი უპირატესობა 399 00:23:29,430 --> 00:23:33,260 რადგან ერთი რამ MySQL და სხვა მონაცემთა ბაზის ძრავები შეუძლია გააკეთოს თქვენთვის 400 00:23:33,260 --> 00:23:37,910 არის უზრუნველყოფა, რომ თქვენ არ დააყენა ყალბი მონაცემები თქვენს მონაცემთა ბაზაში. 401 00:23:37,910 --> 00:23:41,850 ეს არის ერთგვარი თავისუფალი შეცდომა შემოწმების ხელმისაწვდომი. 402 00:23:41,850 --> 00:23:46,250 >> ბინის ჩვენ აშკარად არ გვინდა, რომ იყოს int, რომელიც 32-bit ღირებულების MySQL. 403 00:23:46,250 --> 00:23:49,810 ჩვენ გაიგო მოკლედ პარასკევს შესახებ varchar, რომელიც დგას ცვლადი სიგრძის char. 404 00:23:49,810 --> 00:23:54,720 რა არის ეს? ეს გაძლევთ საშუალებას, რომ გსურთ ეს უნდა იყოს სიმებიანი რაიმე სახის. 405 00:23:54,720 --> 00:23:56,840 თქვენ ნამდვილად არ ვიცი წინასწარ რამდენი ხანი არის, 406 00:23:56,840 --> 00:24:00,100 ამიტომ ჩვენ თვითნებურად ამბობენ სახლში სახელი შეიძლება 255 სიმბოლოს, 407 00:24:00,100 --> 00:24:04,190 მაგრამ თქვენ შეიძლება წავიდეთ ერთად 32, 64 - ნებისმიერი რაოდენობის ნამდვილად. 408 00:24:04,190 --> 00:24:10,700 მაგრამ უპირატესობა გამოყენებით varchar მეტი საველე მოუწოდა char არის რა? 409 00:24:10,700 --> 00:24:15,110 უბრალოდ ინტუიციურად თუ გადახვევა ქვემოთ აქ, შეამჩნია იქ char და იქ varchar. 410 00:24:15,110 --> 00:24:19,520 Varchar არის ცვლადი სიგრძის char; char არის ფიქსირებული სიგრძის char. 411 00:24:19,520 --> 00:24:24,730 ასე რომ ემყარებოდეს მხოლოდ, რომ განმარტება, რა უპირატესობა ან მინუსი თითოეული ამ? 412 00:24:24,730 --> 00:24:30,490 სხვა სიტყვებით, რომელიც ზრუნავს განსხვავება, ან რატომ უნდა იზრუნოს? 413 00:24:31,660 --> 00:24:35,750 >> Yeah. [სტუდენტი] varchar აქვს მეტი მოქნილობა, მაგრამ იკავებს მეტი მეხსიერება. 414 00:24:35,750 --> 00:24:40,730 კარგი. Varchar იკავებს მეტი - ვნახოთ. მე არ ვარ დარწმუნებული, თუ გავიგე, რომ უფლება. 415 00:24:40,730 --> 00:24:42,360 შეგიძლიათ აცხადებენ, რომ კიდევ ერთხელ? 416 00:24:42,360 --> 00:24:45,850 [სტუდენტი] მე ვთქვი varchar ალბათ უფრო მეტი მოქნილობა, მაგრამ ეს იკავებს მეტი მეხსიერება. 417 00:24:45,850 --> 00:24:51,170 საინტერესო. Okay. Varchar ალბათ გაძლევთ მეტი მოქნილობა, მაგრამ იკავებს მეტი მეხსიერება. 418 00:24:51,170 --> 00:24:53,220 ეს უკანასკნელი არ არის აუცილებლად ჭეშმარიტი. 419 00:24:53,220 --> 00:24:56,290 ეს დამოკიდებულია კონტექსტში, მაგრამ მოდით, დაუბრუნდეს, რომ. 420 00:24:56,290 --> 00:25:03,230 >> [Inaudible სტუდენტი საპასუხოდ] ზუსტად. 421 00:25:03,230 --> 00:25:06,900 სინამდვილეში საქმე რომ char იქნება, როგორც წესი, გამოიყენოთ მეტი მეხსიერების 422 00:25:06,900 --> 00:25:10,950 რადგან char, ისევე როგორც C, ჰგავს სიმებიანი, ეს მასივი სიმბოლო. 423 00:25:10,950 --> 00:25:13,690 ასე რომ, თუ თქვენ ამბობთ char სფეროში სიგრძე 255, 424 00:25:13,690 --> 00:25:16,910 მონაცემთა ბაზა სიტყვასიტყვით აპირებს მოგცემთ 255 სიმბოლო. 425 00:25:16,910 --> 00:25:22,290 და თუ სახლი მთავრდება მყოფი Mather და 6 სიმბოლოს სულ, 426 00:25:22,290 --> 00:25:25,090 თქვენ გაყვანაა დაახლოებით 200 სიმბოლო. 427 00:25:25,090 --> 00:25:29,640 >> ამიტომ varchar ეფექტურად მხოლოდ იყენებს, როგორც ბევრი პერსონაჟების როგორც საჭიროა 428 00:25:29,640 --> 00:25:31,590 მდე მაქსიმალური თანხა. 429 00:25:31,590 --> 00:25:35,470 მაგრამ ფასი იხდით რეალურად შესრულება, პოტენციურად. 430 00:25:35,470 --> 00:25:39,740 თუ იცით წინასწარ, რომ ყველა თქვენი სტრიქონები ვაპირებთ იყოს 8 გმირები - 431 00:25:39,740 --> 00:25:43,090 მაგალითად, ვარაუდობენ, რომ გჭირდებათ პაროლები სიგრძის 8 - 432 00:25:43,090 --> 00:25:47,350 Upside გამოყენების char სფეროში ხანდახან, თუმცა ხშირად არ, 433 00:25:47,350 --> 00:25:51,100 არის დაზუსტება ფიქსირებული სიგრძე რაღაც მოსწონს დაგავიწყდათ 434 00:25:51,100 --> 00:25:53,300 რადგან ახლა მონაცემთა ბაზაში შეიძლება იყოს თუნდაც სასურველი სტუმარი გახდებით. 435 00:25:53,300 --> 00:25:58,160 თუ იგი დარწმუნებულია, რომ ყველა char სფეროში, ყოველ string in სვეტი არის იგივე სიგრძის, 436 00:25:58,160 --> 00:26:00,780 თქვენ უკან თვისება შემთხვევითი წვდომის. 437 00:26:00,780 --> 00:26:05,110 თქვენ შეგიძლიათ ხტომა გარშემო შორის სხვადასხვა სფეროებში char თქვენს მონაცემთა ბაზაში ცხრილის 438 00:26:05,110 --> 00:26:07,940 რადგან ვფიქრობ მონაცემთა ბაზაში, როგორც სტრიქონები და სვეტები. 439 00:26:07,940 --> 00:26:11,670 ასე რომ, თუ ყველა ერთი სიმები არის იგივე სიგრძის, 440 00:26:11,670 --> 00:26:17,820 თქვენ იცით, რომ პირველი არის byte 0, შემდეგი ერთი არის byte 8 441 00:26:17,820 --> 00:26:20,240 და შემდეგ 16 და შემდეგ 24 და სხვ. 442 00:26:20,240 --> 00:26:24,500 ასე რომ, თუ ყველა სიმები არიან იმავე სიგრძის, შეგიძლიათ ხტომა გარშემო ბევრად უფრო ეფექტურად. 443 00:26:24,500 --> 00:26:26,710 ასე რომ შეიძლება იყოს სარგებელი თვალსაზრისით შესრულების, 444 00:26:26,710 --> 00:26:29,420 მაგრამ, როგორც წესი, თქვენ არ ფუფუნების იცის წინასწარ, 445 00:26:29,420 --> 00:26:32,170 ასე varchar არის გზაა გასავლელი. 446 00:26:32,170 --> 00:26:36,030 აქ არის კიდევ ერთი დეტალი, თუნდაც Facebook შეუვარდნენ საბოლოოდ. 447 00:26:36,030 --> 00:26:39,670 Ints დიდი და ჩვენ ერთგვარი მათი გამოყენება იყოს ნებისმიერ დროს გვინდა ნომერი, 448 00:26:39,670 --> 00:26:41,750 მაგრამ ეს მხოლოდ 32 ბიტი. 449 00:26:41,750 --> 00:26:46,210 >> და მიუხედავად იმისა, Facebook ამჯამად არ აქვს საკმაოდ 4 მილიარდი მომხმარებლებს ახლა, 450 00:26:46,210 --> 00:26:48,680 იქ აუცილებლად რაღაც ხალხი არსებობს მრავალი ანგარიშები 451 00:26:48,680 --> 00:26:50,960 ან ანგარიშებზე რომ გაიხსნა და შემდეგ დაიხურა, 452 00:26:50,960 --> 00:26:55,130 და ასე Facebook თავად მჯერა რამდენიმე წლის წინ იძულებული გახდა გადასვლას int 453 00:26:55,130 --> 00:27:00,010 დან, როგორც ეს aptly მოუწოდა, bigint, რომელიც მხოლოდ 64 ბიტი ნაცვლად. 454 00:27:00,010 --> 00:27:02,230 ასე რომ ესეც დიზაინი გადაწყვეტილება. 455 00:27:02,230 --> 00:27:06,570 თქვენ იქნებოდა საოცრად გაუმართლა, თუ თქვენი საბოლოო პროექტის უხვევს ჩატვირთვის, 456 00:27:06,570 --> 00:27:10,010 უკვე 4 მილიარდი და 1 მომხმარებლებს, მისცეს ან მიიღოს, 457 00:27:10,010 --> 00:27:13,200 ამ შემთხვევაში გამოყენებით ints შეიძლება იყოს პატარა shortsighted. 458 00:27:13,200 --> 00:27:16,230 მაგრამ სინამდვილეში, თქვენი მომხმარებლებს მაგიდასთან ალბათ ჯარიმა ints. 459 00:27:16,230 --> 00:27:19,340 მაგრამ რაღაც pset 7, როგორიც თქვენი ისტორია მაგიდასთან, 460 00:27:19,340 --> 00:27:23,700 თქვენ ალბათ ათასობით, მილიონობით მომხმარებლებს თუ განვითარება შევიდა etrade.com. 461 00:27:23,700 --> 00:27:26,020 ასე რომ, მაშინ როდესაც თქვენ შეიძლება არ აქვს მეტი, ვიდრე 4 მილიარდი მომხმარებლებს, 462 00:27:26,020 --> 00:27:30,070 იმ მომხმარებლებს თქვენ გვაქვს შეიძლება მეტი გვაქვს 4 მლრდ გარიგებების დროთა განმავლობაში - 463 00:27:30,070 --> 00:27:33,200 ყიდულობს და ყიდის და რამ მათი ისტორიის. 464 00:27:33,200 --> 00:27:38,090 ასე რომ თუ მოსალოდნელია - ისევ, ეს არის კარგი პრობლემებს აქვს თუ თქვენ გაქვთ ამ ბევრად მონაცემები - 465 00:27:38,090 --> 00:27:40,920 თუ მოსალოდნელია მონაცემები აღემატება ზომა int, 466 00:27:40,920 --> 00:27:47,740 მიმდინარეობს რაღაც bigint არის მიმართულებით არ ხშირად საკმარისი მიერ მიღებულ დიზაინერებს 467 00:27:47,740 --> 00:27:49,710 რადგან ხალხი ფიგურა რომ არ იქნება პრობლემა, 468 00:27:49,710 --> 00:27:51,930 მაგრამ ამ მარტივი ამოირჩიოთ უფრო დიდია, ვიდრე, რომ. 469 00:27:51,930 --> 00:27:55,380 ათობითი ჩვენ უწოდოს pset 7, რომელიც განსაზღვრავს ფიქსირებული სიზუსტით 470 00:27:55,380 --> 00:27:59,840 ასე რომ თქვენ შეგიძლიათ თავიდან ასაცილებლად საკითხები, რომლებიც ეხება მოძრავი და ორადგილიანი და reals და მოსწონს. 471 00:27:59,840 --> 00:28:02,440 >> და მერე იქ რაღაც სხვა სფეროებში აქ. ჩვენ ტალღა ჩვენს ხელში მათ გარკვეულწილად. 472 00:28:02,440 --> 00:28:07,270 მაგრამ ვადები, ჯერ ყველას გვაქვს დადგენილი ფორმატის MySQL, 473 00:28:07,270 --> 00:28:10,830 და უპირატესობა შენახვის თარიღების როგორც თარიღები და არ varchars 474 00:28:10,830 --> 00:28:15,730 იმას ნიშნავს, რომ მონაცემთა ბაზაში შეიძლება რეალურად reformat მათთვის სხვადასხვა ფორმატში, 475 00:28:15,730 --> 00:28:18,800 თუ არა აშშ ფორმატში, ან ევროპულ ფორმატში ან ანალოგიური - თუმცა გნებავთ - 476 00:28:18,800 --> 00:28:22,700 ბევრად უფრო ეფექტურად, ვიდრე თითქოს რამოდენიმე generic varchar. 477 00:28:22,700 --> 00:28:25,150 და მერე იქ რაღაც სხვა ორობითი, varbinary, Blobs. 478 00:28:25,150 --> 00:28:28,580 ეს არის ორობითი დიდი ობიექტები, და ასევე შეგიძლიათ შეინახოთ ორობითი მონაცემები 479 00:28:28,580 --> 00:28:30,750 ისევე როგორც გეომეტრიული მონაცემების მონაცემთა ბაზაში. 480 00:28:30,750 --> 00:28:34,350 მაგრამ ჩვენთვის ჩვენ ჩვეულებრივ აინტერესებს ints და varchars და მოსწონს. 481 00:28:34,350 --> 00:28:36,230 მოდით დავამთავროთ ეს მაგალითი სახლი. 482 00:28:36,230 --> 00:28:40,030 სახლი მე ვაპირებ თვითნებურად ამბობენ იქნება 255 სიმბოლო. 483 00:28:40,030 --> 00:28:42,850 მაშინ, ნაგულისხმებია შეგვეძლო ამის გაკეთება. 484 00:28:42,850 --> 00:28:47,440 ჩვენ შეგვეძლო იყოს დააყენა ყველას Mather სახლი, მაგალითად. 485 00:28:47,440 --> 00:28:49,710 ასე ჩვენ შეგვიძლია დავაზუსტოთ, რომ მონაცემთა ბაზაში 486 00:28:49,710 --> 00:28:52,460 უნდა უზრუნველყოს, რომ ვიღაცას ყოველთვის აქვს მნიშვნელობა. მაგრამ მე დავტოვებთ, რომ იყოს. 487 00:28:52,460 --> 00:28:55,270 ფაქტიურად, ადამიანები, რომლებიც ცხოვრობენ off კამპუსში და არა სახლი, 488 00:28:55,270 --> 00:28:59,590 იქნებ მე ნამდვილად გინდათ დააკონკრეტა, რომ ნაგულისხმები მნიშვნელობა სახლი NULL, 489 00:28:59,590 --> 00:29:04,890 და მაშინ მე უნდა შეამოწმოთ ამ ყუთი და ვუთხრა მონაცემთა ბაზაში ეს okay, თუ მომხმარებლის სახლში არის NULL. 490 00:29:04,890 --> 00:29:07,270 >> ისევ და ისევ, ეს არის კიდევ ერთი თავდაცვის მექანიზმი შეგიძლიათ დასვა ადგილი 491 00:29:07,270 --> 00:29:10,590 ასე რომ თქვენ არც კი უნდა დააყენოს იგი თქვენს PHP კოდი აუცილებლად. 492 00:29:10,590 --> 00:29:14,630 მონაცემთა ბაზა, რომელიც უზრუნველყოფს, რომ ყველაფერი ან არ ხართ null. 493 00:29:14,630 --> 00:29:17,310 და მერე ბოლოს, ატრიბუტები. 494 00:29:17,310 --> 00:29:18,920 არცერთი რეალურად შესაბამისი. 495 00:29:18,920 --> 00:29:22,880 ორობითი, ხელმოუწერელი - არც იმ შესაბამისობაში varchar. 496 00:29:22,880 --> 00:29:24,220 ინდექსი. 497 00:29:24,220 --> 00:29:27,320 ვინმეს იცის ან გახსოვთ ან აქვს ამოიცნობთ, თუ რა არის ინდექსი 498 00:29:27,320 --> 00:29:29,510 ამისთვის რაღაც სახლში? 499 00:29:29,510 --> 00:29:35,240 ესეც რეალურად მნიშვნელოვანია და შედარებით ადვილი დიზაინი გადაწყვეტილება. 500 00:29:35,240 --> 00:29:39,200 მათთვის, ვინც ჯერ არ მინახავს ეს, პარასკევს ჩვენ ვისაუბრეთ მოკლედ შესახებ პირველადი გასაღები. 501 00:29:39,200 --> 00:29:43,240 მონაცემთა ბაზაში მაგიდა, პირველადი გასაღები არის საველე ან სვეტი 502 00:29:43,240 --> 00:29:46,270 რომ ცალსახად განსაზღვრავს სტრიქონების მაგიდასთან. 503 00:29:46,270 --> 00:29:49,150 ასე რომ, მიმდინარე მაგიდა გვაქვს პირადობის მოწმობები, გვაქვს სახელები და წერილებს. 504 00:29:49,150 --> 00:29:52,050 რომელიც იმ არის საუკეთესო კანდიდატი უნდა იყოს ძირითადი გასაღები, 505 00:29:52,050 --> 00:29:55,810 რომელთა როლი ცალსახად იდენტიფიცირება რიგები? 506 00:29:55,810 --> 00:29:57,530 ალბათ ID. 507 00:29:57,530 --> 00:29:59,930 სავარაუდოდ, ჩვენ შეგვიძლია აგრეთვე გამოიყენოს რა თუმცა? 508 00:29:59,930 --> 00:30:02,860 იქნებ თქვენ შეიძლება გამოიყენოთ ელ რადგან თეორიულად ეს უნიკალური 509 00:30:02,860 --> 00:30:05,380 თუ ადამიანებმა მათ გაზიარებას Email ანგარიშები. 510 00:30:05,380 --> 00:30:09,980 მაგრამ რეალობა ის არის, რომ თუ თქვენ იყენებთ რიცხვითი ID მოსწონს 1234, 511 00:30:09,980 --> 00:30:14,170 რომ მხოლოდ 32 ბიტი, ხოლო ელექტრონულ მისამართზე შეიძლება იყოს ამ ბევრი bytes ან ამ ბევრი bytes. 512 00:30:14,170 --> 00:30:16,610 ამიტომ თვალსაზრისით ეფექტურობის უნიკალური identifiers, 513 00:30:16,610 --> 00:30:19,270 ეს tends უნდა იყოს კარგი პრაქტიკის უბრალოდ გამოიყენოს int 514 00:30:19,270 --> 00:30:23,090 მაშინაც კი, თუ თქვენ გაქვთ ზოგიერთი სიმებიანი კანდიდატი, რომელიც თქვენ შეიძლება გამოიყენოთ სავარაუდოდ. 515 00:30:23,090 --> 00:30:26,760 >> რაღაც მოსწონს სახლი, ეს არ უნდა იყოს პირველადი გასაღები 516 00:30:26,760 --> 00:30:30,770 რადგან მაშინ მხოლოდ 1 ადამიანს ცხოვრობენ Mather და 1 პირი კურიერის და მოსწონს. 517 00:30:30,770 --> 00:30:32,790 ანალოგიურად, ეს არ უნდა იყოს უნიკალური. 518 00:30:32,790 --> 00:30:37,830 სხვაობა პირველადი და უნიკალური ის არის, რომ იმ შემთხვევაში, თუ ჩვენი დღევანდელი სუფრის, 519 00:30:37,830 --> 00:30:42,620 ID იქნებოდა პირველადი, არამედ ელ არ არის პირველადი მიზეზით ჩვენ მხოლოდ აღნიშნული - 520 00:30:42,620 --> 00:30:44,740 სპექტაკლი - მაგრამ ეს უნდა კვლავ იყოს უნიკალური. 521 00:30:44,740 --> 00:30:47,200 ასე რომ თქვენ შეგიძლიათ კვლავ აღასრულებს უნიკალურობა გარეშე მიღების პრეტენზია 522 00:30:47,200 --> 00:30:49,520 რომ სუპერ მნიშვნელოვანია პირველადი სფეროში. 523 00:30:49,520 --> 00:30:52,610 მაგრამ ეს ერთი საკმაოდ გამოსადეგი: ინდექსი. 524 00:30:52,610 --> 00:30:56,180 თუ იცით წინასწარ თქვენი საბოლოო პროექტი, ამისთვის pset 7, ან ზოგადად, 525 00:30:56,180 --> 00:30:59,480 რომ ამ სფეროში სახლში იქნება რაღაც ძიება ლოტი 526 00:30:59,480 --> 00:31:01,910 გამოყენებით არჩევა სიტყვით ან რაღაც, 527 00:31:01,910 --> 00:31:05,180 მაშინ preemptively გითხრათ ბაზაში მუშაობა მისი ჯადოსნური 528 00:31:05,180 --> 00:31:10,510 და დარწმუნდით, რომ ეს ქმნის მეხსიერებაში ნებისმიერი ლამაზი მონაცემები სტრუქტურების აუცილებელი 529 00:31:10,510 --> 00:31:13,770 რათა დააჩქარონ ძიება ეფუძნება სახლი. 530 00:31:13,770 --> 00:31:17,860 ალბათ, გამოიყენებს hash მაგიდა, იქნებ გამოიყენებს დაკავშირებული სიაში. 531 00:31:17,860 --> 00:31:21,260 სინამდვილეში, ეს tends გამოიყენოს ხე, ხშირად სტრუქტურა ეწოდება B ხე - 532 00:31:21,260 --> 00:31:24,090 არ ორობითი ხე მაგრამ B-tree - რომელიც არის ძალიან ფართო ხე 533 00:31:24,090 --> 00:31:27,370 რომ თქვენ შეიძლება ვხედავთ კლასის მოსწონს CS124, მონაცემები სტრუქტურების კლასი. 534 00:31:27,370 --> 00:31:31,800 მაგრამ მოკლედ, თქვენ არ ფიქრი, რომ როდესაც გამოყენებით smart მონაცემთა ბაზის პროგრამული უზრუნველყოფა. 535 00:31:31,800 --> 00:31:35,890 შეგიძლიათ უბრალოდ ვუთხრა მას, "ინდექსი ამ სფეროში, რათა შემიძლია ძიება იგი უფრო ეფექტურად." 536 00:31:35,890 --> 00:31:40,250 >> თუ თქვენ დატოვეთ ეს off და თქვენ ცდილობენ ძებნის ყველასათვის მონაცემთა ბაზაში, რომელიც ცხოვრობს Mather, 537 00:31:40,250 --> 00:31:42,710 იგი გადაეცემა შევიდა ხაზოვანი ძებნა. 538 00:31:42,710 --> 00:31:45,360 და თუ თქვენ მოხვდით 6,000 undergrads ყველა მცხოვრები ზოგიერთი სახლი, 539 00:31:45,360 --> 00:31:47,900 თქვენ აპირებს ძებნის მთელი მაგიდა მოძიების Matherites, 540 00:31:47,900 --> 00:31:52,190 ხოლო თუ ვიტყვით, ინდექსი, იმედია ეს იქნება რაღაც ახლოს ლოგარითმული ძებნა 541 00:31:52,190 --> 00:31:54,510 იპოვოს იმ სახის სტუდენტებს. 542 00:31:54,510 --> 00:31:56,750 ეს არის მხოლოდ თავისუფალი ფუნქცია ჩართოთ, 543 00:31:56,750 --> 00:31:59,530 მიუხედავად იმისა, რომ ამჯამად მოდის at ფასი ზოგიერთი თანხის სივრცეში. 544 00:31:59,530 --> 00:32:02,690 და ბოლოს, auto-წუთობრივი, ამ AI სფეროში, 545 00:32:02,690 --> 00:32:05,830 რომელიც უბრალოდ ნიშნავს, თუ ის int და არ გსურთ ზრუნვა უნდა იყოს იგი თავის 546 00:32:05,830 --> 00:32:07,570 ყოველ ჯერზე იქ ახალი ხარ, შეამოწმეთ, 547 00:32:07,570 --> 00:32:11,910 და ყოველი მომხმარებლის რომ იღებს ჩასმული ავტომატურად მიიღებთ ახალ ID. 548 00:32:11,910 --> 00:32:15,620 მოდით დააჭირეთ Save და ახლა მოდით მოვძებნოთ ბრალია ამ დიზაინის. 549 00:32:15,620 --> 00:32:20,200 თუ მე წასვლას დათვალიერება შეამჩნევთ, რომ ორივე მაიკ და ჩემი სახლი არის NULL. 550 00:32:20,200 --> 00:32:22,420 შემიძლია phpMyAdmin რედაქტირება ამ ხელით. 551 00:32:22,420 --> 00:32:25,110 შემიძლია წავიდეს აქ და ტიპის Mather და შემდეგ დააჭიროთ, 552 00:32:25,110 --> 00:32:27,740 და ახლა შეამჩნია მაგიდა განსხვავებულია. 553 00:32:27,740 --> 00:32:29,270 მაგრამ შეამჩნია მე შეეძლო რაღაც ისევე. 554 00:32:29,270 --> 00:32:33,530 დავითის ID არის 1, ასე phpMyAdmin ერთხელ არის მხოლოდ ადმინისტრაციული ინსტრუმენტი; 555 00:32:33,530 --> 00:32:35,970 ეს არ არის რაღაც თქვენი მომხმარებლებს ოდესმე აპირებს ვხედავ. 556 00:32:35,970 --> 00:32:38,810 ასე რომ, თუ მე ნაცვლად დააწკაპუნეთ SQL tab up დაბრუნება - 557 00:32:38,810 --> 00:32:41,450 და ისევ, pset 7 გააცნობს თქვენ მეტი ასეთი queries - 558 00:32:41,450 --> 00:32:45,260 შემიძლია ხელით შესრულდეს SQL სტრუქტურირებული შეკითხვის ენა ბრძანება 559 00:32:45,260 --> 00:32:56,410 UPDATE მომხმარებლებს SET სახლი = 'Pfoho "სად id = 1. 560 00:32:56,410 --> 00:33:00,830 ეს SQL queries არიან, ლამაზად საკმარისი, საკმაოდ იკითხება მარცხნიდან მარჯვნივ. 561 00:33:00,830 --> 00:33:04,350 განაახლოთ მომხმარებლებს მაგიდა, მითითებული სფეროში მოუწოდა სახლში Pfoho 562 00:33:04,350 --> 00:33:06,830 სადაც მომხმარებლის ID არის 1. 563 00:33:06,830 --> 00:33:11,480 ან შემეძლო ამის გაკეთება, სადაც ელექტრონული ფოსტის = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 ასე რომ სანამ რომ ცალსახად განსაზღვრავს ჩემთვის, რომ იმუშავებს ასევე. 565 00:33:14,860 --> 00:33:18,810 მაგრამ ID tends უნდა იყოს უმაღლესი შესრულებით, ისე მოდით, რომ. 566 00:33:18,810 --> 00:33:22,950 მოდით დააწკაპუნეთ გადავიდეთ. Okay, lecture.users არ არსებობს. რა არის ჩემი შეცდომა? 567 00:33:22,950 --> 00:33:26,220 რა არის მაგიდა რეალურად აქ უწოდებენ? 568 00:33:26,220 --> 00:33:28,770 ეს მოუწოდა სტუდენტებს მხოლოდ იმიტომ, რომ ის, რაც ჩვენ გავაკეთეთ აქ ზედა მარცხენა. 569 00:33:28,770 --> 00:33:31,860 ეს მოუწოდა სტუდენტებს, არ მომხმარებლებს. ასე რომ დააჭირეთ გადავიდეთ არის. 570 00:33:31,860 --> 00:33:34,330 1 row დაზარალებული. შეკითხვის აიღო 0.01 წამში. 571 00:33:34,330 --> 00:33:38,010 თუ მე დააჭირეთ Browse ახლა არის Malan ცხოვრობს Pfoho. 572 00:33:38,010 --> 00:33:42,070 ასე რომ კიდევ ერთი გემო SQL, მაგრამ pset იქნება ფეხით თქვენ მეშვეობით უფრო მეტს რომ. 573 00:33:42,070 --> 00:33:44,710 >> არსებობს სულელური გადაწყვეტილების მე უკვე გააკეთა აქ. 574 00:33:44,710 --> 00:33:47,820 მინდა ამტკიცებენ, რომ ეს მონაცემთა ბაზა დიზაინი არაეფექტური 575 00:33:47,820 --> 00:33:51,650 რადგან მეტი ადამიანი დავამატო სტუდენტებს მაგიდა, 576 00:33:51,650 --> 00:33:54,730 მეტი us დავიწყო დასძინა, უფრო TFs დავიწყო დასძინა, 577 00:33:54,730 --> 00:33:58,320 ჩვენ ვაპირებთ დავიწყოთ რა redundancies ამ მაგიდასთან? 578 00:34:00,840 --> 00:34:06,020 >> Yeah. [სტუდენტი] დაინახა, რომ ეს წელს სტუდენტები, ჩვენ იგივე [inaudible] 579 00:34:06,020 --> 00:34:07,360 იგივე - მარჯვენა, ზუსტად. 580 00:34:07,360 --> 00:34:10,400 ასე რომ, თუ 400 ადამიანი ცხოვრობს Mather, მისცეს ან მიიღოს, 581 00:34:10,400 --> 00:34:15,000 საბოლოოდ, ამ მაგიდის აპირებს აქვს 400 რიგები, რომ ამბობენ "Mather", "Mather," 582 00:34:15,000 --> 00:34:16,590 "Mather", "Mather", "Mather". 583 00:34:16,590 --> 00:34:19,820 ჩვენ გაყვანაა ყველა ამ ბაიტი, და იქ რამდენიმე takeaways არსებობს. 584 00:34:19,820 --> 00:34:23,080 1, არსებობს გიჟები კუთხეში შემთხვევაში, თუ ვინმე იხდის ბევრი ფული 585 00:34:23,080 --> 00:34:25,949 და სურს Mather, ჩვენ ახლა უნდა შეიცვალოს მთელი ჩვენი მონაცემთა ბაზის ცხრილს. 586 00:34:25,949 --> 00:34:29,730 ეს არ მოხდება ხშირად, თუმცა Pfoho ერთხელ მოუწოდა ჩრდილოეთ სახლი 15 წლის წინ, 587 00:34:29,730 --> 00:34:32,310 ასე რომ ხდება. მაგრამ ეს არ არის ყველა, რომ მყარი. 588 00:34:32,310 --> 00:34:36,000 სხვა მყარი ვიდრე კუთხეში შემთხვევაში, როგორიცაა, რომ საქართველოს სჭირდება განახლება მონაცემები დაყრით 589 00:34:36,000 --> 00:34:41,150 ამისთვის მონაცემთა ბაზა რატომ შენახვის Mather ისევ და ისევ და ისევ და ისევ? 590 00:34:41,150 --> 00:34:43,020 სწორედ უამრავი სიმბოლო, 6 სიმბოლო. 591 00:34:43,020 --> 00:34:45,500 ვერ ვაკეთებთ კი უკეთესად რომ, განსაკუთრებით Pforzheimer? 592 00:34:45,500 --> 00:34:48,320 რა თქმა უნდა შეგვიძლია უკეთესად რომ ბევრი სიმბოლო. 593 00:34:48,320 --> 00:34:51,790 რატომ არა მხოლოდ გაერთიანების უნიკალური იდენტიფიკატორი თითოეული სახლი 594 00:34:51,790 --> 00:34:55,020 და მაღაზიაში რომ თითოეული ხარ? მოდით ცდილობენ ამ. 595 00:34:55,020 --> 00:35:00,610 იმის ნაცვლად, რომ უბრალოდ გამოიყენოთ სტუდენტები მაგიდა, ნება მომეცით ახვიდეთ ჩემი ლექცია ბაზაში up აქ ზედა მარცხენა. 596 00:35:00,610 --> 00:35:02,600 გაითვალისწინეთ აქ ნათქვამია შექმნა მაგიდასთან. 597 00:35:02,600 --> 00:35:04,550 ნება მომეცით შექმნა ახალი ცხრილი მოუწოდა სახლები. 598 00:35:04,550 --> 00:35:08,880 მწკრივების რიცხვი იქნება 2. შეიყვანეთ. 599 00:35:08,880 --> 00:35:11,200 ახლა 2 სფეროებში. 600 00:35:11,200 --> 00:35:14,600 მე ვაპირებ მოვუწოდო ამ სახელს, და ეს იქნება varchar სიგრძის 255, 601 00:35:14,600 --> 00:35:18,770 >> მაგრამ ეს საკმაოდ თვითნებური. ნება მიბოძეთ ამ ქვევით აქ კონვენციას. 602 00:35:18,770 --> 00:35:22,840 ასე დააყენა ID აქ. მოდით მივცეთ ყველა სახლი უნიკალური იდენტიფიკატორი. 603 00:35:22,840 --> 00:35:25,360 მოდით მივცეთ ყველა სახლი სახელი. 604 00:35:25,360 --> 00:35:30,980 მოდით დავაზუსტოთ, რომ იდენტიფიკატორი იქნება ხელმოუწერელი მხოლოდ კონვენციის მხოლოდ დადებითი ციფრები. 605 00:35:30,980 --> 00:35:35,020 მოდით წავიდეთ წინ და მისცეს ამ auto-ნამატი სფეროში ახლა. 606 00:35:35,020 --> 00:35:38,160 და გვჭირდება არაფერი? 607 00:35:38,160 --> 00:35:41,010 მოდით წავიდეთ წინ და დააჭირეთ Save. 608 00:35:41,010 --> 00:35:42,480 ახლა მეორე მაგიდასთან. 609 00:35:42,480 --> 00:35:45,860 გაითვალისწინეთ როგორც განზე ეს ოდნავ cryptic SQL ბრძანება 610 00:35:45,860 --> 00:35:50,280 რომ თქვენ არ მოუხდა ხელით თუ არ იყენებს ადმინისტრაციული ინსტრუმენტი, როგორიცაა phpMyAdmin. 611 00:35:50,280 --> 00:35:51,990 ასე რომ კიდევ ერთი მიზეზი ვიყენებთ მას. 612 00:35:51,990 --> 00:35:55,480 ეს შესანიშნავად სასარგებლო სახის pedagogically რადგან თქვენ შეგიძლიათ დააჭიროთ გარშემო 613 00:35:55,480 --> 00:36:01,050 და გაერკვნენ, თუ როგორ რამ მუშაობა მხოლოდ გადაწერა და pasting რა phpMyAdmin გააკეთა. 614 00:36:01,050 --> 00:36:04,150 მაგრამ CREATE TABLE ბრძანება არის ის, რაც იყო მხოლოდ შესრულებული, და აქ არის ჩემი მაგიდა. 615 00:36:04,150 --> 00:36:11,370 ნება მომეცით წავიდეთ წინ ახლა და გამოიყენოთ ნედლეული SQL ვიდრე oversimplify დაწკაპვით ჩასმა tab. 616 00:36:11,370 --> 00:36:15,040 ნება მომეცით არ INSERT INTO სახლები, 617 00:36:15,040 --> 00:36:22,230 და მე ვაპირებ ვთქვა სახელით სახლში აპირებს აქვს ღირებულება 'Mather ". 618 00:36:22,230 --> 00:36:24,790 ეს არის ის. ეს სინტაქსი არის ცოტა მეტი cryptic. 619 00:36:24,790 --> 00:36:26,660 ეს არის სახელწოდება სფეროებში ჩვენ გვინდა ჩადეთ. 620 00:36:26,660 --> 00:36:30,390 ეს არის ღირებულებები გვინდა INSERT INTO იმ სფეროებში. ნება მომეცით დააჭირეთ გადავიდეთ. 621 00:36:30,390 --> 00:36:34,410 1 row ჩასმული აიღო 0.02 წამში. ნება მომეცით დააჭირეთ Browse არის. 622 00:36:34,410 --> 00:36:42,020 >> გაითვალისწინეთ თუ დააწკაპუნეთ ნუსხა არსებობს Mather, რომლის ID არის ავტომატიზაციის ნომერი 1. 623 00:36:42,020 --> 00:36:45,000 ნება მომეცით გავაკეთოთ კიდევ ერთი. ნება მომეცით წასვლას SQL tab. 624 00:36:45,000 --> 00:36:52,950 INSERT INTO სახლები. სახელი სახლის აპირებს აქვს ღირებულება Pfoho და სხვ. 625 00:36:52,950 --> 00:36:56,350 გადავიდეთ. და შემიძლია აკეთეთ ეს კიდევ ერთხელ და ისევ და ისევ. 626 00:36:56,350 --> 00:36:59,470 ან თუ მოგწყინდება გამოყენებით phpMyAdmin, შეგიძლიათ უბრალოდ გამოიყენოთ ჩასმა tab 627 00:36:59,470 --> 00:37:01,000 და არ უნდა აკრიფოთ ნედლეული SQL. 628 00:37:01,000 --> 00:37:04,690 შეგიძლიათ უბრალოდ Bang ის უფრო სწრაფად აკრეფით, მაგალითად, კურიერის, მიუთითოთ, 629 00:37:04,690 --> 00:37:07,610 და ახლა თუ ჩვენ დააჭირეთ ნუსხა არსებობს კურიერის ერთად პირადობის 3. 630 00:37:07,610 --> 00:37:09,920 ასე რომ, ეს არის ის, რაც ჩვენ ვგულისხმობთ ავტო იყოს. 631 00:37:09,920 --> 00:37:12,280 მაგრამ ახლა ჩვენ დაფიქსირება რაღაც სტუდენტებს. 632 00:37:12,280 --> 00:37:16,240 სტუდენტთა რა უნდა მონაცემები ტიპის სახლი სფეროში ახლა? 633 00:37:16,240 --> 00:37:19,450 ეს უნდა იყოს int, არა? 634 00:37:19,450 --> 00:37:23,950 ასე რომ მიზანი აქ არის ფაქტორი გარეთ, წინააღმდეგ შემთხვევაში, ცნობილია, როგორც ნორმალურ, მაგიდები 635 00:37:23,950 --> 00:37:27,940 ასე, რომ ჩვენ არ ინფორმაციის შესანახად redundantly ნებისმიერ ჩემი მაგიდები. 636 00:37:27,940 --> 00:37:31,130 ისევ და ისევ, ბილიკი ვიყავით აქ თქმას Mather, Mather, 637 00:37:31,130 --> 00:37:34,220 Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, რომელიც ძალიან გადაჭარბებული 638 00:37:34,220 --> 00:37:36,240 თვალსაზრისით wastefulness of სიმბოლო. 639 00:37:36,240 --> 00:37:40,820 ნება მომეცით, წავიდეთ წინ და შეცვალოთ ეს დაწკაპვით სტრუქტურა, 640 00:37:40,820 --> 00:37:44,620 და ნება მომეცით წავიდეთ წინ და შეამოწმოთ off სახლი სფეროში, დააჭირეთ ცვლილება, 641 00:37:44,620 --> 00:37:46,990 და ახლა მე ვაპირებ, რომ შეიცვალოს ეს უნდა იყოს int. 642 00:37:46,990 --> 00:37:49,490 255 აღარ არის შესაბამისი. 643 00:37:49,490 --> 00:37:54,010 ნება მომეცით წავიდეთ წინ და აცხადებენ, რომ ჯარიმა, თუ ის კვლავ null. შენახვა. 644 00:37:54,010 --> 00:37:55,870 არის მაგიდა სტუდენტები შეიცვალა წარმატებით, 645 00:37:55,870 --> 00:37:59,090 და შენიშნავს, კვლავ სახლი int. 646 00:37:59,090 --> 00:38:02,220 როგორც განზე, იგნორირება ხმების ფრჩხილებში როდესაც საქმე ints. 647 00:38:02,220 --> 00:38:03,770 >> ეს არის მემკვიდრეობა მიზეზები. 648 00:38:03,770 --> 00:38:06,920 უკან დღეს, როდესაც თქვენ არ ჰქონდათ GUIs, თქვენს ნაცვლად ჰქონდა ბრძანების გარემო, 649 00:38:06,920 --> 00:38:11,580 10 და 11 შესაბამისად მითითებული რამდენი სიმბოლოები უნდა ვაჩვენოთ 650 00:38:11,580 --> 00:38:13,950 წელს ტერმინალი ფანჯარა რეალურად არიან სფეროებში. 651 00:38:13,950 --> 00:38:19,150 მას არაფერი აქვს საერთო ცოტა სიგრძით ფაქტობრივი სფეროში, ამიტომ ჩვენ უბრალოდ იგნორირება, რომ ახლა. 652 00:38:19,150 --> 00:38:20,990 ახლა წასვლას ამ მაგიდასთან. 653 00:38:20,990 --> 00:38:24,610 და თუ დავით ცხოვრობს Mather, სახლი არ უნდა იყოს 0, 654 00:38:24,610 --> 00:38:27,350 რაც სტანდარტულად int ღირებულების ყველაზე ახლოს null. 655 00:38:27,350 --> 00:38:29,810 მან უნდა იცხოვროს სახლში 1. 656 00:38:29,810 --> 00:38:36,870 მოდით თვითნებურად ამბობენ, რომ მაიკ ცხოვრობს Pfoho, ამიტომ სახლის ნომერი 2. 657 00:38:36,870 --> 00:38:40,160 არის ჩემი მაგიდა გამოიყურება ცოტა მეტი cryptic. 658 00:38:40,160 --> 00:38:41,960 მაგრამ განიხილავს ეფექტურობას. 659 00:38:41,960 --> 00:38:44,860 მე ახლა გამოყენებით მხოლოდ 32 ბიტი იდენტიფიცირება სახლი, 660 00:38:44,860 --> 00:38:49,530 რაც იმას ნიშნავს, არსებობს მხოლოდ 1 კანონიკურ განმარტებას ჩემს სახლში Mather და Pfoho 661 00:38:49,530 --> 00:38:52,090 და ეს სახლებში მაგიდასთან. 662 00:38:52,090 --> 00:38:55,880 ასე რომ, თუ მინდა ახლა დავუბრუნდეთ ამ ჩამონათვალმა, ვფიქრობ ეს ამ გზით. 663 00:38:55,880 --> 00:39:01,980 აქ მე მაქვს ჩემი სტუდენტები მაგიდა, და მარჯვენა მხარეს არის ამ ნომრებზე, 1 და 2. 664 00:39:01,980 --> 00:39:04,180 1 არის Mather, 2 არის Pfoho. 665 00:39:04,180 --> 00:39:08,580 ჩვენ გვყავს იმ იგივე ციფრები ამ მაგიდასთან, რომელსაც სახლები, 666 00:39:08,580 --> 00:39:11,020 1 და 2 და 3 შეეხება იმ 3 სახლები. 667 00:39:11,020 --> 00:39:14,990 ის, რასაც ჩვენ ახლა ჩვენ უნდა აქვს უნარი კოდის, PHP და SQL, 668 00:39:14,990 --> 00:39:18,800 დასალაგებლად of დავუბრუნდეთ ამ ჩამონათვალმა, სადაც თუ ეს სტუდენტები და ეს სახლები, 669 00:39:18,800 --> 00:39:22,050 ჩვენ გვინდა როგორღაც დააკავშიროთ მათ ისე, რომ 1 ხაზების ერთად 1, 670 00:39:22,050 --> 00:39:25,670 2 ხაზი ერთად 2, და ასე, რომ ჩვენ შეგვიძლია გაერკვნენ, სადაც დავით 671 00:39:25,670 --> 00:39:28,000 და სადაც მაიკ და სადაც ყველას ცხოვრობს. 672 00:39:28,000 --> 00:39:31,850 ამისათვის ჩვენ შეგვიძლია შევასრულოთ SQL query მოსწონს შემდეგ. 673 00:39:31,850 --> 00:39:40,470 SELECT * FROM სტუდენტები შემოგვიერთდით სახლები - 674 00:39:40,470 --> 00:39:43,000 და ახლა რა სფეროებში გვინდა შეუერთდეს შესახებ? 675 00:39:43,000 --> 00:39:49,520 ამიტომ students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> პატარა cryptic, მაგრამ ამ ნაწილში ნიშნავს სიტყვასიტყვით შექმნას ახალი დროებითი მაგიდა 677 00:39:54,150 --> 00:39:56,690 რომ შედეგი გაწევრიანების სტუდენტებისა და სახლები. 678 00:39:56,690 --> 00:40:00,340 და როგორ გსურთ დააკავშიროთ რჩევები ჩემი თითები აქ? 679 00:40:00,340 --> 00:40:05,280 უცნობია სტუდენტთა სახლი სფეროში ტოლია სახლები 'ID სფეროში. 680 00:40:05,280 --> 00:40:10,220 და თუ ახლა დააჭირეთ წადი, არ დავიბრუნებ ზუსტად რა იმედი მქონდა რომ. 681 00:40:10,220 --> 00:40:15,890 დავით არის Mather, მაიკ არის Pfoho, და მე ასევე ვხედავ უნიკალური identifiers. 682 00:40:15,890 --> 00:40:18,640 მაგრამ საქმე ის არის, ახლა კი ისეთი სრული მაგიდასთან. 683 00:40:18,640 --> 00:40:23,020 და ასე takeaway აქ pset 7 ან ნამდვილად საბოლოო პროექტი: 684 00:40:23,020 --> 00:40:25,830 თუ თქვენთვის, რომ თქვენ შენახვა ნებისმიერი ნაჭერი ინფორმაციას redundantly, 685 00:40:25,830 --> 00:40:28,850 თუ არა ეს სახლი, ალბათ ეს ქალაქი, სახელმწიფო, და ZIP 686 00:40:28,850 --> 00:40:32,050 აქ ZIP შეიძლება ჩვეულებრივ, მაგრამ არა ყოველთვის იქნება გამოყენებული როგორც უნიკალური იდენტიფიკატორი, 687 00:40:32,050 --> 00:40:35,810 არ გავლა exercise გონებრივად და შემდეგ რაღაც phpMyAdmin 688 00:40:35,810 --> 00:40:40,660 საქართველოს ფაქტორინგი, რომ საერთო მონაცემები რადგან განსაკუთრებით როგორც თქვენი ნახვა უფრო კარგად გამოიყენა 689 00:40:40,660 --> 00:40:45,440 და უფრო პოპულარული, ასე რომ თქვენ დარწმუნდით, რომ ყველაფერი სუპერ სწრაფი, 690 00:40:45,440 --> 00:40:51,930 მიერ მიცემის მონაცემთა ბაზაში, როგორც ბევრი მინიშნებები როგორც უნიკალურობა რაც შეიძლება. 691 00:40:51,930 --> 00:40:53,860 ეს იყო ბევრი. 692 00:40:53,860 --> 00:40:59,010 ნებისმიერი კითხვები? ყველა უფლება. ავიღოთ 5 წუთიანი შესვენება და გადაჯგუფების. 693 00:41:01,600 --> 00:41:03,540 ყველა უფლება. 694 00:41:03,540 --> 00:41:08,680 შემდეგი არის მაგალითი იმისა, რომ გამოყენებული იქნა რამდენიმე წლის წინ, როდესაც მე მივიღე CS161, 695 00:41:08,680 --> 00:41:10,960 რომელიც ოპერაციული სისტემა კლასის კოლეჯში 696 00:41:10,960 --> 00:41:15,160 რომელიც ცნობილია, რომ საოცარი, მაგრამ გიჟები სამუშაოს მოცულობასთან დაკავშირებით, 697 00:41:15,160 --> 00:41:19,810 და ეს აქცენტს ნამდვილად ზოგიერთ დაბალი დონის პრობლემები, რომლებიც წარმოიქმნება ოპერაციული სისტემები 698 00:41:19,810 --> 00:41:22,700 და ასევე კი სამყაროში ბაზაში. 699 00:41:22,700 --> 00:41:27,040 >> ამბავი რომ მითხრეს ჩემი პროფესორი, მარგო Seltzer, რომ წელს შემდეგნაირად. 700 00:41:27,040 --> 00:41:30,990 დავუშვათ, რომ თქვენ გაქვთ პატარა dorm მაცივარი თქვენთვის და თქვენი roommate 701 00:41:30,990 --> 00:41:34,030 და ორივე თქვენ ნამდვილად რძე. 702 00:41:34,030 --> 00:41:36,360 ასე, რომ თქვენ მოვიდა სახლში კლასის ერთ დღეს, თქვენი roommate არ არის იქ, 703 00:41:36,360 --> 00:41:39,650 თქვენ გახსნა მაცივარი, და ხვდები, "ო Damn, ჩვენ გარეთ რძე." 704 00:41:39,650 --> 00:41:42,070 ასე, რომ თქვენ დახურეთ მაცივარი, ფეხით გასწვრივ ქუჩიდან CVS 705 00:41:42,070 --> 00:41:45,830 და მიიღონ უფრო და უფრო ხანგრძლივი ხაზები შესაძენად გარკვეული რძის საათზე CVS. 706 00:41:45,830 --> 00:41:48,470 ამასობაში, თქვენი roommate მოდის სახლში მისი კლასის, 707 00:41:48,470 --> 00:41:51,690 ძალაში ოთახი, ხსნის მაცივარი ნამდვილად სურს ზოგიერთი რძე, 708 00:41:51,690 --> 00:41:54,130 ხსნის მაცივარი, "Damn, არ რძე". 709 00:41:54,130 --> 00:41:57,890 ასე რომ მას მთლიანად ან ნაწილობრივ ხურავს მაცივარი, დადის out კარი, და ღებულობენ ABP 710 00:41:57,890 --> 00:42:00,910 ან სადმე, გარდა CVS სადაც თქვენ არ ვაპირებთ bump შევიდა ერთმანეთს 711 00:42:00,910 --> 00:42:02,790 წასვლა მიიღოთ გარკვეული რძე. 712 00:42:02,790 --> 00:42:04,820 რა თქმა უნდა, რამდენიმე წუთის შემდეგ, ორივე თქვენ სახლში 713 00:42:04,820 --> 00:42:07,740 და ახლა თქვენ გაქვთ ორჯერ იმდენი რძე, როგორც თქვენ რეალურად სურდა. 714 00:42:07,740 --> 00:42:10,670 და მიმდინარეობს რძე, ახლა კი აპირებს ცუდი რადგან მოგწონთ რძე 715 00:42:10,670 --> 00:42:14,200 მაგრამ თქვენ ნამდვილად არ მოსწონს რძე, ისე ახლა თქვენ გაქვთ ძალიან ბევრი რძე, ამიტომ აპირებს Sour. 716 00:42:14,200 --> 00:42:16,830 ეს არის საშინელი, საშინელი სიტუაცია. 717 00:42:16,830 --> 00:42:22,920 რა შეეძლო მოგვარდება ამ predicament თუ იყო პირველი roommate სახლში? დიახ. 718 00:42:22,920 --> 00:42:25,970 [სტუდენტი] თქვენ უნდა არ დაუტოვებიათ შენიშვნა. [სიცილის] 719 00:42:25,970 --> 00:42:28,090 კარგი. თქვენ უნდა არ დაუტოვებიათ შენიშვნა. 720 00:42:28,090 --> 00:42:32,320 თქვენ უნდა დააყენოს Post-ის შენიშვნა ან ანალოგიური სიტყვებით "Gone ამისთვის რძე," 721 00:42:32,320 --> 00:42:36,830 და შემდეგ თქვენი roommate კონცეპტუალურად იქნებოდა ჩაკეტილი გარეთ რეალურად აკეთებს, რომ. 722 00:42:36,830 --> 00:42:38,010 ან თქვენ შეიძლება გადასვლა 1 ნაბიჯი შემდგომი. 723 00:42:38,010 --> 00:42:41,060 თქვენ შეიძლება სიტყვასიტყვით ჩაკეტვა მაცივარი რამდენიმე სახის ბოქლომს, 724 00:42:41,060 --> 00:42:44,870 და ახლა თქვენი roommate იქნება სიტყვასიტყვით იკეტება გარეთ მაცივარი. 725 00:42:44,870 --> 00:42:48,520 თუ ჩვენ განზოგადება თავში პროგრამირება, 726 00:42:48,520 --> 00:42:51,610 შეგიძლიათ თითქმის ვფიქრობ მაცივარი როგორც გარკვეული სახის ცვალებად და struct, 727 00:42:51,610 --> 00:42:53,500 რაღაც კონტეინერი ინფორმაციაზე. 728 00:42:53,500 --> 00:42:58,290 პრობლემის ძირეულად აქ არის ის, რომ ორივე თქვენგანი მიეცათ შეამოწმოს 729 00:42:58,290 --> 00:43:02,370 ან წაიკითხა სახელმწიფო ამ მონაცემების სტრუქტურას, 730 00:43:02,370 --> 00:43:08,050 მაგრამ თქვენ გახსნილია ის სხვადასხვა დროს და ჯერ ორივე მიიღე თუ არა გადაწყვეტილება 731 00:43:08,050 --> 00:43:11,920 დაფუძნებული სახელმწიფო მსოფლიოს იმ სხვადასხვა მომენტები დროში. 732 00:43:11,920 --> 00:43:15,570 ასე ჰქონდა თქვენ ჩაკეტილი მაცივარი, თქვენ იქნებოდა მინიმუმ აცილებული თქვენი roommate 733 00:43:15,570 --> 00:43:19,070 საწყისი რომელმაც შეძლო შეამოწმოს სახელმწიფოს მსოფლიოში, 734 00:43:19,070 --> 00:43:22,530 ამიტომ იგი ვერ გააკეთეს, რომ იგივე გადაწყვეტილება. 735 00:43:22,530 --> 00:43:25,780 ასე მონაცემთა ბაზა, როგორც ირკვევა, ეს პრობლემა მუდმივად. 736 00:43:25,780 --> 00:43:31,050 >> მოდით ვნახოთ, თუ შევძლებთ მშენებლობა სცენარი. 737 00:43:31,050 --> 00:43:34,310 დავუშვათ, რომ თქვენ ერთგვარი ცუდი ბიჭი და მიდიხარ ბანკი ამერიკის 738 00:43:34,310 --> 00:43:37,950 ან ერთი სხვა ადგილებში მოედანზე რომ აქვს რამდენიმე ბანკომატები თალიზში, 739 00:43:37,950 --> 00:43:41,200 და რატომღაც თქვენ figured out როგორ დუბლიკატი ბანკომატის ბარათი - არა ყველა რთული. 740 00:43:41,200 --> 00:43:42,730 უბრალოდ მაგნიტურ ზოლზე. 741 00:43:42,730 --> 00:43:45,180 და ა.შ. რა გსურთ ცდილობენ გააკეთოთ ითამაშე 742 00:43:45,180 --> 00:43:49,060 რომლითაც თქვენ დააყენა 1 ბარათი 1 მანქანა, მეორე ბარათი მანქანით, 743 00:43:49,060 --> 00:43:51,980 და თქვენ არსებითად შევეცდები სახსრების მოხსნის პარალელურად, 744 00:43:51,980 --> 00:43:54,930 რადგან ეჩვენება, რომ ამბავი მიდის შემდეგნაირად. 745 00:43:54,930 --> 00:43:57,350 მანქანა მარცხენა იღებს ბარათი და თქვენი PIN, 746 00:43:57,350 --> 00:44:00,240 და მაშინ ამბობენ, "მომეცი $ 100." 747 00:44:00,240 --> 00:44:04,790 ბანკომატით არის პროგრამირდება პირველი გავაკეთოთ არჩევა თავის მონაცემთა ბაზაში ან ექვივალენტი - 748 00:44:04,790 --> 00:44:10,780 რასაც მონაცემთა ბაზაში ის გამოყენებით - დაინახოს ამჯამად ამ მომხმარებლის მინიმუმ $ 100 მისი ანგარიში? 749 00:44:10,780 --> 00:44:16,180 თუ ასეა, მაშინ Spit out $ 100 და სხვაობა 100 $ მათი ბალანსი. 750 00:44:16,180 --> 00:44:20,470 მაგრამ, რა თქმა უნდა, თუ არსებობს მრავალი მანქანები აქ ან მრავალჯერადი გზები შემოწმების 751 00:44:20,470 --> 00:44:23,560 სახელმწიფოს, რომ მსოფლიოში, საბანკო სარდაფით,, რამდენად ბევრი ფული გაქვთ, 752 00:44:23,560 --> 00:44:26,780 ვარაუდობენ, რომ უბრალოდ შემთხვევით მანქანა მარცხენა და მარჯვენა 753 00:44:26,780 --> 00:44:30,140 ორივე ვთხოვო, რომ კითხვაზე უხეშად იმავე მომენტში დროში. 754 00:44:30,140 --> 00:44:34,160 >> და ეს შეიძლება მოხდეს, რა თქმა უნდა. ბანკომატები are კომპიუტერები ამ დღეებში. 755 00:44:34,160 --> 00:44:37,670 ასე რომ, თუ მანქანა მარცხენა ამბობს: "დიახ, თქვენ გაქვთ მინიმუმ $ 100," 756 00:44:37,670 --> 00:44:42,150 ამასობაში მანქანა მარჯვენა ამბობს: "დიახ, თქვენ გაქვთ მინიმუმ $ 100," 757 00:44:42,150 --> 00:44:47,420 მაშინ ორივე მათგანი გაგრძელება დასრულება მათ პროგრამებს და ფაქტობრივად Spit out $ 100 758 00:44:47,420 --> 00:44:50,820 და ვთქვათ, "წინასწარ გქონდათ $ 200." 759 00:44:50,820 --> 00:44:54,890 "ნება მომეცით განაახლოთ ცვლადი ახლა $ 100 დარჩა ანგარიშზე." 760 00:44:54,890 --> 00:44:58,780 მაგრამ თუ ორივე მათგანი შემოწმდება თქვენი ანგარიშის ბალანსი და აღმოაჩინა, რომ ის $ 200 761 00:44:58,780 --> 00:45:02,000 და ორივე მათგანი მაშინ ნუ მათემატიკის და ამბობენ 200 - 100, 762 00:45:02,000 --> 00:45:06,990 მანქანები არ პოტენციურად Spit ორი $ 100 გადასახადები თითოეულ მანქანა, 763 00:45:06,990 --> 00:45:11,360 მაგრამ ისინი მხოლოდ ახლდება თქვენი თანხა ანგარიშის ბალანსი იქნება $ 100. 764 00:45:11,360 --> 00:45:15,130 სხვა სიტყვებით, თქვენ ამოყვანა $ 200, არამედ იმიტომ, რომ დაათვალიერა სახელმწიფო მსოფლიოს 765 00:45:15,130 --> 00:45:18,840 ერთდროულად და შემდეგ მივიღეთ გადაწყვეტილება ეფუძნება, რომ ღირებულება, 766 00:45:18,840 --> 00:45:21,930 მათ, შესაძლოა, არ გააკეთებს მათემატიკის საბოლოოდ სწორად. 767 00:45:21,930 --> 00:45:25,520 ასე რომ, ბანკი სიტუაცია ძალიან ნამდვილად გსურთ გარკვეული სახის lockout 768 00:45:25,520 --> 00:45:28,450 ასე რომ როგორც კი თქვენ შემოწმდება სახელმწიფო ზოგიერთი ცვლადის 769 00:45:28,450 --> 00:45:31,220 რომ მართლაც მნიშვნელოვანია, ისევე როგორც თქვენი ანგარიშის ბალანსი, 770 00:45:31,220 --> 00:45:36,070 ნუ ვინმეს მიიღოს გადაწყვეტილება ეფუძნება, რომ სანამ თქვენ კეთდება აკეთებს თქვენი რამ, 771 00:45:36,070 --> 00:45:38,920 აქ ამ შემთხვევაში თქვენ ბანკომატით მარცხენა. 772 00:45:38,920 --> 00:45:41,160 Lock ყველას გარეთ. 773 00:45:41,160 --> 00:45:44,650 თქვენ შეგიძლიათ რეალურად მივაღწიოთ ამ მიზნით რამდენიმე განსხვავებული გზები. 774 00:45:44,650 --> 00:45:48,660 >> უმარტივესი გზა MySQL არის ხაზზე SQL რომ მივეცით თქვენ 775 00:45:48,660 --> 00:45:52,030 პრობლემის კომპლექტი სპეციფიკაცია, რომელიც გამოიყურება ზუსტად მოსწონს ეს. 776 00:45:52,030 --> 00:45:57,420 INSERT INTO მაგიდა - რასაც ეს მოუწოდა - პირადობის მოწმობა, სიმბოლო, და წილი, ნომერი აქციების, 777 00:45:57,420 --> 00:45:59,660 შემდეგ ფასეულობებს, მაგალითად. 778 00:45:59,660 --> 00:46:03,370 თუ არ წაიკითხა სპეც ჯერჯერობით, ეს არის მაგალითი, რომელშიც მონაწილეობას მიიღებენ როგორ დადიხართ შესახებ 779 00:46:03,370 --> 00:46:07,340 ყიდულობენ 10 აქციები ამ Penny საფონდო პრეზიდენტ Skroob, 780 00:46:07,340 --> 00:46:10,340 რომლის მომხმარებლის ID ხდება იყოს ნომერი 7? 781 00:46:10,340 --> 00:46:14,070 ეს ამბობს INSERT INTO მაგიდასთან შემდეგ პირადობის მოწმობა, სიმბოლო, და ნომერი აქციების 782 00:46:14,070 --> 00:46:18,200 7, 'DVN.V', და 10. 783 00:46:18,200 --> 00:46:21,510 მაგრამ - მაგრამ, მაგრამ, მაგრამ - მეორე ხაზი არის მნიშვნელოვანი. 784 00:46:21,510 --> 00:46:26,310 ON დუბლიკატი KEY UPDATE აქციების = აქციების + ფასეულობების (აქციების). 785 00:46:26,310 --> 00:46:28,350 ამიტომ სრულიად cryptic-looking ერთი შეხედვით. 786 00:46:28,350 --> 00:46:31,990 მაგრამ ის ფაქტი, რომ ამ SQL query, მიუხედავად იმისა, რომ დასრულდება გადატანა 2 ხაზი, 787 00:46:31,990 --> 00:46:35,920 არის 1 ხანგრძლივი შეკითხვის, ეს ნიშნავს, რომ ატომურ 788 00:46:35,920 --> 00:46:41,000 იმ გაგებით, რომ ამ შეკითხვის ან შესრულდება ყველა ერთად თუ არა ყველა. 789 00:46:41,000 --> 00:46:45,100 და განმარტებას MySQL, ასე ისინი განხორციელდა ამ შეკითხვა. 790 00:46:45,100 --> 00:46:51,010 ეს არის განმარტება სახელმძღვანელო გარანტირებული შეასრულოს ერთდროულად ან საერთოდ არ. 791 00:46:51,010 --> 00:46:54,020 მოტივაცია ამ ასეთია. 792 00:46:54,020 --> 00:46:58,540 თუ ამ შემთხვევაში თქვენ ცდილობთ ყიდვა 10 აქციების საფონდო, 793 00:46:58,540 --> 00:47:02,260 ეს სახის იმავე ამბავს, როგორც რძე, ეს სახის იმავე ამბავს როგორც ბანკომატიდან. 794 00:47:02,260 --> 00:47:04,970 >> თუ შეცდომა არ იყენებს ამ სინტაქსის 795 00:47:04,970 --> 00:47:09,610 მაგრამ ნაცვლად შერჩევის მონაცემთა ბაზიდან რომ ნახოთ რამდენი აქციების ამ Penny საფონდო 796 00:47:09,610 --> 00:47:13,750 ამჯამად პრეზიდენტ Skroob აქვს, და ვარაუდობენ, რომ მას აქვს 10 აქციები, 797 00:47:13,750 --> 00:47:19,330 და შემდეგ რამდენიმე გაყოფილი მეორე მოგვიანებით თქვენ მაშინ UPDATE განაცხადი, 798 00:47:19,330 --> 00:47:24,810 რაც კიდევ ერთი განცხადება SQL რომ ამბობს წავიდეთ წინ და დაამატოთ 10 მეტი აქციები 799 00:47:24,810 --> 00:47:28,700 მისი ამჟამინდელი 10 ისე, რომ იდეალურად სულ არის 20, 800 00:47:28,700 --> 00:47:33,490 პრობლემა ის არის, რადგან დღევანდელ მონაცემთა ბაზის სისტემები და რადგან დღევანდელ კომპიუტერები 801 00:47:33,490 --> 00:47:35,990 თქვენ გაქვთ მრავალჯერადი პროცესორები, მრავალჯერადი ბირთვით - 802 00:47:35,990 --> 00:47:38,920 სხვა სიტყვებით, კომპიუტერები შეგიძლიათ სიტყვასიტყვით უნდა აკეთებს მრავალჯერადი რამ ერთდროულად - 803 00:47:38,920 --> 00:47:44,270 არსებობს არავითარი გარანტია, რომ თქვენი SELECT და თქვენი UPDATE ამ შემთხვევაში 804 00:47:44,270 --> 00:47:46,150 ვაპირებთ მოხდეს უკან უკან. 805 00:47:46,150 --> 00:47:49,140 ასე რომ ცუდი სცენარი იქნება, რასაც აკეთებთ SELECT 806 00:47:49,140 --> 00:47:51,670 რომ ნახოთ თუ რამდენი აქციების ამ Penny საფონდო ამჯამად Skroob აქვს, 807 00:47:51,670 --> 00:47:54,710 და შემდეგ მხოლოდ ნაწილობრივ სხვა მონაცემთა ბაზის მოთხოვნის შესრულებულია - 808 00:47:54,710 --> 00:47:57,740 იქნებ მისი Skroob სხვა ბრაუზერის ფანჯარაში შესყიდვას ცდილობდა 10 აქციები 809 00:47:57,740 --> 00:48:00,700 სხვა ფანჯარა საერთოდ, ჰგავს ბანკომატით - 810 00:48:00,700 --> 00:48:05,410 და ვარაუდობენ, რომ კიდევ ერთი შეკითხვის იღებს შორის SELECT და UPDATE. 811 00:48:05,410 --> 00:48:10,210 ეს შეიძლება იყოს საქმე, რომ Skroob ახლა კარგავს გარკვეული რაოდენობის აქციების 812 00:48:10,210 --> 00:48:14,340 რადგან მეორე პროცესი შემოწმების სახელმწიფო მისი მსოფლიოში, 813 00:48:14,340 --> 00:48:17,800 ან იგი იღებს უფრო მეტი იზიარებს, ვიდრე მას უნდა ჰქონდეს. 814 00:48:17,800 --> 00:48:23,250 ჩვენ არ წასვლას რომლებიც საქართველოში სწორედ ის, რაც იმ კონკრეტულ ამბავს ხაზები იქნება, 815 00:48:23,250 --> 00:48:28,380 მაგრამ საქმე ის არის, თუ თქვენ უნდა შეამოწმოთ ცვლადები ღირებულება და შემდეგ მიიღოს გადაწყვეტილება, 816 00:48:28,380 --> 00:48:32,500 თუ არსებობს რისკი ვინმე აკეთებს რაღაცას შორის 2 განცხადებებს, 817 00:48:32,500 --> 00:48:36,220 როგორც შეიძლება მოხდეს multiprocessor სისტემები, წელს multicore სისტემები, 818 00:48:36,220 --> 00:48:41,220 კომპიუტერები უნარით გავაკეთოთ მრავალჯერადი რამ ერთბაშად, ცუდი რამ შეიძლება მოხდეს 819 00:48:41,220 --> 00:48:44,530 მოსწონს საბანკო ანგარიშებზე მიმდინარეობს debited არასწორად, გაყიდვა ორჯერ იმდენი რძე, 820 00:48:44,530 --> 00:48:46,730 ან ამ შემთხვევაში არასწორი რაოდენობის აქციების. 821 00:48:46,730 --> 00:48:48,370 მაგრამ ადვილი გზა ფიქრი ამ. 822 00:48:48,370 --> 00:48:53,290 >> თურმე SQL ასევე მხარს უჭერს, თუ თქვენ დააკონფიგურიროთ თქვენი მაგიდასთან სწორად, 823 00:48:53,290 --> 00:48:56,920 რაღაც მოუწოდა გარიგებები, რომლებიც მინდა ამტკიცებენ სინამდვილეში კი ადვილია მესმის 824 00:48:56,920 --> 00:49:00,650 ვიდრე ამ, მაგრამ ეს არ 1 ლაინერი, ამიტომ რეალურად უფრო მეტი ჩართული. 825 00:49:00,650 --> 00:49:04,960 არსებობს სიტყვასიტყვით განცხადება SQL მოუწოდა START ოპერაციის. 826 00:49:04,960 --> 00:49:08,300 ისევე როგორც არსებობს SELECT, განახლება, ჩადეთ, წაშლის და შეუერთდით და bunch of სხვები, 827 00:49:08,300 --> 00:49:10,970 არსებობს საკვანძო სიტყვები მოსწონს START ოპერაციის. 828 00:49:10,970 --> 00:49:13,560 და რას მაშინ ნუ კონტექსტში pset 7 - 829 00:49:13,560 --> 00:49:17,270 თქვენ არ უნდა გავაკეთოთ ეს pset 7; ის მკაფიოდ იხსნის როგორც აუცილებელი არ არის, 830 00:49:17,270 --> 00:49:18,830 მაგრამ საბოლოო პროექტების შეიძლება იყოს სასარგებლო - 831 00:49:18,830 --> 00:49:22,820 თუ რეკავთ შეკითხვის დაწყების გარიგებას და შემდეგ კიდევ ერთი შეკითხვის 832 00:49:22,820 --> 00:49:25,620 და შემდეგ კიდევ ერთი შეკითხვის და შემდეგ კიდევ ერთი, მეორე, და მეორე, 833 00:49:25,620 --> 00:49:31,860 იმ შეკითხვებს არ რეალურად შესრულდება მანამ, სანამ თქვენ მოვუწოდებთ SQL განაცხადი ჩაიდინოს, 834 00:49:31,860 --> 00:49:37,220 სადაც წერტილი, თუ არა ეს 2 განცხადებებს ან 20 განცხადებებს, ისინი ყველა შესრულდება ერთდროულად, 835 00:49:37,220 --> 00:49:42,770 რაც იმას ნიშნავს, არავინ შეიძლება შემთხვევით ყიდვა ძალიან ბევრი რძე ან სადებეტო ძალიან ბევრი ფული 836 00:49:42,770 --> 00:49:46,340 ან ყიდვა ძალიან ბევრი იზიარებს, რადგან ყველა თქვენს შეკითხვებს განახორციელებს 837 00:49:46,340 --> 00:49:48,410 თავში დაბრუნება თავში დაბრუნება. 838 00:49:48,410 --> 00:49:51,580 და ეს არის სუპერ მნიშვნელოვანია, განსაკუთრებით მაშინ, როდესაც თქვენ აკეთებთ რაღაც მსგავსი. 839 00:49:51,580 --> 00:49:54,900 ეს არის თვითნებური მაგალითად რომ ამბობს მოდით განაახლოთ საბანკო ანგარიშზე 840 00:49:54,900 --> 00:50:00,200 მიიღწევა ბალანსი ტოლია ბალანსი - $ 1000, სადაც ანგარიშის ნომერი არის 2. 841 00:50:00,200 --> 00:50:04,260 და მაშინ მეორე განაცხადი არის მოდით შეიტანოს, რომ $ 1000 842 00:50:04,260 --> 00:50:07,310 შევიდა სხვისი საბანკო ანგარიშზე, რომლის ანგარიშის ნომერი არის 1. 843 00:50:07,310 --> 00:50:10,400 >> სხვა სიტყვებით, ეს არის მაგალითი თუ სად გვინდა დავრწმუნდეთ 844 00:50:10,400 --> 00:50:13,590 რომ ორივე ამ განცხადებებს მოხდეს ან საერთოდ არ 845 00:50:13,590 --> 00:50:15,450 რადგან სხვაგვარად მომხმარებელს აპირებს მისაღებად ბრალია 846 00:50:15,450 --> 00:50:17,670 და თქვენ აპირებს საკუთარი ფული და არ შეიტანოს იგი სხვაგან, 847 00:50:17,670 --> 00:50:20,470 ან ბანკი აპირებს მისაღებად ბრალია სადაც თქვენ აპირებთ შეიტანოს ფული 848 00:50:20,470 --> 00:50:23,140 მაგრამ არა რეალურად სხვაობა ის მომხმარებლის ანგარიშზე. 849 00:50:23,140 --> 00:50:25,810 ასე რომ გსურთ ორივე შეასრულოს ერთად. 850 00:50:25,810 --> 00:50:29,140 ამდენად შედის მსოფლიოს ტრანზაქციებზე. 851 00:50:29,140 --> 00:50:31,360 ასე რომ რაღაც შენარჩუნება უკან თქვენი აზრით, 852 00:50:31,360 --> 00:50:34,710 არა იმდენად მიზნებისათვის მხოლოდ საბოლოო პროექტი, 853 00:50:34,710 --> 00:50:36,700 მაგრამ თუ გსურთ თქვენი საბოლოო პროექტის სადღაც, 854 00:50:36,700 --> 00:50:39,040 თუ გსურთ დავიწყოთ ზოგიერთი კომპანიის ირგვლივ, 855 00:50:39,040 --> 00:50:41,270 თუ გსურთ გადაჭრის ზოგიერთი სტუდენტი ჯგუფის პრობლემაა კამპუსში 856 00:50:41,270 --> 00:50:45,210 და რეალურად ცოცხალი, აქტიური ნახვა, ეს არის ერთგვარი დახვეწილი შეცდომები, რომ, შესაძლოა, წარმოიშვას 857 00:50:45,210 --> 00:50:49,480 თუ თქვენ არ საკმაოდ ვფიქრობ მეშვეობით რა შეიძლება მოხდეს, თუ 2 ადამიანი 858 00:50:49,480 --> 00:50:54,190 ცდილობთ თქვენი ვებ სიტყვასიტყვით იმავე მომენტში დროში, 859 00:50:54,190 --> 00:50:56,890 რომლითაც მათ შეკითხვებს შეიძლება სხვაგვარად მისაღებად interwoven. 860 00:50:58,840 --> 00:51:01,420 >> მზად არის, რომ JavaScript, teaser მისი? 861 00:51:01,420 --> 00:51:04,320 ეს არის ჩვენი ბოლო ენის სემესტრში. ყველა უფლება. 862 00:51:04,320 --> 00:51:09,940 საბედნიეროდ, JavaScript გამოიყურება ძალიან, ძალიან, ძალიან ჰგავს 2 ენებზე, C და PHP, 863 00:51:09,940 --> 00:51:11,140 ჩვენ გავაკეთეთ დღემდე. 864 00:51:11,140 --> 00:51:14,340 იქ არ არის JavaScript in pset 7, მაგრამ ეს წარმოუდგენლად სასარგებლო ინსტრუმენტი 865 00:51:14,340 --> 00:51:18,840 როდესაც საქმე აკეთებს ვებ დაფუძნებული საბოლოო პროექტების ან მართლაც უბრალოდ ვებ პროგრამირების ზოგადად. 866 00:51:18,840 --> 00:51:20,950 ამიტომ სწრაფი მიმოხილვა რაღაც მოუწოდა DOM. 867 00:51:20,950 --> 00:51:23,600 აქ არის სუპერ მარტივი ვებ გვერდზე რომ მართლაც მხოლოდ ამბობს hello, world 868 00:51:23,600 --> 00:51:25,970 როგორც სათაური და სხეულში. 869 00:51:25,970 --> 00:51:29,270 როგორც წანაცვლება უკვე ვარაუდით, გარკვეული დროის, 870 00:51:29,270 --> 00:51:31,380 იქ მართლაც იერარქიაში ვებ გვერდებზე. 871 00:51:31,380 --> 00:51:34,220 მე ვერ გავამახვილო იგივე Snippet of HTML როგორც ხე, 872 00:51:34,220 --> 00:51:37,470 ფიქრი თავში ჩვენი დისკუსიების მონაცემთა სტრუქტურების C, შემდეგნაირად. 873 00:51:37,470 --> 00:51:40,710 მაქვს ზოგიერთი სპეციალური root node მოუწოდა დოკუმენტი კვანძში, 874 00:51:40,710 --> 00:51:43,650 და ვნახავთ, ანალოგი ამ JavaScript რაღაც მომენტში. 875 00:51:43,650 --> 00:51:48,330 პირველი შვილი და მხოლოდ ბავშვი, რომ ამ შემთხვევაში არის HTML ტეგი. 876 00:51:48,330 --> 00:51:49,880 იქ არ არის პირდაპირი აგეგმვითი doctype. 877 00:51:49,880 --> 00:51:53,170 სწორედ განსაკუთრებული რამ, ამიტომ ჩვენ უნდა ნუ მიაქცევთ ყურადღებას, როდესაც საქმე ამ DOM, 878 00:51:53,170 --> 00:51:55,810 ამ დოკუმენტის ობიექტური მოდელის ხე. 879 00:51:55,810 --> 00:51:59,530 გაითვალისწინეთ, რომ HTML ტეგი, რომელიც მე გამოსახული თვითნებურად როგორც მართკუთხედი, 880 00:51:59,530 --> 00:52:02,890 ჰყავს 2 შვილი: უფროსი და სხეულის. 881 00:52:02,890 --> 00:52:04,840 >> ეს არის ასეთივე შედგენილი როგორც ოთხკუთხედს. 882 00:52:04,840 --> 00:52:08,970 ეს არის აზრიანი pictorially რომ ხელმძღვანელი არის მარცხენა სხეულის. 883 00:52:08,970 --> 00:52:11,960 გავლენა არის, რომ უფროსი მოდის პირველი ხე. 884 00:52:11,960 --> 00:52:14,910 ასე რომ სინამდვილეში შეკვეთით to ხე, როდესაც თქვენ მიაპყროს მას მოსწონს, 885 00:52:14,910 --> 00:52:17,460 მიუხედავად იმისა, ფორმის და whatnot are თვითნებური. 886 00:52:17,460 --> 00:52:20,360 უფროსი იმავდროულად აქვს ერთი ბავშვის მოუწოდა სათაური, 887 00:52:20,360 --> 00:52:25,170 და სათაური რეალურად აქვს საკუთარი შვილი, რომელიც არის "Hello, World", 888 00:52:25,170 --> 00:52:32,210 რაც მე განზრახ მიიპყრო როგორც ოვალური აქ რათა ის ოდნავ განსხვავდება მართკუთხედი. 889 00:52:32,210 --> 00:52:37,420 ეს მართკუთხედების არიან ელემენტები, ხოლო hello, მსოფლიოში მართლაც ტექსტი კვანძში. 890 00:52:37,420 --> 00:52:39,850 ასე რომ კვანძის in ხე, მაგრამ სხვადასხვა ტიპის კვანძში 891 00:52:39,850 --> 00:52:41,730 ამიტომ მიიპყრო იგი თვითნებურად განსხვავებულად. 892 00:52:41,730 --> 00:52:45,000 ანალოგიურად ამჯამად ორგანო აქვს ბავშვის მოუწოდა hello, world, ისევე, 893 00:52:45,000 --> 00:52:47,910 ამიტომ სხვადასხვა კვანძის მიუხედავად იმისა, ისინი ერთსა და იმავე ტექსტს, 894 00:52:47,910 --> 00:52:52,100 მაგრამ მე შედგენილი ეს იგივე ფორმის. ასე რომ, ვინც ზრუნავს? 895 00:52:52,100 --> 00:52:56,820 ისე, რა ლამაზი შესახებ HTML არის ის, რომ აქვს ამ იერარქიული ბუნება. 896 00:52:56,820 --> 00:53:01,010 და რაც ლამაზი შესახებ JavaScript და განსაკუთრებით ბიბლიოთეკების, რომლებიც თავისუფლად ხელმისაწვდომია 897 00:53:01,010 --> 00:53:07,120 და პოპულარული მოსწონს jQuery, შეგიძლიათ ნავიგაციისათვის ხის სტრუქტურაში ისე საოცრად მარტივია. 898 00:53:07,120 --> 00:53:11,790 ნებისმიერი პერსონალის ჩვენ გააკეთა C ერთად მაჩვენებლებისა და traversing ხეები და recursing on კვანძების 899 00:53:11,790 --> 00:53:15,300 მარცხენა ბავშვის უფლება ბავშვის, უეცრად ჩვენ შეგვიძლია სახის თავისთავად 900 00:53:15,300 --> 00:53:19,450 როგორც საოცრად საგანამანთლებლო თუ არა ცოტა იმედგაცრუებაა 901 00:53:19,450 --> 00:53:22,470 მაგრამ არა თითქმის ეფექტური გზაა გასავლელი შესახებ პროგრამირების. 902 00:53:22,470 --> 00:53:24,470 და ა.შ. ამ უმაღლესი დონის ენებს, როგორიცაა JavaScript 903 00:53:24,470 --> 00:53:28,340 ჩვენ შევძლებთ ამ ნავიგაცია ხე გაცილებით უფრო ინტუიციურად. 904 00:53:28,340 --> 00:53:30,430 >> მართლაც სინტაქსი იქნება საკმაოდ ნაცნობი. 905 00:53:30,430 --> 00:53:32,950 თუ თქვენ არასოდეს მინახავს JavaScript ადრე, ეს მართლაც კარგია მინიშნება 906 00:53:32,950 --> 00:53:35,910 საწყისი Mozilla FOLKS, ადამიანები, რომლებიც Firefox, 907 00:53:35,910 --> 00:53:38,370 ასე რომ შეგიძლიათ დაათვალიეროთ, რომ თქვენს მოხერხებულობისთვის. 908 00:53:38,370 --> 00:53:41,590 რა თქვენ იპოვით - და ეს სლაიდები იდენტურია, რაც ჩვენ გამოიყენება სხვა დღე - 909 00:53:41,590 --> 00:53:44,030 ანალოგიურად, მთავარ გაქრა. 910 00:53:44,030 --> 00:53:47,010 ასე რომ, როდესაც ვწერთ პროგრამის JavaScript, არ არსებობს მთავარ ფუნქციას. 911 00:53:47,010 --> 00:53:48,690 თქვენ უბრალოდ წერა კოდი. 912 00:53:48,690 --> 00:53:51,660 მაგრამ გასაღები განსხვავება შორის JavaScript და C და PHP 913 00:53:51,660 --> 00:53:55,890 ის არის, რომ მაშინ როდესაც C და PHP დღემდე არ აღსრულებულა სერვერის მხარეს 914 00:53:55,890 --> 00:53:59,180 მიერ ელექტრო ამ შემთხვევაში ან საერთოდ მიერ სერვერზე, 915 00:53:59,180 --> 00:54:04,270 JavaScript მიერ დიზაინის ჩვეულებრივ ახორციელებს ბრაუზერში. 916 00:54:04,270 --> 00:54:08,440 სხვა სიტყვებით, თქვენ ალბათ წერენ JavaScript კოდი, როგორც ჩვენ შესახებ, 917 00:54:08,440 --> 00:54:13,080 on სერვერი ელექტრო მოწყობილობების, მაგრამ თქვენ, რომელშიც შედიოდა შორის თქვენი HTML, მათ შორის თქვენი CSS, 918 00:54:13,080 --> 00:54:16,100 შორის თქვენი GIFs და თქვენი PNGs და თქვენი JPEGs 919 00:54:16,100 --> 00:54:19,170 ასე რომ, როდესაც მომხმარებლის სტუმრობს თქვენს ვებ გვერდზე, თუ თქვენ იყენებთ JavaScript, 920 00:54:19,170 --> 00:54:21,770 რომ JavaScript კოდი მოდის სერვერიდან ბრაუზერის, 921 00:54:21,770 --> 00:54:24,540 და ეს ბრაუზერი, რომ რეალურად ახორციელებს მას. 922 00:54:24,540 --> 00:54:27,960 ასე რომ, ეს აქვს გააზრებული გავლენა კი ინტელექტუალური საკუთრების. 923 00:54:27,960 --> 00:54:32,600 ეს სახის სულელური კი ვიფიქროთ დაცვის თქვენი IP როდესაც საქმე JavaScript კოდი 924 00:54:32,600 --> 00:54:37,560 რადგან ბუნებით ენის იგი იღებს შესრულებული ჩვეულებრივ ბრაუზერში მხარეს. 925 00:54:37,560 --> 00:54:40,360 >> შეგიძლიათ obfuscate ის, რაც იმას ნიშნავს, შეგიძლიათ მას ასე გიჟური და უსახური 926 00:54:40,360 --> 00:54:45,400 რომელზეც არ whitespace, საშინელებაა ცვლადი სახელები, რათა ის უფრო რთული ხალხს მოიპარონ თქვენი IP, 927 00:54:45,400 --> 00:54:48,120 მაგრამ გასაღები არის, რომ ეს შესრულებული ბრაუზერის მხარეს. 928 00:54:48,120 --> 00:54:51,790 მიუხედავად იმისა, რომ როგორც განზე JavaScript შეიძლება გამოყენებულ სერვერის მხარეს, 929 00:54:51,790 --> 00:54:54,480 ყველაზე გავრცელებული გამოყენების შემთხვევაში ახლავე მაინც ბრაუზერში. 930 00:54:54,480 --> 00:54:59,800 აქ არის ის, რაც გამოიყურება. აქ არის თუ-სხვაგან თუ-სხვაგან მშენებლობა ისევე, როგორც C, ისევე, როგორც PHP. 931 00:54:59,800 --> 00:55:02,420 აქ არის ლოგიკური გამოხატულებაა, როდესაც თქვენ "ან" 2 რამ ერთად. 932 00:55:02,420 --> 00:55:04,330 აქ არის, როდესაც თქვენ "და" 2 რამ ერთად. 933 00:55:04,330 --> 00:55:08,300 აქ არის შეცვლა განაცხადი, რომელიც მსგავსია PHP 934 00:55:08,300 --> 00:55:10,810 in, რომ თქვენ შეგიძლიათ გადახვიდეთ სხვადასხვა ტიპის ფასეულობები. 935 00:55:10,810 --> 00:55:15,180 მარყუჟების ანალოგიურად აქვთ მარყუჟების აქ, რომელიც სტრუქტურულად იდენტურად რომ რასაც ჩვენ ვხედავთ ადრე. 936 00:55:15,180 --> 00:55:18,110 მიუხედავად იმისა, მარყუჟების, გვაქვს გავაკეთოთ ხოლო მარყუჟების. 937 00:55:18,110 --> 00:55:20,290 ცვლადები, ოდესმე ასე ოდნავ განსხვავებული. 938 00:55:20,290 --> 00:55:24,560 თქვენ განაცხადოს ცვლადები თქვენნაირი გავაკეთებთ PHP და C, 939 00:55:24,560 --> 00:55:27,860 მაგრამ ანალოგიურად არის JavaScript სუსტად აკრეფილი. 940 00:55:27,860 --> 00:55:32,730 თქვენ არ დააკონკრეტა int ან ათწილადი ან სიმებიანი ან არაფერი რომ ჩვეულებრივ. 941 00:55:32,730 --> 00:55:34,240 თქვენ შეგიძლიათ მიუთითოთ var. 942 00:55:34,240 --> 00:55:38,040 თქვენ არ დააკონკრეტა var, მაგრამ მას გამოძახილი თუ არ. 943 00:55:38,040 --> 00:55:42,000 ჩვეულებრივ თუ გამომრჩეს var, თქვენ შემთხვევით შექმნა გლობალური ცვლადი ნაცვლად ადგილობრივი. 944 00:55:42,000 --> 00:55:46,420 ნება მომეცით, შესთავაზოს, რომ თქვენ თითქმის ყოველთვის უბრალოდ, ვამბობთ var და შემდეგ სახელს ცვლადი. 945 00:55:46,420 --> 00:55:48,740 ეს არ არის ისეთი ტიპის, უბრალოდ var ამისთვის ცვლადი. 946 00:55:48,740 --> 00:55:52,930 ეს იქნება მაგალითი, თუ არა ის 123 ან "Hello, World". 947 00:55:52,930 --> 00:55:58,910 კოლექტორები იმყოფებიან და syntactically მსგავსი PHP. 948 00:55:58,910 --> 00:56:03,690 მე ვთქვა var ნომრები და შემდეგ გამოვიყენო კვადრატულ ფრჩხილებში ერთხელ განაცხადოს ცვლადი 949 00:56:03,690 --> 00:56:08,870 რომელთა ტიპის მასივი, რომელსაც აქვს ამ კონკრეტულ ნომრები მას მძიმით. 950 00:56:08,870 --> 00:56:11,740 და მერე ბოლოს, ეს არის მხოლოდ ერთი, რომ მართლაც გამოიყურება სხვადასხვა. 951 00:56:11,740 --> 00:56:16,700 შეგახსენებთ, რომ PHP-ში ჩვენ განვახორციელეთ ასოციაციურ მასივში ამისთვის სტუდენტი 952 00:56:16,700 --> 00:56:20,220 მოსწონს Zamyla რომ შესაძლოა ასე გამოიყურება, სადაც ცვლადი ეწოდება სტუდენტი. 953 00:56:20,220 --> 00:56:23,370 კვადრატულ ფრჩხილებში ნიშნავს აქ მოდის მასივი. 954 00:56:23,370 --> 00:56:28,500 >> იმისა, რომ მე არ იყენებს რიცხვითი მაჩვენებლები, მაგრამ სტრიქონები - პირადობის მოწმობა, სახლი და სახელი - 955 00:56:28,500 --> 00:56:30,990 ნიშნავს, რომ ეს არის ასოციაციური მასივი, 956 00:56:30,990 --> 00:56:34,490 და ამ ისრებით ერთად ტოლობის ნიშანი და დახრილი bracket 957 00:56:34,490 --> 00:56:37,310 იმას ნიშნავს, რომ გასაღები არის "id", ღირებულება არის 1; 958 00:56:37,310 --> 00:56:39,310 გასაღები არის "სახლი", ღირებულება არის WINTHROP სახლი; 959 00:56:39,310 --> 00:56:41,800 გასაღები არის "სახელი", ღირებულება არის Zamyla Chan. 960 00:56:41,800 --> 00:56:47,110 ასე რომ არსებობს 3 გასაღებები შიგნით ამ ასოციაციურ მასივში, რომელთაგან თითოეული აქვს საკუთარი მნიშვნელობა. 961 00:56:47,110 --> 00:56:52,880 ჩვენ ვხედავთ, რომ pset 7, ან თქვენ მალე, წელს JavaScript იგივე იდეა, 962 00:56:52,880 --> 00:56:55,220 მაგრამ აპირებს ასე გამოიყურება. 963 00:56:55,220 --> 00:57:00,070 ასე var სტუდენტი - არ დოლარის ნიშანი და არის ნახსენები ტიპის ჯერ კიდევ მაგრამ var - 964 00:57:00,070 --> 00:57:05,860 შეადგენს და შემდეგ გახსნა Curly braces რადგან JavaScript როდესაც თქვენ გასაღები მნიშვნელობის წყვილის, 965 00:57:05,860 --> 00:57:08,900 თქვენ ნამდვილად გამოიყენოს რაღაც მოუწოდა ობიექტი. 966 00:57:08,900 --> 00:57:13,490 და იმ თქვენ იქ რომ მიიღოს APCS ან ანალოგიური შეიძლება გავიხსენოთ ობიექტების ჯავის 967 00:57:13,490 --> 00:57:15,140 ან მსგავსი ენებზე. 968 00:57:15,140 --> 00:57:17,880 JavaScript არ არის ჯავა, პირველ რიგში. 969 00:57:17,880 --> 00:57:21,600 ეს იყო მიზანმიმართული დიზაინი გადაწყვეტილება წლის წინ დაარტყა off რაღაც რომ იყო პოპულარული, 970 00:57:21,600 --> 00:57:25,640 მისი სახელი, მიუხედავად იმისა, რომ მას არ აქვს ფუნდამენტური ურთიერთობა ჯავის თავად. 971 00:57:25,640 --> 00:57:31,490 JavaScript აქვს ობიექტების, და თქვენ შექმნით მათ გზით Curly გაუწიოს ნოტაცია. 972 00:57:31,490 --> 00:57:36,710 ობიექტების JavaScript არიან საკმაოდ ბევრი ექვივალენტი ასოციაციურ მასივები PHP-ში 973 00:57:36,710 --> 00:57:40,030 როდესაც საქმე შენახვის მონაცემები შიგნით მათ. 974 00:57:40,030 --> 00:57:44,100 >> მაგრამ კიდევ უფრო ძლიერი in JavaScript შეგიძლიათ გაერთიანდნენ ძალიან ადვილად ფუნქციები 975 00:57:44,100 --> 00:57:48,040 შიგნით ობიექტი, მიუხედავად იმისა, რომ შეგიძლიათ გააკეთოთ ეს სხვა ენებზე, 976 00:57:48,040 --> 00:57:50,040 ეს საკმაოდ გავრცელებული პარადიგმა, როგორც ვნახავთ. 977 00:57:50,040 --> 00:57:54,380 მოკლედ, ეს ობიექტი წარმოადგენს სტუდენტი, რომელიც განსაკუთრებით Zamyla, 978 00:57:54,380 --> 00:58:00,380 და ეს მსგავსი კონცეპტუალურად, უბრალოდ syntactically განსხვავდება ამ. 979 00:58:00,380 --> 00:58:03,840 მოდით რეალურად გამოიყენოს JavaScript in ფაილი. 980 00:58:03,840 --> 00:58:05,570 თურმე არსებობს Script ტეგით. 981 00:58:05,570 --> 00:58:08,180 ჩვენ ვხედავთ სტილის tag და ჩვენ ვნახეთ სხვა HTML tags. 982 00:58:08,180 --> 00:58:11,510 Script tag რეალურად იქნება შეიცავს რამოდენიმე JavaScript კოდი. 983 00:58:11,510 --> 00:58:15,500 ნება მომეცით წასვლას ელექტრო სადაც ჩვენ გვაქვს კოდის წინასწარ გააკეთა. 984 00:58:15,500 --> 00:58:18,700 მე არ posted იგი ჯერ კიდევ ნახვა, მაგრამ მე გავაკეთებ, რომ მას შემდეგ კლასი. 985 00:58:18,700 --> 00:58:21,770 მოდით გახსენით ეს ერთი, blink.html. 986 00:58:21,770 --> 00:58:27,560 უკან 1990 იყო სიტყვასიტყვით HTML tag მოუწოდა blink tag, 987 00:58:27,560 --> 00:58:30,340 და ეს იყო ერთ ერთი ყველაზე შესანიშნავად overused tags ინტერნეტში 988 00:58:30,340 --> 00:58:36,140 რის ნეტავ ეწვევა ზოგიერთი 1990 სტილი ვებ გვერდზე და დაიწყოს ხედავს ტექსტი flashing თქვენ ასე, 989 00:58:36,140 --> 00:58:39,810 შედეგები მარკიზ tag, რომელმაც ტექსტი აპირებს მოსწონს ეს. 990 00:58:39,810 --> 00:58:45,070 ერთი რამდენჯერმე სადაც მსოფლიოს ფაქტობრივად შეთანხმდნენ ვებ სტანდარტი, 991 00:58:45,070 --> 00:58:48,250 ყველას მთელს ფორუმში მოკლეს blink tag რამდენიმე წლის წინ. 992 00:58:48,250 --> 00:58:52,860 მაგრამ ჩვენ შეგვიძლია resurrect იგი JavaScript როგორც დემონსტრირება ძალა გაქვთ 993 00:58:52,860 --> 00:58:56,660 როდესაც თქვენ შეგიძლიათ დაწეროთ პროგრამა შიგნით ვებ გვერდზე. 994 00:58:56,660 --> 00:59:00,240 პირველი მოდით გამოტოვოთ მეტი ახალი პერსონალის და ფოკუსირება მხოლოდ წლის. 995 00:59:00,240 --> 00:59:01,780 >> აქ არის ძველი პერსონალის ამ მაგალითს. 996 00:59:01,780 --> 00:59:06,350 მაქვს HTML tag, ხელმძღვანელი tag, და სათაური ტეგით. 997 00:59:06,350 --> 00:59:11,210 მერე აქვს სხეულის tag აქ div, რომელიც გაწვევას მხოლოდ მართკუთხა სამმართველოს გვერდზე 998 00:59:11,210 --> 00:59:14,720 რომ მე მოცემული უნიკალური ID თვითნებურად საქართველოს "მისალოცი", რათა, 999 00:59:14,720 --> 00:59:18,320 უბრალოდ ასე მაქვს გზა ცალსახად მოიხსენიებს, რომ რაღაც ძალიან მარტივი ტექსტი: 1000 00:59:18,320 --> 00:59:20,220 hello, world. 1001 00:59:20,220 --> 00:59:23,940 ახლა ნება მომეცით გადახვევა მდე ზევით ამ ფაილის და ვნახოთ რა არის ახალი. 1002 00:59:23,940 --> 00:59:27,710 პირველი, რაც ახალი up დაბრუნება არის Script tag, 1003 00:59:27,710 --> 00:59:31,280 და შიგნით Script tag გაფრთხილების მე განაცხადა ფუნქცია. 1004 00:59:31,280 --> 00:59:34,610 განაცხადოს ფუნქციის JavaScript, საკმაოდ მსგავსი PHP, 1005 00:59:34,610 --> 00:59:37,930 თქვენ სიტყვასიტყვით წერენ ფუნქცია მაშინ სახელით ფუნქცია, ფრჩხილებში, 1006 00:59:37,930 --> 00:59:40,400 და შესაძლოა გარკვეული არგუმენტები, თუ იგი იღებს ნებისმიერი. 1007 00:59:40,400 --> 00:59:43,510 მაშინ მაქვს ჩემი Curly გაუწიოს, როგორც ყოველთვის, და ახლა ჩვენ გვაქვს ოდნავ ახალი კოდი, 1008 00:59:43,510 --> 00:59:45,230 მაგრამ ვნახოთ რას ნიშნავს. 1009 00:59:45,230 --> 00:59:48,670 ასე var div, ამ უბრალოდ ნიშნავს მომეცი ცვლადში DIV. 1010 00:59:48,670 --> 00:59:50,530 მე შეეძლო უწოდა foo, მაგრამ მე მინდოდა, რომ მას ეწოდოს div 1011 00:59:50,530 --> 00:59:52,620 მიზეზით, რომ იქნება ნათელი მეორე. 1012 00:59:52,620 --> 00:59:57,480 მაშინ გამოდის, წელს JavaScript - და ეს არის JavaScript კოდი ჩართული ჩემი ვებ გვერდზე - 1013 00:59:57,480 --> 01:00:01,760 არსებობს სპეციალური გლობალური ცვლადი of ჯიშები მოუწოდა დოკუმენტი. 1014 01:00:01,760 --> 01:00:04,780 JavaScript ფაქტიურად ობიექტის ორიენტირებული ენა. 1015 01:00:04,780 --> 01:00:07,230 ჩვენ არ წასვლას დეტალურად 50 რაც იმას ნიშნავს, რომ, 1016 01:00:07,230 --> 01:00:11,180 მაგრამ ახლა ვიცი, რომ ობიექტი საკმაოდ ჰგავს struct. 1017 01:00:11,180 --> 01:00:14,740 როგორც ჩვენ ვნახეთ უკანა გზაზე, როცა ერთი ყველაზე ადრეული პრობლემა ადგენს 1018 01:00:14,740 --> 01:00:17,150 სადაც ჩვენ დააყენა ბევრი ინფორმაციის struct, 1019 01:00:17,150 --> 01:00:21,330 ანალოგიურად არის დოკუმენტურად სპეციალური struct რომ გააჩნია ბრაუზერის, 1020 01:00:21,330 --> 01:00:24,810 გააჩნია ნებისმიერ ვებ გვერდზე. ეს არ არის რაღაც მე შეიქმნა. 1021 01:00:24,810 --> 01:00:28,210 Inside ამ დოკუმენტის სტრუქტურა, თუმცა, თქვენ არა მარტო მონაცემები 1022 01:00:28,210 --> 01:00:30,010 მაგრამ თქვენ ასევე აქვს ფუნქციები. 1023 01:00:30,010 --> 01:00:34,090 >> და ნებისმიერ დროს თქვენ გაქვთ ფუნქციის შიგნით სტრუქტურა, შიგნით ობიექტი, 1024 01:00:34,090 --> 01:00:36,490 ეს მოუწოდა მეთოდი. მაგრამ ეს იგივე. 1025 01:00:36,490 --> 01:00:40,110 მეთოდი ფუნქცია რომ მხოლოდ ასე ხდება, რომ იყოს შიგნით რაღაც. 1026 01:00:40,110 --> 01:00:42,990 ასე რომ, ეს იმას ნიშნავს, რომ ამ სპეციალური გლობალური ცვლადში დოკუმენტი 1027 01:00:42,990 --> 01:00:47,690 აქვს ფუნქცია მოუწოდა getElementById რომ სიტყვასიტყვით არ რომ. 1028 01:00:47,690 --> 01:00:52,460 იგი მიიღებს თქვენ ელემენტს საწყისი DOM, დოკუმენტის ობიექტური მოდელის ხე, 1029 01:00:52,460 --> 01:00:55,520 რომლის ID არის ამ შემთხვევაში მისალმებები. 1030 01:00:55,520 --> 01:00:59,200 სხვა სიტყვებით, ყველა მაშინ ჩვენ დახარჯული მონაცემები სტრუქტურების ძალაში პიესა აქ. 1031 01:00:59,200 --> 01:01:01,400 ეს სურათის DOM რომ გვქონდა მომენტი წინ, 1032 01:01:01,400 --> 01:01:06,100 მიუხედავად იმისა, რომ გვერდზე არის პატარა სხვადასხვა, თუ მქონდა div ამ სურათში, 1033 01:01:06,100 --> 01:01:11,180 რა document.getElementById დაბრუნდნენ ჩემთან რომ ეფექტურად იყოს მაჩვენებელი 1034 01:01:11,180 --> 01:01:15,440 to ოთხკუთხედს ხე, მინიშნება ოთხკუთხედს ხე. 1035 01:01:15,440 --> 01:01:18,410 ასე რომ თუ რას ნიშნავს სინამდვილეში ერთი იმ ფუნქციებს. 1036 01:01:18,410 --> 01:01:21,960 ამ შემთხვევაში ისევ ის DIV. ეს არ არის სხეულის ან სათაური. 1037 01:01:21,960 --> 01:01:26,480 ასე რომ ვნახოთ რა მაშინ ვუყოთ div არის, რომ მე მას შიგნით ამ ცვლადში DIV. 1038 01:01:26,480 --> 01:01:32,580 თურმე ერთად JavaScript თქვენ გაქვთ უნარი tweak CSS თქვენს გვერდზე დინამიურად ვითარდება. 1039 01:01:32,580 --> 01:01:39,060 დღემდე, ყველა CSS ჩვენ გავაკეთეთ, თუმცა შეზღუდული, არის სტილის ატრიბუტები, 1040 01:01:39,060 --> 01:01:41,730 ან სადაც სხვაგან არ ჩვენ CSS? 1041 01:01:42,730 --> 01:01:45,810 I ტიპის გაფუჭებული, რომ ერთი. სტილში tag ზედა ფაილი. 1042 01:01:45,810 --> 01:01:49,180 ან მესამე ადგილი უკვე? 1043 01:01:50,710 --> 01:01:54,590 >> გარე ფაილი, რაღაც. CSS. 1044 01:01:54,590 --> 01:01:56,730 ასე რომ ეს ის 3 ადგილებში ჩვენ გავაკეთეთ CSS ჯერჯერობით 1045 01:01:56,730 --> 01:01:59,310 მაგრამ დაჭერა არის ჩვენ რთული კოდირებული ეს ყველაფერი. 1046 01:01:59,310 --> 01:02:04,060 თქვენ გადაწყვიტეთ, როგორც თქვენ dove შევიდა pset 7, გადავწყვიტეთ ადრე ლექციათა რა არის ჩვენი CSS იქნებოდა. 1047 01:02:04,060 --> 01:02:07,380 მაგრამ თუ თქვენ გსურთ შეცვალოთ თქვენი CSS, შეგიძლიათ რეალურად გავაკეთოთ, რომ 1048 01:02:07,380 --> 01:02:09,370 ერთხელ თქვენ ფაქტობრივი პროგრამირების ენაზე. 1049 01:02:09,370 --> 01:02:13,910 CSS, HTML - არ პროგრამირების ენები. JavaScript არის. 1050 01:02:13,910 --> 01:02:18,200 გამოდის, რომ როგორც კი თქვენ გაქვთ ერთი იმ მართკუთხედების საწყისი ხე 1051 01:02:18,200 --> 01:02:23,050 მოუწოდა DOM, მას თავად აქვს გარკვეული მონაცემები შიგნით მას. 1052 01:02:23,050 --> 01:02:27,820 ამიტომ div რომ მე მხოლოდ მოგვეწონა საწყისი ხე აქვს რა ჩვენ მოვუწოდებთ ქონების შიგნით ეს 1053 01:02:27,820 --> 01:02:34,390 მოუწოდა სტილი და სტილი უძრავი ქონება თავად საკუთრების მოუწოდა ხილვადობას. 1054 01:02:34,390 --> 01:02:37,330 მინდა იცოდეს ამ მხოლოდ ეძებს up CSS მომხმარებლის სახელმძღვანელო. 1055 01:02:37,330 --> 01:02:41,160 თურმე არსებობს ხილვადობას CSS ქონება აკეთებს იმას ნათქვამია მოხსენებაში. 1056 01:02:41,160 --> 01:02:44,530 იგი ქმნის რაღაც ხილული თუ არა, ხილული თუ არა. 1057 01:02:44,530 --> 01:02:46,810 და როგორ გავაკეთოთ, რომ ეს. 1058 01:02:46,810 --> 01:02:50,510 მე გეკითხებით პროგრამულად თუ ხილვადობას ამ div იმალება, 1059 01:02:50,510 --> 01:02:53,390 რა შევცვალო იგი? ხილული. 1060 01:02:53,390 --> 01:02:58,840 Else თუ ხილვადობას ამ გვერდზე არ არის გადამალული, ლოგიკურად მე რათა ის ფარული. 1061 01:02:58,840 --> 01:03:04,070 წარმოდგენა არ მაქვს, რატომ არის ხილული და ფარული და არ ხილული და უხილავი. 1062 01:03:04,070 --> 01:03:06,000 ეს იყო ცუდი დიზაინი გადაწყვეტილება გასწვრივ გზა. 1063 01:03:06,000 --> 01:03:09,530 მაგრამ ეს მართლაც opposites in CSS: ხილული და ფარული. 1064 01:03:09,530 --> 01:03:15,520 ყველა ამ ამჯამად არის, ეს ნიშნავს, შეცვალოს CSS ჩემი ფაილის on და off, on და off 1065 01:03:15,520 --> 01:03:16,870 ამ კონკრეტულ DIV. 1066 01:03:16,870 --> 01:03:20,630 თუმცა ისევ და ისევ, ეს ფუნქცია მოუწოდა blink. როდის ხდება blink ფუნქცია მოუწოდა? 1067 01:03:20,630 --> 01:03:24,080 თურმე არსებობს კიდევ ერთი სპეციალური გლობალური ცვლადში ფანჯარა, 1068 01:03:24,080 --> 01:03:28,220 მსგავსი სულისკვეთებით, რათა დოკუმენტი, მაგრამ იმის გამო, რომ დოკუმენტი ეხება თქვენს ვებ გვერდზე, 1069 01:03:28,220 --> 01:03:31,700 მოსწონს DOM ხე, HTML თქვენ იგზავნება სერვერზე, 1070 01:03:31,700 --> 01:03:35,250 ფანჯრის ეხება Chrome გარშემო, მისამართზე ბარი, სათაურის ზოლში, 1071 01:03:35,250 --> 01:03:37,880 და ყველა რომ პერსონალის გარშემო თქვენს ვებ გვერდზე. 1072 01:03:37,880 --> 01:03:42,800 >> და აღმოჩნდება, რომ ფანჯარაში ობიექტს გააჩნია სპეციალური ფუნქციის შიგნით მას მოუწოდა setInterval 1073 01:03:42,800 --> 01:03:44,360 რომ აკეთებს იმას, ნათქვამია მოხსენებაში. 1074 01:03:44,360 --> 01:03:48,600 ეს იქნება მითითებული ინტერვალის - ამ შემთხვევაში ყოველ 500 მილიწამებში - 1075 01:03:48,600 --> 01:03:52,270 და მიიღოს ამოიცნობთ, თუ რა არის ის აპირებს ყველა 500 მილიწამებში? 1076 01:03:52,270 --> 01:03:55,240 იგი აპირებს შეასრულოს, რომ ფუნქცია blink. 1077 01:03:55,240 --> 01:03:58,560 და რაც ლამაზი აქ არის ის, რომ ჩვენ შეეძლო ამ დო, მიუხედავად იმისა, რომ ჩვენ არასოდეს გააკეთა. 1078 01:03:58,560 --> 01:04:01,580 C აქვს რაღაც მოუწოდა ფუნქცია პოინტერები სადაც შეგიძლიათ გაივლის ფუნქციების გარშემო 1079 01:04:01,580 --> 01:04:03,140 როგორც არგუმენტები. 1080 01:04:03,140 --> 01:04:07,620 ანალოგიურად in JavaScript შეგიძლიათ გაივლის სახელით ფუნქცია შევიდა სხვა ფუნქცია. 1081 01:04:07,620 --> 01:04:10,630 და შეამჩნია რა ვაკეთებ. მე არ აკეთებენ. 1082 01:04:10,630 --> 01:04:14,380 თუ მე ზუსტად ფრჩხილებში შემდეგ blink, რომ ნიშნავს მოვუწოდებთ blink ფუნქცია. 1083 01:04:14,380 --> 01:04:17,430 თუ მე გამომრჩეს მათ, რაც იმას ნიშნავს, აქ არის blink ფუნქცია 1084 01:04:17,430 --> 01:04:21,330 ასე რომ setInterval შეიძლება ეძახით ყოველ 500 მილიწამებში. 1085 01:04:21,330 --> 01:04:28,200 ასე რომ საბოლოო ჯამში, ბარბაროსულ თუმცა, ის არის, რომ თუ წასვლას Localhost და წასვლა blink.html, 1086 01:04:28,200 --> 01:04:32,120 მე ახლა ამ ხდება ისევ და ისევ. 1087 01:04:32,120 --> 01:04:34,950 და თუ რეალურად შეამოწმოს ელემენტის, ვნახოთ, თუ ვხედავთ ამ. 1088 01:04:34,950 --> 01:04:38,550 ნება მომეცით შეამოწმოს ელემენტის, ნება მომეცით გადახვევა ქვემოთ უბრალოდ ცოტა, 1089 01:04:38,550 --> 01:04:44,320 ნება მომეცით აირჩიოს ელემენტები აქ, და შეამჩნია DOM შიგნით Chrome-ს ინსპექტორი. 1090 01:04:44,320 --> 01:04:48,840 ეს სიტყვასიტყვით შეცვლას უკან და მეოთხე ყოველ 500 მილიწამებში. 1091 01:04:48,840 --> 01:04:55,660 თუ ჩვენ ჩვენს მეგობარს Nate, 1092 01:04:55,660 --> 01:05:00,020 თუ თქვენ ოდესმე გვაინტერესებდა, როგორ მუშაობს, ანალოგიური იდეა ინტერვალი, 1093 01:05:00,020 --> 01:05:04,810 მაგრამ Nate ფაქტობრივად მიღების ძალიან ეფექტური გამოყენება ფერი ამ შემთხვევაში აქ. 1094 01:05:04,810 --> 01:05:07,350 მერე რა მეტი შეგვიძლია რეალურად ვუყოთ? 1095 01:05:07,350 --> 01:05:09,990 მოდით გახსენით კიდევ ერთი მაგალითია და ძიებასა 1096 01:05:09,990 --> 01:05:12,940 რომ პროგრამულად კიდევ უფრო სასარგებლო, ვიდრე მიღების რამ blink. 1097 01:05:12,940 --> 01:05:17,990 ნება მომეცით წასვლას ჩვენი ფორმები დირექტორია დღეს და წასვლას form0. 1098 01:05:17,990 --> 01:05:20,820 ეს იყო ugliest შესაძლო ფორმით, რომ მე ვერ ამუშავება, 1099 01:05:20,820 --> 01:05:23,290 და ნება მომეცით უბრალოდ გაჩვენებთ თუ რას ჰგავს იმ ბრაუზერში. 1100 01:05:23,290 --> 01:05:28,960 >> ნება მომეცით წასვლას localhost / ფორმებს, და ეს არის form0. 1101 01:05:28,960 --> 01:05:33,400 ეს არის სუპერ მახინჯი HTML ფორმას, რომელსაც აქვს რამდენიმე ველების ელ, ამისთვის დაგავიწყდათ, 1102 01:05:33,400 --> 01:05:37,190 პაროლი, ხოლო შემდეგ პატარა ჩამრთველი დათანხმდეს გარკვეული პირობებით. 1103 01:05:37,190 --> 01:05:41,350 Catch არის თუ ვარ ამ ფორმით და არ მინდა გადმოგცეთ ჩემი ელექტრონული ფოსტის მისამართი, 1104 01:05:41,350 --> 01:05:44,730 მე არ მინდა, რომ წესებს და პირობებს იქნებ, შემიძლია დააწკაპუნეთ რეგისტრაცია 1105 01:05:44,730 --> 01:05:46,920 და ეს საშუალებას ჩემთვის მეშვეობით მაინც. 1106 01:05:46,920 --> 01:05:50,800 ეს ხდება წარუდგინოს სულელური PHP ფაილი სახელად dump.php. 1107 01:05:50,800 --> 01:05:58,420 ყველა ეს იმას არის ამობეჭდოთ შინაარსი $ _GET მხოლოდ დიაგნოსტიკური მიზნებისათვის. 1108 01:05:58,420 --> 01:06:01,580 ეს იყო, თუ რა იყო წარმოდგენილი მომხმარებლის ახლა. 1109 01:06:01,580 --> 01:06:05,010 მაგრამ ვარაუდობენ, რომ ჩვენ რეალურად გვინდა, რათა შეამოწმოს მომხმარებლის ფორმით წარდგენის. 1110 01:06:05,010 --> 01:06:06,530 ნება მომეცით წასვლას ვერსია 1. 1111 01:06:06,530 --> 01:06:11,420 ეს არის form1.html. როგორც ჩანს ესთეტიურად ისეთივე ცუდია, მაგრამ შეამჩნევთ, თუ როგორ ლამაზი ის არის. 1112 01:06:11,420 --> 01:06:15,450 თუ მე დააჭირეთ რეგისტრაცია გარეშე თანამშრომლობს, მივიღებ yelled დროს. 1113 01:06:15,450 --> 01:06:17,320 "თქვენ უნდა მოგვაწოდოთ თქვენი ელექტრონული ფოსტის მისამართი." 1114 01:06:17,320 --> 01:06:21,670 ყველა უფლება. ნება მომეცით, ვცდილობთ, რომ. ამიტომ malan@harvard.edu. მე არ გვჭირდება დაგავიწყდათ. 1115 01:06:21,670 --> 01:06:25,100 რეგისტრაცია. "თქვენ უნდა უზრუნველყოს პაროლი." ყველა უფლება. 1116 01:06:25,100 --> 01:06:28,470 ასე რომ, მე უზრუნველყოფს პაროლის ჟოლოსფერი. რეგისტრაცია. 1117 01:06:28,470 --> 01:06:32,300 "პაროლები ერთმანეთს არ ემთხვევა." მინდა ახლა აკრიფოთ ჟოლოსფერი აქ. 1118 01:06:32,300 --> 01:06:35,710 მე შემთხვევით შეამოწმეს, რომ. რეგისტრაცია. 1119 01:06:35,710 --> 01:06:39,860 "თქვენ უნდა დაეთანხმოთ პირობებს." ყველა უფლება. ვეთანხმები იქ. რეგისტრაცია. 1120 01:06:39,860 --> 01:06:43,700 და ახლა იგი აჩვენებს ჩემთან დიაგნოსტიკური გამომავალი იქ. 1121 01:06:43,700 --> 01:06:45,630 >> მერე რა უბრალოდ მოხდა? 1122 01:06:45,630 --> 01:06:48,330 ჩვენ გვქონდა ეს უნარი, რათა შეამოწმოს ფორმა წარდგინება. 1123 01:06:48,330 --> 01:06:51,420 რეალურად, თუ რა გააკეთეთ ჩაყვინთვის შევიდა pset 7, არსებობს ბოდიში ფუნქცია 1124 01:06:51,420 --> 01:06:54,620 რომ ხდის საკმაოდ ადვილი დაწეროთ საათზე მომხმარებელი გაგზავნა ეკრანზე. 1125 01:06:54,620 --> 01:06:57,580 მე გამოყენებით ოდნავ განსხვავებული მექანიზმი, alert ფუნქციის, 1126 01:06:57,580 --> 01:07:03,690 რომელიც არ არის ფუნქცია, რომელიც უღიმიან რადგან იგი იღებს ძალიან მახინჯი მომხმარებლის შეტყობინებები. 1127 01:07:03,690 --> 01:07:05,710 მაგრამ ვნახოთ რა მე აქ აკეთებენ. 1128 01:07:05,710 --> 01:07:09,620 ეს არის form1.html, და შეამჩნია, რომ მე გარკვეული საკმაოდ ნაცნობი სინტაქსი: 1129 01:07:09,620 --> 01:07:12,920 სხეულის tag, ფორმის ტეგი, action ატრიბუტის, მეთოდი ატრიბუტი. 1130 01:07:12,920 --> 01:07:17,050 მაგრამ შეამჩნია მე მოცემულ ჩემი ფორმა უნიკალური ID მოხერხებულობის. 1131 01:07:17,050 --> 01:07:19,190 მაშინ მაქვს ელ სფეროში, რომელთა ტიპის ტექსტი, 1132 01:07:19,190 --> 01:07:23,780 დაგავიწყდათ სფეროში, რომელთა ტიპის დაგავიწყდათ, დადასტურება სფეროში, რომელთა ტიპის დაგავიწყდათ, 1133 01:07:23,780 --> 01:07:28,070 და შემდეგ ჩამრთველი რომლის სახელიც შეთანხმების აქ, ტიპი არის ჩამრთველი. 1134 01:07:28,070 --> 01:07:30,380 და მაშინ მაქვს submit ღილაკს. 1135 01:07:30,380 --> 01:07:33,050 მაგრამ შეამჩნია ზედა რა მეტი მაქვს. 1136 01:07:33,050 --> 01:07:35,810 პირველ რიგში, არსებობს კიდევ ერთი გამოყენების სკრიპტის ტეგით. 1137 01:07:35,810 --> 01:07:40,520 თუ თქვენ გაქვთ გარკვეული JavaScript კოდი სხვა ფაილი, ისევე ცენტრთან შეგიძლიათ იგი. 1138 01:07:40,520 --> 01:07:44,530 და თქვენ რომ Script წყარო და შემდეგ შეამჩნევთ მე დამაკავშირებელი აშკარად 1139 01:07:44,530 --> 01:07:50,349 to googleapis.com რომ ძალიან გრძელი ბილიკი, მაგრამ რომლის ფაილის სახელი მთავრდება jquery.min 1140 01:07:50,349 --> 01:07:52,420 მინიმუმ. js. 1141 01:07:52,420 --> 01:07:55,969 jQuery არის სუპერ პოპულარული ბიბლიოთეკა JavaScript, რომ მხოლოდ ხდის JavaScript 1142 01:07:55,969 --> 01:07:58,230 ყველა უფრო მოსახერხებელი გამოყენება. 1143 01:07:58,230 --> 01:08:00,610 ის ეფექტურად გახდეს დე ფაქტო სტანდარტი. 1144 01:08:00,610 --> 01:08:04,090 ასე რომ, მიუხედავად იმისა, თუ რას უნდა ნახოთ არ არის სუფთა JavaScript თავისთავად, 1145 01:08:04,090 --> 01:08:09,340 ეს არის ბიბლიოთეკის თავზე JavaScript ჰგავს CS50 ბიბლიოთეკა ფენის 1146 01:08:09,340 --> 01:08:13,670 ყველაზე დაბალი დონის C კოდი; რეალობა თითქმის ყველას ინტერნეტში იყენებს. 1147 01:08:13,670 --> 01:08:18,030 ასე რომ ეს არ არის სასწავლო ბორბლები. ეს უბრალოდ საუკეთესო პრაქტიკის ამ დღეებში. 1148 01:08:18,030 --> 01:08:22,830 ახლა შეამჩნია ქვემოთ რომ არის ჩემი საკუთარი Script tag, და შეამჩნია რა მე ვაკეთებ აქ. 1149 01:08:22,830 --> 01:08:27,450 თურმე jQuery აკეთებს რაღაც პატარა ლამაზი. 1150 01:08:27,450 --> 01:08:29,660 JavaScript აქვს დოლარის ნიშნები, მაგრამ ისინი უაზრო. 1151 01:08:29,660 --> 01:08:32,870 >> ისინი არიან როგორც წერილში ან B ან C. 1152 01:08:32,870 --> 01:08:36,670 jQuery უბრალოდ მიღებული კონვენციის ან სახის დაგებულ პრეტენზია ფაქტი 1153 01:08:36,670 --> 01:08:40,280 რომ $ იქნება მათი სპეციალური სიმბოლო. 1154 01:08:40,280 --> 01:08:44,950 ამიტომ, როგორც კი თქვენ ჩატვირთვა ამ გლობალურ JavaScript ფაილის up აქ Script tag, 1155 01:08:44,950 --> 01:08:49,080 თქვენ გაქვთ სპეციალური გლობალური ცვლადი, რომ ე.წ. $. 1156 01:08:49,080 --> 01:08:53,009 ეს უფრო სწორად მოუწოდა jQuery, მაგრამ რომ არ გამოიყურება თითქმის როგორც sexy როგორც $. 1157 01:08:53,009 --> 01:08:56,250 მაგრამ $ ვიზიტორების განსაკუთრებული მნიშვნელობა. PHP-ში მას ჰქონდა განსაკუთრებული მნიშვნელობა. 1158 01:08:56,250 --> 01:08:58,440 თქვენ იძულებული გახდა იგი წინაშე ცვლადი. 1159 01:08:58,440 --> 01:09:01,670 ეს არის მხოლოდ sexy, რაც მათ შესახებ. 1160 01:09:01,670 --> 01:09:03,389 რა ხდება აქ? 1161 01:09:03,389 --> 01:09:08,830 გაითვალისწინეთ მე ავლით to jQuery ფუნქციის ჩემი გლობალური ცვლადი დოკუმენტი 1162 01:09:08,830 --> 01:09:10,860 და მაშინ მე მოუწოდებდა. მზად. 1163 01:09:10,860 --> 01:09:15,480 რა jQuery არსებითად ამჯამად არის ის საშუალებას გაძლევთ გარკვეული ვანილის JavaScript რამ 1164 01:09:15,480 --> 01:09:17,889 მოსწონს დოკუმენტის ობიექტი, ფანჯრის ობიექტი, 1165 01:09:17,889 --> 01:09:20,790 და თუ გაივლის ის, რომ jQuery ფუნქცია - 1166 01:09:20,790 --> 01:09:24,429 და ისევ, უნდა იყოს ნათელი, ეს ფუნქცია მოუწოდა jQuery - 1167 01:09:24,429 --> 01:09:28,240 თუ რას აკეთებს არის ის დააბრუნებს თქვენ სპეციალური ვერსია დოკუმენტი 1168 01:09:28,240 --> 01:09:30,700 რომ აქვს უფრო ფუნქციონალური ასოცირდება იგი. 1169 01:09:30,700 --> 01:09:34,760 ასე რომ დაუმუშავებელი JavaScript არ არსებობს მზად ფუნქცია, 1170 01:09:34,760 --> 01:09:37,810 მაგრამ თუ გაივლის დოკუმენტი jQuery ფუნქციის პირველი, 1171 01:09:37,810 --> 01:09:40,960 ის დააბრუნებს თქვენ სპეციალური ვერსია დოკუმენტის ობიექტი 1172 01:09:40,960 --> 01:09:43,030 რომ უფრო ლამაზი თვისებები. 1173 01:09:43,030 --> 01:09:48,230 და ამიტომაც მოსწონს ეს. ეს უბრალოდ იღებს რამ ადვილია ამის გაკეთება, როგორც ჩვენ შესახებ დაინახოს. 1174 01:09:48,230 --> 01:09:49,820 რას გვეუბნება ამ ხაზი კოდი ნიშნავს? 1175 01:09:49,820 --> 01:09:52,690 ეს ხაზი კოდი აქ ნიშნავს, როდესაც დოკუმენტი მზად არის - 1176 01:09:52,690 --> 01:09:56,830 სხვა სიტყვებით, ერთხელ ბრაუზერის კეთდება კითხულობს ამ ფაილის ყველაზე ქვედა - 1177 01:09:56,830 --> 01:09:59,200 წავიდეთ წინ და შეასრულოთ შემდეგი ფუნქცია. 1178 01:09:59,200 --> 01:10:03,540 რა არის მართლაც საინტერესო JavaScript - და PHP აქვს ამ ასევე - 1179 01:10:03,540 --> 01:10:05,450 არის ანონიმური ფუნქციები. 1180 01:10:05,450 --> 01:10:10,560 In JavaScript შეგიძლიათ განაცხადოს ფუნქციები რომ არ სახელი მაგრამ აქვთ სხეულის. 1181 01:10:10,560 --> 01:10:12,570 გაითვალისწინეთ, რა ხდება აქ. 1182 01:10:12,570 --> 01:10:16,220 >> ეს არის ფუნქცია მოუწოდა მზად, და ეს მხოლოდ იმას ნიშნავს, გავაკეთოთ შემდეგი 1183 01:10:16,220 --> 01:10:20,220 როდესაც მთელი ვებ გვერდზე მზადაა, როდესაც ეს ყველაფერი უკვე იკითხება საწყისი სერვერზე. 1184 01:10:20,220 --> 01:10:23,090 რა გსურთ? მინდა შეასრულოს ბლოკი კოდი. 1185 01:10:23,090 --> 01:10:27,120 გაითვალისწინეთ, რომ ჩვენ არ გვინდა, რომ შესრულდეს ამ კოდექსით დაუყოვნებლივ. 1186 01:10:27,120 --> 01:10:34,350 თუ მე გამოტოვებული ამ, ეს ნიშნავს, დაუყოვნებლივ დაიწყოს შესრულებაში ამ ხაზების კოდი. 1187 01:10:34,350 --> 01:10:39,040 მაგრამ ის ფაქტი, რომ მე ვამბობ, არა, არა, არა, გადაიტანოთ ეს ანონიმური ფუნქციის მოსწონს 1188 01:10:39,040 --> 01:10:43,000 საშუალებები არ შეასრულოს ეს ჯერ; ეძახით საბოლოოდ. 1189 01:10:43,000 --> 01:10:45,430 ჩვენ ვნახეთ ამ მომენტში წინ ჩვენს წინა ფორმას მაგალითად. 1190 01:10:45,430 --> 01:10:49,990 რა ფუნქცია ჰქონია ჩვენ მოვუწოდებთ საბოლოოდ, 500 მილიწამებში შემდეგ? Blink. 1191 01:10:49,990 --> 01:10:51,480 ამიტომ იმავე იდეას. 1192 01:10:51,480 --> 01:10:53,950 ერთხელ, თუნდაც ამ გამოიყურება პატარა უცნაური, უბრალოდ მიიღოს ამისთვის ახლა რწმენა 1193 01:10:53,950 --> 01:10:57,060 რომ განაცხადოს ანონიმური ფუნქცია რომ ე.წ. საბოლოოდ, 1194 01:10:57,060 --> 01:11:01,720 თქვენ უბრალოდ დაწერეთ function () { 1195 01:11:01,720 --> 01:11:05,380 მერე რა კოდი მივდივართ, რათა შესრულდეს საბოლოოდ? შემდეგ. 1196 01:11:05,380 --> 01:11:10,460 ეს ძალიან ჰგავს პატარა, მაგრამ ეს იმას ნიშნავს, აქ jQuery ფუნქცია, 1197 01:11:10,460 --> 01:11:13,430 და ეს ახლა არის კომბინაცია. 1198 01:11:13,430 --> 01:11:18,830 ეს Snippet of HTML ბოლოში ეკრანზე, რა თქმა უნდა აქვს გარკვეული ხის წარმომადგენლობა. 1199 01:11:18,830 --> 01:11:21,730 ეს არ არის ამ. ეს გვერდი არის უფრო საინტერესო ვიდრე ეს hello, მსოფლიოს მაგალითი. 1200 01:11:21,730 --> 01:11:25,210 მაგრამ ზოგიერთი ხე, რომელიც შეესაბამება ამ HTML. 1201 01:11:25,210 --> 01:11:28,910 კარგი იქნება, ტკივილი კისრის ჰქონდეს განახორციელოს გარკვეული რეკურსიული ფუნქცია 1202 01:11:28,910 --> 01:11:34,380 იწყება root node და შემდეგ მოვძებნოთ კვანძის რომლის ID არის რეგისტრაციას. 1203 01:11:34,380 --> 01:11:38,340 მერე რა jQuery ხდის სუპერ ადვილი ჩვენთვის არის სიტყვასიტყვით ეს. 1204 01:11:38,340 --> 01:11:43,000 წავიდეთ წინ და კიდევ ჩემთვის რასაც div ან ნებისმიერი ფორმით, მიუხედავად HTML-ის ელემენტი 1205 01:11:43,000 --> 01:11:45,820 ჰყავს ID რეგისტრაციის. 1206 01:11:45,820 --> 01:11:52,440 ეს არის ეკვივალენტი document.getElementById (რეგისტრაციის). 1207 01:11:52,440 --> 01:11:54,170 >> რატომ ადამიანს მოსწონს jQuery? 1208 01:11:54,170 --> 01:12:00,110 იმიტომ რომ მოკლეა შეიტანოთ. მაგრამ ეს ყველაფერი არის. ეს იმავე იდეას. 1209 01:12:00,110 --> 01:12:02,630 Get Me tag რომლის ID არის რეგისტრაციას. 1210 01:12:02,630 --> 01:12:06,300 და როცა ეს ტეგი, რომელიც ხდება უნდა იყოს ფორმით, არის წარმოდგენილი, 1211 01:12:06,300 --> 01:12:08,300 წავიდეთ წინ და შეასრულოს ამ კოდექსით. 1212 01:12:08,300 --> 01:12:11,320 მოდით ერთ გამოიყურებოდეს ახლა როგორ ვაკეთებთ ფორმა ძალადაკარგულია. 1213 01:12:11,320 --> 01:12:15,950 სინტაქსი არის admittedly cryptic თავდაპირველად, მაგრამ რა ხდება? 1214 01:12:15,950 --> 01:12:21,050 თუ ეს ხაზი კოდი მართალია, მე ვაპირებ დაწეროთ ზე მომხმარებლის უზრუნველყოს მისი ელექტრონული ფოსტის მისამართი. 1215 01:12:21,050 --> 01:12:22,970 რა არის ეს ხაზი კოდი? 1216 01:12:22,970 --> 01:12:25,560 $ ნიშნავს jQuery. ახლა შეამჩნია ეს. 1217 01:12:25,560 --> 01:12:27,920 ეს არის სახის მოსწონს CSS. 1218 01:12:27,920 --> 01:12:33,370 თუ თქვენ dived შევიდა CSS ჯერჯერობით, თქვენ იცით, რომ ეს ნიშნავს ელემენტს, რომლის ID არის რეგისტრაციას. 1219 01:12:33,370 --> 01:12:39,840 სივრცე ნიშნავს იპოვოს შვილი ან შთამომავალი რეგისტრაციის რომლის სახელიც შეყვანის. 1220 01:12:39,840 --> 01:12:42,970 და მაშინ ეს რამ კვადრატულ ფრჩხილებში არის პატარა ფილტრი. 1221 01:12:42,970 --> 01:12:47,010 და მაშინაც კი, თუ ეს გამოიყურება cryptic, ამ უბრალოდ ნიშნავს წასვლა ფორმა, რომლის ID არის რეგისტრაციის, 1222 01:12:47,010 --> 01:12:51,230 წასვლა შეყვანის ელემენტს შიგნით რომ რომლის სახელიც ელ, 1223 01:12:51,230 --> 01:12:55,440 და შემდეგ მიიღოს მისი ღირებულება, რაც მისი ღირებულება ხდება იყოს - 1224 01:12:55,440 --> 01:12:59,670 asdf თუ ეს ყველაფერი მე აკრეფილი ან malan@harvard.edu თუ არის ის, რაც მე აკრეფილი. 1225 01:12:59,670 --> 01:13:05,250 ასე რომ, თუ ღირებულების სახით ელექტრონული სფეროში == არაფერი, დაწეროთ საათზე მომხმარებელი. 1226 01:13:05,250 --> 01:13:09,700 Else თუ ღირებულება დაგავიწყდათ სფეროში == არაფერი, დაწეროთ საათზე მომხმარებელი. 1227 01:13:09,700 --> 01:13:19,520 >> Else თუ ღირებულება დაგავიწყდათ სფეროში არ გაუტოლდება ღირებულების დადასტურებას სფეროში, 1228 01:13:19,520 --> 01:13:22,850 რომელიც სხვა ფორმით ელემენტს, დაწეროთ საათზე მომხმარებელი. 1229 01:13:22,850 --> 01:13:25,680 და მერე ბოლოს - და ეს ერთი ძალიან რამდენიმე ახალი სინტაქსის საკუთარი, 1230 01:13:25,680 --> 01:13:29,270 მაგრამ ერთხელ თქვენ მინახავს ეს, ეს ცოტათი მაინც უფრო გონივრულად - 1231 01:13:29,270 --> 01:13:34,060 სხვაგან თუ ფორმით, რომლის ID არის რეგისტრაციის შეყვანის ელემენტს რომლის სახელიც შეთანხმებით 1232 01:13:34,060 --> 01:13:39,720 და იგი შეამოწმა, წავიდეთ წინ და დაწეროთ საათზე მომხმარებელი. 1233 01:13:39,720 --> 01:13:42,520 ამიტომ სრულიად აღიარებს ამ სრულიად დაუძლეველი ერთი შეხედვით. 1234 01:13:42,520 --> 01:13:46,530 ეს ბევრი ახალი სინტაქსის. მაგრამ ყველა jQuery შემდეგნაირად ასეთი შაბლონებს. 1235 01:13:46,530 --> 01:13:49,880 და პატიოსნად, მე კი არ ვიცი ამ იარსება რამდენიმე წუთის წინ. 1236 01:13:49,880 --> 01:13:53,640 მე Googled, "როგორ შეამოწმოს თუ ჩამრთველი არის შემოწმება jQuery?" 1237 01:13:53,640 --> 01:13:55,680 და ეს არის სინტაქსი, რადგან არსებობს სხვადასხვა გზა ამის გაკეთება 1238 01:13:55,680 --> 01:13:58,010 ფაქტობრივი ნედლეულის JavaScript კოდი. 1239 01:13:58,010 --> 01:14:01,030 ასე რომ, როგორც პირველივე გვერდზე პრობლემური Set 7 ხაზს უსვამს, 1240 01:14:01,030 --> 01:14:04,500 pset 7 არის ძალიან წვრთნები bootstrapping თავის 1241 01:14:04,500 --> 01:14:08,650 აქ ჩვენ პირობით, იმედია, კონცეპტუალურ ჩარჩოს რომელთანაც დაძლევის pset. 1242 01:14:08,650 --> 01:14:12,280 >> მაგრამ როგორც ხშირად შემთხვევაში ვებ დიზაინი, ეს მდე ნამდვილად to poke გარშემო, 1243 01:14:12,280 --> 01:14:16,680 ითვალისწინებდეს snippets კოდის და მაგალითები ვებ ცოტა ხნის როგორც თქვენ მოჰყავთ მათ 1244 01:14:16,680 --> 01:14:17,960 პოსტი პირობებით, რომ პირველი ფურცელი, 1245 01:14:17,960 --> 01:14:21,460 და გააცნობიეროს, რომ სწავლის HTML, CSS, JavaScript და კიდევ SQL 1246 01:14:21,460 --> 01:14:26,020 რეალურად ნიშნავს, რომ ამ at-home exercise როგორც ჩვენ ვიწყებთ მიიღოს ამ სასწავლო თვლები off. 1247 01:14:26,020 --> 01:14:29,150 და გააცნობიეროს ძალიან არსებობს ამდენი რამ რომ თქვენ ბრაუზერში. 1248 01:14:29,150 --> 01:14:33,790 შიგნით საუკეთესო ამ ელემენტების არსებობს სხვა რამ მოუწოდა ღონისძიების ელფოსტის. 1249 01:14:33,790 --> 01:14:37,140 და მიუხედავად იმისა, რომ ჩვენ უბრალოდ შევხედე პირობა მოუწოდა onsubmit და onready, 1250 01:14:37,140 --> 01:14:40,310 შეგიძლიათ გააკეთოთ რამ, როგორიცაა onkeydown, onkeyup, 1251 01:14:40,310 --> 01:14:43,410 მოეწონა, როცა მომხმარებლის გრძნობს გასაღები, მოისმენთ ამისთვის და გასაღები up. 1252 01:14:43,410 --> 01:14:45,940 Gmail აქვს კლავიშთა. 1253 01:14:45,940 --> 01:14:49,490 როგორ ამჯამად Google განახორციელოს კლავიშთა მოსწონს C ამისთვის დაკომპლექტებას? 1254 01:14:49,490 --> 01:14:54,120 მათ მოუსმინოს იმ მოვლენებს, როგორც ისინი უწოდებენ, როგორიც onkeypress ან onkeyup და onkeydown. 1255 01:14:54,120 --> 01:14:56,360 თუ თქვენ ოდესმე hovered თქვენი მაუსის მეტი ზოგიერთი მენიუ ვარიანტი 1256 01:14:56,360 --> 01:15:00,180 და უეცრად, voila, მენიუ, როგორც ჩანს ან გრაფიკული ცვლილებების ფერი, 1257 01:15:00,180 --> 01:15:01,920 როგორ აკეთებენ ისინი ამას? 1258 01:15:01,920 --> 01:15:06,940 იმის ნაცვლად, რომ მოვუსმინოთ ამისთვის onready ან onsubmit, თქვენ მოვუსმინოთ ამისთვის onmouseover ან onmouseout. 1259 01:15:06,940 --> 01:15:10,920 >> ასე მოკლედ, ამ ძალიან მარტივი საფუძვლების, რომ ჩვენ დავიწყეთ გადასაფხეკი ზედაპირზე დღეს 1260 01:15:10,920 --> 01:15:13,940 და ჩვენ ჩაყვინთვის შემდგომი to ოთხშაბათს, თქვენ გაქვთ, სულ უფრო და უფრო, 1261 01:15:13,940 --> 01:15:17,530 ძალაუფლების განსახორციელებლად სახის რამ, რომ თქვენ უკვე იცნობს. 1262 01:15:17,530 --> 01:15:21,620 მოდით დამთავრდეს იქ, და ჩვენ გავაგრძელებთ ამ ოთხშაბათს. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]