# โครงการส่วนขยายเบราว์เซอร์ ตอนที่ 1: ทุกสิ่งเกี่ยวกับเบราว์เซอร์ ![ภาพสเก็ตช์เบราว์เซอร์](../../../../translated_images/browser.60317c9be8b7f84adce43e30bff8d47a1ae15793beab762317b2bc6b74337c1a.th.jpg) > ภาพสเก็ตช์โดย [Wassim Chegham](https://dev.to/wassimchegham/ever-wondered-what-happens-when-you-type-in-a-url-in-an-address-bar-in-a-browser-3dob) ## แบบทดสอบก่อนเรียน [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/web/quiz/23) ### บทนำ ส่วนขยายเบราว์เซอร์ช่วยเพิ่มฟังก์ชันการทำงานเพิ่มเติมให้กับเบราว์เซอร์ แต่ก่อนที่คุณจะสร้างส่วนขยาย คุณควรเรียนรู้เกี่ยวกับวิธีการทำงานของเบราว์เซอร์เสียก่อน ### เกี่ยวกับเบราว์เซอร์ ในบทเรียนชุดนี้ คุณจะได้เรียนรู้วิธีสร้างส่วนขยายเบราว์เซอร์ที่สามารถใช้งานได้กับเบราว์เซอร์ Chrome, Firefox และ Edge ในส่วนนี้ คุณจะได้ค้นพบวิธีการทำงานของเบราว์เซอร์และวางโครงสร้างของส่วนขยายเบราว์เซอร์ แต่เบราว์เซอร์คืออะไร? มันคือซอฟต์แวร์ที่ช่วยให้ผู้ใช้งานสามารถเข้าถึงเนื้อหาจากเซิร์ฟเวอร์และแสดงผลบนหน้าเว็บได้ ✅ เรื่องราวเล็กน้อย: เบราว์เซอร์ตัวแรกมีชื่อว่า 'WorldWideWeb' และถูกสร้างขึ้นโดย Sir Timothy Berners-Lee ในปี 1990 ![เบราว์เซอร์ยุคแรก](../../../../translated_images/earlybrowsers.d984b711cdf3a42ddac919d46c4b5ca7232f68ccfbd81395e04e5a64c0015277.th.jpg) > เบราว์เซอร์ยุคแรกบางตัว โดย [Karen McGrane](https://www.slideshare.net/KMcGrane/week-4-ixd-history-personal-computing) เมื่อผู้ใช้เชื่อมต่ออินเทอร์เน็ตโดยใช้ที่อยู่ URL (Uniform Resource Locator) ซึ่งมักจะใช้โปรโตคอล Hypertext Transfer Protocol ผ่านที่อยู่ `http` หรือ `https` เบราว์เซอร์จะสื่อสารกับเว็บเซิร์ฟเวอร์และดึงหน้าเว็บมาแสดงผล ในขั้นตอนนี้ เอนจินการเรนเดอร์ของเบราว์เซอร์จะแสดงผลหน้าเว็บบนอุปกรณ์ของผู้ใช้ ซึ่งอาจเป็นโทรศัพท์มือถือ เดสก์ท็อป หรือแล็ปท็อป เบราว์เซอร์ยังมีความสามารถในการแคชเนื้อหาเพื่อไม่ให้ต้องดึงข้อมูลจากเซิร์ฟเวอร์ทุกครั้ง นอกจากนี้ยังสามารถบันทึกประวัติการใช้งานของผู้ใช้ เก็บ 'คุกกี้' ซึ่งเป็นข้อมูลขนาดเล็กที่ใช้บันทึกกิจกรรมของผู้ใช้ และอื่น ๆ อีกมากมาย สิ่งสำคัญที่ต้องจำเกี่ยวกับเบราว์เซอร์คือ เบราว์เซอร์แต่ละตัวไม่เหมือนกัน! แต่ละตัวมีจุดเด่นและจุดด้อยของตัวเอง นักพัฒนาเว็บมืออาชีพจำเป็นต้องเข้าใจวิธีทำให้หน้าเว็บทำงานได้ดีในทุกเบราว์เซอร์ รวมถึงการจัดการกับหน้าจอขนาดเล็ก เช่น โทรศัพท์มือถือ และผู้ใช้ที่ออฟไลน์ เว็บไซต์ที่มีประโยชน์มากที่คุณควรบุ๊กมาร์กไว้ในเบราว์เซอร์ที่คุณชอบใช้คือ [caniuse.com](https://www.caniuse.com) เมื่อคุณสร้างหน้าเว็บ การใช้รายการเทคโนโลยีที่รองรับของ caniuse จะช่วยให้คุณสนับสนุนผู้ใช้ได้ดีที่สุด ✅ คุณจะทราบได้อย่างไรว่าผู้ใช้เว็บไซต์ของคุณนิยมใช้เบราว์เซอร์ใดมากที่สุด? ตรวจสอบการวิเคราะห์ของคุณ - คุณสามารถติดตั้งแพ็กเกจการวิเคราะห์ต่าง ๆ เป็นส่วนหนึ่งของกระบวนการพัฒนาเว็บของคุณ และมันจะแสดงให้คุณเห็นว่าเบราว์เซอร์ใดที่ได้รับความนิยมมากที่สุด ## ส่วนขยายเบราว์เซอร์ ทำไมคุณถึงอยากสร้างส่วนขยายเบราว์เซอร์? มันเป็นเครื่องมือที่สะดวกสำหรับการเข้าถึงงานที่คุณทำซ้ำบ่อย ๆ อย่างรวดเร็ว ตัวอย่างเช่น หากคุณต้องการตรวจสอบสีบนหน้าเว็บต่าง ๆ ที่คุณใช้งาน คุณอาจติดตั้งส่วนขยายเบราว์เซอร์สำหรับเลือกสี หรือหากคุณมีปัญหาในการจดจำรหัสผ่าน คุณอาจใช้ส่วนขยายเบราว์เซอร์สำหรับจัดการรหัสผ่าน การพัฒนาส่วนขยายเบราว์เซอร์ก็สนุกเช่นกัน โดยทั่วไปแล้วมันจะจัดการงานจำนวนจำกัดที่สามารถทำได้ดี ✅ ส่วนขยายเบราว์เซอร์ที่คุณชื่นชอบคืออะไร? มันทำงานอะไรบ้าง? ### การติดตั้งส่วนขยาย ก่อนที่คุณจะเริ่มสร้าง ลองดูขั้นตอนการสร้างและปรับใช้ส่วนขยายเบราว์เซอร์ แม้ว่าแต่ละเบราว์เซอร์จะมีความแตกต่างเล็กน้อยในวิธีการจัดการงานนี้ แต่กระบวนการจะคล้ายกันใน Chrome และ Firefox เช่นเดียวกับตัวอย่างใน Edge: ![ภาพหน้าจอของเบราว์เซอร์ Edge แสดงหน้า edge://extensions ที่เปิดอยู่และเมนูการตั้งค่าที่เปิดอยู่](../../../../translated_images/install-on-edge.d68781acaf0b3d3dada8b7507cde7a64bf74b7040d9818baaa9070668e819f90.th.png) > หมายเหตุ: อย่าลืมเปิดโหมดนักพัฒนาและอนุญาตให้ติดตั้งส่วนขยายจากร้านค้าอื่น โดยสรุป กระบวนการจะเป็นดังนี้: - สร้างส่วนขยายของคุณโดยใช้ `npm run build` - ไปที่หน้าเพจส่วนขยายในเบราว์เซอร์โดยใช้ปุ่ม "การตั้งค่าและอื่น ๆ" (ไอคอน `...`) ที่มุมขวาบน - หากเป็นการติดตั้งใหม่ ให้เลือก `load unpacked` เพื่ออัปโหลดส่วนขยายใหม่จากโฟลเดอร์ที่สร้าง (ในกรณีของเราคือ `/dist`) - หรือคลิก `reload` หากคุณกำลังโหลดส่วนขยายที่ติดตั้งไว้แล้ว ✅ คำแนะนำเหล่านี้ใช้กับส่วนขยายที่คุณสร้างเอง; หากต้องการติดตั้งส่วนขยายที่เผยแพร่ในร้านค้าส่วนขยายเบราว์เซอร์ที่เกี่ยวข้อง คุณควรไปที่ [ร้านค้า](https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home) และติดตั้งส่วนขยายที่คุณต้องการ ### เริ่มต้น คุณกำลังจะสร้างส่วนขยายเบราว์เซอร์ที่แสดงรอยเท้าคาร์บอนของภูมิภาคของคุณ โดยแสดงการใช้พลังงานและแหล่งพลังงานของภูมิภาคนั้น ส่วนขยายนี้จะมีฟอร์มที่รวบรวมคีย์ API เพื่อให้คุณสามารถเข้าถึง API ของ CO2 Signal ได้ **สิ่งที่คุณต้องมี:** - [คีย์ API](https://www.co2signal.com/); ป้อนอีเมลของคุณในช่องบนหน้านี้และคุณจะได้รับคีย์ - [รหัสภูมิภาค](http://api.electricitymap.org/v3/zones) ที่สอดคล้องกับ [Electricity Map](https://www.electricitymap.org/map) (ในบอสตัน ตัวอย่างเช่น ฉันใช้ 'US-NEISO') - [โค้ดเริ่มต้น](../../../../5-browser-extension/start) ดาวน์โหลดโฟลเดอร์ `start`; คุณจะต้องเติมโค้ดในโฟลเดอร์นี้ - [NPM](https://www.npmjs.com) - NPM เป็นเครื่องมือจัดการแพ็กเกจ; ติดตั้งมันในเครื่องของคุณและแพ็กเกจที่ระบุในไฟล์ `package.json` ของคุณจะถูกติดตั้งเพื่อใช้งานกับทรัพยากรเว็บของคุณ ✅ เรียนรู้เพิ่มเติมเกี่ยวกับการจัดการแพ็กเกจใน [โมดูลการเรียนรู้ที่ยอดเยี่ยมนี้](https://docs.microsoft.com/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-77807-sagibbon) ใช้เวลาสักครู่เพื่อดูโครงสร้างโค้ด: dist -|manifest.json (ตั้งค่าค่าเริ่มต้นที่นี่) -|index.html (มาร์กอัป HTML ส่วนหน้าอยู่ที่นี่) -|background.js (JS เบื้องหลังอยู่ที่นี่) -|main.js (JS ที่สร้างแล้ว) src -|index.js (โค้ด JS ของคุณอยู่ที่นี่) ✅ เมื่อคุณมีคีย์ API และรหัสภูมิภาคพร้อมแล้ว ให้บันทึกไว้ในโน้ตสำหรับใช้งานในอนาคต ### สร้าง HTML สำหรับส่วนขยาย ส่วนขยายนี้มีสองมุมมอง หนึ่งสำหรับรวบรวมคีย์ API และรหัสภูมิภาค: ![ภาพหน้าจอของส่วนขยายที่เสร็จสมบูรณ์เปิดในเบราว์เซอร์ แสดงฟอร์มที่มีช่องป้อนข้อมูลสำหรับชื่อภูมิภาคและคีย์ API](../../../../translated_images/1.b6da8c1394b07491afeb6b2a8e5aca73ebd3cf478e27bcc9aeabb187e722648e.th.png) และอีกหนึ่งสำหรับแสดงการใช้คาร์บอนของภูมิภาค: ![ภาพหน้าจอของส่วนขยายที่เสร็จสมบูรณ์แสดงค่าการใช้คาร์บอนและเปอร์เซ็นต์เชื้อเพลิงฟอสซิลสำหรับภูมิภาค US-NEISO](../../../../translated_images/2.1dae52ff0804224692cd648afbf2342955d7afe3b0101b617268130dfb427f55.th.png) เริ่มต้นด้วยการสร้าง HTML สำหรับฟอร์มและจัดแต่งด้วย CSS ในโฟลเดอร์ `/dist` คุณจะสร้างฟอร์มและพื้นที่แสดงผล ในไฟล์ `index.html` เติมพื้นที่ฟอร์มที่กำหนดไว้: ```HTML

