j క్వెరీ చరిత్ర మరియు వారసత్వం

j క్వెరీ చరిత్ర మరియు వారసత్వం
j క్వెరీ - ఇది అత్యంత ప్రజాదరణ పొందినది ప్రపంచంలో ఒక జావాస్క్రిప్ట్ లైబ్రరీ. వెబ్ డెవలప్‌మెంట్ కమ్యూనిటీ దీనిని 2000ల చివరలో సృష్టించింది, దీని ఫలితంగా హుడ్ కింద j క్వెరీని ఉపయోగించి సైట్‌లు, ప్లగిన్‌లు మరియు ఫ్రేమ్‌వర్క్‌ల యొక్క గొప్ప పర్యావరణ వ్యవస్థ ఏర్పడింది.

కానీ ఇటీవలి సంవత్సరాలలో, వెబ్ అభివృద్ధికి ప్రధాన సాధనంగా దాని స్థితి క్షీణించింది. j క్వెరీ ఎందుకు జనాదరణ పొందిందో మరియు అది ఫ్యాషన్ నుండి ఎందుకు బయటపడిందో చూద్దాం మరియు ఆధునిక వెబ్‌సైట్‌లను రూపొందించడానికి ఏ సందర్భాలలో దీన్ని ఉపయోగించడం ఇంకా మంచిది.

j క్వెరీ యొక్క సంక్షిప్త చరిత్ర

జాన్ రెసిగ్ (జాన్ రెసిగ్) 2005లో లైబ్రరీ యొక్క మొదటి సంస్కరణను సృష్టించారు మరియు 2006లో ప్రచురించబడింది-m, BarCampNYC అనే ఈవెంట్‌లో. పై j క్వెరీ అధికారిక వెబ్‌సైట్ రచయిత రాశారు:

j క్వెరీ అనేది నినాదం ఆధారంగా ఒక జావాస్క్రిప్ట్ లైబ్రరీ: జావాస్క్రిప్ట్ కోడ్ చేయడానికి సరదాగా ఉండాలి. j క్వెరీ సాధారణ, పునరావృత విధులను తీసుకుంటుంది, అన్ని అనవసరమైన మార్కప్‌లను తీసివేస్తుంది మరియు వాటిని చిన్నగా, సొగసైనదిగా మరియు శుభ్రంగా చేస్తుంది.

j క్వెరీకి రెండు ప్రధాన ప్రయోజనాలు ఉన్నాయి. మొదటిది వెబ్ పేజీలను మార్చటానికి అనుకూలమైన API. ముఖ్యంగా, ఇది ఎలిమెంట్లను ఎంచుకోవడానికి శక్తివంతమైన పద్ధతులను అందిస్తుంది. మీరు ID లేదా తరగతి ద్వారా మాత్రమే ఎంచుకోవచ్చు, j క్వెరీ సంక్లిష్ట వ్యక్తీకరణలను వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు, ఇతర అంశాలతో వాటి సంబంధాల ఆధారంగా మూలకాలను ఎంచుకోవడానికి:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

కాలక్రమేణా, ఎంపిక యంత్రాంగం ప్రత్యేక లైబ్రరీగా మారింది ఉద్రిక్త పడు.

లైబ్రరీ యొక్క రెండవ ప్రయోజనం ఏమిటంటే ఇది బ్రౌజర్‌ల మధ్య తేడాలను సంగ్రహిస్తుంది. ఆ సంవత్సరాల్లో, అన్ని బ్రౌజర్‌లలో విశ్వసనీయంగా పని చేసే కోడ్‌ను వ్రాయడం కష్టం.

ప్రామాణీకరణ లేకపోవడం వల్ల డెవలపర్‌లు బ్రౌజర్‌లు మరియు ఎడ్జ్ కేసుల మధ్య అనేక వ్యత్యాసాలను పరిగణనలోకి తీసుకోవాలి. ఒక్కసారి దీనిని చూడు ఈ ప్రారంభ j క్వెరీ సోర్స్ కోడ్ మరియు jQuery.browser కోసం శోధించండి. ఇక్కడ ఒక ఉదాహరణ:

// 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);
}

మరియు j క్వెరీకి ధన్యవాదాలు, డెవలపర్‌లు ఈ అన్ని ఆపదల గురించి చింతలను లైబ్రరీని అభివృద్ధి చేస్తున్న బృందం భుజాలపైకి మార్చవచ్చు.

