>> DAVID ลัน: ทั้งหมดขวา
นี่คือ CS50 และนี่คือ ในตอนท้ายของสัปดาห์ที่เก้า
มันเป็นพายุหมุนกว่า ไม่กี่วันที่ผ่านมา
และปัญหาการตั้งเจ็ดถ้าคุณเข่า ลึกเข้าไปมันรู้มีค่อนข้าง
บิตใหม่ที่อยู่ในนั้น
แต่ให้ดูว่าเราไม่สามารถชิ้น ทุกอย่างมารวมกันที่นี่ในเวลาสั้น ๆ
ก่อนหน้านั้นหันเหออกไปในยัง อีกทิศทางหนึ่งและเห็น
ที่อื่นที่เราสามารถไป
>> ดังนั้นป่านนี้เราได้พูดคุยเกี่ยวกับ HTML
เราได้พูดคุยเกี่ยวกับซีเอสเอ
เราได้พูดคุยเกี่ยวกับ PHP
คุณได้เริ่มต้นที่จะได้สัมผัส SQL
วันนี้เราจะพูดถึงบิต เกี่ยวกับ JavaScript
แต่วิธีการทำทั้งหมดของการที่แตกต่างกันเหล่านี้ ภาษาพอดีกัน?
>> ดังนั้นเราได้พูดคุยเกี่ยวกับสัปดาห์ที่ผ่านมา ความคิดของการมีเซิร์ฟเวอร์
เพื่อให้เพียงวาดรูปสี่เหลี่ยมผืนผ้านี้ เป็นเว็บเซิร์ฟเวอร์ที่นี่
และเว็บเซิร์ฟเวอร์ที่ให้บริการไฟล์ที่แน่นอน
และบางส่วนของไฟล์เหล่านั้น อาจเป็นไฟล์ที่ HTML
ดังนั้นหนึ่งในสิ่งที่เว็บเซิร์ฟเวอร์ สามารถคายอาจจะมีแฟ้มที่
เราก็จะวาดเช่นนี้ มีบาง HTM​​L
ดังนั้นในแง่ของคนธรรมดาสิ่งที่ ไม่ HTML ที่ช่วยให้คุณทำ?
>> ผู้ชม: มองหน้าดี
>> DAVID ลัน: ตกลงให้หน้าดูดี แม้ว่าฉันคิดว่าฉันได้รับการพิสูจน์
ที่อื่น
ดังนั้น HTML ไม่มีช่วยให้คุณสามารถวางออกหน้า การก่อสร้างและจะช่วยให้คุณ
การเรียงลำดับของความสุนทรีย์ทำเครื่องหมายขึ้นหน้า, ทำเครื่องหมายขึ้นเนื้อหาแบบคงที่เพื่อให้คุณ
แล้วสามารถดูได้กับเว็บเบราเซอร์
>> แต่ที่สำคัญ
มันเป็นเนื้อหาแบบคงที่
ที่คุณเขียนว่าคุณเก็บมันไว้ และแล้วคุณเรือ
และเว็บเซิร์ฟเวอร์ที่ให้บริการแล้ว มันขึ้นอยู่กับผู้เข้าชมของคุณ
>> แต่เราใช้ Stylize สิ่งที่แตกต่างกัน ภาษาทั้งหมด
เราเริ่มต้นที่จะใช้รูปแบบจากสไตล์ แท็กบางอย่าง
และแอตทริบิวต์สไตล์ให้เราตั้ง สิ่งที่ต้องการขนาดตัวอักษรและสี
และคุณอาจเริ่มที่จะค้นพบ, หรือคุณเร็ว ๆ นี้จะเป็นครั้งสุดท้ายสำหรับ
โครงการที่อาจเกิดขึ้นอื่น ๆ ยัง คุณสมบัติที่คุณสามารถใช้ในวินาที
และดังนั้นในแง่ของคนธรรมดาสิ่งที่ จริงๆแล้วไม่วินาทีทำอะไร?
เหล่านี้เป็นเพียงตัวอย่างดังกล่าว
มันจะมีอะไรให้คุณทำ HTML ที่ ดูเหมือนจะไม่ได้จากสิ่งที่
ที่เราเคยเห็นป่านนี้?
>> ผู้ชม: กำหนดรูปแบบด้วยตัวเอง
>> DAVID ลัน: รูปแบบที่กำหนด ด้วยตัวเอง
ดังนั้นการกำหนดสิ่งที่ต้องการเรียนในขณะที่คุณ อาจพบหรือไม่ซ้ำกัน
ระบุโหนดในเอกสารดังนั้น ที่คุณสามารถ Stylize พวกเขา
แต่โดยเฉพาะอย่างยิ่งผมบอกว่าวินาที จริงๆช่วยให้คุณสามารถใช้สิ่ง
ไมล์สุดท้ายและช่วยให้คุณระบุมาก อย่างแม่นยำมากขึ้นความงาม,
ในขณะที่ HTML สำหรับส่วนใหญ่ที่ช่วยให้ คุณโครงสร้างหน้าเว็บของคุณ
>> และแม้ว่าจะมีค่าเริ่มต้นบาง เหมือนอย่างที่เราได้เห็นแท็กสำหรับ
แท็กมุ่งหน้าซึ่งพูดประมาณ ทำสิ่งที่ยิ่งใหญ่และหนา
นั่นเป็นคำนิยามทั่วไปสวย ของแท็ก - ขนาดใหญ่และหนา
อะไรขนาดตัวอักษรที่เป็น?
สีอะไรที่เป็น?
วิธีการที่เป็นตัวหนา?
และ CSS ช่วยให้คุณมากขึ้นอย่างประณีต สิ่งที่ปรับแต่งเช่นเดียวกับที่
เช่นเดียวกับรูปแบบที่เป็นบางส่วน ของคุณได้เห็น
>> และตรงไปตรงมา, CSS เป็นบิต ของภาษายุ่ง
มันมีประสิทธิภาพมากในการที่คุณสามารถทำให้ อักษรเว็บไซต์ที่คุณได้ใด ๆ
เห็นในเว็บนี้ด้วย แต่ มันเป็นชนิดของอาการปวดคอ
และบางส่วนของคุณมีการกระแทกหัวของคุณ กับผนังที่มีอยู่แล้วเพียงเพื่อทำ
บางสิ่งบางอย่างโง่เช่นศูนย์เมนูบน ปัญหาตั้งเจ็ดถ้าคุณเคยไป
ที่จุดแล้ว
>> แต่ตระหนักถึงสิ่งเหล่านั้น ได้ง่ายขึ้นเมื่อเวลาผ่านไป
คุณเริ่มสังเกตเห็นรูปแบบ
และอีกครั้ง, Google จะเป็นเพื่อนของคุณ หาวิธีการต่างๆที่คุณสามารถ
การแก้ปัญหาลักษณะนี้
>> และผมกล้าพูดกับ CSS และเพิ่มเติม HTML โดยทั่วไปคุณสามารถแก้ปัญหาใน
วิธีอื่น ๆ อีกมากมายซึ่งทั้งหมดอาจจะมาก ความถูกต้องดีกว่าที่คุณจะทำได้
ในบางสิ่งบางอย่างเช่น C แม้ ขณะนี้ PHP, หรือ JavaScript
มีเพียงจำนวนมากที่แตกต่างกัน วิธีการที่จะวางสิ่งที่ออก
>> แต่ตอนนี้เริ่มที่จะได้รับ ยุ่งเรากล่าวว่า
เพียงแค่ชนิดของ commingling HTML ของคุณและ ของ CSS ที่มีคุณลักษณะแบบคือ
เล็ก ๆ น้อย ๆ เลอะเทอะ
และเพื่อให้เราแทนกล่าวว่าการจัดเรียงของ เป็นนามธรรมพูดที่คุณควร
อย่างน้อยเริ่มต้นที่จะเป็นปัจจัย ออก CSS ของคุณอาจ
ไม่คุณสมบัติสไตล​​์ของคุณ แต่อย่างน้อย ใช้แท็กสไตล์ภายในสิ่ง
ส่วนหนึ่งของหน้าเว็บ?
>> ผู้ชม: หัวหน้า
>> DAVID ลัน: ในหัว
จนมาถึงตอนนี้เรามีเพียงชื่อเรื่องขึ้น มี แต่คุณยังสามารถเพิ่มสไตล์
แท็กและคุณสามารถใส่ของ CSS ประมาณ พูดตรงไปยังด้านบนของหน้า
แต่แล้วเราเอาสิ่งหนึ่งขั้นตอนต่อไป และเราเอาเรื่องที่ออกมากขึ้น
ลงในไฟล์ที่แยกต่างหาก
>> และเพื่อให้ทั้งสองไฟล์เป็น ขณะนี้มีการเชื่อมโยงอย่างใด
และอันที่จริงมันเป็น แท็กที่ไม่ว่า
และสิ่งที่เป็นหนึ่งในการเสริมสร้าง แรงจูงใจสำหรับแฟออกวินาทีของเรา
ทั้งหมดอีกหรือไม่
>> ผู้ชม: สามารถนำมาใช้
>> DAVID ลัน: สามารถนำมาใช้
ใช่ไหม?
คุณอาจจะได้เห็นใน p-ชุดเจ็ดแล้ว ที่มากของหน้าเว็บ,
ซื้อหน้าหน้าขาย หน้าผลงานที่น่าจะเป็น
โครงสร้างค่อนข้างใกล้เคียงกัน
มีโลโก้การเงิน CS50 ที่ด้านบนของ เว้นแต่คุณได้ตัดสินใจที่จะเปลี่ยนมัน
มีที่ส่วนท้ายของ ด้านล่างของหน้า
และ CSS ช่วยให้คุณแล้วปัจจัยมันออกมา มันเป็นไฟล์ที่แยกต่างหากเพื่อที่ว่าถ้า
คุณต้องการเปลี่ยนบางสิ่งบางอย่างทั่วโลก ในเว็บไซต์ของคุณทั้งหมดที่คุณสามารถจริงๆ
เพียงแค่เปลี่ยนมันได้ในที่เดียว
>> แต่มีราคาที่คุณจ่ายที่อาจเกิดขึ้นคือ โดยมีปัจจัยออก
วินาทีจากไฟล์ HTML ของฉันเป็นที่แยกต่างหาก ยื่นอ้างอิงด้วย
แท็กที่เราเห็นในวันจันทร์
อะไรข้อเสียอาจจะมีนี้
คิดกลับสัปดาห์ที่ผ่านมาเมื่อเราอยู่ พูดคุยเกี่ยวกับ HTTP และ TCP / IP และวิธีการที่
ผลงานอินเทอร์เน็ต
บางสิ่งบางอย่างที่นี่?
>> ผู้ชม: มันต้องใช้เวลามากขึ้น
>> DAVID ลัน: มันต้องใช้เวลามากขึ้น
ทำไม?
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: ใช่
ดังนั้นจึงเป็นเนื้อหาที่ต้องใช้เวลาอีกเล็กน้อย
เพราะ, CSS จะเห็นได้ชัด ไม่ได้อยู่ในไฟล์เดียวกัน
ดังนั้นตอนนี้คุณจะต้องทำไม่ได้ หนึ่ง แต่สองหน้า
และแต่ละของการร้องขอเหล่านั้นอย่างที่เราเห็นใน Chrome ในที่เรียกว่าสารวัตร
และเรามองไปที่แท็บเครือข่ายแต่ละ ของไฟล์เหล่านั้นต้องหนึ่ง HTTP
ขอที่เราจะเห็น ระยะเวลาบางส่วน
ตอนนี้บางทีมันอาจจะไม่มาก
อาจจะเป็นเพียง 20 มิลลิวินาที
อาจจะเป็น 200 มิลลิวินาที
>> แต่คิดว่าเกี่ยวกับหน้าเช่น Facebook, หรือซีเอ็นเอ็นหรือ Google ซึ่งมีมาก
ตัวอย่างที่มีขนาดใหญ่กว่าที่เราได้ มองที่ป่านนี้
หน้าเว็บเหล่านั้นอาจมีหลายสิบของไฟล์ แต่ละที่อาจจำเป็นต้องใช้
การดาวน์โหลดไฟล์
ดังนั้นสิ่งที่สามารถเกิดขึ้น เริ่มชะลอตัวลง
>> และโดยเฉพาะอย่างยิ่งวันนี้เมื่อเราทุกคน มีโทรศัพท์มือถือในกระเป๋าของเราและ
การเชื่อมต่ออินเทอร์เน็ตช้าลงต้อง รอมิลลิวินาทีอีกไม่กี่ไม่กี่
มิลลิวินาทีสำหรับการเพิ่มเติม ไฟล์ที่สามารถจริงจะช้า
แฝงเป็นคำที่อธิบายถึง ชนิดของการรอว่าคุณมีที่คุณ
พบเมื่อการรอคอย ชิ้นส่วนของข้อมูลบางส่วน
>> แต่มีอัพไซด์
ดังนั้นจึงไม่เรียงลำดับของทั้งหมด -
จริง ๆ แล้วมันเป็นบิตของกระดานหกที่นี่
ข้อเสียในขณะนี้ แต่สิ่งที่เบราว์เซอร์สามารถทำได้ หากพวกเขากำลังสมาร์ทเพื่อที่จะหลีกเลี่ยง
ต้องขอ styles.css เดียวกัน ยื่นอีกครั้งสามารถที่จะทำอะไร
>> แคชมัน
ดังนั้นแคช -
C--C-H-E -
โดยทั่วไปหมายถึงที่นี่เพียงเพื่อประหยัด ไฟล์ที่คุณร้องขอเป็นครั้งแรกและ
จากนั้นตรวจสอบแคชของคุณมัน
ตรวจสอบที่คุณกำลังจัดเรียงของภาชนะที่เก็บ และถ้าคุณมีอยู่แล้ว
สำเนาของ styles.css แม้ว่าบางอื่น ๆ หน้า-p ชุดหรือเว็บไซต์ใด ๆ
ขอให้มันอีกครั้งเพียงเพื่อให้ ผู้ใช้ที่สำเนาแคชเดียวกัน
ไม่รำคาญร้องขอ
>> ข้อเสียมี แต่เป็นบางส่วนของคุณ ได้สะดุดในพีชุด
ถ้าคุณทำการเปลี่ยนแปลงบนเซิร์ฟเวอร์และ คุณกลับไปยังเบราว์เซอร์ไปและคุณ
โหลดเบราว์เซอร์บางครั้งไม่ คุณชอบและไม่รำคาญ
อีกครั้งการดาวน์โหลดไฟล์ของคุณ styles.css เพราะมาในสิ่งที่มีราคาต่อรอง
ที่รูปแบบเหล่านี้ว่า Facebook ใช้ กำลังจะเปลี่ยนชั่วโมงชั่วโมงหรือ
ไปในแต่ละวัน
มันต่ำสวย
พวกเขาอาจมีการเปลี่ยนแปลงอยู่ตลอดเวลา แต่ไม่ได้ โดยนาทีหรือชั่วโมง
>> ดังนั้นเคล็ดลับเพียง FYI เว็บเมื่อทำ การพัฒนามักจะค้าง
เปลี่ยนที่สำคัญสำหรับตัวอย่างและจากนั้นคลิก โหลดในเบราว์เซอร์ของคุณและจะว่า
มักจะบอกโหลดเบราว์เซอร์ ทุกอย่างแม้กระทั่งถ้าคุณมีอยู่แล้ว
มันอยู่ในแคช
ดังนั้นอีกครั้ง upsides และข้อเสีย, แต่ทั้งหมดของพวกเขา
ออกแบบได้ในที่สุดการตัดสินใจ
>> ดังนั้นตอนนี้เราไม่ได้เพียงแค่ จบเรื่องที่นี่
ถ้าตอนนี้ผมกลับมาและกลับมาและกลับไป ย้อนกลับไปเราเริ่มที่จะแนะนำไม่ได้เป็นเพียง
HTML, PHP แต่
ดังนั้นในแง่ของคนธรรมดาสิ่งที่ PHP ไม่ให้เราทำอย่างไร
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: มีอะไรที่
>> ผู้ชม: แนะนำตรรกะ เป็นรหัส
>> DAVID ลัน: ใช่แนะนำ ตรรกะในรหัสของคุณ
ดังนั้นจึงเป็นภาษาการเขียนโปรแกรมจริง ด้วยลูปและตัวแปรและ
ฟังก์ชั่นและเงื่อนไขและทุก สิ่งที่เราได้รับใช้ทางด้านหลัง
เมื่อตั้งแต่เริ่มต้น
และ PHP เราได้เห็นสามารถใช้ ทั้งที่บรรทัดคำสั่ง - มัน
ไม่จำเป็นต้องมีสิ่งที่จะทำ กับเว็บแม้ว่าที่
จริงๆต้นกำเนิดและสิ่งที่มันมีแนวโน้มของ จะเป็นสิ่งที่ดีที่และเอื้อต่อการ -
แต่คุณสามารถใช้ PHP เพียงโดยธรรมชาติ ความจริงที่ว่าจะมีการพิมพ์ ()
ฟังก์ชั่นและ printf () ฟังก์ชันที่ หรือก้อง () ฟังก์ชัน
มีอัดแน่นของวิธีที่เป็นคุณ สามารถพิมพ์ข้อความด้วย PHP
>> ดังนั้นคุณสามารถใช้โปรแกรมนี้ ภาษาในการส่งออกว่า
สิ่งที่เรากำลังพูดคุยเกี่ยวกับก่อนที่จะ
คุณสามารถสร้างแบบไดนามิก HTML ของคุณ
อาจจะไม่ทั้งหมดของมัน
บางทีคุณอาจจะยากสิ่งรหัสเช่น ส่วนหัวและส่วนท้ายและโลโก้
และแผ่นสไตล์ของคุณ และทุกที่
แต่สำหรับสิ่งที่ต้องการพีตั้งเจ็ด ที่คุณกำลังจัดการกับหุ้นและ
การแสดงผลงานของผู้ใช้ซึ่งเป็น จะเปลี่ยนแบบไดนามิกที่คุณสามารถ
ก็ใช้ PHP และตรรกะจะช่วยให้ คุณเป็นภาษาเขียนโปรแกรมที่จะ
เอาท์พุทแบบไดนามิกย่อย ของหน้า
>> ดังนั้นเมื่อคุณพูดคุยเกี่ยวกับเว็บไซต์แบบไดนามิก หรือการเขียนโปรแกรมเว็บที่
สิ่งที่คุณกำลังพูดถึงจริงๆ
การใช้ภาษาเช่น PHP หรือสิ่งที่ ที่เรียกว่างูหลามหรือทับทิมหรือ Java หรือ
ยังภาษาอื่น ๆ ในการสืบค้นฐานข้อมูล บ่อยหรือเซิร์ฟเวอร์อื่นและ
แล้วคายออก HTML แบบไดนามิก
>> ตอนนี้ผลที่สุดเป็นกันเป็น ที่ HTML ของเว็บไซต์มากที่สุด
รวมทั้งพีตั้งเจ็ดของคุณอาจจะเป็น จะเป็นระเบียบมากถ้า
คุณมองไปที่แหล่งที่มา รหัสในเบราว์เซอร์
นั่นไม่ใช่เรื่องใหญ่
ณ จุดนี้เมื่อเราดูแลเกี่ยวกับ สไตล์เราดูแลเกี่ยวกับ
สิ่งที่คุณเขียน
เราจะไม่สนใจเกี่ยวกับสิ่งที่ ว่าสิ่งที่ออกรหัสของคุณ
จึงไม่ต้องกังวลเกี่ยวกับการเยื้อง นี่ถ้าเป็น PHP ที่
สิ่งที่จริงการแสดงผล
หลังจากที่ทุกเบราว์เซอร์จะไม่สนใจ และมนุษย์จะไม่ได้มอง
ที่แหล่งที่มาต่อไป
เราพนักงานตัวอย่างเช่นจะ จะดูที่ PHP ของคุณ
>> เพื่อให้ฉันให้ตัวอย่างรวดเร็วในขณะนี้ ว่าทำไมคนนี้อาจจะมีประโยชน์
ดังนั้นตรงไปตรงมาผมจำไม่ได้แล้ว ทุกครั้งที่ผมใช้ C ที่จะแก้ปัญหาใน
โลกแห่งความจริง
มันอาจจะอยู่ในโรงเรียนที่จบการศึกษาเมื่อ ผมจำเป็นต้องมีการใช้ภาษาที่
เป็นระดับที่ค่อนข้างต่ำและให้ฉัน โอกาสที่จะทำบางสิ่งบางอย่างที่สูงมาก
การปฏิบัติที่จะช่วยจริงๆมากที่สุดเท่าที่ซีพียู รอบเท่าที่จะทำได้ในส่วนใหญ่
เพราะผมใช้ชุดข้อมูลขนาดใหญ่ และวงจร CPU ทุกนับ
และตรงไปตรงมาแม้จะอยู่ในสิ่งที่ต้องการโทรศัพท์ วันนี้และอุปกรณ์อื่น ๆ
ที่คุณไม่ค่อนข้างมีมากที่สุดเท่าที่ หน่วยความจำและคุณไม่ค่อนข้างมีฐานะ
CPU มากโดยใช้ภาษาได้เร็วขึ้น ยังคงเป็นที่น่าสนใจ
>> แต่ในโลกแห่งความเป็นจริงเมื่อคุณเพียงแค่ ต้องการที่จะโยนโปรแกรมบางอย่างร่วมกันเพื่อ
วิเคราะห์ข้อมูลบางอย่างหรือที่คุณได้เก็บรวบรวม ทั้งกลุ่มสมาชิกเพื่อ
บางกลุ่มนักเรียนและคุณต้องการมาก ได้อย่างรวดเร็วโดยอัตโนมัติการส่งอีเมล์
หนึ่งโดยหนึ่งเพื่อให้ทุกคนที่ จดทะเบียนที่คุณจะเข้าถึงสำหรับ
ภาษาระดับที่สูงขึ้น กว่า C จึงจะพูด
บางอย่างเช่น PHP หรืองูหลามหรือทับทิม หรือครึ่งโหลคนอื่น ๆ ที่มีอยู่
วันนี้
แต่ทั้งสามน่าจะเป็น อินเทรนด์มากที่สุดตอนนี้
>> และสิ่งที่หมายถึงนี้คือที่คุณสามารถเปิด ขึ้นโปรแกรมแก้ไขข้อความเช่น Gedit หรือ
อะไรอื่นมากที่สุดแล้วเพียงแค่เริ่มต้น การเขียนโค้ดโดยไม่ต้องกังวล
เกี่ยวกับการรวบรวมโดยไม่ต้อง จริงๆต้องกังวลเกี่ยวกับการจัดการหน่วยความจำ
การรักษาในใจว่าที่น้อย ความฉาบฉวยในที่สุดก็จะกลับมา
ที่จะกัดคุณถ้าชุดข้อมูลที่ได้รับ ขนาดใหญ่หรือมีปัญหาที่ได้รับใหญ่
แต่สิ่งนี้หมายความว่า เราเป็นดังต่อไปนี้
>> ให้ฉันไปข้างหน้าและเรียกใช้สะกด จากปัญหาการตั้งหก
ดังนั้นนี่คือการดำเนินการตาม Trie ที่ของฉัน ที่ผมนำมาใช้ในขนาดใหญ่
คณะกรรมการดำเนินการที่ฉันไม่ได้เป็นอย่างดี
เราจะกลับมาในเวลาหนึ่งสัปดาห์และ มายังผู้ที่ไม่สิ้นสุดบนยอด
กระดานใหญ่ที่บรรยายครั้งสุดท้ายของเรา
แต่ตอนนี้ให้ฉันไปข้างหน้าและเพียงแค่ ทำงานแก้ปัญหาของฉันในข้อความและเราจะทำ
คิงเจมส์ไบเบิลและที่นี่เราไป
>> ดังนั้นผู้ที่มีทั้งหมดของการคาดคะเน คำที่สะกดผิดออกจาก
คิงเจมส์ไบเบิล
และการดำเนินการของฉันเอา ครึ่งหลังทั้งหมด
จึงไม่เลวร้ายเกินไปเกี่ยวกับเรื่องนี้ คอมพิวเตอร์โดยเฉพาะอย่างยิ่ง
แต่คิดว่าเท่าไหร่ รหัสฉันได้เขียน
คิดว่าวิธีการรหัสที่คุณต้องเขียน
คิดจำนวนชั่วโมงที่คุณใช้ใน D-ห้องโถงหรือหอพักของคุณหรือที่ใดก็ตาม
การเข้ารหัสขึ้นจริงการแก้ปัญหาที่
>> ดีถ้าฉันจะมีระดับที่สูงขึ้น ภาษาเช่น PHP, จดบันทึก
สิ่งที่ฉันสามารถทำอะไรที่นี่
ครั้งแรกคิดว่านี้เป็นแทน รหัสการกระจายของคุณ
นี้เป็นไฟล์ที่เรียกว่าสะกด
มันสามารถเป็นส่วนหนึ่งของวันนี้ รหัสการกระจาย
และฉันจะโบกมือของฉันที่มากที่สุด รายละเอียด แต่นี้เป็นจริง
ตัวอย่างที่น่าสนใจของวิธี คุณอาจพอร์ตภาษา
เช่น C ไปยัง PHP
แท้จริงฉันเปิดสองหน้าต่างข้อความ อย่างใดอย่างหนึ่งกับรุ่น C ของฉัน speller.c,
และฉันเพิ่งเริ่มต้นในการแปลของฉัน มุ่งหน้าไปยัง PHP และพิมพ์ออกมาใช้
ฟังก์ชั่นเทียบเท่าที่ใกล้เคียงที่สุด
>> ดังนั้นบางสิ่งเหล่านี้จะแตกต่างกัน
เราเห็นครั้งสุดท้ายที่ PHP ไม่ได้ใช้ รวมอยู่ในค่อนข้างวิธีเดียวกัน
จะใช้ต้องใช้โดยทั่วไปจะมี แต่ รวมถึงการไม่อยู่
กำหนดเป็นเพียงเล็กน้อยที่แตกต่างจาก # กำหนดใน C แต่ที่
วิธีการที่เราทำอย่างต่อเนื่อง
$ argc ปรากฎอยู่ใน PHP ดังนั้นเราจึงได้เห็นว่าก่อน
เหล่านี้เป็นเพียงตัวแปรทั้งหมด ซึ่งเริ่มต้นด้วยสัญญาณดอลลาร์
จำเหล่านี้เป็นเพียงพวง จุดลอย
>> ดังนั้นเรื่องยาวสั้นคุณจะยินดีต้อนรับเข้าสู่ พลิกนี้ถ้าอยากรู้อยากเห็นนี้เป็น
เกือบแปลงสายสำหรับสายของ รุ่น C ของ speller.c เป็น PHP
และคุณสามารถทำเช่นนี้อีกครั้งสำหรับ ครึ่งโหลภาษาอื่น ๆ
>> แต่สิ่งที่น่าสนใจคือ
หรือสิ่งที่ตรงไปตรงมาซึ่งทำให้หมดกำลังใจ เป็นแบบนี้
ให้ฉันไปข้างหน้าและพิมพ์เกี่ยวกับ dictionary.php และเรียกร้องว่าฉัน
จะไปข้างหน้าและกลับมาดำเนินการ ปัญหาที่นี่ตั้งหก
>> จึงขอเสนอว่าในครั้งแรกนี้ ไฟล์ที่จะดำเนินการใน
PHP เพื่อให้ฉันเปิดป้ายของฉันเช่นนั้น
ผมขอให้ตัวเองทั่วโลก ตัวแปร $ ขนาดได้รับเป็นศูนย์
และฉันจะให้ ตัวเองตารางแฮช
ผมจะใช้ตารางแฮชสำหรับสิ่งนี้
ฉันจะประกาศตารางแฮชวิธีการใน PHP?
ทำ
ตกลง
>> วงเล็บเปิดเพื่อให้วงเล็บใกล้เคียงแสดงให้เห็นถึง สิ่งที่ใน PHP, ในขณะที่เราได้เห็น?
อาร์เรย์ แต่อาร์เรย์ที่สามารถ เป็นอาเรย์
อาเรย์เป็น โครงสร้างข้อมูลที่
คีย์ร่วมที่มีค่า
>> ขณะนี้ในการจัดทำดัชนีตัวเลขง่าย อาร์เรย์คีย์เหล่านั้นคืออะไร
ศูนย์หนึ่งสองสามใช่มั้ย?
โรงเรียนเก่าสิ่งที่กลับมาจาก C. แต่ก็สามารถ นอกจากนี้ยังมีสายเช่น foo และบาร์
หรือแมกซ์เวลหรือสตริงดังกล่าว
เพื่อให้สามารถใช้ประโยชน์จากการที่ ในเวลาเพียงสักครู่
>> ให้ฉันไปข้างหน้าและประกาศ ฟังก์ชั่นเช่น -
ขอทำโหลด () เป็นครั้งแรก
ดังนั้นภาระ () ฟังก์ชัน
และ PHP เป็นเพียงเล็กน้อยที่แตกต่างกันในการที่ คุณอย่างแท้จริงประเภทฟังก์ชั่น แต่คุณ
ไม่ต้องพิมพ์ชนิดกลับ
ฉันจะไปข้างหน้าและบอกว่า โหลด (ฟังก์ชัน) ควรใช้เวลาในการ
อาร์กิวเมนต์ $ พจนานุกรมเพียง เช่นรุ่น C ได้
ที่ฉันทำว่าจากหน่วยความจำ
>> และผมเสนอว่าผม จะทำเช่นนี้
ฉันก็จะทำ foreach
ฉันจะเรียกใช้ฟังก์ชันที่เรียกว่า ยื่น () ผ่านในชื่อของว่า
ไฟล์ที่เป็นตัวแปร $ $ พจนานุกรมเป็นคำ
แล้วภายในของฉันสำหรับวงที่นี่ผม จะไปข้างหน้าและเก็บไว้ในของฉัน
ตารางที่ $ $ คำที่ได้รับจริง
ทำ
โอ้รอสักครู่
ทำ
ตกลง
>> ที่มีฟังก์ชั่นโหลด () พูดใน PHP
ตอนนี้ทำไมไม่ทำงานที่?
และฉันชนิดของการโกงที่นี่
>> ดังนั้นหนึ่ง, foreach เราเห็น ในเวลาสั้น ๆ เป็นครั้งสุดท้าย
มันก็หมายความว่าคุณสามารถย้ำกว่า อาร์เรย์โดยไม่ต้องรบกวนด้วยครับ
และ n และบวกบวกและทุกที่
พจนานุกรมเป็นหลักสูตรที่ชื่อไฟล์ สิ่งที่ต้องการขนาดใหญ่หรือขนาดเล็กสอง
พจนานุกรมที่เราใช้ครั้งสุดท้าย
ไฟล์ฟังก์ชั่นที่เปิดขึ้นข้อความ ไฟล์อ่านมันในบรรทัดและ
มือคุณสำรองอาร์เรย์ขนาดใหญ่ แต่ละองค์ประกอบที่มีคือ
เส้นจากแฟ้มที่
เพื่อให้การรวมกันของ fopen และ fread และห่วงขณะและเปลี่ยนชื่อ,
และทุกที่
สุดท้ายเป็นคำก็หมายความว่า ตัวแปรที่ฉันจะมีการเข้าถึง
ซ้ำในวงนี้ทุกคน
>> ดังนั้นในระยะสั้นนี้เป็นหนึ่งในสายการบินที่นี่หมายความว่า เปิดไฟล์ที่มีชื่ออยู่ใน
พจนานุกรมตัวแปรย้ำกว่า มันทีละบรรทัดและเวลาที่คุณได้รับในแต่ละ
สายเก็บในคำที่เรียกว่าตัวแปร แล้วทำอะไรกับคำว่า
อะไรที่ฉันต้องการทำอะไร?
ผมต้องการที่จะใส่คำลงในตารางแฮชของฉัน
>> ดีฉันสามารถใส่บางสิ่งบางอย่างในของฉัน ตารางแฮชเช่นเดียวกับในภาษา C
การใช้วงเล็บ
นี่คือชื่อสำหรับตารางแฮชของฉัน
ฉันจะเป็นดัชนีกัญชาที่ ตารางสถานที่นี้
จึงไม่ยึดศูนย์ไม่ได้เป็นหนึ่งวงเล็บ
ยึดบางสิ่งบางอย่างไม่ได้นำมาอ้างอ้าง สิ่งที่คำที่เป็น
และเช่นเดียวกับที่คุณอาจมีในของคุณ ตาราง Trie กัญชาทำงานคุณเพียงแค่เก็บ
ได้อย่างมีประสิทธิภาพบูลีนโดยปริยาย หรืออย่างชัดเจน
ทำ
ผมเก็บค่าที่แท้จริง
>> ขณะนี้มีสองสิ่งที่คน ผมตัดมุมเมื่อที่นี่
เทคนิคมีความเป็นไปได้ บรรทัดใหม่ที่น่ารำคาญ / n, ในตอนท้ายของ
แต่ละคำพูดเหล่านี้
ดังนั้นฉันอาจจะเรียกฟังก์ชัน PHP สับที่เรียกว่า () ซึ่งจะ
ค่อนข้างอักษรสับปิดที่
และที่จริงผมต้อง ทำสิ่งหนึ่งที่อื่น ๆ
ฉันอาจจะเพิ่มขึ้นในแต่ละขนาด ซ้ำดังนั้นฉันติดตาม
ทั่วโลกจากสิ่งที่มันเป็น
และตรงไปตรงมาและนี่คือหนึ่งใน ด้าน stupider ของ PHP ถ้าคุณ
โดยใช้ตัวแปรทั่วโลกคุณจะต้อง พูดอย่างชัดเจนว่าคุณเป็น
ดังนั้นฉันจะพิมพ์จริงในโลก ขนาด $ $ ตารางทั่วโลกและตอนนี้
ฟังก์ชั่นของฉันเสร็จสมบูรณ์
>> ดังนั้นไม่ได้ค่อนข้างง่ายเหมือนก่อน แต่ อาจจะใช้เวลาน้อยกว่า C
รุ่นอาจจะ?
ตกลง
>> ดังนั้นตอนนี้เราจะดำเนินการตรวจสอบ () ฟังก์ชัน
ขอดูว่านี้อย่างน้อยเอา ชั่วโมงที่สิ้นสุดว่ามันจะพาเราไปใน C. ดังนั้น
ให้ฉันไปข้างหน้าและประกาศ ตรวจสอบในขณะที่ฟังก์ชั่น
จะใช้เวลาในการโต้แย้งคำซึ่งเป็น จะมาจากการสะกด
และฉันก็จะตรวจสอบว่า ดังต่อไปนี้ isset ตารางตัวแปร
Strtolower วงเล็บของคำ -
ให้ความสมดุลของทุกวงเล็บของฉัน -
แล้วกลับจริง
อื่น ๆ -
นั่นก็เป็นเรื่องยาก ส่วนหนึ่งของโครงการนี​​้
อื่นกลับเท็จ
ทำ
ที่ตรวจสอบ ()
>> ตอนนี้ทำไมงานนี้?
ดีหนึ่งฉันผ่านในคำ, ซึ่งเป็นสตริง
สองผมตรวจสอบภายในของกัญชา ตารางที่เรียกว่าตาราง $
ผมบังคับให้มันเป็นตัวพิมพ์เล็กโดยการเรียก ฟังก์ชั่นที่คล้ายกันค่อนข้าง ToLower () ใน
C แต่นี้จะทั้งคำ, ไม่ได้เป็นตัวอักษรตัวเดียว
และหากที่มีการตั้งค่าในคำอื่น ๆ ที่มี คือชุดมูลค่าในคำอื่น ๆ ,
ถ้ามันเป็นความจริงแล้วใช่ นี้เป็นคำที่
เพราะผมวางไว้ที่นั่นกับโหลด ()
และหากไม่ได้ที่ฉันจะกลับเท็จ
>> ตอนนี้คนอื่น ๆ ได้ง่าย
ขนาดฟังก์ชั่น () ฉันจะทำเช่นนี้?
ฉันเป็นหลักจะกลับมาขนาด $
แต่ในทางเทคนิคต้อง ทำเช่นนี้สิ่งที่น่ารำคาญ
และที่จริงขึ้นได้ยินฉันถูกตัด มุมหนึ่งมากเกินไป
ผมต้องทำตาราง $ ทั่วโลก
>> แต่ที่ถูกกล่าวว่าขน)
ยกเลิกการโหลด () เป็นที่น่าตื่นตาตื่นใจ
ทำงานขน ()
ฉันต้องการที่จะใช้ขน ()?
ทำ
ตกลง
>> ดังนั้นขน (), การจัดการหน่วยความจำ ได้รับการดูแลอย่างสมบูรณ์ของคุณใน
บางสิ่งบางอย่างเช่น PHP และมาก ของภาษาในระดับสูง
ดังนั้นนี้เป็นที่น่าตื่นตาตื่นใจ
ชอบทำไมนรกพวกเราใช้เวลาที่ผ่านมา แปดสัปดาห์บวกกับการเขียน C
เห็นได้ชัดว่าช้าจริงๆเวลาจริงๆ ปัญหาการบริโภคที่มีหลายสิบชั่วโมง
ของการทำงานภายใต้เข็มขัดของเราหรือไม่
>> ดีสำหรับสิ่งหนึ่งนี้อาจทำงาน ที่ดีสำหรับโปรแกรมขนาดเล็ก
แน่นอนมันเร่งความเร็วขึ้นของฉัน เวลาในการพัฒนา
แต่เรามาดูสิ่งที่เกิดขึ้น ในโลกแห่งความจริง
>> ให้ฉันไปลงในไดเรกทอรีนี้ ในหน้าต่าง terminal
มีสะกดว่า
และสังเกตเห็นเป็นกันและคุณอาจ ได้พบชุดปัญหานี้ใน
หกหรือเจ็ดชุดปัญหา
คุณไม่ต้องอย่างเคร่งครัด จบไฟล์ PHP กับ. PHP
หากคุณใส่เส้นเช่นคนแรกที่ ด้านบนมากว่าเป็นสายพิเศษ
ของไวยากรณ์ที่เป็นหลักหมายถึงการหา โปรแกรมที่เรียกว่า PHP และใช้มันเพื่อ
ตีความแฟ้มนี้
ดังนั้นตอนนี้ไม่มีใครรู้ว่า ฉันกำลังทำงานโปรแกรม PHP
ฉันสามารถเรียกใช้มันเหมือนกับว่ามัน บางสิ่งบางอย่างที่ถูกรวบรวมใน C.
>> แต่นี่คือสิ่งที่
ที่จริงเราทำเช่นนี้อีกครั้ง
Dropbox/pset6 /
มีสะกดว่า
ตกลง 0.44 วินาที
มันได้เร็วขึ้นในเวลานี้
>> ตอนนี้ขอไปเป็น PHP รุ่น
สัมผัสที่ดี
แต่เพียงแค่คิดว่าเวลาเท่าใด ผมบันทึกไว้ที่เวลาทำงาน
ตกลง
>> ดังนั้น 3.59 วินาทีซึ่งอันที่จริง ไม่ได้เสียงที่ถูกต้องอย่างใดอย่างหนึ่ง
แต่นั่นเป็นเพราะเรื่องยาวสั้น เมื่อคุณพิมพ์ออกเป็นจำนวนมาก
ของสิ่งที่หน้าจอว่า ตัวเองช้าลง
สิ่งที่มันจริงๆเอาซีพียูใน เครื่องใช้เป็น 3.59 วินาทีใน
ความคมชัดที่ C ซึ่งเกิด 0.44 วินาทีมากที่สุดเมื่อเร็ว ๆ นี้
ที่จริงคำสั่งของ ขนาดที่แตกต่างกัน
>> เพื่อที่จะได้ราคาที่มาจากไหน
มันเป็นไปอย่างช้ามากทำไม?
ทำไม PHP จึงดำเนินการไม่ดี
แดเนียล?
>> ผู้ชม: คุณไม่ได้จริงๆ ใช้ตารางแฮช
>> DAVID ลัน: ผมไม่ได้จริงๆ ใช้ตารางแฮช
ดังนั้นผมชนิดของได้
ดังนั้นจึงเป็นอาเรย์
ส่วนใหญ่ถ้าคนที่เป็น PHP สมาร์ทจริงๆพวกเขานำมาใช้ภายใต้
เครื่องดูดควันตารางแฮชที่เกิดขึ้นจริงดำเนินการ ในสิ่งที่ต้องการ C หรือ C + +
แต่
ใช่
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: ใช่
เพื่อให้แต่ละฟังก์ชั่นที่ผมเขียนตอนนี้ - ที่จริงคุณสามารถพูดได้ว่าอีกครั้ง
ดังน้อย
>> ผู้ชม: แต่ละฟังก์ชั่นที่ รวมคุณมีเต็มรูปแบบมากขึ้น
ความจุกว่า -
>> DAVID ลัน: เพื่อให้เป็นจริงมาก
มีค่าใช้จ่ายมากขึ้นว่าเราเป็น ไม่ได้จริงๆเห็นโดยเน้นเฉพาะใน
dictionary.php ที่ฉันเพิ่งเขียน
ในทางตรงกันข้ามมีล่ามทั้ง ไปในพื้นหลัง
อันที่จริงเมื่อฉันวิ่งโปรแกรมนี้มัน ไม่ได้ใช้ศูนย์รวบรวมและคนที่
ออกแบบมาสำหรับ Intel CPU ของฉัน
แต่ก็ทำงานทีละบรรทัด PHP รหัสที่มีลักษณะตรง
เหมือนที่เราพิมพ์มัน
ดังนั้นเมื่อใดก็ตามที่คุณใช้ แปลภาษาคุณ
จริงจะจ่ายในราคานี้
มันจะใช้เวลาในการอ่าน ด้านบนไฟล์ของคุณไปที่ด้านล่างซ้ายไป
ที่เหมาะสมและจากนั้นดำเนินการแต่ละ สายอีกครั้งและอีกครั้ง
>> ตอนนี้ในความเป็นจริงโดยเฉพาะอย่างยิ่งในเว็บ คุณจริงสามารถเร่งกระบวนการนี​​้
โดยแคชผลของ โค้ด PHP ถูกตีความ
และที่ทำให้ความรู้สึกในเว็บเพราะ ถ้าคุณยังไม่ได้ใช้งานอย่างใดอย่างหนึ่งเช่น
ผมมาที่นี่ แต่ 1,000 หรือ 10,000 คนแล้ว อาจจะเป็นครั้งแรกของไฟล์
เข้าถึงมันช้า แต่หลังจากนั้น มันได้เร็วขึ้นมาก
>> แต่นี้ก็อีกครั้งการปิด
และสำหรับสิ่งที่ต้องการข้อมูลการวิจัย การตั้งค่าหรือแม้กระทั่งบางสิ่งบางอย่างขนาดใหญ่เช่น
นี้ผู้ใช้ของคุณจะในที่สุด เริ่มรู้สึกว่าการชะลอตัว
>> ดังนั้นในระยะสั้นตีความภาษา เป็นอย่างมากในสมัย​​ที่นิยมมากและ
ตรงไปตรงมาอาจจะเป็นภาษาที่คุณ ควรเข้าถึงสำหรับเมื่อแก้ปัญหา
ภายหลัง CS50
แต่ตระหนักเท่าใดคุณจริงๆ การได้รับภายใต้ประทุน
จริงๆที่หลายสัปดาห์ที่ผ่านมาในกัญชา ตารางและต้นไม้และพยายาม
ซึ่งถูกนำมาใช้จริงในที่สุด ใช้สิ่งที่ชอบวงเล็บเปิด
วงเล็บเหลี่ยมซึ่งเราสามารถทำได้ในขณะนี้ สุดซึ้งจะได้รับ
>> ดังนั้นลองมาดูตอนนี้ ในบริบทเว็บนี้
และที่ผมกล่าวถึงเป็นครั้งสุดท้ายที่มี พวงของ superglobals ใน PHP ที่
ไม่เกี่ยวข้องจริงๆ ที่บรรทัดคำสั่ง
พวกเขากำลังที่เกี่ยวข้องมากขึ้นในบริบท ของใช้ PHP ในบริบทเว็บ
ดังนั้น PHP ทำงานบนเว็บเซิร์ฟเวอร์ในการสั่งซื้อ ในการสร้างสิ่งเช่น HTML
>> และเรามองไปที่ $ _GET และ $ _POST และ นั่นคือสิ่งที่ผู้ใช้โดยอัตโนมัติ '
ท่านจะสิ้นสุดลงเพียง แต่ถ้าคุณส่ง รูปแบบไฟล์ที่ลงท้ายด้วย. php บนเว็บ
เช่นเครื่องเซิร์ฟเวอร์
แต่ขอดูสั้นที่ $ _COOKIE และ $ _SESSION
>> ในแง่คนธรรมดาสิ่งที่เป็นคุกกี้เป็น คุณเข้าใจในบริบทของ
โดยใช้เว็บหรือไม่
>> ผู้ชม: ไฟล์ในคอมพิวเตอร์
>> DAVID ลัน: ใช่
มันเป็นไฟล์บนคอมพิวเตอร์ของผู้ใช้ ปลูกโดยเว็บไซต์ใด
คุณเกิดขึ้นเพื่อเข้าชม
ดังนั้นเมื่อคุณไปที่ Facebook, เมื่อคุณไป การ bankofamerica.com เมื่อคุณไป
ที่ google.com, เมื่อคุณไปที่เกือบ ๆ เว็บไซต์ในโลกวันนี้
รวมทั้ง cs50.net คุกกี้จะปลูก บนเครื่องคอมพิวเตอร์ของคุณซึ่งเป็น
ทั้งค่าที่เก็บไว้ในหน่วยความจำของคุณใน คอมพิวเตอร์ในหน่วยความจำเบราว์เซอร์ของคุณหรือ
บางครั้งแน่นอนไฟล์ที่เก็บไว้ ในฮาร์ดดิสก์ของคุณ
>> และสิ่งที่จะถูกเก็บไว้ในแฟ้มที่ ไม่ได้เป็นชื่อผู้ใช้ของคุณไม่ได้ของคุณ
รหัสผ่านมักจะไม่ได้สิ่งที่ ที่มีความสำคัญเว้นแต่เว็บไซต์จะไม่ให้
ที่ดีกับการรักษาความปลอดภัยของพวกเขา แต่ มันเป็นตัวระบุที่ไม่ซ้ำกันในหมู่ใหญ่
สิ่งอื่น ๆ
มันเป็นจำนวนสุ่มขนาดใหญ่วางอยู่บนของคุณ คอมพิวเตอร์ แต่คุณสามารถคิดว่าเป็น
การเรียงลำดับของการประทับมือเสมือนเช่นจาก สโมสรหรือสวนสนุกบางอย่างที่
จะช่วยให้พนักงานเจ้าของที่ บริการที่ต้องจำไว้ว่าคุณเป็นใคร
ดังนั้นถ้าจำนวนสุ่มใหญ่เป็นเหมือน 12345678 แต่ที่เห็นได้ชัด
ไม่สุ่มเกินไปคิดว่าของที่เป็น ประทับมือที่เมื่อคุณเยี่ยมชม
facebook.com เป็นครั้งแรกที่พวกเขา ประทับตราตัวเลขที่อยู่ในมือของคุณ
แล้วเพราะคุณพูด ​​HTTP คุณ เป็นเบราว์เซอร์และเพราะ Facebook
เห็นได้ชัดว่าพูดเช่นเดียวกับเว็บ เซิร์ฟเวอร์ HTTP โปรโตคอลกล่าวว่า
ตลอดเวลาที่คุณมาเยี่ยมชม facebook.com ไม่ว่าจะเป็นที่สอง
ต่อมาหนึ่งชั่วโมงต่อมาในวันรุ่งขึ้น ตราบใดที่คุณยังไม่ได้อย่างชัดเจน
ออกจากระบบที่มีประสิทธิภาพ เป็นเหมือนการล้างมือของคุณ
HTTP บอกว่าคุณควรจะนำเสนอของคุณ ประทับมือทุกครั้งที่คุณ
กลับไปยังเว็บไซต์ที่
>> Facebook แล้วสิ่งที่ไม่เป็นพวกเขา มองไปที่มือที่ประทับและ
พวกเขากล่าวว่าโอ้ 123456789
ผมไม่ทราบได้อย่างรวดเร็วก่อนที่นี้ เดวิดลันในเคมบริดจ์
แมสซาชูเซต แต่พวกเขาสามารถตรวจสอบของพวกเขา ฐานข้อมูลและพูดว่าโอ้คน
บนคอมพิวเตอร์ที่มีเราปลูก 123456789 เดวิดลันจากเคมบริดจ์
แมสซาชูเซต
ขอแสดงผู้ใช้แล้วโปรไฟล์ของเขา หน้าหรือฟีดข่าวของเขา
>> แต่มีปัญหาที่นี่ถ้านี้ เป็นวิธีการที่เว็บแน่นอนทำงาน
ลองมาดูที่ตัวอย่างรวดเร็ว
ขอจริงไปที่จะบอกว่า facebook.com
แต่ก่อนที่เราจะไปที่นั่นให้ ฉันไปข้างหน้าและเปิด Chrome ของ
ตรวจลงที่นี่
ให้ฉันมองไปที่แท็บเครือข่าย
และตอนนี้ขอไปข้างหน้าและพิมพ์ ใน https://facebook.com
และฉันทำแบบนั้นเพื่อที่เราจะไม่เห็น ทั้งหมดของการเปลี่ยนเส้นทางเหล่านั้นและของเสีย
เวลามองผ่านเหล่านั้น
ผมขอกด
>> ขวาทั้งหมด
เรามาดูกันทั้งกลุ่มของการร้องขอ
Facebook มีมา
มีทั้งกลุ่มของไฟล์ที่เป็น
และที่นี่ต่อการกล่าวถึงของฉัน ครั้งสุดท้ายที่แฝงที่
จำนวนมากของการร้องขอ
แต่คนแรกที่น่าจะเป็น ที่น่าสนใจที่สุด
>> จึงขอเลื่อนลงมาที่นี่และ ฉันจะขยายในครั้งที่สอง
นี้จะเป็นชนิดของ ระเบียบ แต่เรามาดู
Facebook จะส่ง ทั้งกลุ่มของสิ่งที่
>> แต่โอ้โฮที่น่าสนใจ
พวกเขากำลังปลูกไม่หนึ่ง แต่สี่ แสตมป์มือลงบนมือของฉันที่นี่
ตั้งค่าคุกกี้, คุกกี้ตั้ง, ตั้งคุกกี้ ตั้งคุกกี้
และมีคุณสมบัติไม่กี่ที่นี่
ทั้งหมดของพวกเขาพูดถึงบางส่วน ชนิดของหมดอายุ
และดูเหมือนว่า Facebook จะหวัง จำฉันจนกว่า 2015
เพื่อที่ว่าน่าจะใช้เวลาโดยที่ ฉันจะต้องออกจากระบบหรือพวกเขาจะเพียงแค่
โดยอัตโนมัติสมมติผม ไม่กลับมา
ดังนั้นที่จริงดี ระยะเวลา
>> และมีบางส่วนอื่น ๆ สิ่งที่เกิดขึ้นที่นี่
คุกกี้นี้ดูเหมือนจะเป็นบังคับ ลบโดยบอกว่ามันหมดอายุในปี 1970
ก่อนที่คุกกี้มีอยู่
ดังนั้นเบราว์เซอร์เป็นเพียงการไป ตกลงที่จะสรุปว่าเป็นเหมือน
ล้างประทับมือ
>> แต่ตอนนี้เมื่อเบราว์เซอร์ของฉันทำให้ ต่อมาขอ -
ให้ฉันไปข้างหน้าและทำเช่นนี้ อีกครั้งและโหลด
ตอนนี้ให้ฉันเลื่อนกลับไป คำขอด้านบนและลงไป
ที่นี่ขอส่วนหัว
แจ้งให้ทราบนี้
ดังนั้นตอนนี้ผมไม่ได้อยู่ภายใต้ส่วนหัวของการตอบสนอง แต่สังเกตเห็นมันบอกว่าส่วนหัวของคำขอ
และแจ้งให้ทราบว่าเบราว์เซอร์ของฉันเป็นส่วนหนึ่งของ ขอหลังจากตีโหลดมี
ส่งอย่างน้อยดังต่อไปนี้ ข้อมูล
ไม่ได้ตั้งค่าคุกกี้ แต่คุกกี้
ดังนั้นนี่คือเส้นส่วนหัวเพื่อให้ ที่จะพูดที่เบราว์เซอร์ของฉันคือการจัดเรียง
โดยไม่ทราบว่าของฉันมันนำเสนอ มือของฉันสำหรับการตรวจสอบของ Facebook
>> ดังนั้นคุกกี้เหล่านี้จะสามารถ นำไปใช้เพื่ออะไร
จำไว้ว่าคุณเป็นใครหรือจำได้ว่า จำนวนครั้งที่คุณได้รับมีหรือ
จริงๆอะไร
>> ดังนั้นนี่คือ counter.php
และแจ้งให้เราซูมในตัวอักษร
และทุกครั้งที่ผมโหลดหน้าเว็บนี้แจ้งให้ทราบล่วงหน้าแต่ละ ก็จำได้ว่าหลายต่อหลายครั้ง
ฉันได้รับมี
ดีที่ไม่ได้ทั้งหมดที่น่าประทับใจที่
ขอเพียงแค่ปิดแท็บนั้น และตอนนี้ให้กลับไปที่
http://localhost/counter.php
>> โอ้ที่น่าสนใจ
ก็ยังจำได้ แต่ฉันปิดแท็บ
และตรงไปตรงมาถ้าฉันปิดเบราว์เซอร์ ถ้านำมาใช้ในทางที่ถูกต้องผม
อาจจะยังคงจำได้ว่าผู้ใช้รายนี้เป็น ที่เขาหรือเธอเป็นครั้งแรกและ
เพียงครั้งเดียวที่ผมไปเป็นเมนู Chrome ซึ่ง กว่าที่นี่อยู่ที่นี่และไปที่
ประวัติศาสตร์และคลิกล้างข้อมูลการท่องเว็บ, เป็นบางส่วนของคุณอาจจะมีใน
ผ่านมาเพียงแล้วจะคุกกี้ของคุณ จริงจะลบในระหว่างเว็บ
พัฒนาการ
>> ดังนั้นถ้าเราไป -
ขอปิด Gedit ขึ้นที่นี่
และถ้าเราไปตอนนี้กับไฟล์นี้
ให้ฉันไปเป็นของเรา vhosts / localhost / สาธารณะและให้ฉันทำ
counter.php
ขอให้สังเกตว่านี้สวย โปรแกรมง่ายๆ
มันเป็นเว็บไซต์ที่ง่ายสวย
>> ดังนั้นด้านบนของไฟล์ เป็นเพียงความเห็นของ
แต่นี่เป็นสายใหม่ที่คุณอาจจะ ได้เห็นแล้วในพีตั้งเจ็ด
session_start ()
นี้เป็นสายของโค้ด PHP ที่ เป็นหลักบอกเว็บเซิร์ฟเวอร์ที่ทำให้
ให้แน่ใจว่าได้ประทับมือและทำให้ ให้แน่ใจว่าได้ตรวจสอบตราประทับมือ
นั่นคือทั้งหมดที่บรรทัดที่ไม่และมัน ไม่ทั้งหมดของกระบวนการที่สำหรับเรา
จากนั้นสังเกตเห็นฉันมีเพียงแค่ สองสาขาที่นี่
ถ้าคีย์เคาน์เตอร์ภายในนี้ ตัวแปรพิเศษที่เรียกว่า
$ _SESSION ตั้ง - ในคำอื่น ๆ ถ้ามีค่าบางอย่างมี -
ให้ของได้รับมันและเก็บไว้ในท้องถิ่น ตัวแปรที่เรียกว่า $ เคาน์เตอร์
อื่นให้กำหนด $ เคาน์เตอร์ ค่าเริ่มต้นของ 0
>> ตอนนี้ที่นี่เป็นแง่มุมหนึ่งของ PHP ที่ ทั้งพรและสาปแช่ง
PHP เป็นเลอะเทอะหน่อย
ดังนั้นในขณะที่ในซีสิ่งที่จะ ขอบเขตของเคาน์เตอร์ได้รับ
ทั้งที่นี่หรือที่นี่
>> มันจะได้รับการถูกคุมขัง ที่วงเล็บปีกกาที่
เดาอะไร
ใน PHP มันมีอยู่แม้ภายนอกของคนเหล่านั้น วงเล็บปีกกา, ที่นี่และที่นี่
และที่นี่และที่นี่และ ได้ลงมาด้านล่าง
ดังนั้นผมพูดนี้เป็นพระพรในความรู้สึก ที่คุณไม่ต้องคิดว่าเป็น
ยากที่เราได้สัปดาห์ที่ผ่านมา
แต่มันก็ยังบิตของคำสาปที่ ไม่ว่าคุณจะใช้ตัวแปรในไม่มี
PHP, อย่างน้อยในโปรแกรมเช่นนี้ มันทั่วโลกสามารถเข้าถึงได้สำหรับ
ที่ดีขึ้นหรือแย่ลง
ดังนั้นคุณต้องเก็บไว้ในใจว่าตอนนี้ ตัวแปรของคุณอาจจะไม่ได้กำหนด
คุณอาจได้กำหนดไว้พวกเขาที่อื่น
>> แต่สิ่งที่ฉันจะทำในที่สุด?
ฉันจะเก็บภายในที่ทั่วโลก ตัวแปรเป็นค่าของ
เคาน์เตอร์สำคัญผลจากการ ทำเคาน์เตอร์บวก 1
ดังนั้นนี้เป็นเพียงการคำนวณ ที่ไม่
incrementation ของเคาน์เตอร์ที่
และความจริงที่ว่าฉันจัดเก็บที่ ค่ากลับมาอยู่ในที่นี่หมายถึงการเป็น
ปรับปรุงฐานข้อมูลเป็นหลักในการ จำไว้ว่า 123456789 ผู้ใช้ที่ได้รับ
ที่นี่สองครั้ง
และเมื่อฉันทำมันอีกครั้งในครั้งต่อไปที่ผม โหลดหน้าเว็บก็จะตรวจสอบ
ประทับมือของฉันและพูดว่าโอ้ 123456789 ผู้ใช้ในขณะนี้มี
ที่นี่สามครั้ง
>> และดังนั้นสิ่งที่ภาษา PHP และที่คล้ายกัน กำลังทำอะไรสำหรับเราคือพวกเขาจะหา
วิธีการและสถานที่และนานเท่าไหร่ ในการจัดเก็บค่าในเรื่องนี้เป็นพิเศษ
superglobal
และนี้ superglobal ครั้งต่อไปที่ผม ไปที่หน้าเป็นประเภทอย่างน่าอัศจรรย์
ก่อนที่มีประชากรเต็มไปด้วยค่าที่ อยู่ที่นั่นเป็นครั้งสุดท้ายที่คุณเข้าเยี่ยมชม,
ไม่ว่าจะเป็นคนที่สองที่ผ่านมาหนึ่งสัปดาห์ ที่ผ่านมาหรือในปี 2013 และตอนนี้เรากำลังพูดถึง
เกี่ยวกับ 2015
PHP และเว็บเซิร์ฟเวอร์ดูแล ทั้งหมดของที่สำหรับคุณ
>> ผู้ชม: [ได้ยิน]
>> DAVID ลัน: ตัวแปรใน PHP เป็น เป็นหลักเสมอทั่วโลกยกเว้นกรณีที่คุณ
ประกาศให้ภายในของฟังก์ชั่น, และพวกเขาก็มีในท้องถิ่นเพื่อ
ฟังก์ชั่นเท่านั้น
แต่เพราะฉันไม่ได้เขียนใด ๆ ฟังก์ชั่นตอนนี้พวกเขาได้อย่างมีประสิทธิภาพ
ทั่วโลกตลอดทั้งไฟล์ทั้งหมดของฉันที่นี่
>> ผู้ชม: มีวิธี จะทำให้พวกเขาในประเทศ?
>> DAVID ลัน: มีผู้ใด วิธีที่จะทำให้พวกเขาในประเทศ?
โดยเฉพาะการตัดพวกเขาเข้าไปในฟังก์ชั่น
ซึ่งในรุ่นล่าสุดของ PHP คุณสามารถทำเช่นนี้กับ
ฟังก์ชั่นที่ไม่ระบุชื่อ
แต่เพิ่มเติมว่าใน บริบทของ JavaScript
แต่คำตอบสั้น ๆ คือไม่มี
คำตอบคือใช่อีกต่อไป
ไนซ์
คำถามแบบทดสอบที่ดี
ทั้งหมดขวา
>> ดังนั้นสุดท้ายหน้าตัวเองคือ จริงง่ายสวย
ขอให้สังเกตว่าเมื่อฉันออกจากโหมด PHP, จำ ว่าทุกสิ่งที่ลงนี้
ด้านล่างเป็นเพียงจะได้รับการถ่มน้ำลาย ออกดิบไปยังเบราว์เซอร์
ซึ่งเป็นดีเพราะฉันไม่ต้องการที่จะส่ง ผู้ใช้บาง HTM​​L แต่ฉันไม่ต้องการ
ปรับปรุงแบบไดนามิก HTML ที่
และเป็นหนึ่งในวิธีที่ฉันสามารถทำเช่นนี้คือการจัดเรียง ของอย่างรวดเร็วลดลงกลับเข้ามาใน PHP
โหมดการใช้เครื่องหมายวงเล็บเปิดคำถาม เครื่องหมายเท่ากับและจากนั้นการส่งออกมูลค่า
จากเคาน์เตอร์
>> หรือถ้ามีลักษณะนี้เป็นเพียงเล็กน้อยคลุมเครือนี้ เครื่องหมายเท่ากับเป็นจริงเพียงบางส่วน
น้ำตาล syntactic นี้ printf ($ เคาน์เตอร์)
แต่ตรงไปตรงมานั่นเป็นเพียงเล็ก ๆ น้อย ๆ ที่น่าเกลียด และน่ารำคาญเล็กน้อยในการพิมพ์
ดังนั้น PHP อย่างมากมีคุณลักษณะนี้ ซึ่งคุณก็สามารถพูดได้ว่ามันมากขึ้น
ชัดถ้อยชัดคำในทางเดียวกัน
>> ดังนั้นสิ่งที่เกิดขึ้นภายใต้ เครื่องดูดควัน?
Let 's รวดเร็วมองไปที่เครือข่าย แท็บที่นี่สำหรับ counter.php
และแจ้งให้เราไปข้างหน้าและเป็นคนแรก ให้ล้างคุกกี้ของคุณ
Let 's ข้อมูลการเข้าชมที่ชัดเจนตั้งแต่ จุดเริ่มต้นของเวลา
ตอนนี้ขอกลับไปกว่าที่นี่
ตอนนี้ขอโหลดหน้าเว็บใหม่
และฉันกลับมาที่ศูนย์
เพราะประทับมือของฉันได้รับการล้าง ตอนนี้ผมได้รับคุกกี้ใหม่
>> อันที่จริงถ้าฉันมองไปที่แท็บเครือข่ายและ มองไปที่ส่วนหัวของการตอบสนองที่แจ้งให้ทราบ
เครื่องใช้ไฟฟ้าที่จะส่งฉัน คุกกี้ซึ่งเป็นชื่อที่ค่อนข้าง
โดยพลการ แต่ชนิดของ เหตุผล PHPSESSID
และจะส่งฉันนี้จริงๆ จำนวนสุ่มใหญ่
มันไม่ได้จำนวนมาก
มันไม่ใช่เลขฐานสิบหกค่อนข้าง
เป็นชนิดของสตริงตัวอักษรและตัวเลขบาง แต่สันนิษฐานว่ามันสุ่ม
และนั่นคือแสตมป์มือเพื่อที่จะ พูดว่าผมหมายถึง
>> ในขณะเดียวกันถ้าฉันคลิกโหลดแล้ว ดูที่บรรทัดที่สองนี้สำหรับฉันที่สอง
ขอแจ้งให้ทราบว่าตอนนี้คำขอของฉัน ส่วนหัวรวม PHPSESSID เท่ากับนี้
ไม่ได้ชุดคุกกี้, คุกกี้เพียง แต่
และที่นำเสนอเบราว์เซอร์ของฉัน ของแสตมป์มือของฉัน
>> ดังนั้นตอนนี้เป็นทีเซอร์และเราจะพูดคุยมากขึ้น เกี่ยวกับเรื่องนี้ในสัปดาห์หรือดังนั้น แต่
นี้ไม่ในสิ่งที่ทำให้คุณ ช่องโหว่บัญชี Facebook ของคุณ
เสี่ยงและที่อื่น ๆ เช่น บัญชีเสี่ยง
>> ผู้ชม: ถ้าใครมีคุกกี้ของคุณ
>> DAVID ลัน: ใช่ถ้ามีคน มีคุกกี้ของคุณ
ผมหมายถึงอย่างแท้จริงเหมือนบางท่าน อาจจะมีความพยายามที่เหมือนสโมสรหรือ
สวนสนุกถ้าคุณพยายามที่บางสิ่งบางอย่าง เช่นนี้เพื่อคัดลอกแสตมป์แม้ว่า
ย้อนกลับไปยังมือของบุคคลอื่น, และแล้วเขาหรือเธอจะแสดงเป็น
ของตัวเองถ้าจริงจะดู เหมือน 123456789 แล้วเว็บ
เซิร์ฟเวอร์ที่เห็นได้ชัดก็จะ วางใจได้ว่าผู้ใช้ที่เป็นคุณ
>> และนี่คือความจริงพื้นฐาน ภัยคุกคามทุกครั้งที่คุณใช้คุกกี้ใด ๆ
เพราะถ้ามีคนเพียงเพื่อที่จะตบตา พูดตัวเลขของคุณคุกกี้สิ่งที่มัน
คือไม่ว่าจะโดยการคัดลอกอย่างแท้จริง โดยดูที่เครื่องคอมพิวเตอร์ของคุณ
และเป็นเหมือนตกลง
คุกกี้เดวิดเป็น JJ3JIK และอื่น ๆ และพวกเขาก็ไม่ฉลาดพอที่จะรู้ว่า
วิธีการเรียงลำดับของตนเองส่งที่ คุกกี้จากเบราว์เซอร์หรือจาก
โปรแกรมที่พวกเขาเขียน, ที่พวกเขาได้โดยสิ้นเชิง เข้าสู่เว็บไซต์ที่คุณ
มันไม่ได้เป็นยากที่จะหลอกว่าเป็น คนอื่นถ้าเราทบทวน p-ชุด
สองซึ่งแนะนำอะไร
>> ผู้ชม: วิทยาการเข้ารหัสลับ
>> DAVID ลัน: เล็ก ๆ น้อย ๆ บิตของการเข้ารหัส
การเข้ารหัสง่ายอย่างน้อยใน รุ่นมาตรฐาน แต่การเข้ารหัสลับ
กระนั้น
น้อยกว่า
ดังนั้นมันจะเปิดออกถ้าคุณเข้ารหัสทั้งหมดของ ส่วนหัวเหล่านี้โดยใช้สิ่งที่คุณ
ในขณะนี้อาจจะทราบข้อมูลเพิ่มเติมกันเองเช่น SSL, ชั้นซ็อกเก็ตการรักษาความปลอดภัยหรือ URL https://,
แล้วทั้งหมดของสิ่งเหล่านี้เราได้รับ glancing ที่มีการเข้ารหัสที่จริง
ซึ่งหมายความว่ามันก็เหมือนคุณ ไม่สามารถอ่านประทับมือ
เฉพาะ facebook.com สามารถหรือ google.com, หรือในกรณีนี้เครื่องจะสามารถ
อ่านแสตมป์มือที่
>> อนาถแม้ว่าและอีกครั้งนี้ ทั้งหมดก็เหมาะสมกับสิ่งที่เอ็นเอสเอ
ของสายแม้ SSL คือเปราะบาง
และเป็นจริงไม่ยาก ที่จะได้แตกการเข้ารหัสที่
ไม่มากโดยการแตกร้าวการเข้ารหัส, แต่โดยหลอกล่อ
เบราว์เซอร์ในการถอดรหัส ข้อมูลก่อนเวลาอันควร
แต่อีกครั้งเราจะแซวคุณ กับที่นานก่อนที่จะ
แต่ตอนนี้เพียงต้องกลัว
มันอนาถชนิดของจริง
>> ทั้งหมดขวา
เพื่อที่ตอนนี้ไม่ปล่อยให้เรา?
ดีขอทำเช่นนี้
ขอไปข้างหน้าและใช้อย่างรวดเร็ว ทีเซอร์ก่อนที่เราจะหยุดพัก
และผมคิดว่าเราจะอู้อีกนาน ในวันนี้ แต่เราจะไปดำน้ำใน
สิ่งที่แบรนด์ใหม่และเซ็กซี่ที่จะ กระตุ้นความอยากอาหารของคุณมากยิ่งขึ้น
เพื่อให้เป็นทีเซอร์
>> ดังนั้น SQL เราเริ่มต้นพูดคุยเกี่ยวกับ เคยให้สั้น ๆ เป็นครั้งสุดท้าย
คุณจริงๆจะได้รับในมือของคุณสกปรก กับบางส่วนของมันในพีตั้งเจ็ด
และในแง่ของคนธรรมดาสิ่งที่ไม่ SQL -
S-Q-L -
ทำเพื่อคุณ
มันคืออะไร?
ใช่
>> ผู้ชม: ให้การเข้าถึงข้อมูลที่คุณ
>> DAVID ลัน: ใช่
มันช่วยให้คุณเข้าถึงข้อมูล ในฐานข้อมูล
Structured Query Language
และสิ่งนี้เป็นหลัก การเขียนโปรแกรมภาษา
มีคุณสมบัติของมันที่ เราจะไม่ได้ใช้ในชั้นเรียน
แต่คุณสามารถได้อย่างมีประสิทธิภาพ กำหนดฟังก์ชั่น
พวกเขากำลังเรียกเก็บ ขั้นตอนใน SQL
แต่เราจะให้มันค่อนข้างง่ายและเพียงแค่ ใช้สำหรับการดำเนินงานขั้นพื้นฐาน
เช่นการเลือกข้อมูลการใส่ข้อมูล การปรับปรุงข้อมูลและการลบข้อมูล
>> และจริงๆคุณสามารถคิดของฐานข้อมูล เช่นฐานข้อมูลเช่นเดียวกับ
เป็นโปรแกรม Microsoft Excel
SQL เพราะหมายถึงความสัมพันธ์ ฐานข้อมูลที่
ความสัมพันธ์ก็หมายความตาราง
แถวและคอลัมน์
ดังนั้นสิ่งที่คุณสามารถใส่ในกระดาษคำนวณ เช่นนี้หรือ Google Docs,
คุณสามารถใส่ลงไปในฐานข้อมูล ด้วยการประกาศตาราง
>> ตอนนี้วิธีที่คุณจะเข้าถึงได้จริง ข้อมูลที่
ดีกับคำสั่งหรือ คำสั่งเช่นนี้
SELECT INSERT, UPDATE และลบ
และส่วนใหญ่ผู้ที่เป็น สี่ส่วนผสมเดียวที่คุณจะต้อง
ทำสิ่งที่ค่อนข้างแข็งแรง ปัญหาในการตั้งเจ็ด
>> ตอนนี้กลับมาในวันที่คุณจะจริง ติดต่อกับฐานข้อมูลใน
หน้าต่าง terminal สีดำและสีขาวที่ ให้กระพริบเช่นนี้
และฐานข้อมูลที่เรากำลังทำงานอยู่บน เครื่องใช้ที่เรียกว่า MySQL ซึ่งเป็น
เครื่องมือฐานข้อมูลฟรีและเปิดแหล่ง
หากคุณ Google และอ่านวิกิพีเดีย บทความคุณจะรู้ว่าชื่อเป็น
บิตของการเปลี่ยนแปลงบางอย่าง รุ่นลินุกซ์
ฐานข้อมูลมาเรียเป็นจริง ส้อมดังนั้นการพูดของ MySQL
>> เรื่องยาวสั้น, Oracle ซื้อ MySQL
ออราเคิลเป็น บริษัท ขนาดใหญ่
คนได้รับการกังวลว่ามันจะ ไม่มีแหล่งที่มาค่อนข้างยังคงเปิดเป็น
ดังนั้นนี้เป็นเพียงสำเนาของข้อมูลที่ ยังคงฟรียังคงเปิดแหล่งที่มาและ
ที่ติดตั้งใน Fedora Linux โดยค่าเริ่มต้น
>> แต่นี้เป็นชนิดของอาการปวด คอจะได้ทำความคุ้นเคยกับ
ฐานข้อมูลด้วยวิธีนี้
ดังนั้นเราจึงรวมไว้ในเครื่อง CS50 เครื่องมือมาเปิดฟรีที่เรียกว่า
phpMyAdmin
เพียงแค่เรื่องบังเอิญที่ มันเขียนใน PHP
ไม่มีพื้นฐาน จำเป็นสำหรับ PHP ที่นี่
แต่นี้เป็นเพียงเครื่องมือบนเว็บที่ เราดาวน์โหลดได้ฟรีที่ติดตั้งใน
เครื่องใช้ไฟฟ้าที่ช่วยให้เราที่จะมี อินเตอร์เฟซผู้ใช้แบบกราฟิกที่
ในการสำรวจ-p ตั้งฐานข้อมูลที่มีเจ็ด ซึ่งการสร้างฐานข้อมูลใหม่
กล่าวว่าสำหรับโครงการสุดท้ายคุณเองหากคุณต้องการ เช่นและในที่สุดสร้าง
เว็บไซต์แบบไดนามิกเช่น CS50 การเงิน ที่ช่วยให้คุณสามารถค้นหาข้อมูลและ
ปรับปรุงข้อมูลแบบไดนามิก
>> คุณจะไม่ให้มีการใช้เพียง แฟ้มข้อความง่ายหรือ CSV
จริงๆคุณสามารถใช้ฐานข้อมูลที่สมาร์ท โปรแกรมเพื่อให้คุณสามารถดำเนินการมากขึ้น
คำสั่งที่ซับซ้อนมากกว่าเพียงแค่การอ่าน ผ่านทุกอย่างเป็นเส้นตรง
>> ดังนั้นเช่นนี้เป็นสิ่งที่เราให้ คุณออกจากกล่องพีตั้งเจ็ด
นี้เป็นตารางที่มีที่เห็นได้ชัดอย่างน้อย สามคอลัมน์หนึ่งซึ่งเป็น
ชื่อผู้ใช้อย่างใดอย่างหนึ่งซึ่งเป็นกัญชา และอื่น ๆ ซึ่งเป็นรหัส
>> แต่สิ่งที่น่าสนใจและเพียงเพื่อ แซวออกหนึ่งความคิดที่นี่ชื่อผู้ใช้
สันนิษฐานว่าเป็นที่ไม่ซ้ำกันอยู่แล้วใช่มั้ย
ผมหมายถึงเว็บไซต์ใด ๆ ส่วนใหญ่ถ้า คุณมีชื่อผู้ใช้ที่มี
ไม่สามารถเป็นสองซีซาร์
มีไม่สามารถเป็นสอง Malans
มีไม่สามารถเป็นสอง jharvards
ที่เป็นเอกลักษณ์
มิฉะนั้นพวกเขาไม่ทราบว่า jharvard มันเป็นจริง
ดังนั้นสิ่งที่อาจจะมีแรงจูงใจสำหรับยัง มีคอลัมน์ที่สามทางด้านซ้าย
เรียกว่ามี ID ซึ่งมีลักษณะเหมือน ตัวเลขที่เป็นเอกลักษณ์เหมือนกัน?
มันให้ความรู้สึกเล็ก ๆ น้อย ๆ ที่ซ้ำซ้อน ให้ฉันได้อย่างรวดเร็วก่อน
ทำไมมันอาจจะน่าสนใจที่จะมี ไม่เพียง แต่ชื่อผู้ใช้ที่ไม่ซ้ำกัน
แต่ยังเป็นตัวเลขที่ไม่ซ้ำกัน?
>> ผู้ชม: พวกเขาอาจมี รหัสผ่านเดียวกัน
>> DAVID ลัน: คนอาจมี รหัสผ่านเดียวกันนั่นเอง
ที่อาจเกิดขึ้นอย่างแน่นอน
แต่ถ้าพวกเขามีชื่อผู้ใช้ที่ไม่ซ้ำกันนี้ผม จะเถียงว่าไม่จริง
เรื่องเพราะถ้าพวกเขาพิมพ์ลงในพวกเขา ชื่อผู้ใช้ผมจะต้องตรวจสอบของพวกเขา
รหัสผ่านดังกล่าวกัญชาของพวกเขา
ทำไมอื่น
>> ผู้ชม: การค้นหาได้เร็วขึ้น
>> DAVID ลัน: การค้นหาได้เร็วขึ้น
ทำไม?
>> ผู้ชม: ID เป็นเพียงหนึ่งใน
>> DAVID ลัน: รหัสเป็นเพียงตัวละครตัวหนึ่ง หรือจะแม่นยำมากขึ้นก็เป็นตัวเลข
ดังนั้นจึงอาจเป็น 32 บิต หรือสิ่งที่ต้องการ
ชื่อผู้ใช้ในขณะที่เห็นได้ชัดว่าเจสัน ขึ้น Hirschhorn ที่มีการเรียงลำดับของ
ขัน​​นานและมันจะ พาฉันเวลามากขึ้นที่จะสาย
เปรียบเทียบ H-I-R-S-C-H-H-O-R-N, และอาจจะ / 0 หรือสิ่งที่ต้องการในการสั่งซื้อ
ในการมองหาเจสันเมื่อเทียบกับเพียง บอกให้ฉันจำนวนผู้ใช้สอง
นั่นคือ 32 บิต
มันเป็น INT เดียวที่ คุณจะต้องเปรียบเทียบ
และแน่นอนที่ว่าทำไมฐานข้อมูล มีแนวโน้มที่จะกำหนดหมายเลขที่ไม่ซ้ำกัน
แถวในพวกเขา
>> ตอนนี้สิ่งที่ชนิดข้อมูลอื่น ๆ ที่มี นอกจาก INT และเห็นได้ชัด
สตริงเช่นนี้หรือไม่
ดีที่จะเป็นที่เหมาะสมมากขึ้น ฐานข้อมูล SQL เช่น
MySQL, มีช่องชา
และ CHAR น้อยทำให้เข้าใจผิด ไม่ได้เป็นเพียงหนึ่งเดียว CHAR
สนาม CHAR ในฐานข้อมูล MySQL คือ หนึ่งหรือมากกว่าหนึ่งตัวอักษร แต่มันเป็น
จำนวนคงที่ของตัวอักษร
>> ดังนั้นสำหรับตัวอย่างเช่นถ้าผมข้ามไป phpMyAdmin ที่คุณอาจมีอยู่แล้วหรือ
ปัญหาจะเร็ว ๆ นี้ตั้งเจ็ดและฉันไป ไปยังฐานข้อมูลของฉันและเพียงเพื่อความสนุกสนาน,
ขอสร้างตารางใหม่ที่เรียกว่า การทดสอบมีเพียงสองคอลัมน์
จากนั้นผมก็จะคลิกไปยัง
และเรื่องนี้จะกลายเป็นที่คุ้นเคยเป็นธรรม โดยเฉพาะอย่างยิ่งในขณะที่คุณคนจรจัด
รอบด้วยตัวคุณเอง
นี่ฉันอาจพิมพ์ ID เพื่อสร้าง ตารางใหม่จาก INT ประเภท
แต่ที่นี่ผมอาจจะพิมพ์ชื่อผู้ใช้ไปยัง สร้างตารางที่ก่อนหน้านี้
และสังเกตเห็นฉันมีทั้งกลุ่ม ชนิดให้เลือก
>> และนี่ก็เป็นเหตุผลที่ phpMyAdmin เป็นชนิดของดี
มันเป็นตัวของตัวเองการเรียนการสอนในที่คุณ เพียงแค่ชนิดของจุดและคลิกและสามารถ
มองไปที่เมนูแบบเลื่อนลงและสรุปจาก ว่าสิ่งที่อำนาจ SQL จะช่วยให้คุณ
>> และแน่นอนหากฉันเลือก CHAR ฉันแล้ว ต้องระบุระยะเวลาหรือวิธี
ค่าหลายกี่ตัวอักษร
ดังนั้นค่าที่พบบ่อยมากเป็นสิ่งที่ต้องการ 255 แต่ที่เล็ก ๆ น้อย ๆ เป็นเวลานาน
โดยทั่วไปคือแปดสำหรับชื่อผู้ใช้
แต่ที่วันเล็ก ๆ น้อยเหล่านี้
ดังนั้นนี่คือการตัดสินใจการออกแบบ
มันคือ 8 สูงสุดตัวอักษร 32, 255, 1,000?
ความจริงแล้วมันขึ้นอยู่กับคุณ
แต่สนาม CHAR เป็นจำนวนคงที่
เพื่อเลือกน้อยเกินไปและคุณชนิดของ เมาถ้าคุณต้องการชื่อผู้ใช้อีกต่อไป
เลือกมากเกินไปและสิ่งที่ ข้อเสีย?
>> ผู้ชม: [ได้ยิน]
>> DAVID ลัน: มันสิ้นเปลือง
เช่นเดียวกับใน C ถ้าคุณมีขนาดใหญ่ หน่วยความจำอันมากกว่าที่คุณต้องการคุณ
เพียงแค่เสียเวลาและสูญเสียพื้นที่
เพื่อให้เป็นทางเลือกที่มีอยู่ VARCHAR ซึ่งจะช่วยแก้ปัญหานี้ได้ด้วย
ระยะเวลาในการรักษาไม่เป็นความยาวคงที่, แต่ในขณะที่ความยาวสูงสุดและการใช้
จำนวนตัวแปรของตัวอักษรที่แล้ว มีแนวโน้มที่จะใช้เป็นเพียงตัวอักษรมากเท่าที่คุณ
จริงต้อง
ว่าเสียงที่สมบูรณ์แบบ
>> ทำไมเราไม่ได้รับการกำจัด ข้อมูล CHAR พิมพ์แล้ว
สิ่งที่อาจจะเสียของ ใช้ varchars ซึ่งเสียง
เหมือนมันเป็น win ดี?
อ้าง?
>> ผู้ชม: [ได้ยิน]
>> DAVID ลัน: ตกลงที่ดี
ดังนั้นหากข้อมูลทั้งหมดของคุณจะเหมือนกัน ระยะเวลาในสิ่งที่กังวล?
>> ผู้ชม: เพ​​ราะคุณกำลังสูญเสีย ข้อมูลโดยการบอกพวกเขาทั้งหมด
>> ลันเดวิด: ดังนั้นหากข้อมูลทั้งหมดของคุณคือ ระยะเวลาเดียวกันแม้ว่าฉันจะเถียง
ที่ระบุความยาวสูงสุด เมื่อ VARCHAR ไม่แตกต่างจากที่เป็น
ระบุความยาวคงที่เมื่อ CHAR ถ้า คุณรู้จำนวนล่วงหน้าว่า
แต่มีแน่นอนและฉันจะจัดเรียงจาก สารสกัดจากคำตอบของความเป็นจริงที่ว่า
ที่ยังคงมีสูงสุดซึ่งอาจ จะน่ารำคาญโดยเฉพาะอย่างยิ่งถ้าคุณ
พบชื่อของบุคคลที่ นานผิดปกติท​​ี่คุณไม่ได้
คาดหวัง
และมันก็ยังเป็นเพียงเล็กน้อยน้อยที่มีประสิทธิภาพ ที่จริงการค้นหาบน varchars เป็น
ตรงข้ามกับการค้นหาตัวอักษรโดยเฉพาะอย่างยิ่ง สำหรับตารางยาวที่มีจำนวนมากและ
ข้อมูลจำนวนมาก
ดังนั้นที่นี่เกินไปใจเป็นอีกครั้งที่ ไม่มีทางเลือกที่เห็นได้ชัด
>> ดังนั้นเพียงเพื่อให้คุณมีความรู้สึกของคนอื่น ๆ ชนิดของข้อมูลที่อาจจะเป็นที่สนใจ
ทั้ง p-ชุดเจ็ดหรือใน อนาคตมี INT
มี BIGINT, ซึ่ง เป็นเหมือนยาวยาว
มันมีแนวโน้มที่จะเป็น 64 บิต
มีทศนิยมซึ่งคุณจะได้เห็นในที่สุด ชุดปัญหาที่เกิดขึ้นซึ่งมีมาก
คำตอบที่ทำความสะอาดเพื่อปัญหาที่เรา พบกับลอยและลอย
ไม่แน่ชัดจุด
แล้วมี DATETIME
มีอักษรชนิดข้อมูลที่มี ให้มีลักษณะเหมือนปี, เดือน, วัน,
และชั่วโมงนาทีและวินาที
>> แต่ฐานข้อมูล SQL ยังมี สิ่งที่เราจะเรียกการจัดทำดัชนี
และดัชนีคือสิ่งที่คุณ ระบุเมื่อสร้างตารางเพื่อ
ทำให้การค้นหาและการดำเนินงานอื่น ๆ มีประสิทธิภาพมากขึ้น
โดยเฉพาะมีสิ่งที่เรียกว่าคน ดัชนีหลักที่คุณสามารถทำได้
ประกาศดังต่อไปนี้
>> เราทำอย่างนี้สำหรับคุณด้วย ตารางผู้ใช้เราให้คุณ
แต่สังเกตเห็นว่าฉันถูกสร้างด้วยตนเอง ตารางผู้ใช้ที่นี่ให้
มันชื่อของผู้ใช้
ผมระบุไว้แล้ว ID
ผมระบุ INT
ผมระบุชื่อผู้ใช้ด้วย สูงสุด 32 ตัวอักษร
แต่ถ้าเราให้เลื่อนในเรื่องนี้อย่างเป็นธรรม หน้าต่างกว้างสังเกตเห็นมี
พวงของสิ่งอื่น ๆ ที่ฉันสามารถระบุ
>> หนึ่งฉันสามารถระบุคุณสมบัติ ชอบคุณรู้ว่าสิ่งนี้
INT ควรจะเป็นไม่ได้ลงชื่อ
ฉันไม่ต้องการตัวเลขติดลบ, เพื่อขอให้มันไม่ได้ลงชื่อ
Null ไม่เกี่ยวข้องที่นี่เพราะ ฉันไม่ต้องการให้ผู้ใช้ทุกคน
มีจำนวนไม่ซ้ำกัน
ฉันไม่ต้องการให้เป็นโมฆะ
>> แต่เรื่องนี้เป็นที่น่าสนใจ
ฉันสามารถระบุที่ ID มีอย่างใดอย่างหนึ่ง คีย์หลักของฐานข้อมูลนี้หรือเป็น
ข้อความที่ไม่ซ้ำกันหรือจะจัดทำดัชนีหรือเต็ม
ดังนั้นสำหรับวัตถุประสงค์ของว​​ันนี้เรื่องยาว ระยะสั้นหมายถึงหลักว่าเรื่องนี้จะต้อง
เป็นได้ทั้งแนวคิดและเทคนิค สนามที่เราใช้ไม่ซ้ำกัน
ระบุผู้ใช้
>> ดังนั้นเมื่อเรามองขึ้นไปผู้ใช้นี้การจัดเรียง ของสัญญาว่าจะมองพวกเขาขึ้นมาส่วนใหญ่โดย
ที่ระบุที่ไม่ซ้ำ
และฐานข้อมูลจะช่วยให้มั่นใจว่าถ้าคุณ มีจำนวนผู้ใช้ 3 คุณไม่สามารถ
ใส่ร่างกายผู้ใช้คนอื่น ที่มีหมายเลขเดียวกันกับที่ 3
ฐานข้อมูลก็จะปฏิเสธ เพื่อบัน​​ทึกการเปลี่ยนแปลงของคุณ
ซึ่งเป็นสิ่งที่ดีเพราะคุณสามารถ ป้องกันตัวเองจากตัวเอง ตนเอง
>> อีกทางเลือกหนึ่งสำหรับชื่อผู้ใช้
ดังนั้นแถวที่สองจำ เป็นเขตชื่อผู้ใช้
ดังนั้นแถวที่สองที่นี่เป็นชื่อผู้ใช้, ในขณะที่เราไม่ได้ไกลไปทางซ้ายมี
>> ดังนั้นสิ่งที่ฉันอาจต้องการที่จะระบุ?
ฉันไม่ได้รับอนุญาตตาม SQL, เพื่อระบุสองคีย์หลัก
คุณสามารถระบุที่สำคัญร่วมกันที่คุณ มองไปที่เขตข้อมูลทั้งสอง แต่พวกเขาไม่สามารถ
เป็นรายบุคคลเป็นคีย์หลัก
เพื่อที่ว่าออกจากคำถาม
เพื่อที่ฉันอาจต้องการเลือก?
>> ดีที่ไม่ซ้ำกันในทำนองเดียวกัน คีย์หลักที่คุณระบุนี้
สนามจะต้องไม่ซ้ำกัน แต่มัน จะไม่ได้หนึ่ง
ผมใช้ตลอดเวลา
และเราจะไม่ใช้นี้ทั้งหมด เวลาสำหรับสิ่งที่เหตุผลอีกครั้ง?
มันช้าที่อาจเกิดขึ้นถ้า มันเป็นชื่อผู้ใช้ยาว
มันก็แค่เสียเวลา
>> INDEX ขณะที่ระบุว่ามันเป็น ไม่ได้ไปจะไม่ซ้ำกัน แต่ฉันต้องการ
คุณสามารถทำงานมายากลของคุณภายใต้ เครื่องดูดควันที่จะทำให้มันเร็วขึ้นสำหรับผมที่จะ
ค้นหาในฟิลด์นี้
ดังนั้นนี้อาจจะไม่เกี่ยวข้องที่นี่
สำหรับชื่อผู้ใช้, ฉันเถียงว่า UNIQUE คำตอบที่ดีคือ
แต่คิดว่าเราทำผู้ใช้มากขึ้น น่าสนใจกว่าเพียงแค่ชื่อผู้ใช้,
hashes และหมายเลข ID
เกิดอะไรขึ้นถ้าเราให้คนชื่อเต็ม?
ถ้าเราให้พวกเขามีอะไรที่อยู่ และข้อมูลอื่น ๆ เกี่ยวกับพวกเขา?
>> ดีถ้าคุณระบุว่าคอลัมน์ใน ฐานข้อมูลการจัดทำดัชนีที่หมายความว่า
MySQL หรือ Oracle ที่หรือสิ่งที่ฐานข้อมูล ที่คุณใช้ควรจะทำงานมายากล
และใช้ชนิดของข้อมูลบางอย่างแฟนซี โครงสร้างเหมือนต้นไม้หรือคู่ชีวิตหรือ
ตารางแฮชหรือสิ่งที่จะรับประกัน ที่ว่าเมื่อคุณค้นหาข้อมูลโดยใช้
เลือกบนสนามโดยเฉพาะอย่างยิ่ง -
ชอบแสดงให้ฉันทุกคนรู้ว่า ชีวิตบนถนน Oxford
แบบสอบถามเช่นเดียวกับที่
หากคุณได้ระบุล่วงหน้าว่า คุณต้องการดัชนีในเขตข้อมูลที่,
การค้นหาจะมากได้เร็วขึ้นมาก
>> หากคุณไม่ได้ระบุดัชนีที่ดีที่สุด คุณสามารถทำได้คือการค้นหาเชิงเส้นถ้า
มันไม่เรียง
แต่ถ้าคุณระบุ INDEX, สมาร์ท คนที่ทำฐานข้อมูล -
คนอย่างคุณที่รู้ว่าตอนนี้ต้นไม้ และพยายามและตารางกัญชา -
โดยอัตโนมัติจะสร้างข้อมูลดังกล่าว โครงสร้างในหน่วยความจำเพื่อให้แน่ใจว่า
การค้นหาเหล​​่านี้จะได้เร็วขึ้นมาก
>> FULLTEXT ในขณะเดียวกันมีความคล้ายคลึงในจิตวิญญาณ, แต่ช่วยให้คุณทำสัญลักษณ์
ค้นหาชอบแสดงให้ฉันทุกคนรู้ว่า ชีวิตที่ถนนที่ขึ้นต้นด้วย
ตัวอักษร O ด้วยเหตุผลใด
คุณสามารถค้นหาตัวแทน เช่นนั้น
หรือสิ่งที่น่าสนใจมากขึ้นเช่นการแสดง ฉันทุกคนที่มีคำว่า -
แสดงให้ฉันทุกคนที่มีชื่อเริ่มต้น ด้วยตัวอักษรโดยเฉพาะอย่างยิ่ง
คุณสามารถค้นหาคำหลัก อย่างนี้
ทั้งหมดขวา
>> ดังนั้นโอกาสในการออกแบบ มีที่อาจเกิดขึ้น
มีคนอื่น ๆ ที่ฉันจะเป็น คลื่นมือของฉันที่
มันจะเปิดออกว่าคุณสามารถมี เครื่องมือเก็บที่แตกต่างกัน
และนี่คือความลับมากขึ้นกว่าที่เราต้องการ อย่างแน่นอนสำหรับปัญหาการตั้งเจ็ด
โดยค่าเริ่มต้นพวกคุณกำลังใช้ สิ่งที่เรียกว่า InnoDB
คุณจะเห็นการเอ่ยถึงนี้ที่ไหนสักแห่งใน อินเตอร์เฟซของ phpMyAdmin ได้มากที่สุด
แต่รู้ว่ามีการออกแบบอื่น ๆ การตัดสินใจที่มีศักยภาพ
ดอกเบี้ยมาโครงการสุดท้ายถ้า คุณจะทำอะไร Web-based
>> แต่ขอทำเช่นนี้
ให้ไปข้างหน้าและวางนี้ หน้าจอเป็นทีเซอร์สำหรับเรื่องราว
ที่เกี่ยวข้องกับคุณเพื่อนร่วมห้อง, และแก้วนม
ขอใช้เวลาสองนาที หรือเพื่อทำลายที่นี่
และถ้าคุณสามารถติดรอบให้มา กลับมาดูอีกเล็กน้อยที่ SQL และ
แล้วบิตของ JavaScript กับ p-ชุดแปดในใจ
>> ทั้งหมดขวา
ดังนั้นขอให้คุณได้รับความคิดเกี่ยวกับ กรณีที่มุมที่ได้อย่างง่ายดายมากสามารถเกิดขึ้น
ในบริบทของการใช้ฐานข้อมูลหรือ ตรงไปตรงมาแม้จะใช้สิ่งที่โลกแห่งความจริง
เช่นเดียวกับตู้เอทีเอ็มจะได้รับเงิน
ดังนั้นที่นี่มีตู้เย็นของ
สมมติว่าคุณได้มีหนึ่งเกินไปในการ หอพักหรือบ้านของคุณ
และคุณได้มีหนึ่งในเพื่อนร่วมห้องและทั้งสองของ คุณชอบนมเช่น
>> ดังนั้นคุณมาที่บ้านจากชั้นเรียนหนึ่งวัน
เขาหรือเธอยังไม่กลับ
คุณเปิดตู้เย็น
จริงๆคุณต้องการแก้วใหญ่ของนม
มีนมไม่ได้
ดังนั้นคุณจะทำอย่างไร
คุณปิดตู้เย็น
คุณคว้าคีย์ของคุณ
คุณออกไปตาราง
และคุณได้รับในสายที่ CVS ที่เหล่านั้น สิ่งที่เช็คเอาท์ด้วยตนเองซึ่งมักจะ
ใช้เวลานานกว่าจริง มีพนักงานเก็บเงิน
แต่อย่างใด
>> ดังนั้นแล้วในขณะเดียวกัน dot dot dot ของคุณ เพื่อนร่วมห้องมาที่บ้านและเขาหรือเธอ
ในทำนองเดียวกันมีความทะเยอทะยาน สำหรับนม
ดังนั้นเขาหรือเธอเปิดตู้เย็น, ลักษณะภายในและโอ้ด่า
นมไม่มี
ดังนั้นเขาหรือเธอหัวออกที่เกิดขึ้นไป เพื่อ CVS อื่น ๆ ซึ่งเป็นเพียง
ปิดกั้นออกไปด้วยเหตุผลบางอย่างและเขาหรือ เธอได้รับอยู่ในแนวที่จะซื้อนม
>> ในขณะที่คุณมาที่บ้านเขาหรือ เธอกลับมาบ้านและสิ่งที่ทำ
ในที่สุดคุณมี?
นมสองเท่า
แต่คุณไม่ชอบ นมที่มาก
ดังนั้นตอนนี้คุณมีนมมากว่าตอนนี้ หนึ่งของพวกเขาเป็นเพียงการจะไปเปรี้ยว
ในที่สุด
ดังนั้นนี่คือปัญหาที่ดีจริงๆ
ใช่ไหม?
>> ดังนั้นสิ่งที่เกิดขึ้น?
ดังนั้นพื้นฐานนี้เป็นชนิด จากตัวอย่างไร้สาระ
แต่อยู่ภายใต้ฝากระโปรงสิ่งที่เราเคยมี เกิดขึ้นที่นี่เป็นทั้งของคุณตรวจสอบ
รัฐของชิ้นส่วนของบางอย่าง หน่วยความจำ, ตู้เย็น,
ทั้งสองของคุณตรวจสอบรัฐ ของตัวแปรบาง
คุณทั้งสองดึงข้อสรุป ว่าแล้วคุณลงมือทำ
แต่น่าเสียดายที่ในขณะที่เพื่อนร่วมห้องของคุณ คือที่ร้านค้าของรัฐว่า
ตัวแปรเปลี่ยนเขาหรือเธอกลับมา และตอนนี้ต้องการที่จะเปลี่ยนสถานะ แต่
มันถูกแล้วเปลี่ยน เมื่อเขาหรือเธอ
และแน่นอนว่าเขาหรือเธอจะได้ไม่ต้อง ไปเก็บถ้าพวกเขารู้
ที่คุณมีอยู่แล้วบนเส้นทาง
>> ดังนั้นในโลกแห่งความจริงที่ว่าคุณสามารถ หลีกเลี่ยงปัญหานี้สมมติว่าคุณมี
ตู้เย็น, คุณมีเพื่อนร่วมห้อง, และคุณจริงชอบนม?
>> ผู้ชม: การสื่อสาร
>> DAVID ลัน: การสื่อสาร
ตกลง
แต่วิธีที่คุณอาจจะสื่อสาร
>> ผู้ชม: ฝากทราบ
>> DAVID ลัน: ปล่อยทราบใช่ไหม
มักจะออกจากบันทึกสำหรับ แฟน ๆ ของการแสดง
ขวาทั้งหมดจึงมักออกจากบันทึกหรือ ใส่เช่นกุญแจหรืออะไรอย่างแท้จริง
ในตู้เย็นที่ช่วยให้คุณ เพื่อนร่วมห้องจากการตรวจสอบสถานะของ
ตัวแปรที่
>> ตอนนี้ทำไมนี้อาจจะชิดกับ ปัญหาการตั้งเจ็ดหรือตู้เอทีเอ็ม
ดีจินตนาการโลกในตู้เอทีเอ็มที่ คุณอาจจะสามารถที่จะไปถึงตู้เอทีเอ็ม
เครื่องที่นี่และ ATM อื่นที่นี่
และสิ่งนี้เกิดขึ้นค่อนข้างบ่อย
และสมมติว่าคุณมีสองบัตรเอทีเอ็ม ซึ่งเป็นไปได้ที่จะได้รับ
และคุณเข้าสู่เครื่องทั้งสอง ได้อย่างมีประสิทธิภาพพร้อมกันหวังว่า
ในขณะที่ไม่มีใครมอง
แล้วคุณพิมพ์ลงใน PIN ของคุณ ๆ พร้อมกัน
แล้วคุณทำแบบสอบถามความสมดุล เพื่อดูว่าเงินที่คุณมี
และสมมติว่าคุณมี 100 $ ที่เหลืออยู่ในบัญชีของคุณ
เพื่อเป็นหลักพร้อมกันคุณ พูดหนึ่งศูนย์ศูนย์ใส่
และคุณหวังว่าจะได้รับคืนเงินบางส่วน
>> แต่วิธีการที่จำนวนเงินที่คุณจะได้รับกลับ
ตอนนี้คอมพิวเตอร์ที่ส่วนท้ายของวันที่ โดยเฉพาะอย่างยิ่งหากพวกเขากำลังพูดคุยกับ
เซิร์ฟเวอร์ไม่จำเป็นต้องทำในสิ่งที่ ในลำดับที่คาดว่า
>> ดังนั้นคิดว่าสิ่งที่เกิดขึ้นเพราะ สิ่งที่เครือข่ายมีปัญหาความเร็ว
มีหรือปัญหา CPU มีหรือ อะไรอย่างนั้นสมมติว่า
ครั้งแรกที่ตู้เอทีเอ็มตรวจสอบยอดเงินของคุณและ เห็นโอ้คนนี้มี 100 $
แต่แล้วได้รับฟุ้งซ่านเพราะอาจจะ การสำรองข้อมูลที่เกิดขึ้นและดังนั้นจึงเป็น
ชะลอตัวลง
หรืออาจจะในขณะที่การตรวจสอบเครือข่าย การเชื่อมต่อได้ช้าลงเล็กน้อยเพราะ
นี้เพิ่งเกิดขึ้น
พวกเขากำลังอุปกรณ์ทางกายภาพ
ดังนั้นขณะที่ตู้เอทีเอ็มที่สองคือ ถามคำถามเดียวกัน
ใช้เงินเท่าไหร่ไม่เดวิดมี? $ 100 คือคำตอบ
แต่เป็นเพราะตู้เอทีเอ็มครั้งแรกยังไม่ได้ ส่งข้อความลบ $ 100 ทั้ง
ได้ตรวจสอบตู้เอทีเอ็มตู้เซฟของธนาคารที่ เห็นมี 100 $ มีและตอนนี้
เครื่องทั้งสองอาจมี จะคายคำตอบ
>> ตอนนี้เป็นที่ดีสำหรับคุณในความรู้สึกบาง ถ้าสิ่งที่ธนาคารไม่ในที่สุด
มีการเปลี่ยนจำนวนเงินที่จะลบ 100 การตั้งค่าตัวแปรเท่ากับของคุณ
บัญชีธนาคารเท่ากับ 0 เมื่อเทียบ ในการทำลบ 100
ขณะนี้ในกรณีที่เลวร้ายที่สุดสำหรับธนาคาร -
หรือในการที่ดีที่สุดสำหรับธนาคารในขณะเดียวกัน พวกเขาให้คุณ $ 200 และ
บัญชีธนาคารของคุณในขณะนี้แสดงให้เห็นในแง่ลบ $ 100 ซึ่งจริงๆไม่ได้
เป็นประโยชน์กับคุณในทุก
แต่ประเด็นก็คือว่าการแข่งขันครั้งนี้ เงื่อนไขในการได้รับสองเพื่อนร่วมห้อง
นมหรือสองตู้เอทีเอ็มพยายามที่จะได้รับเงินสด และเปลี่ยนสถานะของสุสาน
ในเวลาเดียวกันที่มีอยู่ใด ๆ เวลาที่คุณมีฐานข้อมูล
>> ขณะนี้ในปัญหาตั้งเจ็ดปัญหานี้ ที่เกิดขึ้นในแง่ที่ว่าถ้าคุณซื้อ
หุ้นของหุ้น Facebook, และจากนั้น เช่นคุณซื้อหุ้นที่สองของ
หุ้น Facebook, คุณจะต้องทำ การตัดสินใจเป็นโปรแกรมเมอร์
เพื่อที่จะตัดสินใจว่าจะปรับปรุง ฐานข้อมูลการต่อรองที่คุณกำลังจะ
มีหนึ่งแถวสำหรับหุ้นที่และ เป็นวิธีหนึ่งที่จะใช้มัน
และคุณจะมีส่วนแบ่งของ FB ซึ่งเป็นสัญลักษณ์หุ้นของพวกเขา
ชื่อผู้ใช้นี้หรือผู้ใช้รายนี้ ID ตัวระบุที่ไม่ซ้ำกัน
>> แต่เรื่องเดียวกันสามารถเกิดขึ้นได้ที่นี่
ถ้าคุณทำเช่น SELECT ใน SQL ที่คุณจะเห็น ปัญหาในการตั้งเจ็ดเมื่อคุณเห็น
โอ้เดวิดมีส่วนแบ่ง หุ้น Facebook
ตอนนี้ผมขอเปลี่ยนนี้จะเป็นสองหุ้น เพราะเขาต้องการที่จะซื้อ
หุ้นที่สอง
แต่สมมติว่าเดวิดจริงมีสอง หน้าต่างเบราว์เซอร์เปิดหรือคิดว่า
มันเป็นบัญ​​ชีร่วมกับสองผัวเมีย และทั้งสองของพวกเขากำลังพยายามที่จะดำเนินการ
การดำเนินการเดียวกันมีเกินไป ที่มีศักยภาพที่มีอยู่สำหรับการตัดสินใจที่จะเป็น
ทำตามหน้าที่ รัฐของโลก -
บัญชีมีหนึ่งหุ้น -
และทั้งสองคนหรือเซิร์ฟเวอร์ทั้งสองตอนนี้ พยายามที่จะบอกว่ามันเพิ่มขึ้นถึงสองหุ้น
แต่ในกรณีนี้คุณอาจจะมีการเรียกเก็บ ฉันเงินค่าหุ้นทั้งสอง แต่
เพิ่มขึ้นเพียงครั้งเดียวที่
>> ดังนั้นในระยะสั้นปัญหาพื้นฐาน ที่นี่เช่นเดียวกับเรื่องตลกเกี่ยวกับการออก
ทราบหรือวางกุญแจที่มันเป็น ถ้าคนสองคนหรือสองหัวข้อ -
คิดว่ากลับไปเริ่มต้น -
สามารถตรวจสอบสถานะของตัวแปรบาง แล้วพยายามที่จะเปลี่ยนตัวแปรที่
แต่ทั้งสองสิ่งที่ไม่ได้เกิดขึ้นที่ ในเวลาเดียวกัน แต่สามารถได้รับการขัดจังหวะ
โดยสิ่งอื่น ๆ ที่เกิดขึ้นข้อมูลสามารถ ได้รับเป็นรัฐแปลกมาก
และคุณสามารถได้รับประโยชน์หรือคุณสามารถประสบ ในความหมายของเงินเช่น
>> ดังนั้นในการกำหนดปัญหาที่เจ็ดเราให้คุณ นี้หนึ่งบรรทัดของรหัสซึ่งยาว
เรื่องสั้นแก้นี้ ปัญหาใน MySQL
นี้การเรียนการสอนมานานมากที่ไม่ได้ ได้ใส่ลงในหนึ่งบรรทัด
หน้าจอที่นี่เพื่อให้แน่ใจว่าการทำงานของคุณ เป็นสิ่งที่เรียกว่าอะตอม
มันทั้งหมดที่เกิดขึ้นในครั้งเดียวหรือ มันไม่ได้เกิดขึ้นในทุก
ประโยคนี้เป็นเวลานานมากที่จะไม่สามารถ บางส่วนได้รับการขัดจังหวะ
>> และสิ่งที่มันไม่เป็นตัวอักษร สิ่งที่กล่าว
ใส่ลงในตารางต่อไปนี้บางส่วน สามช่องค่าเฉพาะเหล่านั้น
แต่ที่สำคัญที่ซ้ำกัน ไม่ได้ทำแทรก
จะปรับปรุง
ดังนั้นนี้เป็นเหมือนการทำและเลือก INSERT เพื่อที่จะพูดในเวลาเดียวกัน
และสิ่งที่เป็นกุญแจสำคัญที่อาจ ถูกเรียกที่นี่?
>> มันจะเปิดออกและคุณจะเห็นใน ปัญหาการตั้งค่าข้อมูลจำเพาะเจ็ดเพราะ
เราได้ประกาศว่าจะมีคีย์ที่ไม่ซ้ำกัน บนโต๊ะนี้โดยเฉพาะเช่นที่
คุณไม่สามารถมีหลายแถว สำหรับผู้ใช้เดียวกันกับ
สัญลักษณ์หุ้นเดียวกันเงิน -
ในตัวอย่างนี้ที่นี่เป็น DVN.V หุ้นเงินที่เราโง่
อ้างถึงในสเป็ค
เพราะเราได้ประกาศว่าจะไม่ซ้ำกัน สิ่งที่หมายถึงนี้คือว่าถ้าคุณ
พยายามที่จะแทรกแถวที่ซ้ำกันคุณ แทนจะปรับปรุงได้โดยไม่ต้อง
คนอื่น ๆ ที่มีโอกาสที่จะเปลี่ยน รัฐของโลกทั้ง
ดังนั้นในระยะสั้นนี้ทำให้ สิ่งที่มีอะตอม
>> โดยทั่วไปมากขึ้นแม้ว่าฐานข้อมูล เช่น MySQL -
และคุณไม่จำเป็นต้องมีคุณสมบัติสำหรับ -p ตั้งเจ็ด แต่เก็บไว้ในใจสำหรับ
อนาคต -
สนับสนุนสิ่งที่เรียกว่าการทำธุรกรรม ที่คุณสามารถพูดได้
เริ่มธุรกรรมอย่างแท้จริง
จากนั้นคุณสามารถดำเนินการ สองคำสั่ง
และคำสั่ง SQL ที่คุณจะเห็น ในพีตั้งเจ็ดดูเหมือนเล็กน้อย
บางอย่างเช่นนี้
ปรับปรุงบัญชีตารางที่เรียกว่า
ตั้งคอลัมน์ยอดคงเหลือเท่ากับสิ่งที่ คอลัมน์ยอดคงเหลือในปัจจุบัน
เป็น 1,000 ลบที่หมายเลข เลขที่บัญชีเช่น ID ผู้ใช้
เท่ากับ 2 แล้วปรับปรุง dot dot dot บัญชี
>> ดังนั้นในแง่ของคนธรรมดาสิ่งที่สองคนนี้ ค้นหาดูเหมือนจะทำใน
ความรู้สึกที่แท้จริงของโลกธนาคาร?
>> ผู้ชม: การถ่ายโอนไปสู่​​การออม
>> DAVID ลัน: แน่นอน
การโอนเงินจากที่หนึ่ง บัญชีอื่น ๆ
และนี่เป็นอีกตัวอย่างหนึ่งที่คุณ ต้องการทั้งสองสิ่งที่เกิดขึ้น
หรือไม่เกิดขึ้น
คุณไม่ต้องการสิ่งที่จะได้รับใน ตรงกลางของพวกเขาและระเบียบที่อาจเกิดขึ้น
คณิตศาสตร์หรือเลอะเท่าใด เงินที่คุณมีหรือเท่าใด
เงินธนาคารมี
ดังนั้นสิ่งที่ดีจริงๆเกี่ยวกับการทำธุรกรรม ใน MySQL เป็นที่และ
ฐานข้อมูลที่มากกว่าปกติก็คือพวกเขา และผู้คนที่สมาร์ทที่ได้ดำเนินการ
คุณสมบัติเหล่านี้คิดออกวิธีการทำ ให้แน่ใจว่าทั้งสองสิ่งเหล่านั้นเกิดขึ้น
หรือไม่ได้เลย
>> และถ้าคุณต้องการอย่างแท้จริงที่จะทำให้ เว็บไซต์ที่ใช้โดยคนที่
มหาวิทยาลัยคนในโลกแห่งความเป็นจริงการทำ บางสิ่งบางอย่างในความรู้สึกของการเริ่มต้น
เหล่านี้เป็นชนิดของ การตัดสินใจการออกแบบที่
เคยเป็นสิ่งสำคัญเพื่อ
มิฉะนั้นคุณจะเริ่มสูญเสียข้อมูลการสูญเสีย ผู้ใช้หรือในกรณีที่เลวร้ายที่สุดเท่าที่
ที่เราเคยเห็นที่นี่ที่อาจเกิดขึ้น สูญเสียเงิน
ดังนั้นอีกครั้งเพิ่มเติมเกี่ยวกับปัญหาที่เกิดขึ้นว่าในการตั้งค่า เจ็ดเช่นเดียวกับที่อาจจะเป็นบางส่วนของ
คุณในโครงการสุดท้าย
>> จึงขอเปลี่ยนภาพที่เรามี วิธีการสักครู่ที่ผ่านมาเพียง แต่ในอีกหนึ่ง
เพื่อให้ฉันจริงดูว่าฉันสามารถ -
Nope ที่หายไป
มีเป็น
>> ดังนั้นนี่คือที่เราเหลือเวลาที่ผ่านมา
และมันจะเปิดออกที่เรากำลังจะโยน อีกหนึ่งสิ่งที่เข้าผสมที่นี่ -
ภาษาจาวาสคริปต์ที่เรียกว่า
ดังนั้น JavaScript จริงเหมาะกับ ในงานชิ้นนี้ -
และฉันไม่ได้ออกจากห้องพักมากพอ ดังนั้นนี่คือตอนนี้ไม่ได้ที่จะไต่
ตกลงนี้เป็นน่าสงสารจริงๆ
ตกลงเพื่อให้เป็น JavaScript
ขวาทั้งหมด
ฉันจริงๆทำมันก่อความเสียหาย
ขวาทั้งหมด
>> ดังนั้น JavaScript เป็นโปรแกรมอื่น ภาษาและที่ผ่านมาของเราหากที่ช่วยให้
สร้างความมั่นใจว่ามีไม่มาก ของระบบท่อดับเพลิงไฟที่นี่
ดังนั้น JavaScript เป็นยังตีความ ภาษาซึ่งหมายความว่าคุณทำไม่ได้
รวบรวมเป็นศูนย์และคน
คุณเพียงแค่เรียกใช้
แต่สิ่งที่เป็นพื้นฐานที่แตกต่างกันด้วย JavaScript มักเป็นที่คุณ
ไม่ได้ทำงานบนเว็บเซิร์ฟเวอร์ของคุณ
มันไม่ได้ทำงานใน เครื่องต่อ
แต่จะได้รับการดาวน์โหลดโดยผู้ใช้ ผ่านทาง HTTP ลงในเบราว์เซอร์ของพวกเขา -
Chrome, Safari, Internet Explorer, Firefox, สิ่งที่ -
และเป็นเบราว์เซอร์ที่รันนี้ โดยเฉพาะอย่างยิ่งการเขียนโปรแกรมภาษา
>> ดังนั้นเพื่อให้มีความชัดเจน, PHP จึงห่างไกลได้รับ ดำเนินการอย่างใดอย่างหนึ่งที่บรรทัดคำสั่งใน
หน้าต่างสีดำและสีขาวของเราบนเซิร์ฟเวอร์ เช่นเครื่องคอมพิวเตอร์
ชอบเครื่องใช้หรือจะได้รับ ดำเนินการโดยเว็บเซิร์ฟเวอร์
ทำงานบนคอมพิวเตอร์
แต่รูปแบบที่นี่เป็น PHP ว่าป่านนี้ ได้รับการดำเนินการด้านเซิร์ฟเวอร์ดังนั้น
ผู้ใช้และเบราว์เซอร์ของผู้ใช้ ไม่เคยเห็นบรรทัดของรหัส PHP
>> ในความเป็นจริงถ้าคุณเคยเปิดเบราว์เซอร์สำหรับ เว็บไซต์หรืออื่นของคุณและคุณ
เห็นจริงโค้ด PHP ในหน้าต่างของคุณ มีคนเมาขึ้น
เพราะไม่ได้หมายถึงการเป็น ส่งไปยังเบราว์เซอร์โดยตรง
ก็ควรที่จะดำเนินการและหัน เป็นสิ่งที่ต้องการ HTML
>> แต่ JavaScript เป็นหลัก ตรงข้าม
มันหมายถึงการที่จะทำงานตามปกติภายใน ของหน้าต่างเบราว์เซอร์ของผู้ใช้
และสิ่งที่ชนิดของเว็บไซต์ที่ใช้ JavaScript แล้ววันนี้
>> เช่นเดียวกับตัวอักษรทุกเว็บไซต์ยอดนิยม
เว็บไซต์ทุกคนที่พวกคุณอาจจะ ใช้ในชีวิตประจำวันใช้งานจาวาสคริปต์สำหรับ
ที่ง่ายและแม้แต่ คุณสมบัติที่เซ็กซี่ที่สุด
>> ดังนั้นบางสิ่งบางอย่างเช่น Facebook คุยถ้าคุณใช้ที่
อย่างไรที่จริงการทำงานหรือไม่
ดีป่านนี้ทุกสิ่งที่เราได้ ทำกับ HTML และ PHP สันนิษฐานว่า
คุณดึงขึ้น URL และคุณกด Enter, และคุณจะเห็นเนื้อหาบางส่วน
และคุณคลิกการเชื่อมโยงที่มีการเปลี่ยนแปลง URL การเปลี่ยนแปลงหน้าและโหลดใหม่
เนื้อหาใหม่บางส่วน
คลิกที่ URL อื่นหรือส่งฟอร์มคุณ ได้รับการพาไปยังหน้าอื่นและ
คุณจะเห็นเนื้อหาใหม่บางส่วน
>> แต่การใช้อะไรบางอย่างเช่น Facebook Chat, หรือ Gchat หรือ Google Maps ไม่ค่อย
ไม่ทั้งหน้าการฟื้นฟูดังกล่าวว่า คุณจะเห็นหน้าจอสีขาวและชั่วขณะ
แล้วเนื้อหาใหม่
แต่หน้าเว็บวันนี้เป็นแบบไดนามิก ได้รับการปรับปรุงอีกครั้งและ
อีกครั้งและอีกครั้งการจัดเรียงทั้งหมด ของเบื้องหลัง
และปรากฎว่าเมื่อคุณไปที่ บางสิ่งบางอย่างเช่น Facebook, หรือ Gchat,
หรือ Gmail และการปรับปรุงหน้า โดยอัตโนมัติโดยไม่ต้องโหลด
หน้าจอทั้งสิ่งที่เกิดขึ้นก็คือ เบราว์เซอร์ของคุณได้ทำเรียงลำดับของการแอบ
การร้องขอเพิ่มเติม -
ไม่ได้สำหรับหน้าเว็บทั้งหมด แต่เพียงสำหรับ ชิ้นเล็ก ๆ น้อย ๆ ของข้อมูลเช่น
ข้อความโต้ตอบแบบทันทีว่าเพื่อนของคุณเพียงแค่ ส่งคุณหรือปรับปรุงสถานะที่
คนที่เพิ่งส่งคุณหรือทวีต คนส่งเพียงว่า
มันเป็นเพียงการแสดงเล็ก ๆ น้อย ๆ ข้อมูลแล้วการใช้งานจาวาสคริปต์นี้
ภาษาโปรแกรมที่จะเปลี่ยนสิ่งที่ หน้าเว็บโดยไม่ต้องมีลักษณะเหมือน
เซิร์ฟเวอร์ช่วยโดยไม่ต้องเซิร์ฟเวอร์ สร้าง HTM​​L ที่
>> ดังนั้นในระยะสั้น, JavaScript สามารถนำมาใช้แล้ว ที่ไม่เพียง แต่ดึงข้อมูลใหม่จาก
เซิร์ฟเวอร์โดยไม่ต้องโหลดทั้ง หน้าหรือส่งแบบฟอร์ม
นอกจากนี้ยังสามารถนำมาใช้เพื่อการเปลี่ยนแปลง ที่เรียกว่า DOM -
รูปแบบวัตถุเอกสาร -
ซึ่งเป็นเพียงวิธีแฟนซีสำหรับ บอกว่าต้นไม้ของ HTM​​L
ที่เราเห็นเป็นครั้งสุดท้าย
>> ดังนั้นเพื่อสร้างความมั่นใจให้, JavaScript เป็น syntactically จึงคล้ายกับ C เป็นอย่างดี
ไม่มีฟังก์ชั่นหลักของ
คุณเพียงแค่เริ่มต้นการเขียนรหัส และจะได้รับการดำเนินการหรือ
ตีความอย่างถูกต้องมากขึ้น
เงื่อนไขจะมีลักษณะเช่นนี้
ไม่แตกต่างจาก C หรือ PHP สำหรับเรื่องที่
นิพจน์หรือเอ็ดกัน จะมีลักษณะเช่นนี้
anded ร่วมกันมีลักษณะเช่นนี้
>> สวิทช์จะมีลักษณะเช่นนี้
สำหรับลูปจะมีลักษณะเช่นนี้
ในขณะที่ลูปจะมีลักษณะเช่นนี้
ทำในขณะที่ลูปจะมีลักษณะเช่นนี้
>> นี้เป็นใหม่
ดังนั้นจาวาสคริปต์ไม่ได้ foreach สร้างต่อ แต่นี้สร้าง
ตัวแปร i ในอาร์เรย์และฉันในเรื่องนี้ กรณีที่จะกลายเป็นค่าดัชนี
ดังนั้นจึงเป็นเพียงเล็กน้อยที่แตกต่างจากที่ foreach แต่รุ่นใหม่
JavaScript จะออกมาตลอดเวลา ดังนั้นแม้ว่าคุณสมบัติเหล่านี้ภาษา
มีการพัฒนา
>> และเป็นกัน JavaScript วันเหล่านี้ นอกจากนี้ยังสามารถนำมาใช้บนเซิร์ฟเวอร์เช่นเดียวกับ
PHP โดยใช้กรอบที่เรียกว่า Node.js.
หนึ่งใน CS50 ของ TFs เควินได้นำ สัมมนา Node.js ที่สามารถใช้ได้ที่
cs50.net/seminars
ดังนั้นถ้าคุณอยากรู้รู้ว่าคุณ สามารถใช้ในฝั่งเซิร์ฟเวอร์เป็น
ดี แต่ที่เป็นแนวโน้มล่าสุดที่เป็นธรรม แต่อย่างใดอย่างหนึ่งที่มีประสิทธิภาพที่ว่า
>> นี้จะแตกต่างกันเพียงเล็กน้อย
นี้เป็นอาร์เรย์ใน JavaScript
และสิ่งที่นัดคุณเป็นที่แตกต่างกัน เมื่อเทียบกับ C หรือ PHP?
มีเรื่องราวที่รวดเร็วไม่กี่ที่ เราสามารถบอกได้ที่นี่
สิ่งที่ขาดหายไปเมื่อเทียบกับ PHP?
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: ใช่?
ขออภัยพูดอีกครั้งหรือไม่
>> ผู้ชม: ไม่ประกาศ ชนิดของตัวแปร
>> DAVID ลัน: เราไม่ได้ประกาศ ชนิดของตัวแปร
ดังนั้นจริงค่อนข้างเช่น PHP, เราไม่ได้ กำหนดประเภทของตัวแปรนี้
แต่เรากำลังมากขึ้นโดยทั่วไป var บอกว่าตัวแปร
เราไม่ได้มีของ PHP รำคาญของ เครื่องหมายดอลลาร์ซึ่งในขณะที่น่าเบื่อที่จะ
ชนิดจะทำให้ชัดเจนมากขึ้นว่า สิ่งที่เป็นตัวแปร
ในขณะที่ที่นี่เรากำลังจัดเรียงของกลับไป วิธีการซีโดยเพียงแค่โทร
ตัวแปรตามชื่อที่เราต้องการ ที่จะให้มันเช่นหมายเลข
และยังเป็นเช่น PHP, เรามี วงเล็บสำหรับ
ค่าภายในอาร์เรย์ที่
>> ดังนั้นตัวแปรใน JavaScript ยัง อาจมีลักษณะเช่นนี้
สังเกตเห็นที่นี่เป็นสตริงที่เรียกว่า s, แต่มีเหมือนกันที่เราไม่ได้ระบุ
ว่ามันเป็นสตริง
แต่ที่นี่เป็นคุณลักษณะที่ไม่ได้ ที่มีอยู่ในตรงทางเดียวกันใน PHP
แต่บิตเช่นเดียวกัน
นี้เป็นวัตถุใน JavaScript
และวัตถุที่มีการจัดเรียงของกองทัพสวิส มีดของโครงสร้างข้อมูลในตัวคุณที่
สามารถใช้พวกเขาสำหรับจำนวนของสิ่งใด
>> ที่นี่ตัวอย่างเช่นที่เรากำลังประกาศ ตัวแปรที่เรียกว่าใบเสนอราคา
ชนิดของตัวแปรที่ เป็นวัตถุ
คุณสามารถคิดว่านี้เป็น struct C ที่มีคีย์และค่า
สัญลักษณ์เป็นกุญแจสำคัญ
FB เป็นค่าที่เห็นได้ชัด สัญลักษณ์หุ้น
จุลภาค
ราคาเป็นสำคัญอื่นและค่าที่เป็น เห็นได้ชัดว่าจุดที่ลอยหรือ
จำนวนมากขึ้นโดยทั่วไปใน JavaScript ของ $ 49.26
>> ดังนั้น PHP ไม่ได้มี -
เราไม่ได้เห็นในวัตถุ PHP ค่อนข้าง เช่นนี้ แต่เราไม่เห็นอะนาล็อก
ซึ่งเป็นสิ่งที่
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: arrays สมาคม
ดังนั้นในขณะที่ PHP มีอาร์เรย์ที่สมาคม มีไวยากรณ์ที่เคยเล็กน้อยเพื่อ
แตกต่างกัน -
เราเห็นวงเล็บ
เราเห็นสัญลักษณ์ลูกศรแปลก
JavaScript มีวัตถุ แต่นี้เป็น ส่วนใหญ่จะเป็นความแตกต่างและความหมาย
คำพ้องความหมายที่แตกต่างกันสำหรับตอนนี้
แต่เป็นกันนี้ยังมี PHP วัตถุในทางที่ Java และอื่น ๆ
ภาษามีวัตถุใน การเขียนโปรแกรมเชิงวัตถุ
แต่เราจะใช้เหล่านี้เพียงแค่ สำหรับชนิดข้อมูลสำหรับตอนนี้
วัตถุและเชื่อมโยงอาร์เรย์
>> หนึ่งนี้อาจทำให้มัน เล็ก ๆ น้อย ๆ ที่ชัดเจนมากขึ้น
นี่คือเหตุผลว่าทำไมวัตถุเป็นประโยชน์
เมื่อคุณต้องการที่จะประกาศนักศึกษา เช่น Zamyla เราสามารถจริง
แค็ปซูลเพื่อที่จะพูดในที่ วัตถุโดยใช้วงเล็บปีกกาเช่นเดียวกับ
ก่อนที่ทั้งกลุ่มของคีย์ และค่านิยมที่นี่
เรามี ID, บ้าน, และชื่อของ Zamyla ตามด้วยอัฒภาคเป็น
ตามปกติในตอนท้าย
>> ลงที่นี่เกินไปนี้เล็กน้อย ที่แตกต่างกัน แต่ยังมีประสิทธิภาพมาก
วันนี้
ที่นี่มากมายและฉันรู้ว่าเพราะ มีวงเล็บขึ้นตาราง
ด้านบนและวงเล็บสี่เหลี่ยม ที่ด้านล่าง
และนี่คืออาร์เรย์ของข้อมูลสิ่งที่ ชนิดที่เห็นได้ชัดใน JavaScript?
นี้เป็นอาเรย์ของมันก็ดู เช่นสามวัตถุ
และฉันรู้ว่ามันเป็นเพียงวัตถุ เพราะวงเล็บปีกกา
และแจ้งให้ทราบมีวงเล็บปีกกาเปิด สิ่งบางอย่างใกล้วงเล็บปีกกาจุลภาค
แล้วบางจุลภาค แล้วบางอย่างเพิ่มเติม
เพื่อให้เป็นสามข้อโต้แย้ง คั่นด้วยเครื่องหมายจุลภาคสอง
>> ดังนั้นนี่คืออาร์เรย์ของสามวัตถุ
และแต่ละของวัตถุเหล่านั้นจะปรากฏเป็น สมาชิกนักเรียนหรือพนักงานบางส่วน
จัดเรียงแต่ละคนมี ID, บ้านและชื่อ
แต่ฉันได้บางสิ่งบางอย่างที่เรียกว่านี้ เรียกว่า JSON -
JavaScript วัตถุสัญกรณ์
และนี่คือรูปแบบข้อมูลที่จริง จึงเป็นที่นิยมมากและใน
สมัยวันนี้ว่าถ้าคุณเขียน โปรแกรมประยุกต์ที่ใช้ Facebook
API, API Twitter เกือบจริงๆ API ที่ออกมีวันนี้
รวมทั้งบางส่วนของ CS50 ของตัวเอง ข้อมูลที่คุณได้รับกลับไม่ได้อยู่ใน
รูปแบบ CSV โรงเรียนเก่า
>> เพราะจำได้ว่า CSV ง่ายสุด
มันเป็นเพียงคอลัมน์แยกออกจากกัน ด้วยเครื่องหมายจุลภาค
ข้อมูล JSON ช่วยให้คุณมีข้อมูลมากขึ้น
มันเชื่อมโยงที่สำคัญที่มีค่าทุกอย่าง พวกเขาไม่ได้มีเพียงแค่คิดว่า
คอลัมน์ 0 เป็นหนึ่งในค่าคอลัมน์ เป็นอีกหนึ่งในสองคอลัมน์เป็นอีกหนึ่ง
ทุกอย่างในวัตถุ JSON นี่คือการจัดเรียง ของตนเองอธิบายเพราะทุก
หนึ่งในรายชื่อในแฟ้มนี้มีตัวอักษร ชื่อที่ด้านหน้าของมันเป็น
สายยก
>> ดังนั้นลองมาดูที่ สองสามตัวอย่างที่นี่
ผมขอไปลงในเครื่อง
และแจ้งให้เราไปลงใน vhost ของเรา ไดเรกทอรีในที่สาธารณะ
และแจ้งให้เราไปลงใน ไดเรกทอรี JavaScript
และให้ไปข้างหน้าและเปิดขึ้น Dom-0.html ที่ DOM ก็หมายความว่า
รูปแบบวัตถุเอกสาร
มันเป็นสิ่งที่ต้นไม้ที่ ฉันหมายถึงก่อนหน้านี้
>> และแจ้งให้เรานำเสนอดังต่อไปนี้
ที่นี่หน้าเว็บที่มีความเป็น ร่างกายง่ายสวย
ดังนั้นลงที่นี่ที่ด้านล่าง แจ้งให้ทราบฉันมีแบบฟอร์ม
เราได้เห็นเหล่านั้นก่อน
มันมีอยู่สองปัจจัยหนึ่งซึ่งมี ID ชื่อหนึ่งซึ่งมีชนิดของ
ส่งและเป็นครั้งแรก ประเภทหนึ่งคือข้อความ
ดังนั้นนี้จริงเสียงง่ายสวย
>> ลองไปที่นี่
ลองกลับไปที่หน้านี้ที่นี่
ให้เราเข้าไปใน localhost และไปลงใน ไดเรกทอรี JavaScript ของเราและไปที่
Dom-0, และที่นี่เรามีรูปแบบนี้
เพื่อให้เป็นที่เห็นได้ชัด หน้าทั้งหมดนี้ไม่
แต่ก็มีข้อมูลชื่อที่มี ปุ่มส่ง
แต่ฉันไม่ได้จะใช้ PHP ที่นี่
ฉันจะทำทุกอย่างที่ฝั่งไคลเอ็นต์ ดังนั้นการพูดใน JavaScript ดังต่อไปนี้
>> ขอให้สังเกตว่าฉันได้รับการตั้งชื่ออย่างแน่นอน ด้านการป้อนข้อมูลนี้ที่ไม่ซ้ำกัน
ระบุซึ่งจะจริง ช่วยฉันเวลาในขณะนี้
และแจ้งให้ทราบผมแนะนำแท็กอื่น ในหัวของหน้าเว็บของฉัน
แท็ก
>> ดังนั้นมันอยู่ในความรู้สึกนี้ว่า JavaScript เป็น ภาษาโปรแกรมฝั่งไคลเอนต์
ในกรณีนี้เช่นเดียวกับ CSS, ฉันได้ใส่ มันตรงภายในของ HTM​​L ของฉัน
แต่แจ้งให้ทราบที่ผมเคยประกาศฟังก์ชั่น ที่มีลักษณะเล็ก ๆ น้อย ๆ เช่น PHP
syntactically แต่นี้เป็นจริง JavaScript เพราะอีกครั้งก็
ฝั่งไคลเอนต์ในเบราว์เซอร์
และคาดเดาสิ่งที่เป็นไป ทำแม้ว่าบางส่วนของไวยากรณ์
ที่นี่เป็นที่ใหม่
>> ผู้ชม: ทักทายกับใครก็ได้
>> DAVID ลัน: มันจะกล่าวทักทาย ใครก็ตามที่จะเข้าชมหน้านี้
ดังนั้นวิธีที่?
>> เพื่อแจ้งให้ทราบก็จะเปิดออกใน JavaScript มีการแจ้งเตือน () ฟังก์ชัน
นี้เป็นฟังก์ชั่นมากเรียงลำดับของความเศร้าที่ จริงๆเพียงแค่มีแนวโน้มที่จะรบกวนผู้ใช้
มันไม่ได้เป็นอย่างใดอย่างหนึ่งที่คุณควรใช้ ปกติ แต่มันเป็นที่รวดเร็วและสกปรก
วิธีการจัดเรียงของสิ่งที่พิมพ์ ให้กับผู้ใช้แบบกราฟิก
ติดต่อเช่นเดียวกับเบราว์เซอร์
สังเกตเห็นที่นี่ที่ฉันมี สตริงในราคาเดียว
แต่กลับกลายเป็นว่าไม่เหมือน C, JavaScript จริงจะมีเพียงครั้งเดียวที่คุณจะใช้
คำพูดและตรงไปตรงมาเป็นเพียงชนิด ของการประชุมโวหารในหมู่
โปรแกรมเมอร์ JavaScript ที่จะใช้ราคาเดียว
PHP, พวกเขาเป็นจริงมีเพียงเล็กน้อย ความหมายที่แตกต่างกัน
แต่ตอนนี้เพิ่งรู้ว่า นั่นคือเหตุผลเดียวที่
การประชุมใน JavaScript ที่มักจะให้ ใช้คำพูดเดียว แต่เราสามารถใช้
คำพูดสองในสถานที่ที่ทั้งสองได้เป็นอย่างดี
>> ดังนั้นนี้เป็นที่น่าสนใจ
จำครั้งสุดท้ายที่เราได้ที่ ภาพบนหน้าจอที่ดึงต้นไม้
ที่คุณมีโหนด HTML และ หัวโหนดและโหนดร่างกาย
แล้วข้อความบางส่วน
แต่มีโหนดพิเศษอย่างใดอย่างหนึ่งที่ ด้านบนสุดที่ผมเรียกว่าเอกสาร
ดีก็จะเปิดออกใน JavaScript ใด ๆ เวลาที่คุณเขียนโปรแกรมใน JavaScript
ในเบราว์เซอร์ที่คุณสามารถเข้าถึง ตัวแปรทั่วโลกพิเศษ
ในทำนองเดียวกันกับ superglobals ของ PHP, หนึ่งนี้เรียกว่าใน
เอกสารพิมพ์เล็กทั้งหมด
>> มันก็เหมือนกับ struct แต่โครงสร้างนี้ นอกจากนี้ยังมีฟังก์ชั่นภายในของมัน
ดังนั้น struct C ก็มีข้อมูลทั่วไป
แต่วัตถุ JavaScript เช่นนี้ ในทางเทคนิคยังเป็นมีฟังก์ชั่น
หรือที่เรียกว่าวิธีการ ภายในของมัน
และคุณสามารถเรียกใช้ฟังก์ชันภายในของ วัตถุนี้ค่อนข้างอักษรทำดี
ชื่อจุดและจากนั้นชื่อของ ฟังก์ชั่นหรืออีกวิธี
มันเป็นเพียงคำพ้องความหมายจริงๆ
>> และสิ่งที่ไม่ฟังก์ชั่นนี้จะทำอย่างไร
คุณสามารถชนิดของคาดเดาจากชื่อของมัน
ได้รับองค์ประกอบโดยใช้ ID
ดังนั้นนี้เป็นไปเพื่อค้นหาหน้าเว็บ ค้นหาต้นไม้ที่กำลังมองหา
สิ่งที่โหนดองค์ประกอบ AKA มี ID ที่ไม่ซ้ำกันของคำพูดชื่อได้นำมาอ้าง
และแล้วสิ่งที่ฉันจะทำอย่างไร
ฉันจะได้รับค่าที่อยู่ภายในของ โหนดที่อยู่ในต้นไม้และฉันจะ
อย่างใดทักทายกับชื่อที่
>> เพื่อใช้คาดเดาถึงแม้เราไม่ได้ เห็นนี้ยังทำสิ่งที่บวก
สัญลักษณ์ที่หมายถึงที่นี่และที่นี่น่าจะเป็น?
>> ผู้ชม: Concatenate
>> DAVID ลัน: Concatenate
ขวาและเหล่านี้เป็นเพียง การเรียงลำดับของการออกแบบการตัดสินใจ
คนที่ทำปีที่ผ่านมา
ใน PHP, คุณ concatenate สิ่งที่มีจุด
ใน C คุณกระโดดผ่านห่วงและหลาย เรียกฟังก์ชันเช่น strcopy () หรือ
strcat () หรือฟังก์ชั่นอื่น ๆ
แต่ใน JavaScript คุณใช้ pluses
ดังนั้นนี่เป็นเพียงการเชื่อมโยง สามสาย -
สวัสดีชื่อแล้ว เครื่องหมายอัศเจรีย์
>> ดังนั้นเมื่อและเหตุผลที่เป็นฟังก์ชั่นนี้ เรียกว่า?
ดีจะคาดเดาจาก HTML ที่ด้านล่าง
ทำไมทักทาย () เรียกว่าหรือเมื่อ?
>> เห็นได้ชัดว่าดีที่สุดเท่าที่ผมสามารถบอกได้ใน ส่งเมื่อฟอร์มนี้จะถูกส่ง
ฉันจะทำสิ่งที่เป็น ภายในของคำพูดเหล่านี้
และโดยเฉพาะผมจะเรียก ทักทาย () และจากนั้นกลับเท็จ
>> ดีขอดูสิ่งที่สุทธิ ผลกระทบที่นี่เป็นครั้งแรก
เพื่อให้ฉันไปข้างหน้าและพิมพ์ ในการพูด, ลอเรนส่ง
สวัสดีลอเรน
ลองดูว่าอาจจะเป็นเพียง การดำเนินงานที่โชคดี
Nope
จึงพิมพ์ออกสิ่งที่ ชื่อจริงผมวางมี
>> แต่สังเกตเห็นสิ่งที่ไม่เปลี่ยน
URL ที่ยังคงอุดม-0.html
ไม่มี register.php เป็น
ไม่มีแฟ้มที่สองเป็น
ไม่มีการดำเนินการลักษณะเป็น
ดังนั้นสิ่งที่เป็นเท็จนี้กลับ น่าจะทำอะไร
ทำไมฉันจึงเรียกทักทาย () แล้ว กลับเท็จอาจ?
สิ่งปกติท​​ี่เกิดขึ้นเมื่อคุณคลิก ส่งแบบฟอร์มว่าแม้เรามี
ที่เห็นในสัปดาห์ที่ผ่านมาหรือไม่
>> ผู้ชม: [ไม่ได้ยิน]
>> DAVID ลัน: มันจะไปที่ใดที่หนึ่งใช่ไหม
มันจะไป URL ปลายทางบาง
แต่ฉันไม่ต้องการที่จะเกิดขึ้นที่นี่
ฉันต้องการหน้าเว็บของฉันที่จะสมบูรณ์ แบบไดนามิกเช่น Gmail ที่เมื่อคุณ
มีคุณอยู่ที่นั่น
URL ที่ไม่เปลี่ยนแปลงไปในทางที่ แสดงให้เห็นทั้งหน้าเป็นโหลด
แต่ผมแค่อยากจะเปลี่ยนแปลงอะไรบางอย่าง เช่นการพิมพ์ออกบางสิ่งบางอย่าง
ที่นี่บนหน้าจอ
>> ดีให้ฉันทำความสะอาดนี้ ขึ้นเล็กน้อย
ผมขอเปิดไม่ได้อุดม-0 แต่ ให้ฉันเปิด Dom-2
เพียงเพื่อให้คุณได้เห็นรูปแบบบางส่วนที่นี่
>> แต่กลับกลายเป็นว่าสิ่งที่เราเพียงแค่ ไม่ใช้วัตถุดิบ JavaScript
ดังนั้นนี่คือภาษาอย่างแท้จริง JavaScript
บางท่านอาจจะรู้ว่าของ ห้องสมุด jQuery เรียกว่า
>> ดังนั้น jQuery ไม่เหมือนกัน สิ่งที่เป็น JavaScript
มันเป็นเพียงแค่ห้องสมุดที่สมาร์ทจริงๆ คนเขียนและความนิยมดังกล่าว
ที่เกือบทุกคนในโลกในขณะนี้ ใช้ jQuery เมื่อใช้ JavaScript
และได้อย่างรวดเร็วก่อนตรงไปตรงมาก็ ดูเล็ก ๆ น้อย ๆ ที่เป็นความลับมากขึ้น
แต่คุณจะพบโดยเฉพาะอย่างยิ่งถ้าคุณไป มีโครงการขั้นสุดท้ายของคุณกับเว็บ
การพัฒนาคุณจะพบว่านี้ ทำความสะอาดสิ่งขึ้นและช่วยให้คุณประหยัดมาก
ไม่กี่บรรทัดของรหัส
>> เพื่อให้เพียงอย่างรวดเร็วที่ว่า รูปแบบนี้คือการทำงาน
สังเกตเห็นสิ่งที่ฉันไม่เอาที่เห็นได้ชัด จาก HTML ของฉันได้อย่างไร
ไม่มีการจัดการเกี่ยวกับการส่ง เพื่อที่จะพูด
ไม่มีคุณลักษณะที่เป็น
เพราะคุณรู้ว่าสิ่งที่ ฉันไม่ได้จริงๆชอบ
ฉันรู้สึกเหมือนเราถูกล้ม เป็นนิสัยเก่าที่มี
เช่นเดียวกับมันก็เริ่มที่จะรู้สึกเลอะเทอะ การผสมทั้ง CSS ด้วย
HTML เพราะคุณชนิดของการขว้างปา ภาษาที่แตกต่างกันทั่วทุกมุม
สถานที่คล้ายนี้ได้เริ่มต้นที่จะรู้สึก เช่นถนนที่ดีที่จะไปลงที่
ฉันวาง JavaScript รหัสภายในของฉัน HTML มากกว่าแฟมันออกมา
>> เพื่อให้เป็นบทเรียนที่นี่
ใน Dom-2.html ผมแฟมันออกมา
และฉันทำสิ่งที่เล็กน้อย ต่างกัน
สำหรับตอนนี้ผมกำลังจะไปคลื่นมือของฉัน สิ่งนี้จริงๆ
ภายใต้ฝากระโปรง
เพียง แต่ตอนนี้คิดว่าที่แรก บรรทัดของรหัสในห้องสมุดนี้
jQuery เรียกว่าเพียงแค่หมายความว่าเมื่อ เอกสารพร้อมทำต่อไปนี้
>> เพราะหน้าเว็บที่สามารถใช้ เวลาที่จะโหลดบาง
คุณอาจจะมีในอินเทอร์เน็ตช้า การเชื่อมต่อและมันอาจจะมีการปั่น
และการปั่นและในที่สุดก็โหลด
บรรทัดของรหัสที่เพิ่งกล่าวว่ารอจนกว่า ทั้งหน้าพร้อมเอกสาร
พร้อมก่อนที่จะดำเนินรหัสนี้
>> และตอนนี้สังเกตเห็นนี้อาจเป็น มีประโยชน์มากที่สุดเป็นครั้งแรก
นำมาใช้จาก jQuery
บรรทัดนี้ที่นี่จะคล้ายกันมากในจิตวิญญาณ กับสายที่ยาวกว่านี้ที่นี่
ในขณะที่ในรหัส JavaScript ดิบมี มีเอกสารวัตถุระดับโลกที่
มีฟังก์ชั่นที่เรียกว่า getElementById () คนที่เขียน
jQuery ง่ายที่จะเพียงแค่พูด เครื่องหมายดอลลาร์และจากนั้นภายใน
ใส่วงเล็บสองราคาแล้ว ใส่สัญลักษณ์กัญชาตามมาด้วย
ID ที่ไม่ซ้ำกันที่คุณต้องการที่จะคว้า
ดังนั้นนี่คือเทียบเท่ากับ document.getElementById
>> ในขณะที่. ส่งเพียงหมายถึง การส่งรูปแบบใดก็ตามที่คุณกำลัง
หมายถึงทางด้านซ้ายไป ข้างหน้าและการดำเนินการนี​​้
แต่ตอนนี้อยากรู้อยากเห็นมากเกินไป
สิ่งที่แปลกเกี่ยวกับสิ่งที่ ผมได้เน้นที่นี่
ไม่เพียง แต่มันเป็นชนิดของ syntactically ใหม่นอกจากนี้ยังมีบางสิ่งบางอย่างที่ขาดหายไป
>> ผู้ชม: มันเรียกว่าเพียงแค่ฟังก์ชั่ทำไม
มันไม่ได้เรียกว่าการแจ้งเตือน?
>> DAVID ลัน: ใช่
ดีเพื่อการแจ้งเตือน () เป็นลง ที่นี่เพื่อให้เกิดความเป็นธรรม
แต่ไม่มีการเอ่ยถึงไม่มี ชื่อเช่นคุณรู้ว่า foo หรือ
บางสิ่งบางอย่างขึ้นที่นี่
และแน่นอนนี้เป็นหนึ่งในคุณสมบัติ ของ JavaScript ที่ค่อนข้าง
ที่มีประสิทธิภาพ แต่ยังค่อนข้างใหม่
และ PHP จริงมีนี้เป็นอย่างดี
>> ให้ฉันไปข้างหน้าและทำ สิ่งที่จริงอย่างรวดเร็ว
ให้ฉันไปข้างหน้าและวางนี้ออกจากที่นี่
ให้ฉันทำเช่นนี้
ฟังก์ชัน
ขอเรียกตัวจัดการนี​​้ ()
ฟังก์ชั่นการจัดการเพื่อที่จะพูด
อะไรบางอย่างที่จะจัดการกับการดำเนินการบางอย่าง
ให้ฉันทำความสะอาดเยื้องของฉัน
และวางนี้ที่นี่
และใส่ที่นี่
อ๋อ
ตกลง
>> ดังนั้นตอนนี้ฉันมีฟังก์ชันที่เรียกว่า ตัวจัดการ () ที่ฉันไม่ทราบจริงๆ
สิ่งที่มันไม่ยัง
มันก็ยังคงมีสิ่งที่
ขออภัย
มามากเกินไป
ให้ทำเช่นนี้
ทั้งหมดขวา
ขอโทษ
ทั้งหมดขวา
ให้ฉันทำเช่นนี้
ตกลง
ที่มีลักษณะที่ดีและตรง ไปข้างหน้าในขณะนี้
ให้ฉันทำเช่นนี้
ทำเช่นนี้
และตกลง
ดังนั้นตอนนี้เรามาลองใส่นี้กว่าที่นี่
ไม่มีการเขียนโปรแกรมเพิ่มเติมเกี่ยวกับการบิน
ตกลง
>> ดังนั้นตอนนี้ให้กลับไป เรื่องราวเริ่มต้นขึ้น
ก่อนหน้านี้ผมบอกว่าสายนี้ที่นี่ หมายความว่าเมื่อเอกสารพร้อมไป
ข้างหน้าและทำเช่นนี้
อะไรที่ฉันต้องการทำอะไร?
ดีโดยเฉพาะฉันต้องการไป ข้างหน้าและทำต่อไปนี้
ดำเนินการบรรทัดของรหัสนี้แล้ว สิ่งที่ฉันต้องการให้คุณทำคือการเรียกสิ่งนี้ว่า
ทำงานเมื่อการส่งแบบฟอร์ม
>> ตอนนี้เป็นสิ่งที่น่าสนใจ
นี้ไม่ได้เป็นตัวเองฟังก์ชั่น
สังเกตเห็นผมไม่ได้ใส่วงเล็บ ที่นี่ในวิธีปกติ
ผมอย่างแท้จริงผ่านฟังก์ชันที่เรียกว่า ตัวจัดการ () เพื่อฟังก์ชั่นอื่น
เรียกว่าส่ง () เป็นอาร์กิวเมนต์เป็น แม้ว่ามันจะเป็นเหมือนตัวแปร
และนี่คือหนึ่งในคุณสมบัติของ JavaScript เป็นฟังก์ชั่นของตัวเอง
เป็นจริงเพียงแค่วัตถุ
ในความเป็นจริงพวกเขากำลังจริงๆเพียงแค่ ตัวแปรของการจัดเรียงบาง
และถ้าชื่อของฟังก์ชันคือ ตัวจัดการ () มีเหตุผลที่ฉันไม่สามารถไม่มี
ผ่านมันในเป็นอาร์กิวเมนต์ที่นี่
และสิ่งนี้หมายความว่าเมื่อรูปแบบ ที่มีรหัสของการสาธิตคือ
ส่งการเรียกใช้ฟังก์ชันนี้
>> แต่ตอนนี้ถ้าฉันยกเลิกการทั้งหมดนี้ ผมไม่แล้วทำไมบางทีอาจจะทำ
ขณะนี้ที่ผ่านมา?
ดีนี้เป็นฟังก์ชั่นที่ไม่ระบุชื่อ
ตรงไปตรงมาเพราะฉันรู้ว่าทำไมฉัน รบกวนให้เสียเวลาประกาศ
ฟังก์ชันที่เรียกว่าตัวจัดการ () เท่านั้นที่จะเรียก ในเพียงหนึ่งเดียวและสถานที่?
ถ้าฉันไม่จำเป็นต้องมีชื่อและที่ฉันทำไม่ได้ ต้องเรียกมันมากกว่าที่เดียว
ให้เพียงใช้ฟังก์ชั่น ขวาที่ฉันต้องการมัน
และเพื่อให้การสนับสนุน JavaScript และ PHP อะไร จะเรียกว่าฟังก์ชั่นที่ไม่ระบุชื่อ
ให้ฉันไปทำตรงที่ที่นี่
>> แต่เราเพียงแค่รอยขีดข่วนบนพื้นผิว
ขอแซวมีเพียงคู่ ตัวอย่างสุดท้ายที่นี่
>> ถ้าฉันไปเป็น quote.php
ขอให้สังเกตว่านี้เป็นจริง PHP ฟังก์ชั่นซึ่งเป็นโปรแกรม PHP ที่ผมเขียน
ที่คาดว่าจะมีพารามิเตอร์ที่เรียกว่า HTTP สัญลักษณ์และฉันสามารถผ่านใน
มูลค่าเช่น FB
และถ้าเราจริงมองไปที่แหล่งที่มา รหัสนี้จะสอบถามเว็บไซต์ฟรี
เรียกว่า Yahoo การเงินเช่นเดียวกับ P-ชุด เจ็ดและจะกลับมาให้ฉัน
สิ่งที่เห็นได้ชัดใน รูปแบบที่รู้จักกันเป็น JSON -
JavaScript Object สัญลักษณ์
มันเป็นเพียงวัตถุ
สังเกตวงเล็บปีกกา, ราคา, ลำไส้ใหญ่และจุลภาค
>> ตอนนี้ขณะนี้เป็นเย็นสวย
เพราะผมอาจจะสามารถใช้การเขียนโปรแกรม ภาษาในการสร้าง URL ที่
มองว่าเช่นนี้แบบไดนามิก ใช่มั้ย?
ฉันสามารถเปลี่ยนนี้ไปที่ Google และกลับของ Google
ราคาหุ้นของ $ 1,017.55
ดังนั้นขอดูว่าเราไม่สามารถใช้ในตอนนี้
>> ให้ฉันไปที่อาแจ็กซ์-0 ที่นี่ซึ่ง ดูเหมือนว่าต่อไปนี้
มันเป็นเพียงเว็บไซต์ที่มี แบบฟอร์มที่มีปุ่ม
ที่นี่ให้ฉันไปข้างหน้าและพิมพ์ใน YHOO สำหรับสัญลักษณ์หุ้นของ Yahoo คลิกรับ
อ้างและตอนนี้สังเกตเห็นผมเคย การแจ้งเตือนที่มี 32.86
>> ให้ฉันจริงไปเป็นรุ่นที่นักเล่น ของหน้านี้สองรุ่นและ
พิมพ์สมมติว่าไมโครซอฟท์ MSFT
ขอใบเสนอราคา
และตอนนี้สังเกตเห็นไม่มีการแจ้งเตือน
สังเกตุที่มันว่าราคา จะถูกกำหนด?
มีที่ง่ายที่สุดของตัวอย่างที่เป็น คำแนะนำในสิ่งที่ Gchat, และ Facebook
แชท, และ Gmail และอื่น ๆ เช่น เว็บไซต์ที่ทำตามได้จริง
เปลี่ยนหน้าเว็บ
>> ประกาศฉบับนี้
ผมขอโหลดหน้าเว็บใหม่
ผมขอเปิดการตรวจสอบของ Chrome
ให้ฉันไปกับองค์ประกอบ แท็บลงที่นี่
ตอนนี้สังเกตเห็นว่าผมซูมลงที่นี่และ เปิดขึ้นนี้แจ้งให้ทราบว่าเป็นของฉัน
HTML DOM - รูปแบบวัตถุของฉันเอกสาร
นี่คือ HTML ของฉัน
แต่ตอนนี้สังเกตเห็นถึงแม้ว่ามันจะ เป็นเพียงเล็กน้อยยากที่จะเห็นมันในทั้งสอง
สถานที่ในครั้งเดียวถ้าผมพิมพ์ลงใน FB ขึ้นที่นี่ดูด้านล่าง
ของหน้าจอเท่านั้น
>> ก็จริงที่เปลี่ยนแปลง HTML ของฉันทันที
และจะทำเช่นนี้ค่อนข้างง่าย โดยการทำบางสิ่งบางอย่างเช่นนี้
ถ้าผมเปิด Ajax-2, การดำเนินการแจ้งให้ทราบล่วงหน้า สิ่งที่เป็นเซ็กซี่เป็น
ที่แม้ว่ามันจะน่าเกลียดสวย แต่ที่ซับซ้อนเช่นที่
ตามหน้าที่ แต่ก็มีบาง HTML ที่ด้านล่าง
แต่สังเกตเห็นผมใช้ในการติดแท็ก
เราไม่ได้ใช้ก่อนหน้านี้ แต่นี้เป็น เหมือน แต่มันก็ไม่ได้บังคับ
ทุกอย่างลงบนบรรทัดใหม่
มันก็ทำให้ภูมิภาคสี่เหลี่ยม ในบรรทัดเดียวกันเป็นหลัก
>> ขอให้สังเกตว่าผมให้มัน ID ของราคา
และมันจะเปิดออกโดยใช้เดียวกัน ห้องสมุด JavaScript ฉันมีฟังก์ชั่น
เรียกว่าอ้าง () ที่เรียกว่าเมื่อใดก็ตามที่ การส่งแบบฟอร์ม
และสิ่งที่ฉันทำวันนี้
ผมประกาศตัวแปรใน JavaScript ที่เรียกว่า, url ประหยัดค่า
quote.php สัญลักษณ์? =
ในคำอื่น ๆ ผมเองครับเริ่มต้น เพื่อเตรียมความพร้อมการร้องขอ HTTP แล้ว
ผมเชื่อมโยงไปยังที่ที่มีบวก สิ่งที่องค์ประกอบที่มีรหัส
ของสัญลักษณ์ที่แจ้งให้ทราบว่าเป็น ฟิลด์ข้อความขวาลงที่นี่
ดังนั้นเช่นเดียวกับที่เรามีรูปแบบในอดีตที่ผ่านมา
>> และจากนั้นก็จะเปิดออกใน jQuery ถ้าคุณ โทร. Val () ที่เรียกร้องของ Val
ฟังก์ชั่นฟังก์ชั่นค่าที่ได้รับ สิ่งที่ผู้ใช้มีการพิมพ์นิ้ว
และแล้วทั้งหมดของเครือข่ายการจราจร ที่เกิดขึ้นนี้
$. getJSON
>> และเป็นกันเครื่องหมายดอลลาร์เป็น เพียงสัญกรณ์ชวเลข
มันจริงๆ jQuery.getJSON
รับฉันไป JSON จาก URL นี้และเมื่อ ขอกลับมาเรียกสิ่งนี้ว่า
ฟังก์ชั่นและส่งผ่านเป็นอาร์กิวเมนต์ สิ่งที่กลับมาจากเซิร์ฟเวอร์
>> ดังนั้นในคำอื่น ๆ ถ้าผมกลับไปที่ เบราว์เซอร์และผมก็กลับไป quote.php,
สิ่งที่เบราว์เซอร์ของฉันจะทำคือการได้รับ ก้อนของข้อมูลนี้
และเมื่อฉันไปที่หน้าเว็บนี้ที่นี่ แจ้งให้ทราบถ้าเราแทนไปยังเครือข่าย
แท็บและล้างมันแล้วพิมพ์ใน สิ่งที่ต้องการ GOOG สำหรับ Google และรับ
อ้างสังเกตเห็นหน้าไม่เปลี่ยนแปลง
แต่คำขอ HTTP ได้ทำและสิ่งที่ กลับมาที่นี่ถ้าเรามองไปที่
การตอบสนองเป็นมัดทั้ง JSON ที่เราเข้าถึงได้ในที่สุดด้วย
สายนี้ง่ายที่นี่
>> ข้อมูลเป็นสิ่งที่ถูกอากาศ จากเซิร์ฟเวอร์
ราคาเป็นชื่อของ ที่สำคัญฉันดูแลเกี่ยวกับ
ดังนั้น data.price ให้ผมว่า
>> ตอนนี้ในขณะเดียวกันนี้ เป็นตัวอย่างที่ผ่านมา
คุณสามารถทำยังกับหน้า
หนึ่งจริงทั้งสอง
เราสามารถนำกลับมา แท็กถ้าคุณจำนี้
นั่นเป็น JavaScript
เราสามารถทำเช่นนั้นได้
ที่น่าตื่นเต้นมาก
เราจะออกจากที่เป็นที่น่าตื่นเต้น
>> แต่โลดโผนคุณสามารถ ทำสิ่งที่ต้องการนี​​้
ถ้าผมไป geolocation-1 ก็จะเปิดออก Chrome ที่รู้ว่าเราอยู่ที่
ละติจูดลองจิจูด 42.37. -71.10
ดังนั้นจึงมีมากขึ้นมี ที่จำหน่ายของคุณ
แต่ในสัปดาห์ถัดไปที่
เห็นคุณจันทร์