jQuery -
แต่ในช่วงไม่กี่ปีที่ผ่านมา สถานะในฐานะเครื่องมือชั้นนำสำหรับการพัฒนาเว็บไซต์ได้เสื่อมถอยลง มาดูกันว่าเหตุใด jQuery จึงได้รับความนิยมและเหตุใดจึงตกเทรนด์และในกรณีใดบ้างที่แนะนำให้ใช้เพื่อสร้างเว็บไซต์สมัยใหม่
ประวัติโดยย่อของ jQuery
จอห์น รีซิก (
jQuery เป็นไลบรารี Javascript ตามคำขวัญ: Javascript ควรเป็นเรื่องสนุกในการเขียนโค้ด jQuery ใช้งานทั่วไปที่ซ้ำซ้อน ตัดมาร์กอัปที่ไม่จำเป็นออกทั้งหมด และทำให้งานเหล่านั้นสั้น สวยงาม และสะอาดตา
jQuery มีข้อดีหลักสองประการ อย่างแรกคือ API ที่สะดวกสำหรับการจัดการหน้าเว็บ โดยเฉพาะอย่างยิ่งมีวิธีการที่มีประสิทธิภาพในการเลือกองค์ประกอบ ไม่เพียงแต่คุณสามารถเลือกตาม ID หรือคลาสเท่านั้น jQuery ยังช่วยให้คุณสามารถเขียนนิพจน์ที่ซับซ้อนได้ ตัวอย่างเช่น เพื่อเลือกองค์ประกอบตามความสัมพันธ์กับองค์ประกอบอื่น ๆ:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
เมื่อเวลาผ่านไป กลไกการคัดเลือกก็กลายเป็นห้องสมุดที่แยกจากกัน
ข้อได้เปรียบประการที่สองของไลบรารีคือสามารถแยกความแตกต่างระหว่างเบราว์เซอร์ได้ ในช่วงหลายปีที่ผ่านมา การเขียนโค้ดที่สามารถทำงานได้อย่างน่าเชื่อถือในทุกเบราว์เซอร์เป็นเรื่องยาก
การขาดมาตรฐานหมายความว่านักพัฒนาจำเป็นต้องคำนึงถึงความแตกต่างมากมายระหว่างเบราว์เซอร์และเคส Edge ลองดูที่
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}
และต้องขอบคุณ jQuery ที่ทำให้นักพัฒนาสามารถเปลี่ยนความกังวลเกี่ยวกับข้อผิดพลาดเหล่านี้ไปเป็นภาระของทีมพัฒนาห้องสมุดได้
ต่อมา jQuery ทำให้การนำเทคโนโลยีที่ซับซ้อนมากขึ้นไปใช้ เช่น แอนิเมชั่นและ Ajax เป็นเรื่องง่ายยิ่งขึ้น ไลบรารีได้กลายเป็นแหล่งอ้างอิงมาตรฐานสำหรับเว็บไซต์อย่างมีประสิทธิภาพ และในปัจจุบันนี้มีส่วนขับเคลื่อนส่วนแบ่งมหาศาลของอินเทอร์เน็ต W3Techs เชื่อเช่นนั้น
การควบคุมการพัฒนา jQuery ก็มีความเป็นทางการมากขึ้นเช่นกัน เมื่อปี 2011 ทีมงาน
ในปี 2015 มูลนิธิ jQuery ได้รวมเข้ากับมูลนิธิ Dojo
สถานการณ์ที่เปลี่ยนแปลง
อย่างไรก็ตาม ในช่วงไม่กี่ปีที่ผ่านมา jQuery
เบราว์เซอร์
ด้วยเหตุผลหลายประการ ความแตกต่างและข้อจำกัดของเบราว์เซอร์จึงมีความสำคัญน้อยลง ประการแรก มีการปรับปรุงมาตรฐาน นักพัฒนาเบราว์เซอร์รายใหญ่ (Apple, Google, Microsoft และ Mozilla) กำลังทำงานร่วมกันเพื่อพัฒนา
แม้ว่าเบราว์เซอร์จะยังคงมีความแตกต่างกันในหลายๆ วิธีที่สำคัญ แต่อย่างน้อยผู้ขายก็มีวิธีในการค้นหาและสร้างฐานข้อมูลทั่วไปแทน
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});
วิธีการ
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
ตอนนี้คุณสามารถจัดการคลาสองค์ประกอบโดยใช้
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
เว็บไซต์
การใช้คุณสมบัติดั้งเดิมช่วยปรับปรุงประสิทธิภาพของเพจ มากมาย
เหตุผลที่สองคือเบราว์เซอร์ได้รับการอัปเดตเร็วกว่าเมื่อก่อนมาก ส่วนใหญ่ใช้
ซึ่งหมายความว่าฟีเจอร์ใหม่ของเบราว์เซอร์และการแก้ไขข้อบกพร่องจะได้รับการเผยแพร่เร็วขึ้นมาก และนักพัฒนาก็ไม่ต้องรอจนกว่าจะถึง
เหตุผลที่สามคือ Internet Explorer เข้าใกล้สถานะที่ไม่เกี่ยวข้องโดยสิ้นเชิง IE เป็นความหายนะของการพัฒนาเว็บไซต์ทั่วโลกมายาวนาน จุดบกพร่องของมันแพร่หลาย และเนื่องจาก IE ครองตลาดในช่วงปี 2000 และไม่ได้ใช้กลยุทธ์การอัปเดตที่สม่ำเสมอ เวอร์ชันเก่าจึงยังคงพบเห็นได้ทั่วไป
ในปี 2016 Microsoft ได้เร่งการเลิกใช้งาน IE
แม้แต่ jQuery ก็หยุดรองรับ IE 8 และต่ำกว่าตั้งแต่นั้นเป็นต้นมา
กรอบการทำงานใหม่
นับตั้งแต่ jQuery ถือกำเนิดขึ้น ก็มีการสร้าง framework มากมาย รวมถึงผู้นำยุคใหม่ด้วย
ประการแรก ช่วยให้แยกอินเทอร์เฟซผู้ใช้ออกเป็นส่วนประกอบต่างๆ ได้อย่างง่ายดาย เฟรมเวิร์กได้รับการออกแบบมาเพื่อจัดการการเรนเดอร์และการอัปเดตเพจ และโดยปกติแล้ว jQuery จะใช้สำหรับการอัพเดตเท่านั้น โดยปล่อยให้หน้าที่จัดทำหน้าแรกให้กับเซิร์ฟเวอร์
ในทางกลับกัน ส่วนประกอบ React, Angular และ Vue ช่วยให้คุณสามารถจับคู่ HTML, โค้ดและแม้แต่ CSS ได้อย่างแน่นหนา เช่นเดียวกับที่เราแบ่งฐานโค้ดออกเป็นฟังก์ชันและคลาสที่มีอยู่ในตัวเอง ความสามารถในการแบ่งอินเทอร์เฟซออกเป็นส่วนประกอบที่นำมาใช้ซ้ำได้ทำให้การสร้างและบำรุงรักษาไซต์ที่ซับซ้อนทำได้ง่ายขึ้น
ข้อได้เปรียบประการที่สองคือเฟรมเวิร์กล่าสุดเป็นไปตามกระบวนทัศน์ที่ประกาศ ซึ่งนักพัฒนาจะอธิบายว่าอินเทอร์เฟซควรมีลักษณะอย่างไร และปล่อยให้เป็นเฟรมเวิร์กเพื่อทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดเพื่อให้บรรลุสิ่งที่ต้องการ แนวทางนี้ตรงกันข้ามกับแนวทางที่จำเป็นซึ่งกำหนดลักษณะของโค้ด jQuery
ใน jQuery คุณจดบันทึกขั้นตอนในการเปลี่ยนแปลงอย่างชัดเจน และในกรอบงานประกาศ คุณพูดว่า “ตามข้อมูลนี้ อินเทอร์เฟซควรมีลักษณะเช่นนี้” สิ่งนี้สามารถทำให้การเขียนโค้ดที่ไม่มีข้อผิดพลาดง่ายขึ้นมาก
นักพัฒนาได้นำแนวทางใหม่มาใช้ในการพัฒนาเว็บไซต์ ซึ่งเป็นสาเหตุที่ความนิยมของ jQuery ลดลง
เมื่อใดจึงควรใช้ jQuery?
ดังนั้นเมื่อ ควร ใช้ jQuery?
หากความซับซ้อนของโปรเจ็กต์เพิ่มขึ้น ควรเริ่มต้นด้วยไลบรารีหรือเฟรมเวิร์กอื่นที่ช่วยให้คุณจัดการความซับซ้อนได้อย่างมีความหมาย ตัวอย่างเช่น แบ่งอินเทอร์เฟซออกเป็นส่วนประกอบต่างๆ การใช้ jQuery บนไซต์ดังกล่าวอาจดูดีในตอนแรก แต่จะนำไปสู่โค้ดสปาเก็ตตี้อย่างรวดเร็ว โดยที่คุณไม่แน่ใจว่าส่วนใดส่งผลต่อส่วนใดของหน้า
ฉันเคยตกอยู่ในสถานการณ์เช่นนี้ เมื่อพยายามทำการเปลี่ยนแปลงใดๆ มันรู้สึกเหมือนเป็นงานที่ยาก คุณไม่สามารถแน่ใจได้ว่าจะไม่ทำลายสิ่งใดๆ เนื่องจากตัวเลือก jQuery ขึ้นอยู่กับโครงสร้าง HTML ที่สร้างโดยเซิร์ฟเวอร์
อีกด้านหนึ่งของมาตราส่วนคือไซต์ธรรมดาๆ ที่ต้องการการโต้ตอบหรือเนื้อหาแบบไดนามิกเพียงเล็กน้อยเท่านั้น ฉันจะไม่ตั้งค่าเริ่มต้นเป็น jQuery ในกรณีเหล่านี้เช่นกัน เนื่องจากมีอีกมากมายที่คุณสามารถทำได้กับ Native API
แม้ว่าฉันต้องการบางสิ่งที่ทรงพลังกว่านี้ แต่ฉันก็จะมองหาห้องสมุดเฉพาะเช่น
ฉันคิดว่าเหตุผลที่ดีที่สุดสำหรับการใช้ jQuery ก็คือมันมีฟังก์ชันการทำงานที่ครอบคลุมสำหรับส่วนหน้าของเว็บไซต์ แทนที่จะเรียนรู้ API ดั้งเดิมหรือไลบรารีเฉพาะทางที่หลากหลาย คุณสามารถอ่านแค่เอกสาร jQuery และทำงานได้อย่างมีประสิทธิภาพทันที
แนวทางความจำเป็นไม่ได้ขยายขนาดได้ดีนัก แต่เรียนรู้ได้ง่ายกว่าแนวทางการประกาศของห้องสมุดอื่นๆ สำหรับไซต์ที่มีความสามารถจำกัดอย่างชัดเจน ควรใช้ jQuery และทำงานอย่างใจเย็นจะดีกว่า: ไลบรารีไม่ต้องการการประกอบหรือการคอมไพล์ที่ซับซ้อน
นอกจากนี้ jQuery ยังดีหากคุณมั่นใจว่าไซต์ของคุณจะไม่ซับซ้อนเมื่อเวลาผ่านไป และหากคุณไม่สนใจฟังก์ชันการทำงานแบบเนทิฟ ซึ่งแน่นอนว่าจะต้องเขียนโค้ดมากกว่า jQuery
คุณยังสามารถใช้ไลบรารีนี้ได้หากต้องการรองรับ IE เวอร์ชันเก่า จากนั้น jQuery จะให้บริการคุณเหมือนที่เคยทำในสมัยที่ IE เป็นเบราว์เซอร์ที่ได้รับความนิยมมากที่สุด
มองไปสู่อนาคต
jQuery จะไม่หายไปในเร็วๆ นี้ เธอ
เว้นแต่ฟังก์ชันการทำงานของ jQuery จะเปลี่ยนแปลงไปอย่างมาก อาจเป็นไปได้ว่าการใช้งานไลบรารีจะยังคงช้าลงแต่ลดลงอย่างต่อเนื่องในอีกไม่กี่ปีข้างหน้า เว็บไซต์ใหม่มักจะถูกสร้างขึ้นโดยใช้เฟรมเวิร์กที่ทันสมัยมากขึ้นตั้งแต่เริ่มต้น และกรณีการใช้งานที่เหมาะสมสำหรับ jQuery ก็หายากมากขึ้นเรื่อยๆ
บางคนไม่ชอบอัตราที่เครื่องมือพัฒนาเว็บไซต์ล้าสมัย แต่สำหรับฉัน มันเป็นข้อพิสูจน์ถึงความก้าวหน้าที่รวดเร็ว jQuery ช่วยให้เราทำสิ่งต่างๆ ได้ดีขึ้นมากมาย เช่นเดียวกับผู้สืบทอดของเธอ
ที่มา: will.com