తరువాత, j క్వెరీ యానిమేషన్లు మరియు అజాక్స్ వంటి క్లిష్టమైన సాంకేతికతలను అమలు చేయడాన్ని సులభతరం చేసింది. లైబ్రరీ సమర్థవంతంగా వెబ్‌సైట్‌లకు ప్రామాణిక డిపెండెన్సీగా మారింది. మరియు నేడు ఇది ఇంటర్నెట్‌లో భారీ వాటాను కలిగి ఉంది. W3Techs నమ్ముతుంది నేడు 74% సైట్లు j క్వెరీని ఉపయోగిస్తున్నాయి.

j క్వెరీ అభివృద్ధిపై నియంత్రణ కూడా మరింత అధికారికంగా మారింది. 2011లో జట్టు j క్వెరీ బోర్డు సృష్టించబడింది. మరియు 2012 లో j క్వెరీ బోర్డు j క్వెరీ ఫౌండేషన్‌గా రూపాంతరం చెందింది.

2015లో, j క్వెరీ ఫౌండేషన్ డోజో ఫౌండేషన్‌తో విలీనమైంది, JS ఫౌండేషన్ సృష్టించడానికి, ఇది Node.js ఫౌండేషన్‌తో విలీనం చేయబడింది 2019-m సృష్టించడానికి ఓపెన్జెఎస్ ఫౌండేషన్, దీనిలో j క్వెరీ ఒకటి "పురోగతి ప్రాజెక్టులు. "

మారుతున్న పరిస్థితులు

అయితే, ఇటీవలి సంవత్సరాలలో j క్వెరీ దాని ప్రజాదరణ కోల్పోయింది. GitHub నా సైట్ ఫ్రంట్‌ఎండ్ నుండి లైబ్రరీని తీసివేసాను. బూట్‌స్ట్రాప్ v5 j క్వెరీని వదిలించుకోండిఎందుకంటే అది అతనిది"సాధారణ జావాస్క్రిప్ట్ కోసం అతిపెద్ద క్లయింట్ డిపెండెన్సీ"(ప్రస్తుతం 30 KB పరిమాణం, కనిష్టీకరించబడింది మరియు ప్యాక్ చేయబడింది). వెబ్ డెవలప్‌మెంట్‌లోని అనేక ధోరణులు j క్వెరీ యొక్క స్థానాన్ని ఆవశ్యక సాధనంగా బలహీనపరిచాయి.

బ్రౌజర్లు

అనేక కారణాల వల్ల, బ్రౌజర్ తేడాలు మరియు పరిమితులు తక్కువ ప్రాముఖ్యతను సంతరించుకున్నాయి. మొదట, ప్రామాణీకరణ మెరుగుపడింది. ప్రధాన బ్రౌజర్ డెవలపర్‌లు (ఆపిల్, గూగుల్, మైక్రోసాఫ్ట్ మరియు మొజిల్లా) అభివృద్ధి చేయడానికి కలిసి పని చేస్తున్నారు వెబ్ ప్రమాణాలు లోపల వెబ్ హైపర్‌టెక్స్ట్ అప్లికేషన్ టెక్నాలజీ వర్కింగ్ గ్రూప్.
బ్రౌజర్‌లు ఇప్పటికీ అనేక ముఖ్యమైన మార్గాల్లో ఒకదానికొకటి భిన్నంగా ఉన్నప్పటికీ, విక్రేతలు కనీసం ఒక సాధారణ డేటాబేస్‌ను శోధించడానికి మరియు సృష్టించడానికి మార్గాలను కలిగి ఉంటారు శాశ్వత యుద్ధం కలిసి. దీని ప్రకారం, బ్రౌజర్ APIలు కొత్త సామర్థ్యాలను పొందాయి. ఉదా, APIని పొందండి j క్వెరీ నుండి అజాక్స్ ఫంక్షన్‌లను భర్తీ చేయగల సామర్థ్యం:

// 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);
    });

పద్ధతులు querySelector и querySelectorAll నకిలీ j క్వెరీ పికర్స్:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

మీరు ఇప్పుడు మూలకం తరగతులను ఉపయోగించి మార్చవచ్చు తరగతి జాబితా:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

సైట్లో మీకు j క్వెరీ అవసరం ఉండకపోవచ్చు j క్వెరీ కోడ్‌ని స్థానిక కోడ్‌తో భర్తీ చేసే మరికొన్ని సందర్భాలు ఇక్కడ ఉన్నాయి. కొంతమంది డెవలపర్‌లు ఎల్లప్పుడూ j క్వెరీతో కట్టుబడి ఉంటారు ఎందుకంటే వారికి కొత్త APIల గురించి తెలియదు, కానీ వారు అలా చేసినప్పుడు, వారు తక్కువ తరచుగా లైబ్రరీని ఉపయోగించడం ప్రారంభిస్తారు.

