1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID ลัน: ทั้งหมดขวา 3 00:00:12,360 --> 00:00:15,970 นี่คือ CS50 และนี่คือ ในตอนท้ายของสัปดาห์ที่เก้า 4 00:00:15,970 --> 00:00:18,560 มันเป็นพายุหมุนกว่า ไม่กี่วันที่ผ่านมา 5 00:00:18,560 --> 00:00:21,580 และปัญหาการตั้งเจ็ดถ้าคุณเข่า ลึกเข้าไปมันรู้มีค่อนข้าง 6 00:00:21,580 --> 00:00:23,340 บิตใหม่ที่อยู่ในนั้น 7 00:00:23,340 --> 00:00:26,660 แต่ให้ดูว่าเราไม่สามารถชิ้น ทุกอย่างมารวมกันที่นี่ในเวลาสั้น ๆ 8 00:00:26,660 --> 00:00:29,230 ก่อนหน้านั้นหันเหออกไปในยัง อีกทิศทางหนึ่งและเห็น 9 00:00:29,230 --> 00:00:30,510 ที่อื่นที่เราสามารถไป 10 00:00:30,510 --> 00:00:32,630 >> ดังนั้นป่านนี้เราได้พูดคุยเกี่ยวกับ HTML 11 00:00:32,630 --> 00:00:33,740 เราได้พูดคุยเกี่ยวกับซีเอสเอ 12 00:00:33,740 --> 00:00:34,705 เราได้พูดคุยเกี่ยวกับ PHP 13 00:00:34,705 --> 00:00:36,520 คุณได้เริ่มต้นที่จะได้สัมผัส SQL 14 00:00:36,520 --> 00:00:38,360 วันนี้เราจะพูดถึงบิต เกี่ยวกับ JavaScript 15 00:00:38,360 --> 00:00:41,230 แต่วิธีการทำทั้งหมดของการที่แตกต่างกันเหล่านี้ ภาษาพอดีกัน? 16 00:00:41,230 --> 00:00:44,970 >> ดังนั้นเราได้พูดคุยเกี่ยวกับสัปดาห์ที่ผ่านมา ความคิดของการมีเซิร์ฟเวอร์ 17 00:00:44,970 --> 00:00:48,470 เพื่อให้เพียงวาดรูปสี่เหลี่ยมผืนผ้านี้ เป็นเว็บเซิร์ฟเวอร์ที่นี่ 18 00:00:48,470 --> 00:00:52,200 และเว็บเซิร์ฟเวอร์ที่ให้บริการไฟล์ที่แน่นอน 19 00:00:52,200 --> 00:00:54,640 และบางส่วนของไฟล์เหล่านั้น อาจเป็นไฟล์ที่ HTML 20 00:00:54,640 --> 00:00:58,270 ดังนั้นหนึ่งในสิ่งที่เว็บเซิร์ฟเวอร์ สามารถคายอาจจะมีแฟ้มที่ 21 00:00:58,270 --> 00:01:01,290 เราก็จะวาดเช่นนี้ มีบาง HTM​​L 22 00:01:01,290 --> 00:01:04,786 ดังนั้นในแง่ของคนธรรมดาสิ่งที่ ไม่ HTML ที่ช่วยให้คุณทำ? 23 00:01:04,786 --> 00:01:06,036 >> ผู้ชม: มองหน้าดี 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID ลัน: ตกลงให้หน้าดูดี แม้ว่าฉันคิดว่าฉันได้รับการพิสูจน์ 26 00:01:12,310 --> 00:01:13,370 ที่อื่น 27 00:01:13,370 --> 00:01:18,250 ดังนั้น HTML ไม่มีช่วยให้คุณสามารถวางออกหน้า การก่อสร้างและจะช่วยให้คุณ 28 00:01:18,250 --> 00:01:22,410 การเรียงลำดับของความสุนทรีย์ทำเครื่องหมายขึ้นหน้า, ทำเครื่องหมายขึ้นเนื้อหาแบบคงที่เพื่อให้คุณ 29 00:01:22,410 --> 00:01:23,640 แล้วสามารถดูได้กับเว็บเบราเซอร์ 30 00:01:23,640 --> 00:01:24,690 >> แต่ที่สำคัญ 31 00:01:24,690 --> 00:01:26,130 มันเป็นเนื้อหาแบบคงที่ 32 00:01:26,130 --> 00:01:28,590 ที่คุณเขียนว่าคุณเก็บมันไว้ และแล้วคุณเรือ 33 00:01:28,590 --> 00:01:31,130 และเว็บเซิร์ฟเวอร์ที่ให้บริการแล้ว มันขึ้นอยู่กับผู้เข้าชมของคุณ 34 00:01:31,130 --> 00:01:35,700 >> แต่เราใช้ Stylize สิ่งที่แตกต่างกัน ภาษาทั้งหมด 35 00:01:35,700 --> 00:01:40,150 เราเริ่มต้นที่จะใช้รูปแบบจากสไตล์ แท็กบางอย่าง 36 00:01:40,150 --> 00:01:43,400 และแอตทริบิวต์สไตล์ให้เราตั้ง สิ่งที่ต้องการขนาดตัวอักษรและสี 37 00:01:43,400 --> 00:01:46,460 และคุณอาจเริ่มที่จะค้นพบ, หรือคุณเร็ว ๆ นี้จะเป็นครั้งสุดท้ายสำหรับ 38 00:01:46,460 --> 00:01:50,160 โครงการที่อาจเกิดขึ้นอื่น ๆ ยัง คุณสมบัติที่คุณสามารถใช้ในวินาที 39 00:01:50,160 --> 00:01:54,710 และดังนั้นในแง่ของคนธรรมดาสิ่งที่ จริงๆแล้วไม่วินาทีทำอะไร? 40 00:01:54,710 --> 00:01:57,810 เหล่านี้เป็นเพียงตัวอย่างดังกล่าว 41 00:01:57,810 --> 00:02:00,730 มันจะมีอะไรให้คุณทำ HTML ที่ ดูเหมือนจะไม่ได้จากสิ่งที่ 42 00:02:00,730 --> 00:02:02,606 ที่เราเคยเห็นป่านนี้? 43 00:02:02,606 --> 00:02:04,850 >> ผู้ชม: กำหนดรูปแบบด้วยตัวเอง 44 00:02:04,850 --> 00:02:06,700 >> DAVID ลัน: รูปแบบที่กำหนด ด้วยตัวเอง 45 00:02:06,700 --> 00:02:10,280 ดังนั้นการกำหนดสิ่งที่ต้องการเรียนในขณะที่คุณ อาจพบหรือไม่ซ้ำกัน 46 00:02:10,280 --> 00:02:13,800 ระบุโหนดในเอกสารดังนั้น ที่คุณสามารถ Stylize พวกเขา 47 00:02:13,800 --> 00:02:16,890 แต่โดยเฉพาะอย่างยิ่งผมบอกว่าวินาที จริงๆช่วยให้คุณสามารถใช้สิ่ง 48 00:02:16,890 --> 00:02:20,790 ไมล์สุดท้ายและช่วยให้คุณระบุมาก อย่างแม่นยำมากขึ้นความงาม, 49 00:02:20,790 --> 00:02:24,340 ในขณะที่ HTML สำหรับส่วนใหญ่ที่ช่วยให้ คุณโครงสร้างหน้าเว็บของคุณ 50 00:02:24,340 --> 00:02:27,310 >> และแม้ว่าจะมีค่าเริ่มต้นบาง เหมือนอย่างที่เราได้เห็นแท็กสำหรับ 51 00:02:27,310 --> 00:02:30,690 แท็กมุ่งหน้าซึ่งพูดประมาณ ทำสิ่งที่ยิ่งใหญ่และหนา 52 00:02:30,690 --> 00:02:34,250 นั่นเป็นคำนิยามทั่วไปสวย ของแท็ก - ขนาดใหญ่และหนา 53 00:02:34,250 --> 00:02:35,260 อะไรขนาดตัวอักษรที่เป็น? 54 00:02:35,260 --> 00:02:36,080 สีอะไรที่เป็น? 55 00:02:36,080 --> 00:02:36,890 วิธีการที่เป็นตัวหนา? 56 00:02:36,890 --> 00:02:39,830 และ CSS ช่วยให้คุณมากขึ้นอย่างประณีต สิ่งที่ปรับแต่งเช่นเดียวกับที่ 57 00:02:39,830 --> 00:02:42,150 เช่นเดียวกับรูปแบบที่เป็นบางส่วน ของคุณได้เห็น 58 00:02:42,150 --> 00:02:45,180 >> และตรงไปตรงมา, CSS เป็นบิต ของภาษายุ่ง 59 00:02:45,180 --> 00:02:48,370 มันมีประสิทธิภาพมากในการที่คุณสามารถทำให้ อักษรเว็บไซต์ที่คุณได้ใด ๆ 60 00:02:48,370 --> 00:02:51,880 เห็นในเว็บนี้ด้วย แต่ มันเป็นชนิดของอาการปวดคอ 61 00:02:51,880 --> 00:02:54,440 และบางส่วนของคุณมีการกระแทกหัวของคุณ กับผนังที่มีอยู่แล้วเพียงเพื่อทำ 62 00:02:54,440 --> 00:02:58,560 บางสิ่งบางอย่างโง่เช่นศูนย์เมนูบน ปัญหาตั้งเจ็ดถ้าคุณเคยไป 63 00:02:58,560 --> 00:02:59,470 ที่จุดแล้ว 64 00:02:59,470 --> 00:03:01,530 >> แต่ตระหนักถึงสิ่งเหล่านั้น ได้ง่ายขึ้นเมื่อเวลาผ่านไป 65 00:03:01,530 --> 00:03:02,820 คุณเริ่มสังเกตเห็นรูปแบบ 66 00:03:02,820 --> 00:03:06,020 และอีกครั้ง, Google จะเป็นเพื่อนของคุณ หาวิธีการต่างๆที่คุณสามารถ 67 00:03:06,020 --> 00:03:07,220 การแก้ปัญหาลักษณะนี้ 68 00:03:07,220 --> 00:03:11,520 >> และผมกล้าพูดกับ CSS และเพิ่มเติม HTML โดยทั่วไปคุณสามารถแก้ปัญหาใน 69 00:03:11,520 --> 00:03:15,910 วิธีอื่น ๆ อีกมากมายซึ่งทั้งหมดอาจจะมาก ความถูกต้องดีกว่าที่คุณจะทำได้ 70 00:03:15,910 --> 00:03:18,900 ในบางสิ่งบางอย่างเช่น C แม้ ขณะนี้ PHP, หรือ JavaScript 71 00:03:18,900 --> 00:03:21,080 มีเพียงจำนวนมากที่แตกต่างกัน วิธีการที่จะวางสิ่งที่ออก 72 00:03:21,080 --> 00:03:22,570 >> แต่ตอนนี้เริ่มที่จะได้รับ ยุ่งเรากล่าวว่า 73 00:03:22,570 --> 00:03:26,480 เพียงแค่ชนิดของ commingling HTML ของคุณและ ของ CSS ที่มีคุณลักษณะแบบคือ 74 00:03:26,480 --> 00:03:27,590 เล็ก ๆ น้อย ๆ เลอะเทอะ 75 00:03:27,590 --> 00:03:31,460 และเพื่อให้เราแทนกล่าวว่าการจัดเรียงของ เป็นนามธรรมพูดที่คุณควร 76 00:03:31,460 --> 00:03:34,050 อย่างน้อยเริ่มต้นที่จะเป็นปัจจัย ออก CSS ของคุณอาจ 77 00:03:34,050 --> 00:03:37,430 ไม่คุณสมบัติสไตล​​์ของคุณ แต่อย่างน้อย ใช้แท็กสไตล์ภายในสิ่ง 78 00:03:37,430 --> 00:03:38,840 ส่วนหนึ่งของหน้าเว็บ? 79 00:03:38,840 --> 00:03:39,560 >> ผู้ชม: หัวหน้า 80 00:03:39,560 --> 00:03:40,120 >> DAVID ลัน: ในหัว 81 00:03:40,120 --> 00:03:43,270 จนมาถึงตอนนี้เรามีเพียงชื่อเรื่องขึ้น มี แต่คุณยังสามารถเพิ่มสไตล์ 82 00:03:43,270 --> 00:03:47,230 แท็กและคุณสามารถใส่ของ CSS ประมาณ พูดตรงไปยังด้านบนของหน้า 83 00:03:47,230 --> 00:03:52,550 แต่แล้วเราเอาสิ่งหนึ่งขั้นตอนต่อไป และเราเอาเรื่องที่ออกมากขึ้น 84 00:03:52,550 --> 00:03:54,130 ลงในไฟล์ที่แยกต่างหาก 85 00:03:54,130 --> 00:03:57,240 >> และเพื่อให้ทั้งสองไฟล์เป็น ขณะนี้มีการเชื่อมโยงอย่างใด 86 00:03:57,240 --> 00:03:59,550 และอันที่จริงมันเป็น แท็กที่ไม่ว่า 87 00:03:59,550 --> 00:04:02,920 และสิ่งที่เป็นหนึ่งในการเสริมสร้าง แรงจูงใจสำหรับแฟออกวินาทีของเรา 88 00:04:02,920 --> 00:04:04,057 ทั้งหมดอีกหรือไม่ 89 00:04:04,057 --> 00:04:05,280 >> ผู้ชม: สามารถนำมาใช้ 90 00:04:05,280 --> 00:04:05,785 >> DAVID ลัน: สามารถนำมาใช้ 91 00:04:05,785 --> 00:04:06,150 ใช่ไหม? 92 00:04:06,150 --> 00:04:09,470 คุณอาจจะได้เห็นใน p-ชุดเจ็ดแล้ว ที่มากของหน้าเว็บ, 93 00:04:09,470 --> 00:04:12,260 ซื้อหน้าหน้าขาย หน้าผลงานที่น่าจะเป็น 94 00:04:12,260 --> 00:04:13,550 โครงสร้างค่อนข้างใกล้เคียงกัน 95 00:04:13,550 --> 00:04:17,579 มีโลโก้การเงิน CS50 ที่ด้านบนของ เว้นแต่คุณได้ตัดสินใจที่จะเปลี่ยนมัน 96 00:04:17,579 --> 00:04:19,839 มีที่ส่วนท้ายของ ด้านล่างของหน้า 97 00:04:19,839 --> 00:04:24,315 และ CSS ช่วยให้คุณแล้วปัจจัยมันออกมา มันเป็นไฟล์ที่แยกต่างหากเพื่อที่ว่าถ้า 98 00:04:24,315 --> 00:04:27,780 คุณต้องการเปลี่ยนบางสิ่งบางอย่างทั่วโลก ในเว็บไซต์ของคุณทั้งหมดที่คุณสามารถจริงๆ 99 00:04:27,780 --> 00:04:29,390 เพียงแค่เปลี่ยนมันได้ในที่เดียว 100 00:04:29,390 --> 00:04:32,750 >> แต่มีราคาที่คุณจ่ายที่อาจเกิดขึ้นคือ โดยมีปัจจัยออก 101 00:04:32,750 --> 00:04:38,380 วินาทีจากไฟล์ HTML ของฉันเป็นที่แยกต่างหาก ยื่นอ้างอิงด้วย 102 00:04:38,380 --> 00:04:40,650 แท็กที่เราเห็นในวันจันทร์ 103 00:04:40,650 --> 00:04:43,850 อะไรข้อเสียอาจจะมีนี้ 104 00:04:43,850 --> 00:04:48,830 คิดกลับสัปดาห์ที่ผ่านมาเมื่อเราอยู่ พูดคุยเกี่ยวกับ HTTP และ TCP / IP และวิธีการที่ 105 00:04:48,830 --> 00:04:52,070 ผลงานอินเทอร์เน็ต 106 00:04:52,070 --> 00:04:53,530 บางสิ่งบางอย่างที่นี่? 107 00:04:53,530 --> 00:04:54,730 >> ผู้ชม: มันต้องใช้เวลามากขึ้น 108 00:04:54,730 --> 00:04:55,470 >> DAVID ลัน: มันต้องใช้เวลามากขึ้น 109 00:04:55,470 --> 00:04:56,750 ทำไม? 110 00:04:56,750 --> 00:04:59,450 >> ผู้ชม: [ไม่ได้ยิน] 111 00:04:59,450 --> 00:04:59,750 >> DAVID ลัน: ใช่ 112 00:04:59,750 --> 00:05:01,240 ดังนั้นจึงเป็นเนื้อหาที่ต้องใช้เวลาอีกเล็กน้อย 113 00:05:01,240 --> 00:05:04,290 เพราะ, CSS จะเห็นได้ชัด ไม่ได้อยู่ในไฟล์เดียวกัน 114 00:05:04,290 --> 00:05:06,920 ดังนั้นตอนนี้คุณจะต้องทำไม่ได้ หนึ่ง แต่สองหน้า 115 00:05:06,920 --> 00:05:11,230 และแต่ละของการร้องขอเหล่านั้นอย่างที่เราเห็นใน Chrome ในที่เรียกว่าสารวัตร 116 00:05:11,230 --> 00:05:15,740 และเรามองไปที่แท็บเครือข่ายแต่ละ ของไฟล์เหล่านั้นต้องหนึ่ง HTTP 117 00:05:15,740 --> 00:05:18,360 ขอที่เราจะเห็น ระยะเวลาบางส่วน 118 00:05:18,360 --> 00:05:19,290 ตอนนี้บางทีมันอาจจะไม่มาก 119 00:05:19,290 --> 00:05:20,670 อาจจะเป็นเพียง 20 มิลลิวินาที 120 00:05:20,670 --> 00:05:22,260 อาจจะเป็น 200 มิลลิวินาที 121 00:05:22,260 --> 00:05:25,530 >> แต่คิดว่าเกี่ยวกับหน้าเช่น Facebook, หรือซีเอ็นเอ็นหรือ Google ซึ่งมีมาก 122 00:05:25,530 --> 00:05:28,060 ตัวอย่างที่มีขนาดใหญ่กว่าที่เราได้ มองที่ป่านนี้ 123 00:05:28,060 --> 00:05:32,070 หน้าเว็บเหล่านั้นอาจมีหลายสิบของไฟล์ แต่ละที่อาจจำเป็นต้องใช้ 124 00:05:32,070 --> 00:05:33,550 การดาวน์โหลดไฟล์ 125 00:05:33,550 --> 00:05:35,800 ดังนั้นสิ่งที่สามารถเกิดขึ้น เริ่มชะลอตัวลง 126 00:05:35,800 --> 00:05:39,280 >> และโดยเฉพาะอย่างยิ่งวันนี้เมื่อเราทุกคน มีโทรศัพท์มือถือในกระเป๋าของเราและ 127 00:05:39,280 --> 00:05:43,010 การเชื่อมต่ออินเทอร์เน็ตช้าลงต้อง รอมิลลิวินาทีอีกไม่กี่ไม่กี่ 128 00:05:43,010 --> 00:05:46,110 มิลลิวินาทีสำหรับการเพิ่มเติม ไฟล์ที่สามารถจริงจะช้า 129 00:05:46,110 --> 00:05:50,430 แฝงเป็นคำที่อธิบายถึง ชนิดของการรอว่าคุณมีที่คุณ 130 00:05:50,430 --> 00:05:53,110 พบเมื่อการรอคอย ชิ้นส่วนของข้อมูลบางส่วน 131 00:05:53,110 --> 00:05:54,430 >> แต่มีอัพไซด์ 132 00:05:54,430 --> 00:05:56,600 ดังนั้นจึงไม่เรียงลำดับของทั้งหมด - 133 00:05:56,600 --> 00:05:58,170 จริง ๆ แล้วมันเป็นบิตของกระดานหกที่นี่ 134 00:05:58,170 --> 00:06:02,970 ข้อเสียในขณะนี้ แต่สิ่งที่เบราว์เซอร์สามารถทำได้ หากพวกเขากำลังสมาร์ทเพื่อที่จะหลีกเลี่ยง 135 00:06:02,970 --> 00:06:08,870 ต้องขอ styles.css เดียวกัน ยื่นอีกครั้งสามารถที่จะทำอะไร 136 00:06:08,870 --> 00:06:09,390 >> แคชมัน 137 00:06:09,390 --> 00:06:10,370 ดังนั้นแคช - 138 00:06:10,370 --> 00:06:11,690 C--C-H-E - 139 00:06:11,690 --> 00:06:15,810 โดยทั่วไปหมายถึงที่นี่เพียงเพื่อประหยัด ไฟล์ที่คุณร้องขอเป็นครั้งแรกและ 140 00:06:15,810 --> 00:06:17,440 จากนั้นตรวจสอบแคชของคุณมัน 141 00:06:17,440 --> 00:06:20,400 ตรวจสอบที่คุณกำลังจัดเรียงของภาชนะที่เก็บ และถ้าคุณมีอยู่แล้ว 142 00:06:20,400 --> 00:06:24,520 สำเนาของ styles.css แม้ว่าบางอื่น ๆ หน้า-p ชุดหรือเว็บไซต์ใด ๆ 143 00:06:24,520 --> 00:06:28,560 ขอให้มันอีกครั้งเพียงเพื่อให้ ผู้ใช้ที่สำเนาแคชเดียวกัน 144 00:06:28,560 --> 00:06:30,140 ไม่รำคาญร้องขอ 145 00:06:30,140 --> 00:06:32,560 >> ข้อเสียมี แต่เป็นบางส่วนของคุณ ได้สะดุดในพีชุด 146 00:06:32,560 --> 00:06:35,870 ถ้าคุณทำการเปลี่ยนแปลงบนเซิร์ฟเวอร์และ คุณกลับไปยังเบราว์เซอร์ไปและคุณ 147 00:06:35,870 --> 00:06:39,250 โหลดเบราว์เซอร์บางครั้งไม่ คุณชอบและไม่รำคาญ 148 00:06:39,250 --> 00:06:43,660 อีกครั้งการดาวน์โหลดไฟล์ของคุณ styles.css เพราะมาในสิ่งที่มีราคาต่อรอง 149 00:06:43,660 --> 00:06:47,620 ที่รูปแบบเหล่านี้ว่า Facebook ใช้ กำลังจะเปลี่ยนชั่วโมงชั่วโมงหรือ 150 00:06:47,620 --> 00:06:48,140 ไปในแต่ละวัน 151 00:06:48,140 --> 00:06:48,800 มันต่ำสวย 152 00:06:48,800 --> 00:06:52,260 พวกเขาอาจมีการเปลี่ยนแปลงอยู่ตลอดเวลา แต่ไม่ได้ โดยนาทีหรือชั่วโมง 153 00:06:52,260 --> 00:06:55,810 >> ดังนั้นเคล็ดลับเพียง FYI เว็บเมื่อทำ การพัฒนามักจะค้าง 154 00:06:55,810 --> 00:06:59,500 เปลี่ยนที่สำคัญสำหรับตัวอย่างและจากนั้นคลิก โหลดในเบราว์เซอร์ของคุณและจะว่า 155 00:06:59,500 --> 00:07:03,280 มักจะบอกโหลดเบราว์เซอร์ ทุกอย่างแม้กระทั่งถ้าคุณมีอยู่แล้ว 156 00:07:03,280 --> 00:07:04,180 มันอยู่ในแคช 157 00:07:04,180 --> 00:07:06,630 ดังนั้นอีกครั้ง upsides และข้อเสีย, แต่ทั้งหมดของพวกเขา 158 00:07:06,630 --> 00:07:08,260 ออกแบบได้ในที่สุดการตัดสินใจ 159 00:07:08,260 --> 00:07:11,520 >> ดังนั้นตอนนี้เราไม่ได้เพียงแค่ จบเรื่องที่นี่ 160 00:07:11,520 --> 00:07:15,790 ถ้าตอนนี้ผมกลับมาและกลับมาและกลับไป ย้อนกลับไปเราเริ่มที่จะแนะนำไม่ได้เป็นเพียง 161 00:07:15,790 --> 00:07:18,060 HTML, PHP แต่ 162 00:07:18,060 --> 00:07:20,786 ดังนั้นในแง่ของคนธรรมดาสิ่งที่ PHP ไม่ให้เราทำอย่างไร 163 00:07:20,786 --> 00:07:22,770 >> ผู้ชม: [ไม่ได้ยิน] 164 00:07:22,770 --> 00:07:24,258 >> DAVID ลัน: มีอะไรที่ 165 00:07:24,258 --> 00:07:25,250 >> ผู้ชม: แนะนำตรรกะ เป็นรหัส 166 00:07:25,250 --> 00:07:26,620 >> DAVID ลัน: ใช่แนะนำ ตรรกะในรหัสของคุณ 167 00:07:26,620 --> 00:07:29,570 ดังนั้นจึงเป็นภาษาการเขียนโปรแกรมจริง ด้วยลูปและตัวแปรและ 168 00:07:29,570 --> 00:07:32,620 ฟังก์ชั่นและเงื่อนไขและทุก สิ่งที่เราได้รับใช้ทางด้านหลัง 169 00:07:32,620 --> 00:07:33,780 เมื่อตั้งแต่เริ่มต้น 170 00:07:33,780 --> 00:07:36,780 และ PHP เราได้เห็นสามารถใช้ ทั้งที่บรรทัดคำสั่ง - มัน 171 00:07:36,780 --> 00:07:39,190 ไม่จำเป็นต้องมีสิ่งที่จะทำ กับเว็บแม้ว่าที่ 172 00:07:39,190 --> 00:07:43,150 จริงๆต้นกำเนิดและสิ่งที่มันมีแนวโน้มของ จะเป็นสิ่งที่ดีที่และเอื้อต่อการ - 173 00:07:43,150 --> 00:07:47,130 แต่คุณสามารถใช้ PHP เพียงโดยธรรมชาติ ความจริงที่ว่าจะมีการพิมพ์ () 174 00:07:47,130 --> 00:07:49,660 ฟังก์ชั่นและ printf () ฟังก์ชันที่ หรือก้อง () ฟังก์ชัน 175 00:07:49,660 --> 00:07:52,440 มีอัดแน่นของวิธีที่เป็นคุณ สามารถพิมพ์ข้อความด้วย PHP 176 00:07:52,440 --> 00:07:56,540 >> ดังนั้นคุณสามารถใช้โปรแกรมนี้ ภาษาในการส่งออกว่า 177 00:07:56,540 --> 00:07:58,460 สิ่งที่เรากำลังพูดคุยเกี่ยวกับก่อนที่จะ 178 00:07:58,460 --> 00:08:01,360 คุณสามารถสร้างแบบไดนามิก HTML ของคุณ 179 00:08:01,360 --> 00:08:02,300 อาจจะไม่ทั้งหมดของมัน 180 00:08:02,300 --> 00:08:06,460 บางทีคุณอาจจะยากสิ่งรหัสเช่น ส่วนหัวและส่วนท้ายและโลโก้ 181 00:08:06,460 --> 00:08:07,950 และแผ่นสไตล์ของคุณ และทุกที่ 182 00:08:07,950 --> 00:08:11,190 แต่สำหรับสิ่งที่ต้องการพีตั้งเจ็ด ที่คุณกำลังจัดการกับหุ้นและ 183 00:08:11,190 --> 00:08:14,690 การแสดงผลงานของผู้ใช้ซึ่งเป็น จะเปลี่ยนแบบไดนามิกที่คุณสามารถ 184 00:08:14,690 --> 00:08:18,960 ก็ใช้ PHP และตรรกะจะช่วยให้ คุณเป็นภาษาเขียนโปรแกรมที่จะ 185 00:08:18,960 --> 00:08:22,320 เอาท์พุทแบบไดนามิกย่อย ของหน้า 186 00:08:22,320 --> 00:08:25,900 >> ดังนั้นเมื่อคุณพูดคุยเกี่ยวกับเว็บไซต์แบบไดนามิก หรือการเขียนโปรแกรมเว็บที่ 187 00:08:25,900 --> 00:08:27,200 สิ่งที่คุณกำลังพูดถึงจริงๆ 188 00:08:27,200 --> 00:08:31,450 การใช้ภาษาเช่น PHP หรือสิ่งที่ ที่เรียกว่างูหลามหรือทับทิมหรือ Java หรือ 189 00:08:31,450 --> 00:08:35,900 ยังภาษาอื่น ๆ ในการสืบค้นฐานข้อมูล บ่อยหรือเซิร์ฟเวอร์อื่นและ 190 00:08:35,900 --> 00:08:38,580 แล้วคายออก HTML แบบไดนามิก 191 00:08:38,580 --> 00:08:42,470 >> ตอนนี้ผลที่สุดเป็นกันเป็น ที่ HTML ของเว็บไซต์มากที่สุด 192 00:08:42,470 --> 00:08:45,970 รวมทั้งพีตั้งเจ็ดของคุณอาจจะเป็น จะเป็นระเบียบมากถ้า 193 00:08:45,970 --> 00:08:48,060 คุณมองไปที่แหล่งที่มา รหัสในเบราว์เซอร์ 194 00:08:48,060 --> 00:08:49,010 นั่นไม่ใช่เรื่องใหญ่ 195 00:08:49,010 --> 00:08:51,550 ณ จุดนี้เมื่อเราดูแลเกี่ยวกับ สไตล์เราดูแลเกี่ยวกับ 196 00:08:51,550 --> 00:08:52,740 สิ่งที่คุณเขียน 197 00:08:52,740 --> 00:08:56,240 เราจะไม่สนใจเกี่ยวกับสิ่งที่ ว่าสิ่งที่ออกรหัสของคุณ 198 00:08:56,240 --> 00:08:59,520 จึงไม่ต้องกังวลเกี่ยวกับการเยื้อง นี่ถ้าเป็น PHP ที่ 199 00:08:59,520 --> 00:09:01,190 สิ่งที่จริงการแสดงผล 200 00:09:01,190 --> 00:09:04,430 หลังจากที่ทุกเบราว์เซอร์จะไม่สนใจ และมนุษย์จะไม่ได้มอง 201 00:09:04,430 --> 00:09:05,400 ที่แหล่งที่มาต่อไป 202 00:09:05,400 --> 00:09:09,000 เราพนักงานตัวอย่างเช่นจะ จะดูที่ PHP ของคุณ 203 00:09:09,000 --> 00:09:13,440 >> เพื่อให้ฉันให้ตัวอย่างรวดเร็วในขณะนี้ ว่าทำไมคนนี้อาจจะมีประโยชน์ 204 00:09:13,440 --> 00:09:18,620 ดังนั้นตรงไปตรงมาผมจำไม่ได้แล้ว ทุกครั้งที่ผมใช้ C ที่จะแก้ปัญหาใน 205 00:09:18,620 --> 00:09:19,620 โลกแห่งความจริง 206 00:09:19,620 --> 00:09:22,330 มันอาจจะอยู่ในโรงเรียนที่จบการศึกษาเมื่อ ผมจำเป็นต้องมีการใช้ภาษาที่ 207 00:09:22,330 --> 00:09:26,710 เป็นระดับที่ค่อนข้างต่ำและให้ฉัน โอกาสที่จะทำบางสิ่งบางอย่างที่สูงมาก 208 00:09:26,710 --> 00:09:30,720 การปฏิบัติที่จะช่วยจริงๆมากที่สุดเท่าที่ซีพียู รอบเท่าที่จะทำได้ในส่วนใหญ่ 209 00:09:30,720 --> 00:09:33,990 เพราะผมใช้ชุดข้อมูลขนาดใหญ่ และวงจร CPU ทุกนับ 210 00:09:33,990 --> 00:09:37,750 และตรงไปตรงมาแม้จะอยู่ในสิ่งที่ต้องการโทรศัพท์ วันนี้และอุปกรณ์อื่น ๆ 211 00:09:37,750 --> 00:09:39,910 ที่คุณไม่ค่อนข้างมีมากที่สุดเท่าที่ หน่วยความจำและคุณไม่ค่อนข้างมีฐานะ 212 00:09:39,910 --> 00:09:44,160 CPU มากโดยใช้ภาษาได้เร็วขึ้น ยังคงเป็นที่น่าสนใจ 213 00:09:44,160 --> 00:09:47,290 >> แต่ในโลกแห่งความเป็นจริงเมื่อคุณเพียงแค่ ต้องการที่จะโยนโปรแกรมบางอย่างร่วมกันเพื่อ 214 00:09:47,290 --> 00:09:50,340 วิเคราะห์ข้อมูลบางอย่างหรือที่คุณได้เก็บรวบรวม ทั้งกลุ่มสมาชิกเพื่อ 215 00:09:50,340 --> 00:09:53,330 บางกลุ่มนักเรียนและคุณต้องการมาก ได้อย่างรวดเร็วโดยอัตโนมัติการส่งอีเมล์ 216 00:09:53,330 --> 00:09:56,240 หนึ่งโดยหนึ่งเพื่อให้ทุกคนที่ จดทะเบียนที่คุณจะเข้าถึงสำหรับ 217 00:09:56,240 --> 00:09:59,240 ภาษาระดับที่สูงขึ้น กว่า C จึงจะพูด 218 00:09:59,240 --> 00:10:04,060 บางอย่างเช่น PHP หรืองูหลามหรือทับทิม หรือครึ่งโหลคนอื่น ๆ ที่มีอยู่ 219 00:10:04,060 --> 00:10:04,550 วันนี้ 220 00:10:04,550 --> 00:10:07,200 แต่ทั้งสามน่าจะเป็น อินเทรนด์มากที่สุดตอนนี้ 221 00:10:07,200 --> 00:10:10,840 >> และสิ่งที่หมายถึงนี้คือที่คุณสามารถเปิด ขึ้นโปรแกรมแก้ไขข้อความเช่น Gedit หรือ 222 00:10:10,840 --> 00:10:14,030 อะไรอื่นมากที่สุดแล้วเพียงแค่เริ่มต้น การเขียนโค้ดโดยไม่ต้องกังวล 223 00:10:14,030 --> 00:10:17,800 เกี่ยวกับการรวบรวมโดยไม่ต้อง จริงๆต้องกังวลเกี่ยวกับการจัดการหน่วยความจำ 224 00:10:17,800 --> 00:10:20,820 การรักษาในใจว่าที่น้อย ความฉาบฉวยในที่สุดก็จะกลับมา 225 00:10:20,820 --> 00:10:24,790 ที่จะกัดคุณถ้าชุดข้อมูลที่ได้รับ ขนาดใหญ่หรือมีปัญหาที่ได้รับใหญ่ 226 00:10:24,790 --> 00:10:27,230 แต่สิ่งนี้หมายความว่า เราเป็นดังต่อไปนี้ 227 00:10:27,230 --> 00:10:29,860 >> ให้ฉันไปข้างหน้าและเรียกใช้สะกด จากปัญหาการตั้งหก 228 00:10:29,860 --> 00:10:33,480 ดังนั้นนี่คือการดำเนินการตาม Trie ที่ของฉัน ที่ผมนำมาใช้ในขนาดใหญ่ 229 00:10:33,480 --> 00:10:35,500 คณะกรรมการดำเนินการที่ฉันไม่ได้เป็นอย่างดี 230 00:10:35,500 --> 00:10:38,720 เราจะกลับมาในเวลาหนึ่งสัปดาห์และ มายังผู้ที่ไม่สิ้นสุดบนยอด 231 00:10:38,720 --> 00:10:40,430 กระดานใหญ่ที่บรรยายครั้งสุดท้ายของเรา 232 00:10:40,430 --> 00:10:44,520 แต่ตอนนี้ให้ฉันไปข้างหน้าและเพียงแค่ ทำงานแก้ปัญหาของฉันในข้อความและเราจะทำ 233 00:10:44,520 --> 00:10:48,460 คิงเจมส์ไบเบิลและที่นี่เราไป 234 00:10:48,460 --> 00:10:51,080 >> ดังนั้นผู้ที่มีทั้งหมดของการคาดคะเน คำที่สะกดผิดออกจาก 235 00:10:51,080 --> 00:10:52,240 คิงเจมส์ไบเบิล 236 00:10:52,240 --> 00:10:55,560 และการดำเนินการของฉันเอา ครึ่งหลังทั้งหมด 237 00:10:55,560 --> 00:10:58,270 จึงไม่เลวร้ายเกินไปเกี่ยวกับเรื่องนี้ คอมพิวเตอร์โดยเฉพาะอย่างยิ่ง 238 00:10:58,270 --> 00:11:01,540 แต่คิดว่าเท่าไหร่ รหัสฉันได้เขียน 239 00:11:01,540 --> 00:11:02,880 คิดว่าวิธีการรหัสที่คุณต้องเขียน 240 00:11:02,880 --> 00:11:06,170 คิดจำนวนชั่วโมงที่คุณใช้ใน D-ห้องโถงหรือหอพักของคุณหรือที่ใดก็ตาม 241 00:11:06,170 --> 00:11:07,890 การเข้ารหัสขึ้นจริงการแก้ปัญหาที่ 242 00:11:07,890 --> 00:11:11,850 >> ดีถ้าฉันจะมีระดับที่สูงขึ้น ภาษาเช่น PHP, จดบันทึก 243 00:11:11,850 --> 00:11:13,350 สิ่งที่ฉันสามารถทำอะไรที่นี่ 244 00:11:13,350 --> 00:11:16,410 ครั้งแรกคิดว่านี้เป็นแทน รหัสการกระจายของคุณ 245 00:11:16,410 --> 00:11:17,790 นี้เป็นไฟล์ที่เรียกว่าสะกด 246 00:11:17,790 --> 00:11:20,220 มันสามารถเป็นส่วนหนึ่งของวันนี้ รหัสการกระจาย 247 00:11:20,220 --> 00:11:22,670 และฉันจะโบกมือของฉันที่มากที่สุด รายละเอียด แต่นี้เป็นจริง 248 00:11:22,670 --> 00:11:25,500 ตัวอย่างที่น่าสนใจของวิธี คุณอาจพอร์ตภาษา 249 00:11:25,500 --> 00:11:28,870 เช่น C ไปยัง PHP 250 00:11:28,870 --> 00:11:33,420 แท้จริงฉันเปิดสองหน้าต่างข้อความ อย่างใดอย่างหนึ่งกับรุ่น C ของฉัน speller.c, 251 00:11:33,420 --> 00:11:36,960 และฉันเพิ่งเริ่มต้นในการแปลของฉัน มุ่งหน้าไปยัง PHP และพิมพ์ออกมาใช้ 252 00:11:36,960 --> 00:11:38,840 ฟังก์ชั่นเทียบเท่าที่ใกล้เคียงที่สุด 253 00:11:38,840 --> 00:11:40,100 >> ดังนั้นบางสิ่งเหล่านี้จะแตกต่างกัน 254 00:11:40,100 --> 00:11:43,730 เราเห็นครั้งสุดท้ายที่ PHP ไม่ได้ใช้ รวมอยู่ในค่อนข้างวิธีเดียวกัน 255 00:11:43,730 --> 00:11:47,050 จะใช้ต้องใช้โดยทั่วไปจะมี แต่ รวมถึงการไม่อยู่ 256 00:11:47,050 --> 00:11:50,330 กำหนดเป็นเพียงเล็กน้อยที่แตกต่างจาก # กำหนดใน C แต่ที่ 257 00:11:50,330 --> 00:11:51,890 วิธีการที่เราทำอย่างต่อเนื่อง 258 00:11:51,890 --> 00:11:55,860 $ argc ปรากฎอยู่ใน PHP ดังนั้นเราจึงได้เห็นว่าก่อน 259 00:11:55,860 --> 00:11:58,650 เหล่านี้เป็นเพียงตัวแปรทั้งหมด ซึ่งเริ่มต้นด้วยสัญญาณดอลลาร์ 260 00:11:58,650 --> 00:12:00,590 จำเหล่านี้เป็นเพียงพวง จุดลอย 261 00:12:00,590 --> 00:12:03,970 >> ดังนั้นเรื่องยาวสั้นคุณจะยินดีต้อนรับเข้าสู่ พลิกนี้ถ้าอยากรู้อยากเห็นนี้เป็น 262 00:12:03,970 --> 00:12:10,010 เกือบแปลงสายสำหรับสายของ รุ่น C ของ speller.c เป็น PHP 263 00:12:10,010 --> 00:12:12,630 และคุณสามารถทำเช่นนี้อีกครั้งสำหรับ ครึ่งโหลภาษาอื่น ๆ 264 00:12:12,630 --> 00:12:14,910 >> แต่สิ่งที่น่าสนใจคือ 265 00:12:14,910 --> 00:12:16,910 หรือสิ่งที่ตรงไปตรงมาซึ่งทำให้หมดกำลังใจ เป็นแบบนี้ 266 00:12:16,910 --> 00:12:20,790 ให้ฉันไปข้างหน้าและพิมพ์เกี่ยวกับ dictionary.php และเรียกร้องว่าฉัน 267 00:12:20,790 --> 00:12:23,670 จะไปข้างหน้าและกลับมาดำเนินการ ปัญหาที่นี่ตั้งหก 268 00:12:23,670 --> 00:12:27,530 >> จึงขอเสนอว่าในครั้งแรกนี้ ไฟล์ที่จะดำเนินการใน 269 00:12:27,530 --> 00:12:30,550 PHP เพื่อให้ฉันเปิดป้ายของฉันเช่นนั้น 270 00:12:30,550 --> 00:12:34,780 ผมขอให้ตัวเองทั่วโลก ตัวแปร $ ขนาดได้รับเป็นศูนย์ 271 00:12:34,780 --> 00:12:36,710 และฉันจะให้ ตัวเองตารางแฮช 272 00:12:36,710 --> 00:12:38,110 ผมจะใช้ตารางแฮชสำหรับสิ่งนี้ 273 00:12:38,110 --> 00:12:42,070 ฉันจะประกาศตารางแฮชวิธีการใน PHP? 274 00:12:42,070 --> 00:12:42,990 ทำ 275 00:12:42,990 --> 00:12:43,980 ตกลง 276 00:12:43,980 --> 00:12:48,870 >> วงเล็บเปิดเพื่อให้วงเล็บใกล้เคียงแสดงให้เห็นถึง สิ่งที่ใน PHP, ในขณะที่เราได้เห็น? 277 00:12:48,870 --> 00:12:51,850 อาร์เรย์ แต่อาร์เรย์ที่สามารถ เป็นอาเรย์ 278 00:12:51,850 --> 00:12:54,320 อาเรย์เป็น โครงสร้างข้อมูลที่ 279 00:12:54,320 --> 00:12:55,860 คีย์ร่วมที่มีค่า 280 00:12:55,860 --> 00:12:59,430 >> ขณะนี้ในการจัดทำดัชนีตัวเลขง่าย อาร์เรย์คีย์เหล่านั้นคืออะไร 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 ศูนย์หนึ่งสองสามใช่มั้ย? 283 00:13:03,960 --> 00:13:08,780 โรงเรียนเก่าสิ่งที่กลับมาจาก C. แต่ก็สามารถ นอกจากนี้ยังมีสายเช่น foo และบาร์ 284 00:13:08,780 --> 00:13:12,210 หรือแมกซ์เวลหรือสตริงดังกล่าว 285 00:13:12,210 --> 00:13:14,240 เพื่อให้สามารถใช้ประโยชน์จากการที่ ในเวลาเพียงสักครู่ 286 00:13:14,240 --> 00:13:17,550 >> ให้ฉันไปข้างหน้าและประกาศ ฟังก์ชั่นเช่น - 287 00:13:17,550 --> 00:13:19,020 ขอทำโหลด () เป็นครั้งแรก 288 00:13:19,020 --> 00:13:20,690 ดังนั้นภาระ () ฟังก์ชัน 289 00:13:20,690 --> 00:13:23,440 และ PHP เป็นเพียงเล็กน้อยที่แตกต่างกันในการที่ คุณอย่างแท้จริงประเภทฟังก์ชั่น แต่คุณ 290 00:13:23,440 --> 00:13:24,930 ไม่ต้องพิมพ์ชนิดกลับ 291 00:13:24,930 --> 00:13:28,760 ฉันจะไปข้างหน้าและบอกว่า โหลด (ฟังก์ชัน) ควรใช้เวลาในการ 292 00:13:28,760 --> 00:13:31,000 อาร์กิวเมนต์ $ พจนานุกรมเพียง เช่นรุ่น C ได้ 293 00:13:31,000 --> 00:13:32,510 ที่ฉันทำว่าจากหน่วยความจำ 294 00:13:32,510 --> 00:13:34,910 >> และผมเสนอว่าผม จะทำเช่นนี้ 295 00:13:34,910 --> 00:13:37,080 ฉันก็จะทำ foreach 296 00:13:37,080 --> 00:13:40,710 ฉันจะเรียกใช้ฟังก์ชันที่เรียกว่า ยื่น () ผ่านในชื่อของว่า 297 00:13:40,710 --> 00:13:44,990 ไฟล์ที่เป็นตัวแปร $ $ พจนานุกรมเป็นคำ 298 00:13:44,990 --> 00:13:49,410 แล้วภายในของฉันสำหรับวงที่นี่ผม จะไปข้างหน้าและเก็บไว้ในของฉัน 299 00:13:49,410 --> 00:13:57,440 ตารางที่ $ $ คำที่ได้รับจริง 300 00:13:57,440 --> 00:13:57,918 ทำ 301 00:13:57,918 --> 00:14:01,264 โอ้รอสักครู่ 302 00:14:01,264 --> 00:14:02,422 ทำ 303 00:14:02,422 --> 00:14:02,760 ตกลง 304 00:14:02,760 --> 00:14:04,970 >> ที่มีฟังก์ชั่นโหลด () พูดใน PHP 305 00:14:04,970 --> 00:14:05,865 ตอนนี้ทำไมไม่ทำงานที่? 306 00:14:05,865 --> 00:14:07,010 และฉันชนิดของการโกงที่นี่ 307 00:14:07,010 --> 00:14:09,980 >> ดังนั้นหนึ่ง, foreach เราเห็น ในเวลาสั้น ๆ เป็นครั้งสุดท้าย 308 00:14:09,980 --> 00:14:13,680 มันก็หมายความว่าคุณสามารถย้ำกว่า อาร์เรย์โดยไม่ต้องรบกวนด้วยครับ 309 00:14:13,680 --> 00:14:16,150 และ n และบวกบวกและทุกที่ 310 00:14:16,150 --> 00:14:21,350 พจนานุกรมเป็นหลักสูตรที่ชื่อไฟล์ สิ่งที่ต้องการขนาดใหญ่หรือขนาดเล็กสอง 311 00:14:21,350 --> 00:14:22,830 พจนานุกรมที่เราใช้ครั้งสุดท้าย 312 00:14:22,830 --> 00:14:26,715 ไฟล์ฟังก์ชั่นที่เปิดขึ้นข้อความ ไฟล์อ่านมันในบรรทัดและ 313 00:14:26,715 --> 00:14:29,840 มือคุณสำรองอาร์เรย์ขนาดใหญ่ แต่ละองค์ประกอบที่มีคือ 314 00:14:29,840 --> 00:14:31,340 เส้นจากแฟ้มที่ 315 00:14:31,340 --> 00:14:36,040 เพื่อให้การรวมกันของ fopen และ fread และห่วงขณะและเปลี่ยนชื่อ, 316 00:14:36,040 --> 00:14:37,080 และทุกที่ 317 00:14:37,080 --> 00:14:40,150 สุดท้ายเป็นคำก็หมายความว่า ตัวแปรที่ฉันจะมีการเข้าถึง 318 00:14:40,150 --> 00:14:41,890 ซ้ำในวงนี้ทุกคน 319 00:14:41,890 --> 00:14:46,910 >> ดังนั้นในระยะสั้นนี้เป็นหนึ่งในสายการบินที่นี่หมายความว่า เปิดไฟล์ที่มีชื่ออยู่ใน 320 00:14:46,910 --> 00:14:50,750 พจนานุกรมตัวแปรย้ำกว่า มันทีละบรรทัดและเวลาที่คุณได้รับในแต่ละ 321 00:14:50,750 --> 00:14:54,290 สายเก็บในคำที่เรียกว่าตัวแปร แล้วทำอะไรกับคำว่า 322 00:14:54,290 --> 00:14:55,280 อะไรที่ฉันต้องการทำอะไร? 323 00:14:55,280 --> 00:14:58,110 ผมต้องการที่จะใส่คำลงในตารางแฮชของฉัน 324 00:14:58,110 --> 00:15:00,860 >> ดีฉันสามารถใส่บางสิ่งบางอย่างในของฉัน ตารางแฮชเช่นเดียวกับในภาษา C 325 00:15:00,860 --> 00:15:02,140 การใช้วงเล็บ 326 00:15:02,140 --> 00:15:03,660 นี่คือชื่อสำหรับตารางแฮชของฉัน 327 00:15:03,660 --> 00:15:07,180 ฉันจะเป็นดัชนีกัญชาที่ ตารางสถานที่นี้ 328 00:15:07,180 --> 00:15:08,920 จึงไม่ยึดศูนย์ไม่ได้เป็นหนึ่งวงเล็บ 329 00:15:08,920 --> 00:15:11,990 ยึดบางสิ่งบางอย่างไม่ได้นำมาอ้างอ้าง สิ่งที่คำที่เป็น 330 00:15:11,990 --> 00:15:15,200 และเช่นเดียวกับที่คุณอาจมีในของคุณ ตาราง Trie กัญชาทำงานคุณเพียงแค่เก็บ 331 00:15:15,200 --> 00:15:17,650 ได้อย่างมีประสิทธิภาพบูลีนโดยปริยาย หรืออย่างชัดเจน 332 00:15:17,650 --> 00:15:18,260 ทำ 333 00:15:18,260 --> 00:15:20,000 ผมเก็บค่าที่แท้จริง 334 00:15:20,000 --> 00:15:23,150 >> ขณะนี้มีสองสิ่งที่คน ผมตัดมุมเมื่อที่นี่ 335 00:15:23,150 --> 00:15:27,720 เทคนิคมีความเป็นไปได้ บรรทัดใหม่ที่น่ารำคาญ / n, ในตอนท้ายของ 336 00:15:27,720 --> 00:15:28,820 แต่ละคำพูดเหล่านี้ 337 00:15:28,820 --> 00:15:31,770 ดังนั้นฉันอาจจะเรียกฟังก์ชัน PHP สับที่เรียกว่า () ซึ่งจะ 338 00:15:31,770 --> 00:15:33,460 ค่อนข้างอักษรสับปิดที่ 339 00:15:33,460 --> 00:15:35,020 และที่จริงผมต้อง ทำสิ่งหนึ่งที่อื่น ๆ 340 00:15:35,020 --> 00:15:38,380 ฉันอาจจะเพิ่มขึ้นในแต่ละขนาด ซ้ำดังนั้นฉันติดตาม 341 00:15:38,380 --> 00:15:39,560 ทั่วโลกจากสิ่งที่มันเป็น 342 00:15:39,560 --> 00:15:43,180 และตรงไปตรงมาและนี่คือหนึ่งใน ด้าน stupider ของ PHP ถ้าคุณ 343 00:15:43,180 --> 00:15:46,950 โดยใช้ตัวแปรทั่วโลกคุณจะต้อง พูดอย่างชัดเจนว่าคุณเป็น 344 00:15:46,950 --> 00:15:51,670 ดังนั้นฉันจะพิมพ์จริงในโลก ขนาด $ $ ตารางทั่วโลกและตอนนี้ 345 00:15:51,670 --> 00:15:52,690 ฟังก์ชั่นของฉันเสร็จสมบูรณ์ 346 00:15:52,690 --> 00:15:57,475 >> ดังนั้นไม่ได้ค่อนข้างง่ายเหมือนก่อน แต่ อาจจะใช้เวลาน้อยกว่า C 347 00:15:57,475 --> 00:15:58,220 รุ่นอาจจะ? 348 00:15:58,220 --> 00:15:58,730 ตกลง 349 00:15:58,730 --> 00:16:00,390 >> ดังนั้นตอนนี้เราจะดำเนินการตรวจสอบ () ฟังก์ชัน 350 00:16:00,390 --> 00:16:04,300 ขอดูว่านี้อย่างน้อยเอา ชั่วโมงที่สิ้นสุดว่ามันจะพาเราไปใน C. ดังนั้น 351 00:16:04,300 --> 00:16:06,500 ให้ฉันไปข้างหน้าและประกาศ ตรวจสอบในขณะที่ฟังก์ชั่น 352 00:16:06,500 --> 00:16:09,070 จะใช้เวลาในการโต้แย้งคำซึ่งเป็น จะมาจากการสะกด 353 00:16:09,070 --> 00:16:13,410 และฉันก็จะตรวจสอบว่า ดังต่อไปนี้ isset ตารางตัวแปร 354 00:16:13,410 --> 00:16:18,400 Strtolower วงเล็บของคำ - 355 00:16:18,400 --> 00:16:20,590 ให้ความสมดุลของทุกวงเล็บของฉัน - 356 00:16:20,590 --> 00:16:24,275 แล้วกลับจริง 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 อื่น ๆ - 359 00:16:28,460 --> 00:16:30,330 นั่นก็เป็นเรื่องยาก ส่วนหนึ่งของโครงการนี​​้ 360 00:16:30,330 --> 00:16:31,940 อื่นกลับเท็จ 361 00:16:31,940 --> 00:16:32,630 ทำ 362 00:16:32,630 --> 00:16:33,460 ที่ตรวจสอบ () 363 00:16:33,460 --> 00:16:34,520 >> ตอนนี้ทำไมงานนี้? 364 00:16:34,520 --> 00:16:37,040 ดีหนึ่งฉันผ่านในคำ, ซึ่งเป็นสตริง 365 00:16:37,040 --> 00:16:41,400 สองผมตรวจสอบภายในของกัญชา ตารางที่เรียกว่าตาราง $ 366 00:16:41,400 --> 00:16:45,470 ผมบังคับให้มันเป็นตัวพิมพ์เล็กโดยการเรียก ฟังก์ชั่นที่คล้ายกันค่อนข้าง ToLower () ใน 367 00:16:45,470 --> 00:16:48,580 C แต่นี้จะทั้งคำ, ไม่ได้เป็นตัวอักษรตัวเดียว 368 00:16:48,580 --> 00:16:52,680 และหากที่มีการตั้งค่าในคำอื่น ๆ ที่มี คือชุดมูลค่าในคำอื่น ๆ , 369 00:16:52,680 --> 00:16:54,880 ถ้ามันเป็นความจริงแล้วใช่ นี้เป็นคำที่ 370 00:16:54,880 --> 00:16:56,530 เพราะผมวางไว้ที่นั่นกับโหลด () 371 00:16:56,530 --> 00:16:59,100 และหากไม่ได้ที่ฉันจะกลับเท็จ 372 00:16:59,100 --> 00:17:00,090 >> ตอนนี้คนอื่น ๆ ได้ง่าย 373 00:17:00,090 --> 00:17:03,570 ขนาดฟังก์ชั่น () ฉันจะทำเช่นนี้? 374 00:17:03,570 --> 00:17:05,230 ฉันเป็นหลักจะกลับมาขนาด $ 375 00:17:05,230 --> 00:17:07,770 แต่ในทางเทคนิคต้อง ทำเช่นนี้สิ่งที่น่ารำคาญ 376 00:17:07,770 --> 00:17:10,640 และที่จริงขึ้นได้ยินฉันถูกตัด มุมหนึ่งมากเกินไป 377 00:17:10,640 --> 00:17:12,920 ผมต้องทำตาราง $ ทั่วโลก 378 00:17:12,920 --> 00:17:16,260 >> แต่ที่ถูกกล่าวว่าขน) 379 00:17:16,260 --> 00:17:17,380 ยกเลิกการโหลด () เป็นที่น่าตื่นตาตื่นใจ 380 00:17:17,380 --> 00:17:20,500 ทำงานขน () 381 00:17:20,500 --> 00:17:23,990 ฉันต้องการที่จะใช้ขน ()? 382 00:17:23,990 --> 00:17:25,079 ทำ 383 00:17:25,079 --> 00:17:25,450 ตกลง 384 00:17:25,450 --> 00:17:28,900 >> ดังนั้นขน (), การจัดการหน่วยความจำ ได้รับการดูแลอย่างสมบูรณ์ของคุณใน 385 00:17:28,900 --> 00:17:31,800 บางสิ่งบางอย่างเช่น PHP และมาก ของภาษาในระดับสูง 386 00:17:31,800 --> 00:17:32,600 ดังนั้นนี้เป็นที่น่าตื่นตาตื่นใจ 387 00:17:32,600 --> 00:17:36,080 ชอบทำไมนรกพวกเราใช้เวลาที่ผ่านมา แปดสัปดาห์บวกกับการเขียน C 388 00:17:36,080 --> 00:17:41,030 เห็นได้ชัดว่าช้าจริงๆเวลาจริงๆ ปัญหาการบริโภคที่มีหลายสิบชั่วโมง 389 00:17:41,030 --> 00:17:42,530 ของการทำงานภายใต้เข็มขัดของเราหรือไม่ 390 00:17:42,530 --> 00:17:46,110 >> ดีสำหรับสิ่งหนึ่งนี้อาจทำงาน ที่ดีสำหรับโปรแกรมขนาดเล็ก 391 00:17:46,110 --> 00:17:47,840 แน่นอนมันเร่งความเร็วขึ้นของฉัน เวลาในการพัฒนา 392 00:17:47,840 --> 00:17:49,790 แต่เรามาดูสิ่งที่เกิดขึ้น ในโลกแห่งความจริง 393 00:17:49,790 --> 00:17:52,370 >> ให้ฉันไปลงในไดเรกทอรีนี้ ในหน้าต่าง terminal 394 00:17:52,370 --> 00:17:53,370 มีสะกดว่า 395 00:17:53,370 --> 00:17:56,570 และสังเกตเห็นเป็นกันและคุณอาจ ได้พบชุดปัญหานี้ใน 396 00:17:56,570 --> 00:17:58,190 หกหรือเจ็ดชุดปัญหา 397 00:17:58,190 --> 00:18:01,610 คุณไม่ต้องอย่างเคร่งครัด จบไฟล์ PHP กับ. PHP 398 00:18:01,610 --> 00:18:05,250 หากคุณใส่เส้นเช่นคนแรกที่ ด้านบนมากว่าเป็นสายพิเศษ 399 00:18:05,250 --> 00:18:10,980 ของไวยากรณ์ที่เป็นหลักหมายถึงการหา โปรแกรมที่เรียกว่า PHP และใช้มันเพื่อ 400 00:18:10,980 --> 00:18:12,270 ตีความแฟ้มนี้ 401 00:18:12,270 --> 00:18:15,410 ดังนั้นตอนนี้ไม่มีใครรู้ว่า ฉันกำลังทำงานโปรแกรม PHP 402 00:18:15,410 --> 00:18:19,860 ฉันสามารถเรียกใช้มันเหมือนกับว่ามัน บางสิ่งบางอย่างที่ถูกรวบรวมใน C. 403 00:18:19,860 --> 00:18:20,650 >> แต่นี่คือสิ่งที่ 404 00:18:20,650 --> 00:18:21,600 ที่จริงเราทำเช่นนี้อีกครั้ง 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 / 406 00:18:23,530 --> 00:18:25,390 มีสะกดว่า 407 00:18:25,390 --> 00:18:26,720 ตกลง 0.44 วินาที 408 00:18:26,720 --> 00:18:28,080 มันได้เร็วขึ้นในเวลานี้ 409 00:18:28,080 --> 00:18:29,745 >> ตอนนี้ขอไปเป็น PHP รุ่น 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 สัมผัสที่ดี 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 แต่เพียงแค่คิดว่าเวลาเท่าใด ผมบันทึกไว้ที่เวลาทำงาน 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 ตกลง 416 00:18:57,790 --> 00:19:01,020 >> ดังนั้น 3.59 วินาทีซึ่งอันที่จริง ไม่ได้เสียงที่ถูกต้องอย่างใดอย่างหนึ่ง 417 00:19:01,020 --> 00:19:03,710 แต่นั่นเป็นเพราะเรื่องยาวสั้น เมื่อคุณพิมพ์ออกเป็นจำนวนมาก 418 00:19:03,710 --> 00:19:06,840 ของสิ่งที่หน้าจอว่า ตัวเองช้าลง 419 00:19:06,840 --> 00:19:11,260 สิ่งที่มันจริงๆเอาซีพียูใน เครื่องใช้เป็น 3.59 วินาทีใน 420 00:19:11,260 --> 00:19:15,260 ความคมชัดที่ C ซึ่งเกิด 0.44 วินาทีมากที่สุดเมื่อเร็ว ๆ นี้ 421 00:19:15,260 --> 00:19:17,620 ที่จริงคำสั่งของ ขนาดที่แตกต่างกัน 422 00:19:17,620 --> 00:19:20,280 >> เพื่อที่จะได้ราคาที่มาจากไหน 423 00:19:20,280 --> 00:19:21,790 มันเป็นไปอย่างช้ามากทำไม? 424 00:19:21,790 --> 00:19:24,220 ทำไม PHP จึงดำเนินการไม่ดี 425 00:19:24,220 --> 00:19:25,242 แดเนียล? 426 00:19:25,242 --> 00:19:26,550 >> ผู้ชม: คุณไม่ได้จริงๆ ใช้ตารางแฮช 427 00:19:26,550 --> 00:19:27,710 >> DAVID ลัน: ผมไม่ได้จริงๆ ใช้ตารางแฮช 428 00:19:27,710 --> 00:19:28,760 ดังนั้นผมชนิดของได้ 429 00:19:28,760 --> 00:19:29,870 ดังนั้นจึงเป็นอาเรย์ 430 00:19:29,870 --> 00:19:33,650 ส่วนใหญ่ถ้าคนที่เป็น PHP สมาร์ทจริงๆพวกเขานำมาใช้ภายใต้ 431 00:19:33,650 --> 00:19:39,520 เครื่องดูดควันตารางแฮชที่เกิดขึ้นจริงดำเนินการ ในสิ่งที่ต้องการ C หรือ C + + 432 00:19:39,520 --> 00:19:41,290 แต่ 433 00:19:41,290 --> 00:19:42,760 ใช่ 434 00:19:42,760 --> 00:19:44,010 >> ผู้ชม: [ไม่ได้ยิน] 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID ลัน: ใช่ 437 00:19:47,080 --> 00:19:50,780 เพื่อให้แต่ละฟังก์ชั่นที่ผมเขียนตอนนี้ - ที่จริงคุณสามารถพูดได้ว่าอีกครั้ง 438 00:19:50,780 --> 00:19:51,480 ดังน้อย 439 00:19:51,480 --> 00:19:54,509 >> ผู้ชม: แต่ละฟังก์ชั่นที่ รวมคุณมีเต็มรูปแบบมากขึ้น 440 00:19:54,509 --> 00:19:56,610 ความจุกว่า - 441 00:19:56,610 --> 00:19:57,550 >> DAVID ลัน: เพื่อให้เป็นจริงมาก 442 00:19:57,550 --> 00:20:01,490 มีค่าใช้จ่ายมากขึ้นว่าเราเป็น ไม่ได้จริงๆเห็นโดยเน้นเฉพาะใน 443 00:20:01,490 --> 00:20:03,730 dictionary.php ที่ฉันเพิ่งเขียน 444 00:20:03,730 --> 00:20:08,020 ในทางตรงกันข้ามมีล่ามทั้ง ไปในพื้นหลัง 445 00:20:08,020 --> 00:20:12,040 อันที่จริงเมื่อฉันวิ่งโปรแกรมนี้มัน ไม่ได้ใช้ศูนย์รวบรวมและคนที่ 446 00:20:12,040 --> 00:20:14,290 ออกแบบมาสำหรับ Intel CPU ของฉัน 447 00:20:14,290 --> 00:20:19,270 แต่ก็ทำงานทีละบรรทัด PHP รหัสที่มีลักษณะตรง 448 00:20:19,270 --> 00:20:20,350 เหมือนที่เราพิมพ์มัน 449 00:20:20,350 --> 00:20:22,475 ดังนั้นเมื่อใดก็ตามที่คุณใช้ แปลภาษาคุณ 450 00:20:22,475 --> 00:20:23,850 จริงจะจ่ายในราคานี้ 451 00:20:23,850 --> 00:20:27,010 มันจะใช้เวลาในการอ่าน ด้านบนไฟล์ของคุณไปที่ด้านล่างซ้ายไป 452 00:20:27,010 --> 00:20:30,740 ที่เหมาะสมและจากนั้นดำเนินการแต่ละ สายอีกครั้งและอีกครั้ง 453 00:20:30,740 --> 00:20:34,250 >> ตอนนี้ในความเป็นจริงโดยเฉพาะอย่างยิ่งในเว็บ คุณจริงสามารถเร่งกระบวนการนี​​้ 454 00:20:34,250 --> 00:20:38,660 โดยแคชผลของ โค้ด PHP ถูกตีความ 455 00:20:38,660 --> 00:20:41,640 และที่ทำให้ความรู้สึกในเว็บเพราะ ถ้าคุณยังไม่ได้ใช้งานอย่างใดอย่างหนึ่งเช่น 456 00:20:41,640 --> 00:20:46,300 ผมมาที่นี่ แต่ 1,000 หรือ 10,000 คนแล้ว อาจจะเป็นครั้งแรกของไฟล์ 457 00:20:46,300 --> 00:20:49,050 เข้าถึงมันช้า แต่หลังจากนั้น มันได้เร็วขึ้นมาก 458 00:20:49,050 --> 00:20:51,000 >> แต่นี้ก็อีกครั้งการปิด 459 00:20:51,000 --> 00:20:53,870 และสำหรับสิ่งที่ต้องการข้อมูลการวิจัย การตั้งค่าหรือแม้กระทั่งบางสิ่งบางอย่างขนาดใหญ่เช่น 460 00:20:53,870 --> 00:20:58,330 นี้ผู้ใช้ของคุณจะในที่สุด เริ่มรู้สึกว่าการชะลอตัว 461 00:20:58,330 --> 00:21:02,670 >> ดังนั้นในระยะสั้นตีความภาษา เป็นอย่างมากในสมัย​​ที่นิยมมากและ 462 00:21:02,670 --> 00:21:06,710 ตรงไปตรงมาอาจจะเป็นภาษาที่คุณ ควรเข้าถึงสำหรับเมื่อแก้ปัญหา 463 00:21:06,710 --> 00:21:08,200 ภายหลัง CS50 464 00:21:08,200 --> 00:21:12,720 แต่ตระหนักเท่าใดคุณจริงๆ การได้รับภายใต้ประทุน 465 00:21:12,720 --> 00:21:15,910 จริงๆที่หลายสัปดาห์ที่ผ่านมาในกัญชา ตารางและต้นไม้และพยายาม 466 00:21:15,910 --> 00:21:20,770 ซึ่งถูกนำมาใช้จริงในที่สุด ใช้สิ่งที่ชอบวงเล็บเปิด 467 00:21:20,770 --> 00:21:24,200 วงเล็บเหลี่ยมซึ่งเราสามารถทำได้ในขณะนี้ สุดซึ้งจะได้รับ 468 00:21:24,200 --> 00:21:26,360 >> ดังนั้นลองมาดูตอนนี้ ในบริบทเว็บนี้ 469 00:21:26,360 --> 00:21:29,890 และที่ผมกล่าวถึงเป็นครั้งสุดท้ายที่มี พวงของ superglobals ใน PHP ที่ 470 00:21:29,890 --> 00:21:32,490 ไม่เกี่ยวข้องจริงๆ ที่บรรทัดคำสั่ง 471 00:21:32,490 --> 00:21:36,210 พวกเขากำลังที่เกี่ยวข้องมากขึ้นในบริบท ของใช้ PHP ในบริบทเว็บ 472 00:21:36,210 --> 00:21:41,220 ดังนั้น PHP ทำงานบนเว็บเซิร์ฟเวอร์ในการสั่งซื้อ ในการสร้างสิ่งเช่น HTML 473 00:21:41,220 --> 00:21:44,540 >> และเรามองไปที่ $ _GET และ $ _POST และ นั่นคือสิ่งที่ผู้ใช้โดยอัตโนมัติ ' 474 00:21:44,540 --> 00:21:49,100 ท่านจะสิ้นสุดลงเพียง แต่ถ้าคุณส่ง รูปแบบไฟล์ที่ลงท้ายด้วย. php บนเว็บ 475 00:21:49,100 --> 00:21:50,460 เช่นเครื่องเซิร์ฟเวอร์ 476 00:21:50,460 --> 00:21:53,310 แต่ขอดูสั้นที่ $ _COOKIE และ $ _SESSION 477 00:21:53,310 --> 00:21:56,670 >> ในแง่คนธรรมดาสิ่งที่เป็นคุกกี้เป็น คุณเข้าใจในบริบทของ 478 00:21:56,670 --> 00:21:58,220 โดยใช้เว็บหรือไม่ 479 00:21:58,220 --> 00:21:59,450 >> ผู้ชม: ไฟล์ในคอมพิวเตอร์ 480 00:21:59,450 --> 00:21:59,920 >> DAVID ลัน: ใช่ 481 00:21:59,920 --> 00:22:03,500 มันเป็นไฟล์บนคอมพิวเตอร์ของผู้ใช้ ปลูกโดยเว็บไซต์ใด 482 00:22:03,500 --> 00:22:04,410 คุณเกิดขึ้นเพื่อเข้าชม 483 00:22:04,410 --> 00:22:07,334 ดังนั้นเมื่อคุณไปที่ Facebook, เมื่อคุณไป การ bankofamerica.com เมื่อคุณไป 484 00:22:07,334 --> 00:22:10,330 ที่ google.com, เมื่อคุณไปที่เกือบ ๆ เว็บไซต์ในโลกวันนี้ 485 00:22:10,330 --> 00:22:14,850 รวมทั้ง cs50.net คุกกี้จะปลูก บนเครื่องคอมพิวเตอร์ของคุณซึ่งเป็น 486 00:22:14,850 --> 00:22:19,800 ทั้งค่าที่เก็บไว้ในหน่วยความจำของคุณใน คอมพิวเตอร์ในหน่วยความจำเบราว์เซอร์ของคุณหรือ 487 00:22:19,800 --> 00:22:22,800 บางครั้งแน่นอนไฟล์ที่เก็บไว้ ในฮาร์ดดิสก์ของคุณ 488 00:22:22,800 --> 00:22:26,960 >> และสิ่งที่จะถูกเก็บไว้ในแฟ้มที่ ไม่ได้เป็นชื่อผู้ใช้ของคุณไม่ได้ของคุณ 489 00:22:26,960 --> 00:22:31,060 รหัสผ่านมักจะไม่ได้สิ่งที่ ที่มีความสำคัญเว้นแต่เว็บไซต์จะไม่ให้ 490 00:22:31,060 --> 00:22:35,040 ที่ดีกับการรักษาความปลอดภัยของพวกเขา แต่ มันเป็นตัวระบุที่ไม่ซ้ำกันในหมู่ใหญ่ 491 00:22:35,040 --> 00:22:35,680 สิ่งอื่น ๆ 492 00:22:35,680 --> 00:22:38,920 มันเป็นจำนวนสุ่มขนาดใหญ่วางอยู่บนของคุณ คอมพิวเตอร์ แต่คุณสามารถคิดว่าเป็น 493 00:22:38,920 --> 00:22:42,740 การเรียงลำดับของการประทับมือเสมือนเช่นจาก สโมสรหรือสวนสนุกบางอย่างที่ 494 00:22:42,740 --> 00:22:47,160 จะช่วยให้พนักงานเจ้าของที่ บริการที่ต้องจำไว้ว่าคุณเป็นใคร 495 00:22:47,160 --> 00:22:51,030 ดังนั้นถ้าจำนวนสุ่มใหญ่เป็นเหมือน 12345678 แต่ที่เห็นได้ชัด 496 00:22:51,030 --> 00:22:54,180 ไม่สุ่มเกินไปคิดว่าของที่เป็น ประทับมือที่เมื่อคุณเยี่ยมชม 497 00:22:54,180 --> 00:22:57,930 facebook.com เป็นครั้งแรกที่พวกเขา ประทับตราตัวเลขที่อยู่ในมือของคุณ 498 00:22:57,930 --> 00:23:01,510 แล้วเพราะคุณพูด ​​HTTP คุณ เป็นเบราว์เซอร์และเพราะ Facebook 499 00:23:01,510 --> 00:23:06,440 เห็นได้ชัดว่าพูดเช่นเดียวกับเว็บ เซิร์ฟเวอร์ HTTP โปรโตคอลกล่าวว่า 500 00:23:06,440 --> 00:23:09,930 ตลอดเวลาที่คุณมาเยี่ยมชม facebook.com ไม่ว่าจะเป็นที่สอง 501 00:23:09,930 --> 00:23:13,560 ต่อมาหนึ่งชั่วโมงต่อมาในวันรุ่งขึ้น ตราบใดที่คุณยังไม่ได้อย่างชัดเจน 502 00:23:13,560 --> 00:23:17,050 ออกจากระบบที่มีประสิทธิภาพ เป็นเหมือนการล้างมือของคุณ 503 00:23:17,050 --> 00:23:20,280 HTTP บอกว่าคุณควรจะนำเสนอของคุณ ประทับมือทุกครั้งที่คุณ 504 00:23:20,280 --> 00:23:22,020 กลับไปยังเว็บไซต์ที่ 505 00:23:22,020 --> 00:23:24,390 >> Facebook แล้วสิ่งที่ไม่เป็นพวกเขา มองไปที่มือที่ประทับและ 506 00:23:24,390 --> 00:23:26,850 พวกเขากล่าวว่าโอ้ 123456789 507 00:23:26,850 --> 00:23:30,260 ผมไม่ทราบได้อย่างรวดเร็วก่อนที่นี้ เดวิดลันในเคมบริดจ์ 508 00:23:30,260 --> 00:23:34,690 แมสซาชูเซต แต่พวกเขาสามารถตรวจสอบของพวกเขา ฐานข้อมูลและพูดว่าโอ้คน 509 00:23:34,690 --> 00:23:39,930 บนคอมพิวเตอร์ที่มีเราปลูก 123456789 เดวิดลันจากเคมบริดจ์ 510 00:23:39,930 --> 00:23:40,440 แมสซาชูเซต 511 00:23:40,440 --> 00:23:46,000 ขอแสดงผู้ใช้แล้วโปรไฟล์ของเขา หน้าหรือฟีดข่าวของเขา 512 00:23:46,000 --> 00:23:49,660 >> แต่มีปัญหาที่นี่ถ้านี้ เป็นวิธีการที่เว็บแน่นอนทำงาน 513 00:23:49,660 --> 00:23:51,390 ลองมาดูที่ตัวอย่างรวดเร็ว 514 00:23:51,390 --> 00:23:55,190 ขอจริงไปที่จะบอกว่า facebook.com 515 00:23:55,190 --> 00:23:58,130 แต่ก่อนที่เราจะไปที่นั่นให้ ฉันไปข้างหน้าและเปิด Chrome ของ 516 00:23:58,130 --> 00:23:59,790 ตรวจลงที่นี่ 517 00:23:59,790 --> 00:24:01,140 ให้ฉันมองไปที่แท็บเครือข่าย 518 00:24:01,140 --> 00:24:06,020 และตอนนี้ขอไปข้างหน้าและพิมพ์ ใน https://facebook.com 519 00:24:06,020 --> 00:24:09,410 และฉันทำแบบนั้นเพื่อที่เราจะไม่เห็น ทั้งหมดของการเปลี่ยนเส้นทางเหล่านั้นและของเสีย 520 00:24:09,410 --> 00:24:10,660 เวลามองผ่านเหล่านั้น 521 00:24:10,660 --> 00:24:12,690 ผมขอกด 522 00:24:12,690 --> 00:24:13,130 >> ขวาทั้งหมด 523 00:24:13,130 --> 00:24:14,580 เรามาดูกันทั้งกลุ่มของการร้องขอ 524 00:24:14,580 --> 00:24:15,640 Facebook มีมา 525 00:24:15,640 --> 00:24:16,930 มีทั้งกลุ่มของไฟล์ที่เป็น 526 00:24:16,930 --> 00:24:19,290 และที่นี่ต่อการกล่าวถึงของฉัน ครั้งสุดท้ายที่แฝงที่ 527 00:24:19,290 --> 00:24:21,240 จำนวนมากของการร้องขอ 528 00:24:21,240 --> 00:24:23,700 แต่คนแรกที่น่าจะเป็น ที่น่าสนใจที่สุด 529 00:24:23,700 --> 00:24:26,420 >> จึงขอเลื่อนลงมาที่นี่และ ฉันจะขยายในครั้งที่สอง 530 00:24:26,420 --> 00:24:29,090 นี้จะเป็นชนิดของ ระเบียบ แต่เรามาดู 531 00:24:29,090 --> 00:24:31,660 Facebook จะส่ง ทั้งกลุ่มของสิ่งที่ 532 00:24:31,660 --> 00:24:33,490 >> แต่โอ้โฮที่น่าสนใจ 533 00:24:33,490 --> 00:24:37,880 พวกเขากำลังปลูกไม่หนึ่ง แต่สี่ แสตมป์มือลงบนมือของฉันที่นี่ 534 00:24:37,880 --> 00:24:40,400 ตั้งค่าคุกกี้, คุกกี้ตั้ง, ตั้งคุกกี้ ตั้งคุกกี้ 535 00:24:40,400 --> 00:24:44,030 และมีคุณสมบัติไม่กี่ที่นี่ 536 00:24:44,030 --> 00:24:46,170 ทั้งหมดของพวกเขาพูดถึงบางส่วน ชนิดของหมดอายุ 537 00:24:46,170 --> 00:24:50,090 และดูเหมือนว่า Facebook จะหวัง จำฉันจนกว่า 2015 538 00:24:50,090 --> 00:24:53,670 เพื่อที่ว่าน่าจะใช้เวลาโดยที่ ฉันจะต้องออกจากระบบหรือพวกเขาจะเพียงแค่ 539 00:24:53,670 --> 00:24:55,710 โดยอัตโนมัติสมมติผม ไม่กลับมา 540 00:24:55,710 --> 00:24:57,840 ดังนั้นที่จริงดี ระยะเวลา 541 00:24:57,840 --> 00:24:59,170 >> และมีบางส่วนอื่น ๆ สิ่งที่เกิดขึ้นที่นี่ 542 00:24:59,170 --> 00:25:03,036 คุกกี้นี้ดูเหมือนจะเป็นบังคับ ลบโดยบอกว่ามันหมดอายุในปี 1970 543 00:25:03,036 --> 00:25:04,460 ก่อนที่คุกกี้มีอยู่ 544 00:25:04,460 --> 00:25:06,510 ดังนั้นเบราว์เซอร์เป็นเพียงการไป ตกลงที่จะสรุปว่าเป็นเหมือน 545 00:25:06,510 --> 00:25:07,910 ล้างประทับมือ 546 00:25:07,910 --> 00:25:11,240 >> แต่ตอนนี้เมื่อเบราว์เซอร์ของฉันทำให้ ต่อมาขอ - 547 00:25:11,240 --> 00:25:14,340 ให้ฉันไปข้างหน้าและทำเช่นนี้ อีกครั้งและโหลด 548 00:25:14,340 --> 00:25:18,170 ตอนนี้ให้ฉันเลื่อนกลับไป คำขอด้านบนและลงไป 549 00:25:18,170 --> 00:25:20,760 ที่นี่ขอส่วนหัว 550 00:25:20,760 --> 00:25:21,390 แจ้งให้ทราบนี้ 551 00:25:21,390 --> 00:25:25,280 ดังนั้นตอนนี้ผมไม่ได้อยู่ภายใต้ส่วนหัวของการตอบสนอง แต่สังเกตเห็นมันบอกว่าส่วนหัวของคำขอ 552 00:25:25,280 --> 00:25:29,220 และแจ้งให้ทราบว่าเบราว์เซอร์ของฉันเป็นส่วนหนึ่งของ ขอหลังจากตีโหลดมี 553 00:25:29,220 --> 00:25:32,780 ส่งอย่างน้อยดังต่อไปนี้ ข้อมูล 554 00:25:32,780 --> 00:25:34,670 ไม่ได้ตั้งค่าคุกกี้ แต่คุกกี้ 555 00:25:34,670 --> 00:25:38,750 ดังนั้นนี่คือเส้นส่วนหัวเพื่อให้ ที่จะพูดที่เบราว์เซอร์ของฉันคือการจัดเรียง 556 00:25:38,750 --> 00:25:43,340 โดยไม่ทราบว่าของฉันมันนำเสนอ มือของฉันสำหรับการตรวจสอบของ Facebook 557 00:25:43,340 --> 00:25:46,020 >> ดังนั้นคุกกี้เหล่านี้จะสามารถ นำไปใช้เพื่ออะไร 558 00:25:46,020 --> 00:25:49,420 จำไว้ว่าคุณเป็นใครหรือจำได้ว่า จำนวนครั้งที่คุณได้รับมีหรือ 559 00:25:49,420 --> 00:25:50,280 จริงๆอะไร 560 00:25:50,280 --> 00:25:52,742 >> ดังนั้นนี่คือ counter.php 561 00:25:52,742 --> 00:25:53,780 และแจ้งให้เราซูมในตัวอักษร 562 00:25:53,780 --> 00:25:58,380 และทุกครั้งที่ผมโหลดหน้าเว็บนี้แจ้งให้ทราบล่วงหน้าแต่ละ ก็จำได้ว่าหลายต่อหลายครั้ง 563 00:25:58,380 --> 00:25:59,250 ฉันได้รับมี 564 00:25:59,250 --> 00:26:00,570 ดีที่ไม่ได้ทั้งหมดที่น่าประทับใจที่ 565 00:26:00,570 --> 00:26:03,140 ขอเพียงแค่ปิดแท็บนั้น และตอนนี้ให้กลับไปที่ 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php 567 00:26:07,860 --> 00:26:08,970 >> โอ้ที่น่าสนใจ 568 00:26:08,970 --> 00:26:10,960 ก็ยังจำได้ แต่ฉันปิดแท็บ 569 00:26:10,960 --> 00:26:14,010 และตรงไปตรงมาถ้าฉันปิดเบราว์เซอร์ ถ้านำมาใช้ในทางที่ถูกต้องผม 570 00:26:14,010 --> 00:26:18,950 อาจจะยังคงจำได้ว่าผู้ใช้รายนี้เป็น ที่เขาหรือเธอเป็นครั้งแรกและ 571 00:26:18,950 --> 00:26:22,840 เพียงครั้งเดียวที่ผมไปเป็นเมนู Chrome ซึ่ง กว่าที่นี่อยู่ที่นี่และไปที่ 572 00:26:22,840 --> 00:26:25,990 ประวัติศาสตร์และคลิกล้างข้อมูลการท่องเว็บ, เป็นบางส่วนของคุณอาจจะมีใน 573 00:26:25,990 --> 00:26:33,050 ผ่านมาเพียงแล้วจะคุกกี้ของคุณ จริงจะลบในระหว่างเว็บ 574 00:26:33,050 --> 00:26:33,970 พัฒนาการ 575 00:26:33,970 --> 00:26:35,340 >> ดังนั้นถ้าเราไป - 576 00:26:35,340 --> 00:26:37,080 ขอปิด Gedit ขึ้นที่นี่ 577 00:26:37,080 --> 00:26:38,910 และถ้าเราไปตอนนี้กับไฟล์นี้ 578 00:26:38,910 --> 00:26:44,210 ให้ฉันไปเป็นของเรา vhosts / localhost / สาธารณะและให้ฉันทำ 579 00:26:44,210 --> 00:26:46,340 counter.php 580 00:26:46,340 --> 00:26:48,350 ขอให้สังเกตว่านี้สวย โปรแกรมง่ายๆ 581 00:26:48,350 --> 00:26:50,250 มันเป็นเว็บไซต์ที่ง่ายสวย 582 00:26:50,250 --> 00:26:51,770 >> ดังนั้นด้านบนของไฟล์ เป็นเพียงความเห็นของ 583 00:26:51,770 --> 00:26:54,930 แต่นี่เป็นสายใหม่ที่คุณอาจจะ ได้เห็นแล้วในพีตั้งเจ็ด 584 00:26:54,930 --> 00:26:56,000 session_start () 585 00:26:56,000 --> 00:27:00,380 นี้เป็นสายของโค้ด PHP ที่ เป็นหลักบอกเว็บเซิร์ฟเวอร์ที่ทำให้ 586 00:27:00,380 --> 00:27:03,400 ให้แน่ใจว่าได้ประทับมือและทำให้ ให้แน่ใจว่าได้ตรวจสอบตราประทับมือ 587 00:27:03,400 --> 00:27:06,810 นั่นคือทั้งหมดที่บรรทัดที่ไม่และมัน ไม่ทั้งหมดของกระบวนการที่สำหรับเรา 588 00:27:06,810 --> 00:27:09,510 จากนั้นสังเกตเห็นฉันมีเพียงแค่ สองสาขาที่นี่ 589 00:27:09,510 --> 00:27:14,150 ถ้าคีย์เคาน์เตอร์ภายในนี้ ตัวแปรพิเศษที่เรียกว่า 590 00:27:14,150 --> 00:27:18,010 $ _SESSION ตั้ง - ในคำอื่น ๆ ถ้ามีค่าบางอย่างมี - 591 00:27:18,010 --> 00:27:22,440 ให้ของได้รับมันและเก็บไว้ในท้องถิ่น ตัวแปรที่เรียกว่า $ เคาน์เตอร์ 592 00:27:22,440 --> 00:27:27,000 อื่นให้กำหนด $ เคาน์เตอร์ ค่าเริ่มต้นของ 0 593 00:27:27,000 --> 00:27:30,320 >> ตอนนี้ที่นี่เป็นแง่มุมหนึ่งของ PHP ที่ ทั้งพรและสาปแช่ง 594 00:27:30,320 --> 00:27:32,080 PHP เป็นเลอะเทอะหน่อย 595 00:27:32,080 --> 00:27:35,160 ดังนั้นในขณะที่ในซีสิ่งที่จะ ขอบเขตของเคาน์เตอร์ได้รับ 596 00:27:35,160 --> 00:27:36,725 ทั้งที่นี่หรือที่นี่ 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> มันจะได้รับการถูกคุมขัง ที่วงเล็บปีกกาที่ 599 00:27:41,690 --> 00:27:42,090 เดาอะไร 600 00:27:42,090 --> 00:27:46,920 ใน PHP มันมีอยู่แม้ภายนอกของคนเหล่านั้น วงเล็บปีกกา, ที่นี่และที่นี่ 601 00:27:46,920 --> 00:27:49,120 และที่นี่และที่นี่และ ได้ลงมาด้านล่าง 602 00:27:49,120 --> 00:27:52,400 ดังนั้นผมพูดนี้เป็นพระพรในความรู้สึก ที่คุณไม่ต้องคิดว่าเป็น 603 00:27:52,400 --> 00:27:54,070 ยากที่เราได้สัปดาห์ที่ผ่านมา 604 00:27:54,070 --> 00:27:56,880 แต่มันก็ยังบิตของคำสาปที่ ไม่ว่าคุณจะใช้ตัวแปรในไม่มี 605 00:27:56,880 --> 00:28:00,020 PHP, อย่างน้อยในโปรแกรมเช่นนี้ มันทั่วโลกสามารถเข้าถึงได้สำหรับ 606 00:28:00,020 --> 00:28:01,170 ที่ดีขึ้นหรือแย่ลง 607 00:28:01,170 --> 00:28:06,130 ดังนั้นคุณต้องเก็บไว้ในใจว่าตอนนี้ ตัวแปรของคุณอาจจะไม่ได้กำหนด 608 00:28:06,130 --> 00:28:07,640 คุณอาจได้กำหนดไว้พวกเขาที่อื่น 609 00:28:07,640 --> 00:28:09,460 >> แต่สิ่งที่ฉันจะทำในที่สุด? 610 00:28:09,460 --> 00:28:13,160 ฉันจะเก็บภายในที่ทั่วโลก ตัวแปรเป็นค่าของ 611 00:28:13,160 --> 00:28:17,060 เคาน์เตอร์สำคัญผลจากการ ทำเคาน์เตอร์บวก 1 612 00:28:17,060 --> 00:28:18,910 ดังนั้นนี้เป็นเพียงการคำนวณ ที่ไม่ 613 00:28:18,910 --> 00:28:20,590 incrementation ของเคาน์เตอร์ที่ 614 00:28:20,590 --> 00:28:24,850 และความจริงที่ว่าฉันจัดเก็บที่ ค่ากลับมาอยู่ในที่นี่หมายถึงการเป็น 615 00:28:24,850 --> 00:28:29,970 ปรับปรุงฐานข้อมูลเป็นหลักในการ จำไว้ว่า 123456789 ผู้ใช้ที่ได้รับ 616 00:28:29,970 --> 00:28:31,010 ที่นี่สองครั้ง 617 00:28:31,010 --> 00:28:33,780 และเมื่อฉันทำมันอีกครั้งในครั้งต่อไปที่ผม โหลดหน้าเว็บก็จะตรวจสอบ 618 00:28:33,780 --> 00:28:36,710 ประทับมือของฉันและพูดว่าโอ้ 123456789 ผู้ใช้ในขณะนี้มี 619 00:28:36,710 --> 00:28:38,410 ที่นี่สามครั้ง 620 00:28:38,410 --> 00:28:43,390 >> และดังนั้นสิ่งที่ภาษา PHP และที่คล้ายกัน กำลังทำอะไรสำหรับเราคือพวกเขาจะหา 621 00:28:43,390 --> 00:28:47,720 วิธีการและสถานที่และนานเท่าไหร่ ในการจัดเก็บค่าในเรื่องนี้เป็นพิเศษ 622 00:28:47,720 --> 00:28:48,830 superglobal 623 00:28:48,830 --> 00:28:52,750 และนี้ superglobal ครั้งต่อไปที่ผม ไปที่หน้าเป็นประเภทอย่างน่าอัศจรรย์ 624 00:28:52,750 --> 00:28:57,440 ก่อนที่มีประชากรเต็มไปด้วยค่าที่ อยู่ที่นั่นเป็นครั้งสุดท้ายที่คุณเข้าเยี่ยมชม, 625 00:28:57,440 --> 00:29:02,310 ไม่ว่าจะเป็นคนที่สองที่ผ่านมาหนึ่งสัปดาห์ ที่ผ่านมาหรือในปี 2013 และตอนนี้เรากำลังพูดถึง 626 00:29:02,310 --> 00:29:03,790 เกี่ยวกับ 2015 627 00:29:03,790 --> 00:29:07,600 PHP และเว็บเซิร์ฟเวอร์ดูแล ทั้งหมดของที่สำหรับคุณ 628 00:29:07,600 --> 00:29:08,850 >> ผู้ชม: [ได้ยิน] 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID ลัน: ตัวแปรใน PHP เป็น เป็นหลักเสมอทั่วโลกยกเว้นกรณีที่คุณ 631 00:29:15,760 --> 00:29:18,400 ประกาศให้ภายในของฟังก์ชั่น, และพวกเขาก็มีในท้องถิ่นเพื่อ 632 00:29:18,400 --> 00:29:19,420 ฟังก์ชั่นเท่านั้น 633 00:29:19,420 --> 00:29:22,300 แต่เพราะฉันไม่ได้เขียนใด ๆ ฟังก์ชั่นตอนนี้พวกเขาได้อย่างมีประสิทธิภาพ 634 00:29:22,300 --> 00:29:25,090 ทั่วโลกตลอดทั้งไฟล์ทั้งหมดของฉันที่นี่ 635 00:29:25,090 --> 00:29:26,040 >> ผู้ชม: มีวิธี จะทำให้พวกเขาในประเทศ? 636 00:29:26,040 --> 00:29:28,470 >> DAVID ลัน: มีผู้ใด วิธีที่จะทำให้พวกเขาในประเทศ? 637 00:29:28,470 --> 00:29:30,680 โดยเฉพาะการตัดพวกเขาเข้าไปในฟังก์ชั่น 638 00:29:30,680 --> 00:29:32,790 ซึ่งในรุ่นล่าสุดของ PHP คุณสามารถทำเช่นนี้กับ 639 00:29:32,790 --> 00:29:34,130 ฟังก์ชั่นที่ไม่ระบุชื่อ 640 00:29:34,130 --> 00:29:35,930 แต่เพิ่มเติมว่าใน บริบทของ JavaScript 641 00:29:35,930 --> 00:29:37,260 แต่คำตอบสั้น ๆ คือไม่มี 642 00:29:37,260 --> 00:29:40,888 คำตอบคือใช่อีกต่อไป 643 00:29:40,888 --> 00:29:42,380 ไนซ์ 644 00:29:42,380 --> 00:29:43,380 คำถามแบบทดสอบที่ดี 645 00:29:43,380 --> 00:29:43,930 ทั้งหมดขวา 646 00:29:43,930 --> 00:29:47,760 >> ดังนั้นสุดท้ายหน้าตัวเองคือ จริงง่ายสวย 647 00:29:47,760 --> 00:29:51,470 ขอให้สังเกตว่าเมื่อฉันออกจากโหมด PHP, จำ ว่าทุกสิ่งที่ลงนี้ 648 00:29:51,470 --> 00:29:53,700 ด้านล่างเป็นเพียงจะได้รับการถ่มน้ำลาย ออกดิบไปยังเบราว์เซอร์ 649 00:29:53,700 --> 00:29:57,050 ซึ่งเป็นดีเพราะฉันไม่ต้องการที่จะส่ง ผู้ใช้บาง HTM​​L แต่ฉันไม่ต้องการ 650 00:29:57,050 --> 00:29:59,140 ปรับปรุงแบบไดนามิก HTML ที่ 651 00:29:59,140 --> 00:30:03,930 และเป็นหนึ่งในวิธีที่ฉันสามารถทำเช่นนี้คือการจัดเรียง ของอย่างรวดเร็วลดลงกลับเข้ามาใน PHP 652 00:30:03,930 --> 00:30:07,730 โหมดการใช้เครื่องหมายวงเล็บเปิดคำถาม เครื่องหมายเท่ากับและจากนั้นการส่งออกมูลค่า 653 00:30:07,730 --> 00:30:08,650 จากเคาน์เตอร์ 654 00:30:08,650 --> 00:30:12,360 >> หรือถ้ามีลักษณะนี้เป็นเพียงเล็กน้อยคลุมเครือนี้ เครื่องหมายเท่ากับเป็นจริงเพียงบางส่วน 655 00:30:12,360 --> 00:30:16,190 น้ำตาล syntactic นี้ printf ($ เคาน์เตอร์) 656 00:30:16,190 --> 00:30:19,160 แต่ตรงไปตรงมานั่นเป็นเพียงเล็ก ๆ น้อย ๆ ที่น่าเกลียด และน่ารำคาญเล็กน้อยในการพิมพ์ 657 00:30:19,160 --> 00:30:23,660 ดังนั้น PHP อย่างมากมีคุณลักษณะนี้ ซึ่งคุณก็สามารถพูดได้ว่ามันมากขึ้น 658 00:30:23,660 --> 00:30:25,450 ชัดถ้อยชัดคำในทางเดียวกัน 659 00:30:25,450 --> 00:30:26,940 >> ดังนั้นสิ่งที่เกิดขึ้นภายใต้ เครื่องดูดควัน? 660 00:30:26,940 --> 00:30:31,210 Let 's รวดเร็วมองไปที่เครือข่าย แท็บที่นี่สำหรับ counter.php 661 00:30:31,210 --> 00:30:35,090 และแจ้งให้เราไปข้างหน้าและเป็นคนแรก ให้ล้างคุกกี้ของคุณ 662 00:30:35,090 --> 00:30:38,670 Let 's ข้อมูลการเข้าชมที่ชัดเจนตั้งแต่ จุดเริ่มต้นของเวลา 663 00:30:38,670 --> 00:30:39,680 ตอนนี้ขอกลับไปกว่าที่นี่ 664 00:30:39,680 --> 00:30:41,340 ตอนนี้ขอโหลดหน้าเว็บใหม่ 665 00:30:41,340 --> 00:30:42,170 และฉันกลับมาที่ศูนย์ 666 00:30:42,170 --> 00:30:44,810 เพราะประทับมือของฉันได้รับการล้าง ตอนนี้ผมได้รับคุกกี้ใหม่ 667 00:30:44,810 --> 00:30:48,780 >> อันที่จริงถ้าฉันมองไปที่แท็บเครือข่ายและ มองไปที่ส่วนหัวของการตอบสนองที่แจ้งให้ทราบ 668 00:30:48,780 --> 00:30:51,960 เครื่องใช้ไฟฟ้าที่จะส่งฉัน คุกกี้ซึ่งเป็นชื่อที่ค่อนข้าง 669 00:30:51,960 --> 00:30:55,820 โดยพลการ แต่ชนิดของ เหตุผล PHPSESSID 670 00:30:55,820 --> 00:30:58,440 และจะส่งฉันนี้จริงๆ จำนวนสุ่มใหญ่ 671 00:30:58,440 --> 00:30:59,440 มันไม่ได้จำนวนมาก 672 00:30:59,440 --> 00:31:00,390 มันไม่ใช่เลขฐานสิบหกค่อนข้าง 673 00:31:00,390 --> 00:31:03,600 เป็นชนิดของสตริงตัวอักษรและตัวเลขบาง แต่สันนิษฐานว่ามันสุ่ม 674 00:31:03,600 --> 00:31:06,830 และนั่นคือแสตมป์มือเพื่อที่จะ พูดว่าผมหมายถึง 675 00:31:06,830 --> 00:31:11,960 >> ในขณะเดียวกันถ้าฉันคลิกโหลดแล้ว ดูที่บรรทัดที่สองนี้สำหรับฉันที่สอง 676 00:31:11,960 --> 00:31:17,600 ขอแจ้งให้ทราบว่าตอนนี้คำขอของฉัน ส่วนหัวรวม PHPSESSID เท่ากับนี้ 677 00:31:17,600 --> 00:31:19,390 ไม่ได้ชุดคุกกี้, คุกกี้เพียง แต่ 678 00:31:19,390 --> 00:31:22,950 และที่นำเสนอเบราว์เซอร์ของฉัน ของแสตมป์มือของฉัน 679 00:31:22,950 --> 00:31:28,820 >> ดังนั้นตอนนี้เป็นทีเซอร์และเราจะพูดคุยมากขึ้น เกี่ยวกับเรื่องนี้ในสัปดาห์หรือดังนั้น แต่ 680 00:31:28,820 --> 00:31:31,590 นี้ไม่ในสิ่งที่ทำให้คุณ ช่องโหว่บัญชี Facebook ของคุณ 681 00:31:31,590 --> 00:31:34,137 เสี่ยงและที่อื่น ๆ เช่น บัญชีเสี่ยง 682 00:31:34,137 --> 00:31:35,510 >> ผู้ชม: ถ้าใครมีคุกกี้ของคุณ 683 00:31:35,510 --> 00:31:36,750 >> DAVID ลัน: ใช่ถ้ามีคน มีคุกกี้ของคุณ 684 00:31:36,750 --> 00:31:39,920 ผมหมายถึงอย่างแท้จริงเหมือนบางท่าน อาจจะมีความพยายามที่เหมือนสโมสรหรือ 685 00:31:39,920 --> 00:31:44,030 สวนสนุกถ้าคุณพยายามที่บางสิ่งบางอย่าง เช่นนี้เพื่อคัดลอกแสตมป์แม้ว่า 686 00:31:44,030 --> 00:31:47,560 ย้อนกลับไปยังมือของบุคคลอื่น, และแล้วเขาหรือเธอจะแสดงเป็น 687 00:31:47,560 --> 00:31:53,250 ของตัวเองถ้าจริงจะดู เหมือน 123456789 แล้วเว็บ 688 00:31:53,250 --> 00:31:57,980 เซิร์ฟเวอร์ที่เห็นได้ชัดก็จะ วางใจได้ว่าผู้ใช้ที่เป็นคุณ 689 00:31:57,980 --> 00:32:01,450 >> และนี่คือความจริงพื้นฐาน ภัยคุกคามทุกครั้งที่คุณใช้คุกกี้ใด ๆ 690 00:32:01,450 --> 00:32:05,420 เพราะถ้ามีคนเพียงเพื่อที่จะตบตา พูดตัวเลขของคุณคุกกี้สิ่งที่มัน 691 00:32:05,420 --> 00:32:08,660 คือไม่ว่าจะโดยการคัดลอกอย่างแท้จริง โดยดูที่เครื่องคอมพิวเตอร์ของคุณ 692 00:32:08,660 --> 00:32:09,890 และเป็นเหมือนตกลง 693 00:32:09,890 --> 00:32:14,520 คุกกี้เดวิดเป็น JJ3JIK และอื่น ๆ และพวกเขาก็ไม่ฉลาดพอที่จะรู้ว่า 694 00:32:14,520 --> 00:32:18,080 วิธีการเรียงลำดับของตนเองส่งที่ คุกกี้จากเบราว์เซอร์หรือจาก 695 00:32:18,080 --> 00:32:22,350 โปรแกรมที่พวกเขาเขียน, ที่พวกเขาได้โดยสิ้นเชิง เข้าสู่เว็บไซต์ที่คุณ 696 00:32:22,350 --> 00:32:28,560 มันไม่ได้เป็นยากที่จะหลอกว่าเป็น คนอื่นถ้าเราทบทวน p-ชุด 697 00:32:28,560 --> 00:32:30,790 สองซึ่งแนะนำอะไร 698 00:32:30,790 --> 00:32:32,065 >> ผู้ชม: วิทยาการเข้ารหัสลับ 699 00:32:32,065 --> 00:32:33,860 >> DAVID ลัน: เล็ก ๆ น้อย ๆ บิตของการเข้ารหัส 700 00:32:33,860 --> 00:32:36,550 การเข้ารหัสง่ายอย่างน้อยใน รุ่นมาตรฐาน แต่การเข้ารหัสลับ 701 00:32:36,550 --> 00:32:36,870 กระนั้น 702 00:32:36,870 --> 00:32:37,410 น้อยกว่า 703 00:32:37,410 --> 00:32:41,440 ดังนั้นมันจะเปิดออกถ้าคุณเข้ารหัสทั้งหมดของ ส่วนหัวเหล่านี้โดยใช้สิ่งที่คุณ 704 00:32:41,440 --> 00:32:48,770 ในขณะนี้อาจจะทราบข้อมูลเพิ่มเติมกันเองเช่น SSL, ชั้นซ็อกเก็ตการรักษาความปลอดภัยหรือ URL https://, 705 00:32:48,770 --> 00:32:51,890 แล้วทั้งหมดของสิ่งเหล่านี้เราได้รับ glancing ที่มีการเข้ารหัสที่จริง 706 00:32:51,890 --> 00:32:54,800 ซึ่งหมายความว่ามันก็เหมือนคุณ ไม่สามารถอ่านประทับมือ 707 00:32:54,800 --> 00:32:59,350 เฉพาะ facebook.com สามารถหรือ google.com, หรือในกรณีนี้เครื่องจะสามารถ 708 00:32:59,350 --> 00:33:00,550 อ่านแสตมป์มือที่ 709 00:33:00,550 --> 00:33:04,020 >> อนาถแม้ว่าและอีกครั้งนี้ ทั้งหมดก็เหมาะสมกับสิ่งที่เอ็นเอสเอ 710 00:33:04,020 --> 00:33:06,410 ของสายแม้ SSL คือเปราะบาง 711 00:33:06,410 --> 00:33:09,850 และเป็นจริงไม่ยาก ที่จะได้แตกการเข้ารหัสที่ 712 00:33:09,850 --> 00:33:12,040 ไม่มากโดยการแตกร้าวการเข้ารหัส, แต่โดยหลอกล่อ 713 00:33:12,040 --> 00:33:15,720 เบราว์เซอร์ในการถอดรหัส ข้อมูลก่อนเวลาอันควร 714 00:33:15,720 --> 00:33:17,880 แต่อีกครั้งเราจะแซวคุณ กับที่นานก่อนที่จะ 715 00:33:17,880 --> 00:33:21,242 แต่ตอนนี้เพียงต้องกลัว 716 00:33:21,242 --> 00:33:23,070 มันอนาถชนิดของจริง 717 00:33:23,070 --> 00:33:23,760 >> ทั้งหมดขวา 718 00:33:23,760 --> 00:33:27,910 เพื่อที่ตอนนี้ไม่ปล่อยให้เรา? 719 00:33:27,910 --> 00:33:29,010 ดีขอทำเช่นนี้ 720 00:33:29,010 --> 00:33:31,790 ขอไปข้างหน้าและใช้อย่างรวดเร็ว ทีเซอร์ก่อนที่เราจะหยุดพัก 721 00:33:31,790 --> 00:33:33,790 และผมคิดว่าเราจะอู้อีกนาน ในวันนี้ แต่เราจะไปดำน้ำใน 722 00:33:33,790 --> 00:33:37,850 สิ่งที่แบรนด์ใหม่และเซ็กซี่ที่จะ กระตุ้นความอยากอาหารของคุณมากยิ่งขึ้น 723 00:33:37,850 --> 00:33:38,950 เพื่อให้เป็นทีเซอร์ 724 00:33:38,950 --> 00:33:41,520 >> ดังนั้น SQL เราเริ่มต้นพูดคุยเกี่ยวกับ เคยให้สั้น ๆ เป็นครั้งสุดท้าย 725 00:33:41,520 --> 00:33:44,670 คุณจริงๆจะได้รับในมือของคุณสกปรก กับบางส่วนของมันในพีตั้งเจ็ด 726 00:33:44,670 --> 00:33:46,480 และในแง่ของคนธรรมดาสิ่งที่ไม่ SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 ทำเพื่อคุณ 729 00:33:49,850 --> 00:33:50,310 มันคืออะไร? 730 00:33:50,310 --> 00:33:51,546 ใช่ 731 00:33:51,546 --> 00:33:53,240 >> ผู้ชม: ให้การเข้าถึงข้อมูลที่คุณ 732 00:33:53,240 --> 00:33:53,360 >> DAVID ลัน: ใช่ 733 00:33:53,360 --> 00:33:55,120 มันช่วยให้คุณเข้าถึงข้อมูล ในฐานข้อมูล 734 00:33:55,120 --> 00:33:56,710 Structured Query Language 735 00:33:56,710 --> 00:33:59,890 และสิ่งนี้เป็นหลัก การเขียนโปรแกรมภาษา 736 00:33:59,890 --> 00:34:03,400 มีคุณสมบัติของมันที่ เราจะไม่ได้ใช้ในชั้นเรียน 737 00:34:03,400 --> 00:34:04,710 แต่คุณสามารถได้อย่างมีประสิทธิภาพ กำหนดฟังก์ชั่น 738 00:34:04,710 --> 00:34:06,870 พวกเขากำลังเรียกเก็บ ขั้นตอนใน SQL 739 00:34:06,870 --> 00:34:09,860 แต่เราจะให้มันค่อนข้างง่ายและเพียงแค่ ใช้สำหรับการดำเนินงานขั้นพื้นฐาน 740 00:34:09,860 --> 00:34:14,320 เช่นการเลือกข้อมูลการใส่ข้อมูล การปรับปรุงข้อมูลและการลบข้อมูล 741 00:34:14,320 --> 00:34:17,400 >> และจริงๆคุณสามารถคิดของฐานข้อมูล เช่นฐานข้อมูลเช่นเดียวกับ 742 00:34:17,400 --> 00:34:18,800 เป็นโปรแกรม Microsoft Excel 743 00:34:18,800 --> 00:34:21,989 SQL เพราะหมายถึงความสัมพันธ์ ฐานข้อมูลที่ 744 00:34:21,989 --> 00:34:23,480 ความสัมพันธ์ก็หมายความตาราง 745 00:34:23,480 --> 00:34:24,739 แถวและคอลัมน์ 746 00:34:24,739 --> 00:34:27,929 ดังนั้นสิ่งที่คุณสามารถใส่ในกระดาษคำนวณ เช่นนี้หรือ Google Docs, 747 00:34:27,929 --> 00:34:32,460 คุณสามารถใส่ลงไปในฐานข้อมูล ด้วยการประกาศตาราง 748 00:34:32,460 --> 00:34:34,800 >> ตอนนี้วิธีที่คุณจะเข้าถึงได้จริง ข้อมูลที่ 749 00:34:34,800 --> 00:34:38,239 ดีกับคำสั่งหรือ คำสั่งเช่นนี้ 750 00:34:38,239 --> 00:34:40,199 SELECT INSERT, UPDATE และลบ 751 00:34:40,199 --> 00:34:44,489 และส่วนใหญ่ผู้ที่เป็น สี่ส่วนผสมเดียวที่คุณจะต้อง 752 00:34:44,489 --> 00:34:47,370 ทำสิ่งที่ค่อนข้างแข็งแรง ปัญหาในการตั้งเจ็ด 753 00:34:47,370 --> 00:34:49,940 >> ตอนนี้กลับมาในวันที่คุณจะจริง ติดต่อกับฐานข้อมูลใน 754 00:34:49,940 --> 00:34:52,730 หน้าต่าง terminal สีดำและสีขาวที่ ให้กระพริบเช่นนี้ 755 00:34:52,730 --> 00:34:56,370 และฐานข้อมูลที่เรากำลังทำงานอยู่บน เครื่องใช้ที่เรียกว่า MySQL ซึ่งเป็น 756 00:34:56,370 --> 00:34:58,560 เครื่องมือฐานข้อมูลฟรีและเปิดแหล่ง 757 00:34:58,560 --> 00:35:02,240 หากคุณ Google และอ่านวิกิพีเดีย บทความคุณจะรู้ว่าชื่อเป็น 758 00:35:02,240 --> 00:35:05,060 บิตของการเปลี่ยนแปลงบางอย่าง รุ่นลินุกซ์ 759 00:35:05,060 --> 00:35:10,460 ฐานข้อมูลมาเรียเป็นจริง ส้อมดังนั้นการพูดของ MySQL 760 00:35:10,460 --> 00:35:12,740 >> เรื่องยาวสั้น, Oracle ซื้อ MySQL 761 00:35:12,740 --> 00:35:13,870 ออราเคิลเป็น บริษัท ขนาดใหญ่ 762 00:35:13,870 --> 00:35:17,010 คนได้รับการกังวลว่ามันจะ ไม่มีแหล่งที่มาค่อนข้างยังคงเปิดเป็น 763 00:35:17,010 --> 00:35:20,930 ดังนั้นนี้เป็นเพียงสำเนาของข้อมูลที่ ยังคงฟรียังคงเปิดแหล่งที่มาและ 764 00:35:20,930 --> 00:35:23,550 ที่ติดตั้งใน Fedora Linux โดยค่าเริ่มต้น 765 00:35:23,550 --> 00:35:26,130 >> แต่นี้เป็นชนิดของอาการปวด คอจะได้ทำความคุ้นเคยกับ 766 00:35:26,130 --> 00:35:27,310 ฐานข้อมูลด้วยวิธีนี้ 767 00:35:27,310 --> 00:35:30,560 ดังนั้นเราจึงรวมไว้ในเครื่อง CS50 เครื่องมือมาเปิดฟรีที่เรียกว่า 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin 769 00:35:31,700 --> 00:35:33,940 เพียงแค่เรื่องบังเอิญที่ มันเขียนใน PHP 770 00:35:33,940 --> 00:35:36,450 ไม่มีพื้นฐาน จำเป็นสำหรับ PHP ที่นี่ 771 00:35:36,450 --> 00:35:40,090 แต่นี้เป็นเพียงเครื่องมือบนเว็บที่ เราดาวน์โหลดได้ฟรีที่ติดตั้งใน 772 00:35:40,090 --> 00:35:43,850 เครื่องใช้ไฟฟ้าที่ช่วยให้เราที่จะมี อินเตอร์เฟซผู้ใช้แบบกราฟิกที่ 773 00:35:43,850 --> 00:35:48,610 ในการสำรวจ-p ตั้งฐานข้อมูลที่มีเจ็ด ซึ่งการสร้างฐานข้อมูลใหม่ 774 00:35:48,610 --> 00:35:51,980 กล่าวว่าสำหรับโครงการสุดท้ายคุณเองหากคุณต้องการ เช่นและในที่สุดสร้าง 775 00:35:51,980 --> 00:35:55,900 เว็บไซต์แบบไดนามิกเช่น CS50 การเงิน ที่ช่วยให้คุณสามารถค้นหาข้อมูลและ 776 00:35:55,900 --> 00:35:58,140 ปรับปรุงข้อมูลแบบไดนามิก 777 00:35:58,140 --> 00:36:01,420 >> คุณจะไม่ให้มีการใช้เพียง แฟ้มข้อความง่ายหรือ CSV 778 00:36:01,420 --> 00:36:05,950 จริงๆคุณสามารถใช้ฐานข้อมูลที่สมาร์ท โปรแกรมเพื่อให้คุณสามารถดำเนินการมากขึ้น 779 00:36:05,950 --> 00:36:10,240 คำสั่งที่ซับซ้อนมากกว่าเพียงแค่การอ่าน ผ่านทุกอย่างเป็นเส้นตรง 780 00:36:10,240 --> 00:36:14,150 >> ดังนั้นเช่นนี้เป็นสิ่งที่เราให้ คุณออกจากกล่องพีตั้งเจ็ด 781 00:36:14,150 --> 00:36:18,280 นี้เป็นตารางที่มีที่เห็นได้ชัดอย่างน้อย สามคอลัมน์หนึ่งซึ่งเป็น 782 00:36:18,280 --> 00:36:21,450 ชื่อผู้ใช้อย่างใดอย่างหนึ่งซึ่งเป็นกัญชา และอื่น ๆ ซึ่งเป็นรหัส 783 00:36:21,450 --> 00:36:26,200 >> แต่สิ่งที่น่าสนใจและเพียงเพื่อ แซวออกหนึ่งความคิดที่นี่ชื่อผู้ใช้ 784 00:36:26,200 --> 00:36:29,270 สันนิษฐานว่าเป็นที่ไม่ซ้ำกันอยู่แล้วใช่มั้ย 785 00:36:29,270 --> 00:36:31,190 ผมหมายถึงเว็บไซต์ใด ๆ ส่วนใหญ่ถ้า คุณมีชื่อผู้ใช้ที่มี 786 00:36:31,190 --> 00:36:32,370 ไม่สามารถเป็นสองซีซาร์ 787 00:36:32,370 --> 00:36:33,440 มีไม่สามารถเป็นสอง Malans 788 00:36:33,440 --> 00:36:34,950 มีไม่สามารถเป็นสอง jharvards 789 00:36:34,950 --> 00:36:35,600 ที่เป็นเอกลักษณ์ 790 00:36:35,600 --> 00:36:38,610 มิฉะนั้นพวกเขาไม่ทราบว่า jharvard มันเป็นจริง 791 00:36:38,610 --> 00:36:42,710 ดังนั้นสิ่งที่อาจจะมีแรงจูงใจสำหรับยัง มีคอลัมน์ที่สามทางด้านซ้าย 792 00:36:42,710 --> 00:36:46,970 เรียกว่ามี ID ซึ่งมีลักษณะเหมือน ตัวเลขที่เป็นเอกลักษณ์เหมือนกัน? 793 00:36:46,970 --> 00:36:51,300 มันให้ความรู้สึกเล็ก ๆ น้อย ๆ ที่ซ้ำซ้อน ให้ฉันได้อย่างรวดเร็วก่อน 794 00:36:51,300 --> 00:36:54,910 ทำไมมันอาจจะน่าสนใจที่จะมี ไม่เพียง แต่ชื่อผู้ใช้ที่ไม่ซ้ำกัน 795 00:36:54,910 --> 00:36:56,837 แต่ยังเป็นตัวเลขที่ไม่ซ้ำกัน? 796 00:36:56,837 --> 00:36:59,460 >> ผู้ชม: พวกเขาอาจมี รหัสผ่านเดียวกัน 797 00:36:59,460 --> 00:37:01,720 >> DAVID ลัน: คนอาจมี รหัสผ่านเดียวกันนั่นเอง 798 00:37:01,720 --> 00:37:03,900 ที่อาจเกิดขึ้นอย่างแน่นอน 799 00:37:03,900 --> 00:37:08,270 แต่ถ้าพวกเขามีชื่อผู้ใช้ที่ไม่ซ้ำกันนี้ผม จะเถียงว่าไม่จริง 800 00:37:08,270 --> 00:37:11,630 เรื่องเพราะถ้าพวกเขาพิมพ์ลงในพวกเขา ชื่อผู้ใช้ผมจะต้องตรวจสอบของพวกเขา 801 00:37:11,630 --> 00:37:15,060 รหัสผ่านดังกล่าวกัญชาของพวกเขา 802 00:37:15,060 --> 00:37:15,970 ทำไมอื่น 803 00:37:15,970 --> 00:37:17,950 >> ผู้ชม: การค้นหาได้เร็วขึ้น 804 00:37:17,950 --> 00:37:18,680 >> DAVID ลัน: การค้นหาได้เร็วขึ้น 805 00:37:18,680 --> 00:37:19,548 ทำไม? 806 00:37:19,548 --> 00:37:21,460 >> ผู้ชม: ID เป็นเพียงหนึ่งใน 807 00:37:21,460 --> 00:37:24,040 >> DAVID ลัน: รหัสเป็นเพียงตัวละครตัวหนึ่ง หรือจะแม่นยำมากขึ้นก็เป็นตัวเลข 808 00:37:24,040 --> 00:37:26,910 ดังนั้นจึงอาจเป็น 32 บิต หรือสิ่งที่ต้องการ 809 00:37:26,910 --> 00:37:30,270 ชื่อผู้ใช้ในขณะที่เห็นได้ชัดว่าเจสัน ขึ้น Hirschhorn ที่มีการเรียงลำดับของ 810 00:37:30,270 --> 00:37:33,900 ขัน​​นานและมันจะ พาฉันเวลามากขึ้นที่จะสาย 811 00:37:33,900 --> 00:37:40,910 เปรียบเทียบ H-I-R-S-C-H-H-O-R-N, และอาจจะ / 0 หรือสิ่งที่ต้องการในการสั่งซื้อ 812 00:37:40,910 --> 00:37:45,100 ในการมองหาเจสันเมื่อเทียบกับเพียง บอกให้ฉันจำนวนผู้ใช้สอง 813 00:37:45,100 --> 00:37:46,510 นั่นคือ 32 บิต 814 00:37:46,510 --> 00:37:48,550 มันเป็น INT เดียวที่ คุณจะต้องเปรียบเทียบ 815 00:37:48,550 --> 00:37:52,150 และแน่นอนที่ว่าทำไมฐานข้อมูล มีแนวโน้มที่จะกำหนดหมายเลขที่ไม่ซ้ำกัน 816 00:37:52,150 --> 00:37:53,710 แถวในพวกเขา 817 00:37:53,710 --> 00:37:56,280 >> ตอนนี้สิ่งที่ชนิดข้อมูลอื่น ๆ ที่มี นอกจาก INT และเห็นได้ชัด 818 00:37:56,280 --> 00:37:57,160 สตริงเช่นนี้หรือไม่ 819 00:37:57,160 --> 00:37:59,700 ดีที่จะเป็นที่เหมาะสมมากขึ้น ฐานข้อมูล SQL เช่น 820 00:37:59,700 --> 00:38:02,060 MySQL, มีช่องชา 821 00:38:02,060 --> 00:38:05,320 และ CHAR น้อยทำให้เข้าใจผิด ไม่ได้เป็นเพียงหนึ่งเดียว CHAR 822 00:38:05,320 --> 00:38:10,290 สนาม CHAR ในฐานข้อมูล MySQL คือ หนึ่งหรือมากกว่าหนึ่งตัวอักษร แต่มันเป็น 823 00:38:10,290 --> 00:38:11,780 จำนวนคงที่ของตัวอักษร 824 00:38:11,780 --> 00:38:15,710 >> ดังนั้นสำหรับตัวอย่างเช่นถ้าผมข้ามไป phpMyAdmin ที่คุณอาจมีอยู่แล้วหรือ 825 00:38:15,710 --> 00:38:21,340 ปัญหาจะเร็ว ๆ นี้ตั้งเจ็ดและฉันไป ไปยังฐานข้อมูลของฉันและเพียงเพื่อความสนุกสนาน, 826 00:38:21,340 --> 00:38:25,700 ขอสร้างตารางใหม่ที่เรียกว่า การทดสอบมีเพียงสองคอลัมน์ 827 00:38:25,700 --> 00:38:27,160 จากนั้นผมก็จะคลิกไปยัง 828 00:38:27,160 --> 00:38:30,070 และเรื่องนี้จะกลายเป็นที่คุ้นเคยเป็นธรรม โดยเฉพาะอย่างยิ่งในขณะที่คุณคนจรจัด 829 00:38:30,070 --> 00:38:31,130 รอบด้วยตัวคุณเอง 830 00:38:31,130 --> 00:38:34,140 นี่ฉันอาจพิมพ์ ID เพื่อสร้าง ตารางใหม่จาก INT ประเภท 831 00:38:34,140 --> 00:38:37,770 แต่ที่นี่ผมอาจจะพิมพ์ชื่อผู้ใช้ไปยัง สร้างตารางที่ก่อนหน้านี้ 832 00:38:37,770 --> 00:38:40,700 และสังเกตเห็นฉันมีทั้งกลุ่ม ชนิดให้เลือก 833 00:38:40,700 --> 00:38:43,610 >> และนี่ก็เป็นเหตุผลที่ phpMyAdmin เป็นชนิดของดี 834 00:38:43,610 --> 00:38:46,770 มันเป็นตัวของตัวเองการเรียนการสอนในที่คุณ เพียงแค่ชนิดของจุดและคลิกและสามารถ 835 00:38:46,770 --> 00:38:50,730 มองไปที่เมนูแบบเลื่อนลงและสรุปจาก ว่าสิ่งที่อำนาจ SQL จะช่วยให้คุณ 836 00:38:50,730 --> 00:38:54,090 >> และแน่นอนหากฉันเลือก CHAR ฉันแล้ว ต้องระบุระยะเวลาหรือวิธี 837 00:38:54,090 --> 00:38:55,940 ค่าหลายกี่ตัวอักษร 838 00:38:55,940 --> 00:39:00,090 ดังนั้นค่าที่พบบ่อยมากเป็นสิ่งที่ต้องการ 255 แต่ที่เล็ก ๆ น้อย ๆ เป็นเวลานาน 839 00:39:00,090 --> 00:39:02,250 โดยทั่วไปคือแปดสำหรับชื่อผู้ใช้ 840 00:39:02,250 --> 00:39:03,590 แต่ที่วันเล็ก ๆ น้อยเหล่านี้ 841 00:39:03,590 --> 00:39:05,430 ดังนั้นนี่คือการตัดสินใจการออกแบบ 842 00:39:05,430 --> 00:39:08,630 มันคือ 8 สูงสุดตัวอักษร 32, 255, 1,000? 843 00:39:08,630 --> 00:39:09,830 ความจริงแล้วมันขึ้นอยู่กับคุณ 844 00:39:09,830 --> 00:39:12,350 แต่สนาม CHAR เป็นจำนวนคงที่ 845 00:39:12,350 --> 00:39:16,420 เพื่อเลือกน้อยเกินไปและคุณชนิดของ เมาถ้าคุณต้องการชื่อผู้ใช้อีกต่อไป 846 00:39:16,420 --> 00:39:19,132 เลือกมากเกินไปและสิ่งที่ ข้อเสีย? 847 00:39:19,132 --> 00:39:20,820 >> ผู้ชม: [ได้ยิน] 848 00:39:20,820 --> 00:39:21,620 >> DAVID ลัน: มันสิ้นเปลือง 849 00:39:21,620 --> 00:39:24,835 เช่นเดียวกับใน C ถ้าคุณมีขนาดใหญ่ หน่วยความจำอันมากกว่าที่คุณต้องการคุณ 850 00:39:24,835 --> 00:39:27,190 เพียงแค่เสียเวลาและสูญเสียพื้นที่ 851 00:39:27,190 --> 00:39:31,430 เพื่อให้เป็นทางเลือกที่มีอยู่ VARCHAR ซึ่งจะช่วยแก้ปัญหานี้ได้ด้วย 852 00:39:31,430 --> 00:39:36,390 ระยะเวลาในการรักษาไม่เป็นความยาวคงที่, แต่ในขณะที่ความยาวสูงสุดและการใช้ 853 00:39:36,390 --> 00:39:40,990 จำนวนตัวแปรของตัวอักษรที่แล้ว มีแนวโน้มที่จะใช้เป็นเพียงตัวอักษรมากเท่าที่คุณ 854 00:39:40,990 --> 00:39:42,710 จริงต้อง 855 00:39:42,710 --> 00:39:43,670 ว่าเสียงที่สมบูรณ์แบบ 856 00:39:43,670 --> 00:39:45,640 >> ทำไมเราไม่ได้รับการกำจัด ข้อมูล CHAR พิมพ์แล้ว 857 00:39:45,640 --> 00:39:48,500 สิ่งที่อาจจะเสียของ ใช้ varchars ซึ่งเสียง 858 00:39:48,500 --> 00:39:51,644 เหมือนมันเป็น win ดี? 859 00:39:51,644 --> 00:39:52,596 อ้าง? 860 00:39:52,596 --> 00:39:53,846 >> ผู้ชม: [ได้ยิน] 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID ลัน: ตกลงที่ดี 863 00:39:57,790 --> 00:40:01,101 ดังนั้นหากข้อมูลทั้งหมดของคุณจะเหมือนกัน ระยะเวลาในสิ่งที่กังวล? 864 00:40:01,101 --> 00:40:05,250 >> ผู้ชม: เพ​​ราะคุณกำลังสูญเสีย ข้อมูลโดยการบอกพวกเขาทั้งหมด 865 00:40:05,250 --> 00:40:09,060 >> ลันเดวิด: ดังนั้นหากข้อมูลทั้งหมดของคุณคือ ระยะเวลาเดียวกันแม้ว่าฉันจะเถียง 866 00:40:09,060 --> 00:40:12,300 ที่ระบุความยาวสูงสุด เมื่อ VARCHAR ไม่แตกต่างจากที่เป็น 867 00:40:12,300 --> 00:40:16,070 ระบุความยาวคงที่เมื่อ CHAR ถ้า คุณรู้จำนวนล่วงหน้าว่า 868 00:40:16,070 --> 00:40:19,500 แต่มีแน่นอนและฉันจะจัดเรียงจาก สารสกัดจากคำตอบของความเป็นจริงที่ว่า 869 00:40:19,500 --> 00:40:22,610 ที่ยังคงมีสูงสุดซึ่งอาจ จะน่ารำคาญโดยเฉพาะอย่างยิ่งถ้าคุณ 870 00:40:22,610 --> 00:40:25,920 พบชื่อของบุคคลที่ นานผิดปกติท​​ี่คุณไม่ได้ 871 00:40:25,920 --> 00:40:26,860 คาดหวัง 872 00:40:26,860 --> 00:40:31,420 และมันก็ยังเป็นเพียงเล็กน้อยน้อยที่มีประสิทธิภาพ ที่จริงการค้นหาบน varchars เป็น 873 00:40:31,420 --> 00:40:35,620 ตรงข้ามกับการค้นหาตัวอักษรโดยเฉพาะอย่างยิ่ง สำหรับตารางยาวที่มีจำนวนมากและ 874 00:40:35,620 --> 00:40:36,510 ข้อมูลจำนวนมาก 875 00:40:36,510 --> 00:40:40,060 ดังนั้นที่นี่เกินไปใจเป็นอีกครั้งที่ ไม่มีทางเลือกที่เห็นได้ชัด 876 00:40:40,060 --> 00:40:42,870 >> ดังนั้นเพียงเพื่อให้คุณมีความรู้สึกของคนอื่น ๆ ชนิดของข้อมูลที่อาจจะเป็นที่สนใจ 877 00:40:42,870 --> 00:40:45,400 ทั้ง p-ชุดเจ็ดหรือใน อนาคตมี INT 878 00:40:45,400 --> 00:40:47,270 มี BIGINT, ซึ่ง เป็นเหมือนยาวยาว 879 00:40:47,270 --> 00:40:48,880 มันมีแนวโน้มที่จะเป็น 64 บิต 880 00:40:48,880 --> 00:40:51,640 มีทศนิยมซึ่งคุณจะได้เห็นในที่สุด ชุดปัญหาที่เกิดขึ้นซึ่งมีมาก 881 00:40:51,640 --> 00:40:55,300 คำตอบที่ทำความสะอาดเพื่อปัญหาที่เรา พบกับลอยและลอย 882 00:40:55,300 --> 00:40:55,980 ไม่แน่ชัดจุด 883 00:40:55,980 --> 00:40:57,390 แล้วมี DATETIME 884 00:40:57,390 --> 00:41:01,530 มีอักษรชนิดข้อมูลที่มี ให้มีลักษณะเหมือนปี, เดือน, วัน, 885 00:41:01,530 --> 00:41:03,730 และชั่วโมงนาทีและวินาที 886 00:41:03,730 --> 00:41:07,470 >> แต่ฐานข้อมูล SQL ยังมี สิ่งที่เราจะเรียกการจัดทำดัชนี 887 00:41:07,470 --> 00:41:11,630 และดัชนีคือสิ่งที่คุณ ระบุเมื่อสร้างตารางเพื่อ 888 00:41:11,630 --> 00:41:15,720 ทำให้การค้นหาและการดำเนินงานอื่น ๆ มีประสิทธิภาพมากขึ้น 889 00:41:15,720 --> 00:41:18,550 โดยเฉพาะมีสิ่งที่เรียกว่าคน ดัชนีหลักที่คุณสามารถทำได้ 890 00:41:18,550 --> 00:41:19,440 ประกาศดังต่อไปนี้ 891 00:41:19,440 --> 00:41:22,330 >> เราทำอย่างนี้สำหรับคุณด้วย ตารางผู้ใช้เราให้คุณ 892 00:41:22,330 --> 00:41:26,160 แต่สังเกตเห็นว่าฉันถูกสร้างด้วยตนเอง ตารางผู้ใช้ที่นี่ให้ 893 00:41:26,160 --> 00:41:27,110 มันชื่อของผู้ใช้ 894 00:41:27,110 --> 00:41:28,125 ผมระบุไว้แล้ว ID 895 00:41:28,125 --> 00:41:29,330 ผมระบุ INT 896 00:41:29,330 --> 00:41:32,000 ผมระบุชื่อผู้ใช้ด้วย สูงสุด 32 ตัวอักษร 897 00:41:32,000 --> 00:41:36,140 แต่ถ้าเราให้เลื่อนในเรื่องนี้อย่างเป็นธรรม หน้าต่างกว้างสังเกตเห็นมี 898 00:41:36,140 --> 00:41:38,260 พวงของสิ่งอื่น ๆ ที่ฉันสามารถระบุ 899 00:41:38,260 --> 00:41:40,950 >> หนึ่งฉันสามารถระบุคุณสมบัติ ชอบคุณรู้ว่าสิ่งนี้ 900 00:41:40,950 --> 00:41:42,190 INT ควรจะเป็นไม่ได้ลงชื่อ 901 00:41:42,190 --> 00:41:45,510 ฉันไม่ต้องการตัวเลขติดลบ, เพื่อขอให้มันไม่ได้ลงชื่อ 902 00:41:45,510 --> 00:41:48,660 Null ไม่เกี่ยวข้องที่นี่เพราะ ฉันไม่ต้องการให้ผู้ใช้ทุกคน 903 00:41:48,660 --> 00:41:49,640 มีจำนวนไม่ซ้ำกัน 904 00:41:49,640 --> 00:41:50,830 ฉันไม่ต้องการให้เป็นโมฆะ 905 00:41:50,830 --> 00:41:52,330 >> แต่เรื่องนี้เป็นที่น่าสนใจ 906 00:41:52,330 --> 00:41:57,780 ฉันสามารถระบุที่ ID มีอย่างใดอย่างหนึ่ง คีย์หลักของฐานข้อมูลนี้หรือเป็น 907 00:41:57,780 --> 00:42:00,620 ข้อความที่ไม่ซ้ำกันหรือจะจัดทำดัชนีหรือเต็ม 908 00:42:00,620 --> 00:42:05,630 ดังนั้นสำหรับวัตถุประสงค์ของว​​ันนี้เรื่องยาว ระยะสั้นหมายถึงหลักว่าเรื่องนี้จะต้อง 909 00:42:05,630 --> 00:42:10,570 เป็นได้ทั้งแนวคิดและเทคนิค สนามที่เราใช้ไม่ซ้ำกัน 910 00:42:10,570 --> 00:42:12,140 ระบุผู้ใช้ 911 00:42:12,140 --> 00:42:16,140 >> ดังนั้นเมื่อเรามองขึ้นไปผู้ใช้นี้การจัดเรียง ของสัญญาว่าจะมองพวกเขาขึ้นมาส่วนใหญ่โดย 912 00:42:16,140 --> 00:42:17,370 ที่ระบุที่ไม่ซ้ำ 913 00:42:17,370 --> 00:42:21,930 และฐานข้อมูลจะช่วยให้มั่นใจว่าถ้าคุณ มีจำนวนผู้ใช้ 3 คุณไม่สามารถ 914 00:42:21,930 --> 00:42:25,400 ใส่ร่างกายผู้ใช้คนอื่น ที่มีหมายเลขเดียวกันกับที่ 3 915 00:42:25,400 --> 00:42:28,380 ฐานข้อมูลก็จะปฏิเสธ เพื่อบัน​​ทึกการเปลี่ยนแปลงของคุณ 916 00:42:28,380 --> 00:42:32,310 ซึ่งเป็นสิ่งที่ดีเพราะคุณสามารถ ป้องกันตัวเองจากตัวเอง ตนเอง 917 00:42:32,310 --> 00:42:34,270 >> อีกทางเลือกหนึ่งสำหรับชื่อผู้ใช้ 918 00:42:34,270 --> 00:42:37,670 ดังนั้นแถวที่สองจำ เป็นเขตชื่อผู้ใช้ 919 00:42:37,670 --> 00:42:41,860 ดังนั้นแถวที่สองที่นี่เป็นชื่อผู้ใช้, ในขณะที่เราไม่ได้ไกลไปทางซ้ายมี 920 00:42:41,860 --> 00:42:43,940 >> ดังนั้นสิ่งที่ฉันอาจต้องการที่จะระบุ? 921 00:42:43,940 --> 00:42:47,840 ฉันไม่ได้รับอนุญาตตาม SQL, เพื่อระบุสองคีย์หลัก 922 00:42:47,840 --> 00:42:50,750 คุณสามารถระบุที่สำคัญร่วมกันที่คุณ มองไปที่เขตข้อมูลทั้งสอง แต่พวกเขาไม่สามารถ 923 00:42:50,750 --> 00:42:52,260 เป็นรายบุคคลเป็นคีย์หลัก 924 00:42:52,260 --> 00:42:54,750 เพื่อที่ว่าออกจากคำถาม 925 00:42:54,750 --> 00:42:56,040 เพื่อที่ฉันอาจต้องการเลือก? 926 00:42:56,040 --> 00:42:59,710 >> ดีที่ไม่ซ้ำกันในทำนองเดียวกัน คีย์หลักที่คุณระบุนี้ 927 00:42:59,710 --> 00:43:03,570 สนามจะต้องไม่ซ้ำกัน แต่มัน จะไม่ได้หนึ่ง 928 00:43:03,570 --> 00:43:04,410 ผมใช้ตลอดเวลา 929 00:43:04,410 --> 00:43:08,450 และเราจะไม่ใช้นี้ทั้งหมด เวลาสำหรับสิ่งที่เหตุผลอีกครั้ง? 930 00:43:08,450 --> 00:43:10,490 มันช้าที่อาจเกิดขึ้นถ้า มันเป็นชื่อผู้ใช้ยาว 931 00:43:10,490 --> 00:43:11,740 มันก็แค่เสียเวลา 932 00:43:11,740 --> 00:43:16,140 >> INDEX ขณะที่ระบุว่ามันเป็น ไม่ได้ไปจะไม่ซ้ำกัน แต่ฉันต้องการ 933 00:43:16,140 --> 00:43:19,470 คุณสามารถทำงานมายากลของคุณภายใต้ เครื่องดูดควันที่จะทำให้มันเร็วขึ้นสำหรับผมที่จะ 934 00:43:19,470 --> 00:43:21,420 ค้นหาในฟิลด์นี้ 935 00:43:21,420 --> 00:43:23,320 ดังนั้นนี้อาจจะไม่เกี่ยวข้องที่นี่ 936 00:43:23,320 --> 00:43:26,500 สำหรับชื่อผู้ใช้, ฉันเถียงว่า UNIQUE คำตอบที่ดีคือ 937 00:43:26,500 --> 00:43:31,200 แต่คิดว่าเราทำผู้ใช้มากขึ้น น่าสนใจกว่าเพียงแค่ชื่อผู้ใช้, 938 00:43:31,200 --> 00:43:32,430 hashes และหมายเลข ID 939 00:43:32,430 --> 00:43:33,860 เกิดอะไรขึ้นถ้าเราให้คนชื่อเต็ม? 940 00:43:33,860 --> 00:43:37,700 ถ้าเราให้พวกเขามีอะไรที่อยู่ และข้อมูลอื่น ๆ เกี่ยวกับพวกเขา? 941 00:43:37,700 --> 00:43:43,360 >> ดีถ้าคุณระบุว่าคอลัมน์ใน ฐานข้อมูลการจัดทำดัชนีที่หมายความว่า 942 00:43:43,360 --> 00:43:47,730 MySQL หรือ Oracle ที่หรือสิ่งที่ฐานข้อมูล ที่คุณใช้ควรจะทำงานมายากล 943 00:43:47,730 --> 00:43:51,300 และใช้ชนิดของข้อมูลบางอย่างแฟนซี โครงสร้างเหมือนต้นไม้หรือคู่ชีวิตหรือ 944 00:43:51,300 --> 00:43:55,940 ตารางแฮชหรือสิ่งที่จะรับประกัน ที่ว่าเมื่อคุณค้นหาข้อมูลโดยใช้ 945 00:43:55,940 --> 00:43:58,150 เลือกบนสนามโดยเฉพาะอย่างยิ่ง - 946 00:43:58,150 --> 00:44:01,310 ชอบแสดงให้ฉันทุกคนรู้ว่า ชีวิตบนถนน Oxford 947 00:44:01,310 --> 00:44:02,540 แบบสอบถามเช่นเดียวกับที่ 948 00:44:02,540 --> 00:44:06,250 หากคุณได้ระบุล่วงหน้าว่า คุณต้องการดัชนีในเขตข้อมูลที่, 949 00:44:06,250 --> 00:44:09,050 การค้นหาจะมากได้เร็วขึ้นมาก 950 00:44:09,050 --> 00:44:12,090 >> หากคุณไม่ได้ระบุดัชนีที่ดีที่สุด คุณสามารถทำได้คือการค้นหาเชิงเส้นถ้า 951 00:44:12,090 --> 00:44:13,030 มันไม่เรียง 952 00:44:13,030 --> 00:44:16,220 แต่ถ้าคุณระบุ INDEX, สมาร์ท คนที่ทำฐานข้อมูล - 953 00:44:16,220 --> 00:44:19,340 คนอย่างคุณที่รู้ว่าตอนนี้ต้นไม้ และพยายามและตารางกัญชา - 954 00:44:19,340 --> 00:44:23,220 โดยอัตโนมัติจะสร้างข้อมูลดังกล่าว โครงสร้างในหน่วยความจำเพื่อให้แน่ใจว่า 955 00:44:23,220 --> 00:44:26,050 การค้นหาเหล​​่านี้จะได้เร็วขึ้นมาก 956 00:44:26,050 --> 00:44:29,660 >> FULLTEXT ในขณะเดียวกันมีความคล้ายคลึงในจิตวิญญาณ, แต่ช่วยให้คุณทำสัญลักษณ์ 957 00:44:29,660 --> 00:44:35,480 ค้นหาชอบแสดงให้ฉันทุกคนรู้ว่า ชีวิตที่ถนนที่ขึ้นต้นด้วย 958 00:44:35,480 --> 00:44:36,960 ตัวอักษร O ด้วยเหตุผลใด 959 00:44:36,960 --> 00:44:38,850 คุณสามารถค้นหาตัวแทน เช่นนั้น 960 00:44:38,850 --> 00:44:45,880 หรือสิ่งที่น่าสนใจมากขึ้นเช่นการแสดง ฉันทุกคนที่มีคำว่า - 961 00:44:45,880 --> 00:44:49,400 แสดงให้ฉันทุกคนที่มีชื่อเริ่มต้น ด้วยตัวอักษรโดยเฉพาะอย่างยิ่ง 962 00:44:49,400 --> 00:44:51,880 คุณสามารถค้นหาคำหลัก อย่างนี้ 963 00:44:51,880 --> 00:44:52,630 ทั้งหมดขวา 964 00:44:52,630 --> 00:44:55,760 >> ดังนั้นโอกาสในการออกแบบ มีที่อาจเกิดขึ้น 965 00:44:55,760 --> 00:44:57,740 มีคนอื่น ๆ ที่ฉันจะเป็น คลื่นมือของฉันที่ 966 00:44:57,740 --> 00:45:00,530 มันจะเปิดออกว่าคุณสามารถมี เครื่องมือเก็บที่แตกต่างกัน 967 00:45:00,530 --> 00:45:04,390 และนี่คือความลับมากขึ้นกว่าที่เราต้องการ อย่างแน่นอนสำหรับปัญหาการตั้งเจ็ด 968 00:45:04,390 --> 00:45:06,920 โดยค่าเริ่มต้นพวกคุณกำลังใช้ สิ่งที่เรียกว่า InnoDB 969 00:45:06,920 --> 00:45:10,910 คุณจะเห็นการเอ่ยถึงนี้ที่ไหนสักแห่งใน อินเตอร์เฟซของ phpMyAdmin ได้มากที่สุด 970 00:45:10,910 --> 00:45:14,130 แต่รู้ว่ามีการออกแบบอื่น ๆ การตัดสินใจที่มีศักยภาพ 971 00:45:14,130 --> 00:45:18,030 ดอกเบี้ยมาโครงการสุดท้ายถ้า คุณจะทำอะไร Web-based 972 00:45:18,030 --> 00:45:19,330 >> แต่ขอทำเช่นนี้ 973 00:45:19,330 --> 00:45:23,130 ให้ไปข้างหน้าและวางนี้ หน้าจอเป็นทีเซอร์สำหรับเรื่องราว 974 00:45:23,130 --> 00:45:26,330 ที่เกี่ยวข้องกับคุณเพื่อนร่วมห้อง, และแก้วนม 975 00:45:26,330 --> 00:45:28,240 ขอใช้เวลาสองนาที หรือเพื่อทำลายที่นี่ 976 00:45:28,240 --> 00:45:31,060 และถ้าคุณสามารถติดรอบให้มา กลับมาดูอีกเล็กน้อยที่ SQL และ 977 00:45:31,060 --> 00:45:35,160 แล้วบิตของ JavaScript กับ p-ชุดแปดในใจ 978 00:45:35,160 --> 00:45:36,120 >> ทั้งหมดขวา 979 00:45:36,120 --> 00:45:40,420 ดังนั้นขอให้คุณได้รับความคิดเกี่ยวกับ กรณีที่มุมที่ได้อย่างง่ายดายมากสามารถเกิดขึ้น 980 00:45:40,420 --> 00:45:44,240 ในบริบทของการใช้ฐานข้อมูลหรือ ตรงไปตรงมาแม้จะใช้สิ่งที่โลกแห่งความจริง 981 00:45:44,240 --> 00:45:46,280 เช่นเดียวกับตู้เอทีเอ็มจะได้รับเงิน 982 00:45:46,280 --> 00:45:47,640 ดังนั้นที่นี่มีตู้เย็นของ 983 00:45:47,640 --> 00:45:50,040 สมมติว่าคุณได้มีหนึ่งเกินไปในการ หอพักหรือบ้านของคุณ 984 00:45:50,040 --> 00:45:54,990 และคุณได้มีหนึ่งในเพื่อนร่วมห้องและทั้งสองของ คุณชอบนมเช่น 985 00:45:54,990 --> 00:45:57,210 >> ดังนั้นคุณมาที่บ้านจากชั้นเรียนหนึ่งวัน 986 00:45:57,210 --> 00:45:58,490 เขาหรือเธอยังไม่กลับ 987 00:45:58,490 --> 00:45:59,180 คุณเปิดตู้เย็น 988 00:45:59,180 --> 00:46:00,870 จริงๆคุณต้องการแก้วใหญ่ของนม 989 00:46:00,870 --> 00:46:01,820 มีนมไม่ได้ 990 00:46:01,820 --> 00:46:02,920 ดังนั้นคุณจะทำอย่างไร 991 00:46:02,920 --> 00:46:03,840 คุณปิดตู้เย็น 992 00:46:03,840 --> 00:46:04,670 คุณคว้าคีย์ของคุณ 993 00:46:04,670 --> 00:46:05,930 คุณออกไปตาราง 994 00:46:05,930 --> 00:46:09,240 และคุณได้รับในสายที่ CVS ที่เหล่านั้น สิ่งที่เช็คเอาท์ด้วยตนเองซึ่งมักจะ 995 00:46:09,240 --> 00:46:11,180 ใช้เวลานานกว่าจริง มีพนักงานเก็บเงิน 996 00:46:11,180 --> 00:46:11,820 แต่อย่างใด 997 00:46:11,820 --> 00:46:15,490 >> ดังนั้นแล้วในขณะเดียวกัน dot dot dot ของคุณ เพื่อนร่วมห้องมาที่บ้านและเขาหรือเธอ 998 00:46:15,490 --> 00:46:17,440 ในทำนองเดียวกันมีความทะเยอทะยาน สำหรับนม 999 00:46:17,440 --> 00:46:20,380 ดังนั้นเขาหรือเธอเปิดตู้เย็น, ลักษณะภายในและโอ้ด่า 1000 00:46:20,380 --> 00:46:21,160 นมไม่มี 1001 00:46:21,160 --> 00:46:24,750 ดังนั้นเขาหรือเธอหัวออกที่เกิดขึ้นไป เพื่อ CVS อื่น ๆ ซึ่งเป็นเพียง 1002 00:46:24,750 --> 00:46:27,900 ปิดกั้นออกไปด้วยเหตุผลบางอย่างและเขาหรือ เธอได้รับอยู่ในแนวที่จะซื้อนม 1003 00:46:27,900 --> 00:46:30,480 >> ในขณะที่คุณมาที่บ้านเขาหรือ เธอกลับมาบ้านและสิ่งที่ทำ 1004 00:46:30,480 --> 00:46:31,980 ในที่สุดคุณมี? 1005 00:46:31,980 --> 00:46:33,080 นมสองเท่า 1006 00:46:33,080 --> 00:46:34,620 แต่คุณไม่ชอบ นมที่มาก 1007 00:46:34,620 --> 00:46:37,300 ดังนั้นตอนนี้คุณมีนมมากว่าตอนนี้ หนึ่งของพวกเขาเป็นเพียงการจะไปเปรี้ยว 1008 00:46:37,300 --> 00:46:37,820 ในที่สุด 1009 00:46:37,820 --> 00:46:39,370 ดังนั้นนี่คือปัญหาที่ดีจริงๆ 1010 00:46:39,370 --> 00:46:39,900 ใช่ไหม? 1011 00:46:39,900 --> 00:46:41,990 >> ดังนั้นสิ่งที่เกิดขึ้น? 1012 00:46:41,990 --> 00:46:44,810 ดังนั้นพื้นฐานนี้เป็นชนิด จากตัวอย่างไร้สาระ 1013 00:46:44,810 --> 00:46:48,580 แต่อยู่ภายใต้ฝากระโปรงสิ่งที่เราเคยมี เกิดขึ้นที่นี่เป็นทั้งของคุณตรวจสอบ 1014 00:46:48,580 --> 00:46:52,390 รัฐของชิ้นส่วนของบางอย่าง หน่วยความจำ, ตู้เย็น, 1015 00:46:52,390 --> 00:46:54,420 ทั้งสองของคุณตรวจสอบรัฐ ของตัวแปรบาง 1016 00:46:54,420 --> 00:46:57,360 คุณทั้งสองดึงข้อสรุป ว่าแล้วคุณลงมือทำ 1017 00:46:57,360 --> 00:47:01,420 แต่น่าเสียดายที่ในขณะที่เพื่อนร่วมห้องของคุณ คือที่ร้านค้าของรัฐว่า 1018 00:47:01,420 --> 00:47:05,670 ตัวแปรเปลี่ยนเขาหรือเธอกลับมา และตอนนี้ต้องการที่จะเปลี่ยนสถานะ แต่ 1019 00:47:05,670 --> 00:47:07,480 มันถูกแล้วเปลี่ยน เมื่อเขาหรือเธอ 1020 00:47:07,480 --> 00:47:11,120 และแน่นอนว่าเขาหรือเธอจะได้ไม่ต้อง ไปเก็บถ้าพวกเขารู้ 1021 00:47:11,120 --> 00:47:13,010 ที่คุณมีอยู่แล้วบนเส้นทาง 1022 00:47:13,010 --> 00:47:16,430 >> ดังนั้นในโลกแห่งความจริงที่ว่าคุณสามารถ หลีกเลี่ยงปัญหานี้สมมติว่าคุณมี 1023 00:47:16,430 --> 00:47:18,940 ตู้เย็น, คุณมีเพื่อนร่วมห้อง, และคุณจริงชอบนม? 1024 00:47:18,940 --> 00:47:19,760 >> ผู้ชม: การสื่อสาร 1025 00:47:19,760 --> 00:47:20,580 >> DAVID ลัน: การสื่อสาร 1026 00:47:20,580 --> 00:47:21,160 ตกลง 1027 00:47:21,160 --> 00:47:22,500 แต่วิธีที่คุณอาจจะสื่อสาร 1028 00:47:22,500 --> 00:47:23,990 >> ผู้ชม: ฝากทราบ 1029 00:47:23,990 --> 00:47:25,480 >> DAVID ลัน: ปล่อยทราบใช่ไหม 1030 00:47:25,480 --> 00:47:28,025 มักจะออกจากบันทึกสำหรับ แฟน ๆ ของการแสดง 1031 00:47:28,025 --> 00:47:31,580 ขวาทั้งหมดจึงมักออกจากบันทึกหรือ ใส่เช่นกุญแจหรืออะไรอย่างแท้จริง 1032 00:47:31,580 --> 00:47:35,440 ในตู้เย็นที่ช่วยให้คุณ เพื่อนร่วมห้องจากการตรวจสอบสถานะของ 1033 00:47:35,440 --> 00:47:36,540 ตัวแปรที่ 1034 00:47:36,540 --> 00:47:40,800 >> ตอนนี้ทำไมนี้อาจจะชิดกับ ปัญหาการตั้งเจ็ดหรือตู้เอทีเอ็ม 1035 00:47:40,800 --> 00:47:46,780 ดีจินตนาการโลกในตู้เอทีเอ็มที่ คุณอาจจะสามารถที่จะไปถึงตู้เอทีเอ็ม 1036 00:47:46,780 --> 00:47:48,920 เครื่องที่นี่และ ATM อื่นที่นี่ 1037 00:47:48,920 --> 00:47:50,680 และสิ่งนี้เกิดขึ้นค่อนข้างบ่อย 1038 00:47:50,680 --> 00:47:54,150 และสมมติว่าคุณมีสองบัตรเอทีเอ็ม ซึ่งเป็นไปได้ที่จะได้รับ 1039 00:47:54,150 --> 00:47:57,420 และคุณเข้าสู่เครื่องทั้งสอง ได้อย่างมีประสิทธิภาพพร้อมกันหวังว่า 1040 00:47:57,420 --> 00:47:58,660 ในขณะที่ไม่มีใครมอง 1041 00:47:58,660 --> 00:48:01,260 แล้วคุณพิมพ์ลงใน PIN ของคุณ ๆ พร้อมกัน 1042 00:48:01,260 --> 00:48:06,280 แล้วคุณทำแบบสอบถามความสมดุล เพื่อดูว่าเงินที่คุณมี 1043 00:48:06,280 --> 00:48:08,920 และสมมติว่าคุณมี 100 $ ที่เหลืออยู่ในบัญชีของคุณ 1044 00:48:08,920 --> 00:48:13,310 เพื่อเป็นหลักพร้อมกันคุณ พูดหนึ่งศูนย์ศูนย์ใส่ 1045 00:48:13,310 --> 00:48:16,000 และคุณหวังว่าจะได้รับคืนเงินบางส่วน 1046 00:48:16,000 --> 00:48:18,440 >> แต่วิธีการที่จำนวนเงินที่คุณจะได้รับกลับ 1047 00:48:18,440 --> 00:48:21,710 ตอนนี้คอมพิวเตอร์ที่ส่วนท้ายของวันที่ โดยเฉพาะอย่างยิ่งหากพวกเขากำลังพูดคุยกับ 1048 00:48:21,710 --> 00:48:27,360 เซิร์ฟเวอร์ไม่จำเป็นต้องทำในสิ่งที่ ในลำดับที่คาดว่า 1049 00:48:27,360 --> 00:48:30,860 >> ดังนั้นคิดว่าสิ่งที่เกิดขึ้นเพราะ สิ่งที่เครือข่ายมีปัญหาความเร็ว 1050 00:48:30,860 --> 00:48:34,530 มีหรือปัญหา CPU มีหรือ อะไรอย่างนั้นสมมติว่า 1051 00:48:34,530 --> 00:48:38,530 ครั้งแรกที่ตู้เอทีเอ็มตรวจสอบยอดเงินของคุณและ เห็นโอ้คนนี้มี 100 $ 1052 00:48:38,530 --> 00:48:41,840 แต่แล้วได้รับฟุ้งซ่านเพราะอาจจะ การสำรองข้อมูลที่เกิดขึ้นและดังนั้นจึงเป็น 1053 00:48:41,840 --> 00:48:42,500 ชะลอตัวลง 1054 00:48:42,500 --> 00:48:45,080 หรืออาจจะในขณะที่การตรวจสอบเครือข่าย การเชื่อมต่อได้ช้าลงเล็กน้อยเพราะ 1055 00:48:45,080 --> 00:48:45,910 นี้เพิ่งเกิดขึ้น 1056 00:48:45,910 --> 00:48:47,100 พวกเขากำลังอุปกรณ์ทางกายภาพ 1057 00:48:47,100 --> 00:48:49,330 ดังนั้นขณะที่ตู้เอทีเอ็มที่สองคือ ถามคำถามเดียวกัน 1058 00:48:49,330 --> 00:48:53,030 ใช้เงินเท่าไหร่ไม่เดวิดมี? $ 100 คือคำตอบ 1059 00:48:53,030 --> 00:48:58,930 แต่เป็นเพราะตู้เอทีเอ็มครั้งแรกยังไม่ได้ ส่งข้อความลบ $ 100 ทั้ง 1060 00:48:58,930 --> 00:49:03,000 ได้ตรวจสอบตู้เอทีเอ็มตู้เซฟของธนาคารที่ เห็นมี 100 $ มีและตอนนี้ 1061 00:49:03,000 --> 00:49:07,160 เครื่องทั้งสองอาจมี จะคายคำตอบ 1062 00:49:07,160 --> 00:49:12,240 >> ตอนนี้เป็นที่ดีสำหรับคุณในความรู้สึกบาง ถ้าสิ่งที่ธนาคารไม่ในที่สุด 1063 00:49:12,240 --> 00:49:17,200 มีการเปลี่ยนจำนวนเงินที่จะลบ 100 การตั้งค่าตัวแปรเท่ากับของคุณ 1064 00:49:17,200 --> 00:49:21,570 บัญชีธนาคารเท่ากับ 0 เมื่อเทียบ ในการทำลบ 100 1065 00:49:21,570 --> 00:49:24,410 ขณะนี้ในกรณีที่เลวร้ายที่สุดสำหรับธนาคาร - 1066 00:49:24,410 --> 00:49:27,470 หรือในการที่ดีที่สุดสำหรับธนาคารในขณะเดียวกัน พวกเขาให้คุณ $ 200 และ 1067 00:49:27,470 --> 00:49:31,690 บัญชีธนาคารของคุณในขณะนี้แสดงให้เห็นในแง่ลบ $ 100 ซึ่งจริงๆไม่ได้ 1068 00:49:31,690 --> 00:49:32,950 เป็นประโยชน์กับคุณในทุก 1069 00:49:32,950 --> 00:49:36,500 แต่ประเด็นก็คือว่าการแข่งขันครั้งนี้ เงื่อนไขในการได้รับสองเพื่อนร่วมห้อง 1070 00:49:36,500 --> 00:49:40,660 นมหรือสองตู้เอทีเอ็มพยายามที่จะได้รับเงินสด และเปลี่ยนสถานะของสุสาน 1071 00:49:40,660 --> 00:49:44,510 ในเวลาเดียวกันที่มีอยู่ใด ๆ เวลาที่คุณมีฐานข้อมูล 1072 00:49:44,510 --> 00:49:48,290 >> ขณะนี้ในปัญหาตั้งเจ็ดปัญหานี้ ที่เกิดขึ้นในแง่ที่ว่าถ้าคุณซื้อ 1073 00:49:48,290 --> 00:49:52,110 หุ้นของหุ้น Facebook, และจากนั้น เช่นคุณซื้อหุ้นที่สองของ 1074 00:49:52,110 --> 00:49:55,160 หุ้น Facebook, คุณจะต้องทำ การตัดสินใจเป็นโปรแกรมเมอร์ 1075 00:49:55,160 --> 00:49:58,710 เพื่อที่จะตัดสินใจว่าจะปรับปรุง ฐานข้อมูลการต่อรองที่คุณกำลังจะ 1076 00:49:58,710 --> 00:50:02,250 มีหนึ่งแถวสำหรับหุ้นที่และ เป็นวิธีหนึ่งที่จะใช้มัน 1077 00:50:02,250 --> 00:50:06,640 และคุณจะมีส่วนแบ่งของ FB ซึ่งเป็นสัญลักษณ์หุ้นของพวกเขา 1078 00:50:06,640 --> 00:50:10,120 ชื่อผู้ใช้นี้หรือผู้ใช้รายนี้ ID ตัวระบุที่ไม่ซ้ำกัน 1079 00:50:10,120 --> 00:50:12,340 >> แต่เรื่องเดียวกันสามารถเกิดขึ้นได้ที่นี่ 1080 00:50:12,340 --> 00:50:15,800 ถ้าคุณทำเช่น SELECT ใน SQL ที่คุณจะเห็น ปัญหาในการตั้งเจ็ดเมื่อคุณเห็น 1081 00:50:15,800 --> 00:50:18,460 โอ้เดวิดมีส่วนแบ่ง หุ้น Facebook 1082 00:50:18,460 --> 00:50:23,240 ตอนนี้ผมขอเปลี่ยนนี้จะเป็นสองหุ้น เพราะเขาต้องการที่จะซื้อ 1083 00:50:23,240 --> 00:50:24,120 หุ้นที่สอง 1084 00:50:24,120 --> 00:50:27,860 แต่สมมติว่าเดวิดจริงมีสอง หน้าต่างเบราว์เซอร์เปิดหรือคิดว่า 1085 00:50:27,860 --> 00:50:32,150 มันเป็นบัญ​​ชีร่วมกับสองผัวเมีย และทั้งสองของพวกเขากำลังพยายามที่จะดำเนินการ 1086 00:50:32,150 --> 00:50:36,770 การดำเนินการเดียวกันมีเกินไป ที่มีศักยภาพที่มีอยู่สำหรับการตัดสินใจที่จะเป็น 1087 00:50:36,770 --> 00:50:39,670 ทำตามหน้าที่ รัฐของโลก - 1088 00:50:39,670 --> 00:50:41,290 บัญชีมีหนึ่งหุ้น - 1089 00:50:41,290 --> 00:50:45,630 และทั้งสองคนหรือเซิร์ฟเวอร์ทั้งสองตอนนี้ พยายามที่จะบอกว่ามันเพิ่มขึ้นถึงสองหุ้น 1090 00:50:45,630 --> 00:50:49,020 แต่ในกรณีนี้คุณอาจจะมีการเรียกเก็บ ฉันเงินค่าหุ้นทั้งสอง แต่ 1091 00:50:49,020 --> 00:50:50,830 เพิ่มขึ้นเพียงครั้งเดียวที่ 1092 00:50:50,830 --> 00:50:54,730 >> ดังนั้นในระยะสั้นปัญหาพื้นฐาน ที่นี่เช่นเดียวกับเรื่องตลกเกี่ยวกับการออก 1093 00:50:54,730 --> 00:50:58,750 ทราบหรือวางกุญแจที่มันเป็น ถ้าคนสองคนหรือสองหัวข้อ - 1094 00:50:58,750 --> 00:50:59,930 คิดว่ากลับไปเริ่มต้น - 1095 00:50:59,930 --> 00:51:03,220 สามารถตรวจสอบสถานะของตัวแปรบาง แล้วพยายามที่จะเปลี่ยนตัวแปรที่ 1096 00:51:03,220 --> 00:51:07,950 แต่ทั้งสองสิ่งที่ไม่ได้เกิดขึ้นที่ ในเวลาเดียวกัน แต่สามารถได้รับการขัดจังหวะ 1097 00:51:07,950 --> 00:51:11,500 โดยสิ่งอื่น ๆ ที่เกิดขึ้นข้อมูลสามารถ ได้รับเป็นรัฐแปลกมาก 1098 00:51:11,500 --> 00:51:15,450 และคุณสามารถได้รับประโยชน์หรือคุณสามารถประสบ ในความหมายของเงินเช่น 1099 00:51:15,450 --> 00:51:18,110 >> ดังนั้นในการกำหนดปัญหาที่เจ็ดเราให้คุณ นี้หนึ่งบรรทัดของรหัสซึ่งยาว 1100 00:51:18,110 --> 00:51:21,000 เรื่องสั้นแก้นี้ ปัญหาใน MySQL 1101 00:51:21,000 --> 00:51:24,950 นี้การเรียนการสอนมานานมากที่ไม่ได้ ได้ใส่ลงในหนึ่งบรรทัด 1102 00:51:24,950 --> 00:51:30,370 หน้าจอที่นี่เพื่อให้แน่ใจว่าการทำงานของคุณ เป็นสิ่งที่เรียกว่าอะตอม 1103 00:51:30,370 --> 00:51:33,720 มันทั้งหมดที่เกิดขึ้นในครั้งเดียวหรือ มันไม่ได้เกิดขึ้นในทุก 1104 00:51:33,720 --> 00:51:37,530 ประโยคนี้เป็นเวลานานมากที่จะไม่สามารถ บางส่วนได้รับการขัดจังหวะ 1105 00:51:37,530 --> 00:51:39,840 >> และสิ่งที่มันไม่เป็นตัวอักษร สิ่งที่กล่าว 1106 00:51:39,840 --> 00:51:44,200 ใส่ลงในตารางต่อไปนี้บางส่วน สามช่องค่าเฉพาะเหล่านั้น 1107 00:51:44,200 --> 00:51:47,280 แต่ที่สำคัญที่ซ้ำกัน ไม่ได้ทำแทรก 1108 00:51:47,280 --> 00:51:48,280 จะปรับปรุง 1109 00:51:48,280 --> 00:51:52,450 ดังนั้นนี้เป็นเหมือนการทำและเลือก INSERT เพื่อที่จะพูดในเวลาเดียวกัน 1110 00:51:52,450 --> 00:51:55,150 และสิ่งที่เป็นกุญแจสำคัญที่อาจ ถูกเรียกที่นี่? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> มันจะเปิดออกและคุณจะเห็นใน ปัญหาการตั้งค่าข้อมูลจำเพาะเจ็ดเพราะ 1113 00:52:01,380 --> 00:52:06,040 เราได้ประกาศว่าจะมีคีย์ที่ไม่ซ้ำกัน บนโต๊ะนี้โดยเฉพาะเช่นที่ 1114 00:52:06,040 --> 00:52:08,480 คุณไม่สามารถมีหลายแถว สำหรับผู้ใช้เดียวกันกับ 1115 00:52:08,480 --> 00:52:10,150 สัญลักษณ์หุ้นเดียวกันเงิน - 1116 00:52:10,150 --> 00:52:13,780 ในตัวอย่างนี้ที่นี่เป็น DVN.V หุ้นเงินที่เราโง่ 1117 00:52:13,780 --> 00:52:14,980 อ้างถึงในสเป็ค 1118 00:52:14,980 --> 00:52:17,860 เพราะเราได้ประกาศว่าจะไม่ซ้ำกัน สิ่งที่หมายถึงนี้คือว่าถ้าคุณ 1119 00:52:17,860 --> 00:52:23,580 พยายามที่จะแทรกแถวที่ซ้ำกันคุณ แทนจะปรับปรุงได้โดยไม่ต้อง 1120 00:52:23,580 --> 00:52:27,020 คนอื่น ๆ ที่มีโอกาสที่จะเปลี่ยน รัฐของโลกทั้ง 1121 00:52:27,020 --> 00:52:29,400 ดังนั้นในระยะสั้นนี้ทำให้ สิ่งที่มีอะตอม 1122 00:52:29,400 --> 00:52:32,530 >> โดยทั่วไปมากขึ้นแม้ว่าฐานข้อมูล เช่น MySQL - 1123 00:52:32,530 --> 00:52:35,460 และคุณไม่จำเป็นต้องมีคุณสมบัติสำหรับ -p ตั้งเจ็ด แต่เก็บไว้ในใจสำหรับ 1124 00:52:35,460 --> 00:52:36,200 อนาคต - 1125 00:52:36,200 --> 00:52:38,870 สนับสนุนสิ่งที่เรียกว่าการทำธุรกรรม ที่คุณสามารถพูดได้ 1126 00:52:38,870 --> 00:52:40,990 เริ่มธุรกรรมอย่างแท้จริง 1127 00:52:40,990 --> 00:52:43,270 จากนั้นคุณสามารถดำเนินการ สองคำสั่ง 1128 00:52:43,270 --> 00:52:45,710 และคำสั่ง SQL ที่คุณจะเห็น ในพีตั้งเจ็ดดูเหมือนเล็กน้อย 1129 00:52:45,710 --> 00:52:46,750 บางอย่างเช่นนี้ 1130 00:52:46,750 --> 00:52:48,820 ปรับปรุงบัญชีตารางที่เรียกว่า 1131 00:52:48,820 --> 00:52:52,550 ตั้งคอลัมน์ยอดคงเหลือเท่ากับสิ่งที่ คอลัมน์ยอดคงเหลือในปัจจุบัน 1132 00:52:52,550 --> 00:52:57,280 เป็น 1,000 ลบที่หมายเลข เลขที่บัญชีเช่น ID ผู้ใช้ 1133 00:52:57,280 --> 00:53:00,830 เท่ากับ 2 แล้วปรับปรุง dot dot dot บัญชี 1134 00:53:00,830 --> 00:53:04,350 >> ดังนั้นในแง่ของคนธรรมดาสิ่งที่สองคนนี้ ค้นหาดูเหมือนจะทำใน 1135 00:53:04,350 --> 00:53:05,840 ความรู้สึกที่แท้จริงของโลกธนาคาร? 1136 00:53:05,840 --> 00:53:07,440 >> ผู้ชม: การถ่ายโอนไปสู่​​การออม 1137 00:53:07,440 --> 00:53:08,020 >> DAVID ลัน: แน่นอน 1138 00:53:08,020 --> 00:53:10,470 การโอนเงินจากที่หนึ่ง บัญชีอื่น ๆ 1139 00:53:10,470 --> 00:53:14,400 และนี่เป็นอีกตัวอย่างหนึ่งที่คุณ ต้องการทั้งสองสิ่งที่เกิดขึ้น 1140 00:53:14,400 --> 00:53:15,570 หรือไม่เกิดขึ้น 1141 00:53:15,570 --> 00:53:18,880 คุณไม่ต้องการสิ่งที่จะได้รับใน ตรงกลางของพวกเขาและระเบียบที่อาจเกิดขึ้น 1142 00:53:18,880 --> 00:53:22,220 คณิตศาสตร์หรือเลอะเท่าใด เงินที่คุณมีหรือเท่าใด 1143 00:53:22,220 --> 00:53:23,170 เงินธนาคารมี 1144 00:53:23,170 --> 00:53:26,890 ดังนั้นสิ่งที่ดีจริงๆเกี่ยวกับการทำธุรกรรม ใน MySQL เป็นที่และ 1145 00:53:26,890 --> 00:53:30,160 ฐานข้อมูลที่มากกว่าปกติก็คือพวกเขา และผู้คนที่สมาร์ทที่ได้ดำเนินการ 1146 00:53:30,160 --> 00:53:33,670 คุณสมบัติเหล่านี้คิดออกวิธีการทำ ให้แน่ใจว่าทั้งสองสิ่งเหล่านั้นเกิดขึ้น 1147 00:53:33,670 --> 00:53:35,120 หรือไม่ได้เลย 1148 00:53:35,120 --> 00:53:38,580 >> และถ้าคุณต้องการอย่างแท้จริงที่จะทำให้ เว็บไซต์ที่ใช้โดยคนที่ 1149 00:53:38,580 --> 00:53:41,490 มหาวิทยาลัยคนในโลกแห่งความเป็นจริงการทำ บางสิ่งบางอย่างในความรู้สึกของการเริ่มต้น 1150 00:53:41,490 --> 00:53:43,300 เหล่านี้เป็นชนิดของ การตัดสินใจการออกแบบที่ 1151 00:53:43,300 --> 00:53:45,020 เคยเป็นสิ่งสำคัญเพื่อ 1152 00:53:45,020 --> 00:53:48,240 มิฉะนั้นคุณจะเริ่มสูญเสียข้อมูลการสูญเสีย ผู้ใช้หรือในกรณีที่เลวร้ายที่สุดเท่าที่ 1153 00:53:48,240 --> 00:53:51,800 ที่เราเคยเห็นที่นี่ที่อาจเกิดขึ้น สูญเสียเงิน 1154 00:53:51,800 --> 00:53:56,180 ดังนั้นอีกครั้งเพิ่มเติมเกี่ยวกับปัญหาที่เกิดขึ้นว่าในการตั้งค่า เจ็ดเช่นเดียวกับที่อาจจะเป็นบางส่วนของ 1155 00:53:56,180 --> 00:53:57,530 คุณในโครงการสุดท้าย 1156 00:53:57,530 --> 00:54:01,870 >> จึงขอเปลี่ยนภาพที่เรามี วิธีการสักครู่ที่ผ่านมาเพียง แต่ในอีกหนึ่ง 1157 00:54:01,870 --> 00:54:04,070 เพื่อให้ฉันจริงดูว่าฉันสามารถ - 1158 00:54:04,070 --> 00:54:06,030 Nope ที่หายไป 1159 00:54:06,030 --> 00:54:06,690 มีเป็น 1160 00:54:06,690 --> 00:54:09,020 >> ดังนั้นนี่คือที่เราเหลือเวลาที่ผ่านมา 1161 00:54:09,020 --> 00:54:12,390 และมันจะเปิดออกที่เรากำลังจะโยน อีกหนึ่งสิ่งที่เข้าผสมที่นี่ - 1162 00:54:12,390 --> 00:54:14,510 ภาษาจาวาสคริปต์ที่เรียกว่า 1163 00:54:14,510 --> 00:54:18,060 ดังนั้น JavaScript จริงเหมาะกับ ในงานชิ้นนี้ - 1164 00:54:18,060 --> 00:54:22,086 และฉันไม่ได้ออกจากห้องพักมากพอ ดังนั้นนี่คือตอนนี้ไม่ได้ที่จะไต่ 1165 00:54:22,086 --> 00:54:23,900 ตกลงนี้เป็นน่าสงสารจริงๆ 1166 00:54:23,900 --> 00:54:27,075 ตกลงเพื่อให้เป็น JavaScript 1167 00:54:27,075 --> 00:54:27,340 ขวาทั้งหมด 1168 00:54:27,340 --> 00:54:28,760 ฉันจริงๆทำมันก่อความเสียหาย 1169 00:54:28,760 --> 00:54:29,390 ขวาทั้งหมด 1170 00:54:29,390 --> 00:54:34,790 >> ดังนั้น JavaScript เป็นโปรแกรมอื่น ภาษาและที่ผ่านมาของเราหากที่ช่วยให้ 1171 00:54:34,790 --> 00:54:37,770 สร้างความมั่นใจว่ามีไม่มาก ของระบบท่อดับเพลิงไฟที่นี่ 1172 00:54:37,770 --> 00:54:41,100 ดังนั้น JavaScript เป็นยังตีความ ภาษาซึ่งหมายความว่าคุณทำไม่ได้ 1173 00:54:41,100 --> 00:54:42,670 รวบรวมเป็นศูนย์และคน 1174 00:54:42,670 --> 00:54:43,690 คุณเพียงแค่เรียกใช้ 1175 00:54:43,690 --> 00:54:47,680 แต่สิ่งที่เป็นพื้นฐานที่แตกต่างกันด้วย JavaScript มักเป็นที่คุณ 1176 00:54:47,680 --> 00:54:49,815 ไม่ได้ทำงานบนเว็บเซิร์ฟเวอร์ของคุณ 1177 00:54:49,815 --> 00:54:52,570 มันไม่ได้ทำงานใน เครื่องต่อ 1178 00:54:52,570 --> 00:54:57,490 แต่จะได้รับการดาวน์โหลดโดยผู้ใช้ ผ่านทาง HTTP ลงในเบราว์เซอร์ของพวกเขา - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox, สิ่งที่ - 1180 00:55:00,260 --> 00:55:03,860 และเป็นเบราว์เซอร์ที่รันนี้ โดยเฉพาะอย่างยิ่งการเขียนโปรแกรมภาษา 1181 00:55:03,860 --> 00:55:08,000 >> ดังนั้นเพื่อให้มีความชัดเจน, PHP จึงห่างไกลได้รับ ดำเนินการอย่างใดอย่างหนึ่งที่บรรทัดคำสั่งใน 1182 00:55:08,000 --> 00:55:11,290 หน้าต่างสีดำและสีขาวของเราบนเซิร์ฟเวอร์ เช่นเครื่องคอมพิวเตอร์ 1183 00:55:11,290 --> 00:55:14,490 ชอบเครื่องใช้หรือจะได้รับ ดำเนินการโดยเว็บเซิร์ฟเวอร์ 1184 00:55:14,490 --> 00:55:15,860 ทำงานบนคอมพิวเตอร์ 1185 00:55:15,860 --> 00:55:20,490 แต่รูปแบบที่นี่เป็น PHP ว่าป่านนี้ ได้รับการดำเนินการด้านเซิร์ฟเวอร์ดังนั้น 1186 00:55:20,490 --> 00:55:24,820 ผู้ใช้และเบราว์เซอร์ของผู้ใช้ ไม่เคยเห็นบรรทัดของรหัส PHP 1187 00:55:24,820 --> 00:55:28,530 >> ในความเป็นจริงถ้าคุณเคยเปิดเบราว์เซอร์สำหรับ เว็บไซต์หรืออื่นของคุณและคุณ 1188 00:55:28,530 --> 00:55:32,400 เห็นจริงโค้ด PHP ในหน้าต่างของคุณ มีคนเมาขึ้น 1189 00:55:32,400 --> 00:55:34,950 เพราะไม่ได้หมายถึงการเป็น ส่งไปยังเบราว์เซอร์โดยตรง 1190 00:55:34,950 --> 00:55:38,150 ก็ควรที่จะดำเนินการและหัน เป็นสิ่งที่ต้องการ HTML 1191 00:55:38,150 --> 00:55:40,120 >> แต่ JavaScript เป็นหลัก ตรงข้าม 1192 00:55:40,120 --> 00:55:44,350 มันหมายถึงการที่จะทำงานตามปกติภายใน ของหน้าต่างเบราว์เซอร์ของผู้ใช้ 1193 00:55:44,350 --> 00:55:46,840 และสิ่งที่ชนิดของเว็บไซต์ที่ใช้ JavaScript แล้ววันนี้ 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> เช่นเดียวกับตัวอักษรทุกเว็บไซต์ยอดนิยม 1196 00:55:52,180 --> 00:55:55,430 เว็บไซต์ทุกคนที่พวกคุณอาจจะ ใช้ในชีวิตประจำวันใช้งานจาวาสคริปต์สำหรับ 1197 00:55:55,430 --> 00:55:57,330 ที่ง่ายและแม้แต่ คุณสมบัติที่เซ็กซี่ที่สุด 1198 00:55:57,330 --> 00:55:59,800 >> ดังนั้นบางสิ่งบางอย่างเช่น Facebook คุยถ้าคุณใช้ที่ 1199 00:55:59,800 --> 00:56:01,040 อย่างไรที่จริงการทำงานหรือไม่ 1200 00:56:01,040 --> 00:56:05,090 ดีป่านนี้ทุกสิ่งที่เราได้ ทำกับ HTML และ PHP สันนิษฐานว่า 1201 00:56:05,090 --> 00:56:08,750 คุณดึงขึ้น URL และคุณกด Enter, และคุณจะเห็นเนื้อหาบางส่วน 1202 00:56:08,750 --> 00:56:11,970 และคุณคลิกการเชื่อมโยงที่มีการเปลี่ยนแปลง URL การเปลี่ยนแปลงหน้าและโหลดใหม่ 1203 00:56:11,970 --> 00:56:12,740 เนื้อหาใหม่บางส่วน 1204 00:56:12,740 --> 00:56:16,340 คลิกที่ URL อื่นหรือส่งฟอร์มคุณ ได้รับการพาไปยังหน้าอื่นและ 1205 00:56:16,340 --> 00:56:17,420 คุณจะเห็นเนื้อหาใหม่บางส่วน 1206 00:56:17,420 --> 00:56:22,710 >> แต่การใช้อะไรบางอย่างเช่น Facebook Chat, หรือ Gchat หรือ Google Maps ไม่ค่อย 1207 00:56:22,710 --> 00:56:27,350 ไม่ทั้งหน้าการฟื้นฟูดังกล่าวว่า คุณจะเห็นหน้าจอสีขาวและชั่วขณะ 1208 00:56:27,350 --> 00:56:28,470 แล้วเนื้อหาใหม่ 1209 00:56:28,470 --> 00:56:32,610 แต่หน้าเว็บวันนี้เป็นแบบไดนามิก ได้รับการปรับปรุงอีกครั้งและ 1210 00:56:32,610 --> 00:56:35,570 อีกครั้งและอีกครั้งการจัดเรียงทั้งหมด ของเบื้องหลัง 1211 00:56:35,570 --> 00:56:38,560 และปรากฎว่าเมื่อคุณไปที่ บางสิ่งบางอย่างเช่น Facebook, หรือ Gchat, 1212 00:56:38,560 --> 00:56:43,050 หรือ Gmail และการปรับปรุงหน้า โดยอัตโนมัติโดยไม่ต้องโหลด 1213 00:56:43,050 --> 00:56:47,630 หน้าจอทั้งสิ่งที่เกิดขึ้นก็คือ เบราว์เซอร์ของคุณได้ทำเรียงลำดับของการแอบ 1214 00:56:47,630 --> 00:56:49,410 การร้องขอเพิ่มเติม - 1215 00:56:49,410 --> 00:56:52,740 ไม่ได้สำหรับหน้าเว็บทั้งหมด แต่เพียงสำหรับ ชิ้นเล็ก ๆ น้อย ๆ ของข้อมูลเช่น 1216 00:56:52,740 --> 00:56:55,740 ข้อความโต้ตอบแบบทันทีว่าเพื่อนของคุณเพียงแค่ ส่งคุณหรือปรับปรุงสถานะที่ 1217 00:56:55,740 --> 00:56:58,210 คนที่เพิ่งส่งคุณหรือทวีต คนส่งเพียงว่า 1218 00:56:58,210 --> 00:57:02,120 มันเป็นเพียงการแสดงเล็ก ๆ น้อย ๆ ข้อมูลแล้วการใช้งานจาวาสคริปต์นี้ 1219 00:57:02,120 --> 00:57:06,370 ภาษาโปรแกรมที่จะเปลี่ยนสิ่งที่ หน้าเว็บโดยไม่ต้องมีลักษณะเหมือน 1220 00:57:06,370 --> 00:57:09,860 เซิร์ฟเวอร์ช่วยโดยไม่ต้องเซิร์ฟเวอร์ สร้าง HTM​​L ที่ 1221 00:57:09,860 --> 00:57:13,820 >> ดังนั้นในระยะสั้น, JavaScript สามารถนำมาใช้แล้ว ที่ไม่เพียง แต่ดึงข้อมูลใหม่จาก 1222 00:57:13,820 --> 00:57:16,750 เซิร์ฟเวอร์โดยไม่ต้องโหลดทั้ง หน้าหรือส่งแบบฟอร์ม 1223 00:57:16,750 --> 00:57:20,060 นอกจากนี้ยังสามารถนำมาใช้เพื่อการเปลี่ยนแปลง ที่เรียกว่า DOM - 1224 00:57:20,060 --> 00:57:21,520 รูปแบบวัตถุเอกสาร - 1225 00:57:21,520 --> 00:57:24,620 ซึ่งเป็นเพียงวิธีแฟนซีสำหรับ บอกว่าต้นไม้ของ HTM​​L 1226 00:57:24,620 --> 00:57:26,220 ที่เราเห็นเป็นครั้งสุดท้าย 1227 00:57:26,220 --> 00:57:31,640 >> ดังนั้นเพื่อสร้างความมั่นใจให้, JavaScript เป็น syntactically จึงคล้ายกับ C เป็นอย่างดี 1228 00:57:31,640 --> 00:57:32,820 ไม่มีฟังก์ชั่นหลักของ 1229 00:57:32,820 --> 00:57:35,430 คุณเพียงแค่เริ่มต้นการเขียนรหัส และจะได้รับการดำเนินการหรือ 1230 00:57:35,430 --> 00:57:36,900 ตีความอย่างถูกต้องมากขึ้น 1231 00:57:36,900 --> 00:57:38,660 เงื่อนไขจะมีลักษณะเช่นนี้ 1232 00:57:38,660 --> 00:57:41,230 ไม่แตกต่างจาก C หรือ PHP สำหรับเรื่องที่ 1233 00:57:41,230 --> 00:57:43,890 นิพจน์หรือเอ็ดกัน จะมีลักษณะเช่นนี้ 1234 00:57:43,890 --> 00:57:45,590 anded ร่วมกันมีลักษณะเช่นนี้ 1235 00:57:45,590 --> 00:57:47,750 >> สวิทช์จะมีลักษณะเช่นนี้ 1236 00:57:47,750 --> 00:57:49,440 สำหรับลูปจะมีลักษณะเช่นนี้ 1237 00:57:49,440 --> 00:57:51,060 ในขณะที่ลูปจะมีลักษณะเช่นนี้ 1238 00:57:51,060 --> 00:57:53,316 ทำในขณะที่ลูปจะมีลักษณะเช่นนี้ 1239 00:57:53,316 --> 00:57:54,780 >> นี้เป็นใหม่ 1240 00:57:54,780 --> 00:57:58,753 ดังนั้นจาวาสคริปต์ไม่ได้ foreach สร้างต่อ แต่นี้สร้าง 1241 00:57:58,753 --> 00:58:03,870 ตัวแปร i ในอาร์เรย์และฉันในเรื่องนี้ กรณีที่จะกลายเป็นค่าดัชนี 1242 00:58:03,870 --> 00:58:06,880 ดังนั้นจึงเป็นเพียงเล็กน้อยที่แตกต่างจากที่ foreach แต่รุ่นใหม่ 1243 00:58:06,880 --> 00:58:10,280 JavaScript จะออกมาตลอดเวลา ดังนั้นแม้ว่าคุณสมบัติเหล่านี้ภาษา 1244 00:58:10,280 --> 00:58:10,880 มีการพัฒนา 1245 00:58:10,880 --> 00:58:16,920 >> และเป็นกัน JavaScript วันเหล่านี้ นอกจากนี้ยังสามารถนำมาใช้บนเซิร์ฟเวอร์เช่นเดียวกับ 1246 00:58:16,920 --> 00:58:19,920 PHP โดยใช้กรอบที่เรียกว่า Node.js. 1247 00:58:19,920 --> 00:58:24,670 หนึ่งใน CS50 ของ TFs เควินได้นำ สัมมนา Node.js ที่สามารถใช้ได้ที่ 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars 1249 00:58:26,440 --> 00:58:28,830 ดังนั้นถ้าคุณอยากรู้รู้ว่าคุณ สามารถใช้ในฝั่งเซิร์ฟเวอร์เป็น 1250 00:58:28,830 --> 00:58:33,870 ดี แต่ที่เป็นแนวโน้มล่าสุดที่เป็นธรรม แต่อย่างใดอย่างหนึ่งที่มีประสิทธิภาพที่ว่า 1251 00:58:33,870 --> 00:58:35,270 >> นี้จะแตกต่างกันเพียงเล็กน้อย 1252 00:58:35,270 --> 00:58:37,910 นี้เป็นอาร์เรย์ใน JavaScript 1253 00:58:37,910 --> 00:58:40,115 และสิ่งที่นัดคุณเป็นที่แตกต่างกัน เมื่อเทียบกับ C หรือ PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 มีเรื่องราวที่รวดเร็วไม่กี่ที่ เราสามารถบอกได้ที่นี่ 1256 00:58:47,420 --> 00:58:49,367 สิ่งที่ขาดหายไปเมื่อเทียบกับ PHP? 1257 00:58:49,367 --> 00:58:51,652 >> ผู้ชม: [ไม่ได้ยิน] 1258 00:58:51,652 --> 00:58:52,110 >> DAVID ลัน: ใช่? 1259 00:58:52,110 --> 00:58:53,322 ขออภัยพูดอีกครั้งหรือไม่ 1260 00:58:53,322 --> 00:58:54,740 >> ผู้ชม: ไม่ประกาศ ชนิดของตัวแปร 1261 00:58:54,740 --> 00:58:56,390 >> DAVID ลัน: เราไม่ได้ประกาศ ชนิดของตัวแปร 1262 00:58:56,390 --> 00:58:59,630 ดังนั้นจริงค่อนข้างเช่น PHP, เราไม่ได้ กำหนดประเภทของตัวแปรนี้ 1263 00:58:59,630 --> 00:59:02,670 แต่เรากำลังมากขึ้นโดยทั่วไป var บอกว่าตัวแปร 1264 00:59:02,670 --> 00:59:06,690 เราไม่ได้มีของ PHP รำคาญของ เครื่องหมายดอลลาร์ซึ่งในขณะที่น่าเบื่อที่จะ 1265 00:59:06,690 --> 00:59:09,160 ชนิดจะทำให้ชัดเจนมากขึ้นว่า สิ่งที่เป็นตัวแปร 1266 00:59:09,160 --> 00:59:11,830 ในขณะที่ที่นี่เรากำลังจัดเรียงของกลับไป วิธีการซีโดยเพียงแค่โทร 1267 00:59:11,830 --> 00:59:14,500 ตัวแปรตามชื่อที่เราต้องการ ที่จะให้มันเช่นหมายเลข 1268 00:59:14,500 --> 00:59:17,170 และยังเป็นเช่น PHP, เรามี วงเล็บสำหรับ 1269 00:59:17,170 --> 00:59:19,170 ค่าภายในอาร์เรย์ที่ 1270 00:59:19,170 --> 00:59:22,490 >> ดังนั้นตัวแปรใน JavaScript ยัง อาจมีลักษณะเช่นนี้ 1271 00:59:22,490 --> 00:59:26,900 สังเกตเห็นที่นี่เป็นสตริงที่เรียกว่า s, แต่มีเหมือนกันที่เราไม่ได้ระบุ 1272 00:59:26,900 --> 00:59:28,750 ว่ามันเป็นสตริง 1273 00:59:28,750 --> 00:59:33,160 แต่ที่นี่เป็นคุณลักษณะที่ไม่ได้ ที่มีอยู่ในตรงทางเดียวกันใน PHP 1274 00:59:33,160 --> 00:59:34,460 แต่บิตเช่นเดียวกัน 1275 00:59:34,460 --> 00:59:36,530 นี้เป็นวัตถุใน JavaScript 1276 00:59:36,530 --> 00:59:42,110 และวัตถุที่มีการจัดเรียงของกองทัพสวิส มีดของโครงสร้างข้อมูลในตัวคุณที่ 1277 00:59:42,110 --> 00:59:43,900 สามารถใช้พวกเขาสำหรับจำนวนของสิ่งใด 1278 00:59:43,900 --> 00:59:46,860 >> ที่นี่ตัวอย่างเช่นที่เรากำลังประกาศ ตัวแปรที่เรียกว่าใบเสนอราคา 1279 00:59:46,860 --> 00:59:49,110 ชนิดของตัวแปรที่ เป็นวัตถุ 1280 00:59:49,110 --> 00:59:53,550 คุณสามารถคิดว่านี้เป็น struct C ที่มีคีย์และค่า 1281 00:59:53,550 --> 00:59:55,250 สัญลักษณ์เป็นกุญแจสำคัญ 1282 00:59:55,250 --> 00:59:57,350 FB เป็นค่าที่เห็นได้ชัด สัญลักษณ์หุ้น 1283 00:59:57,350 --> 00:59:57,930 จุลภาค 1284 00:59:57,930 --> 01:00:02,180 ราคาเป็นสำคัญอื่นและค่าที่เป็น เห็นได้ชัดว่าจุดที่ลอยหรือ 1285 01:00:02,180 --> 01:00:06,510 จำนวนมากขึ้นโดยทั่วไปใน JavaScript ของ $ 49.26 1286 01:00:06,510 --> 01:00:09,030 >> ดังนั้น PHP ไม่ได้มี - 1287 01:00:09,030 --> 01:00:12,980 เราไม่ได้เห็นในวัตถุ PHP ค่อนข้าง เช่นนี้ แต่เราไม่เห็นอะนาล็อก 1288 01:00:12,980 --> 01:00:14,093 ซึ่งเป็นสิ่งที่ 1289 01:00:14,093 --> 01:00:14,980 >> ผู้ชม: [ไม่ได้ยิน] 1290 01:00:14,980 --> 01:00:16,110 >> DAVID ลัน: arrays สมาคม 1291 01:00:16,110 --> 01:00:19,990 ดังนั้นในขณะที่ PHP มีอาร์เรย์ที่สมาคม มีไวยากรณ์ที่เคยเล็กน้อยเพื่อ 1292 01:00:19,990 --> 01:00:20,370 แตกต่างกัน - 1293 01:00:20,370 --> 01:00:21,780 เราเห็นวงเล็บ 1294 01:00:21,780 --> 01:00:23,860 เราเห็นสัญลักษณ์ลูกศรแปลก 1295 01:00:23,860 --> 01:00:27,330 JavaScript มีวัตถุ แต่นี้เป็น ส่วนใหญ่จะเป็นความแตกต่างและความหมาย 1296 01:00:27,330 --> 01:00:29,260 คำพ้องความหมายที่แตกต่างกันสำหรับตอนนี้ 1297 01:00:29,260 --> 01:00:35,060 แต่เป็นกันนี้ยังมี PHP วัตถุในทางที่ Java และอื่น ๆ 1298 01:00:35,060 --> 01:00:37,810 ภาษามีวัตถุใน การเขียนโปรแกรมเชิงวัตถุ 1299 01:00:37,810 --> 01:00:40,440 แต่เราจะใช้เหล่านี้เพียงแค่ สำหรับชนิดข้อมูลสำหรับตอนนี้ 1300 01:00:40,440 --> 01:00:42,170 วัตถุและเชื่อมโยงอาร์เรย์ 1301 01:00:42,170 --> 01:00:44,140 >> หนึ่งนี้อาจทำให้มัน เล็ก ๆ น้อย ๆ ที่ชัดเจนมากขึ้น 1302 01:00:44,140 --> 01:00:45,890 นี่คือเหตุผลว่าทำไมวัตถุเป็นประโยชน์ 1303 01:00:45,890 --> 01:00:48,760 เมื่อคุณต้องการที่จะประกาศนักศึกษา เช่น Zamyla เราสามารถจริง 1304 01:00:48,760 --> 01:00:52,630 แค็ปซูลเพื่อที่จะพูดในที่ วัตถุโดยใช้วงเล็บปีกกาเช่นเดียวกับ 1305 01:00:52,630 --> 01:00:55,060 ก่อนที่ทั้งกลุ่มของคีย์ และค่านิยมที่นี่ 1306 01:00:55,060 --> 01:00:59,150 เรามี ID, บ้าน, และชื่อของ Zamyla ตามด้วยอัฒภาคเป็น 1307 01:00:59,150 --> 01:01:00,690 ตามปกติในตอนท้าย 1308 01:01:00,690 --> 01:01:04,840 >> ลงที่นี่เกินไปนี้เล็กน้อย ที่แตกต่างกัน แต่ยังมีประสิทธิภาพมาก 1309 01:01:04,840 --> 01:01:05,690 วันนี้ 1310 01:01:05,690 --> 01:01:08,780 ที่นี่มากมายและฉันรู้ว่าเพราะ มีวงเล็บขึ้นตาราง 1311 01:01:08,780 --> 01:01:11,090 ด้านบนและวงเล็บสี่เหลี่ยม ที่ด้านล่าง 1312 01:01:11,090 --> 01:01:16,050 และนี่คืออาร์เรย์ของข้อมูลสิ่งที่ ชนิดที่เห็นได้ชัดใน JavaScript? 1313 01:01:16,050 --> 01:01:21,260 นี้เป็นอาเรย์ของมันก็ดู เช่นสามวัตถุ 1314 01:01:21,260 --> 01:01:24,580 และฉันรู้ว่ามันเป็นเพียงวัตถุ เพราะวงเล็บปีกกา 1315 01:01:24,580 --> 01:01:28,760 และแจ้งให้ทราบมีวงเล็บปีกกาเปิด สิ่งบางอย่างใกล้วงเล็บปีกกาจุลภาค 1316 01:01:28,760 --> 01:01:31,180 แล้วบางจุลภาค แล้วบางอย่างเพิ่มเติม 1317 01:01:31,180 --> 01:01:33,800 เพื่อให้เป็นสามข้อโต้แย้ง คั่นด้วยเครื่องหมายจุลภาคสอง 1318 01:01:33,800 --> 01:01:36,810 >> ดังนั้นนี่คืออาร์เรย์ของสามวัตถุ 1319 01:01:36,810 --> 01:01:39,940 และแต่ละของวัตถุเหล่านั้นจะปรากฏเป็น สมาชิกนักเรียนหรือพนักงานบางส่วน 1320 01:01:39,940 --> 01:01:42,370 จัดเรียงแต่ละคนมี ID, บ้านและชื่อ 1321 01:01:42,370 --> 01:01:45,060 แต่ฉันได้บางสิ่งบางอย่างที่เรียกว่านี้ เรียกว่า JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript วัตถุสัญกรณ์ 1323 01:01:47,450 --> 01:01:52,060 และนี่คือรูปแบบข้อมูลที่จริง จึงเป็นที่นิยมมากและใน 1324 01:01:52,060 --> 01:01:55,100 สมัยวันนี้ว่าถ้าคุณเขียน โปรแกรมประยุกต์ที่ใช้ Facebook 1325 01:01:55,100 --> 01:01:59,150 API, API Twitter เกือบจริงๆ API ที่ออกมีวันนี้ 1326 01:01:59,150 --> 01:02:02,820 รวมทั้งบางส่วนของ CS50 ของตัวเอง ข้อมูลที่คุณได้รับกลับไม่ได้อยู่ใน 1327 01:02:02,820 --> 01:02:04,720 รูปแบบ CSV โรงเรียนเก่า 1328 01:02:04,720 --> 01:02:06,780 >> เพราะจำได้ว่า CSV ง่ายสุด 1329 01:02:06,780 --> 01:02:10,230 มันเป็นเพียงคอลัมน์แยกออกจากกัน ด้วยเครื่องหมายจุลภาค 1330 01:02:10,230 --> 01:02:13,190 ข้อมูล JSON ช่วยให้คุณมีข้อมูลมากขึ้น 1331 01:02:13,190 --> 01:02:17,800 มันเชื่อมโยงที่สำคัญที่มีค่าทุกอย่าง พวกเขาไม่ได้มีเพียงแค่คิดว่า 1332 01:02:17,800 --> 01:02:22,460 คอลัมน์ 0 เป็นหนึ่งในค่าคอลัมน์ เป็นอีกหนึ่งในสองคอลัมน์เป็นอีกหนึ่ง 1333 01:02:22,460 --> 01:02:26,790 ทุกอย่างในวัตถุ JSON นี่คือการจัดเรียง ของตนเองอธิบายเพราะทุก 1334 01:02:26,790 --> 01:02:30,940 หนึ่งในรายชื่อในแฟ้มนี้มีตัวอักษร ชื่อที่ด้านหน้าของมันเป็น 1335 01:02:30,940 --> 01:02:32,510 สายยก 1336 01:02:32,510 --> 01:02:34,950 >> ดังนั้นลองมาดูที่ สองสามตัวอย่างที่นี่ 1337 01:02:34,950 --> 01:02:36,800 ผมขอไปลงในเครื่อง 1338 01:02:36,800 --> 01:02:41,000 และแจ้งให้เราไปลงใน vhost ของเรา ไดเรกทอรีในที่สาธารณะ 1339 01:02:41,000 --> 01:02:45,590 และแจ้งให้เราไปลงใน ไดเรกทอรี JavaScript 1340 01:02:45,590 --> 01:02:49,610 และให้ไปข้างหน้าและเปิดขึ้น Dom-0.html ที่ DOM ก็หมายความว่า 1341 01:02:49,610 --> 01:02:51,010 รูปแบบวัตถุเอกสาร 1342 01:02:51,010 --> 01:02:53,490 มันเป็นสิ่งที่ต้นไม้ที่ ฉันหมายถึงก่อนหน้านี้ 1343 01:02:53,490 --> 01:02:54,950 >> และแจ้งให้เรานำเสนอดังต่อไปนี้ 1344 01:02:54,950 --> 01:02:57,720 ที่นี่หน้าเว็บที่มีความเป็น ร่างกายง่ายสวย 1345 01:02:57,720 --> 01:03:00,170 ดังนั้นลงที่นี่ที่ด้านล่าง แจ้งให้ทราบฉันมีแบบฟอร์ม 1346 01:03:00,170 --> 01:03:01,500 เราได้เห็นเหล่านั้นก่อน 1347 01:03:01,500 --> 01:03:07,600 มันมีอยู่สองปัจจัยหนึ่งซึ่งมี ID ชื่อหนึ่งซึ่งมีชนิดของ 1348 01:03:07,600 --> 01:03:09,830 ส่งและเป็นครั้งแรก ประเภทหนึ่งคือข้อความ 1349 01:03:09,830 --> 01:03:11,900 ดังนั้นนี้จริงเสียงง่ายสวย 1350 01:03:11,900 --> 01:03:13,090 >> ลองไปที่นี่ 1351 01:03:13,090 --> 01:03:15,390 ลองกลับไปที่หน้านี้ที่นี่ 1352 01:03:15,390 --> 01:03:21,030 ให้เราเข้าไปใน localhost และไปลงใน ไดเรกทอรี JavaScript ของเราและไปที่ 1353 01:03:21,030 --> 01:03:24,640 Dom-0, และที่นี่เรามีรูปแบบนี้ 1354 01:03:24,640 --> 01:03:26,550 เพื่อให้เป็นที่เห็นได้ชัด หน้าทั้งหมดนี้ไม่ 1355 01:03:26,550 --> 01:03:28,740 แต่ก็มีข้อมูลชื่อที่มี ปุ่มส่ง 1356 01:03:28,740 --> 01:03:30,340 แต่ฉันไม่ได้จะใช้ PHP ที่นี่ 1357 01:03:30,340 --> 01:03:34,310 ฉันจะทำทุกอย่างที่ฝั่งไคลเอ็นต์ ดังนั้นการพูดใน JavaScript ดังต่อไปนี้ 1358 01:03:34,310 --> 01:03:39,100 >> ขอให้สังเกตว่าฉันได้รับการตั้งชื่ออย่างแน่นอน ด้านการป้อนข้อมูลนี้ที่ไม่ซ้ำกัน 1359 01:03:39,100 --> 01:03:42,350 ระบุซึ่งจะจริง ช่วยฉันเวลาในขณะนี้ 1360 01:03:42,350 --> 01:03:45,480 และแจ้งให้ทราบผมแนะนำแท็กอื่น ในหัวของหน้าเว็บของฉัน 1361 01:03:45,480 --> 01:03:46,565  แท็ก 1362 01:03:46,565 --> 01:03:50,120 >> ดังนั้นมันอยู่ในความรู้สึกนี้ว่า JavaScript เป็น ภาษาโปรแกรมฝั่งไคลเอนต์ 1363 01:03:50,120 --> 01:03:55,020 ในกรณีนี้เช่นเดียวกับ CSS, ฉันได้ใส่ มันตรงภายในของ HTM​​L ของฉัน 1364 01:03:55,020 --> 01:03:58,810 แต่แจ้งให้ทราบที่ผมเคยประกาศฟังก์ชั่น ที่มีลักษณะเล็ก ๆ น้อย ๆ เช่น PHP 1365 01:03:58,810 --> 01:04:01,530 syntactically แต่นี้เป็นจริง JavaScript เพราะอีกครั้งก็ 1366 01:04:01,530 --> 01:04:03,920 ฝั่งไคลเอนต์ในเบราว์เซอร์ 1367 01:04:03,920 --> 01:04:07,590 และคาดเดาสิ่งที่เป็นไป ทำแม้ว่าบางส่วนของไวยากรณ์ 1368 01:04:07,590 --> 01:04:09,338 ที่นี่เป็นที่ใหม่ 1369 01:04:09,338 --> 01:04:11,760 >> ผู้ชม: ทักทายกับใครก็ได้ 1370 01:04:11,760 --> 01:04:14,020 >> DAVID ลัน: มันจะกล่าวทักทาย ใครก็ตามที่จะเข้าชมหน้านี้ 1371 01:04:14,020 --> 01:04:15,120 ดังนั้นวิธีที่? 1372 01:04:15,120 --> 01:04:18,070 >> เพื่อแจ้งให้ทราบก็จะเปิดออกใน JavaScript มีการแจ้งเตือน () ฟังก์ชัน 1373 01:04:18,070 --> 01:04:22,840 นี้เป็นฟังก์ชั่นมากเรียงลำดับของความเศร้าที่ จริงๆเพียงแค่มีแนวโน้มที่จะรบกวนผู้ใช้ 1374 01:04:22,840 --> 01:04:25,440 มันไม่ได้เป็นอย่างใดอย่างหนึ่งที่คุณควรใช้ ปกติ แต่มันเป็นที่รวดเร็วและสกปรก 1375 01:04:25,440 --> 01:04:27,710 วิธีการจัดเรียงของสิ่งที่พิมพ์ ให้กับผู้ใช้แบบกราฟิก 1376 01:04:27,710 --> 01:04:29,180 ติดต่อเช่นเดียวกับเบราว์เซอร์ 1377 01:04:29,180 --> 01:04:31,400 สังเกตเห็นที่นี่ที่ฉันมี สตริงในราคาเดียว 1378 01:04:31,400 --> 01:04:36,010 แต่กลับกลายเป็นว่าไม่เหมือน C, JavaScript จริงจะมีเพียงครั้งเดียวที่คุณจะใช้ 1379 01:04:36,010 --> 01:04:38,730 คำพูดและตรงไปตรงมาเป็นเพียงชนิด ของการประชุมโวหารในหมู่ 1380 01:04:38,730 --> 01:04:41,180 โปรแกรมเมอร์ JavaScript ที่จะใช้ราคาเดียว 1381 01:04:41,180 --> 01:04:43,750 PHP, พวกเขาเป็นจริงมีเพียงเล็กน้อย ความหมายที่แตกต่างกัน 1382 01:04:43,750 --> 01:04:45,810 แต่ตอนนี้เพิ่งรู้ว่า นั่นคือเหตุผลเดียวที่ 1383 01:04:45,810 --> 01:04:49,270 การประชุมใน JavaScript ที่มักจะให้ ใช้คำพูดเดียว แต่เราสามารถใช้ 1384 01:04:49,270 --> 01:04:50,950 คำพูดสองในสถานที่ที่ทั้งสองได้เป็นอย่างดี 1385 01:04:50,950 --> 01:04:52,610 >> ดังนั้นนี้เป็นที่น่าสนใจ 1386 01:04:52,610 --> 01:04:56,430 จำครั้งสุดท้ายที่เราได้ที่ ภาพบนหน้าจอที่ดึงต้นไม้ 1387 01:04:56,430 --> 01:04:59,720 ที่คุณมีโหนด HTML และ หัวโหนดและโหนดร่างกาย 1388 01:04:59,720 --> 01:05:00,800 แล้วข้อความบางส่วน 1389 01:05:00,800 --> 01:05:04,700 แต่มีโหนดพิเศษอย่างใดอย่างหนึ่งที่ ด้านบนสุดที่ผมเรียกว่าเอกสาร 1390 01:05:04,700 --> 01:05:08,260 ดีก็จะเปิดออกใน JavaScript ใด ๆ เวลาที่คุณเขียนโปรแกรมใน JavaScript 1391 01:05:08,260 --> 01:05:11,040 ในเบราว์เซอร์ที่คุณสามารถเข้าถึง ตัวแปรทั่วโลกพิเศษ 1392 01:05:11,040 --> 01:05:14,130 ในทำนองเดียวกันกับ superglobals ของ PHP, หนึ่งนี้เรียกว่าใน 1393 01:05:14,130 --> 01:05:16,050 เอกสารพิมพ์เล็กทั้งหมด 1394 01:05:16,050 --> 01:05:21,480 >> มันก็เหมือนกับ struct แต่โครงสร้างนี้ นอกจากนี้ยังมีฟังก์ชั่นภายในของมัน 1395 01:05:21,480 --> 01:05:23,790 ดังนั้น struct C ก็มีข้อมูลทั่วไป 1396 01:05:23,790 --> 01:05:29,060 แต่วัตถุ JavaScript เช่นนี้ ในทางเทคนิคยังเป็นมีฟังก์ชั่น 1397 01:05:29,060 --> 01:05:31,830 หรือที่เรียกว่าวิธีการ ภายในของมัน 1398 01:05:31,830 --> 01:05:35,750 และคุณสามารถเรียกใช้ฟังก์ชันภายในของ วัตถุนี้ค่อนข้างอักษรทำดี 1399 01:05:35,750 --> 01:05:39,610 ชื่อจุดและจากนั้นชื่อของ ฟังก์ชั่นหรืออีกวิธี 1400 01:05:39,610 --> 01:05:41,160 มันเป็นเพียงคำพ้องความหมายจริงๆ 1401 01:05:41,160 --> 01:05:42,450 >> และสิ่งที่ไม่ฟังก์ชั่นนี้จะทำอย่างไร 1402 01:05:42,450 --> 01:05:43,840 คุณสามารถชนิดของคาดเดาจากชื่อของมัน 1403 01:05:43,840 --> 01:05:45,590 ได้รับองค์ประกอบโดยใช้ ID 1404 01:05:45,590 --> 01:05:50,040 ดังนั้นนี้เป็นไปเพื่อค้นหาหน้าเว็บ ค้นหาต้นไม้ที่กำลังมองหา 1405 01:05:50,040 --> 01:05:55,210 สิ่งที่โหนดองค์ประกอบ AKA มี ID ที่ไม่ซ้ำกันของคำพูดชื่อได้นำมาอ้าง 1406 01:05:55,210 --> 01:05:56,560 และแล้วสิ่งที่ฉันจะทำอย่างไร 1407 01:05:56,560 --> 01:06:00,350 ฉันจะได้รับค่าที่อยู่ภายในของ โหนดที่อยู่ในต้นไม้และฉันจะ 1408 01:06:00,350 --> 01:06:02,580 อย่างใดทักทายกับชื่อที่ 1409 01:06:02,580 --> 01:06:05,360 >> เพื่อใช้คาดเดาถึงแม้เราไม่ได้ เห็นนี้ยังทำสิ่งที่บวก 1410 01:06:05,360 --> 01:06:07,396 สัญลักษณ์ที่หมายถึงที่นี่และที่นี่น่าจะเป็น? 1411 01:06:07,396 --> 01:06:08,230 >> ผู้ชม: Concatenate 1412 01:06:08,230 --> 01:06:09,220 >> DAVID ลัน: Concatenate 1413 01:06:09,220 --> 01:06:11,290 ขวาและเหล่านี้เป็นเพียง การเรียงลำดับของการออกแบบการตัดสินใจ 1414 01:06:11,290 --> 01:06:12,280 คนที่ทำปีที่ผ่านมา 1415 01:06:12,280 --> 01:06:15,190 ใน PHP, คุณ concatenate สิ่งที่มีจุด 1416 01:06:15,190 --> 01:06:18,800 ใน C คุณกระโดดผ่านห่วงและหลาย เรียกฟังก์ชันเช่น strcopy () หรือ 1417 01:06:18,800 --> 01:06:20,600 strcat () หรือฟังก์ชั่นอื่น ๆ 1418 01:06:20,600 --> 01:06:22,060 แต่ใน JavaScript คุณใช้ pluses 1419 01:06:22,060 --> 01:06:24,770 ดังนั้นนี่เป็นเพียงการเชื่อมโยง สามสาย - 1420 01:06:24,770 --> 01:06:27,850 สวัสดีชื่อแล้ว เครื่องหมายอัศเจรีย์ 1421 01:06:27,850 --> 01:06:30,390 >> ดังนั้นเมื่อและเหตุผลที่เป็นฟังก์ชั่นนี้ เรียกว่า? 1422 01:06:30,390 --> 01:06:33,150 ดีจะคาดเดาจาก HTML ที่ด้านล่าง 1423 01:06:33,150 --> 01:06:35,810 ทำไมทักทาย () เรียกว่าหรือเมื่อ? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> เห็นได้ชัดว่าดีที่สุดเท่าที่ผมสามารถบอกได้ใน ส่งเมื่อฟอร์มนี้จะถูกส่ง 1426 01:06:44,030 --> 01:06:47,200 ฉันจะทำสิ่งที่เป็น ภายในของคำพูดเหล่านี้ 1427 01:06:47,200 --> 01:06:50,900 และโดยเฉพาะผมจะเรียก ทักทาย () และจากนั้นกลับเท็จ 1428 01:06:50,900 --> 01:06:53,090 >> ดีขอดูสิ่งที่สุทธิ ผลกระทบที่นี่เป็นครั้งแรก 1429 01:06:53,090 --> 01:06:58,290 เพื่อให้ฉันไปข้างหน้าและพิมพ์ ในการพูด, ลอเรนส่ง 1430 01:06:58,290 --> 01:06:59,440 สวัสดีลอเรน 1431 01:06:59,440 --> 01:07:02,990 ลองดูว่าอาจจะเป็นเพียง การดำเนินงานที่โชคดี 1432 01:07:02,990 --> 01:07:03,200 Nope 1433 01:07:03,200 --> 01:07:05,990 จึงพิมพ์ออกสิ่งที่ ชื่อจริงผมวางมี 1434 01:07:05,990 --> 01:07:07,970 >> แต่สังเกตเห็นสิ่งที่ไม่เปลี่ยน 1435 01:07:07,970 --> 01:07:10,360 URL ที่ยังคงอุดม-0.html 1436 01:07:10,360 --> 01:07:11,820 ไม่มี register.php เป็น 1437 01:07:11,820 --> 01:07:13,110 ไม่มีแฟ้มที่สองเป็น 1438 01:07:13,110 --> 01:07:14,930 ไม่มีการดำเนินการลักษณะเป็น 1439 01:07:14,930 --> 01:07:19,720 ดังนั้นสิ่งที่เป็นเท็จนี้กลับ น่าจะทำอะไร 1440 01:07:19,720 --> 01:07:23,660 ทำไมฉันจึงเรียกทักทาย () แล้ว กลับเท็จอาจ? 1441 01:07:23,660 --> 01:07:26,420 สิ่งปกติท​​ี่เกิดขึ้นเมื่อคุณคลิก ส่งแบบฟอร์มว่าแม้เรามี 1442 01:07:26,420 --> 01:07:27,854 ที่เห็นในสัปดาห์ที่ผ่านมาหรือไม่ 1443 01:07:27,854 --> 01:07:29,900 >> ผู้ชม: [ไม่ได้ยิน] 1444 01:07:29,900 --> 01:07:30,860 >> DAVID ลัน: มันจะไปที่ใดที่หนึ่งใช่ไหม 1445 01:07:30,860 --> 01:07:32,720 มันจะไป URL ปลายทางบาง 1446 01:07:32,720 --> 01:07:34,120 แต่ฉันไม่ต้องการที่จะเกิดขึ้นที่นี่ 1447 01:07:34,120 --> 01:07:37,620 ฉันต้องการหน้าเว็บของฉันที่จะสมบูรณ์ แบบไดนามิกเช่น Gmail ที่เมื่อคุณ 1448 01:07:37,620 --> 01:07:38,650 มีคุณอยู่ที่นั่น 1449 01:07:38,650 --> 01:07:42,900 URL ที่ไม่เปลี่ยนแปลงไปในทางที่ แสดงให้เห็นทั้งหน้าเป็นโหลด 1450 01:07:42,900 --> 01:07:46,680 แต่ผมแค่อยากจะเปลี่ยนแปลงอะไรบางอย่าง เช่นการพิมพ์ออกบางสิ่งบางอย่าง 1451 01:07:46,680 --> 01:07:48,320 ที่นี่บนหน้าจอ 1452 01:07:48,320 --> 01:07:49,630 >> ดีให้ฉันทำความสะอาดนี้ ขึ้นเล็กน้อย 1453 01:07:49,630 --> 01:07:55,370 ผมขอเปิดไม่ได้อุดม-0 แต่ ให้ฉันเปิด Dom-2 1454 01:07:55,370 --> 01:07:57,350 เพียงเพื่อให้คุณได้เห็นรูปแบบบางส่วนที่นี่ 1455 01:07:57,350 --> 01:08:02,080 >> แต่กลับกลายเป็นว่าสิ่งที่เราเพียงแค่ ไม่ใช้วัตถุดิบ JavaScript 1456 01:08:02,080 --> 01:08:04,420 ดังนั้นนี่คือภาษาอย่างแท้จริง JavaScript 1457 01:08:04,420 --> 01:08:07,340 บางท่านอาจจะรู้ว่าของ ห้องสมุด jQuery เรียกว่า 1458 01:08:07,340 --> 01:08:09,980 >> ดังนั้น jQuery ไม่เหมือนกัน สิ่งที่เป็น JavaScript 1459 01:08:09,980 --> 01:08:14,110 มันเป็นเพียงแค่ห้องสมุดที่สมาร์ทจริงๆ คนเขียนและความนิยมดังกล่าว 1460 01:08:14,110 --> 01:08:18,100 ที่เกือบทุกคนในโลกในขณะนี้ ใช้ jQuery เมื่อใช้ JavaScript 1461 01:08:18,100 --> 01:08:20,890 และได้อย่างรวดเร็วก่อนตรงไปตรงมาก็ ดูเล็ก ๆ น้อย ๆ ที่เป็นความลับมากขึ้น 1462 01:08:20,890 --> 01:08:24,990 แต่คุณจะพบโดยเฉพาะอย่างยิ่งถ้าคุณไป มีโครงการขั้นสุดท้ายของคุณกับเว็บ 1463 01:08:24,990 --> 01:08:29,029 การพัฒนาคุณจะพบว่านี้ ทำความสะอาดสิ่งขึ้นและช่วยให้คุณประหยัดมาก 1464 01:08:29,029 --> 01:08:30,229 ไม่กี่บรรทัดของรหัส 1465 01:08:30,229 --> 01:08:33,189 >> เพื่อให้เพียงอย่างรวดเร็วที่ว่า รูปแบบนี้คือการทำงาน 1466 01:08:33,189 --> 01:08:35,664 สังเกตเห็นสิ่งที่ฉันไม่เอาที่เห็นได้ชัด จาก HTML ของฉันได้อย่างไร 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 ไม่มีการจัดการเกี่ยวกับการส่ง เพื่อที่จะพูด 1469 01:08:40,630 --> 01:08:41,470 ไม่มีคุณลักษณะที่เป็น 1470 01:08:41,470 --> 01:08:43,359 เพราะคุณรู้ว่าสิ่งที่ ฉันไม่ได้จริงๆชอบ 1471 01:08:43,359 --> 01:08:45,640 ฉันรู้สึกเหมือนเราถูกล้ม เป็นนิสัยเก่าที่มี 1472 01:08:45,640 --> 01:08:49,340 เช่นเดียวกับมันก็เริ่มที่จะรู้สึกเลอะเทอะ การผสมทั้ง CSS ด้วย 1473 01:08:49,340 --> 01:08:52,149 HTML เพราะคุณชนิดของการขว้างปา ภาษาที่แตกต่างกันทั่วทุกมุม 1474 01:08:52,149 --> 01:08:56,180 สถานที่คล้ายนี้ได้เริ่มต้นที่จะรู้สึก เช่นถนนที่ดีที่จะไปลงที่ 1475 01:08:56,180 --> 01:09:01,069 ฉันวาง JavaScript รหัสภายในของฉัน HTML มากกว่าแฟมันออกมา 1476 01:09:01,069 --> 01:09:02,279 >> เพื่อให้เป็นบทเรียนที่นี่ 1477 01:09:02,279 --> 01:09:05,080 ใน Dom-2.html ผมแฟมันออกมา 1478 01:09:05,080 --> 01:09:07,399 และฉันทำสิ่งที่เล็กน้อย ต่างกัน 1479 01:09:07,399 --> 01:09:09,630 สำหรับตอนนี้ผมกำลังจะไปคลื่นมือของฉัน สิ่งนี้จริงๆ 1480 01:09:09,630 --> 01:09:10,590 ภายใต้ฝากระโปรง 1481 01:09:10,590 --> 01:09:14,210 เพียง แต่ตอนนี้คิดว่าที่แรก บรรทัดของรหัสในห้องสมุดนี้ 1482 01:09:14,210 --> 01:09:18,170 jQuery เรียกว่าเพียงแค่หมายความว่าเมื่อ เอกสารพร้อมทำต่อไปนี้ 1483 01:09:18,170 --> 01:09:20,080 >> เพราะหน้าเว็บที่สามารถใช้ เวลาที่จะโหลดบาง 1484 01:09:20,080 --> 01:09:23,029 คุณอาจจะมีในอินเทอร์เน็ตช้า การเชื่อมต่อและมันอาจจะมีการปั่น 1485 01:09:23,029 --> 01:09:25,290 และการปั่นและในที่สุดก็โหลด 1486 01:09:25,290 --> 01:09:29,060 บรรทัดของรหัสที่เพิ่งกล่าวว่ารอจนกว่า ทั้งหน้าพร้อมเอกสาร 1487 01:09:29,060 --> 01:09:31,189 พร้อมก่อนที่จะดำเนินรหัสนี้ 1488 01:09:31,189 --> 01:09:34,390 >> และตอนนี้สังเกตเห็นนี้อาจเป็น มีประโยชน์มากที่สุดเป็นครั้งแรก 1489 01:09:34,390 --> 01:09:36,189 นำมาใช้จาก jQuery 1490 01:09:36,189 --> 01:09:42,140 บรรทัดนี้ที่นี่จะคล้ายกันมากในจิตวิญญาณ กับสายที่ยาวกว่านี้ที่นี่ 1491 01:09:42,140 --> 01:09:46,920 ในขณะที่ในรหัส JavaScript ดิบมี มีเอกสารวัตถุระดับโลกที่ 1492 01:09:46,920 --> 01:09:50,460 มีฟังก์ชั่นที่เรียกว่า getElementById () คนที่เขียน 1493 01:09:50,460 --> 01:09:55,720 jQuery ง่ายที่จะเพียงแค่พูด เครื่องหมายดอลลาร์และจากนั้นภายใน 1494 01:09:55,720 --> 01:10:00,250 ใส่วงเล็บสองราคาแล้ว ใส่สัญลักษณ์กัญชาตามมาด้วย 1495 01:10:00,250 --> 01:10:02,250 ID ที่ไม่ซ้ำกันที่คุณต้องการที่จะคว้า 1496 01:10:02,250 --> 01:10:06,170 ดังนั้นนี่คือเทียบเท่ากับ document.getElementById 1497 01:10:06,170 --> 01:10:11,090 >> ในขณะที่. ส่งเพียงหมายถึง การส่งรูปแบบใดก็ตามที่คุณกำลัง 1498 01:10:11,090 --> 01:10:14,240 หมายถึงทางด้านซ้ายไป ข้างหน้าและการดำเนินการนี​​้ 1499 01:10:14,240 --> 01:10:16,600 แต่ตอนนี้อยากรู้อยากเห็นมากเกินไป 1500 01:10:16,600 --> 01:10:19,560 สิ่งที่แปลกเกี่ยวกับสิ่งที่ ผมได้เน้นที่นี่ 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 ไม่เพียง แต่มันเป็นชนิดของ syntactically ใหม่นอกจากนี้ยังมีบางสิ่งบางอย่างที่ขาดหายไป 1503 01:10:28,594 --> 01:10:29,558 >> ผู้ชม: มันเรียกว่าเพียงแค่ฟังก์ชั่ทำไม 1504 01:10:29,558 --> 01:10:31,970 มันไม่ได้เรียกว่าการแจ้งเตือน? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID ลัน: ใช่ 1506 01:10:32,440 --> 01:10:35,450 ดีเพื่อการแจ้งเตือน () เป็นลง ที่นี่เพื่อให้เกิดความเป็นธรรม 1507 01:10:35,450 --> 01:10:39,520 แต่ไม่มีการเอ่ยถึงไม่มี ชื่อเช่นคุณรู้ว่า foo หรือ 1508 01:10:39,520 --> 01:10:40,980 บางสิ่งบางอย่างขึ้นที่นี่ 1509 01:10:40,980 --> 01:10:43,830 และแน่นอนนี้เป็นหนึ่งในคุณสมบัติ ของ JavaScript ที่ค่อนข้าง 1510 01:10:43,830 --> 01:10:45,370 ที่มีประสิทธิภาพ แต่ยังค่อนข้างใหม่ 1511 01:10:45,370 --> 01:10:47,460 และ PHP จริงมีนี้เป็นอย่างดี 1512 01:10:47,460 --> 01:10:49,500 >> ให้ฉันไปข้างหน้าและทำ สิ่งที่จริงอย่างรวดเร็ว 1513 01:10:49,500 --> 01:10:52,030 ให้ฉันไปข้างหน้าและวางนี้ออกจากที่นี่ 1514 01:10:52,030 --> 01:10:52,600 ให้ฉันทำเช่นนี้ 1515 01:10:52,600 --> 01:10:53,690 ฟังก์ชัน 1516 01:10:53,690 --> 01:10:56,455 ขอเรียกตัวจัดการนี​​้ () 1517 01:10:56,455 --> 01:10:58,290 ฟังก์ชั่นการจัดการเพื่อที่จะพูด 1518 01:10:58,290 --> 01:11:00,110 อะไรบางอย่างที่จะจัดการกับการดำเนินการบางอย่าง 1519 01:11:00,110 --> 01:11:02,700 ให้ฉันทำความสะอาดเยื้องของฉัน 1520 01:11:02,700 --> 01:11:04,380 และวางนี้ที่นี่ 1521 01:11:04,380 --> 01:11:06,090 และใส่ที่นี่ 1522 01:11:06,090 --> 01:11:06,470 อ๋อ 1523 01:11:06,470 --> 01:11:07,060 ตกลง 1524 01:11:07,060 --> 01:11:10,300 >> ดังนั้นตอนนี้ฉันมีฟังก์ชันที่เรียกว่า ตัวจัดการ () ที่ฉันไม่ทราบจริงๆ 1525 01:11:10,300 --> 01:11:10,890 สิ่งที่มันไม่ยัง 1526 01:11:10,890 --> 01:11:12,710 มันก็ยังคงมีสิ่งที่ 1527 01:11:12,710 --> 01:11:13,900 ขออภัย 1528 01:11:13,900 --> 01:11:15,820 มามากเกินไป 1529 01:11:15,820 --> 01:11:18,490 ให้ทำเช่นนี้ 1530 01:11:18,490 --> 01:11:18,990 ทั้งหมดขวา 1531 01:11:18,990 --> 01:11:20,240 ขอโทษ 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 ทั้งหมดขวา 1534 01:11:23,690 --> 01:11:24,720 ให้ฉันทำเช่นนี้ 1535 01:11:24,720 --> 01:11:25,020 ตกลง 1536 01:11:25,020 --> 01:11:27,040 ที่มีลักษณะที่ดีและตรง ไปข้างหน้าในขณะนี้ 1537 01:11:27,040 --> 01:11:29,090 ให้ฉันทำเช่นนี้ 1538 01:11:29,090 --> 01:11:29,860 ทำเช่นนี้ 1539 01:11:29,860 --> 01:11:30,950 และตกลง 1540 01:11:30,950 --> 01:11:33,080 ดังนั้นตอนนี้เรามาลองใส่นี้กว่าที่นี่ 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 ไม่มีการเขียนโปรแกรมเพิ่มเติมเกี่ยวกับการบิน 1543 01:11:37,270 --> 01:11:37,900 ตกลง 1544 01:11:37,900 --> 01:11:40,000 >> ดังนั้นตอนนี้ให้กลับไป เรื่องราวเริ่มต้นขึ้น 1545 01:11:40,000 --> 01:11:43,530 ก่อนหน้านี้ผมบอกว่าสายนี้ที่นี่ หมายความว่าเมื่อเอกสารพร้อมไป 1546 01:11:43,530 --> 01:11:44,380 ข้างหน้าและทำเช่นนี้ 1547 01:11:44,380 --> 01:11:45,660 อะไรที่ฉันต้องการทำอะไร? 1548 01:11:45,660 --> 01:11:49,070 ดีโดยเฉพาะฉันต้องการไป ข้างหน้าและทำต่อไปนี้ 1549 01:11:49,070 --> 01:11:53,700 ดำเนินการบรรทัดของรหัสนี้แล้ว สิ่งที่ฉันต้องการให้คุณทำคือการเรียกสิ่งนี้ว่า 1550 01:11:53,700 --> 01:11:56,370 ทำงานเมื่อการส่งแบบฟอร์ม 1551 01:11:56,370 --> 01:11:57,730 >> ตอนนี้เป็นสิ่งที่น่าสนใจ 1552 01:11:57,730 --> 01:11:59,170 นี้ไม่ได้เป็นตัวเองฟังก์ชั่น 1553 01:11:59,170 --> 01:12:02,540 สังเกตเห็นผมไม่ได้ใส่วงเล็บ ที่นี่ในวิธีปกติ 1554 01:12:02,540 --> 01:12:06,800 ผมอย่างแท้จริงผ่านฟังก์ชันที่เรียกว่า ตัวจัดการ () เพื่อฟังก์ชั่นอื่น 1555 01:12:06,800 --> 01:12:10,800 เรียกว่าส่ง () เป็นอาร์กิวเมนต์เป็น แม้ว่ามันจะเป็นเหมือนตัวแปร 1556 01:12:10,800 --> 01:12:14,290 และนี่คือหนึ่งในคุณสมบัติของ JavaScript เป็นฟังก์ชั่นของตัวเอง 1557 01:12:14,290 --> 01:12:15,710 เป็นจริงเพียงแค่วัตถุ 1558 01:12:15,710 --> 01:12:18,350 ในความเป็นจริงพวกเขากำลังจริงๆเพียงแค่ ตัวแปรของการจัดเรียงบาง 1559 01:12:18,350 --> 01:12:21,340 และถ้าชื่อของฟังก์ชันคือ ตัวจัดการ () มีเหตุผลที่ฉันไม่สามารถไม่มี 1560 01:12:21,340 --> 01:12:23,390 ผ่านมันในเป็นอาร์กิวเมนต์ที่นี่ 1561 01:12:23,390 --> 01:12:27,530 และสิ่งนี้หมายความว่าเมื่อรูปแบบ ที่มีรหัสของการสาธิตคือ 1562 01:12:27,530 --> 01:12:29,320 ส่งการเรียกใช้ฟังก์ชันนี้ 1563 01:12:29,320 --> 01:12:32,770 >> แต่ตอนนี้ถ้าฉันยกเลิกการทั้งหมดนี้ ผมไม่แล้วทำไมบางทีอาจจะทำ 1564 01:12:32,770 --> 01:12:34,850 ขณะนี้ที่ผ่านมา? 1565 01:12:34,850 --> 01:12:36,840 ดีนี้เป็นฟังก์ชั่นที่ไม่ระบุชื่อ 1566 01:12:36,840 --> 01:12:41,080 ตรงไปตรงมาเพราะฉันรู้ว่าทำไมฉัน รบกวนให้เสียเวลาประกาศ 1567 01:12:41,080 --> 01:12:45,540 ฟังก์ชันที่เรียกว่าตัวจัดการ () เท่านั้นที่จะเรียก ในเพียงหนึ่งเดียวและสถานที่? 1568 01:12:45,540 --> 01:12:48,640 ถ้าฉันไม่จำเป็นต้องมีชื่อและที่ฉันทำไม่ได้ ต้องเรียกมันมากกว่าที่เดียว 1569 01:12:48,640 --> 01:12:51,200 ให้เพียงใช้ฟังก์ชั่น ขวาที่ฉันต้องการมัน 1570 01:12:51,200 --> 01:12:55,190 และเพื่อให้การสนับสนุน JavaScript และ PHP อะไร จะเรียกว่าฟังก์ชั่นที่ไม่ระบุชื่อ 1571 01:12:55,190 --> 01:12:57,900 ให้ฉันไปทำตรงที่ที่นี่ 1572 01:12:57,900 --> 01:12:59,570 >> แต่เราเพียงแค่รอยขีดข่วนบนพื้นผิว 1573 01:12:59,570 --> 01:13:02,430 ขอแซวมีเพียงคู่ ตัวอย่างสุดท้ายที่นี่ 1574 01:13:02,430 --> 01:13:04,600 >> ถ้าฉันไปเป็น quote.php 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 ขอให้สังเกตว่านี้เป็นจริง PHP ฟังก์ชั่นซึ่งเป็นโปรแกรม PHP ที่ผมเขียน 1577 01:13:11,870 --> 01:13:15,270 ที่คาดว่าจะมีพารามิเตอร์ที่เรียกว่า HTTP สัญลักษณ์และฉันสามารถผ่านใน 1578 01:13:15,270 --> 01:13:16,730 มูลค่าเช่น FB 1579 01:13:16,730 --> 01:13:20,010 และถ้าเราจริงมองไปที่แหล่งที่มา รหัสนี้จะสอบถามเว็บไซต์ฟรี 1580 01:13:20,010 --> 01:13:23,680 เรียกว่า Yahoo การเงินเช่นเดียวกับ P-ชุด เจ็ดและจะกลับมาให้ฉัน 1581 01:13:23,680 --> 01:13:26,580 สิ่งที่เห็นได้ชัดใน รูปแบบที่รู้จักกันเป็น JSON - 1582 01:13:26,580 --> 01:13:28,010 JavaScript Object สัญลักษณ์ 1583 01:13:28,010 --> 01:13:28,810 มันเป็นเพียงวัตถุ 1584 01:13:28,810 --> 01:13:32,500 สังเกตวงเล็บปีกกา, ราคา, ลำไส้ใหญ่และจุลภาค 1585 01:13:32,500 --> 01:13:34,720 >> ตอนนี้ขณะนี้เป็นเย็นสวย 1586 01:13:34,720 --> 01:13:38,520 เพราะผมอาจจะสามารถใช้การเขียนโปรแกรม ภาษาในการสร้าง URL ที่ 1587 01:13:38,520 --> 01:13:40,370 มองว่าเช่นนี้แบบไดนามิก ใช่มั้ย? 1588 01:13:40,370 --> 01:13:43,340 ฉันสามารถเปลี่ยนนี้ไปที่ Google และกลับของ Google 1589 01:13:43,340 --> 01:13:47,930 ราคาหุ้นของ $ 1,017.55 1590 01:13:47,930 --> 01:13:49,640 ดังนั้นขอดูว่าเราไม่สามารถใช้ในตอนนี้ 1591 01:13:49,640 --> 01:13:56,590 >> ให้ฉันไปที่อาแจ็กซ์-0 ที่นี่ซึ่ง ดูเหมือนว่าต่อไปนี้ 1592 01:13:56,590 --> 01:13:59,750 มันเป็นเพียงเว็บไซต์ที่มี แบบฟอร์มที่มีปุ่ม 1593 01:13:59,750 --> 01:14:05,860 ที่นี่ให้ฉันไปข้างหน้าและพิมพ์ใน YHOO สำหรับสัญลักษณ์หุ้นของ Yahoo คลิกรับ 1594 01:14:05,860 --> 01:14:10,530 อ้างและตอนนี้สังเกตเห็นผมเคย การแจ้งเตือนที่มี 32.86 1595 01:14:10,530 --> 01:14:14,050 >> ให้ฉันจริงไปเป็นรุ่นที่นักเล่น ของหน้านี้สองรุ่นและ 1596 01:14:14,050 --> 01:14:17,530 พิมพ์สมมติว่าไมโครซอฟท์ MSFT 1597 01:14:17,530 --> 01:14:18,410 ขอใบเสนอราคา 1598 01:14:18,410 --> 01:14:19,850 และตอนนี้สังเกตเห็นไม่มีการแจ้งเตือน 1599 01:14:19,850 --> 01:14:22,770 สังเกตุที่มันว่าราคา จะถูกกำหนด? 1600 01:14:22,770 --> 01:14:27,060 มีที่ง่ายที่สุดของตัวอย่างที่เป็น คำแนะนำในสิ่งที่ Gchat, และ Facebook 1601 01:14:27,060 --> 01:14:30,070 แชท, และ Gmail และอื่น ๆ เช่น เว็บไซต์ที่ทำตามได้จริง 1602 01:14:30,070 --> 01:14:31,290 เปลี่ยนหน้าเว็บ 1603 01:14:31,290 --> 01:14:31,800 >> ประกาศฉบับนี้ 1604 01:14:31,800 --> 01:14:33,120 ผมขอโหลดหน้าเว็บใหม่ 1605 01:14:33,120 --> 01:14:35,080 ผมขอเปิดการตรวจสอบของ Chrome 1606 01:14:35,080 --> 01:14:36,890 ให้ฉันไปกับองค์ประกอบ แท็บลงที่นี่ 1607 01:14:36,890 --> 01:14:42,310 ตอนนี้สังเกตเห็นว่าผมซูมลงที่นี่และ เปิดขึ้นนี้แจ้งให้ทราบว่าเป็นของฉัน 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - รูปแบบวัตถุของฉันเอกสาร 1609 01:14:44,500 --> 01:14:45,920 นี่คือ HTML ของฉัน 1610 01:14:45,920 --> 01:14:48,750 แต่ตอนนี้สังเกตเห็นถึงแม้ว่ามันจะ เป็นเพียงเล็กน้อยยากที่จะเห็นมันในทั้งสอง 1611 01:14:48,750 --> 01:14:52,080 สถานที่ในครั้งเดียวถ้าผมพิมพ์ลงใน FB ขึ้นที่นี่ดูด้านล่าง 1612 01:14:52,080 --> 01:14:54,110 ของหน้าจอเท่านั้น 1613 01:14:54,110 --> 01:14:57,720 >> ก็จริงที่เปลี่ยนแปลง HTML ของฉันทันที 1614 01:14:57,720 --> 01:15:01,670 และจะทำเช่นนี้ค่อนข้างง่าย โดยการทำบางสิ่งบางอย่างเช่นนี้ 1615 01:15:01,670 --> 01:15:06,800 ถ้าผมเปิด Ajax-2, การดำเนินการแจ้งให้ทราบล่วงหน้า สิ่งที่เป็นเซ็กซี่เป็น 1616 01:15:06,800 --> 01:15:09,560 ที่แม้ว่ามันจะน่าเกลียดสวย แต่ที่ซับซ้อนเช่นที่ 1617 01:15:09,560 --> 01:15:11,910 ตามหน้าที่ แต่ก็มีบาง HTML ที่ด้านล่าง 1618 01:15:11,910 --> 01:15:13,810 แต่สังเกตเห็นผมใช้ในการติดแท็ก 1619 01:15:13,810 --> 01:15:16,640 เราไม่ได้ใช้ก่อนหน้านี้ แต่นี้เป็น เหมือน แต่มันก็ไม่ได้บังคับ 1620 01:15:16,640 --> 01:15:17,840 ทุกอย่างลงบนบรรทัดใหม่ 1621 01:15:17,840 --> 01:15:20,830 มันก็ทำให้ภูมิภาคสี่เหลี่ยม ในบรรทัดเดียวกันเป็นหลัก 1622 01:15:20,830 --> 01:15:22,870 >> ขอให้สังเกตว่าผมให้มัน ID ของราคา 1623 01:15:22,870 --> 01:15:26,800 และมันจะเปิดออกโดยใช้เดียวกัน ห้องสมุด JavaScript ฉันมีฟังก์ชั่น 1624 01:15:26,800 --> 01:15:30,440 เรียกว่าอ้าง () ที่เรียกว่าเมื่อใดก็ตามที่ การส่งแบบฟอร์ม 1625 01:15:30,440 --> 01:15:31,800 และสิ่งที่ฉันทำวันนี้ 1626 01:15:31,800 --> 01:15:35,730 ผมประกาศตัวแปรใน JavaScript ที่เรียกว่า, url ประหยัดค่า 1627 01:15:35,730 --> 01:15:38,650 quote.php สัญลักษณ์? = 1628 01:15:38,650 --> 01:15:44,220 ในคำอื่น ๆ ผมเองครับเริ่มต้น เพื่อเตรียมความพร้อมการร้องขอ HTTP แล้ว 1629 01:15:44,220 --> 01:15:49,250 ผมเชื่อมโยงไปยังที่ที่มีบวก สิ่งที่องค์ประกอบที่มีรหัส 1630 01:15:49,250 --> 01:15:54,190 ของสัญลักษณ์ที่แจ้งให้ทราบว่าเป็น ฟิลด์ข้อความขวาลงที่นี่ 1631 01:15:54,190 --> 01:15:56,630 ดังนั้นเช่นเดียวกับที่เรามีรูปแบบในอดีตที่ผ่านมา 1632 01:15:56,630 --> 01:16:01,450 >> และจากนั้นก็จะเปิดออกใน jQuery ถ้าคุณ โทร. Val () ที่เรียกร้องของ Val 1633 01:16:01,450 --> 01:16:05,900 ฟังก์ชั่นฟังก์ชั่นค่าที่ได้รับ สิ่งที่ผู้ใช้มีการพิมพ์นิ้ว 1634 01:16:05,900 --> 01:16:08,920 และแล้วทั้งหมดของเครือข่ายการจราจร ที่เกิดขึ้นนี้ 1635 01:16:08,920 --> 01:16:11,230 $. getJSON 1636 01:16:11,230 --> 01:16:13,720 >> และเป็นกันเครื่องหมายดอลลาร์เป็น เพียงสัญกรณ์ชวเลข 1637 01:16:13,720 --> 01:16:16,860 มันจริงๆ jQuery.getJSON 1638 01:16:16,860 --> 01:16:21,520 รับฉันไป JSON จาก URL นี้และเมื่อ ขอกลับมาเรียกสิ่งนี้ว่า 1639 01:16:21,520 --> 01:16:26,550 ฟังก์ชั่นและส่งผ่านเป็นอาร์กิวเมนต์ สิ่งที่กลับมาจากเซิร์ฟเวอร์ 1640 01:16:26,550 --> 01:16:31,205 >> ดังนั้นในคำอื่น ๆ ถ้าผมกลับไปที่ เบราว์เซอร์และผมก็กลับไป quote.php, 1641 01:16:31,205 --> 01:16:35,590 สิ่งที่เบราว์เซอร์ของฉันจะทำคือการได้รับ ก้อนของข้อมูลนี้ 1642 01:16:35,590 --> 01:16:38,930 และเมื่อฉันไปที่หน้าเว็บนี้ที่นี่ แจ้งให้ทราบถ้าเราแทนไปยังเครือข่าย 1643 01:16:38,930 --> 01:16:43,820 แท็บและล้างมันแล้วพิมพ์ใน สิ่งที่ต้องการ GOOG สำหรับ Google และรับ 1644 01:16:43,820 --> 01:16:46,340 อ้างสังเกตเห็นหน้าไม่เปลี่ยนแปลง 1645 01:16:46,340 --> 01:16:50,990 แต่คำขอ HTTP ได้ทำและสิ่งที่ กลับมาที่นี่ถ้าเรามองไปที่ 1646 01:16:50,990 --> 01:16:56,130 การตอบสนองเป็นมัดทั้ง JSON ที่เราเข้าถึงได้ในที่สุดด้วย 1647 01:16:56,130 --> 01:16:58,070 สายนี้ง่ายที่นี่ 1648 01:16:58,070 --> 01:17:00,150 >> ข้อมูลเป็นสิ่งที่ถูกอากาศ จากเซิร์ฟเวอร์ 1649 01:17:00,150 --> 01:17:02,120 ราคาเป็นชื่อของ ที่สำคัญฉันดูแลเกี่ยวกับ 1650 01:17:02,120 --> 01:17:05,230 ดังนั้น data.price ให้ผมว่า 1651 01:17:05,230 --> 01:17:07,540 >> ตอนนี้ในขณะเดียวกันนี้ เป็นตัวอย่างที่ผ่านมา 1652 01:17:07,540 --> 01:17:09,280 คุณสามารถทำยังกับหน้า 1653 01:17:09,280 --> 01:17:12,440 หนึ่งจริงทั้งสอง 1654 01:17:12,440 --> 01:17:14,780 เราสามารถนำกลับมา แท็กถ้าคุณจำนี้ 1655 01:17:14,780 --> 01:17:15,850 นั่นเป็น JavaScript 1656 01:17:15,850 --> 01:17:17,110 เราสามารถทำเช่นนั้นได้ 1657 01:17:17,110 --> 01:17:17,690 ที่น่าตื่นเต้นมาก 1658 01:17:17,690 --> 01:17:18,800 เราจะออกจากที่เป็นที่น่าตื่นเต้น 1659 01:17:18,800 --> 01:17:21,590 >> แต่โลดโผนคุณสามารถ ทำสิ่งที่ต้องการนี​​้ 1660 01:17:21,590 --> 01:17:25,940 ถ้าผมไป geolocation-1 ก็จะเปิดออก Chrome ที่รู้ว่าเราอยู่ที่ 1661 01:17:25,940 --> 01:17:30,672 ละติจูดลองจิจูด 42.37. -71.10 1662 01:17:30,672 --> 01:17:32,940 ดังนั้นจึงมีมากขึ้นมี ที่จำหน่ายของคุณ 1663 01:17:32,940 --> 01:17:34,290 แต่ในสัปดาห์ถัดไปที่ 1664 01:17:34,290 --> 01:17:35,540 เห็นคุณจันทร์ 1665 01:17:35,540 --> 01:17:37,558