• लगभग 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 और छोटा है

डाउनलोड और वितरण

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 माना जा रहा है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.