స్థానిక లక్షణాలను ఉపయోగించడం పేజీ పనితీరును మెరుగుపరుస్తుంది. అనేక j క్వెరీ నుండి యానిమేషన్ ప్రభావాలు ఇప్పుడు మీరు అమలు చేయవచ్చు మరింత ప్రభావవంతమైన CSS ఉపయోగించి.

రెండవ కారణం ఏమిటంటే, బ్రౌజర్‌లు మునుపటి కంటే చాలా వేగంగా నవీకరించబడతాయి. వాటిని చాలా మంది ఉపయోగిస్తున్నారు "సతత హరిత" పునరుద్ధరణ వ్యూహం, Apple Safari మినహా. వినియోగదారు ప్రమేయం లేకుండానే వాటిని బ్యాక్‌గ్రౌండ్‌లో అప్‌డేట్ చేయవచ్చు మరియు OS అప్‌డేట్‌లతో ముడిపడి ఉండవు.

దీని అర్థం కొత్త బ్రౌజర్ ఫీచర్‌లు మరియు బగ్ పరిష్కారాలు చాలా వేగంగా పంపిణీ చేయబడతాయి మరియు డెవలపర్‌లు వరకు వేచి ఉండాల్సిన అవసరం లేదు నేను ఉపయోగించ వచ్చునా ఆమోదయోగ్యమైన స్థాయికి చేరుకుంటాయి. వారు j క్వెరీ లేదా పాలీఫిల్‌లను డౌన్‌లోడ్ చేయకుండానే కొత్త ఫీచర్లు మరియు APIలను నమ్మకంగా ఉపయోగించగలరు.

మూడవ కారణం ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ పూర్తిగా అసంబద్ధ స్థితికి చేరుకోవడం. IE చాలా కాలంగా ప్రపంచవ్యాప్తంగా వెబ్ అభివృద్ధికి నిషేధంగా ఉంది. దీని బగ్‌లు విస్తృతంగా వ్యాపించాయి మరియు 2000లలో IE ఆధిపత్యం చెలాయించింది మరియు సతతహరిత నవీకరణ వ్యూహాన్ని ఉపయోగించనందున, పాత సంస్కరణలు ఇప్పటికీ సాధారణం.

2016లో, మైక్రోసాఫ్ట్ IE యొక్క ఉపసంహరణను వేగవంతం చేసింది, మద్దతు ఇవ్వడం మానేస్తుంది పదవ మరియు మునుపటి సంస్కరణలు, IE 11కి మద్దతుకు పరిమితం చేయబడ్డాయి. మరియు ఎక్కువగా, వెబ్ డెవలపర్‌లు IE అనుకూలతను విస్మరించే విలాసాన్ని కలిగి ఉన్నారు.

j క్వెరీ కూడా IE 8కి మద్దతివ్వడం ఆపివేసింది మరియు దాని కంటే తక్కువ వెర్షన్ 2.0, 2013లో ప్రచురించబడింది. మరియు కొన్ని సందర్భాల్లో IE మద్దతు ఇప్పటికీ అవసరం అయినప్పటికీ, ఉదాహరణకు, పాత సైట్‌లలో, ఈ పరిస్థితులు తక్కువ మరియు తక్కువ తరచుగా తలెత్తుతాయి.

కొత్త ఫ్రేమ్‌వర్క్‌లు

j క్వెరీ వచ్చినప్పటి నుండి, ఆధునిక నాయకులతో సహా అనేక ఫ్రేమ్‌వర్క్‌లు సృష్టించబడ్డాయి స్పందించలేదు, కోణీయ и వ్యూ. వారు j క్వెరీ కంటే రెండు ముఖ్యమైన ప్రయోజనాలను కలిగి ఉన్నారు.

మొదట, వారు వినియోగదారు ఇంటర్‌ఫేస్‌ను భాగాలుగా విభజించడాన్ని సులభతరం చేస్తారు. ఫ్రేమ్‌వర్క్‌లు పేజీ రెండరింగ్ మరియు నవీకరణను నిర్వహించడానికి రూపొందించబడ్డాయి. మరియు j క్వెరీ సాధారణంగా నవీకరణ కోసం మాత్రమే ఉపయోగించబడుతుంది, సర్వర్‌కు ప్రారంభ పేజీని అందించే పనిని వదిలివేస్తుంది.

