1 00:00:00,000 --> 00:00:02,700 [Powered by Google Translate] [კვირა 9 გაგრძელდა] 2 00:00:02,700 --> 00:00:05,160 [დევიდ ჯ Malan - ჰარვარდის უნივერსიტეტი] 3 00:00:05,160 --> 00:00:07,020 [ეს არის CS50. - CS50.TV] 4 00:00:07,940 --> 00:00:13,340 >> ეს არის CS50. ეს არის ბოლომდე კვირაში 9. დიდი მადლობა. 5 00:00:13,340 --> 00:00:15,310 საბოლოოდ. კვირა 9. მე მივიღე ეს. 6 00:00:15,310 --> 00:00:18,590 დღეს ჩვენ გავაგრძელებთ საუბარი ვებ პროგრამირების 7 00:00:18,590 --> 00:00:21,660 ერთად თვალის მიმართ საბოლოო პროექტი, არა იმიტომ, რომ თქვენ უნდა გააკეთოთ რაღაც ვებ დაფუძნებული 8 00:00:21,660 --> 00:00:25,610 საბოლოო პროექტების მაგრამ რადგან არც საბოლოო პროექტების ან შემდეგ CS50 9 00:00:25,610 --> 00:00:29,000 ეს, რა თქმა უნდა მიმართულებით, რომელშიც თანამედროვე პროგრამული აპირებს. 10 00:00:29,000 --> 00:00:31,770 და მაინც ეს არ არის რეალურად ადვილი რამ. 11 00:00:31,770 --> 00:00:35,040 ფაქტობრივად, ერთი უმძიმესი რამ გააკეთოთ ასპექტი დიზაინი. 12 00:00:35,040 --> 00:00:38,600 >> მაგალითად, დიზაინი მიერ ვგულისხმობთ რეალურად მიღების ინტერფეისი 13 00:00:38,600 --> 00:00:40,420 ან მომხმარებლის, გამოცდილება უფლება. 14 00:00:40,420 --> 00:00:43,200 მე daresay - და ჩვენ ვიცით ბოლო პრობლემა კომპლექტი 15 00:00:43,200 --> 00:00:45,960 როდესაც რამდენიმე თქვენგანს ეთერში თქვენი gripes შესახებ რამდენიმე ნაჭერი პროგრამული უზრუნველყოფა 16 00:00:45,960 --> 00:00:49,000 ან ტექნიკის რომ infuriates თქვენ, თუ არა მე კამპუსში ან off - 17 00:00:49,000 --> 00:00:51,930 არსებობს ბევრი საიტები არსებობს, არსებობს უამრავი აპარატურა არსებობს, 18 00:00:51,930 --> 00:00:53,900 ასეთი სახის sucks. 19 00:00:53,900 --> 00:00:58,730 მაგრამ რეალობა ის არის, რომ მიღების რამ არის მარტივი ჯერჯერობით ვართ მაინც ძლიერი 20 00:00:58,730 --> 00:01:00,550 არის ძალიან რთული ამოცანაა. 21 00:01:00,550 --> 00:01:03,680 ასე რომ დღეს ვკითხე ჯოზეფ და Tommy შეუერთდეს me up აქ 22 00:01:03,680 --> 00:01:06,680 ასე, რომ ჩვენ შეგვიძლია აქვს საუბარი, ორივე დაახლოებით დიზაინი 23 00:01:06,680 --> 00:01:09,090 და რა სახის აზროვნების პროცესი უნდა დაიწყოს გადის თქვენი უფროსი 24 00:01:09,090 --> 00:01:12,040 როდესაც თქვენ დიზაინს თქვენი საბოლოო პროექტები, თქვენი მომავალი ცდილობს. 25 00:01:12,040 --> 00:01:15,040 შემდეგ კი Tommy ს დახმარება ჩვენ შევხედოთ ზოგიერთი განხორციელების დეტალები. 26 00:01:15,040 --> 00:01:18,440 როგორ შეიძლება გარკვეული ხედვა ქაღალდზე ან თქვენი აზრით 27 00:01:18,440 --> 00:01:20,760 რომ თქვენ შეგიძლიათ შემდეგ შეასრულოს პროგრამულად 28 00:01:20,760 --> 00:01:24,030 გამოყენებით ზოგიერთი ტექნოლოგიებისა და ტექნიკის ჩვენ უბრალოდ დაიწყო ლაპარაკი, 29 00:01:24,030 --> 00:01:29,080 კერძოდ JavaScript და რაღაც კიდევ უფრო, კერძოდ AJAX, ასინქრონული JavaScript. 30 00:01:29,080 --> 00:01:32,950 რომელიც საშუალებას გაძლევთ შექმნათ ყველა მეტი დინამიკა ინტერფეისი 31 00:01:32,950 --> 00:01:35,780 მიერ მიღება უფრო და უფრო მონაცემები თანდათანობით საწყისი სერვერზე. 32 00:01:35,780 --> 00:01:38,560 ამიტომ, ჩვენ დავინახავთ, ზოგიერთი ასეთი snippets ასევე დღეს. 33 00:01:38,560 --> 00:01:41,800 როგორც განზე, თუ თქვენ დაინტერესებული ხართ კონცენტრაცია კომპიუტერულ მეცნიერებაში 34 00:01:41,800 --> 00:01:45,010 ან minoring კომპიუტერულ მეცნიერებაში, ვიცით, რომ ამ პარასკევს შუადღისას 35 00:01:45,010 --> 00:01:48,750 წელს მაქსველი Dworkin 221 იქნება პიცა ღონისძიება 36 00:01:48,750 --> 00:01:50,780 სადაც შეგიძლიათ ვისწავლოთ ცოტა მეტი კომპიუტერულ მეცნიერებათა. 37 00:01:50,780 --> 00:01:54,860 თქვენს გამოსავალი კარი დღეს თქვენ გექნებათ შეარჩიო არაოფიციალური გზამკვლევი CS ჰარვარდის. 38 00:01:54,860 --> 00:01:57,290 ჩვენ Put It On ნაგვის cans გარეთ at waist სიმაღლე 39 00:01:57,290 --> 00:01:59,750 ასე რომ, თუ გსურთ აითვისებდა ამ და ვისწავლოთ ცოტა მეტი CS, 40 00:01:59,750 --> 00:02:02,480 რომ იქნება იქ, როგორც ეს იყო კვირაში 0. 41 00:02:02,480 --> 00:02:06,500 აგრეთვე თუ გსურთ შემოგვიერთდით ამისთვის CS50 ლანჩი ამ პარასკევს 1:15 საათზე, 42 00:02:06,500 --> 00:02:09,800 ხელმძღვანელს cs50.net/lunch. 43 00:02:09,800 --> 00:02:13,260 გარეშე ado, მე გაძლევთ სწავლების თანამემამულე ჯოზეფ Ong. 44 00:02:13,260 --> 00:02:19,190 Hi. [ტაში] 45 00:02:19,190 --> 00:02:20,770 მადლობა. 46 00:02:20,770 --> 00:02:24,780 პირველად შევიტყვე დიზაინი იყო კლასის აქ მოუწოდა CS179. 47 00:02:24,780 --> 00:02:28,040 >> პროფესორი დრო გვითხრა ამბავი კიდევ ერთი პროფესორი 48 00:02:28,040 --> 00:02:31,640 ვინც იყო წასული სასტუმროში და გამოიყენება ონკანები. 49 00:02:31,640 --> 00:02:35,630 შეუძლია ვინმეს მითხრათ რა 2 knobs მარცხენა და მარჯვენა გავაკეთო? 50 00:02:35,630 --> 00:02:39,080 [სტუდენტი] ცხელი და ცივი. >> ცივი და ცხელი. კარგი. 51 00:02:39,080 --> 00:02:41,430 რა თქვენ ჩვეულებრივ ველოდებით, არა? 52 00:02:41,430 --> 00:02:46,960 ეს პროფესორი გამოყენების შემდეგ faucet სურს მიიღოს შხაპი, და იგი აგრძელებს გამოიყენოს ეს. 53 00:02:46,960 --> 00:02:51,310 მისი აზრით მარცხენა და მარჯვენა მხარეს არის ცხელი და ცივი, არა? 54 00:02:51,310 --> 00:02:55,470 მაგრამ შეიძლება ვინმეს მითხრათ რა ამ მართლაც? 55 00:02:55,470 --> 00:02:58,060 ნებისმიერი ხელში? 56 00:02:58,060 --> 00:03:01,740 [Inaudible სტუდენტი საპასუხოდ] >> ერთი წინადადება არის? 57 00:03:01,740 --> 00:03:05,860 [Inaudible სტუდენტი საპასუხოდ] >> ტემპერატურა? 58 00:03:05,860 --> 00:03:10,460 ასე რომ ერთი მათგანი აკონტროლებს ტემპერატურის და სხვა კონტროლის? >> [სტუდენტი] წყლის წნევით. 59 00:03:10,460 --> 00:03:12,350 წყლის წნევით. კარგი. 60 00:03:12,350 --> 00:03:15,100 ეს პროფესორი დადის ამ და, ფიქრობდა ისინი აკონტროლებენ ცხელი და ცივი, 61 00:03:15,100 --> 00:03:21,470 უხვევს მარჯვნივ ერთი, რომელიც მისი აზრით არის ცხელი, ყველა გზა მდე 62 00:03:21,470 --> 00:03:23,560 იმიტომ, რომ მას სურს მიიღოს თბილი შხაპით. 63 00:03:23,560 --> 00:03:28,100 ისე, ამ ნამდვილად არ ემთხვევა up, ასე იგი იღებს ამ არცთუ გართობა გამოცდილება 64 00:03:28,100 --> 00:03:31,110 ყოფნის ცივი შხაპი, და ჩვენ ყველამ ვიცით რა, რომ იგრძნობა. 65 00:03:31,110 --> 00:03:33,620 ეს არის მაგალითი იმისა, დიზაინი ხარვეზი. 66 00:03:33,620 --> 00:03:37,040 რას ვგულისხმობ მიერ, რომ მისი მოლოდინი faucet 67 00:03:37,040 --> 00:03:39,420 არ ემთხვევა რა გამოვიდა საშხაპე, 68 00:03:39,420 --> 00:03:41,780 რაც სახის სამწუხარო მისთვის. 69 00:03:41,780 --> 00:03:44,990 ასე რომ, ეს არის მაგალითი იმისა, დიზაინი ხარვეზია, რაც ხდება რეალურ ცხოვრებაში. 70 00:03:44,990 --> 00:03:48,020 მაგრამ ჩვენ ვხედავთ ყველა სახის სხვა პირობა ასევე. 71 00:03:48,020 --> 00:03:50,390 ჩვენ ალბათ არ ფანები MBTA სისტემა. 72 00:03:50,390 --> 00:03:55,560 ეს არის მეტროს სისტემა რეალურად ლონდონში, რომელიც ამბობს: "ეს ღილაკი არ გამოიყენება." 73 00:03:55,560 --> 00:04:00,220 რატომ არის კი იქ? რატომ ჩვენ კი იზრუნოს? 74 00:04:00,220 --> 00:04:02,810 როდესაც მე ვიყავი ბავშვი, მიმდინარეობს ტექნიკური საზრიანი ერთ სახლში, 75 00:04:02,810 --> 00:04:05,050 როდესაც კომპიუტერი იქნებოდა ავარიის, ჩემი დედა მინდა ჩემთან, 76 00:04:05,050 --> 00:04:07,060 გვიჩვენებს ჩემთვის ეს ეკრანზე და მთხოვდნენ, თუ რა მოხდა. 77 00:04:07,060 --> 00:04:09,210 >> მაშინაც კი, მე არ ვიცი რას ნიშნავს. 78 00:04:11,890 --> 00:04:14,700 [სიცილის] რა? 79 00:04:16,950 --> 00:04:18,019 [სიცილის] 80 00:04:18,720 --> 00:04:23,050 ზოგჯერ ჩვენ ვგრძნობთ, როგორიცაა პროგრამული უზრუნველყოფის დეველოპერებს მხოლოდ trolling us. 81 00:04:23,050 --> 00:04:28,460 როგორც მომხმარებლებს ჩვენ მსგავსად, "რა ხდება? Someone გვითხრათ." 82 00:04:28,460 --> 00:04:32,140 ეს ყველა მოდის ქვემოთ საკითხი დიზაინი. 83 00:04:32,140 --> 00:04:34,650 დიზაინი, როგორც ვხედავთ, არ არის წმინდა წყლის შესახებ ესთეტიკის 84 00:04:34,650 --> 00:04:37,230 არა როგორ გამოიყურება. 85 00:04:37,230 --> 00:04:41,720 ჩვენ ვხედავთ, რომ ამ პატარა Pop-up ზე აქ რეალურად გამოიყურება საკმაოდ ლამაზი. 86 00:04:41,720 --> 00:04:45,290 მას აქვს drop shadow ფონზე, მას საზღვრის radiuses მიმდინარეობს. 87 00:04:45,290 --> 00:04:47,550 ეს სახის საკმაოდ. 88 00:04:47,550 --> 00:04:51,480 ეს ნამდვილად არ მოფიქრებული, რადგან ეს არ არის ძალიან მოსახერხებელი. 89 00:04:51,480 --> 00:04:54,920 რომ პატარა Pop-up რომ მოდის up ნამდვილად არ მაძლევს ნებისმიერი ინფორმაცია 90 00:04:54,920 --> 00:04:58,450 შესახებ, თუ რა ხდება, ეს არ მითხრათ არაფერი როგორც მომხმარებლის 91 00:04:58,450 --> 00:05:01,400 შესახებ, თუ როგორ უნდა აღადგინონ, რომ შეცდომა. 92 00:05:01,400 --> 00:05:05,190 ჩვენ გვინდა, რომ ვიფიქროთ იმაზე, დიზაინი არ არის. 93 00:05:05,190 --> 00:05:06,670 პირველი, ეს არ ესთეტიკას. 94 00:05:06,670 --> 00:05:10,800 ის ასევე არ ჩაყრის თქვენი app ერთად ტონა არასაჭირო ფუნქციები. 95 00:05:10,800 --> 00:05:14,890 თუ თქვენ ტაილანდური რესტორანი, თქვენ ალბათ არ გვინდა ვიყოთ სტომატოლოგი ამავე დროს. 96 00:05:14,890 --> 00:05:17,720 და Facebook კითხვები, არ, რომ მრავალი ადამიანი გამოიყენა 97 00:05:17,720 --> 00:05:21,130 და ეს ნამდვილად არ იყო იმ ძირითადი რაც იყო შენობა. 98 00:05:21,130 --> 00:05:24,200 და ამიტომ ლამაზი ფიქრი არა იმდენად რაოდენობის რამ 99 00:05:24,200 --> 00:05:26,390 რომ თქვენ აყენებს თქვენი განაცხადის მაგრამ ხარისხი 100 00:05:26,390 --> 00:05:28,910 და როგორ თქვენ მიღების, რომ მომხმარებლის გამოცდილება უკეთესი 101 00:05:28,910 --> 00:05:32,540 მიერ რეალურად გაუმჯობესების საფუძველზე, რაც თქვენ უკვე გაქვთ. 102 00:05:32,540 --> 00:05:37,040 >> In მოკლედ, დიზაინი გვეუბნება რა უნდა ავაშენოთ. 103 00:05:37,040 --> 00:05:41,950 მაგალითად, თუ ჩვენ ვაშენებთ რაღაც რომ მოდით ძებნის რამ up, 104 00:05:41,950 --> 00:05:45,970 როგორიცაა Google, მაგალითად, უნდა გავაკეთოთ რამ წესით 105 00:05:45,970 --> 00:05:48,950 რომ მოითხოვს მომხმარებლის მიიღოს უამრავი დაწკაპუნებით მისაღებად რა უნდათ, 106 00:05:48,950 --> 00:05:52,580 ან უნდა გავაკეთოთ ეს გზა, მაგალითად, Google-მომენტალური ან თვითდასრულება 107 00:05:52,580 --> 00:05:54,970 რომელიც საშუალებას გვაძლევს კიდევ ჩვენს შედეგი უფრო სწრაფად? 108 00:05:54,970 --> 00:05:58,740 საინჟინრო მოიცავს, როგორიცაა Tommy გაჩვენებთ, რეალურად აშენებს მას. 109 00:05:58,740 --> 00:06:01,890 უამრავი სახის დიზაინი. 110 00:06:01,890 --> 00:06:06,070 მაგალითად, თუ თქვენ მშენებლობის რაღაც განათავსოს რაღაც 111 00:06:06,070 --> 00:06:09,770 წელს მესამე მსოფლიო ქვეყანა, სადაც არ არის ბევრი ელექტროენერგიის ან რომ ბევრი ტექნიკა, 112 00:06:09,770 --> 00:06:11,440 თქვენ უნდა შეიმუშაოს თუ რას აშენებენ 113 00:06:11,440 --> 00:06:14,210 ისე, რომ ადვილად აძლევს ხელმისაწვდომობის ადამიანი. 114 00:06:14,210 --> 00:06:18,290 მაგრამ რა სახის სხვა დიზაინის გადაწყვეტილებები შეიძლება იქ იყოს 115 00:06:18,290 --> 00:06:21,850 ან შეიძლება იყოს ჩართული მსგავსი რამ? 116 00:06:23,690 --> 00:06:25,660 Yeah. მე ვხედავ ხელში. 117 00:06:25,660 --> 00:06:37,200 [Inaudible სტუდენტი საპასუხოდ] >> მარჯვენა. სწორედ. Accessibility არის ერთი რამ. 118 00:06:37,200 --> 00:06:40,870 ბევრი ადამიანი არ ვფიქრობ, "რა ჩემი წევრებს?" 119 00:06:40,870 --> 00:06:43,160 მოსწონს უკიდურესი არც სპექტრი. 120 00:06:43,160 --> 00:06:47,770 მაქვს წევრებს, რომლებიც შესაძლოა შეზღუდული შესაძლებლობების მქონე რომ მე არ ფიქრობს 121 00:06:47,770 --> 00:06:50,590 და მე უბრალოდ ფიქრი დიზაინისა საერთო მომხმარებლის. 122 00:06:50,590 --> 00:06:52,630 ინტერნეტი ხელმისაწვდომი ყველას დღესდღეობით, 123 00:06:52,630 --> 00:06:54,870 და ასეც უნდა იყოს პროექტირების იმ ხალხს, ისევე. 124 00:06:54,870 --> 00:06:58,620 რა სახის სხვა დიზაინის გადაწყვეტილებები შეიძლება თქვენ გააკეთებთ? 125 00:06:58,620 --> 00:07:00,690 დიახ. >> [სტუდენტი] ღირებულება. 126 00:07:00,690 --> 00:07:02,680 ღირებულება. ძალიან კარგი. 127 00:07:02,680 --> 00:07:08,060 კიდევ ერთი რამ შეიძლება ბაზის ჩვენი დიზაინის გადაწყვეტილებები არის ღირებულება. 128 00:07:08,060 --> 00:07:13,130 თუ ჩვენ ბიზნესს, გსურთ აშენება რაღაც რომ არ იღებს გაცილებით ღირებულება წარმოების 129 00:07:13,130 --> 00:07:17,720 მაგრამ შეუძლია გაყიდოს დროს განსაკუთრებით მაღალი ღირებულება ან შეუძლიათ მიიღონ us გარკვეული მოგება. 130 00:07:17,720 --> 00:07:21,540 >> ეს არის ყველა ტიპის დიზაინი, მაგრამ როცა ჩვენ ვაშენებთ რაღაც ინტერნეტში 131 00:07:21,540 --> 00:07:25,120 ან როდესაც ჩვენ ვაშენებთ რაღაც რომ ალბათ არ ღირს, რომ ბევრი ავაშენოთ დღემდე, 132 00:07:25,120 --> 00:07:28,630 მოსწონს ინტერნეტ პროგრამები - თქვენ არ უნდა ჩააგდოს ბევრი კაპიტალის მივანიჭო 133 00:07:28,630 --> 00:07:30,900 რათა რაღაც, რომ რეალურად მუშაობს - 134 00:07:30,900 --> 00:07:33,490 რა ჩვენ უფრო გვაწუხებს არის მომხმარებლის, გამოცდილება. 135 00:07:33,490 --> 00:07:36,390 ჩვენ მოვუწოდებთ ამ მომხმარებლის ორიენტირებული დიზაინი. 136 00:07:36,390 --> 00:07:41,550 არსებითად რა მომხმარებლის ორიენტირებული დიზაინი მოიცავს არის გამოსული თქუენგან in ფეხსაცმელი თქვენი მომხმარებლებს. 137 00:07:41,550 --> 00:07:44,870 თუ ვინმე ნიშნები up, რასაც მე მშენებლობის, 138 00:07:44,870 --> 00:07:48,250 ისინი აშკარად მოვიდა ჩემი კერძოდ განაცხადის მიზანი გათვალისწინებით, 139 00:07:48,250 --> 00:07:50,280 ერთად ამოცანა მათ სურთ, რათა დასრულდეს. 140 00:07:50,280 --> 00:07:53,650 და თქვენი სამუშაო არ არის მხოლოდ, რათა დაეხმაროს მათ დასრულებას, რომ ამოცანა 141 00:07:53,650 --> 00:07:57,930 მაგრამ, რათა დაეხმაროს მათ დასრულებას, რომ ამოცანა ისე, რომ არის ეფექტური, ინტუიციური, 142 00:07:57,930 --> 00:08:01,900 და, როგორც ზოგიერთი პირი განაცხადა იქ, ხელმისაწვდომი. 143 00:08:01,900 --> 00:08:03,750 რას ნიშნავს ეფექტურობა? 144 00:08:03,750 --> 00:08:08,050 ეფექტურობა ნიშნავს, რამდენად სწრაფად ამჯამად ჩემი მომხმარებლის დაასრულებს ამოცანა მოცემული ჩემი ინტერფეისი. 145 00:08:08,050 --> 00:08:11,650 სჭირდება ბევრი დაწკაპუნებით მათთვის მისაღებად ერთი ადგილიდან სხვა? 146 00:08:11,650 --> 00:08:14,630 არის თუ არა რუტინული? ისინი უნდა შეასრულონ უამრავი განმეორებადი ამოცანებს? 147 00:08:14,630 --> 00:08:17,140 ჩვენ გვსურს, რომ პროცესი, როგორც ეფექტური როგორც შესაძლო 148 00:08:17,140 --> 00:08:20,070 ასე რომ, მათ არ უნდა გავაკეთოთ იმ სახის ნივთები. 149 00:08:20,070 --> 00:08:24,230 რაც შეეხება intuitiveness, რომ არის, მაგალითად, თუ მომხმარებლის გამოიყურება up ჩემი ინტერფეისი, 150 00:08:24,230 --> 00:08:27,240 არის ადვილი მათთვის მიიღონ ადგილიდან ადგილი? 151 00:08:27,240 --> 00:08:30,390 არის ადვილი მათთვის გაერკვნენ, რას უნდა დააჭიროთ ჩემი ინტერფეისი 152 00:08:30,390 --> 00:08:33,770 იმისათვის, რათა მიაღწიონ მიზანს ან ამოცანა, რომ მათ სურთ მიაღწიონ? 153 00:08:33,770 --> 00:08:37,520 >> და ბოლოს, როგორც ერთი ადამიანი ამბობს იქ, ხელმისაწვდომობის ძალიან მნიშვნელოვანია. 154 00:08:37,520 --> 00:08:39,640 [კაცი სპიკერი] საქმე ხელმისაწვდომობა რამ, როგორიცაა ხედვა, 155 00:08:39,640 --> 00:08:42,740 მინდა როგორ შემიძლია რეალურად შეიმუშავონ რაღაც ვინც არის ბრმა? 156 00:08:42,740 --> 00:08:46,460 Oh. ის ხალხი, ვინც ვერ ხედავს საერთოდ, გვაქვს რაღაც მოუწოდა ეკრანზე მკითხველი. 157 00:08:46,460 --> 00:08:49,070 რა უნდა გავაკეთოთ, არის თქვენ უნდა ავაშენოთ თქვენი ნახვა ისე, 158 00:08:49,070 --> 00:08:52,020 რომ, მაგალითად, კონკრეტული ტექნოლოგიების, რაც ჩვენ მოვუწოდებთ - 159 00:08:52,020 --> 00:08:53,590 უამრავი რამ არის. 160 00:08:53,590 --> 00:08:55,660 ვფიქრობ არსებობს ეკრანზე მკითხველი მოუწოდა Jaws. 161 00:08:55,660 --> 00:08:58,410 ბევრი ეს ყველაფერი დაეყრდნონ, რაც ჩვენ მოვუწოდებთ ფართობი წესები 162 00:08:58,410 --> 00:09:02,010 რათა წაიკითხა, რათა მომხმარებლის რა არსებობს გვერდზე. 163 00:09:02,010 --> 00:09:05,480 იმ ხალხს, ვინც ვერ ხედავს, თქვენ უნდა დავრწმუნდეთ, რომ ამ ეკრანზე მკითხველი 164 00:09:05,480 --> 00:09:09,130 შეიძლება რეალურად შეარჩიო შინაარსი გვერდზე და შეიძლება რეალურად ნახოთ თქვენი მომხმარებლებს, 165 00:09:09,130 --> 00:09:13,630 თუ თქვენ ვერ ხედავთ, მინიმუმ თქვენ მაინც ესმით შინაარსი გვერდზე. 166 00:09:13,630 --> 00:09:16,190 Yeah. Okay. 167 00:09:16,190 --> 00:09:23,410 საკმარისი ვსაუბრობთ კარგი დიზაინით. ვისაუბროთ იმაზე ცუდი დიზაინი. 168 00:09:23,410 --> 00:09:25,220 ეს ის საკითხებია, რომ თქვენ არ უნდა გავაკეთოთ. 169 00:09:25,220 --> 00:09:27,890 შეუძლია ვინმეს მითხრათ მათი გამოცდილება Craigslist 170 00:09:27,890 --> 00:09:32,190 და რა, მათი აზრით, არ არის იმდენად დიდი, ამ დიზაინით? 171 00:09:33,690 --> 00:09:36,430 დიახ. >> [სტუდენტი] ვფიქრობ, ძალიან ბევრი სიტყვა ერთ ფართობი. 172 00:09:36,430 --> 00:09:39,350 ძალიან ბევრი სიტყვა, არა? სრულიად დაუძლეველი. 173 00:09:39,350 --> 00:09:42,400 თქვენ მოვიდა ამ გვერდზე და თქვენ მიესალმა მთელი bunch რამ აქ 174 00:09:42,400 --> 00:09:43,860 რომ შეიძლება არც კი აქვს მნიშვნელობა თქვენ. 175 00:09:43,860 --> 00:09:47,010 მაგალითად, თქვენ ცხოვრობთ ერთ სახელმწიფოში, რომ არ იწყება ეს წერილი. 176 00:09:47,010 --> 00:09:48,690 ვთქვათ თქვენ ცხოვრობენ ტეხასის ან რამე. 177 00:09:48,690 --> 00:09:53,790 >> თქვენ უნდა გადახვევა ყველა გზა ქვემოთ გვერდზე მისაღებად საიდან ხართ დროს. 178 00:09:53,790 --> 00:10:00,320 მე ვარ Boston, ნება მომეცით გამოიყურება წელს მასაჩუსეტსის. სად არის მასაჩუსეტსის? 179 00:10:00,320 --> 00:10:03,270 ოჰ, ეს უფლება აქ. ოჰ, ეს Boston. Okay. 180 00:10:03,270 --> 00:10:09,070 მოდით შევხედოთ Boston. [სიცილის] 181 00:10:09,070 --> 00:10:12,250 Pretty აბსოლუტური, არა? 182 00:10:12,250 --> 00:10:16,400 უხერხულ რამ იქ. [სიცილის] 183 00:10:17,320 --> 00:10:19,470 ვთქვათ მე ეძებს სადღაც ცხოვრება. 184 00:10:19,470 --> 00:10:24,130 რამდენი ადამიანი რეალურად ათვისებულ Craigslist? ტონა თქვენ. 185 00:10:24,130 --> 00:10:30,960 არსებობს საკმაოდ ცუდი გზა შევხედოთ, მაგრამ მოდით შევხედოთ ამ. 186 00:10:35,130 --> 00:10:38,970 რა სხვაობაა img და pic? შეუძლია ვინმეს მითხრათ? 187 00:10:41,350 --> 00:10:42,830 არსებობს ფაქტიურად განსხვავება არ არის. 188 00:10:42,830 --> 00:10:47,710 ისინი ნიშნავს ზუსტად იმავეს, მაგრამ მათ აქვთ სხვადასხვა ეტიკეტები მათთვის რაიმე მიზეზით. 189 00:10:48,980 --> 00:10:53,560 თუ მე დააწკაპუნეთ აქვს გამოსახულება, არაფერი ხდება გვერდზე. 190 00:10:53,560 --> 00:10:57,490 მე რეალურად უნდა დააჭიროთ ძებნა ისევ რაღაც უნდა მოხდეს. 191 00:10:57,490 --> 00:11:02,430 რა შეიძლება იყოს უკეთესი დიზაინი გადაწყვეტილება, რომ შეიძლება გაკეთდეს იქ? 192 00:11:03,820 --> 00:11:08,030 თუ მე დაწკაპვით რომ ფილტრი, მე ალბათ სურთ, რათა გავფილტროთ მიერ კონკრეტული სამოქმედო 193 00:11:08,030 --> 00:11:09,970 ან ამ კონკრეტულ კატეგორიაში. 194 00:11:09,970 --> 00:11:14,450 ასე რომ ნაცვლად, რომელმაც უნდა დააჭირეთ ძებნა ისევ, მე ვერ უბრალოდ ავტომატურად გავაკეთოთ ფილტრაცია 195 00:11:14,450 --> 00:11:17,060 სახის Google სტილი სადაც მათ ამის გაკეთება მყისიერად. 196 00:11:17,060 --> 00:11:20,440 [Malan] მაგრამ არ ქმნის, როგორც ჩვენ ვხედავთ მათ დღემდე უნდა იყოს ფიზიკურად წარმოდგენილი 197 00:11:20,440 --> 00:11:23,170 მიერ hitting შეიყვანეთ მინიმუმ ან დაწკაპვით ღილაკს? 198 00:11:23,170 --> 00:11:26,830 როგორც თქვენ უნახავს აქამდე, თქვენ ნამდვილად უნდა დააჭირეთ Submit გავაკეთოთ იმ რამ. 199 00:11:26,830 --> 00:11:30,090 >> მაგრამ, როგორც ტომი გაჩვენებთ წელს მეორე, არსებობს გზები თქვენ 200 00:11:30,090 --> 00:11:33,010 ისეთი, რომ როდესაც თქვენ დააჭირეთ, რომ რამ მას შეუძლია ავტომატურად გააგზავნოთ 201 00:11:33,010 --> 00:11:38,840 რაც ჩვენ მოვუწოდებთ AJAX მოთხოვნა და მიიღოს მონაცემები უკან და გავფილტროთ თქვენი შედეგების მომენტალურად. 202 00:11:38,840 --> 00:11:41,340 არსებობს ტონა რამ, რომ არ არის სწორი ამ ინტერფეისი. 203 00:11:41,340 --> 00:11:43,530 [Malan] შეგიძლიათ მოძებნოთ კემბრიჯის? 204 00:11:43,530 --> 00:11:47,030 არსებობს რაღაც ოდნავ anomalous აქ სადაც თქვენ აღელვებს კემბრიჯის 205 00:11:47,030 --> 00:11:54,790 და ჯერ თქვენ მიღების WESTFORD, საგაზაფხულო Hill, დასავლეთის Newton და მოსწონს. 206 00:11:54,790 --> 00:11:57,930 ალბათ არ არის იდეალური. >> ალბათ არ იდეალური. 207 00:11:57,930 --> 00:12:03,900 როგორ შეიძლება მე შეძლებს მიიღოს მომხმარებლის გამოცდილების უკეთ ამ კონკრეტულ გვერდზე? 208 00:12:03,900 --> 00:12:07,340 დიახ. >> [სტუდენტი] ინსტრუქციები. 209 00:12:07,340 --> 00:12:09,500 Okay. ინსტრუქცია, თუ რა სახის გრძნობა? 210 00:12:09,500 --> 00:12:14,630 [სტუდენტი] მაგალითად, რამ პირველად წევრებს, რომლებიც არც კი იციან, თუ რა არის Craigslist 211 00:12:14,630 --> 00:12:17,320 ან არ იცით თუ რას უნდა გავაკეთოთ. 212 00:12:17,320 --> 00:12:20,150 მარჯვენა. ასე რომ აეხსნა რა Craigslist არის ამ გვერდზე მნიშვნელოვანია. 213 00:12:20,150 --> 00:12:23,490 ჩვენ შეგვიძლია რეალურად ვუთხრა მომხმარებლებს რა ამ გვერდზე არის რეალურად ამისთვის. 214 00:12:23,490 --> 00:12:27,090 თუ მე უბრალოდ გამოჩენის ამ, ვხედავ მთელი bunch of ადგილებში. ისიც კი არ ვიცი, რას გულისხმობენ. 215 00:12:27,090 --> 00:12:29,730 რაც მთავარია, მხოლოდ შევხედავთ ამ ინტერფეისს, 216 00:12:29,730 --> 00:12:35,530 გახსოვთ მომიწია გადახვევა ქვემოთ ტონა რამ იპოვოს კონკრეტული თანამეგობრობას 217 00:12:35,530 --> 00:12:37,560 რომ მე ფაქტობრივად ზრუნავდა ამ. 218 00:12:37,560 --> 00:12:39,820 რა სწრაფად გზა შემეძლო ეს? დიახ. 219 00:12:39,820 --> 00:12:43,290 [სტუდენტი] დაიყოს მათ up შევიდა აღმოსავლეთით, დასავლეთით რეგიონებში. >> Okay. 220 00:12:43,290 --> 00:12:47,460 მე ვერ გაყავით მათ მეტი კატეგორიები, რომელიც შეიძლება დაეხმაროს ჩემთვის უფრო სწრაფად განსაზღვრავს 221 00:12:47,460 --> 00:12:49,820 თუ როგორ უნდა, რომ ამ კონკრეტულ ადგილას. 222 00:12:49,820 --> 00:12:54,510 [სტუდენტი] განათავსეთ ჩამოსაშლელი სია. >> მარჯვენა. Okay. 223 00:12:54,510 --> 00:12:58,240 მე ვერ გამოიყენებს ჩამოსაშლელი მენიუ, რადგან ჩვენ გვაქვს ფიქსირებული კომპლექტი რამ 224 00:12:58,240 --> 00:13:00,100 და ჩვენ შეგვიძლია ვაჩვენოთ მათ ჩამოსაშლელი მენიუ. 225 00:13:00,100 --> 00:13:02,240 ამ გზით ეს არ დასჭირდეს იმდენად სივრცეში ეკრანზე. 226 00:13:02,240 --> 00:13:05,630 მაგრამ უფრო უკეთესი, ვიდრე, რომ, რა ვქნათ? 227 00:13:05,630 --> 00:13:09,220 დიახ. >> [Inaudible სტუდენტი საპასუხოდ] >> გვეტყვით, რომ ისევ? >> [სტუდენტი] ძებნა ყუთში. 228 00:13:09,220 --> 00:13:11,260 Yeah, საძიებო ველში. სწორედ დიდი. 229 00:13:11,260 --> 00:13:16,430 რა შეგვიძლია რეალურად გააკეთოთ თუ ჩვენ ვიხსენებთ სლაიდები, საძიებო ველში. 230 00:13:16,430 --> 00:13:21,520 თვითდასრულება. ძალიან მარტივად ძებნის მეშვეობით შედეგი, რომ თქვენ იცით, რომლებიც არიან მზადყოფნაში. 231 00:13:21,520 --> 00:13:25,980 თუ დავიწყო აკრეფით BO, უბრალოდ ეჩვენებინა ყველა შედეგი რომ აქვს BO შიგნით მათ. 232 00:13:25,980 --> 00:13:29,030 ამ გზით შემიძლია ძალიან ადვილად იპოვოთ კონკრეტულ შემთხვევაში მინდა წასვლა 233 00:13:29,030 --> 00:13:32,390 ნაცვლად, რომელმაც უნდა გადახვევა მეშვეობით ამ მართლაც დიდი სია. 234 00:13:32,390 --> 00:13:37,450 >> ეს არის ყველა სახის მართლაც დაბალი ჩამოკიდებული ხილი, რომ ადამიანი, რომელიც ახორციელებს Craigslist 235 00:13:37,450 --> 00:13:42,500 შეიძლება მართლაც მიიღოს გამოცდილება ნახვა უკეთესი მათი კონკრეტული მომხმარებლის. 236 00:13:42,500 --> 00:13:46,370 Okay. საკმარისი ვსაუბრობთ ცუდი საიტებზე. 237 00:13:46,370 --> 00:13:49,410 ვისაუბროთ იმაზე Facebook. 238 00:13:50,880 --> 00:13:54,390 როდესაც Facebook გამოვიდა, განსაკუთრებით Facebook photos, 239 00:13:54,390 --> 00:13:57,870 იყო უამრავი სხვა მომსახურების დროს, რომელიც შეეძლო ზუსტად იგივე რამ. 240 00:13:57,870 --> 00:14:00,740 მათ შეეძლოთ ორგანიზება თქვენი ფოტო შევიდა ალბომში. 241 00:14:00,740 --> 00:14:03,360 რა შეგიძლიათ გააკეთოთ თქვენ შეიძლება ორგანიზება მათთვის კომპლექტი ისევე. 242 00:14:03,360 --> 00:14:06,070 თქვენ შეიძლება ორგანიზება მათ მიერ თარიღი. თქვენ შეიძლება ყველაფერი ეს კონკრეტული რამ. 243 00:14:06,070 --> 00:14:11,710 მაგრამ ჯერ არავის ვიცი, რა გააკეთა Facebook photos აფეთქდეს დროს იგი გამოვიდა? 244 00:14:11,710 --> 00:14:15,080 დიახ. >> [სტუდენტი] Tags. >> Tags. სწორედ. 245 00:14:15,080 --> 00:14:21,300 ჩვენ გვყავს მილო მეტი აქ, ვინ არის ჩვენი ძაღლი თილისმად რომ CS50 bandana. 246 00:14:21,300 --> 00:14:24,810 თქვენ ხედავთ, რომ ჩვენ გვაქვს ეს ფუნქცია ჭდეებისთვის შუა. 247 00:14:24,810 --> 00:14:28,240 და რა გააკეთა Facebook photos ასე საინტერესო გამოყენებადობა თვალსაზრისით 248 00:14:28,240 --> 00:14:34,130 არის ის, რომ რეალურად დაშვებული ხალხი მეშვეობით ჩართვა მათი მეგობრებს მათი ფოტოები. 249 00:14:34,130 --> 00:14:37,680 Facebook-, რადგან მათი ნახვა განსაკუთრებით სოციალური, 250 00:14:37,680 --> 00:14:40,750 ეს დაახლოებით აშენებენ ამ სახის სოციალური გარემოა. 251 00:14:40,750 --> 00:14:42,620 რომ გაუმჯობესდა გამოცდილება ფოტო გაცილებით მეტი 252 00:14:42,620 --> 00:14:46,390 იმიტომ, რომ მათ შეეძლოთ რეალურად დაიწყოს განაცხადა, "ეს არის კავშირები ადამიანებს შორის, 253 00:14:46,390 --> 00:14:49,220 და ეს ფოტო ხალხზე თქვენ ნამდვილად აინტერესებს. " 254 00:14:49,220 --> 00:14:52,200 ნაწილი ისიც დალაგების narcissism. 255 00:14:52,200 --> 00:14:54,980 ადამიანს მოსწონს უნდა tagged in ფოტო და რამ, როგორიცაა, რომ. 256 00:14:54,980 --> 00:14:58,510 მიუხედავად იმისა, რომ აუცილებლად კარგი ადამიანის trait, 257 00:14:58,510 --> 00:15:01,910 ამავე დროს ის პრინციპებზე დაფუძნებული დიზაინი გადაწყვეტილებები 258 00:15:01,910 --> 00:15:04,860 რადგან ადამიანი რეალურად აინტერესებს რამ მოსწონს ეს. 259 00:15:04,860 --> 00:15:07,190 ასე რომ Facebook photos. 260 00:15:07,190 --> 00:15:09,800 >> მაგრამ მოდით გაიგო Facebook ზოგადად. 261 00:15:09,800 --> 00:15:13,400 დარწმუნებული ვარ უამრავი ადამიანი აქ აქვს მოსაზრებები Facebook, 262 00:15:13,400 --> 00:15:16,430 ორივე კარგი დიზაინის გადაწყვეტილებები და ცუდი დიზაინის გადაწყვეტილებები. 263 00:15:16,430 --> 00:15:20,270 მოდით Vent ან იყოს ბედნიერი. 264 00:15:23,480 --> 00:15:26,450 Come on. ვიცი ყველა იყენებთ Facebook. 265 00:15:26,450 --> 00:15:30,970 ვიღაცამ უნდა ჰქონდეს რაღაც ცუდი ვთქვა ან რაიმე კარგი ვთქვა ამის შესახებ. დიახ. 266 00:15:30,970 --> 00:15:35,060 [სტუდენტი] სიახლეები feed არსებობს ბევრი რამ მე ნამდვილად არ აინტერესებს. 267 00:15:35,060 --> 00:15:37,740 ახალი ამბები feed არ ნახოთ ბევრი რამ შეიძლება არ აღელვებთ. 268 00:15:37,740 --> 00:15:41,660 თქვენ გაქვთ მეგობრები Facebook-ზე ვინ ხარ არ მინახავს, ​​2 ან 3 წლის 269 00:15:41,660 --> 00:15:43,860 და ხედავთ მათი ამბების შედეგი popping up თქვენს ამბები Feed 270 00:15:43,860 --> 00:15:45,870 და თქვენ ნამდვილად არ მაინტერესებს. 271 00:15:45,870 --> 00:15:48,700 Facebook ფაქტობრივად გააკეთა ძალისხმევას, რათა ეს უკეთესი, 272 00:15:48,700 --> 00:15:53,150 და ისინი მართლაც სცადა დააყენებს შესაბამისი შედეგების ზევით ამბები Feed როგორც გვიანდელი 273 00:15:53,150 --> 00:15:58,300 ასე რომ თქვენ რეალურად ვხედავ რამ მიერ მეგობრები, რომლებიც შესაბამისი თქვენ ან თქვენი ახლო მეგობარი. 274 00:15:58,300 --> 00:16:01,110 არაფერი? დიახ. 275 00:16:01,110 --> 00:16:06,400 [Inaudible სტუდენტი საპასუხოდ] >> გვეტყვით, რომ ისევ? 276 00:16:06,400 --> 00:16:10,140 [სტუდენტი] განცხადებები შედარებით unobtrusive. >> რა გრძნობა? 277 00:16:10,140 --> 00:16:16,370 [Inaudible სტუდენტი საპასუხოდ] მათ არ აქვთ სინათლის ეკრანზე, ისევე ბანერები. 278 00:16:16,370 --> 00:16:17,760 Okay. ეგ კარგია. 279 00:16:17,760 --> 00:16:25,030 თუ გახსოვთ ინტერნეტის '90s - >> [Malan] მე იქ. >> მან იქ იყო. [სიცილის] 280 00:16:25,030 --> 00:16:29,210 გახსოვთ ალბათ flashing GIFs ფონზე, sparkly რამ, 281 00:16:29,210 --> 00:16:31,570 GeoCities სტილის რამეს, რასაც. 282 00:16:31,570 --> 00:16:34,080 რომ მართლაც არ მაგალითი კარგი დიზაინი 283 00:16:34,080 --> 00:16:36,690 რადგან ეს მართლაც ყურადღების გადასატანი საწყისი გვერდი. 284 00:16:36,690 --> 00:16:39,590 იელის ხელოვნების ნახვა გამოყენებული აქვს ანიმაციური GIFs როგორც მათ ფონზე 285 00:16:39,590 --> 00:16:41,800 და თქვენ ვერ წაიკითხა არაფერს გვერდზე, 286 00:16:41,800 --> 00:16:44,870 მაგრამ ვფიქრობ, ვინმე რეალურად მათ ვესაუბრე და ახლა ცოტა განსხვავებული. 287 00:16:44,870 --> 00:16:48,940 [Malan] ეს ბევრად უკეთესი არის. >> გაცილებით უკეთ არის, როგორც ხედავთ. >> [Malan] Oh Yeah. 288 00:16:48,940 --> 00:16:56,020 უბრალოდ დიდი, უბრალოდ - Yeah. Okay. 289 00:16:56,020 --> 00:17:00,560 >> ნაწილი ასევე რაც თქვენს გვერდზე შესაძლოა ძალიან მინიმალისტური და გასაგები 290 00:17:00,560 --> 00:17:05,690 ასე რამ გვერდზე ბრუნვა ისე, რომ ძალიან ლოგიკური და არ მიიღონ გზა ერთმანეთს. 291 00:17:05,690 --> 00:17:11,849 რა სახის სხვა რამ არის კარგი შესახებ Facebook ან ცუდი Facebook? 292 00:17:11,849 --> 00:17:15,730 მოდით უბრალოდ დიზაინი საუბარი აქ. 293 00:17:19,470 --> 00:17:21,339 Oh. სად? Yeah. 294 00:17:21,339 --> 00:17:25,640 [სტუდენტი] ახალი Timeline სისტემა საშუალებას გაძლევთ მოძებნოთ პირის პროფილის მათი წარსული. 295 00:17:25,640 --> 00:17:28,119 Ooh, ქრონოლოგია. 296 00:17:28,119 --> 00:17:30,280 Timeline არის დიდი რამ, რადგან იგი საშუალებას გაძლევთ stalk თქვენს მეგობრებს 297 00:17:30,280 --> 00:17:33,300 უკან, როდესაც ისინი საშუალო სკოლა. 298 00:17:35,160 --> 00:17:38,060 Timeline არის კარგი, რადგან იგი საშუალებას გაძლევთ გავფილტროთ მეშვეობით კონტენტი ბევრი უფრო სწრაფად, 299 00:17:38,060 --> 00:17:41,500 ეს გაძლევთ საშუალებას მოიძიოთ რამ იქნებოდა სხვაგვარად მიღებული თქვენ მართლაც დიდი დრო, რათა იპოვოს 300 00:17:41,500 --> 00:17:45,840 მხოლოდ სენსორული up და down, up, up, up, up, up, ისევე ვაპირებთ უკან დრო. 301 00:17:45,840 --> 00:17:48,910 მაგრამ შემდეგ ასევე სახის downside რომ თვალსაზრისით მომხმარებლის, გამოცდილება. 302 00:17:48,910 --> 00:17:51,190 რა შეიძლება რომ იყოს? 303 00:17:51,190 --> 00:17:56,780 დიდი სიტყვა, რომელიც იწყება P-R. >> [სტუდენტი] კონფიდენციალურობა. >> პირადობა, არა? 304 00:17:56,780 --> 00:17:59,970 კონფიდენციალურობის არის უზარმაზარი მომხმარებლის, გამოცდილება საკითხი. 305 00:17:59,970 --> 00:18:07,190 ეს არის ერთი რამ მე სიძულვილის შესახებ საუკეთესო Facebook არის. [სიცილის] 306 00:18:07,190 --> 00:18:09,000 [Malan] ისევე როგორც მე ახლა. 307 00:18:09,000 --> 00:18:11,380 დავით არ აცნობიერებენ ამ რეალურად მოხდა, სანამ გუშინ. 308 00:18:11,380 --> 00:18:14,560 ახლა მან იცის, რომ ყოველ ჯერზე მე chat მას მე ვიცი ის იყო იგნორირება ჩემთვის. 309 00:18:14,560 --> 00:18:16,880 [Malan] უხერხულ ნაწილი მე რეალურად იგნორირება მას, 310 00:18:16,880 --> 00:18:21,040 და არ ვიცოდი იცოდა მე იგნორირება მას. [სიცილის] 311 00:18:21,040 --> 00:18:24,030 კონფიდენციალურობის არის უზარმაზარი საკითხი. 312 00:18:24,030 --> 00:18:28,670 შეუძლია ვინმეს აქ მითხრათ რა შეიძლება იყოს ცუდი Facebook კონფიდენციალურობის 313 00:18:28,670 --> 00:18:32,270 გარდა იმისა, რომ ისინი რამ ასე? 314 00:18:32,270 --> 00:18:37,240 რა არის ეს განსაკუთრებით მძიმე გავაკეთოთ დაკავშირებით Facebook კონფიდენციალურობის? 315 00:18:37,240 --> 00:18:40,340 რომ სახის წამყვანი საკითხია. 316 00:18:41,680 --> 00:18:43,930 დიახ. >> [სტუდენტი] დაფარეთ თქვენი ფოტოები გარკვეული ხალხი. 317 00:18:43,930 --> 00:18:46,170 მარჯვენა. სწორედ, დასამალი თქვენი ფოტოები გარკვეული ხალხი. 318 00:18:46,170 --> 00:18:51,290 მათ აქვთ ამ პატარა, პატარა ღილაკი ზედა მარჯვენა გაძლევთ გადართვა კონფიდენციალურობის ფოტო. 319 00:18:51,290 --> 00:18:56,360 მათი კონფიდენციალურობის პარამეტრები ძალიან მერყეობდა სხვადასხვა სახის მენიუები. 320 00:18:56,360 --> 00:18:59,510 >> ისინი მიღებული უკეთესი ამის შესახებ ცოტა ხნის წინ, მაგრამ ეს გამოიყენება იმ შემთხვევაში 321 00:18:59,510 --> 00:19:04,870 რომ როცა უნდოდა თავიდან ასაცილებლად თქვენი მეგობრები ხედავს ფოტო, 322 00:19:04,870 --> 00:19:08,280 თქვენ უნდა გაიაროს ძალიან რთული 5 ნაბიჯ პროცესი მიმდინარეობს, როგორიცაა, 323 00:19:08,280 --> 00:19:11,150 ნება მომეცით დააჭირეთ ამ ბმულს, ახლა ნება მომეცით დააჭირეთ ისევ, მინდა კიდევ ერთხელ დააჭირეთ, 324 00:19:11,150 --> 00:19:13,420 ნება მომეცით მიუთითოს, თუ რომელი ხალხი ვერ ხედავს ჩემი ფოტოსურათები. 325 00:19:13,420 --> 00:19:17,250 ეს არ არის განსაკუთრებით კარგი Facebook-ს ნაწილი 326 00:19:17,250 --> 00:19:20,530 რადგან იმდენად მომხმარებლის შესახებ გამოცდილება რეალურად მათთვის თავისუფლება 327 00:19:20,530 --> 00:19:22,460 გაკონტროლება, რასაც ადამიანები ვხედავთ. 328 00:19:22,460 --> 00:19:25,550 ჩვენ მოვუწოდებთ ამ მომხმარებლის კონტროლი და თავისუფლება. 329 00:19:25,550 --> 00:19:31,090 თუ თქვენ არ გაქირავების თქვენი მომხმარებლებს გავაკეთოთ, რომ გზა, რომელიც არის ეფექტური და ინტუიციური, 330 00:19:31,090 --> 00:19:34,570 მაშინ თქვენი მომხმარებლის, გამოცდილება არ არის ნამდვილად, რომ დიდი იყო. 331 00:19:34,570 --> 00:19:38,200  გსურთ თუ ბიჭები მოსწონთ რომ არაფერი ვთქვათ Facebook? 332 00:19:38,700 --> 00:19:41,420 როგორ შემიძლია ჩართოთ ეს off? 333 00:19:41,420 --> 00:19:46,290 [Ong] თქვენ არ შეგიძლიათ ჩართოთ ამ off, და ეს არის უზარმაზარი გამოყენებადობა ხარვეზის შესახებ ნაწილი Facebook. 334 00:19:46,290 --> 00:19:49,410 ეს ფუნქცია - მე რეალურად ჩანდა შევიდა გუშინ - 335 00:19:49,410 --> 00:19:53,940 ეს არც რომ ვერ გავაკეთებთ ან ის დაკრძალეს სადღაც ძალიან, ძალიან ღრმა 336 00:19:53,940 --> 00:19:58,050 წელს recesses of Facebook, რადგან მე ვერ გაერკვნენ, თუ როგორ უნდა გამორთოთ ამ ფუნქციის ყველა. 337 00:19:58,050 --> 00:20:00,400 [Malan] მაგრამ ზოგჯერ ეს კომპრომისები არ არის აშკარა 338 00:20:00,400 --> 00:20:03,890 იმიტომ, რომ თქვენ ბიჭები არ მოგვცა ბევრი სასარგებლო კავშირი სხვადასხვა CS50 განაცხადების 339 00:20:03,890 --> 00:20:05,710 და საიტებზე, რომ რა თქმა უნდა იყენებს. 340 00:20:05,710 --> 00:20:10,260 ჩვენ არ განხორციელდეს ყველა ეს წინადადებები და წინადადებები. 341 00:20:10,260 --> 00:20:14,550 >> ნაწილი რომ არის მისაღებად ამდენი მოითხოვს, რომ ეს ფუნქცია ახლა, 342 00:20:14,550 --> 00:20:17,070 მაგრამ ზოგჯერ ჩვენ უბრალოდ მიიღოს შეგნებული გადაწყვეტილება მოსწონს, 343 00:20:17,070 --> 00:20:19,830 "მადლობას გიხდით წინადადება, მაგრამ ჩვენ ვერ ვთანხმდებით". 344 00:20:19,830 --> 00:20:24,350 ასე როგორ რეალურად გადაწყვეტს, თუ რა უნდა გააკეთოს, თუ თქვენი მომხმარებლებს ვფიქრობ, თქვენ უნდა გავაკეთოთ რამე 345 00:20:24,350 --> 00:20:28,110 მაშინაც კი თუ თქვენ არ არის აუცილებელი? 346 00:20:28,110 --> 00:20:32,360 ეს ჯარიმა შორის ბალანსის რეალურად მოსმენის რა თქვენი მომხმარებლებს ამბობენ 347 00:20:32,360 --> 00:20:35,840 და ფაქტობრივად გარკვეული სახის ხაზი სადაც თქვენ ამბობენ, 348 00:20:35,840 --> 00:20:37,750 "ჩვენ არ ვაპირებთ ამის გაკეთებას რა ამ მომხმარებლებს ამბობენ." 349 00:20:37,750 --> 00:20:42,520 კერძოდ, ვფიქრობ იყო ციტირებით ჰენრი ფორდი, რომ თანხები ამ up კარგად. 350 00:20:42,520 --> 00:20:47,130 "მე რომ ვთხოვე ხალხს რა უნდოდათ, ისინი განაცხადა უნდოდათ სწრაფად ცხენები". 351 00:20:47,130 --> 00:20:51,840 შეუძლია ვინმეს სახის აჯავრებენ გარდა რა, რომ ციტირებით ნამდვილად ნიშნავს? 352 00:20:51,840 --> 00:20:56,060 ეს არ არის მხოლოდ, რომ მომხმარებლებს იციან რა უნდათ, 353 00:20:56,060 --> 00:20:59,180 მაგრამ ეს უფრო, რომ - 354 00:20:59,180 --> 00:21:02,720 [სტუდენტი] მათ არ იციან, რა არის შესაძლებელი. 355 00:21:02,720 --> 00:21:06,140 In ნაწილი არ იციან, რა არის შესაძლებელი. 356 00:21:07,880 --> 00:21:11,440 ცელქი, რომ გარდა ცოტა მეტი. რას ნიშნავს რომ? 357 00:21:11,440 --> 00:21:21,340 [Inaudible სტუდენტი საპასუხოდ] 358 00:21:21,340 --> 00:21:25,770 ეგ კარგია. მე ვფიქრობ, რომ ჩვენ ვცდილობთ ვთქვა აქ არის ის, რომ ადამიანმა იცის რა უნდათ. 359 00:21:25,770 --> 00:21:28,050 მათ სურთ უფრო სწრაფად ცხენები. 360 00:21:28,050 --> 00:21:29,840 რა მათ მართლაც სურთ არის უნარი გადაადგილება უფრო სწრაფად, 361 00:21:29,840 --> 00:21:32,310 მაგრამ არ ვიცი საშუალო რომლითაც უნდა მივაღწიოთ, რომ. 362 00:21:32,310 --> 00:21:36,330 როცა მოვა თქვენი მომხმარებლებს და თქვენი მომხმარებლებს რამ გითხრათ 363 00:21:36,330 --> 00:21:39,700 და ისინი გითხრათ, "ჩვენ გვინდა, ამ თვისებების და ამ თვისებების და ამ თვისებების," 364 00:21:39,700 --> 00:21:42,650 თქვენ არ მინდა აუცილებლად ვიფიქროთ, "ნება მომეცით წავიდეთ წინ 365 00:21:42,650 --> 00:21:44,720 "და განხორციელება, რაც მათ ცალსახად ამბობენ," 366 00:21:44,720 --> 00:21:48,610 მაგრამ რა გსურთ ვიფიქროთ არის, "როგორი იდეები შემიძლია, რომ?" 367 00:21:48,610 --> 00:21:50,450 რა ისინი ნამდვილად გინდათ? 368 00:21:50,450 --> 00:21:55,560 >> და იქიდან თუ რა შეგიძლიათ გააკეთოთ შეიმუშავონ რამე რომ აკმაყოფილებს იმ მოითხოვს 369 00:21:55,560 --> 00:22:00,340 მაგრამ არა აუცილებლად ისე, რომ მომხმარებლის მოელის მას დაკმაყოფილდება. 370 00:22:00,340 --> 00:22:03,830 ასე რომ რაღაც საბოლოო პროექტები, ძალიან რეალური თვალსაზრისით, 371 00:22:03,830 --> 00:22:07,900 რა სასარგებლო heuristic როდესაც საქმე მიღების რაღაც უკეთესი, 372 00:22:07,900 --> 00:22:10,630 განსაკუთრებით თუ დიზაინერი ჰყავს ამ ქედმაღლურად მის შესახებ 373 00:22:10,630 --> 00:22:14,360 რომლითაც თქვენ სახის ვიცით, რა საუკეთესო, თქვენ შესაძლოა შეიტანენ თქვენს მომხმარებლებს, 374 00:22:14,360 --> 00:22:16,580 მაგრამ როგორ რეალურად წავიდეთ მისაღებად რომ კავშირი? 375 00:22:16,580 --> 00:22:21,610 ფინალში პროექტები, ძალიან კონკრეტულად, რა აწარმოებს ოპტიმალური შედეგი აქ? 376 00:22:21,610 --> 00:22:25,030 რა აწარმოებს ოპტიმალური შედეგები - და წავალ ამ წელს მეორე - 377 00:22:25,030 --> 00:22:29,190 ეს პროცესი ვითარდება და შემდეგ ტესტირება და შემდეგ iterating. 378 00:22:29,190 --> 00:22:32,020 რას ვგულისხმობ მიერ ტესტირება ჩვეულებრივ, როდესაც თქვენ დიზაინზე რაღაც 379 00:22:32,020 --> 00:22:36,970 ფიქრობთ ეს საკმაოდ კარგი, როგორიც, "მე ასეთი დიდი დიზაინერი. ყველას აპირებს მიყვარს ეს." 380 00:22:36,970 --> 00:22:41,600 და მაშინ დატოვეთ იგი არსებობს და ხალხი ნამდვილად არ მომწონს რატომღაც. 381 00:22:41,600 --> 00:22:46,820 რა უნდა გააკეთოთ თქვენ უნდა მიიღოს ნაწილები რამ, რომ ხალხი მოსწონს 382 00:22:46,820 --> 00:22:49,180 და revamp რამ, რომ ხალხი არ მიყვარს. 383 00:22:49,180 --> 00:22:53,080 ეს ჟღერს ძალიან აშკარა პროცესი, მაგრამ ეს პროცესი მუდმივად iterating 384 00:22:53,080 --> 00:22:55,980 თავზე რა თქვენ უკვე აშენებული არის პროცესი, რომელიც გეხმარებათ 385 00:22:55,980 --> 00:22:59,730 არა მხოლოდ დახვეწა თქვენი საკუთარი დიზაინით უნარების, არამედ გეხმარებათ დახვეწა დიზაინი 386 00:22:59,730 --> 00:23:03,790 ასე, რომ ხალხი რეალურად ვაფასებთ თქვენს პროდუქტის კიდევ უფრო ვიდრე ადრე. 387 00:23:03,790 --> 00:23:07,390 >> მე წასვლა მეტი კონკრეტული მაგალითები, თუ რა შეიძლება რეალურად გავაკეთოთ. 388 00:23:07,390 --> 00:23:11,390 როგორც ერთგვარი ბოლო მაგალითი პროდუქტის, მოდით შევხედოთ KAYAK. 389 00:23:11,390 --> 00:23:14,970 KAYAK როდესაც იგი გამოვიდა იყო ძალიან, ძალიან პოპულარულია. 390 00:23:14,970 --> 00:23:18,760 შეუძლია ვინმეს გამოიცნოს, თუ რატომ? 391 00:23:18,760 --> 00:23:20,950 რა სახის რამ გსურთ ამ თუ თქვენ გამოიყენებთ მას 392 00:23:20,950 --> 00:23:23,990 ან რა სახის რამ არ მოგწონთ? 393 00:23:23,990 --> 00:23:31,590 დიახ. >> [Inaudible სტუდენტი საპასუხოდ] >> Okay. 394 00:23:31,590 --> 00:23:34,730 სწორედ ნაწილი გაქირავების მომხმარებლის აქვს შეკითხვის რომ უფრო ძვირი 395 00:23:34,730 --> 00:23:38,150 ვიდრე ძალიან შეზღუდულად ერთი მოსწონს, "თქვენ უნდა აირჩიოთ თქვენი დაწყების თარიღი 396 00:23:38,150 --> 00:23:39,810 "და თქვენ უნდა აირჩიოთ თქვენი ბოლომდე თარიღი." 397 00:23:39,810 --> 00:23:44,910 ფაქტობრივად, ეს საშუალებას გაძლევთ იყოს მოქნილი შესახებ და ეს გაძლევთ ყველა ფრენები რომ დიაპაზონი. 398 00:23:44,910 --> 00:23:46,730 არაფერი? 399 00:23:46,730 --> 00:23:50,530 [სტუდენტი] მათ შორისაა მოსაკრებლების ფასად. 400 00:23:50,530 --> 00:23:53,330 ისინი მოიცავს მოსაკრებლების ფასად. 401 00:23:53,330 --> 00:23:56,720 გადასახადებისა და რამ რეალურად წასვლა სწორი შევიდა, რომ ფასების ზედა მარცხენა 402 00:23:56,720 --> 00:24:00,710 ამიტომ თქვენ არ tricked შევიდა ფიქრობდა, რომ თქვენ რეალურად გადახდილი $ 240 ფრენის 403 00:24:00,710 --> 00:24:03,280 როდესაც ეს მართლაც $ 330. 404 00:24:03,280 --> 00:24:06,200 არაფერი? დიახ. 405 00:24:06,200 --> 00:24:10,140 [Inaudible სტუდენტი საპასუხოდ] 406 00:24:10,140 --> 00:24:14,610 არ ვარ დარწმუნებული, თუ ისინი რეალურად მოგცემთ გაგვაჩნია. 407 00:24:14,610 --> 00:24:18,310 მე შეიძლება იყოს არასწორი. 408 00:24:18,310 --> 00:24:23,360 ეს შეიძლება საინტერესო რამ, თუ გსურთ უფრო მეტი წონა კონკრეტულ ფილტრები 409 00:24:23,360 --> 00:24:27,000 რათა მათ დააყენებს შედეგების დაკავშირებული, რომ ფილტრის დაბრუნება. 410 00:24:27,000 --> 00:24:31,920 მაგრამ შეიძლება ვინმეს მითხრათ რა არის სპეციალური ამის შესახებ მარცხენა მხარეს? 411 00:24:31,920 --> 00:24:39,540 როგორ ფიქრობთ ტრადიციულად ეძებოთ ფრენის შესახებ ინტერნეტ მომსახურების ადრე? 412 00:24:41,600 --> 00:24:44,650 >> დიახ. >> [Inaudible სტუდენტი საპასუხოდ] >> გვეტყვით, რომ - 413 00:24:44,650 --> 00:24:47,530 [სტუდენტი] თითოეული ავიასაწარმო. >> Yeah. თითოეული ავიაკომპანია აქვს საკუთარი ნახვა. 414 00:24:47,530 --> 00:24:50,110 ეს კონსოლიდირებულია რამ. და? 415 00:24:50,110 --> 00:24:52,190 [სტუდენტი] თქვენ იცით ზუსტად რა დროს თქვენ ტოვებენ. 416 00:24:52,190 --> 00:24:54,460 თქვენ იცით ზუსტად რა დროს თქვენ ტოვებს, 417 00:24:54,460 --> 00:24:59,380 მაგრამ დაკავშირებული ფილტრები კერძოდ. 418 00:25:00,710 --> 00:25:03,540 ნება მომეცით დახევის up KAYAK. 419 00:25:11,490 --> 00:25:14,020 Oh ღმერთი, ამომხტარი. ცუდი მომხმარებლის, გამოცდილება. 420 00:25:14,020 --> 00:25:17,230 რა ხდება, როდესაც მე გადავიდეს ამ სლაიდერი? 421 00:25:17,230 --> 00:25:21,010 [სტუდენტი] ავტომატური განახლება. >> [Ong] ავტომატური განახლება. 422 00:25:21,010 --> 00:25:23,440 სწორედ ის, რაც ძალიან მნიშვნელოვანია. 423 00:25:23,440 --> 00:25:25,380 მანამდე კი, როდესაც არ სურდა ეძებოთ ფრენის, 424 00:25:25,380 --> 00:25:28,410 გქონდათ დააყენოს თქვენს შეყვანის ადგილას, თქვენი გამომავალი საიდან, პრეს ძებნა, 425 00:25:28,410 --> 00:25:31,190 ეს იქნებოდა პროცესი, რომელიც და აჩვენებს თქვენი შედეგი. 426 00:25:31,190 --> 00:25:34,120 თუ თქვენ სურდა შეცვლის თქვენს შეკითხვაზე, თქვენ უნდა დააჭიროთ უკან ორჯერ, 427 00:25:34,120 --> 00:25:39,770 შევა ახალი შეკითხვის ნულიდან, და შემდეგ გავაკეთებთ უსასრულოდ. 428 00:25:39,770 --> 00:25:43,910 ლამაზი რამ შესახებ მსგავსი რამ არის იგი იყენებს ძალიან [გაუგებარია] რამ შუა. 429 00:25:43,910 --> 00:25:46,230 როდესაც თქვენ რაღაც მოსწონს, ეს shoots off მოთხოვნით 430 00:25:46,230 --> 00:25:48,420 და ის დააბრუნებს თქვენ ყველა შედეგი დაუყოვნებლივ. 431 00:25:48,420 --> 00:25:51,680 ეს ერთგვარი დაუყოვნებლივ კავშირი არის ის, რასაც გააკეთა KAYAK wildly პოპულარული 432 00:25:51,680 --> 00:25:55,910 რადგან ეს მართლაც ადვილია ჩემთვის უბრალოდ შეცვალეთ ჩემი შეკითხვის 433 00:25:55,910 --> 00:25:58,890 და გაერკვნენ რამ, რომ დაახლოებით კონკრეტული დიაპაზონი 434 00:25:58,890 --> 00:26:01,950 გარეშე უკან და მეოთხე, უკან და მეოთხე, უკან და მეოთხე. 435 00:26:01,950 --> 00:26:05,200 ასე რომ ეს არის ყველა სახის რამ გსურთ ვიფიქროთ, როდესაც თქვენ დიზაინის თქვენი ნახვა. 436 00:26:05,200 --> 00:26:08,930 როგორ შემიძლია ძალიან ეფექტურია ჩემი მომხმარებლებს გავლა რასაც ისინი მუშაობენ 437 00:26:08,930 --> 00:26:13,010 და მიიღოს მათი საბოლოო მიზანი, რაც შეიძლება მალე? 438 00:26:13,010 --> 00:26:16,430 [Malan] და რომ იოსების წერტილი ადრე დაახლოებით მომხმარებლებს არ ემთხვეოდეს იცის რა უნდათ, 439 00:26:16,430 --> 00:26:18,640 რის საფუძველზე თქვენ ბიჭები ახლა უკვე იცის დაახლოებით HTML 440 00:26:18,640 --> 00:26:22,780 და თქვენ გაქვთ checkboxes, რადიო ღილაკები აირჩიეთ მენიუები, შეყვანის სფეროებში და მოსწონს, 441 00:26:22,780 --> 00:26:26,140 როგორ განახორციელოს ცნება კრეფა დაწყება დრო ფრენის? 442 00:26:26,140 --> 00:26:30,030 >> რაც იმ სხვადასხვა UI მექანიზმების ისარგებლებთ თუ არა? 443 00:26:30,030 --> 00:26:34,100 თუ თქვენ მხოლოდ ვიცი თანხის HTML, რომელიც ასწავლიდა ადრე 444 00:26:34,100 --> 00:26:39,070 და თქვენ იცით საშუალებებით არიან რადიო ღილაკები, checkboxes, drop-Downs, და input box, 445 00:26:39,070 --> 00:26:43,320 რა თქვენი ბუნებრივი არჩევანი არ ყოფილიყო კრეფა თარიღების? 446 00:26:43,320 --> 00:26:48,670 [სტუდენტი] შეყვანის. >> შეყვანის. ან იქნებ კიდევ ჩამოსაშლელი ყველა ვადები, უფლება? 447 00:26:48,670 --> 00:26:53,170 ამრიგად, უფრო რთული UI მექანიზმების მოსწონს მარცხენა მხარეს რომ თქვენ შეგიძლიათ განხორციელება, 448 00:26:53,170 --> 00:26:55,500 შეგიძლიათ ამ პროცესის ბევრად უფრო ინტუიტიური ერთად სლაიდერი 449 00:26:55,500 --> 00:27:01,020 რადგან დრო უწყვეტი, და ხალხს როგორც წესი არა მგონია ეს თვალსაზრისით დისკრეტული მოცულობით. 450 00:27:01,020 --> 00:27:04,950 ყველა უფლება. ბოლო რამ. 451 00:27:04,950 --> 00:27:07,370 ათი გამოყენებადობა heuristics. 452 00:27:07,370 --> 00:27:10,820 ყველა რამ ჩვენ ვისაუბრეთ ალბათ ქვეშ ერთი ამ კატეგორიაში. 453 00:27:10,820 --> 00:27:14,420 თუ ამ ბმულზე, რომელიც საიტებზე დაიდება შემოსული, 454 00:27:14,420 --> 00:27:18,900 თქვენ რეალურად შეძლებთ, როგორც თქვენ დიზაინზე თქვენს საიტზე, შეინახოს ამ heuristics გათვალისწინებით 455 00:27:18,900 --> 00:27:21,330 და ამ წესებს thumb. 456 00:27:21,330 --> 00:27:26,610 თქვენი პროექტები, რასაც მე გთავაზობთ გავაკეთოთ, რათა შეიმუშავონ თქვენი app უკეთესი 457 00:27:26,610 --> 00:27:28,850 არის გავაკეთოთ ქაღალდის prototyping პირველი. 458 00:27:28,850 --> 00:27:32,150 როდესაც თქვენ ფიქრი თქვენი განცხადება, ძალიან სწრაფად ესკიზის რა გნებავთ გამოიყურებოდეს 459 00:27:32,150 --> 00:27:36,230 და დარწმუნდით ყველა ყუთები ეწყობა ისე, რომ ძალიან ინტუიციური ამისთვის მომხმარებელს გამოიყენოს 460 00:27:36,230 --> 00:27:39,820 და კიდევ ნახოთ ამ ქაღალდის პროტოტიპები თქვენს მეგობრებს და დაიწყება ფოკუს ჯგუფებში. 461 00:27:39,820 --> 00:27:44,230 უბრალოდ კიდევ 2 ან 3 ადამიანი ერთად და მათ ვთხოვთ, უბრალოდ დაკრავენ ამ ქაღალდის პროტოტიპების, 462 00:27:44,230 --> 00:27:47,650 და ვაჩვენოთ ახალი ეკრანები თუ ისინი რეალურად მესმის რა ხდება. 463 00:27:47,650 --> 00:27:50,680 >> რა გსურთ არის მივცეთ დავალება, მოტივაცია, რომ ამოცანა, 464 00:27:50,680 --> 00:27:53,270 და უბრალოდ მივცეთ app და ისინიც გამოიყენოს იგი. 465 00:27:53,270 --> 00:27:56,530 არ მისცეს მათ ინსტრუქციას ამის მიღმა. 466 00:27:56,530 --> 00:28:00,920 გსურთ რეალურად მისცეს მათ ურთიერთქმედება თქვენი app წელს გზა, რომელიც საშუალებას ხედავთ 467 00:28:00,920 --> 00:28:03,870 როგორ ისინი გამოიყენოთ იგი, თუ თქვენ არ იდგა შემდეგი მათთვის. 468 00:28:03,870 --> 00:28:05,250 და ეს ძალიან მნიშვნელოვანია. 469 00:28:05,250 --> 00:28:08,780 რომ მოგცემთ უამრავ insights როგორც არიან ადამიანები ნავიგაცია კერძოდ რამ 470 00:28:08,780 --> 00:28:10,560 ისე, რომ მე არ ვაპირებ მათ? 471 00:28:10,560 --> 00:28:14,680 არიან ისინი გამოყენებით კონკრეტული მექანიზმები UI ეკრანზე 472 00:28:14,680 --> 00:28:17,490 ისე, რომ არის სახის Hacky? 473 00:28:17,490 --> 00:28:22,020 მე არ ვაპირებ მათთვის ამის გაკეთება, რომ გზა. 474 00:28:22,020 --> 00:28:23,940 და კიდევ თქვენ გაკეთდეს, რომ, რა გინდათ რომ გააკეთოთ? 475 00:28:23,940 --> 00:28:26,010 თქვენი დიზაინი კლდეები, არა? 476 00:28:26,010 --> 00:28:29,600 რა გსურთ გააკეთოთ გსურთ განვითარდეს და მერე გავაკეთოთ, რომ პროცესი კვლავ. 477 00:28:29,600 --> 00:28:32,110 ასე რომ დავანახოთ მას მეგობრები ერთხელ თქვენ განვითარებული ის, ტესტირებაში, 478 00:28:32,110 --> 00:28:36,630 განვითარება, ტესტი, განვითარება, ტესტი, iterate, და და ველით. 479 00:28:36,630 --> 00:28:39,720 დიზაინი არის ძალიან iterative პროცესი ამ თვალსაზრისით. 480 00:28:39,720 --> 00:28:43,280 თქვენ ნამდვილად უნდა ავაშენოთ რაღაც და მერე მიხვდებიან, რამ შესახებ 481 00:28:43,280 --> 00:28:46,520 რომ თქვენ არ აცნობიერებენ ადრე და უკან და გაუმჯობესება საწყისი, რომ. 482 00:28:46,520 --> 00:28:50,890 ახლა, რაც შეეხება განვითარებას ნაწილი არის ის, რაც Tommy აპირებს გაჩვენონ შესვენების შემდეგ 483 00:28:50,890 --> 00:28:53,220 და როგორ შესაძლოა განახორციელოს რაღაც თვითდასრულება 484 00:28:53,220 --> 00:28:56,610 ისე, რომ საკმაოდ მარტივია. 485 00:28:57,440 --> 00:28:59,550 [Malan] როგორც Tommy იქმნება აქ, კითხვა შემდეგ. 486 00:28:59,550 --> 00:29:03,780 ბევრი ადრეული საიტებზე - და როდესაც ჯოზეფ განაცხადა 1990 სტილი ნახვა, 487 00:29:03,780 --> 00:29:07,640 ეს იყო შესრულება, სადაც თუ უნდოდა აირჩიეთ დაწყების დრო და ბოლოს დრო, 488 00:29:07,640 --> 00:29:10,380 გულწრფელად ვამბობ, უკან დღეში და კიდევ ზოგიერთ საიტებზე დღეს, 489 00:29:10,380 --> 00:29:13,220 ისე გავაკეთოთ ეს თქვენ შეარჩიო საათში ჩამოსაშლელი, 490 00:29:13,220 --> 00:29:15,910 თქვენ შეარჩიო წუთის ჩამოსაშლელი, იქნებ აირჩიოთ PM, PM, 491 00:29:15,910 --> 00:29:17,440 და მერე შენ რომ კიდევ 3 ჯერ. 492 00:29:17,440 --> 00:29:19,920 და ასე 6 დაწკაპუნებით და შესაძლოა გარკვეული სენსორული 493 00:29:19,920 --> 00:29:24,000 თქვენი მომხმარებელს შეუძლია რეალურად უზრუნველყოფს გარკვეული სახის თარიღს და / ან დრო სპექტრი ამ თვალსაზრისით. 494 00:29:24,000 --> 00:29:27,920 >> ასე ნამდვილად suboptimal და ჯერჯერობით დღემდე ჩვენ ვნახეთ არ ექსპრესიული შესაძლებლობების 495 00:29:27,920 --> 00:29:30,330 ნებისმიერ ენაზე ჩვენ შევხედე რაღაც sexier 496 00:29:30,330 --> 00:29:32,620 მსგავსი სლაიდერი დაწყების დრო და ბოლოს დრო. 497 00:29:32,620 --> 00:29:36,290 მაგრამ თუ ფიქრობთ თავში კვირაში 0, როდესაც ჩვენ ვისაუბრეთ Scratch, 498 00:29:36,290 --> 00:29:39,080 იქაც არ იყო ვიჯეტები რომ გააკეთა გარკვეული რამ. 499 00:29:39,080 --> 00:29:42,700 თქვენ ნამდვილად უბრალოდ ჰქონდა ამ საფუძვლები, როგორიცაა მარყუჟების და პირობები და მოსწონს. 500 00:29:42,700 --> 00:29:46,910 ამიტომ სახის უბრალოდ ფიქრი ძალიან აბსტრაქტულად არის, დამოუკიდებელი რომლებიც of HTML, 501 00:29:46,910 --> 00:29:51,260 რა არის მართლაც მიმდინარეობს ერთად რაღაც მსგავსი დაწყების დრო და ბოლოს დრო სლაიდერი? 502 00:29:51,260 --> 00:29:54,960 როდესაც მე გადაადგილება ჩემი მაუსის და მე დააწკაპუნეთ რომ პატარა სტაფილოს სიმბოლო მარცხენა 503 00:29:54,960 --> 00:29:59,220 და დაიწყოს გადმოიყვანა, პროგრამულად, რა არის ეს გსურთ შეძლებს განახორციელოს 504 00:29:59,220 --> 00:30:01,000 რათა, რომ მოხდეს? 505 00:30:01,000 --> 00:30:04,920 რა კითხვები, რა ლოგიკური გამონათქვამები გსურთ შეძლებს ვთხოვო? 506 00:30:04,920 --> 00:30:06,930 რა მართლაც მიმდინარეობს? Sammy? 507 00:30:06,930 --> 00:30:10,080 [სტუდენტი] სად პოზიცია კურსორი? >> კარგი. სად არის თანამდებობაზე კურსორი? 508 00:30:10,080 --> 00:30:11,970 ეს იყო რაღაც გვჭირდებოდა გამოხატოს უკან Scratch, 509 00:30:11,970 --> 00:30:14,690 იყო თუ არა დაყრდნობით საიდან ან თუნდაც ფერადი ან მოსწონს. 510 00:30:14,690 --> 00:30:18,410 თქვენ შეიძლება გავიხსენოთ ოდესმე ასე მოკლედ, ორშაბათს იყო ყველა ეს რამ მოუწოდა თარიღები 511 00:30:18,410 --> 00:30:22,370 სამყაროში Web და ა.შ. არსებობს რამ, როგორიცაა onclick და onkeypress 512 00:30:22,370 --> 00:30:25,960 და onkeyup და onmouseover და onmouseout. 513 00:30:25,960 --> 00:30:29,130 ასე რომ მიხვდებიან, რომ თუნდაც ეს ყველაფერი ჩვენ აღების თავისთავად ინტერნეტში 514 00:30:29,130 --> 00:30:32,190 ერთად საიტებზე როგორიცაა Facebook და Gmail, მაშინაც კი, თუ თქვენ არ ვიცი 515 00:30:32,190 --> 00:30:34,890 როგორ თქვენ ამას შესაძლოა განახორციელოს, რომ არაფერი კი მოსწონს ეს ლექცია 516 00:30:34,890 --> 00:30:38,570 ან პრობლემა უცნობია 7, გააცნობიეროს, რომ ამ ზუსტად იგივე საფუძვლები, 517 00:30:38,570 --> 00:30:41,090 ერთად HTTP და პარამეტრების და მიიღეთ და ჩანაწერი, 518 00:30:41,090 --> 00:30:44,010 ძირითადი HTML საშუალებებით, რომ ჩვენ შევხედეთ დღემდე 519 00:30:44,010 --> 00:30:47,690 და მომენტში ერთად პროგრამული მექანიზმები, რომ ტომი დაახლოებით დანერგვა 520 00:30:47,690 --> 00:30:51,300 შეგიძლიათ დაიწყოთ გამოხატოს თავის ისევე, როგორც ეს გააკეთეთ კვირაში 0 521 00:30:51,300 --> 00:30:53,800 ძალიან ინტუიციურად გადმოიყვანა და ჩაშვების. 522 00:30:53,800 --> 00:30:58,950 >> ამრიგად, რომ განაცხადა, ტომი MacWilliam და რამდენიმე ახალი თავსატეხი ცალი ჩვენთვის ვებ. 523 00:30:58,950 --> 00:31:03,450 ყველა უფლება. ჩემი სახელი არის ტომი და მე ვაპირებ ვისაუბრებთ JavaScript. 524 00:31:03,450 --> 00:31:07,150 უბრალოდ შენიშვნა: მე ვარ აზრით, JavaScript არის საუკეთესო პროგრამირების ენა 525 00:31:07,150 --> 00:31:09,010 მთელს მთელს მსოფლიოში. 526 00:31:09,010 --> 00:31:11,940 არსებობს უამრავი ადამიანი, რომლებიც არ ეთანხმებიან, მაგრამ ეს მხოლოდ საოცარი. 527 00:31:11,940 --> 00:31:16,330 ერთხელ თქვენ დაბრუნდებით C, თუ დაწერა C მეორე კლასის ან სხვა ენებზე, 528 00:31:16,330 --> 00:31:19,780 უბრალოდ ნამდვილად იმედგაცრუებაა ყველა დაბალი დონის დეტალები თქვენ უნდა bogged ქვემოთ სისტემაში 529 00:31:19,780 --> 00:31:23,050 ასე რომ, თუ თქვენ ოდესმე გრძნობენ სამწუხარო, თუ როგორ შემაშფოთებელი C არის დაწერა, 530 00:31:23,050 --> 00:31:25,130 უბრალოდ დაბრუნდეს, წერენ რამდენიმე JavaScript. ეს Nirvana. 531 00:31:25,130 --> 00:31:27,980 თქვენ გრძნობენ ბევრად უკეთესი თქვენი ცუდი დღე. 532 00:31:27,980 --> 00:31:31,900 ბევრი Magic of JavaScript მოდის მისი უნარი მანიპულირება რამ 533 00:31:31,900 --> 00:31:33,730 , რომლებიც უკვე გვერდზე. 534 00:31:33,730 --> 00:31:38,520 როდესაც ჩვენ წერდა ჩვენი PHP სკრიპტები, ისინი შესრულდება სერვერზე, 535 00:31:38,520 --> 00:31:42,270 და საბოლოოდ რომ PHP Script ალბათ დაბეჭდავს ზოგიერთი HTML. 536 00:31:42,270 --> 00:31:45,860 რომ HTML გაეგზავნა კლიენტს და შემდეგ რომ იყო. 537 00:31:45,860 --> 00:31:50,180 თუ PHP სურდა დაამატოთ ღილაკს გვერდზე, მაგალითად, მას არ შეუძლია ნამდვილად გაგვაჩნია. 538 00:31:50,180 --> 00:31:54,350 ეს იქნებოდა გაწევა მთელი ახალი HTML ფაილი და გააგზავნეთ რომ ბრაუზერში. 539 00:31:54,350 --> 00:31:57,840 სალომე ჩვენ ვიცით, რომ ჩვენ შეგვიძლია განაახლოთ რამ ხოლო ისინი უკვე გვერდზე, 540 00:31:57,840 --> 00:32:00,840 და რადგან ამ ჩვენ შეუძლია გაცილებით უფრო მყისიერი კავშირი, 541 00:32:00,840 --> 00:32:06,150 რომელიც ნამდვილად გაუმჯობესება მომხმარებლის, გამოცდილება ჩვენს ვებგვერდზე. 542 00:32:06,150 --> 00:32:09,330 უბრალოდ სწრაფი recap of JavaScript selectors. 543 00:32:09,330 --> 00:32:11,590 ჩვენ ვიცით, რომ როდესაც ჩვენ ჩამოტვირთოთ HTML გვერდი, 544 00:32:11,590 --> 00:32:13,890 რომ იქნება წარმოდგენილი DOM. 545 00:32:13,890 --> 00:32:19,340 >> DOM გახსოვდეთ მხოლოდ ამ დიდ ხეს, სადაც ელემენტები დაკავშირებულია ამ დიდი იერარქია. 546 00:32:19,340 --> 00:32:21,810 როდესაც ვმუშაობდით მონაცემთა ბაზებთან წელს pset 7, 547 00:32:21,810 --> 00:32:26,280 ერთი პირველი რამ გვჭირდებოდა იცოდეს, თუ როგორ იყო შეკითხვის მონაცემთა ბაზაში. 548 00:32:26,280 --> 00:32:29,060 ჩვენ გვყავს ამ დიდი მომხმარებლებს მაგიდა, და ზოგჯერ ჩვენ უბრალოდ მინდა ვთქვა, 549 00:32:29,060 --> 00:32:33,260 "მე მხოლოდ მინდა ზოგიერთი მომხმარებლებს ემთხვევა ზოგიერთი მდგომარეობა." 550 00:32:33,260 --> 00:32:36,020 ანალოგიურად, როდესაც გვაქვს DOM გვჭირდება გზა querying იგი. 551 00:32:36,020 --> 00:32:39,490 ჩვენ გვჭირდება გარკვეული გზა სიტყვებით "მე მინდა ყველა ღილები, რომ ასე გამოიყურება 552 00:32:39,490 --> 00:32:41,860 "ან ყველა images on გვერდზე." 553 00:32:41,860 --> 00:32:44,330 და ამ selectors საშუალებას მოგვცემს გავაკეთოთ, რომ. 554 00:32:44,330 --> 00:32:45,690 ასე რომ მხოლოდ სწრაფი recap. 555 00:32:45,690 --> 00:32:50,770 ეს პირველი აქ, ამ # წარუდგინოს, რა არის ის, რომ აპირებს შეარჩიეთ? ვინმეს გახსოვთ? 556 00:32:50,770 --> 00:32:54,880 [Inaudible სტუდენტი საპასუხოდ] >> ჰო, ზუსტად. 557 00:32:54,880 --> 00:32:59,510 ეს აპირებს აირჩიეთ ელემენტს გვერდზე რომ აქვს პირადობის წარუდგინოს. 558 00:32:59,510 --> 00:33:03,470 და ისე, რომ hash tag ამბობს ამ selector აპირებს იმუშაოს პირადობის მოწმობები. 559 00:33:03,470 --> 00:33:07,630 როგორ შესახებ მეორე, ამ. ორიენტირებული, რა იქნება, რომ შეარჩიოთ? 560 00:33:11,360 --> 00:33:15,180 Yeah. >> [სტუდენტი] კლასი. >> ზუსტად. ეს არის აპირებს Select by კლასი. 561 00:33:15,180 --> 00:33:18,840 განსხვავება ID და კლასი აქ არის ზოგადად ID უნდა იყოს უნიკალური 562 00:33:18,840 --> 00:33:20,820 ფარგლებში რასაც სივრცეში თქვენ ძებნას დასრულდა. 563 00:33:20,820 --> 00:33:23,080 ასე რომ, თუ თქვენ ძებნას მეტი მთელი ვებ გვერდზე, 564 00:33:23,080 --> 00:33:27,740 ნამდვილად უნდა მხოლოდ 1 ელემენტს ერთად, რომ გარკვეული ID, ამიტომ ამ შემთხვევაში წარმოადგინოს. 565 00:33:27,740 --> 00:33:31,330 With კლასების, მეორეს მხრივ, რომ შეგვიძლია ზე მეტი 1 ელემენტს იმავე გვერდზე 566 00:33:31,330 --> 00:33:33,130 იმავე კლასში. 567 00:33:33,130 --> 00:33:36,580 ეს შეიძლება იყოს სასარგებლო ამბობდა მინდა შეარჩიეთ ყველაფერი რომ იმსჯელეს გვერდზე 568 00:33:36,580 --> 00:33:38,450 ვიდრე მხოლოდ 1 რამ. 569 00:33:38,450 --> 00:33:40,310 >> და ბოლოს, ამ ბოლო ერთი აქ არის ცოტა უფრო რთული, 570 00:33:40,310 --> 00:33:43,890 მაგრამ რა არის ეს აპირებს აირჩიოთ DOM? 571 00:33:46,650 --> 00:33:48,810 [Inaudible სტუდენტი საპასუხოდ] >> რა არის რომ? 572 00:33:48,810 --> 00:33:53,250 [სტუდენტი] ყველაფერი, რაც არის ტეგით. >> ჩვენ გვყავს 2 ნაწილად აქ. 573 00:33:53,250 --> 00:33:58,070 მეორე ნაწილი თქმას მინდა შეარჩიეთ ამ tags ერთად tag შემავალი, 574 00:33:58,070 --> 00:34:00,730 ამიტომ ნებისმიერი ელემენტი, რომელიც არის შეყვანის ტეგით. 575 00:34:00,730 --> 00:34:03,080 მაგრამ მე არ მინდა უბრალოდ აირჩიეთ ყველა საშუალებებით 576 00:34:03,080 --> 00:34:05,170 რადგან რაღაც submit ღილაკზე შეიძლება შეყვანის 577 00:34:05,170 --> 00:34:08,409 და რაღაც მსგავსი ტექსტი ყუთი შეიძლება შეყვანის. 578 00:34:08,409 --> 00:34:11,909 ასე რომ ამ კვადრატულ ფრჩხილებში მე ვამბობ, მე მხოლოდ უნდა აირჩიოთ ის ელემენტები 579 00:34:11,909 --> 00:34:14,110 , რომლებიც ტიპის ტექსტი. 580 00:34:14,110 --> 00:34:17,400 სადღაც ჩემი HTML tag მაქვს ატრიბუტი მოუწოდა ტიპის, 581 00:34:17,400 --> 00:34:19,750 და ღირებულება, რომ ატრიბუტი უნდა იყოს ტექსტი. 582 00:34:19,750 --> 00:34:21,340 მაშ როგორ შესახებ პირველი ნაწილი აქ? 583 00:34:21,340 --> 00:34:25,489 პირველი სიტყვა ამ selector ფორმაა მაშინ მაქვს სივრცე და შემდეგ ამ შეყვანის ნაწილი. 584 00:34:25,489 --> 00:34:29,620 რას გააკეთებს, აყენებს ფორმა თვალწინ იგი? 585 00:34:33,409 --> 00:34:35,860 ეს აპირებს ძირითადად ზღუდავს ჩვენს შეკითხვა. 586 00:34:35,860 --> 00:34:38,510 ეს შეიძლება იყოს საქმე, რომ ჩვენ გვაქვს გარკვეული საშუალებებით გვერდზე 587 00:34:38,510 --> 00:34:41,080 , რომლებიც არ არიან შთამომავლები ფორმით. 588 00:34:41,080 --> 00:34:46,150 რა ამ ყველაფერს გააკეთებს ეს იტყვის მე მხოლოდ მინდა შეყვანის Tags რომ აქვს სადღაც მათ ზემოთ 589 00:34:46,150 --> 00:34:49,030 ზოგიერთი მშობელი ელემენტის სახით. 590 00:34:49,030 --> 00:34:52,100 და ა.შ. ამ გზით ჩვენ შეგვიძლია ამ მეტი იერარქიული queries 591 00:34:52,100 --> 00:34:55,000 ასე რომ, ჩვენ არ უბრალოდ უნდა აირჩიოთ ყველაფერი შესატყვისი მოცემულ selector. 592 00:34:55,000 --> 00:35:00,760 ჩვენ შეგვიძლია სახის ლიმიტის ფარგლებში, რომ ხერხისთვის რომ რაღაც. 593 00:35:00,760 --> 00:35:04,000 ახლა რომ ჩვენ ვიცით, როგორ შეარჩიეთ ელემენტების გვერდზე, 594 00:35:04,000 --> 00:35:06,780 ვისაუბროთ bit შესახებ AJAX. 595 00:35:06,780 --> 00:35:12,270 AJAX არის ჯერ კიდევ ძალიან trendy აბრევიატურა რომ დგას ასინქრონული JavaScript და XML. 596 00:35:12,270 --> 00:35:15,640 ეს უბრალოდ ისე ხდება, რომ XML არის რამოდენიმე გზა წარმოადგენს მონაცემებს. 597 00:35:15,640 --> 00:35:20,920 >> ამ ტიპის დაკარგა პოპულარობა ახლახანს, ასე რომ X in AJAX არ გამოიყენება ყველა დროის. 598 00:35:20,920 --> 00:35:26,220 ძირითადად, რა AJAX საშუალებას გვაძლევს გავაკეთოთ არის მიიღოს HTTP მოითხოვს 599 00:35:26,220 --> 00:35:28,620 საწყისი კონტექსტში JavaScript. 600 00:35:28,620 --> 00:35:32,310 როდესაც ჩვენ ჩვენს ბრაუზერში და ჩვენ ნავიგაცია გარშემო გვერდებზე და ჩვენ დააჭერთ ბმულს, 601 00:35:32,310 --> 00:35:37,790 რა არის ჩვენი ბრაუზერის გაკეთებას აპირებს არის მიიღოს HTTP თხოვნით რასაც ლინკები ჩვენ მიჰყვეთ. 602 00:35:37,790 --> 00:35:41,670 მაგრამ ეს არ არის ყოველთვის იდეალური, რადგან თუ ეს საქმე, მაშინ როგორც დავით ამბობდა, 603 00:35:41,670 --> 00:35:45,220 ჩვენ ყოველთვის უნდა გააკეთოთ მომხმარებლებს დააჭირეთ წარმოადგინოს ღილაკს ან დაწკაპეთ ლინკები 604 00:35:45,220 --> 00:35:50,380 რათა არაფერი ხდება, რომ აპირებს ჩართვას HTTP მოთხოვნის. 605 00:35:50,380 --> 00:35:54,160 ამრიგად, AJAX შეიძლება გავაკეთოთ ეს წინადადებები სახელით JavaScript. 606 00:35:54,160 --> 00:35:57,020 ეს იმას ნიშნავს, როდესაც მომხმარებლის ურთიერთქმედებს ან არაფერი ხდება, 607 00:35:57,020 --> 00:36:01,780 ჩვენ შეგვიძლია რეალურად მიიღოს პროგრამული თხოვნით ზოგიერთი სხვა PHP ფაილი ჩვენს საიტზე 608 00:36:01,780 --> 00:36:06,280 ან სხვა რამეზე და მივიღოთ მონაცემები, რომ ფაილი SpitS გარეთ. 609 00:36:06,280 --> 00:36:09,860 მოდით შევხედოთ მაგალითს AJAX. 610 00:36:09,860 --> 00:36:16,140 ეს არის ჩვენი CS50 ფინანსთა გვერდი რომელთანაც იმედია რომელიმე ჩვენგანს იცნობს. 611 00:36:16,140 --> 00:36:21,790 თუ დავაკვირდებით HTML ამ გვერდზე, ჩვენ ვხედავთ, რომ მე დასძინა ცოტა რამ, 612 00:36:21,790 --> 00:36:23,820 რომელთაგან ერთი მე, ამ ფორმით ID. 613 00:36:23,820 --> 00:36:26,480 მე განაცხადა id = "ფორმულარის-ციტირებით". 614 00:36:26,480 --> 00:36:31,910 მე ვაკეთებ ამ მხოლოდ იმიტომ, რომ ის აპირებს ამ ცოტა ადვილია აირჩიოთ DOM 615 00:36:31,910 --> 00:36:35,090 მას შემდეგ, რაც მე შემიძლია მხოლოდ იმის ძალიან მარტივი შეკითხვა. 616 00:36:35,090 --> 00:36:38,960 რა მინდა აქ არის მინდა დაფიქსირება ზოგიერთი პრობლემა CS50 ფინანსთა. 617 00:36:38,960 --> 00:36:41,550 ასე რომ, თუ ჩვენ წასვლა finance.cs50.net, 618 00:36:41,550 --> 00:36:45,700 ყოველ ჯერზე მინდა კიდევ ციტირებით, უნდა დააჭიროთ ამ Get Quote ღილაკს, 619 00:36:45,700 --> 00:36:48,960 და რომ მიიღეთ Quote ღილაკს მაშინ იღებს ჩემთვის სხვა მთელ გვერდზე. 620 00:36:48,960 --> 00:36:52,400 და თუ მინდა კიდევ ციტირებით მე უნდა დაარტყა თავში ღილაკს და მერე აკრიფოთ ის, 621 00:36:52,400 --> 00:36:54,480 მივიღებ ციტირებით და მე მოხვდა თავში ღილაკს. 622 00:36:54,480 --> 00:36:56,840 ეს ნამდვილად არ არის საუკეთესო მომხმარებლის, გამოცდილება. 623 00:36:56,840 --> 00:37:01,570 ვის ნამდვილად გამოიყენოთ საიტი თუ ის, რომ ნელი მისაღებად საფონდო ფასები? 624 00:37:01,570 --> 00:37:05,630 მერე რა გვინდა საერთო AJAX არის ამოიღონ რომ ნაბიჯი აპირებს ცალკე გვერდზე 625 00:37:05,630 --> 00:37:08,410 რათა ნახოთ შედეგი. 626 00:37:08,410 --> 00:37:11,240 >> რა ჩვენ ნამდვილად მხოლოდ ითხოვს ის არის, რომ რეალურად მცირე ფასი, 627 00:37:11,240 --> 00:37:14,240 და ეს მხოლოდ მართლაც მცირე რაოდენობის მონაცემები. 628 00:37:14,240 --> 00:37:17,400 ასე რომ იქ არ არის საჭიროება ჩემთვის წასვლა კიდევ მთელი HTML გვერდი, 629 00:37:17,400 --> 00:37:20,670 download მთელი ახალი პარტია HTML, იქნებ ჩამოტვირთოთ კიდევ რამდენიმე სურათებით, 630 00:37:20,670 --> 00:37:24,410 ზოგიერთი სხვა CSS ფაილებს მხოლოდ ჩემთვის პასუხის გაცემა, რომ ძალიან მარტივი კითხვა 631 00:37:24,410 --> 00:37:27,810 თუ როგორ ღირს ამ საფონდო ღირებულება. 632 00:37:27,810 --> 00:37:31,000 Ajax-შეგვიძლია ეს ბევრი ადვილია. 633 00:37:31,000 --> 00:37:36,400 ჩვენ ვხედავთ ქვემოთ აქ რომ მე აკავშირებს in JavaScript ფაილი სახელად quote.js. 634 00:37:36,400 --> 00:37:40,140 მოდით რეალურად ქმნის, რომ ფაილი. არ არსებობს. 635 00:37:42,610 --> 00:37:45,860 ყველა ჩემი JavaScript ფაილები ვაპირებთ განთავსდება HTML 636 00:37:45,860 --> 00:37:47,630 ასე რომ ბრაუზერში შეიძლება ვებგვერდზე. 637 00:37:47,630 --> 00:37:50,330 მაშინ ჩვენ ცალკე დირექტორია აქ JavaScript, 638 00:37:50,330 --> 00:37:54,340 და ახლა აქ არის quote.js. 639 00:37:54,340 --> 00:38:00,930 ზედა ამ ფაილის ამ ამბობს აქ რომ მინდა დაველოდოთ მთელი გვერდი უნდა დატვირთული 640 00:38:00,930 --> 00:38:04,830 სანამ ვცდილობ არაფერი. რატომ არის, რომ აუცილებელია? 641 00:38:04,830 --> 00:38:08,650 თურმე შემდეგი რამ მე ვაპირებ აქ არის დაწყება ეძებს ელემენტს 642 00:38:08,650 --> 00:38:10,810 რომ სიას რამდენიმე მეთოდი. 643 00:38:10,810 --> 00:38:15,600 თუ ამ JavaScript ოდესმე შესრულებული წინაშე ამ ელემენტს დატვირთულია გვერდზე, 644 00:38:15,600 --> 00:38:17,820 მაშინ ყველაფერი ვცდილობ ამის გაკეთებას არ აპირებს იმუშაოს 645 00:38:17,820 --> 00:38:20,580 რადგან მე ვაპირებ ცდილობენ აირჩიეთ, რომ რაღაც არ არის იქ ჯერ არ მისულან. 646 00:38:20,580 --> 00:38:23,780 ასე რომ, ეს გამოდიან დაბრუნება ამბობს მინდა დაველოდოთ ყველაფერი დატვირთული 647 00:38:23,780 --> 00:38:28,030 ამიტომ ჩვენ გარანტირებულია, რომ ნებისმიერი ელემენტების ვეძებ რეალურად გვერდზე. 648 00:38:29,730 --> 00:38:34,310 ეს დოლარის ნიშანი აქ ნიშნავს მე გამოყენებით ბიბლიოთეკა მოუწოდა jQuery. 649 00:38:34,310 --> 00:38:38,570 ეს jQuery ბიბლიოთეკა საშუალებას გვაძლევს გამოვიყენოთ ეს selectors, რომ ჩვენ უბრალოდ შევხედე. 650 00:38:38,570 --> 00:38:44,010 იმით $ მაშინ გადადის, როგორც არგუმენტი ამ # ფორმის-ციტირებით, 651 00:38:44,010 --> 00:38:47,910 მე ახლა შერჩევისას, რომ ფორმა, რომ ჩვენ უბრალოდ აიღო შევხედოთ. 652 00:38:47,910 --> 00:38:52,290 ახლა წარმომადგენლობა რომ ფორმა მეხსიერების როგორღაც. 653 00:38:52,290 --> 00:38:56,760 >> ამ ობიექტის ახლა, ამ წარმომადგენლობის ფორმა, 654 00:38:56,760 --> 00:38:58,890 მე ახლა გამოყენებით ფუნქციის მოუწოდა. 655 00:38:58,890 --> 00:39:02,710 რა ამ ფუნქციის არ არის ის აპირებს ვანიჭებთ ღონისძიება დამმუშავებლის. 656 00:39:02,710 --> 00:39:06,310 ღონისძიება, რომ ჩვენ ვაპირებთ მოვუსმინოთ ამისთვის არის submit ღონისძიება. 657 00:39:06,310 --> 00:39:08,890 ასე რომ, როდესაც მომხმარებელი დააჭერს რომ Submit ღილაკს ან presses შეიყვანეთ, 658 00:39:08,890 --> 00:39:11,730 ეს ღონისძიება აპირებს ცეცხლი. 659 00:39:11,730 --> 00:39:16,390 By გადაუგდო ამ, არ შემიძლია ახლა override ნაგულისხმევი ქცევის ფორმა. 660 00:39:16,390 --> 00:39:19,770 ამის გარეშე JavaScript, ფორმა იქნებოდა წარუდგინოს რასაც PHP ფაილი 661 00:39:19,770 --> 00:39:22,110 ჩვენ გამოიყენება, რომ სამოქმედო ატრიბუტი. 662 00:39:22,110 --> 00:39:25,440 მაგრამ ამის ნაცვლად, მე ახლა ამბობს, დაველოდოთ, დაველოდოთ, დაველოდოთ, მე არ მინდა, მართლაც რომ. 663 00:39:25,440 --> 00:39:31,140 მინდა ამ მოხდეს სანამ წავიდეთ და ცდილობენ წარუდგინოს ზოგიერთი PHP ფაილი. 664 00:39:31,140 --> 00:39:32,870 ახლა რა გსურთ? 665 00:39:32,870 --> 00:39:39,270 ამ ეტაპზე მინდა AJAX როგორღაც ჩატვირთვა რა ფასი საფონდო არის. 666 00:39:39,270 --> 00:39:44,170 პირველი, რაც უნდა იცოდეს, თუ რა არის საფონდო მომხმარებლის ეძებს up. 667 00:39:44,170 --> 00:39:46,760 გავაკეთოთ, რომ მე ვაპირებ შეცვალოთ selector. 668 00:39:46,760 --> 00:39:49,020 ეს არის მესამე არჩევის ჩვენ შევხედე ადრე. 669 00:39:49,020 --> 00:39:54,460 ეს ამბობს, რომ მინდა დაიწყება off ეს ფორმა ელემენტს ერთად ID ფორმის-ციტირებით. 670 00:39:54,460 --> 00:39:58,440 მაშინ სადღაც შიგნით, რომ ფორმით არც შეყვანის ელემენტს 671 00:39:58,440 --> 00:40:01,270 რომ აქვს სახელწოდება სიმბოლო. 672 00:40:01,270 --> 00:40:05,460 თუ ჩვენ ვიხსენებთ ჩვენი HTML, დავინახეთ, რომ ჩვენ გვქონდა input [name = სიმბოლო]. 673 00:40:05,460 --> 00:40:12,380 ეს იმას ნიშნავს, რომ ეს ხდება ასარჩევად რომ ტექსტი ყუთი რომელშიც მომხმარებელია აკრეფით შევიდა. 674 00:40:12,380 --> 00:40:13,870 სწორედ ლამაზი. ჩვენ გვყავს ტექსტი ყუთში. 675 00:40:13,870 --> 00:40:17,360 ახლა ჩვენ უბრალოდ უნდა იცოდეს, რა არის შიგნით მას. 676 00:40:17,360 --> 00:40:20,290 გავაკეთოთ, რომ ჩვენ შეგვიძლია მოვუწოდებთ ეს მეთოდი აქ, ამ. Val, 677 00:40:20,290 --> 00:40:23,240 და ეს ამბობს მე ვიცი რა ტექსტი ყუთი გაქვთ. 678 00:40:23,240 --> 00:40:28,160 მინდა მითხრათ რა არის მომხმარებლის აკრეფილი შევიდა, რომ ტექსტი ყუთში. 679 00:40:28,160 --> 00:40:34,440 ახლა ჩვენ გვაქვს სიმებიანი მოუწოდა სიმბოლო იმისა, რომ უდრის რასაც მომხმარებლის აკრეფილი შემოსული 680 00:40:34,440 --> 00:40:39,820 სწორედ ლამაზი. ჩვენ შეგვიძლია გამოვიყენოთ, რომ string არის, რომ ჩვენი თხოვნით. 681 00:40:39,820 --> 00:40:42,450 ეს არის ახალი ფუნქცია აქ, ამ $, 682 00:40:42,450 --> 00:40:44,900 გარდა ჩვენ აღარ იქნება შერჩევის ელემენტები, 683 00:40:44,900 --> 00:40:48,910 ჩვენ ვაპირებთ იყოს მოუწოდებდა სხვადასხვა ფუნქცია, რომელიც უზრუნველყოფილია ჩვენთვის მიერ jQuery. 684 00:40:48,910 --> 00:40:54,810 ეს AJAX ფუნქცია არის ის, რაც სინამდვილეში ვაპირებთ ამ HTTP მოთხოვნის. 685 00:40:54,810 --> 00:40:57,000 ამიტომ, ჩვენ უნდა ვუთხრათ მას რამდენიმე რამ. 686 00:40:57,000 --> 00:41:01,410 პირველი, რაც უნდა ვუთხრათ ამ ფუნქციის სადაც მინდა თხოვნით წასვლა. 687 00:41:01,410 --> 00:41:08,910 სადღაც ჩემი პროექტი მაქვს ამ ფაილის შიგნით HTML დირექტორია მოუწოდა quote.php. 688 00:41:08,910 --> 00:41:15,150 მე შეგიძლიათ თქვათ ამ ფაილის, დავინახეთ, ისევე, როგორც ამ, თუ მივდივარ localhost / quote.php. 689 00:41:15,150 --> 00:41:20,450 >> მინდა ჩემი JavaScript რათა თხოვნით, რომ გვერდზე. 690 00:41:20,450 --> 00:41:22,920 რა ტიპის მოთხოვნით არის? 691 00:41:22,920 --> 00:41:27,210 ჩვენ ვნახეთ მანამდე ფორმა აქვს, რომ მეთოდი = "გამოხმაურება" ატრიბუტი, 692 00:41:27,210 --> 00:41:29,270 და ეს ნიშნავს, რომ ის აპირებს POST მოთხოვნით, 693 00:41:29,270 --> 00:41:32,630 ამიტომ არ აპირებს დააყენოს არაფერი URL, ვიდრე მიღება მოთხოვნით, 694 00:41:32,630 --> 00:41:36,860 რომელიც დიდი სიამოვნებით იყოს ნასროლი, თუ ჩვენ მხოლოდ შემოწმდა გვერდი ბრაუზერში, მაგალითად. 695 00:41:36,860 --> 00:41:41,260 ახლა ჩვენ განაცხადა მინდა HTTP POST მოთხოვნით 696 00:41:41,260 --> 00:41:44,840 დან გვერდზე მდებარე quote.php. 697 00:41:44,840 --> 00:41:51,490 როდესაც ჩვენ წარმოადგინოს ფორმა, გვახსოვს ჩვენ შეგვიძლია შედიხართ შეყვანის ელემენტების შიგნით რომ ფორმა 698 00:41:51,490 --> 00:41:54,430 რომ $ _POST ცვლადი. 699 00:41:54,430 --> 00:41:58,710 ამ დრომდე ამბავი ჩვენ რეალურად არ გააგზავნა გასწვრივ ნებისმიერი მონაცემების ამჟამად. 700 00:41:58,710 --> 00:42:00,640 ჩვენ უბრალოდ განაცხადა ჩვენ მიღების AJAX მოთხოვნით 701 00:42:00,640 --> 00:42:03,200 და აქ გაცნობის თხოვნით ჩვენ მიღების. 702 00:42:03,200 --> 00:42:07,090 ახლა ჩვენ გვჭირდება რეალურად გაგზავნას ზოგიერთი მონაცემების გვერდზე. 703 00:42:07,090 --> 00:42:10,930 გავაკეთოთ, რომ ჩვენ შეგვიძლია გამოვიყენოთ ეს უძრავი მოუწოდა მონაცემები. 704 00:42:10,930 --> 00:42:14,950 ღირებულება ეს უძრავი ქონება ფაქტობრივად ასოციაციურ მასივში. 705 00:42:14,950 --> 00:42:19,390 მიზეზი არის ის საშუალებას გვაძლევს გაგზავნას მხოლოდ 1 ცალი მონაცემები. 706 00:42:19,390 --> 00:42:24,750 ამიტომ ჩვენ გვაქვს ამ Curly braces აქ წყობილი შიგნით ამ სხვა Curly braces. 707 00:42:24,750 --> 00:42:29,680 გასაღებები ამ ასოციაციურ კოლექტორები ვაპირებთ იყოს იგივე 708 00:42:29,680 --> 00:42:32,630 როგორც იმ სახელი ანიჭებს ჩვენს ფორმით ელემენტებს. 709 00:42:32,630 --> 00:42:35,740 ეს იმას ნიშნავს, რომ თუ მე ვგზავნი გასწვრივ გასაღები სიმბოლო, 710 00:42:35,740 --> 00:42:41,870 ეს ნიშნავს, რომ ჩემი PHP გვერდზე შეუძლიათ ამ მონაცემების $ _POST [სიმბოლო] 711 00:42:41,870 --> 00:42:44,640 უბრალოდ ისე, როგორც ადრე, როცა ჩვენ წარდგენის ფორმით. 712 00:42:44,640 --> 00:42:47,090 და ახლა ფაქტობრივი მონაცემები გვინდა გაგზავნას 713 00:42:47,090 --> 00:42:50,790 იქნება ღირებულება შიგნით ამ ასოციაციურ მასივში. 714 00:42:50,790 --> 00:42:54,070 >> ჩვენ ინახება ამ ტექსტის ცვლადში სიმბოლო, 715 00:42:54,070 --> 00:42:57,380 და ა.შ. ჩვენ გაგზავნის გასწვრივ არის გასაღები სიმბოლოს 716 00:42:57,380 --> 00:43:01,380 და ღირებულება რასაც მომხმარებლის აკრეფილი შემოსული 717 00:43:01,380 --> 00:43:06,270 ახლა ჩვენ ეს HTTP მოთხოვნის, ჩვენი PHP ფაილის გაშვებისას, 718 00:43:06,270 --> 00:43:11,480 და ის აპირებს გაგზავნას ზოგიერთი მონაცემები ახლა კლიენტს რომ ეს მოთხოვნა. 719 00:43:11,480 --> 00:43:15,220 ახლა ჩვენ უნდა ვუპასუხოთ რასაც სერვერზე განაცხადა ჩვენთან. 720 00:43:15,220 --> 00:43:20,180 გავაკეთოთ, რომ ჩვენ გვაქვს ამ ბოლო ქონება აქ მოუწოდა წარმატება. 721 00:43:20,180 --> 00:43:24,240 ღირებულება ამ წარმატების გასაღები ფაქტობრივად იქნება ფუნქცია, 722 00:43:24,240 --> 00:43:26,910 და ეს არის ერთ ერთი მართლა მაგარი რამ რომ თქვენ JavaScript. 723 00:43:26,910 --> 00:43:31,720 არა მარტო შეგიძლიათ აქვს ints ან მასივები, როგორც ღირებულების შიგნით ასოციაციურ მასივში, 724 00:43:31,720 --> 00:43:34,170 ჩვენ შეგვიძლია ასევე აქვს ფუნქცია. 725 00:43:34,170 --> 00:43:36,380 ასე განაცხადა წარმატება, ეს არის ჩემი გასაღები. 726 00:43:36,380 --> 00:43:38,830 მსხვილი ნაწლავის ამბობს აქ მოდის ღირებულება, 727 00:43:38,830 --> 00:43:41,810 და ახლა ღირებულება ეს არის რეალურად ფუნქცია. 728 00:43:41,810 --> 00:43:44,460 ამიტომ ჩვენ არ უნდა მივცეთ ამ ფუნქციის სახელი თავისთავად. 729 00:43:44,460 --> 00:43:48,820 ჩვენ შეგვიძლია მხოლოდ ამბობენ, რომ ეს იქნება გარკვეული ფუნქცია. ის აპირებს 1 არგუმენტი. 730 00:43:48,820 --> 00:43:51,190 არგუმენტი ამ ფუნქციის იქნება 731 00:43:51,190 --> 00:43:54,460 რასაც სერვერზე გამოგვიგზავნეს უკან თხოვნით. 732 00:43:54,460 --> 00:43:57,750 ისევე, როდესაც ჩვენი ბრაუზერის ხდის მოთხოვნით, სერვერზე აგზავნის რაღაც უკან 733 00:43:57,750 --> 00:43:59,060 და ბრაუზერი აჩვენებს მას, 734 00:43:59,060 --> 00:44:03,030 კონტექსტში AJAX ჩვენ უბრალოდ გააკეთა თხოვნით, სერვერზე იგზავნება რაღაც თავში, 735 00:44:03,030 --> 00:44:07,110 და ახლა ჩვენ რომ წარმოდგენილია როგორც სიმებიანი. 736 00:44:07,110 --> 00:44:11,280 ერთად რომ სიმებიანი მინდა ისევე არიან, რომ გვერდზე. 737 00:44:11,280 --> 00:44:14,040 გავაკეთოთ, რომ მე ვაპირებ აქვს ერთი ბოლო selector. 738 00:44:14,040 --> 00:44:17,570 მინდა აირჩიეთ ელემენტს ერთად ID ფასი. 739 00:44:17,570 --> 00:44:20,710 ეს არის მხოლოდ ცარიელი div რომ მე შექმნილ გვერდზე, 740 00:44:20,710 --> 00:44:26,640 და მინდა მითითებული შინაარსი რომ div იყოს რასაც სერვერზე გამოგვიგზავნეს უკან. 741 00:44:26,640 --> 00:44:30,280 მე რეალურად შეცვლილია quote.php bit. 742 00:44:30,280 --> 00:44:33,460 >> იმის ნაცვლად, რომ მოუწოდებდა Render და გაწევის გარკვეული გვერდზე, 743 00:44:33,460 --> 00:44:38,100 quote.php ახლა უბრალოდ აპირებს ამობეჭდოთ ღირებულების საფონდო როგორც სიმებიანი. 744 00:44:38,100 --> 00:44:41,880 ასე რომ, თუ თქვენ რეალურად ეწვევა გვერდზე, თქვენ უბრალოდ ვხედავ, რომ პატარა სიმებიანი 745 00:44:41,880 --> 00:44:45,030 ნებისმიერი საფონდო ფასი არის. 746 00:44:45,030 --> 00:44:50,170 ერთი ბოლო რამ უნდა გავაკეთოთ აქ არის უბრალოდ დარწმუნდით ამ ფუნქცია დააბრუნებს false. 747 00:44:50,170 --> 00:44:53,560 რა ამ ამბობს, რომ თუ მე შიგნით ღონისძიება დამმუშავებლის 748 00:44:53,560 --> 00:44:57,300 და რომ ღონისძიება დამმუშავებლის დააბრუნებს false დაბრუნების ნაცვლად ჭეშმარიტი, 749 00:44:57,300 --> 00:45:01,510 ეს იმას ნიშნავს რომ არ მინდა ორიგინალური ღონისძიება ცეცხლი. 750 00:45:01,510 --> 00:45:05,270 ამ შემთხვევაში, თუ ჩვენ არ JavaScript და ჩვენ წარმოდგენილი ფორმით, 751 00:45:05,270 --> 00:45:08,280 ჩვენი ბრაუზერში აპირებს ამბობენ, "მე ვაპირებ გაგზავნას, რომ მონაცემები გასწვრივ," 752 00:45:08,280 --> 00:45:10,130 და ისინი აპირებენ გამოგიგზავნით სხვა გვერდზე. 753 00:45:10,130 --> 00:45:14,360 იმიტომ, რომ ჩვენ იყენებთ AJAX არის, იქ არ არის საჭიროება იმისა, რომ გაგზავნოს მომხმარებელს სხვა გვერდი. 754 00:45:14,360 --> 00:45:17,920 ჩვენ უბრალოდ აპირებს ცარიელია შედეგი დინამიურად ამ იმავე გვერდზე. 755 00:45:17,920 --> 00:45:21,460 ჩვენ ნამდვილად არ მინდა მათ წასვლა არსად და მინდა დარჩენა იმავე გვერდზე. 756 00:45:21,460 --> 00:45:27,060 ამიტომ მიერ დაბრუნების ცრუ, ჩვენ უზრუნველყოს, რომ ფორმა არ აკეთებს, რომ ჩვენთვის. 757 00:45:27,060 --> 00:45:31,170 მოდით შევხედოთ რა ამ რეალურად გამოიყურება. 758 00:45:31,170 --> 00:45:34,180 ჩვენი ციტირებით გვერდზე გამოიყურება იგივე. 759 00:45:34,180 --> 00:45:37,240 ნება მომეცით დახევის up ინსპექტორი ქვემოთ აქ ასე ვხედავთ რა ხდება. 760 00:45:37,240 --> 00:45:40,270 ჩადება ეს პატარა ნაკლები უზარმაზარი. 761 00:45:40,270 --> 00:45:44,590 დამახსოვრება, თუ ჩვენ გახსენით ქსელი tab, ეს არის სადაც ჩვენ ვხედავთ ყველა HTTP მოითხოვს 762 00:45:44,590 --> 00:45:47,570 რომ ხდება გვერდზე. 763 00:45:47,570 --> 00:45:52,890 >> იყიდება სიმბოლო ნება მომეცით აკრიფოთ aapl და დააჭირეთ Get Quote. 764 00:45:52,890 --> 00:45:56,720 ახლა ჩვენ ვნახეთ, რომ წილი Apple ღირს გარკვეული რაოდენობის დოლარი 765 00:45:56,720 --> 00:46:00,410 უბრალოდ გამოჩნდა გვერდზე, მაგრამ URL არ შეცვლილა საერთოდ. 766 00:46:00,410 --> 00:46:04,570 ფაქტობრივად, აქ არის HTTP მოთხოვნის, რომ ჩვენ უბრალოდ გააკეთა. 767 00:46:04,570 --> 00:46:09,980 ჩვენ მივიღეთ POST თხოვნით quote.php. რომ აზრი. 768 00:46:09,980 --> 00:46:12,800 ეს არის ის რასაც სერვერზე გამოგვიგზავნეს უკან. 769 00:46:12,800 --> 00:46:16,320 ეს აღარ ამ გიგანტური HTML დოკუმენტი სურათები და რამ, როგორიცაა, რომ 770 00:46:16,320 --> 00:46:20,920 უბრალოდ ტექსტი, და შემდეგ ჩვენ უბრალოდ ნაჩვენები ტექსტი. 771 00:46:20,920 --> 00:46:26,290 თუ ჩვენ დავუბრუნდებით ზედა და ვხედავ, რაც ჩვენ რეალურად გაგზავნილი შიგნით ამ HTTP მოთხოვნის, 772 00:46:26,290 --> 00:46:33,950 ვხედავთ ქვემოთ აქ რომ ჩვენ გაგზავნილი გასწვრივ გასაღები სიმბოლო და ღირებულება aapl, 773 00:46:33,950 --> 00:46:36,430 რაც მომხმარებლის აკრეფილი შემოსული 774 00:46:36,430 --> 00:46:39,230 ეს არის ლამაზი, მაგრამ მაინც პატარა უსიამოვნოს. 775 00:46:39,230 --> 00:46:42,490 კიდევ მაქვს დააჭირეთ ღილაკს რომ მიიღოთ საფონდო ციტირებით. 776 00:46:42,490 --> 00:46:45,880 ჩვენ დაკავებული ხალხი და ჩვენ არ გვაქვს დრო, რათა დააჭირეთ ღილაკებს. 777 00:46:45,880 --> 00:46:49,910 Google მიხვდა ამ ცოტა ხნის წინ, როდესაც ისინი განხორციელებული Google მომენტალური. 778 00:46:49,910 --> 00:46:53,590 რა Google მომენტალური არ არის, როგორც თქვენ აკრეფით უბრალოდ იწყება შედეგები თქვენთვის 779 00:46:53,590 --> 00:46:56,520 ასე რომ თქვენ არ უნდა ფიქრი კი დაწკაპვით ძებნა. 780 00:46:56,520 --> 00:46:58,730 სინამდვილეში, გართობა ამბავი დაკავშირებული, რომ. 781 00:46:58,730 --> 00:47:01,100 ერთხელ Google მომენტალური გამოვიდა, ხალხი მოსწონს, "Whoa, ეს არის სუპერ საოცარი". 782 00:47:01,100 --> 00:47:02,540 "ეს იმდენად cool." 783 00:47:02,540 --> 00:47:05,950 და სტუდენტი ქვემოთ სტენფორდის რომელიც 19 დროს 784 00:47:05,950 --> 00:47:09,000 ეს საიტი მოუწოდა YouTube მომენტალური. 785 00:47:09,000 --> 00:47:13,170 ყველა YouTube მომენტალური ამჯამად ეფექტურად ძებნა Youtube მყისიერად. 786 00:47:13,170 --> 00:47:17,020 ასე რომ, ვიდრე მქონე წასვლა YouTube.com და მოხვდა ძებნა, 787 00:47:17,020 --> 00:47:21,650 როცა დაიწყება აკრეფით შევიდა YouTube მომენტალური რაღაც CS50, 788 00:47:21,650 --> 00:47:25,320 ჩვენ ვხედავდით, რომ ის ცდილობს on ნელი ინტერნეტი 789 00:47:25,320 --> 00:47:28,500 populate ამ შედეგების ცხოვრობენ. 790 00:47:28,500 --> 00:47:35,590 გავაკეთოთ, რომ ჩვენ შეგვიძლია რეალურად გააკეთებს ძალიან მარტივი მოდიფიკაცია ჩვენი quote.js ფაილი. 791 00:47:35,590 --> 00:47:40,900 ამ დროისათვის ჩვენ ვერ ვამაგრებ ამ მოვლენას, როდესაც ფორმით წარედგინება. 792 00:47:40,900 --> 00:47:43,760 ჩვენ ნამდვილად არ გვსურს მომხმარებლის წარმოადგინოს, რომ ფორმა აღარ, 793 00:47:43,760 --> 00:47:48,570 მოდით ნაცვლად ცეცხლი ეს ღონისძიება ყოველ ჯერზე მომხმარებლის presses გასაღები. 794 00:47:48,570 --> 00:47:53,200 გავაკეთოთ, რომ მოდით პირველი ცვლილება მოვლენა წარუდგინოს keyup. 795 00:47:53,200 --> 00:47:55,740 ეს იმას ნიშნავს, რომ ვიდრე ელოდება ფორმით წარუდგინოს, 796 00:47:55,740 --> 00:47:58,490 ყოველ ჯერზე გასაღები არის დაპრესილი, რაღაც მოხდება. 797 00:47:58,490 --> 00:48:02,030 ეს აღარ აზრი დაურთოს ამ keyup ღონისძიება მთელი ფორმით. 798 00:48:02,030 --> 00:48:05,080 ჩვენ ნამდვილად მხოლოდ აინტერესებს, რომ საძიებო ველში. 799 00:48:05,080 --> 00:48:09,320 >> ასარჩევად, რომ ახლა, ჩვენ შეგვიძლია შევცვალოთ ეს უნდა იყოს, ვიდრე ფორმა-ციტირებით, 800 00:48:09,320 --> 00:48:14,220 ფორმა-ციტირებით და გვექნება შეყვანის (აკრიფოთ = ტექსტი) ან შეიძლება ითქვას (name = სიმბოლო) - 801 00:48:14,220 --> 00:48:16,420 რასაც გვინდა. 802 00:48:16,420 --> 00:48:18,650 ახლა ერთი რამ ბოლო ჩვენ უნდა გავაკეთოთ. 803 00:48:18,650 --> 00:48:21,190 დამახსოვრება ქვემოთ აქ როდესაც ჩვენ განაცხადა დაბრუნების ცრუ 804 00:48:21,190 --> 00:48:24,370 განვაცხადეთ, არ მინდა, რომ რა ღონისძიება ცეცხლი. 805 00:48:24,370 --> 00:48:26,390 მაგრამ ეს ასე ხდება, რომ თუ ჩვენ გამორთოთ, რომ ახლა, 806 00:48:26,390 --> 00:48:29,660 რაც ჩვენ აკრიფოთ არ აპირებს გამოჩნდება ბრაუზერის უქმნით 807 00:48:29,660 --> 00:48:33,000 რადგან ეს იქნება ნაგულისხმევი ქცევის აკრეფით შევიდა ტექსტი ყუთში. 808 00:48:33,000 --> 00:48:38,660 ჩვენ აღარ გვინდა override რომ, მოდით განადგურება ამ დაბრუნების ცრუ. 809 00:48:38,660 --> 00:48:44,800 თუ ჩვენ გადარჩენა რომ და განაახლეთ გვერდი, ახლა, როცა დავიწყო აკრეფით aapl 810 00:48:44,800 --> 00:48:50,160 თქვენ ნახავთ, რომ საფონდო ფასი ბოლოში აქ დასრულების ავტომატურად. 811 00:48:50,160 --> 00:48:53,150 ასე რომ აქ არის CS50 ფინანსთა მომენტალური. 812 00:48:53,150 --> 00:48:55,860 სინამდვილეში გართობა ამბავი YouTube მომენტალური 813 00:48:55,860 --> 00:48:59,420 არის ის, რომ სტუდენტი მხოლოდ სახის წერდა, როგორც 1-ღამის პროექტი, 814 00:48:59,420 --> 00:49:03,800 და მეორე დღეს მას შესთავაზა სამუშაო მიერ YouTube აღმასრულებელი დირექტორი. 815 00:49:03,800 --> 00:49:10,610 ასე რომ, როგორც მარტივი, როგორც რომ, თქვენ CS50 სტუდენტები, თქვენი საბოლოო პროექტების შეუძლიათ მიიღონ თქვენ სამსახურიდან, YouTube. 816 00:49:10,610 --> 00:49:14,720 რაღაც რომ არის მართლაც მაგარი იდეა საბოლოო პროექტი, არა? 817 00:49:14,720 --> 00:49:18,170 ჩვენ გვქონდა არსებული ფუნქციონალური, რომ გვინდოდა ინტეგრაციისაკენ. 818 00:49:18,170 --> 00:49:20,330 ჩვენ გააუმჯობესოს მომხმარებლის, გამოცდილება ცოტა, 819 00:49:20,330 --> 00:49:24,340 და მოულოდნელად ძებნას რაღაც YouTube მომენტალური შეიძლება იყოს ბევრი ადვილია 820 00:49:24,340 --> 00:49:27,290 ვიდრე ეძებს ის რეგულარულად YouTube. 821 00:49:27,290 --> 00:49:30,790 ასე რომ AJAX in მოკლედ. 822 00:49:30,790 --> 00:49:34,860 >> In მაგალითები, რომ ჯოზეფ ჰქონდა გვიჩვენებს, დავინახეთ ბევრი autocompletes, 823 00:49:34,860 --> 00:49:39,250 და იმ autocompletes მართლაც, მართლაც მოსახერხებელი რადგან ჩვენ არ უნდა გვახსოვდეს - 824 00:49:39,250 --> 00:49:41,770 მაგალითად, თუ თქვენ არ მახსოვს საფონდო ფასი Apple 825 00:49:41,770 --> 00:49:45,110 და ჩვენ უბრალოდ ვიცით, რომ ეს AA რაღაც, ვიდრე უბრალოდ ვამბობ, რომ ჩემთვის, 826 00:49:45,110 --> 00:49:48,740 "წილი ამ რამ ღირს ამ დიდი ფული," 827 00:49:48,740 --> 00:49:52,540 მინდა სახის აინტერესებს, როგორი აქციების იწყება AA. 828 00:49:52,540 --> 00:49:58,340 ჩვენ შეგვიძლია გავაკეთოთ, რომ მართლაც ლამაზად ერთად ჩატვირთვის ბიბლიოთეკა, რომელიც უკვე შედის 829 00:49:58,340 --> 00:50:01,380 შიგნით CS50 ფინანსთა. 830 00:50:01,380 --> 00:50:09,390 თუ თქვენ ამუშავება აქ JavaScript tag და გადახვევა ქვემოთ Typeahead, 831 00:50:09,390 --> 00:50:13,730 ეს მხოლოდ ლამაზი მოდული რომელიც ვინმეს უკვე წერდა ჩვენთვის, 832 00:50:13,730 --> 00:50:16,980 და ჩვენ შეგვიძლია მარტივად გამოიყენოთ მისი ფუნქციონალურობა მოსწონს ეს. 833 00:50:16,980 --> 00:50:21,410 მე აკრეფილი და აქ არის სია ზოგიერთი აცხადებს, რომ იწყება ა 834 00:50:21,410 --> 00:50:25,360 ვთქვათ, რომ ვფიქრობ, ეს არის ნამდვილად მაგარი და დროა ჩემთვის მოიცავს ამ ჩემს გვერდზე. 835 00:50:25,360 --> 00:50:28,300 თურმე ეს ნამდვილად, ნამდვილად მარტივი. 836 00:50:28,300 --> 00:50:32,810 მოდით ნახტომი მეტი აქ quote3.js. 837 00:50:34,890 --> 00:50:37,380 ჩემი ფაილი გამოიყურება ცოტა განსხვავებული. 838 00:50:37,380 --> 00:50:39,700 Down აქ ყველა ჩემი AJAX პერსონალის იგივეა. 839 00:50:39,700 --> 00:50:43,170 მინდა ჩატვირთვა საფონდო მონაცემები გარეშე წასვლა სხვა გვერდი. 840 00:50:43,170 --> 00:50:46,220 მაგრამ ახლა მინდა ამ მოდულის. 841 00:50:46,220 --> 00:50:51,020 ჩატვირთვის დოკუმენტაცია დიდი მაგალითები, თუ როგორ ზუსტად შემიძლია, რომ. 842 00:50:51,020 --> 00:50:54,350 მინდა ვთქვა, "აი შეყვანის რომ მინდა თვითდასრულება შესახებ," 843 00:50:54,350 --> 00:50:56,640 და მე ვაპირებ მოვუწოდო ამ ფუნქციის მოუწოდა typeahead, 844 00:50:56,640 --> 00:50:59,730 და რომ აპირებს გაუმკლავდეს ყველა Typeahead პერსონალის ჩვენთვის. 845 00:50:59,730 --> 00:51:02,090 ეს იქნება ინიციალიზაცია სიაში, ის ყველაფერს გააკეთებს, ყველა ჩვენი ფილტრაცია. 846 00:51:02,090 --> 00:51:06,680 ერთადერთი, რაც მას აინტერესებს არის თუ რა მონაცემები ჩვენ autocompleting შესახებ. 847 00:51:06,680 --> 00:51:10,480 ასე რომ გავარკვიე ამ გასაღები მხოლოდ დოკუმენტაციის კითხვის და ეძებს მაგალითები. 848 00:51:10,480 --> 00:51:14,150 თუ მე ეს გასაღები წყაროს, ღირებულების ამ გასაღები 849 00:51:14,150 --> 00:51:17,770 არის რამოდენიმე მასივი რამ მინდა თვითდასრულება შესახებ. 850 00:51:17,770 --> 00:51:20,180 ეს ცვლადი მოვიდა ამ სხვა ფაილი. 851 00:51:20,180 --> 00:51:23,400 მე გახსენით symbols.js. 852 00:51:23,400 --> 00:51:27,980 >> ეს symbols.js მხოლოდ ამ მართლაც, მართლაც დიდი მასივი შეიცავს სტრიქონები 853 00:51:27,980 --> 00:51:32,080 ყველა ამ საფონდო სიმბოლიკა საწყისი NASDAQ. 854 00:51:32,080 --> 00:51:42,190 თუკი მინდა ხტომა თავში HTML, ასე jharvard, vhosts, globalhost, HTML, თარგები, 855 00:51:42,190 --> 00:51:45,820 quote_form. 856 00:51:45,820 --> 00:51:50,910 მას შემდეგ ახლა მოუწოდა quote3.js, ნება მომეცით შეცვლის JavaScript ფაილის მე მათ შორის აქ. 857 00:51:50,910 --> 00:51:55,110 ახლა quote3.js, ამიტომ მე ვაპირებ ჩატვირთვა რომ ცალკე JavaScript ფაილი, 858 00:51:55,110 --> 00:51:57,910 ერთი რომ აქვს, რომ ჩატვირთვის თვითდასრულება. 859 00:51:57,910 --> 00:52:04,430 ახლა, როდესაც მე ხტომა უკან ბრაუზერში, განაახლეთ გვერდი და დავიწყო აკრეფით AA, 860 00:52:04,430 --> 00:52:06,880 იქ ჩემი თვითდასრულება. და ეს იყო მართლაც იმდენად მარტივია, რომ. 861 00:52:06,880 --> 00:52:11,400 მე მქონდა 1 ხაზი კოდი, რომ უბრალოდ თქვა: "აი, რამ მინდა თვითდასრულება შესახებ," 862 00:52:11,400 --> 00:52:16,590 და მოულოდნელად მაქვს ამ მართლაც, მართლაც ლამაზი ფუნქციონალური არა მთელი ბევრი ძალისხმევას საერთოდ. 863 00:52:16,590 --> 00:52:19,810 როგორც თქვენ განვითარებადი საიტებზე და განსაკუთრებით წინა მხარე ბოლომდე რამ, 864 00:52:19,810 --> 00:52:21,840 თქვენ აპირებს იპოვოს ეს საქმე უამრავი. 865 00:52:21,840 --> 00:52:25,700 ბევრია, ბევრი, ბევრი ნამდვილად ზემოთ უფასო ბიბლიოთეკების არსებობს 866 00:52:25,700 --> 00:52:30,190 რომ იგი სუპერ ადვილია რამ მოსწონს ეს. 867 00:52:30,190 --> 00:52:37,230 ვინმეს ჰგონია, ნებისმიერი ნაკლი უბრალოდ autocompleting ამ დიდი სიმბოლოების სია? 868 00:52:37,230 --> 00:52:41,580 რა შეიძლება იყოს ის, რაც არ საუკეთესო ამ მიდგომას? 869 00:52:42,790 --> 00:52:45,960 Yeah. >> [სტუდენტი] დრო, თუ თქვენ გაქვთ ბევრი [inaudible] 870 00:52:45,960 --> 00:52:50,420 Yeah. ახლავე ჩვენ ჩამოტვირთვის ამ უზარმაზარ JavaScript ფაილის და იქ უამრავი სიმბოლოს. 871 00:52:50,420 --> 00:52:54,360 და თუ ჩვენ გვაქვს ტონა პერსონალი, ეს შეიძლება სახის გაზრდის შეყოვნება არა მხოლოდ ძებნას 872 00:52:54,360 --> 00:52:56,600 არამედ ჩამოტვირთვის ფაქტობრივი ფაილი. 873 00:52:56,600 --> 00:52:58,670 დიდი. არაფერი? 874 00:53:01,950 --> 00:53:05,280 ახლავე არ რეალური გრძნობა შესაბამისობა. 875 00:53:05,280 --> 00:53:08,190 თუ მე აკრიფოთ, კომპანიები რომ ნახოთ აქ 876 00:53:08,190 --> 00:53:11,220 შეიძლება არ იყოს ყველაზე პოპულარული კომპანიების იწყება ა 877 00:53:11,220 --> 00:53:17,130 >> აზრი მისაღებად Apple, იგი შესაძლოა კიდევ რამდენიმე პერსონაჟს იპოვნეთ რასაც ვეძებ. 878 00:53:17,130 --> 00:53:20,420 ეს თვითდასრულება ამჯამად არ აქვს ამ გრძნობის მნიშვნელობას. 879 00:53:20,420 --> 00:53:24,400 უბრალოდ აპირებს ამბობენ, "ყველაფერი, რაც სიას მე ვაპირებ არიან." 880 00:53:24,400 --> 00:53:30,510 იმის ნაცვლად, რომ, მინდა როგორმე ინტეგრირება ზოგიერთ შესაბამისობა ჩემს ეძებს. 881 00:53:30,510 --> 00:53:36,440 თუ მე მეტი აქ Yahoo! Finance, finance.yahoo.com, 882 00:53:36,440 --> 00:53:42,100 თუ ვცდილობ სიმბოლოების შესახებ Yahoo! ფინანსთა გვერდი 883 00:53:42,100 --> 00:53:52,310 და დავიწყო აკრეფით goog, მაქვს ამ ლამაზი ლენტა რამ. 884 00:53:52,310 --> 00:53:57,100 ცხადია, როგორც ჩანს Yahoo! ფინანსთა აკეთებს რაღაც უფრო ჭკვიანი აქ. 885 00:53:57,100 --> 00:53:59,790 მათ აქვთ გარკვეული შესაბამისობა და აქვთ დამატებითი ინფორმაცია 886 00:53:59,790 --> 00:54:01,430 მოსწონს სახელით საფონდო. 887 00:54:01,430 --> 00:54:05,850 სწორედ ის, რაც მე ნამდვილად ვერ მივიღებთ მხოლოდ ჩემი საფონდო სიმბოლოების სია. 888 00:54:05,850 --> 00:54:09,520 მინდა ამ და ა.შ. მე ვაპირებ მას. 889 00:54:09,520 --> 00:54:11,790 გავაკეთოთ, რომ მოდით ცოტა რამ. 890 00:54:11,790 --> 00:54:15,580 მოდით პირველი გახსენით ინსპექტორი ამ გვერდზე 891 00:54:15,580 --> 00:54:18,100 რადგან დავინახეთ, რომ ამ გვერდზე არ არის გადატვირთვა ყველა, 892 00:54:18,100 --> 00:54:21,960 ამიტომ ალბათ გამოყენებით AJAX როგორღაც უნდა დატვირთვისა მისი მონაცემები. 893 00:54:21,960 --> 00:54:23,920 ჩვენ შეგვიძლია გავარკვიოთ, რა მონაცემები ის ჩატვირთვისას. 894 00:54:23,920 --> 00:54:28,390 თუ მე დააჭირეთ ამ ქსელის tab, ეს იქნება ყველა მოითხოვს, რომ დაიწყოს უნდა სამსახურიდან გაათავისუფლეს. 895 00:54:28,390 --> 00:54:34,020 არის თუ აკრიფოთ Goo, ვხედავთ, რომ მე უბრალოდ მიიღო ახალი HTTP მოთხოვნის. 896 00:54:34,020 --> 00:54:37,490 ეს არის ალბათ აქ რომ მონაცემები მოდის. 897 00:54:37,490 --> 00:54:41,990 დარწმუნებული საკმარისი, თუ გავითვალისწინებთ ამ URL, რომელიც ცოტა უცნაურად დაასახელა, 898 00:54:41,990 --> 00:54:46,930 ვხედავთ, რომ ეს არის სწორედ აქ Yahoo აგზავნის off მისი მონაცემები. 899 00:54:46,930 --> 00:54:53,400 >> მე შექმნილი ცალკე ფაილი სახელად suggest.php რომ ძალიან მსგავსი სულისკვეთებით, რათა lookup ფუნქცია. 900 00:54:53,400 --> 00:54:57,730 ეს ძირითადად აპირებს ხერხისთვის რომ Yahoo-ს URL, დავუბრუნდეთ გარკვეული მონაცემები, 901 00:54:57,730 --> 00:54:59,750 და გააგზავნეთ უკან ჩემთვის. 902 00:54:59,750 --> 00:55:02,570 ახლა, ვიდრე გამოყენებით ამ დიდი, უზარმაზარი სიმბოლოების სია, 903 00:55:02,570 --> 00:55:05,280 შემიძლია Yahoo ლამაზი შესაბამისობა რამ, 904 00:55:05,280 --> 00:55:08,150 და მე არ უნდა ჩამოტვირთოთ რომ მასიური JavaScript ფაილი. 905 00:55:08,150 --> 00:55:12,040 მე მხოლოდ აპირებს გაიყვანოს ქვემოთ რეალურად შესაბამისი საფონდო სიმბოლოს. 906 00:55:12,040 --> 00:55:13,960 მოდით ხტომა შევიდა, რომ. 907 00:55:13,960 --> 00:55:17,360 ასე რომ html, js. ჩვენ ახლა quote4. 908 00:55:17,360 --> 00:55:22,120 ახლა ჩვენ აღარ იყენებენ, რომ დიდი ჩამონათვალი JavaScript ფაილებს. 909 00:55:22,120 --> 00:55:24,430 მაგრამ მცირე სახის დიზაინის პრობლემა აქ. 910 00:55:24,430 --> 00:55:28,200 ჩვენ განაცხადა, რომ წელს AJAX არის ასინქრონული. 911 00:55:28,200 --> 00:55:31,000 რა, რომ ნიშნავს, რომ როდესაც მე AJAX მოთხოვნით, 912 00:55:31,000 --> 00:55:36,490 ამიტომ სწორედ აქ on line 8, ეს არის სადაც ჩემი AJAX მოთხოვნა რეალურად სამსახურიდან გაათავისუფლეს. 913 00:55:36,490 --> 00:55:40,370 ვთქვათ ახლა მაქვს რაღაც კოდი ქვემოთ აქ რომ აპირებს რაღაცები 914 00:55:40,370 --> 00:55:43,930 მინდა პირთა მომხმარებლის ან ცვლილება რაღაც გვერდზე. 915 00:55:43,930 --> 00:55:49,830 რა არ მოხდება არის ბრაუზერი არ აპირებს დაველოდოთ ამ მოთხოვნის გაგრძელდება 916 00:55:49,830 --> 00:55:53,480 ადრე მოდის down და hitting ეს ხაზი. 917 00:55:53,480 --> 00:55:55,900 სწორედ ასინქრონული ნაწილი. 918 00:55:55,900 --> 00:55:58,400 ის აპირებს ამ მოთხოვნით და აცხადებენ, "როდესაც თქვენ დასრულდება, 919 00:55:58,400 --> 00:56:03,080 "დავბრუნდებით და მოვუწოდებთ, რომ ფუნქცია რომ გითხარით მოვუწოდო შიგნით წარმატება." 920 00:56:03,080 --> 00:56:07,300 ეს იმას ნიშნავს, რომ ჩვენ არ შეგვიძლია უბრალოდ ჩამოტვირთოთ ყველა აქციების წინასწარ. 921 00:56:07,300 --> 00:56:10,300 ჩვენ გვჭირდება, რათა მოთხოვნა და დაველოდოთ რაიმეს, რომ ჩამოვსულიყავი. 922 00:56:10,300 --> 00:56:13,330 ეს იმას ნიშნავს, რომ ადრე, ჩვენ უბრალოდ ვუთხრა ჩატვირთვის, 923 00:56:13,330 --> 00:56:15,580 "აი ჩამონათვალი რამ მინდა თვითდასრულება შესახებ." 924 00:56:15,580 --> 00:56:18,950 ჩვენ ვეღარ გავაკეთებთ, რომ აღარ რადგან ჩვენ არ ვიცით 925 00:56:18,950 --> 00:56:21,780 რა გვინდა რეალურად თვითდასრულება შესახებ. 926 00:56:21,780 --> 00:56:25,190 საბედნიეროდ, ჩატვირთვის ეგონა ამ რადგან ეს ის ჭკვიანი ბიჭები იქ, 927 00:56:25,190 --> 00:56:30,160 და ისინი სინამდვილეში მოგვცა სხვა გზა, რათა ჩატვირთოს ამ Typeahead მოდული. 928 00:56:30,160 --> 00:56:35,630 მანამდე ღირებულება ამ წყაროს ქონების მხოლოდ ამ დიდი მასივი რამ თვითდასრულება შესახებ. 929 00:56:35,630 --> 00:56:39,580 >> არის წყარო ქონება ფაქტობრივად ფუნქცია, 930 00:56:39,580 --> 00:56:44,580 და მიზანი ამ ფუნქციის გაერკვნენ რა რამ თვითდასრულება ხდება. 931 00:56:44,580 --> 00:56:48,730 გზით აპირებს გაერკვნენ, რომ არის ის სთხოვს Yahoo! ფინანსთა 932 00:56:48,730 --> 00:56:51,750 რა საუკეთესო რამ თვითდასრულება არიან. 933 00:56:51,750 --> 00:56:54,500 გავაკეთოთ, რომ მე ვაპირებ გავაკეთო ძალიან ჰგავს AJAX მოთხოვნა. 934 00:56:54,500 --> 00:56:59,010 მე ვაპირებ მოითხოვოს ამ გვერდზე suggest.php. 935 00:56:59,010 --> 00:57:01,360 მინდა გაგზავნას გასწვრივ სიმბოლიკა მაინც. 936 00:57:01,360 --> 00:57:05,570 და ახლა ჩემი წარმატება, ჩატვირთვის დოკუმენტაცია მითხრა 937 00:57:05,570 --> 00:57:09,130 რომ რათა populate რომ სიაში რამ, 938 00:57:09,130 --> 00:57:14,370 ყველა მე მხოლოდ უნდა გაიაროს ამ მასივი ახლა გადმორეკე ფუნქცია. 939 00:57:14,370 --> 00:57:15,660 მაგრამ დაველოდოთ წუთში. 940 00:57:15,660 --> 00:57:20,240 თუ ეს უნდა იყოს მასივი და AJAX აგზავნის ჩემს თავში ტექსტი, 941 00:57:20,240 --> 00:57:22,720 როგორ არის, რომ შესაძლებელი? 942 00:57:22,720 --> 00:57:27,910 ეს გააცნობს ახალი გზა გაცვლის მონაცემები მოუწოდა JSON. 943 00:57:27,910 --> 00:57:33,000 ამ შემთხვევაში ჩვენ არა მხოლოდ გაგზავნის უკან მარტივი სიმებიანი ტექსტის. 944 00:57:33,000 --> 00:57:37,670 ახლა ჩვენ საქმე გვაქვს ამ უფრო რთული სიაში საფონდო სიმბოლოს. 945 00:57:37,670 --> 00:57:41,730 ეს საფონდო სიმბოლიკა შეიძლება ასევე მოიცავს რამ, როგორიცაა კომპანიის სახელი ან მიმდინარე ფასებში. 946 00:57:41,730 --> 00:57:47,550 გამოყენებით დიდი ხანგრძლივი string რომ არ დაფორმატდა ნებისმიერ პროგნოზირებადი გზა 947 00:57:47,550 --> 00:57:51,970 არ აპირებს იყოს საუკეთესო გზა ამ მონაცემების Yahoo სერვერზე ჩემთვის 948 00:57:51,970 --> 00:57:54,540 ისე, რომ შემიძლია ადვილად ესმით. 949 00:57:54,540 --> 00:58:01,280 JSON არის ტექნოლოგია, რომელიც იღებს უპირატესობა როგორ ვქმნით ასოციაციურ კოლექტორები in JavaScript. 950 00:58:01,280 --> 00:58:04,510 ეს გამოიყურება ბევრი მოსწონს JavaScript ასოციაციურ მასივში, 951 00:58:04,510 --> 00:58:06,600 და ფაქტობრივად, ეს იმიტომ, რომ ეს არის. 952 00:58:06,600 --> 00:58:09,710 JSON დგას JavaScript Object ნოტაცია. 953 00:58:09,710 --> 00:58:15,020 ეს არის ძირითადად შეთანხმებული ფორმატის გადაცემის მონაცემები უკან და მეოთხე. 954 00:58:15,020 --> 00:58:18,280 აქ ამ JSON ობიექტი ან ამ JSON ასოციაციურ მასივში 955 00:58:18,280 --> 00:58:21,010 აგზავნის ჩემთვის გარკვეული მონაცემები იმის შესახებ, რა თქმა უნდა. 956 00:58:21,010 --> 00:58:25,110 >> გასაღებები ამ მასივი are რამ, როგორიცაა, რა თქმა უნდა, რომ აქვს ღირებულება cs50, 957 00:58:25,110 --> 00:58:29,140 და ქვევით აქ ვხედავთ, რომ შემიძლია აქვს მნიშვნელობა, რომელიც არის მასივი. 958 00:58:29,140 --> 00:58:32,730 მე არ უნდა გავაკეთოთ რამ, როგორიცაა გარჩევის გარეთ სტრიქონები და ვეძებთ მძიმეები 959 00:58:32,730 --> 00:58:35,330 და ნუ გიჟები რამ, როგორიცაა, რომ. 960 00:58:35,330 --> 00:58:38,820 რადგან ეს არის დეკლარირებული ამ JSON ფორმატში, 961 00:58:38,820 --> 00:58:43,510 JavaScript და jQuery უკვე აქვს ფუნქციების გადაიყვანოთ სიმებიანი 962 00:58:43,510 --> 00:58:48,140 რომ ასე გამოიყურება JSON შევიდა ფაქტობრივი JavaScript ასოციაციურ მასივში 963 00:58:48,140 --> 00:58:50,440 რომ ჩვენ შეგვიძლია ვიმუშაოთ. 964 00:58:50,440 --> 00:58:56,660 Doing რომ არის იმდენად მარტივია, რომელშიც ნათქვამია, რომ აღარ არის ამ ფაილის, suggest.php, 965 00:58:56,660 --> 00:58:59,040 გაგზავნის ჩემთვის თავში უბრალოდ სიმებიანი ტექსტი, 966 00:58:59,040 --> 00:59:01,950 მაგრამ მე ვიცი, რომ იქნება გაგზავნის ჩემთვის უკან JSON. 967 00:59:01,950 --> 00:59:06,760 ეს იმას ნიშნავს, რომ JSON შეიძლება მოაქცია შევიდა JavaScript ასოციაციურ მასივში. 968 00:59:06,760 --> 00:59:10,830 და ასე jQuery, მინდა ამის გაკეთება ჩემთვის. 969 00:59:10,830 --> 00:59:13,990 ეს იმას ნიშნავს, რომ ეს საპასუხო პარამეტრი აქ, 970 00:59:13,990 --> 00:59:16,070 ეს აღარ არის მხოლოდ სიმებიანი. 971 00:59:16,070 --> 00:59:19,860 იმიტომ, რომ ჩვენ გითხარით jQuery რომ აქ მოდის ზოგიერთი JSON, 972 00:59:19,860 --> 00:59:22,950 jQuery იქნება smart საკმარისი ვთქვა, "თქვენ სურდა JSON?" 973 00:59:22,950 --> 00:59:26,890 "მე ვაპირებ, რომ გარდაქმნას შევიდა ასოციაციურ მასივში თქვენთვის." 974 00:59:26,890 --> 00:59:32,100 მოდით რეალურად შევხედოთ ქსელის tab ერთხელ გვაქვს quote4.js. 975 00:59:32,100 --> 00:59:35,400 ჩვენ შეცვალოთ ეს და განაახლეთ გვერდი. 976 00:59:37,150 --> 00:59:41,250 ახლა მე ვაპირებ აკრიფოთ-ერთხელ. 977 00:59:41,250 --> 00:59:45,600 მე გააკეთა რამდენიმე ითხოვს suggest.php, მაგრამ ახლა ამ საპასუხოდ, 978 00:59:45,600 --> 00:59:48,670 და არა მხოლოდ ტექსტი, ეს JSON. 979 00:59:48,670 --> 00:59:52,580 ასე რომ მაქვს ღია Curly გაუწიოს სიტყვებით "აქ მოდის ასოციაციურ მასივში". 980 00:59:52,580 --> 00:59:56,830 >> პირველი და ერთადერთი გასაღები ამ ასოციაციურ მასივში ეწოდება სიმბოლიკა, 981 00:59:56,830 --> 01:00:00,240 და მაშინ აქ არის მასივი ყველა შესაბამისი სიმბოლიკა 982 01:00:00,240 --> 01:00:04,820 მოდის ახლა ში Yahoo! Finance, არა, რომ გიგანტური სიაში. 983 01:00:06,110 --> 01:00:10,630 ასე შემიძლია უბრალოდ populate ამ თვითდასრულება მოდული 984 01:00:10,630 --> 01:00:14,280 ზოგიერთი მონაცემები რომ არ მოდის ადგილობრივი ფაილი, რომელიც უკვე წინასწარ 985 01:00:14,280 --> 01:00:17,490 არამედ რაღაც. 986 01:00:17,490 --> 01:00:21,160 თურმე შეგვიძლია რეალურად ისარგებლოს ტექნიკა მოუწოდა JSONP, 987 01:00:21,160 --> 01:00:27,420 ან JSON ერთად padding, რომელიც აღმოფხვრას ამ suggest.php შუამავალი. 988 01:00:27,420 --> 01:00:34,010 მაგრამ ნაცვლად აკეთებს, რომ, მოდით, ნაცვლად შევხედოთ როგორ შემიძლია გასაუმჯობესებლად კიდევ უფრო. 989 01:00:34,010 --> 01:00:36,040 მე ნამდვილად მომწონს ჩატვირთვის ს Typeahead. ეს მართლაც კარგია. 990 01:00:36,040 --> 01:00:39,570 მაგრამ ჩვენ ვიღებთ კარგად JavaScript და გვინდა სახის ამისათვის თავს, 991 01:00:39,570 --> 01:00:43,870 იქნებ შევხედოთ რა ამ მოდული შეიძლება აკეთებს. 992 01:00:43,870 --> 01:00:46,500 მოდით აღარ გამოვიყენოთ რომ Typeahead რამ, 993 01:00:46,500 --> 01:00:50,550 და მოდით ცდილობენ ამ სიაში შემოთავაზებული აქციების საკუთარ თავს. 994 01:00:50,550 --> 01:00:53,790 აქ quote6.php ჩვენ ვაპირებთ დავიწყოთ off იგივე გზით. 995 01:00:53,790 --> 01:00:58,050 ყოველ ჯერზე ვინმე ტიპის რაღაც, ჩვენ გვსურს AJAX მოთხოვნა. 996 01:00:58,050 --> 01:01:01,590 ეს არის მსგავსი ჩვენი ორიგინალური CS50 ფინანსთა მომენტალური. 997 01:01:01,590 --> 01:01:05,020 იმის ნაცვლად, რომ თხოვნით quote.php, 998 01:01:05,020 --> 01:01:08,530 ჩვენ ახლა მიღების თხოვნით, რომ იგივე ფაილი, როგორც ადრე, ამ suggest.php, 999 01:01:08,530 --> 01:01:12,460 რომელიც მხოლოდ აპირებს დახევის მონაცემების Yahoo! ფინანსთა. 1000 01:01:12,460 --> 01:01:19,480 >> ისევ და ისევ, ჩვენ ჯერ კიდევ ველოდებით JSON, მაგრამ ახლა რადგან Typeahead არ აკეთებს ეს ჩვენთვის, 1001 01:01:19,480 --> 01:01:24,850 ჩვენ ასევე უნდა გამოაგზავნოს გასწვრივ ღირებულება რომ არის შიგნით მიმდინარე ტექსტი ყუთში. 1002 01:01:24,850 --> 01:01:28,120 ახლა ჩვენ ვიცით, რა ვთხოვო Yahoo! ფინანსთა, 1003 01:01:28,120 --> 01:01:34,160 და ახლა აქ ფუნქცია, რომ ჩვენ გვინდა, რათა შესრულდეს ერთხელ თხოვნით დაასრულა. 1004 01:01:34,160 --> 01:01:36,520 ჩვენ არ გვაქვს მოდული რათა სიაში ჩვენთვის, 1005 01:01:36,520 --> 01:01:40,630 ამიტომ აქ, სადაც ჩვენ რეალურად აპირებს ააშენოს სიაში წინადადებები. 1006 01:01:40,630 --> 01:01:44,850 ამისათვის, ჰგავს PHP-ში ჩვენ concatenated ამ დიდი სიმები HTML 1007 01:01:44,850 --> 01:01:48,170 მაშინ ჩვენ დაბეჭდილი მათ, ჩვენ შეგვიძლია გავაკეთოთ იგივე ზუსტი რამ JavaScript. 1008 01:01:48,170 --> 01:01:51,850 პირველი ჩვენ ვაპირებთ დავიწყოთ off ეს კონტექსტი მოუწოდა წინადადებები, 1009 01:01:51,850 --> 01:01:54,590 და ამ სტრიქონს მხოლოდ აპირებს შეიცავს რამოდენიმე HTML. 1010 01:01:54,590 --> 01:01:58,320 ჩვენ გვინდა, რომ იყოს სიაში რამ, ამიტომ ჩვენ ვაპირებთ დავიწყოთ off ერთად ამ სიაში tag, 1011 01:01:58,320 --> 01:02:03,340 და ახლა ჩვენ ვაპირებთ iterate მეტი ყველა სიმბოლიკა, რომლებიც დაბრუნდნენ ჩვენს. 1012 01:02:03,340 --> 01:02:06,500 გახსოვდეთ, რადგან ჩვენ განაცხადა თემები: "json ', ეს არ არის სიმებიანი. 1013 01:02:06,500 --> 01:02:09,500 ეს არის უკვე მასივი ჩვენთვის. რომ მართლაც მაგარი. 1014 01:02:09,500 --> 01:02:13,790 ჩვენ შეგვიძლია უბრალოდ ვთქვათ, "მინდა დამატება სიის ელემენტს." 1015 01:02:13,790 --> 01:02:16,000 ჩვენ ამას შიგნით ელემენტს მხარეს რომ, 1016 01:02:16,000 --> 01:02:19,030 ჩვენ მივცემ ეს კლასი წინადადებები ასე ვიცით რა არის, 1017 01:02:19,030 --> 01:02:23,880 და ახლა აქ არის სიმბოლო იმისა, რომ ჩვენ მივიღეთ უკან Yahoo! ფინანსთა. 1018 01:02:23,880 --> 01:02:27,230 >> ერთხელ ჩვენ შევქმენით ელემენტს თითოეული სიმბოლიკა ჩვენ მიღებული თავში, 1019 01:02:27,230 --> 01:02:30,100 ჩვენ გვსურს მხოლოდ დახურვა off სიაში. 1020 01:02:30,100 --> 01:02:33,040 ახლა წინადადებები წარმოადგენს ეს პატარა HTML ფრაგმენტი 1021 01:02:33,040 --> 01:02:37,860 რომ როდესაც ჩაიცვი გვერდზე იქნება სია რამ ჩვენ ვეძებთ. 1022 01:02:37,860 --> 01:02:41,070 ახლა მოდით რეალურად დააყენა, რომ გვერდზე. 1023 01:02:41,070 --> 01:02:46,390 გავაკეთოთ, რომ მე რეალურად შექმნილი კიდევ ერთი ცარიელი div და მე მოცემული იგი ID წინადადებების. 1024 01:02:46,390 --> 01:02:52,520 ჰგავს ჩვენ დავსახეთ შინაარსი div რომ ცარიელია ფასი საფონდო მონაცემები, 1025 01:02:52,520 --> 01:02:58,600 ჩვენ ახლა მხოლოდ უნდა დააყენოთ შინაარსი ამ div რომ რასაც ამ სტრიქონს 1026 01:02:58,600 --> 01:03:00,290 რომელიც შეიცავს ეს სიმბოლოები. 1027 01:03:00,290 --> 01:03:07,650 გამოყენებით ამ HTML მეთოდი, ამ წინადადებები ცვლადი, ეს კონტექსტი, არის string of HTML. 1028 01:03:07,650 --> 01:03:13,490 მინდა მიიღოს, რომ HTML და განათავსოთ შიგნით div მოუწოდა წინადადებები. 1029 01:03:13,490 --> 01:03:15,680 ჩვენ უბრალოდ ერთვის რაღაც DOM არის. 1030 01:03:15,680 --> 01:03:20,360 ჩვენ დასძინა ახალი ელემენტების DOM, რომ ჩვენ შეგვიძლია ახლა ჩვენება გვერდზე. 1031 01:03:20,360 --> 01:03:22,540 ვნახოთ რა ამ ჰგავს. 1032 01:03:22,540 --> 01:03:29,110 თუ ჩვენ ჩატვირთვა in quote6 და ახლა ჩვენ დავბრუნდებით, 1033 01:03:29,110 --> 01:03:34,480 ახლა, როცა დავიწყო აკრეფით aapl, ჩვენ უკვე აღარ გვაქვს, რომ ჩატვირთვის თვითდასრულება, 1034 01:03:34,480 --> 01:03:38,470 მაგრამ ჩვენ ახლა ამ სიაში, რომ ჩვენ მივიღეთ საკუთარ თავს. 1035 01:03:38,470 --> 01:03:43,230 ეს არის ცოტა uglier ვიდრე ჩატვირთვის Typeahead, მაგალითად, 1036 01:03:43,230 --> 01:03:45,580 მაგრამ ეს იმას საშუალებას მოგვცემს გავაკეთოთ ერთი რამ სხვა. 1037 01:03:45,580 --> 01:03:48,660 როდესაც ჩვენ შევხედავთ, რომ ჩატვირთვის მოდული, 1038 01:03:48,660 --> 01:03:52,590 ჩვენ ვნახეთ, რომ, როცა autocompleted, ერთი თვითდასრულება ღირებულებების aapl. 1039 01:03:52,590 --> 01:03:54,820 რომ არ უნდა იყოს ასე გამოსადეგი. 1040 01:03:54,820 --> 01:03:59,100 როგორც მომხმარებელი, მე შეიძლება არ დაუყონებლივ ვცნობთ ყველა საფონდო სიმბოლოს. 1041 01:03:59,100 --> 01:04:02,370 რა მე ალბათ უფრო სავარაუდოა, რომ აღიაროს არიან კომპანიის ნამდვილ სახელებს. 1042 01:04:02,370 --> 01:04:05,310 ასე რომ არ იყოს, ნამდვილად გამოსადეგი თუ ვიდრე ამბობდა aapl 1043 01:04:05,310 --> 01:04:07,970 ამ განაცხადა მსგავსი რამ Apple Inc- 1044 01:04:07,970 --> 01:04:12,240 იმის გამო, რომ ჩვენ შემოვიდა ამ თავს, ჩვენ შეგვიძლია ნამდვილად ადვილად გავაკეთებთ. 1045 01:04:12,240 --> 01:04:17,630 მოდით გახსენით ჩვენი ბოლო ციტირებით ფაილი აქ, ასე quote7. 1046 01:04:17,630 --> 01:04:23,200 >> იგივე. მე უბრალოდ შექმნილი სხვა PHP ფაილი, რომელიც დაბრუნდება us მეტი, ვიდრე უბრალოდ სიმბოლოს. 1047 01:04:23,200 --> 01:04:25,550 იგი ასევე მოგვცეს უკან კომპანიის სახელები. 1048 01:04:25,550 --> 01:04:28,150 და ასე ვაკეთებთ იგივე. ჩვენ მიღების AJAX მოთხოვნა. 1049 01:04:28,150 --> 01:04:32,370 ერთხელ მოთხოვნა წარმატებით დასრულდა, ჩვენ ვაპირებთ, რათა შესრულდეს ამ ფუნქციის აქ, 1050 01:04:32,370 --> 01:04:36,520 და ამ ფუნქციის აპირებს შექმნას დიდი სიმებიანი ელემენტების. 1051 01:04:36,520 --> 01:04:39,520 მაგრამ განსხვავება აქ ისაა, რომ ღირებულება ამ სიებში აღარ არის უბრალოდ სიმბოლო, 1052 01:04:39,520 --> 01:04:45,370 ეს არის სახელი. 1053 01:04:45,370 --> 01:04:47,070 ასე რომ ჩვენ ერთი პატარა პრობლემა. 1054 01:04:47,070 --> 01:04:51,590 როდესაც ჩვენ ვიყენებთ ჩვენი საძიებელი, ჩვენ გვჭირდება, რათა როგორმე გაიაროს ეს სიმბოლო. 1055 01:04:51,590 --> 01:04:54,950 ჩვენ ვერ გაივლის lookup რაღაც Microsoft Corporation. 1056 01:04:54,950 --> 01:04:57,900 ჩვენ უნდა გაიაროს ეს MSFT. 1057 01:04:57,900 --> 01:05:01,640 როდესაც ჩვენ წერილობით HTML, ჩვენ გვაქვს უამრავი ლამაზი ჩაშენებული ატრიბუტები. 1058 01:05:01,640 --> 01:05:05,440 შესაძლოა ასოცირდება ეს href ან კლასის. 1059 01:05:05,440 --> 01:05:08,230 მაგრამ რაც ჩვენ ნამდვილად გვჭირდება ახლა არის თითოეული ამ ბმულები 1060 01:05:08,230 --> 01:05:11,120 ჰქონდეს საფონდო სიმბოლო ასოცირდება იგი. 1061 01:05:11,120 --> 01:05:14,240 არ არსებობს ჩაშენებული HTML ატრიბუტია საფონდო სიმბოლო, 1062 01:05:14,240 --> 01:05:21,010 მაგრამ საბედნიეროდ, HTML5 საშუალებას გვაძლევს შევქმნათ ჩვენი ატრიბუტები უნდა იყოს რასაც ჩვენ გვინდა. 1063 01:05:21,010 --> 01:05:24,620 განაცხადა მონაცემთა სიმბოლო, მე ახალი ატრიბუტი 1064 01:05:24,620 --> 01:05:29,350 რომლის სახელი მე მხოლოდ შედგება, და ეს okay, რადგან მე prefaced იგი ამ მონაცემებს. 1065 01:05:29,350 --> 01:05:34,270 ჩვენ ვაპირებთ შესანახად შიგნით არსებობს სიმბოლოს საფონდო არის. 1066 01:05:34,270 --> 01:05:39,590 რა ეს იმას ნიშნავს, რომ არის, მიუხედავად იმისა, რომ ჩვენ ჩვენებისას ღირებულება კომპანიის სახელი 1067 01:05:39,590 --> 01:05:43,380 შიგნით ჩვენი თვითდასრულება, ჩვენ კვლავ დამახსოვრების სიმბოლო 1068 01:05:43,380 --> 01:05:47,110 რომ არის დაკავშირებული თითოეული კომპანია. 1069 01:05:47,110 --> 01:05:50,350 გზა ვაკეთებთ, რომ არის შიგნით ამ ელემენტის თავად. 1070 01:05:50,350 --> 01:05:52,930 ასე რომ, რაც იმას ნიშნავს, რომ ჩვენ გვჭირდება, რათა კიდევ ერთი ცვლილება. 1071 01:05:52,930 --> 01:05:57,090 როდესაც ჩვენ დაწკაპეთ იგი ახლა, ჩვენ უნდა რეალურად ისარგებლოს სიმბოლო ატრიბუტის 1072 01:05:57,090 --> 01:06:00,220 და არა მხოლოდ მისი ღირებულება. 1073 01:06:00,220 --> 01:06:05,010 თუ ჩვენ უკან მდე, ვანიჭებთ ღონისძიება დამმუშავებლის to წინადადებები. 1074 01:06:05,010 --> 01:06:09,280 როდესაც ერთი ასეთი წინადადებები არის დააწკაპებთ ახლა, მინდა რაღაც. 1075 01:06:09,280 --> 01:06:13,160 რა მინდა უნდა შეცვალოთ ღირებულება რომ input box. 1076 01:06:13,160 --> 01:06:16,100 ახლა მინდა მითითებული ეს იგივე Val ფუნქცია. 1077 01:06:16,100 --> 01:06:21,060 >> ამიტომ ყოველგვარი არგუმენტების ამ Val ფუნქცია დააბრუნებს თქვენ რა უკვე ტექსტი ყუთი, 1078 01:06:21,060 --> 01:06:27,070 მაგრამ თუ თქვენ ეს ტექსტი, იგი აპირებს, რომ სიმებიანი და დააყენა იგი ტექსტი ყუთში. 1079 01:06:27,070 --> 01:06:28,980 მე შერჩევისას მისი ტექსტი ყუთი იგივე გზით. 1080 01:06:28,980 --> 01:06:31,230 მისი სახელი არის სიმბოლო შიგნით ფორმის-ციტირებით. 1081 01:06:31,230 --> 01:06:37,540 ახლა მე ვაგზავნი ის ღირებულება ატრიბუტი მონაცემთა სიმბოლო. 1082 01:06:37,540 --> 01:06:41,560 ეს რამ აქ არის ახალი, ამ $ (ეს). 1083 01:06:41,560 --> 01:06:46,850 რა ეს შეეხება არის ელემენტს, რომელიც დააწკაპებთ. 1084 01:06:46,850 --> 01:06:50,880 ჩვენ ვხედავთ, რომ ჩვენ არ ვამაგრებ click ღონისძიება 1085 01:06:50,880 --> 01:06:54,690 ყოველი ელემენტს ერთად კლასის წინადადება ინდივიდუალურად. 1086 01:06:54,690 --> 01:06:57,140 პირიქით, ჩვენ ახლოვდება ამ პატარა განსხვავებულად. 1087 01:06:57,140 --> 01:07:01,700 ამის ნაცვლად ჩვენ ვამბობთ, როდესაც არაფერი შიგნით ამ წინადადებები div, 1088 01:07:01,700 --> 01:07:04,080 რაც გახსოვდეთ მხოლოდ კონტეინერი რომ სიაში, 1089 01:07:04,080 --> 01:07:10,150 თუ რაიმე შიგნით ამ div არის დააწკაპებთ და მას კლასის წინადადება 1090 01:07:10,150 --> 01:07:13,000 მინდა ამ მოვლენას ცეცხლი. 1091 01:07:13,000 --> 01:07:17,490 ძირითადად რას ნიშნავს ჩვენ შეგვიძლია გავაკეთოთ არის შეგვიძლია reuse ამ ამავე ღონისძიებაზე დამმუშავებლის 1092 01:07:17,490 --> 01:07:20,000 ყველა რამ სიაში. 1093 01:07:20,000 --> 01:07:22,080 ამიტომ, ჩვენ არ უნდა ჰქონდეს ერთი მოვლენის დამმუშავებლის პირველად ელემენტს 1094 01:07:22,080 --> 01:07:24,550 და სხვადასხვა ღონისძიება დამმუშავებლის მეორე ელემენტს. 1095 01:07:24,550 --> 01:07:29,880 ჩვენ შეგვიძლია ნაცვლად ამბობენ, "მინდა ამავე ღონისძიებაზე დამმუშავებლის მიმართოს ყველაფერი ჩემი სიაში." 1096 01:07:29,880 --> 01:07:34,420 მაგრამ ჩვენ გვჭირდება, რათა როგორმე იცით რომელი ელემენტი დააწკაპებთ. 1097 01:07:34,420 --> 01:07:38,450 ეს "ამ" სიტყვით წარმოადგენს მხოლოდ, რომ. 1098 01:07:38,450 --> 01:07:42,360 ეს არის ობიექტი, რომელიც მხოლოდ დააწკაპებთ მომხმარებლის მიერ. 1099 01:07:42,360 --> 01:07:47,680 თუ მე უბრალოდ დაწკაპავთ მე -3 ბმული, ამ წარმოადგენს ელემენტს, რომ მე -3 ლინკი, 1100 01:07:47,680 --> 01:07:51,670 რაც იმას ნიშნავს, რომ შემიძლია კიდევ მისი ატრიბუტი, მონაცემთა სიმბოლო, 1101 01:07:51,670 --> 01:07:57,760 რაც ჩვენ ვიცით უნდა შეიცავდეს სიმბოლოს რომ ასოცირდება კომპანია მე უბრალოდ დაწკაპავთ. 1102 01:07:57,760 --> 01:08:04,550 თუ ჩვენ ხტომა უკან ჩვენი ფინანსთა გვერდზე, 1103 01:08:04,550 --> 01:08:08,580 ვხედავთ, რომ ერთხელ დავიწყო აკრეფით რაღაც msft, 1104 01:08:08,580 --> 01:08:11,220 ჩვენ აღარ ვიღებთ მხოლოდ საფონდო სიმბოლოები, 1105 01:08:11,220 --> 01:08:13,720 ჩვენ ახლა მიღების ფაქტობრივი კომპანიები. 1106 01:08:13,720 --> 01:08:20,410 მაგრამ როდესაც დააწკაპეთ ამ კომპანიებს, 1107 01:08:20,410 --> 01:08:25,180 ვხედავთ, რომ ჩვენ რეალურად მცხოვრებ ტექსტი ყუთი არა სახელით კომპანია 1108 01:08:25,180 --> 01:08:29,850 მაგრამ რაც არ იყო შენახული შიგნით იმ მონაცემები ატრიბუტები. 1109 01:08:29,850 --> 01:08:32,880 და ასე თუ რეალურად შეამოწმოს ერთი ამ ელემენტების მიერ მარჯვენა დაწკაპვით იგი 1110 01:08:32,880 --> 01:08:36,200 და დაწკაპვით შეამოწმოს ელემენტის, შეგვიძლია რეალურად ვხედავ რა ამ ჰგავს. 1111 01:08:36,200 --> 01:08:40,290 >> დამახსოვრება ეს არის ის, რომ ჩვენ შევქმენით შიგნით რომ loop 1112 01:08:40,290 --> 01:08:42,649 როდესაც ვაშენებდით, რომ string of HTML. 1113 01:08:42,649 --> 01:08:47,870 ჩვენ ვხედავთ, რომ ამ მონაცემთა სიმბოლო აქვს ღირებულება MSFT, რაც საკმაოდ დიდი. 1114 01:08:47,870 --> 01:08:49,189 რაც ჩვენ ველოდით. 1115 01:08:49,189 --> 01:08:53,170 სწორედ სიმბოლო და ასე მივიღეთ ღირებულება რომ ჩვენ გამოყენება დასჭირდა 1116 01:08:53,170 --> 01:08:56,140 შიგნით ამ ველში. 1117 01:08:56,140 --> 01:08:58,850 სწორედ საკმარისი ციტირებით ფორმით იმიტომ რომ სახის მოსაწყენი. 1118 01:08:58,850 --> 01:09:02,990 მოდით უბრალოდ გარკვეული სწრაფი გაუმჯობესებებს ჩვენი პორტფელის გვერდზე. 1119 01:09:02,990 --> 01:09:08,109 თუ თქვენ გამოყენებული CS50 ფინანსთა ხოლო და გავუშვით ყიდვის და გაყიდვის უამრავი მარაგი, 1120 01:09:08,109 --> 01:09:11,300 საბოლოოდ, ამ მაგიდის აპირებს მიიღოს საკმაოდ დიდი, 1121 01:09:11,300 --> 01:09:13,850 და თქვენ ვაპირებთ მინდა საფონდო ticker, რა თქმა უნდა. 1122 01:09:13,850 --> 01:09:20,350 ერთხელ მაგიდასთან მართლაც, მართლაც დიდი, შეიძლება იყოს სასარგებლო მომხმარებელს ცდილობენ ძებნის მას. 1123 01:09:20,350 --> 01:09:23,290 შიგნით ძებნა ყუთი თუ დავიწყო აკრეფით რაღაც Disney 1124 01:09:23,290 --> 01:09:26,359 და ეძებს ჩემი Mickey Mouse საფონდო, ვხედავთ, რომ მაგიდასთან არის ფილტრაცია 1125 01:09:26,359 --> 01:09:28,189 რის საფუძველზე უბრალოდ აკრეფილი შემოსული 1126 01:09:28,189 --> 01:09:31,640 ამ ფუნქციის გამოიყურება სუპერ რთული, მაგრამ ეს ნამდვილად, მართლაც ადვილი 1127 01:09:31,640 --> 01:09:33,859 ერთად jQuery და JavaScript. 1128 01:09:33,859 --> 01:09:39,189 ეს portfolio.php ფაილი მოიცავს JavaScript ფაილი სახელად portfolio.js. 1129 01:09:39,189 --> 01:09:41,130 მოდით შევხედოთ, რომ. 1130 01:09:41,130 --> 01:09:44,890 ასე რომ html, js, პორტფელის. 1131 01:09:44,890 --> 01:09:49,210 აი აქ ვაკეთებთ, რომ ჩხრეკის მაგიდაზე. 1132 01:09:49,210 --> 01:09:52,750 პირველი, რაც უნდა გავაკეთოთ, არის ვანიჭებთ ღონისძიება დამმუშავებლის რომ ტექსტი ყუთი 1133 01:09:52,750 --> 01:09:55,760 რადგან ჩვენ ვიცით, რომ ჩვენ გვინდა ჩვენი ფილტრაცია ფუნქცია მუშაობს 1134 01:09:55,760 --> 01:09:59,800 ყოველ ჯერზე მომხმარებლის presses რაღაც იმიტომ, რომ ჩვენ არ გვაქვს დრო ძებნის ღილაკებით. 1135 01:09:59,800 --> 01:10:03,000 პირველი, რაც უნდა გავაკეთოთ არის გაერკვნენ, რა მომხმარებლის ეძებს, 1136 01:10:03,000 --> 01:10:04,780 უბრალოდ ისე, როგორც ეს ადრე იყო. 1137 01:10:04,780 --> 01:10:11,320 ეს სიტყვით ეხება მიმდინარე ელემენტს მომხმარებელი ინტერაქციაში. 1138 01:10:11,320 --> 01:10:14,070 >> რადგან მომხმარებელს ინტერაქციაში ძებნა ყუთი, 1139 01:10:14,070 --> 01:10:17,020 $ ამ წარმოადგენს ძებნა ყუთი, 1140 01:10:17,020 --> 01:10:21,820 ასე this.val გვაძლევს რა შიგნით ძებნა ყუთი მომხმარებელს გაკეთებული აკრეფით. 1141 01:10:22,810 --> 01:10:27,320 ასე რომ, ეხლა ჩვენ ჩვენ უნდა ჩვენ გვინდა iterate მეტი ყველა რიგების 1142 01:10:27,320 --> 01:10:29,240 შიგნით ჩვენი მაგიდასთან. 1143 01:10:29,240 --> 01:10:35,630 ასარჩევად ყველა რიგები ჩვენს მაგიდასთან, მივეცი, რომ მაგიდასთან ID სუფრის პორტფელის 1144 01:10:35,630 --> 01:10:39,060 და თითოეული მწკრივი წარმოდგენილია TR ელემენტს, 1145 01:10:39,060 --> 01:10:42,080 ასე რომ ეს არჩევის დაბრუნებას აპირებს ჩემთვის დიდი მასივი 1146 01:10:42,080 --> 01:10:44,370 ყველა რიგები ჩემი მაგიდა. 1147 01:10:44,370 --> 01:10:47,010 ახლა მინდა iterate მეტი რომ მასივი. 1148 01:10:47,010 --> 01:10:52,390 მე ვერ თქვენ ამისთვის მარყუჟი, მაგრამ jQuery რეალურად გვაძლევს ლამაზი ფუნქცია მოუწოდა "ყოველი". 1149 01:10:52,390 --> 01:10:55,220 რა თითოეული არ არის თითოეული იღებს ერთ არგუმენტს, 1150 01:10:55,220 --> 01:10:57,090 და ეს არგუმენტი არის ფუნქცია. 1151 01:10:57,090 --> 01:11:02,760 რასაც ის აპირებს არის ის აპირებს მიმართოს, რომ ფუნქცია ყველა ელემენტს შიგნით ამ სიაში. 1152 01:11:02,760 --> 01:11:05,550 ეს ფუნქცია იღებს ერთი არგუმენტი, რომ ელექტრონული, 1153 01:11:05,550 --> 01:11:10,090 და როდესაც ეს ფუნქცია შესრულებული, ამ ვებ აპირებს უნდა შეიცვალოს პირველი რიგის, 1154 01:11:10,090 --> 01:11:12,070 მაშინ მეორე რიგის, ხოლო შემდეგ მესამე რიგის. 1155 01:11:12,070 --> 01:11:15,150 ამ გზით, ეს არის იგივე როგორც გაშვებული ამისთვის loop 1156 01:11:15,150 --> 01:11:21,360 და შემდეგ მჭიდროდაა მიმდინარე ელემენტს ეფუძნება ინდექსი შიგნით თქვენი ამისთვის loop. 1157 01:11:21,360 --> 01:11:24,750 ყოველ iteration, თითოეული ამ ელემენტების მაგიდა, 1158 01:11:24,750 --> 01:11:30,560 მინდა შევამოწმო, თუ ტექსტის ელემენტი - ტექსტი საკანში შიგნით Row - 1159 01:11:30,560 --> 01:11:33,130 სიას რა მე ეძებს. 1160 01:11:33,130 --> 01:11:36,390 ეს დიდი ხანგრძლივი string ბრძანებების არის როგორ შეეძლო, რომ. 1161 01:11:36,390 --> 01:11:40,900 პირველი, კიდევ ერთხელ, ეს ახლა ეხება - იმიტომ რომ შიგნით ახალი ფუნქცია - 1162 01:11:40,900 --> 01:11:45,020 ეს არის მიმდინარე row ცხრილში. 1163 01:11:45,020 --> 01:11:47,340 მინდა მიიღოს მიმდინარე row ცხრილში, 1164 01:11:47,340 --> 01:11:49,950 და მინდა მისაღებად ყველა მისი შვილი. 1165 01:11:49,950 --> 01:11:51,940 გახსოვდეთ, DOM არის იერარქიული ხე, 1166 01:11:51,940 --> 01:11:54,200 რაც იმას ნიშნავს, რომ ელემენტები აქვს ბავშვების რაოდენობა. 1167 01:11:54,200 --> 01:12:00,180 >> ეს. ბავშვები ფუნქციის დაბრუნებას აპირებს ჩემთან უკან მასივი ყველა ელემენტები 1168 01:12:00,180 --> 01:12:03,240 რომ არიან შვილები, ამ შემთხვევაში, ზედიზედ ცხრილში. 1169 01:12:03,240 --> 01:12:07,150 ეს არის უბრალოდ უჯრედების შიგნით row. 1170 01:12:07,150 --> 01:12:09,230 მინდა ძებნის მეტი პირველი საკანში. 1171 01:12:09,230 --> 01:12:13,090 ეს. პირველი ფუნქცია ამბობს მომეცი პირველი ელემენტია, რომ მასივი. 1172 01:12:13,090 --> 01:12:17,070 მაშინ ტექსტი ფუნქცია ამბობს get me ზუსტად რა შიგნით რომ საკანში 1173 01:12:17,070 --> 01:12:19,530 რადგან მინდა ძებნის მეტი რომ ტექსტი. 1174 01:12:19,530 --> 01:12:21,040 საბოლოოდ, მოდით გადაიყვანოთ იგი ამას, 1175 01:12:21,040 --> 01:12:23,940 ამიტომ ჩვენ შეგვიძლია გავაკეთოთ ტექსტის შემთხვევაში insensitive შეკითხვებს. 1176 01:12:23,940 --> 01:12:29,990 და ბოლოს, ჩვენ გვინდა, რომ თუ ეს სიმებიანი შიგნით მაგიდა შეიცავს სტრინგს ჩვენ ეძებს. 1177 01:12:29,990 --> 01:12:32,980 IndexOf ფუნქცია JavaScript აკეთებს უბრალოდ რომ. 1178 01:12:32,980 --> 01:12:37,060 იგი გვეუბნება, თუ არა ეს კონტექსტი შეიცავს სხვა სიმებიანი. 1179 01:12:37,060 --> 01:12:40,150 თუ ეს სიმართლეა, რომ საკანში შეიცავს რა მე ეძებს, 1180 01:12:40,150 --> 01:12:42,140 მერე გვინდა დავრწმუნდეთ, რომ ის ნაჩვენები. 1181 01:12:42,140 --> 01:12:45,330 შოუ მეთოდი იტყვის, "აჩვენეთ ელემენტს." 1182 01:12:45,330 --> 01:12:50,350 თუ ეს ასე არ არის, მაშინ ეს იმას ნიშნავს, რასაც მე ეძებს არ შეიცავდა 1183 01:12:50,350 --> 01:12:53,550 ფარგლებში ამ რიგის, და ასე მინდა დამალვა არის საწყისი მომხმარებელს. 1184 01:12:53,550 --> 01:12:59,240 რომ აღწევს, რომ ლამაზი ფილტრაცია ეფექტი აქ აღარ ვხედავთ მთელი მაგიდა. 1185 01:12:59,240 --> 01:13:01,480 თუ თქვენ დაინტერესებული, თუ როგორ გახადოს ამ ticker ისევე, 1186 01:13:01,480 --> 01:13:04,180 ჩვენ პოსტი წყარო ხაზზე. მაგრამ ეს მართლაც მარტივია. 1187 01:13:04,180 --> 01:13:09,860 JQuery აქვს რა მეთოდები ამ ანიმაციების და მანიპულირების CSS თვისებები. 1188 01:13:09,860 --> 01:13:11,020 ასე რომ, არის ის ჩემთვის. 1189 01:13:11,020 --> 01:13:15,560 >> მაშ მდგომარეობს ადრე? როგორც თქვენ ნახავთ რამდენიმე დღეში, საბოლოო პროექტების წინადადების გამო. 1190 01:13:15,560 --> 01:13:17,730 საბოლოო პროექტების წინადადება მოგთხოვთ რამოდენიმე კითხვა, 1191 01:13:17,730 --> 01:13:19,420 მაგრამ მათ შორის იქნება სამი ეტაპები - 1192 01:13:19,420 --> 01:13:22,840 ერთი "კარგი" ახალ ეტაპს, ერთი უკეთესი ეტაპს, და ერთი საუკეთესო. 1193 01:13:22,840 --> 01:13:25,870 იდეა მყოფი ნამდვილად დაგეხმაროთ ბიჭები მითითებული თქვენი მოლოდინი 1194 01:13:25,870 --> 01:13:29,160 ისე, რომ მინიმალურად იქნება კმაყოფილი გამომავალი თქვენი საბოლოო პროექტი 1195 01:13:29,160 --> 01:13:32,060 და ეს იქნება "კარგი" რამდენადაც თქვენ შეშფოთებულია. 1196 01:13:32,060 --> 01:13:34,540 მაგრამ მერე ინტერესი მიღების თქვენ მიღწევა მხოლოდ ცოტა რაიმე უკეთესი 1197 01:13:34,540 --> 01:13:37,680 ან რამე საუკეთესო, ჩვენ ასევე სახის დააყენებს თქვენ მიმართ, რომ ისევე. 1198 01:13:37,680 --> 01:13:40,660 CS50 Hack--thon, იმავდროულად, არის რამდენიმე კვირის. 1199 01:13:40,660 --> 01:13:44,340 როგორც წესი, ჩვენ ამ თემაზე ლატარიის საფუძველზე საფუძველზე გამო ინტერესი, 1200 01:13:44,340 --> 01:13:47,680 მაგრამ შანსი ჩვენ რამდენიმე ასეული ჩვენთვის სპეციალური სამარშრუტო ტაქსები ჰარვარდის მოედანზე 1201 01:13:47,680 --> 01:13:51,540 ქვემოთ Kendall Square, სადაც Microsoft აქვს ლამაზი დაწესებულებაში aptly მოუწოდა "NERD" - 1202 01:13:51,540 --> 01:13:53,830 ახალი ინგლისის კვლევებისა და განვითარების ცენტრი. 1203 01:13:53,830 --> 01:13:56,380 ჩვენ იქ გარშემო 8 საათზე გვექნება ზოგიერთი საკვები. 1204 01:13:56,380 --> 01:13:58,160 დაახლოებით 1 საათისთვის გვექნება კიდევ რამდენიმე საკვები. 1205 01:13:58,160 --> 01:14:02,150 დაახლოებით 5 საათზე, თუ თქვენ ჯერ კიდევ Awake ჩვენ უხელმძღვანელებს გადასცა IHOP ან გადაგიყვანთ თავში კამპუსში. 1206 01:14:02,150 --> 01:14:04,380 ობიექტური არსებობს რომ ჩაყვინთვის შევიდა საბოლოო პროექტები 1207 01:14:04,380 --> 01:14:06,190 ერთად საქართველოს თანაკლასელები და პერსონალი. 1208 01:14:06,190 --> 01:14:08,280 შემდეგ რამდენიმე დღის შემდეგ არის CS50 სამართლიანი, 1209 01:14:08,280 --> 01:14:10,990 რომელიც რეალურად ნიშნავს, რომ შესაძლებლობა თქვენ ბიჭები აჩვენოს თქვენი მუშაობა 1210 01:14:10,990 --> 01:14:12,700 და მიღწევების ამისთვის სემესტრის 1211 01:14:12,700 --> 01:14:15,610 ხოლო rubbing shoulders ერთმანეთთან და მიღების გრძნობა რა ყველას გააკეთა. 1212 01:14:15,610 --> 01:14:17,850 აღნიშნულის გათვალისწინებით, დიდი მადლობა ტომი და ჯოზეფ, 1213 01:14:17,850 --> 01:14:19,960 და ვნახავთ თქვენ ორშაბათს. 1214 01:14:19,960 --> 01:14:24,070  [ტაში]