รองรับเบราว์เซอร์รุ่นเก่า
คุณไม่ต้องกังวลมากกับการรองรับเบราว์เซอร์รุ่นเก่าในวันนี้ สิ่งเหล่านี้ใช้งานได้ดีนับตั้งแต่ Internet Explorer 8 เสียชีวิต
แต่คำถามยังคงอยู่:คุณควรจะสนับสนุน Internet Explorer 9 และเบราว์เซอร์อื่นๆ อย่างไร อันดับแรก คุณควรคิดถึงการรองรับ Internet Explorer 9 หรือไม่
เราจะดูบางสิ่งที่คุณต้องการพิจารณา
คิดถึงคุณลักษณะ ไม่ใช่เบราว์เซอร์
สมมติว่าโลกนี้มีเพียงสองคุณลักษณะและสองเบราว์เซอร์
- เบราว์เซอร์ A รองรับฟีเจอร์ A แต่ไม่รองรับฟีเจอร์ B
- เบราว์เซอร์ B รองรับฟีเจอร์ B แต่ไม่รองรับฟีเจอร์ A
สามารถตรวจสอบได้ว่าเบราว์เซอร์ใดรองรับฟีเจอร์ใดบ้างและดำเนินการจากที่นั่น
// This is JavaScript
if (Browser A) { // Code for A}
if (Browser B) { // code for B}
แต่จะเกิดอะไรขึ้นถ้ามีเบราว์เซอร์มากกว่านี้? จะเกิดอะไรขึ้นถ้าโลกนี้มีเบราว์เซอร์ C, D และ E? การสนับสนุนฟีเจอร์ที่คุณต้องการเป็นเรื่องยากหากคุณกำลังคิดถึงเบราว์เซอร์
มีวิธีที่ดีกว่า:คุณสามารถตรวจสอบได้ว่ามีคุณลักษณะอยู่หรือไม่ ถ้ามีก็ใช้มัน หากไม่มี ให้ระบุรหัสทางเลือก
บล็อกโค้ดต่อไปนี้ใช้งานได้จากเบราว์เซอร์ A ถึงเบราว์เซอร์ Z
// This is JavaScript
if (feature A) { // Code if browser contains feature A} else { // Code if browser doesn't contain feature A}
และตอนนี้คุณไม่ต้องกังวลเกี่ยวกับเบราว์เซอร์แล้ว
การตัดสินใจว่าจะใช้คุณสมบัติหรือไม่
หลายๆ คนตัดสินใจว่าจะใช้ฟีเจอร์นี้หรือไม่ ขึ้นอยู่กับจำนวนเบราว์เซอร์ที่รองรับ แต่อย่างที่ฉันได้กล่าวไว้ข้างต้น เบราว์เซอร์ไม่สำคัญ ป>
สิ่งสำคัญคือ:คุณสามารถเขียนโค้ดทางเลือกสำหรับฟีเจอร์นี้ได้อย่างง่ายดายหรือไม่ หากคุณสามารถเขียนโค้ดทางเลือกได้อย่างง่ายดาย ให้ใช้ฟีเจอร์นี้ได้เลย หากคุณไม่สามารถเขียนโค้ดทางเลือกได้อย่างง่ายดาย อย่าใช้คุณสมบัตินี้
การตัดสินใจว่าจะรองรับเบราว์เซอร์ใด
คุณยังต้องมีจุดตัด
คุณจะรองรับเบราว์เซอร์ใดบ้าง
เบราว์เซอร์ใดที่คุณจะไม่สนับสนุน? หากคุณไม่ต้องการรองรับเบราว์เซอร์ ก็ไม่สมเหตุสมผลที่คุณจะเขียนโค้ดทางเลือกให้กับเบราว์เซอร์
คำตอบที่ดีที่สุดของฉันคือ:ดูว่าใครกำลังใช้ไซต์ของคุณ พวกเขาใช้เบราว์เซอร์อะไร? ปฏิบัติตาม.
ใช่ อาจมีผู้ผิดปกติที่พยายามเข้าชมเว็บไซต์ของคุณบน Internet Explorer 6 แต่มีเวลาและแรงพอที่จะเขียนโค้ดเพิ่มเติมสำหรับเบราว์เซอร์ที่แทบไม่มีใครใช้
พลังงานของคุณจะถูกนำไปใช้ที่อื่นดีกว่าไหม
ระดับการสนับสนุน
ฉันขอยืนยันว่ามีการสนับสนุนสี่ระดับ:
- ทุกอย่างต้องมีลักษณะและทำงานเหมือนกันในทุกเบราว์เซอร์
- ไซต์ต้องมีลักษณะเหมือนกัน แต่ฟังก์ชันการทำงานอาจแตกต่างกันในเบราว์เซอร์
- ฟังก์ชันการทำงานจะต้องเหมือนกัน แต่รูปลักษณ์อาจแตกต่างกันไปตามเบราว์เซอร์
- รูปลักษณ์และฟังก์ชันการทำงานอาจแตกต่างกันไปตามเบราว์เซอร์
คุณให้การสนับสนุนเบราว์เซอร์รุ่นเก่าประเภทใดบ้าง เพราะเหตุใด?
สรุป
ลองคิดดูสิ:
- เหตุใดคุณจึงพยายามสนับสนุนเบราว์เซอร์เก่าที่คุณพยายามจะสนับสนุน
- คุณให้การสนับสนุนในระดับใด
- มันคุ้มค่ากับทรัพยากรที่คุณจัดสรรหรือไม่
รองรับเบราว์เซอร์รุ่นเก่า — CSS
มีสองวิธีในการจัดเตรียมทางเลือกสำหรับคุณลักษณะ CSS:
- การสำรองทรัพย์สิน
- ข้อความค้นหาคุณลักษณะ
ทางเลือกของคุณสมบัติ
หากเบราว์เซอร์ไม่รู้จักคุณสมบัติหรือค่าที่เกี่ยวข้อง เบราว์เซอร์จะเพิกเฉยต่อคุณสมบัตินั้นทั้งหมด ป>
เมื่อสิ่งนี้เกิดขึ้น เบราว์เซอร์จะใช้ — หรือถอยกลับ — เป็นค่าก่อนหน้าที่พบ
นี่เป็นวิธีที่ง่ายที่สุดในการจัดเตรียมทางเลือก
นี่คือตัวอย่าง:
.layout { display: block; display: grid; }
ในตัวอย่างนี้ เบราว์เซอร์ที่รองรับ CSS Grid จะใช้ 05 . เบราว์เซอร์ที่ไม่รองรับ CSS Grid จะกลับไปอยู่ที่ 10 .
ละเว้นค่าเริ่มต้น
หากองค์ประกอบที่คุณใช้มีค่าเริ่มต้นเป็น 21 คุณสามารถละ 30 ได้ ประกาศ ซึ่งหมายความว่าคุณสามารถสนับสนุน CSS Grid ได้ด้วยโค้ดหนึ่งบรรทัด:
.layout { display: grid; }
เบราว์เซอร์ที่รองรับ CSS Grid จะสามารถอ่านคุณสมบัติ CSS อื่นๆ เช่น 42 ได้ . เบราว์เซอร์ที่ไม่รองรับ CSS Grid ไม่สามารถทำได้
ซึ่งหมายความว่าคุณสามารถเขียนคุณสมบัติ CSS Grid เพิ่มเติมได้โดยไม่ต้องกังวลกับค่าทางเลือก
.layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; }
ข้อความค้นหาคุณลักษณะ หรือ 53 บอกคุณว่าเบราว์เซอร์รองรับคุณสมบัติ CSS หรือค่าที่เกี่ยวข้องหรือไม่
คุณอาจนึกถึงข้อความค้นหาคุณลักษณะ CSS เช่น 66 คำสั่งใน JavaScript มีลักษณะดังนี้:
@supports (property: value) { /* Code when property or value is supported*/}
@supports not (property: value) { /* Code when property or value is not supported */}
70รหัส> มีประโยชน์หากคุณต้องการให้เบราว์เซอร์อ่าน CSS เท่านั้น หากพวกเขาสนับสนุนคุณสมบัติเฉพาะ
สำหรับตัวอย่าง CSS Grid ที่เรามีข้างต้น คุณสามารถทำได้:
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
ในตัวอย่างนี้ 80 และ 92รหัส> จะถูกอ่านโดยเบราว์เซอร์ที่รองรับทั้ง 104 เท่านั้น และ ตาราง CSS
Jen Simmons มีตัวอย่างที่ดีกว่าของ 113 ที่ทำงาน เธอใช้คำค้นหาฟีเจอร์เพื่อตรวจสอบว่าเบราว์เซอร์รองรับคุณสมบัติเช่น 129 หรือไม่ .
@supports (initial-letter: 4) or (-webkit-initial-letter: 4) { p::first-letter { -webkit-initial-letter: 4; initial-letter: 4; color: #FE742F; font-weight: bold; margin-right: 0.5em; }}

ตัวอย่างของ Jen ทำให้เรามีคำถาม:ไซต์ต่างๆ ควรมีลักษณะเหมือนกันในเบราว์เซอร์หรือไม่ เราจะดูเรื่องนี้ในภายหลัง แต่ก่อนอื่น ให้ข้อมูลเพิ่มเติมเกี่ยวกับการสืบค้นคุณลักษณะ
รองรับการสืบค้นคุณสมบัติ
ข้อความค้นหาฟีเจอร์ได้รับการสนับสนุนอย่างมาก เบราว์เซอร์หลักๆ ในปัจจุบันทั้งหมดรองรับการสืบค้นฟีเจอร์

จะเกิดอะไรขึ้นหากคุณสมบัติได้รับการสนับสนุน แต่คำค้นหาเกี่ยวกับคุณสมบัติไม่รองรับ?
นี่เคยเป็นส่วนที่ยุ่งยาก Jen Simmons และผู้เชี่ยวชาญคนอื่นๆ เตือนเราถึงความเป็นไปได้นี้ คุณสามารถอ่านวิธีจัดการได้ในบทความนี้
สิ่งที่ต้องทำ:ฉันไม่รองรับ IE 11 อีกต่อไปแล้ว ดังนั้นฉันจึงใช้การสืบค้นฟีเจอร์ตามที่กล่าวไว้ข้างต้น
การใช้ทางเลือกของคุณสมบัติและการสืบค้นคุณลักษณะในเวลาเดียวกัน
ลองดูรหัสต่อไปนี้ เบราว์เซอร์จะใช้ค่าช่องว่างภายในใด
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
.layout { padding-left: 2em; padding-right: 2em; }
คำตอบคือ:เบราว์เซอร์ทั้งหมดจะใช้ 132 ของช่องว่างภายในด้านซ้ายและขวา
เพราะเหตุใด?
สิ่งนี้เกิดขึ้นเนื่องจาก 145 และ 159 ถูกประกาศในภายหลังในไฟล์ CSS คุณสมบัติที่ถูกประกาศในภายหลังจะแทนที่คุณสมบัติที่ถูกประกาศก่อนหน้านี้
หากคุณต้องการ 163 และ 172รหัส> เพื่อ สมัครเท่านั้น ไปยังเบราว์เซอร์ที่ ไม่ สนับสนุน CSS Grid คุณสามารถสลับลำดับคุณสมบัติได้
.layout { padding-left: 2em; padding-right: 2em; }
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
หมายเหตุ :แนวทางปฏิบัติที่ดีเสมอในการประกาศโค้ดทางเลือกก่อนใน CSS เนื่องจากลักษณะการเรียงซ้อน
ซึ่งหมายความว่าหากคุณใช้ทั้ง 180 และ 196รหัส> คุณควรประกาศ 208 ก่อน มันทำให้โค้ดของคุณสอดคล้องกัน
/* Always write "@supports not" first if you use it */@supports not (display: grid) { .layout { padding-left: 2em; padding-right: 2em; }}
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
ตอนนี้เรามาพูดถึงว่าไซต์ต่างๆ ควรมีลักษณะเหมือนกันในเบราว์เซอร์หรือไม่
ไซต์ควรมีลักษณะเหมือนกันในทุกเบราว์เซอร์หรือไม่
บางคนเชื่อว่าไซต์ต่างๆ ควรมีลักษณะเหมือนกันในทุกเบราว์เซอร์ พวกเขาคิดว่าการสร้างแบรนด์เป็นสิ่งสำคัญ และเน้นย้ำว่าไซต์ควรมีความสม่ำเสมอเพื่อรักษาแบรนด์ไว้
คนอื่นบอกว่าไม่ พวกเขาเชื่อว่าพวกเขาควรยอมรับจิตวิญญาณแห่งการเพิ่มประสิทธิภาพที่ก้าวหน้า พวกเขาสามารถให้ความรักแก่ผู้ใช้เบราว์เซอร์ที่ดีกว่ามากขึ้น
มุมมองทั้งสองถูกต้อง แต่มาจากมุมที่ต่างกัน
มุมมองที่สำคัญที่สุดมาจากผู้ใช้ ไซต์ของคุณสามารถให้สิ่งที่พวกเขาต้องการแก่ผู้ใช้ได้หรือไม่
หากใช่ คุณไม่จำเป็นต้องเข้มงวดกับความสม่ำเสมอมากเกินไป ไปข้างหน้าและมอบประสบการณ์ที่ดียิ่งขึ้นแก่ผู้ใช้ด้วยเบราว์เซอร์ที่ดีกว่า!
สรุป
หากต้องการให้การสนับสนุนคุณลักษณะ CSS คุณสามารถใช้:
- การสำรองคุณสมบัติ
- ข้อความค้นหาคุณลักษณะ
เมื่อคุณเขียน CSS ตรวจสอบให้แน่ใจว่าคุณประกาศโค้ดสำรองก่อนโค้ดชุดอื่นสำหรับเบราว์เซอร์ที่มีการรองรับที่ดีกว่า
รองรับเบราว์เซอร์รุ่นเก่า — JavaScript
การให้การสนับสนุน JavaScript สำหรับเบราว์เซอร์รุ่นเก่าเป็นเรื่องง่าย โดยส่วนใหญ่ คุณเพียงแค่ต้องใช้โพลีฟิล
แต่ยังมีหลายสิ่งที่คุณสามารถทำได้
โพลีฟิลคืออะไร
Polyfill คือโค้ดชิ้นหนึ่งที่บอกเบราว์เซอร์ถึงวิธีใช้งานฟีเจอร์ JavaScript เมื่อคุณเพิ่มโพลีฟิลแล้ว คุณไม่จำเป็นต้องกังวลเกี่ยวกับการสนับสนุนอีกต่อไป มันจะได้ผล
Polyfill ทำงานอย่างไร:
- ตรวจสอบว่าคุณสมบัตินี้รองรับหรือไม่
- หากไม่เป็นเช่นนั้น ระบบจะเพิ่มโค้ดเพื่อรองรับคุณลักษณะนี้
นี่คือตัวอย่างของโพลีฟิลในที่ทำงาน ตรวจสอบว่าเบราว์เซอร์รองรับ 218 หรือไม่ . หากเบราว์เซอร์ไม่รองรับ 227 โดยจะบอกเบราว์เซอร์ว่าจะสนับสนุนอย่างไร
คุณสามารถค้นหารหัสนี้ได้บน MDN
if (!Array.prototype.find) { Object.defineProperty(Array.prototype, 'find', { value: function(predicate) { // 1. Let O be ? ToObject(this value). if (this == null) { throw new TypeError('"this" is null or not defined'); }
var o = Object(this);
// 2. Let len be ? ToLength(? Get(O, "length")). var len = o.length >>> 0;
// 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); }
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined. var thisArg = arguments[1];
// 5. Let k be 0. var k = 0;
// 6. Repeat, while k < len while (k < len) { // a. Let Pk be ! ToString(k). // b. Let kValue be ? Get(O, Pk). // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return kValue. var kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return kValue; } // e. Increase k by 1. k++; }
// 7. Return undefined. return undefined; }, configurable: true, writable: true });}
หมายเหตุ :โพลีฟิลคือเซตย่อยของชิม Shim คือไลบรารีที่นำ API ใหม่มาสู่สภาพแวดล้อมแบบเก่า
การใช้โพลีฟิล
มีสองวิธีในการใช้โพลีฟิล:
- polyfill ด้วยตนเอง ดังตัวอย่างด้านบน
- การเพิ่มโพลีฟิลจำนวนมากพร้อมกันผ่านไลบรารี
การบรรจุโพลีด้วยตนเอง
ขั้นแรก คุณต้องค้นหาโพลีฟิล คุณต้องการ. คุณควรจะสามารถค้นหาได้หากคุณใช้ Google นักพัฒนาที่ชาญฉลาดได้สร้างโพลีฟิลสำหรับเกือบทุกอย่างที่คุณต้องการ
เมื่อคุณพบโพลีฟิลแล้ว ให้ใช้กระบวนการข้างต้น เพื่อสร้างการสนับสนุนเบราว์เซอร์รุ่นเก่า
การเพิ่มโพลีฟิลหลายรายการพร้อมกัน
ไลบรารีบางแห่งมีโพลีฟิลล์จำนวนมาก ES6-shim คือตัวอย่างหนึ่งของห้องสมุดดังกล่าว ให้การสนับสนุนฟีเจอร์ ES6 ทั้งหมดบนเบราว์เซอร์รุ่นเก่า
การใช้คุณสมบัติ JavaScript ที่ล้ำสมัย
หากคุณต้องการใช้ฟีเจอร์ JavaScript ที่ล้ำสมัย ลองเพิ่ม Babel ในกระบวนการสร้างของคุณ
Babel เป็นเครื่องมือที่รวบรวม JavaScript ในระหว่างกระบวนการคอมไพล์นี้ มันสามารถ:
- เพิ่ม shim / polyfill ที่คุณต้องการ
- คอมไพล์ตัวประมวลผลล่วงหน้าเป็น JavaScript
เพิ่มเติมเกี่ยวกับประเด็นที่สอง:
Babel ทำงานแบบออฟไลน์ในกระบวนการสร้างของคุณ มันสามารถอ่านไฟล์ที่คุณส่งเข้าไป จากนั้นแปลงไฟล์เหล่านี้เป็น JavaScript ที่เบราว์เซอร์สามารถอ่านได้
ความหมายก็คือ คุณสามารถใช้ฟีเจอร์ล้ำสมัย เช่น Flow, TypeScript และเทคโนโลยีเจ๋งๆ อื่นๆ ที่คุณเคยได้ยินได้ ทั้งหมดนี้จะใช้งานได้ในเบราว์เซอร์ หากคุณผ่าน Babel ก่อน!
จะเป็นอย่างไรหากโพลีฟิลล์ยังไม่เพียงพอ
หากโพลีฟิลล์ไม่เพียงพอที่จะรองรับฟีเจอร์นี้ คุณอาจต้องการพิจารณาจำนวนการสนับสนุนที่คุณมอบให้กับเบราว์เซอร์ที่เป็นปัญหาอีกครั้ง
คุณจำเป็นต้องจัดให้มีฟังก์ชันการทำงานเดียวกันในเบราว์เซอร์ที่แตกต่างกันหรือไม่? บางทีคุณควรพิจารณาการปรับปรุงแบบก้าวหน้าแทน
บางทีคุณอาจเขียนโค้ดในลักษณะที่ไม่ใช้ฟีเจอร์นี้ได้
อาจจะมากมาย แต่คุณเข้าใจได้
จะทราบได้อย่างไรว่าเบราว์เซอร์รองรับคุณสมบัตินี้
ก่อนอื่น ฉันตรวจสอบ caniuse.com เขียนชื่อฟีเจอร์ JavaScript ที่คุณต้องการ แล้วคุณจะเห็นระดับการสนับสนุนเบราว์เซอร์
นี่คือตัวอย่างของ Abort Controller

หาก caniuse.com ไม่ให้ข้อมูลใดๆ แก่ฉัน ฉันจะตรวจสอบ MDN คุณจะพบการสนับสนุนเบราว์เซอร์ที่ด้านล่างของบทความส่วนใหญ่
นี่คือตัวอย่างของ Abort Controller อีกครั้ง:

ระวังค่าใช้จ่ายของ JavaScript
เมื่อคุณใช้ polyfills คุณจะเพิ่มโค้ด JavaScript เพิ่มเติม
ปัญหาในการเพิ่ม JavaScript ก็คือ มี JavaScript มากขึ้น และเมื่อมี JavaScript มากขึ้น ปัญหาก็เพิ่มมากขึ้น:
- เบราว์เซอร์รุ่นเก่ามักจะอยู่ในคอมพิวเตอร์รุ่นเก่า อาจมีพลังการประมวลผลไม่เพียงพอ
- ชุด JavaScript อาจทำให้การโหลดไซต์ล่าช้าได้ ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ใน “ต้นทุนของ JavaScript“ โดย Addy Osmani
สรุป
การเพิ่มการรองรับคุณสมบัติ JavaScript เป็นเรื่องง่าย โดยส่วนใหญ่ คุณจะเพิ่มโพลีฟิลและเรียกว่าวันละครั้ง แต่ควรคำนึงถึงต้นทุนของ JavaScript เมื่อคุณทำเช่นนั้น!
บางครั้ง การยกเลิกฟีเจอร์นี้ไปเลยอาจเป็นการดี
เหตุใดจึงรองรับเบราว์เซอร์รุ่นเก่า
ทำไมคุณต้องสนใจเบราว์เซอร์รุ่นเก่า
ใครใช้เบราว์เซอร์รุ่นเก่าบ้าง? อาจเป็นผู้ใช้ที่มีคอมพิวเตอร์เครื่องเก่าใช่ไหม
หากพวกเขาใช้คอมพิวเตอร์เครื่องเก่า บางทีพวกเขาอาจไม่มีเงินซื้อเครื่องใหม่
หากพวกเขาไม่มีเงินที่จะซื้อคอมพิวเตอร์เครื่องใหม่ พวกเขาอาจจะไม่ซื้ออะไรจากคุณเช่นกัน
หากพวกเขาจะไม่ซื้ออะไรจากคุณ ทำไมคุณต้องสนใจที่จะสนับสนุนเบราว์เซอร์ของพวกเขาด้วย
สำหรับนักธุรกิจ นั่นเป็นความคิดที่สมเหตุสมผลอย่างยิ่ง แต่ทำไมนักพัฒนาของเราถึงยังยืนกรานที่จะสนับสนุนเบราว์เซอร์รุ่นเก่า
มาดูรายละเอียดกันดีกว่า ป>
มีข้อสันนิษฐานมากมายเกี่ยวกับกระบวนการคิดดั้งเดิม
“ใครใช้เบราว์เซอร์รุ่นเก่า อาจเป็นผู้ใช้คอมพิวเตอร์เครื่องเก่า หากพวกเขาใช้คอมพิวเตอร์เครื่องเก่า บางทีพวกเขาอาจไม่มีเงินซื้อเครื่องใหม่”
แม้ว่าผู้คนจะใช้เบราว์เซอร์รุ่นเก่าเพราะพวกเขาใช้คอมพิวเตอร์เครื่องเก่า เราไม่สามารถสรุปได้ว่าผู้คนไม่มีเงินพอที่จะซื้อเบราว์เซอร์ใหม่ได้
- บางทีบริษัทของพวกเขาอาจไม่ต้องการซื้อมัน
- บางทีพวกเขาอาจพอใจกับคอมพิวเตอร์ของตน และไม่ต้องการอัปเกรด
- บางทีพวกเขาอาจไม่มีความรู้ในการอัพเกรดคอมพิวเตอร์
- บางทีพวกเขาอาจไม่สามารถเข้าถึงคอมพิวเตอร์เครื่องใหม่ได้
- บางทีพวกเขาอาจผูกพันกับโทรศัพท์มือถือที่ไม่มีเบราว์เซอร์ที่ดี
อย่าคิดไปเอง ป>
หากพวกเขาไม่มีเงินที่จะซื้อคอมพิวเตอร์เครื่องใหม่ พวกเขาอาจจะไม่ซื้ออะไรจากคุณเช่นกัน หากพวกเขาจะไม่ซื้ออะไรจากคุณ ทำไมคุณต้องสนใจที่จะสนับสนุนเบราว์เซอร์ของพวกเขาด้วย
เราต้องขยายไปยังพื้นที่อื่นเพื่อพูดคุยเกี่ยวกับประเด็นนี้
การเข้าถึงเก้าอี้รถเข็น
หากคุณเคยไปสิงคโปร์ คุณจะสังเกตเห็นว่ามีทางลาดหรือลิฟต์ติดกับบันไดเกือบทุกขั้น
แต่ทำไม? เหตุใดภาครัฐและเอกชนจึงทุ่มเงินซื้อลิฟต์และทางลาด? ทำไมต้องสร้างบันไดเหล่านี้ในเมื่อบันไดเพียงพอที่จะพาผู้คนจากระดับล่างขึ้นไปสู่ระดับที่สูงขึ้น
ปรากฎว่าบางคนไม่สามารถใช้บันไดได้ พวกเขาเดินด้วยเท้าไม่ได้ พวกเขาต้องนั่งในเก้าอี้รถเข็น และไม่สามารถเข็นตัวเองขึ้นบันไดได้ ลิฟต์และทางลาดให้บริการคนเหล่านี้
และปรากฎว่ามีผู้คนจำนวนมากขึ้นที่ได้รับประโยชน์จากลิฟต์และทางลาด
- ผู้ที่มีเข่าอ่อนแรง
- ผู้ที่มีจักรยานหรือสกู๊ตเตอร์ติดตัว
- ผู้ปกครองที่กำลังเข็นรถเข็นเด็ก
หากคุณพบว่าตัวเองกำลังเข็นอะไรก็ตามด้วยล้อ คุณจะใช้ทางลาดหรือลิฟต์โดยไม่ต้องคิดซ้ำสอง คุณก็ได้รับประโยชน์เช่นกัน
แต่ปัญหาคือ ไม่มีใครมีรายได้แม้แต่สตางค์เดียวจากการใช้ทางลาดหรือลิฟต์ใช่ไหม แล้วทำไมต้องสร้างมันขึ้นมา
เพราะมันคุ้มค่า
และความคุ้มค่าไม่ได้หมายถึงเงินเสมอไป
พิจารณาภาวะโลกร้อน
คุณอาศัยอยู่บนโลก คุณรู้สึกอย่างไรเกี่ยวกับภาวะโลกร้อน
บางคนไม่สนใจ ไม่เป็นไรถ้าป่าไม้ถูกเผา ไม่เป็นไรหากบริษัทต่างๆ ก่อให้เกิดมลพิษในแม่น้ำและปล่อยก๊าซคาร์บอนไดออกไซด์จำนวนมากสู่อากาศ มันไม่ส่งผลกระทบต่อพวกเขา
แต่ก็มีคนกลุ่มหนึ่งที่ใส่ใจ พวกเขารักโลกที่เราอาศัยอยู่ พวกเขาต้องการให้ลูกๆ มีที่อยู่อาศัยที่ดีขึ้น มีเหตุผลมากมายที่พวกเขาใส่ใจ และพวกเขาอาจต้องการประหยัดทรัพยากรให้ได้มากที่สุด
คุณยืนอยู่ตรงไหน?
คุณจะให้เงินกับบริษัทที่ทำลายโลกในขณะที่บริษัทดำเนินกิจการอยู่หรือไม่
บางทีคุณอาจจะ บางทีคุณอาจจะไม่ บางทีคุณอาจไม่สนใจ ทั้งสามตัวเลือกนั้นถูกต้อง
และขอย้ำอีกครั้งว่ามันไม่ได้เกี่ยวกับเงินเสมอไป
เว็บเหมาะสำหรับทุกคน
ความฝันเบื้องหลังเว็บคือพื้นที่ข้อมูลทั่วไปที่เราสื่อสารโดยการแบ่งปันข้อมูล
— ทิม เบอร์เนอร์ส-ลี
นักพัฒนาส่วนหน้าคือผู้ดูแลเว็บ เว็บจะออกมาเป็นอย่างไรก็ขึ้นอยู่กับเรา เราไม่สามารถบังคับให้ทุกคนสร้างทางลาดและลิฟต์ได้ แต่เราสร้างมันเองได้
ทางเลือกขึ้นอยู่กับคุณจริงๆ
คุณไม่จำเป็นต้องสนใจหากคุณไม่ต้องการ
นักพัฒนาส่วนหน้าที่ดีที่สุดที่ฉันรู้จัก? พวกเขาใส่ใจ พวกเขาเลือกที่จะรวม มันคือสิ่งที่ทำให้เราเป็นนักพัฒนาส่วนหน้า
เราใส่ใจ
แต่บางครั้งเราก็มีข้อจำกัดและข้อจำกัดเช่นกัน และเราทำงานกับขีดจำกัดเหล่านั้น
บทความนี้เดิมถูกโพสต์ที่บล็อกของฉัน
สมัครรับจดหมายข่าวของฉัน หากคุณต้องการบทความเพิ่มเติมเพื่อช่วยให้คุณเป็นนักพัฒนาส่วนหน้าที่ดีขึ้น
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น