మరోవైపు, రియాక్ట్, యాంగ్యులర్ మరియు వ్యూ కాంపోనెంట్‌లు HTML, కోడ్ మరియు CSSని కూడా గట్టిగా జత చేయడానికి మిమ్మల్ని అనుమతిస్తాయి. మేము కోడ్ బేస్‌ను అనేక స్వీయ-నియంత్రణ విధులు మరియు తరగతులుగా విభజించినట్లే, ఇంటర్‌ఫేస్‌ను పునర్వినియోగ భాగాలుగా విభజించే సామర్థ్యం సంక్లిష్ట సైట్‌లను నిర్మించడం మరియు నిర్వహించడం సులభం చేస్తుంది.

రెండవ ప్రయోజనం ఏమిటంటే, ఇటీవలి ఫ్రేమ్‌వర్క్‌లు డిక్లరేటివ్ నమూనాకు కట్టుబడి ఉంటాయి, దీనిలో డెవలపర్ ఇంటర్‌ఫేస్ ఎలా ఉండాలో వివరిస్తాడు మరియు కోరుకున్నది సాధించడానికి అవసరమైన అన్ని మార్పులను చేయడానికి ఫ్రేమ్‌వర్క్‌కు వదిలివేస్తాడు. ఈ విధానం j క్వెరీ కోడ్‌ని వివరించే అత్యవసర విధానానికి విరుద్ధం.

j క్వెరీలో, మీరు ఏవైనా మార్పులు చేయడానికి దశలను స్పష్టంగా వ్రాస్తారు. మరియు డిక్లరేటివ్ ఫ్రేమ్‌వర్క్‌లో మీరు ఇలా అంటారు, “ఈ డేటా ప్రకారం, ఇంటర్‌ఫేస్ ఇలా ఉండాలి.” ఇది బగ్-ఫ్రీ కోడ్ రాయడం చాలా సులభం చేస్తుంది.

వెబ్‌సైట్ అభివృద్ధికి డెవలపర్‌లు కొత్త విధానాలను అవలంబించారు, అందుకే j క్వెరీ యొక్క ప్రజాదరణ తగ్గింది.

j క్వెరీని ఎప్పుడు ఉపయోగించాలి?

అయితే ఎప్పుడు ఉండాలి j క్వెరీని ఉపయోగించాలా?

ప్రాజెక్ట్ యొక్క సంక్లిష్టత పెరిగితే, సంక్లిష్టతను అర్థవంతంగా నిర్వహించడానికి మిమ్మల్ని అనుమతించే మరొక లైబ్రరీ లేదా ఫ్రేమ్‌వర్క్‌తో ప్రారంభించడం మంచిది. ఉదాహరణకు, ఇంటర్‌ఫేస్‌ను భాగాలుగా విభజించండి. అటువంటి సైట్‌లలో j క్వెరీని ఉపయోగించడం మొదట్లో బాగానే కనిపించవచ్చు, అయితే ఇది త్వరగా స్పఘెట్టి కోడ్‌కి దారి తీస్తుంది, ఇక్కడ ఏ భాగం పేజీలోని ఏ భాగాన్ని ప్రభావితం చేస్తుందో మీకు ఖచ్చితంగా తెలియదు.

నేను అలాంటి పరిస్థితిలో ఉన్నాను, ఏదైనా మార్పు చేయడానికి ప్రయత్నిస్తున్నప్పుడు, అది చాలా కష్టమైన పనిగా అనిపిస్తుంది. మీరు దేనినీ విచ్ఛిన్నం చేయరని మీరు ఖచ్చితంగా చెప్పలేరు ఎందుకంటే j క్వెరీ సెలెక్టర్లు సర్వర్ ద్వారా రూపొందించబడిన HTML నిర్మాణంపై ఆధారపడి ఉంటాయి.

స్కేల్ యొక్క మరొక చివరలో కొంచెం ఇంటరాక్టివిటీ లేదా డైనమిక్ కంటెంట్ మాత్రమే అవసరమయ్యే సాధారణ సైట్‌లు ఉన్నాయి. నేను ఈ సందర్భాలలో j క్వెరీని డిఫాల్ట్ చేయను, ఎందుకంటే స్థానిక APIలతో మీరు ఇంకా చాలా ఎక్కువ చేయవచ్చు.

