14 पॉइंट द्वारा GN⁺ 2026-01-19 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • लगभग 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 माना जा रहा है

3 टिप्पणियां

 
tsboard 2026-01-21

यह एक भावुक कर देने वाली 20वीं वर्षगांठ है। अब इसका इस्तेमाल करने की नौबत लगभग नहीं आती, लेकिन फिर भी उम्मीद है कि यह मैदान में एक उपयोगी टूल के रूप में आगे भी पसंद किया जाता रहेगा।

 
shakespeares 2026-01-19

काफ़ी टिकाऊ है.. हाहा

 
GN⁺ 2026-01-19
Hacker News की राय
  • संबंधित लेख के तौर पर, legacy codebase में जब modern framework इस्तेमाल नहीं किए जा सकते, तब jQuery को reactive तरीके से इस्तेमाल करने पर एक अच्छी तरह व्यवस्थित लेख है
    Reactive jQuery for Spaghetti-fied Legacy Codebases

    • पहले इस तरह के काम के लिए BackboneJS बहुत इस्तेमाल होता था। आज भी इसका maintenance हो रहा है
      अगर legacy वजहों से jQuery इस्तेमाल करनी ही पड़े, तो modern framework पर जाने से पहले Backbone एक अच्छा बीच का कदम हो सकता है
      BackboneJS आधिकारिक साइट, GitHub टैग सूची
    • यह लेख देखकर पुराने jQuery spaghetti code वाले दिन याद आ गए
      सच कहें तो कई बार ज़रूरत से ज़्यादा designed React code, अच्छी तरह व्यवस्थित jQuery code से भी बदतर होता था
      React ने quality standard ज़रूर ऊँचे किए, लेकिन कभी-कभी परिचित tools का सही इस्तेमाल ज़्यादा प्रभावी होता है
    • मैंने भी यह approach इस्तेमाल की है, और यह 2010s-स्टाइल jQuery अव्यवस्था से काफ़ी बेहतर थी
      खासकर Userscript जैसी छोटी problem scope वाली जगहों पर, जहाँ build step झंझट लगता है, यह अच्छी तरह फिट बैठती है
      दरअसल jQuery के बिना भी सिर्फ querySelector, addEventListener, innerHTML से इसे काफ़ी हद तक बनाया जा सकता है
    • मैंने आख़िरी बड़ा jQuery app भी इसी तरह के reactive pattern से बनाया था
      Joomla CMS के अंदर एक custom search frontend को ज़बरदस्ती फिट करना पड़ा था, लेकिन यह काफ़ी अच्छी तरह चला
    • यह वाकई बहुत अच्छा pattern है। इसमें signals जोड़ दिए जाएँ तो update function अपने-आप कॉल हो जाता है
      Reactive Mastro में हम यही तरीका अपनाते हैं
  • jQuery अब भी मेरी सबसे पसंदीदा libraries में से एक है
    यह वही tool है जिसने मेरा career बनाया, इसलिए उससे हमेशा लगाव रहेगा

    • आजकल के बच्चे सिर्फ नए framework के पीछे भागते हैं, लेकिन jQuery और .NET Framework की वजह से मेरे पास हमेशा काम रहा
    • मैं 15 साल से jQuery इस्तेमाल कर रहा हूँ। यह अब भी मेरी default choice है
    • अच्छा होगा अगर कोई jQuery में Virtual DOM जोड़ दे
      jQuery + jQuery UI + plugin + AI का मेल बहुत बड़ी संभावनाएँ रखता है
  • जब भी HTMX की बात होती है, मेरे मन में आता है, “क्या यह बस jQuery में तीन लाइन में नहीं हो सकता?”
    खैर, jQuery ने हमेशा समस्याएँ हल की हैं, और वही मायने रखता है

    • सही है। HTMX दरअसल intercooler.js से विकसित हुआ, जिसे मूल रूप से jQuery की .load() method से प्रेरणा मिली थी
      jQuery.load() दस्तावेज़ देखें
      performance पर काम करते समय यह मिला था, और इससे jQuery के प्रति सम्मान और बढ़ गया
    • jQuery की समस्या यह है कि यह imperative code है, इसलिए कई state संभालना शुरू करते ही जटिल हो जाता है
    • आजकल मैं native JS इस्तेमाल करता हूँ, लेकिन $() selector interface की elegance अब भी बेहतरीन थी
      performance का फ़र्क शायद precomputation से कुछ हद तक सँभाला जा सकता है
    • Django इस्तेमाल करते समय मैं ज़्यादातर समस्याएँ HTMX और vanilla JS के मेल से हल करता हूँ
      यह सरल रहते हुए भी SPA जैसा एहसास दे सकता है
  • Good ol’ jQuery, सच में शुक्रिया

  • यह देखकर अच्छा लगता है कि jQuery अब भी maintain और update हो रही है
    लेकिन इसका मतलब यह भी हो सकता है कि React शायद 2060 तक भी ज़िंदा रहे, और यह सोचकर थोड़ी उदासी होती है

    • React की वजह से app development बहुत बेहतर हुआ है
      पुराने callback hell को याद करूँ तो आज की स्थिति किसी सपने जैसी लगती है
    • 2060 तक शायद React Native v0.93 तक पहुँचे
    • असल में अभी भी React के दो रूप जैसे मौजूद हैं। 2060 तक शायद पाँच हो जाएँ
  • 2000~2010 के दशक में, जब SPA framework आम नहीं थे, मैंने भी jQuery से web development सीखी थी
    लगता है उस समय बनाई गई चीज़ों में से काफ़ी कुछ आज भी चल रहा होगा
    jQuery टीम को धन्यवाद

  • jQuery 4.0 release में शामिल सभी लोगों को बधाई
    अगर थोड़ा ज़्यादा संरचित तरीका चाहिए, तो JsViews नाम का एक reactive template system है
    यह पुराना और स्थिर है, लेकिन modern framework जितना ध्यान नहीं पा सका

    • JsViews के बारे में पहली बार सुन रहा हूँ, लेकिन दिलचस्प लग रहा है
      मुझे व्यक्तिगत रूप से cheerio और alpine.js जैसे modern jQuery-style tools पसंद हैं
      cheerio.js.org, alpinejs.dev
    • मैं भी अभी jQuery इस्तेमाल नहीं करूँगा, लेकिन JsViews के source को पढ़ना काफ़ी उपयोगी हो सकता है
      बस इसकी site design बहुत पुरानी लगती है, शायद इसी वजह से adoption कम है
      फिर भी यह तेज़ी से load होती है, और इसकी lightweight प्रकृति प्रभावित करती है
      jsrender.min.js सिर्फ 12.82kB है
  • यकीन करना मुश्किल है, लेकिन jQuery 4.0 अब भी IE11 support करता है
    यह support आख़िरकार jQuery 5.0 में हटाया जाएगा

    • लगता है 4.0 release में देर न हो, इसलिए IE11 support बनाए रखा गया
      संबंधित PR, issue देखें
      यह सोचकर काफ़ी हैरानी होती है कि 3.0 दस साल पहले आया था
    • यह backward compatibility के लिए है। आज भी ऐसे environment हैं जहाँ IE11 इस्तेमाल करना पड़ता है
      ऐसे users और products को support मिलता रहे, यह अच्छी बात है
    • Microsoft, Windows 10 LTSC और Windows 11 के Edge IE mode में 2032 तक IE11 support देने वाला है
    • दुनिया के हर व्यक्ति के पास सबसे नया hardware और software नहीं होता
      अब भी कई जगह स्कूल के कंप्यूटर लैब जैसे पुराने सिस्टम इस्तेमाल होते हैं
  • jQuery के upgrade tool में डाली गई मेहनत वाकई प्रशंसनीय है

  • मुझे अब भी jQuery की chaining syntax बहुत पसंद है
    15 साल पहले मैंने फ़्रेंच में jQuery tutorial लिखा था, जिसे बहुत views मिले थे
    उम्मीद है कि jQuery के प्रसार में मेरा भी थोड़ा योगदान रहा होगा