New? Add your Information

``` นี่คือฟอร์มที่ข้อมูลที่บันทึกไว้ของคุณจะถูกป้อนและบันทึกลงใน local storage ถัดไป สร้างพื้นที่แสดงผล; ใต้แท็กฟอร์มสุดท้าย ให้เพิ่ม divs บางส่วน: ```HTML
loading...

Region:

Carbon Usage:

Fossil Fuel Percentage:

``` ในขั้นตอนนี้ คุณสามารถลองสร้างได้ ตรวจสอบให้แน่ใจว่าคุณติดตั้งแพ็กเกจที่จำเป็นของส่วนขยายนี้: ``` npm install ``` คำสั่งนี้จะใช้ npm ซึ่งเป็น Node Package Manager เพื่อติดตั้ง webpack สำหรับกระบวนการสร้างส่วนขยายของคุณ Webpack เป็นตัวรวมที่จัดการการคอมไพล์โค้ด คุณสามารถดูผลลัพธ์ของกระบวนการนี้ได้โดยดูใน `/dist/main.js` - คุณจะเห็นว่าโค้ดถูกรวมไว้แล้ว สำหรับตอนนี้ ส่วนขยายควรสร้างได้ และหากคุณปรับใช้ใน Edge เป็นส่วนขยาย คุณจะเห็นฟอร์มที่แสดงผลอย่างเรียบร้อย ขอแสดงความยินดี คุณได้เริ่มต้นก้าวแรกในการสร้างส่วนขยายเบราว์เซอร์แล้ว ในบทเรียนถัดไป คุณจะทำให้มันมีฟังก์ชันการทำงานและมีประโยชน์มากขึ้น --- ## 🚀 ความท้าทาย ลองดูร้านค้าส่วนขยายเบราว์เซอร์และติดตั้งส่วนขยายหนึ่งตัวในเบราว์เซอร์ของคุณ คุณสามารถตรวจสอบไฟล์ของมันในรูปแบบที่น่าสนใจ คุณค้นพบอะไรบ้าง? ## แบบทดสอบหลังเรียน [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/web/quiz/24) ## ทบทวนและศึกษาด้วยตนเอง ในบทเรียนนี้ คุณได้เรียนรู้เล็กน้อยเกี่ยวกับประวัติของเบราว์เซอร์ ใช้โอกาสนี้เรียนรู้เกี่ยวกับวิธีที่ผู้คิดค้น World Wide Web มองเห็นการใช้งานของมันโดยอ่านเพิ่มเติมเกี่ยวกับประวัติศาสตร์ของมัน เว็บไซต์ที่มีประโยชน์บางแห่งได้แก่: [ประวัติของเบราว์เซอร์](https://www.mozilla.org/firefox/browsers/browser-history/) [ประวัติของเว็บ](https://webfoundation.org/about/vision/history-of-the-web/) [บทสัมภาษณ์กับ Tim Berners-Lee](https://www.theguardian.com/technology/2019/mar/12/tim-berners-lee-on-30-years-of-the-web-if-we-dream-a-little-we-can-get-the-web-we-want) ## งานที่ได้รับมอบหมาย [ปรับแต่งส่วนขยายของคุณ](assignment.md) --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์มืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้