నాకు మరింత శక్తివంతమైనది ఏదైనా అవసరం అయినప్పటికీ, నేను ప్రత్యేకమైన లైబ్రరీ కోసం చూస్తాను, ఉదా. axios అజాక్స్ కోసం లేదా Animate.css యానిమేషన్ల కోసం. చిన్న కార్యాచరణ కోసం అన్ని j క్వెరీలను లోడ్ చేయడం కంటే ఇది సులభం అవుతుంది.

j క్వెరీని ఉపయోగించడానికి ఉత్తమ హేతువు ఏమిటంటే ఇది వెబ్‌సైట్ యొక్క ఫ్రంట్ ఎండ్ కోసం సమగ్ర కార్యాచరణను అందిస్తుంది. వివిధ రకాల స్థానిక APIలు లేదా ప్రత్యేక లైబ్రరీలను నేర్చుకునే బదులు, మీరు కేవలం j క్వెరీ డాక్యుమెంటేషన్‌ను చదవవచ్చు మరియు తక్షణమే ఉత్పాదకంగా మారవచ్చు.

అత్యవసర విధానం బాగా స్కేల్ చేయదు, కానీ ఇతర లైబ్రరీల డిక్లరేటివ్ విధానం కంటే నేర్చుకోవడం సులభం. స్పష్టంగా పరిమిత సామర్థ్యాలతో ఉన్న సైట్ కోసం, j క్వెరీని ఉపయోగించడం మరియు ప్రశాంతంగా పని చేయడం మంచిది: లైబ్రరీకి సంక్లిష్టమైన అసెంబ్లీ లేదా సంకలనం అవసరం లేదు.

అదనంగా, మీ సైట్ కాలక్రమేణా సంక్లిష్టంగా మారదని మీకు నమ్మకం ఉంటే మరియు స్థానిక కార్యాచరణ గురించి మీరు పట్టించుకోనట్లయితే, j క్వెరీ కంటే ఎక్కువ కోడ్ రాయడం ఖచ్చితంగా అవసరం అయితే j క్వెరీ మంచిది.

మీరు IE యొక్క పాత సంస్కరణలకు మద్దతు ఇవ్వాల్సిన అవసరం ఉన్నట్లయితే మీరు ఈ లైబ్రరీని కూడా ఉపయోగించవచ్చు. IE అత్యంత జనాదరణ పొందిన బ్రౌజర్‌గా ఉన్న రోజుల్లో j క్వెరీ మీకు సేవ చేస్తుంది.

భవిష్యత్తును పరిశీలించండి

j క్వెరీ ఎప్పుడైనా అదృశ్యం కాదు. ఆమె చురుకుగా అభివృద్ధి, మరియు చాలా మంది డెవలపర్‌లు స్థానిక పద్ధతులు అందుబాటులో ఉన్నప్పటికీ, దాని APIని ఉపయోగించడానికి ఇష్టపడతారు. ఏదైనా బ్రౌజర్‌లో పని చేసే వెబ్‌సైట్‌లను రూపొందించడానికి మొత్తం తరం డెవలపర్‌లకు లైబ్రరీ సహాయం చేసింది. కొత్త లైబ్రరీలు, ఫ్రేమ్‌వర్క్‌లు మరియు నమూనాల ద్వారా ఇది అనేక విధాలుగా భర్తీ చేయబడినప్పటికీ, ఆధునిక వెబ్ సృష్టిలో j క్వెరీ చాలా సానుకూల పాత్రను పోషించింది.

j క్వెరీ యొక్క కార్యాచరణ గణనీయంగా మారకపోతే, లైబ్రరీ యొక్క వినియోగం తదుపరి కొన్ని సంవత్సరాలలో నెమ్మదిగా కానీ క్రమంగా తగ్గుముఖం పట్టే అవకాశం ఉంది. కొత్త వెబ్‌సైట్‌లు ప్రారంభం నుండి మరింత ఆధునిక ఫ్రేమ్‌వర్క్‌లను ఉపయోగించి నిర్మించబడతాయి మరియు j క్వెరీకి తగిన వినియోగ సందర్భాలు చాలా అరుదుగా మారుతున్నాయి.

వెబ్ డెవలప్‌మెంట్ సాధనాలు వాడుకలో లేని రేటును కొంతమంది ఇష్టపడరు, కానీ నాకు ఇది వేగవంతమైన పురోగతికి నిదర్శనం. j క్వెరీ మాకు చాలా మంచి పనులు చేయడానికి అనుమతించింది. ఆమె వారసుల విషయంలోనూ ఇదే పరిస్థితి.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి