- लगभग 10 साल बाद आए इस major version update में jQuery 4.0.0 आधिकारिक रूप से जारी किया गया है
- IE 10 और उससे पुराने ब्राउज़र का समर्थन समाप्त, कोड हल्का किया गया है और आधुनिक standards compliance को मजबूत किया गया है; ज़्यादातर यूज़र बिना कोड बदले upgrade कर सकते हैं
- ES module आधारित संरचना में बदलाव के साथ Rollup build अपनाया गया है, जिससे आधुनिक development environment के साथ compatibility सुनिश्चित होती है
- Trusted Types और CSP support जोड़कर security policy के साथ टकराव को न्यूनतम किया गया है
- Deprecated API हटाने और slim build को छोटा करने से performance और maintainability में सुधार हुआ है
jQuery 4.0.0 का मुख्य अवलोकन
- jQuery 4.0.0 लगभग 10 साल बाद आया एक बड़ा major release है, जिसे लंबे development cycle और कई pre-releases के बाद पूरा किया गया
- ज़्यादातर यूज़र बिना कोड बदले upgrade कर सकते हैं
- पुराने versions में जमा हुए legacy code और private parameters हटा दिए गए हैं
- upgrade guide और jQuery Migrate plugin भी साथ उपलब्ध हैं, ताकि पुराने versions से migration आसान हो सके
- वितरण official CDN और npm के ज़रिए उपलब्ध है, जबकि अन्य CDN क्रमशः update किए जाएंगे
ब्राउज़र support में बदलाव
- IE 10 और उससे पुराने versions का support समाप्त, जबकि IE 11 को jQuery 5.0 में चरणबद्ध रूप से हटाया जाएगा
- Edge Legacy, iOS के पुराने versions (हाल के 3 versions से पुराने), Firefox के पुराने versions (हाल के 2 versions से पुराने), Android Browser का support भी समाप्त
- यदि पुराने ब्राउज़र का support बनाए रखना ज़रूरी है, तो jQuery 3.x बनाए रखने की सलाह दी गई है
Trusted Types और CSP compatibility
- TrustedHTML object को सुरक्षित तरीके से handle करने के लिए Trusted Types support जोड़ा गया है
- अधिकांश asynchronous script requests को `` tag आधारित तरीके में बदला गया है, ताकि CSP errors से बचा जा सके
"headers" option इस्तेमाल करने पर अब भी XHR का उपयोग संभव है, लेकिन scriptAttrs इस्तेमाल करने की सलाह दी गई है
ES module में बदलाव
- jQuery source को AMD से पूरी तरह ES module में स्थानांतरित किया गया है
- मौजूदा RequireJS की जगह Rollup को build tool के रूप में अपनाया गया है
- ES module आधारित tests अलग से चलाए जाते हैं
- `` के ज़रिए modern browser और build tools के साथ compatibility सुनिश्चित की गई है
Deprecated API हटाए गए
- लंबे समय से deprecated स्थिति में रहे API पूरी तरह हटा दिए गए हैं
- हटाए गए functions:
jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, jQuery.fx.interval
- विकल्प:
Array.isArray(), JSON.parse(), String.prototype.trim(), Date.now() जैसे native methods का उपयोग
- IE से संबंधित कोड हटाने के साथ gzip आधार पर लगभग 3KB आकार कम हुआ
केवल आंतरिक उपयोग वाले methods हटाए गए
- jQuery prototype से सिर्फ आंतरिक उपयोग के लिए इस्तेमाल होने वाले push, sort, splice methods हटा दिए गए हैं
$elems.push(elem) की जगह [].push.call($elems, elem) का उपयोग किया जा सकता है
focus event क्रम में बदलाव
- W3C specification के अनुसार focus/blur event क्रम को एकसमान किया गया है
- नया क्रम: blur → focusout → focus → focusin
- यह पुराने jQuery क्रम से अलग है, इसलिए compatibility पर ध्यान देना होगा
- IE को छोड़कर सभी ब्राउज़र इसी क्रम का पालन करते हैं
Slim build में सुधार
- Deferreds और Callbacks हटाने से फ़ाइल का आकार घटकर लगभग 19.5KB(gzip) रह गया है
- अधिकांश ब्राउज़र native Promise support देते हैं, इसलिए इसे विकल्प के रूप में इस्तेमाल किया जा सकता है
- यदि IE11 support चाहिए, तो main build या Promise polyfill इस्तेमाल करने की सलाह दी गई है
- Slim build में Ajax और animation से जुड़े modules शामिल नहीं हैं, इसलिए यह लगभग 8KB और छोटा है
डाउनलोड और वितरण
- official CDN और npm से डाउनलोड उपलब्ध
- official version:
- Slim version:
- npm install command:
npm install jquery@4.0.0
contributors और 20वीं वर्षगांठ
- कई open source contributors ने patch, bug report और testing में हिस्सा लिया
- jQuery की 20वीं वर्षगांठ पर Dallas में टीम reunion हुआ, जिसमें संस्थापक John Resig भी Zoom के ज़रिए शामिल हुए
मुख्य code changes का सारांश (Changelog)
- Ajax: binary data handling में सुधार, CSP errors की रोकथाम, JSONP error handling को मजबूत किया गया
- CSS: `` element के size calculation में सुधार, CSS variable whitespace handling बेहतर,
opacity hook हटाया गया
- Core:
AMD → ES module बदलाव, DOMParser का उपयोग, पुराने ब्राउज़र support code हटाया गया
- Event: focus/blur events की native handling,
event.which shim हटाया गया
- Selector: Sizzle integration,
:has और :even/:odd में सुधार, uniqueSort chaining जोड़ी गई
- Docs: HTTPS links update, README और CONTRIBUTING docs को व्यवस्थित किया गया
- Release: build और distribution process automation,
release-it आधारित workflow में बदलाव
सारांश
- jQuery 4.0.0 आधुनिक web standards और security policies के अनुरूप एक संरचनात्मक रूप से पुनर्गठित version है
- legacy code हटाना, ES modules अपनाना, security मजबूत करना और हल्का बनाना इसके लंबे समय के maintainability आधार को मजबूत करते हैं
- इसे jQuery ecosystem की 20वीं वर्षगांठ का एक प्रतीकात्मक release माना जा रहा है
अभी कोई टिप्पणी नहीं है.