ASP.NET MVC యాప్‌ల కోసం, DevToolsతో j క్వెరీలో QuerySelector లోపాన్ని డీబగ్ చేయడం

ASP.NET MVC యాప్‌ల కోసం, DevToolsతో j క్వెరీలో QuerySelector లోపాన్ని డీబగ్ చేయడం
ASP.NET MVC యాప్‌ల కోసం, DevToolsతో j క్వెరీలో QuerySelector లోపాన్ని డీబగ్ చేయడం

ASP.NET MVC పేజీలలో గ్లోబల్ j క్వెరీ లోపాలను గుర్తించడం

ASP.NET MVC యాప్‌తో పని చేస్తున్నప్పుడు, బహుళ పేజీలలో ఒకే JavaScript ఎర్రర్‌ను ఎదుర్కొంటే నిరాశ కలిగిస్తుంది. ఈ సమస్య, ముఖ్యంగా j క్వెరీ మరియు బూట్‌స్ట్రాప్‌కు సంబంధించినప్పుడు, మీ వెబ్ అప్లికేషన్ యొక్క కార్యాచరణకు అంతరాయం కలిగించవచ్చు.

j క్వెరీ 3.7.1 మరియు బూట్‌స్ట్రాప్ 5 విషయంలో, ఒక లోపం వంటిది "పత్రం'పై 'querySelector'ని అమలు చేయడంలో విఫలమైంది: ':has(*,:jqfake)' చెల్లుబాటు అయ్యే ఎంపిక కాదు" సమస్యాత్మక గ్లోబల్ సెలెక్టర్‌ను సూచిస్తుంది. ఈ లోపం యొక్క మూలం ప్రపంచవ్యాప్తంగా లోడ్ చేయబడిన స్క్రిప్ట్‌లలో దాచబడి ఉండవచ్చు, ఇది ప్రతి పేజీలో లోపానికి దారి తీస్తుంది.

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

సమస్యాత్మక కోడ్‌ను వేరు చేయడానికి DevToolsని సమర్థవంతంగా ఉపయోగించడం ద్వారా ఈ కథనం మీకు మార్గనిర్దేశం చేస్తుంది. ఈ సమస్యను దశల వారీగా డీబగ్ చేయడం నేర్చుకోవడం ద్వారా, మీరు మీ వర్క్‌ఫ్లోను మెరుగుపరుస్తారు మరియు మీ ASP.NET MVC ప్రాజెక్ట్‌లలో గ్లోబల్ జావాస్క్రిప్ట్ లోపాలను త్వరగా పరిష్కరిస్తారు.

ఆదేశం ఉపయోగం యొక్క ఉదాహరణ
querySelector CSS సెలెక్టర్ ఆధారంగా మొదటి సరిపోలే మూలకాన్ని ఎంచుకోవడానికి ఉపయోగించబడుతుంది. ఈ సందర్భంలో, మద్దతు లేని :has(*,:jqfake) వంటి చెల్లని j క్వెరీ సెలెక్టర్ ఉపయోగించినప్పుడు స్క్రిప్ట్ విఫలం కాకుండా చూస్తుంది.
Regex.IsMatch స్ట్రింగ్ సాధారణ వ్యక్తీకరణ నమూనాతో సరిపోలుతుందో లేదో ఈ పద్ధతి తనిఖీ చేస్తుంది. CSS లేదా JavaScript సెలెక్టర్‌లలో సమస్యలను కలిగించే సంఖ్యతో ప్రారంభమయ్యే IDలను గుర్తించడానికి ఇది ఇక్కడ ఉపయోగించబడుతుంది.
document.ready ఈ j క్వెరీ ఫంక్షన్ దానిలోని కోడ్ DOM పూర్తిగా లోడ్ అయిన తర్వాత మాత్రమే నడుస్తుందని నిర్ధారిస్తుంది. ఎలిమెంట్‌లను పేజీలో రెండర్ చేయడానికి ముందు యాక్సెస్ చేస్తే సంభవించే లోపాలను ఇది నివారిస్తుంది.
try...catch కోడ్ యొక్క సురక్షిత అమలును అనుమతించే మరియు సంభవించే ఏవైనా లోపాలను సంగ్రహించే బ్లాక్. ఈ సందర్భంలో, స్క్రిప్ట్‌ను క్రాష్ చేయకుండా ఉపయోగకరమైన సమాచారాన్ని లాగింగ్ చేయడం, చెల్లని సెలెక్టర్ల ద్వారా విసిరిన లోపాలను నిర్వహించడానికి ఇది ఉపయోగించబడుతుంది.
SanitizeId ఈ కస్టమ్ C# ఫంక్షన్ సంఖ్యలతో ప్రారంభమయ్యే IDలకు ఉపసర్గను జోడిస్తుంది, చెల్లని సెలెక్టర్‌లను బ్యాక్-ఎండ్‌లో ఉత్పత్తి చేయకుండా నిరోధించడం ద్వారా ఫ్రంట్-ఎండ్ సమస్యలను కలిగిస్తుంది.
expect జెస్ట్ టెస్టింగ్ ఫ్రేమ్‌వర్క్‌లో భాగంగా, ఈ ఫంక్షన్ పరీక్ష ఫలితాన్ని తనిఖీ చేస్తుంది. ఉదాహరణలో, క్వెరీసెలెక్టర్ సరైన మూలకాన్ని విజయవంతంగా కనుగొంటుందో లేదో ఇది ధృవీకరిస్తుంది.
Assert.AreEqual రెండు విలువలు సమానంగా ఉన్నాయని ధృవీకరించడానికి C# టెస్టింగ్ (MSTest)లో ఉపయోగించే పద్ధతి. అవసరమైన ఉపసర్గను జోడించడం ద్వారా SanitizeId ఫంక్షన్ సరిగ్గా IDని ఫార్మాట్ చేస్తుందని ఇది నిర్ధారిస్తుంది.
Console.WriteLine కన్సోల్‌కు స్ట్రింగ్ లేదా వేరియబుల్ విలువను అవుట్‌పుట్ చేస్తుంది. ఉదాహరణలో, డీబగ్గింగ్ సమయంలో ఫలితాలను వెరిఫై చేయడానికి డెవలపర్‌లకు సహాయం చేయడానికి, శుభ్రపరచబడిన IDని ప్రదర్శించడానికి ఇది ఉపయోగించబడుతుంది.
test జెస్ట్‌లో యూనిట్ పరీక్షలను నిర్వచించడానికి ఇది ప్రధాన విధి. ఇది పరీక్ష దృష్టాంతాన్ని అమలు చేస్తుంది, సెలెక్టర్ లాజిక్ ఫ్రంట్-ఎండ్ స్క్రిప్ట్‌లో ఉద్దేశించిన విధంగా పని చేస్తుందని నిర్ధారిస్తుంది.

ASP.NET MVCలో j క్వెరీ డీబగ్గింగ్‌ను అర్థం చేసుకోవడం మరియు ఆప్టిమైజ్ చేయడం

మొదటి స్క్రిప్ట్ ఫ్రంట్-ఎండ్ సొల్యూషన్, ఇది j క్వెరీలో చెల్లని సెలెక్టర్ సమస్యను పరిష్కరిస్తుంది, ప్రత్యేకంగా querySelector లోపం. లోపం చెల్లని నకిలీ-తరగతి నుండి వచ్చింది :has(*,:jqfake), j క్వెరీ 3.7.1 లేదా ఆధునిక బ్రౌజర్‌లలో దీనికి మద్దతు లేదు. దీన్ని పరిష్కరించడానికి, మేము చెల్లుబాటు అయ్యే CSS ఎంపిక సాధనాన్ని ఉపయోగిస్తాము మరియు document.querySelector పేజీలోని అంశాలను సురక్షితంగా లక్ష్యంగా చేసుకోవడానికి. లోపల సెలెక్టర్ లాజిక్‌ను చుట్టడం ద్వారా పత్రం.సిద్ధంగా, మేము మా స్క్రిప్ట్ DOM పూర్తిగా లోడ్ అయ్యే వరకు వేచి ఉండేలా చూస్తాము, ఎలిమెంట్‌లను చాలా ముందుగానే యాక్సెస్ చేయడం వల్ల కలిగే ఏవైనా సమస్యలను నివారిస్తాము. సెలెక్టర్‌ని ఉపయోగించడం వల్ల ఏదైనా లోపం తలెత్తితే, ది ప్రయత్నించండి...పట్టుకోండి బ్లాక్ అనేది పేజీ యొక్క కార్యాచరణకు అంతరాయం కలగకుండా లాగ్ చేయడంలో సహాయపడుతుంది.

రెండవ స్క్రిప్ట్ మొదటి స్థానంలో చెల్లని సెలెక్టర్‌లను ఉత్పత్తి చేయకుండా నిరోధించడం ద్వారా బ్యాక్-ఎండ్ విధానాన్ని తీసుకుంటుంది. ASP.NET MVCలో, పూర్ణాంకాలతో ప్రారంభమయ్యే IDలు JavaScript సెలెక్టర్‌లలో ఉపయోగించినప్పుడు ఫ్రంట్-ఎండ్ మరియు బ్యాక్-ఎండ్ రెండింటిలోనూ సమస్యలను కలిగిస్తాయి. ఆచారం SanitizeId ID సంఖ్యతో ప్రారంభమైతే ఫంక్షన్ తనిఖీ చేస్తుంది మరియు j క్వెరీ సెలెక్టర్‌లకు చెల్లుబాటు అయ్యేలా చేయడానికి స్వయంచాలకంగా ఉపసర్గను జోడిస్తుంది. ఈ సొల్యూషన్ ముఖ్యంగా డైనమిక్ కంటెంట్ లేదా సర్వర్ వైపు ఉత్పన్నమయ్యే కాంపోనెంట్‌లకు ఉపయోగపడుతుంది, చెల్లని IDలు ఫ్రంట్-ఎండ్‌కు చేరేలోపు పరిష్కరించబడిందని నిర్ధారిస్తుంది.

అదనంగా, స్క్రిప్ట్‌లలో ప్రతి పరిష్కారం సరిగ్గా పని చేస్తుందని నిర్ధారించే యూనిట్ పరీక్షలు ఉంటాయి. మొదటి యూనిట్ పరీక్ష, వ్రాయబడింది జస్ట్, సర్దుబాటు చేసిన ఎంపిక సాధనాన్ని ఉపయోగించి ఫ్రంట్-ఎండ్ స్క్రిప్ట్ సరైన మూలకాన్ని కనుగొంటుందని ధృవీకరిస్తుంది. DOMలోకి HTMLని ఇంజెక్ట్ చేయడం ద్వారా మరియు తనిఖీ చేయడం ద్వారా querySelector మూలకాన్ని గుర్తిస్తుంది, మన తర్కం సరైనదో కాదో మనం త్వరగా గుర్తించగలము. రెండవ యూనిట్ పరీక్ష, ఉపయోగించి C#లో వ్రాయబడింది MSTest, నిర్ధారిస్తుంది SanitizeId ఫంక్షన్ సంఖ్యతో ప్రారంభమయ్యే ఏదైనా IDని సరిగ్గా ఫార్మాట్ చేస్తుంది. ఈ పరీక్షలు పరిష్కారాలు ముందు మరియు వెనుక చివరలలో ఆశించిన విధంగా పనిచేస్తాయని ధృవీకరించడంలో సహాయపడతాయి.

రెండు పరిష్కారాలు అత్యంత మాడ్యులర్ మరియు పునర్వినియోగపరచదగినవి. ఫ్రంట్-ఎండ్ స్క్రిప్ట్‌ను j క్వెరీ మరియు బూట్‌స్ట్రాప్ 5ని ఉపయోగించి ఏదైనా ప్రాజెక్ట్‌కి అన్వయించవచ్చు, అయితే బ్యాక్-ఎండ్ ఫంక్షన్‌ను ID-సంబంధిత సమస్యలను నిర్వహించడానికి ఏదైనా ASP.NET MVC యాప్‌లో సులభంగా చేర్చవచ్చు. ఫ్రంట్-ఎండ్ ఎర్రర్ హ్యాండ్లింగ్‌ను బ్యాక్-ఎండ్ ధ్రువీకరణతో కలపడం ద్వారా, ఈ స్క్రిప్ట్‌లు చెల్లని సెలెక్టర్లు మొత్తం వెబ్ అప్లికేషన్‌ను విచ్ఛిన్నం చేయకుండా నిరోధించడానికి సమగ్ర పరిష్కారాన్ని అందిస్తాయి. అలా చేయడం ద్వారా, అవి బహుళ పేజీలలో యాప్ యొక్క స్థిరత్వం మరియు పనితీరును మెరుగుపరచడంలో సహాయపడతాయి, మరింత పటిష్టమైన అభివృద్ధి ప్రక్రియను నిర్ధారిస్తాయి.

పరిష్కారం 1: ఫ్రంట్-ఎండ్ రీఫ్యాక్టరింగ్ ద్వారా j క్వెరీలో చెల్లని క్వెరీసెలెక్టర్‌ను డీబగ్ చేయడం

సెలెక్టర్‌ని తిరిగి వ్రాయడం ద్వారా ASP.NET MVC యాప్‌లో చెల్లని సెలెక్టర్ లోపాన్ని పరిష్కరించడానికి JavaScript (j క్వెరీ) పరిష్కారం.

// Check if jQuery is loaded
if (typeof jQuery !== 'undefined') {
  // Select a valid DOM element without using unsupported ':has(*,:jqfake)'
  $(document).ready(function() {
    try {
      // Replace invalid selector with a valid one
      var element = document.querySelector("[data-id]");
      if (element) {
        console.log("Valid element found: ", element);
      }
    } catch (e) {
      console.error("Selector error: ", e.message);
    }
  });
}

పరిష్కారం 2: బ్యాక్-ఎండ్ ASP.NET స్క్రిప్ట్ j క్వెరీ సెలెక్టర్‌లను శుభ్రపరచడానికి మరియు డీబగ్ చేయడానికి

ASP.NET C# బ్యాకెండ్ స్క్రిప్ట్ పూర్ణాంకాలతో IDలను నిర్వహించడానికి మరియు చెల్లని సెలెక్టర్‌లను ప్రపంచవ్యాప్తంగా ఉత్పత్తి చేయకుండా నిరోధించడానికి.

using System.Text.RegularExpressions;
public static string SanitizeId(string inputId) {
  // Check if ID starts with a number and add a valid prefix
  if (Regex.IsMatch(inputId, @"^\d")) {
    return "prefix_" + inputId;
  }
  return inputId;
}
// Example usage
string sanitizedId = SanitizeId("123ElementId");
Console.WriteLine("Sanitized ID: " + sanitizedId);

పరిష్కారం 3: రెండు స్క్రిప్ట్‌ల యొక్క సరైన ప్రవర్తనను ధృవీకరించడానికి యూనిట్ పరీక్షలు రాయడం

ఫ్రంట్-ఎండ్ కోడ్ కోసం Jest ఫ్రేమ్‌వర్క్‌ని ఉపయోగించి JavaScript యూనిట్ పరీక్షలు మరియు బ్యాకెండ్ ధ్రువీకరణ కోసం MSTest ఉపయోగించి C# యూనిట్ పరీక్షలు.

// Jest test for front-end code
test('should find valid element', () => {
  document.body.innerHTML = '<div data-id="123"></div>';
  var element = document.querySelector("[data-id]");
  expect(element).not.toBeNull();
});
// MSTest for C# back-end code
[TestMethod]
public void TestSanitizeId() {
  string result = SanitizeId("123ElementId");
  Assert.AreEqual("prefix_123ElementId", result);
}

ASP.NET MVCలో j క్వెరీ లోపాలను డీబగ్గింగ్ చేయడానికి అధునాతన సాంకేతికతలు

ASP.NET MVCలో చెల్లుబాటు కాని సెలెక్టర్ సమస్య వంటి డీబగ్గింగ్ లోపాల యొక్క విస్మరించబడిన అంశం ఏమిటంటే, ప్రపంచవ్యాప్తంగా లోడ్ చేయబడిన స్క్రిప్ట్‌లు మొత్తం అప్లికేషన్‌ను ఎలా ప్రభావితం చేస్తాయో అర్థం చేసుకోవడం. ప్రతి పేజీలో లోపం సంభవించినందున, సమస్య a నుండి ఉత్పన్నమయ్యే అవకాశం ఉంది ప్రపంచ స్క్రిప్ట్ అన్ని వీక్షణలు లేదా లేఅవుట్ ఫైల్‌లలో లోడ్ చేయబడింది. అనేక సందర్భాల్లో, డెవలపర్‌లు థర్డ్-పార్టీ లైబ్రరీలు లేదా అనుకూల స్క్రిప్ట్‌లను కలిగి ఉంటారు _Layout.cshtml ఫైల్, ఇది ప్రతి పేజీలో ఇవ్వబడుతుంది. ఈ గ్లోబల్ ఇన్‌క్లూజన్ ఆక్షేపణీయ వస్తువును వేరుచేయడం కష్టతరం చేస్తుంది, ప్రత్యేకించి లోపం వెంటనే కనిపించకపోతే.

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

అదనంగా, ఉపయోగించి నిర్దిష్ట సమస్యను ట్రాక్ చేయడం ఎడ్జ్ DevTools యొక్క జాగ్రత్తగా తనిఖీ అవసరం నెట్‌వర్క్ మరియు మూలాలు ప్యానెల్లు. ఏ వనరులు లోడ్ చేయబడిందో మరియు ఎప్పుడు లోడ్ చేయబడిందో పర్యవేక్షించడం ద్వారా, మీరు లోపానికి కారణమయ్యే ప్రపంచవ్యాప్తంగా లోడ్ చేయబడిన స్క్రిప్ట్‌ల మూలాన్ని గుర్తించవచ్చు. ఇంతకు ముందు అందించిన పరిష్కారాలతో ఈ పద్ధతులను కలపడం వలన డెవలపర్‌లు పెద్ద ASP.NET MVC అప్లికేషన్‌లలో గ్లోబల్ జావాస్క్రిప్ట్ సమస్యలను సమర్ధవంతంగా పరిష్కరించడంలో సహాయపడతారు.

ASP.NET MVCలో j క్వెరీ లోపాలను డీబగ్గింగ్ చేయడం గురించి తరచుగా అడిగే ప్రశ్నలు

  1. j క్వెరీలో చెల్లని సెలెక్టర్‌ని నేను ఎలా ట్రాక్ చేయాలి?
  2. ఉపయోగించండి document.querySelector మూలకాల కోసం సురక్షితంగా శోధించడానికి మరియు అమలు చేయడానికి try...catch స్క్రిప్ట్‌ను క్రాష్ చేయకుండా లోపాలను నిర్వహించడానికి బ్లాక్‌లు.
  3. "'querySelector'ని అమలు చేయడంలో విఫలమైంది" ఎర్రర్‌కు కారణమేమిటి?
  4. ఈ ఎర్రర్ సాధారణంగా చెల్లని CSS సెలెక్టర్ కారణంగా సంభవిస్తుంది, ఉదాహరణకు ఒక నంబర్‌తో ప్రారంభం కావడం లేదా మద్దతు లేని నకిలీ-తరగతులు.
  5. ASP.NET MVCలో ప్రపంచవ్యాప్తంగా లోడ్ చేయబడిన స్క్రిప్ట్‌ల నుండి నేను లోపాలను ఎలా నిరోధించగలను?
  6. థర్డ్-పార్టీ లైబ్రరీలు లేదా కస్టమ్ స్క్రిప్ట్‌లు సరిగ్గా నిర్మాణాత్మకంగా ఉన్నాయని నిర్ధారించుకోండి మరియు వాటిని ప్రపంచవ్యాప్తంగా కాకుండా షరతులతో లోడ్ చేయడాన్ని పరిగణించండి _Layout.cshtml ఫైల్.
  7. అజాక్స్ ద్వారా లోడ్ చేయబడిన మూలకాలను ఎంచుకోవడంలో j క్వెరీ ఎందుకు విఫలమవుతోంది?
  8. DOM పూర్తిగా నవీకరించబడటానికి ముందు అమలు చేయబడినట్లయితే j క్వెరీ ఎంపికదారులు విఫలం కావచ్చు. ఉపయోగించండి $(document).ready() లేదా డైనమిక్‌గా లోడ్ చేయబడిన కంటెంట్‌ను లక్ష్యంగా చేసుకోవడానికి ఈవెంట్ డెలిగేషన్.
  9. j క్వెరీలో సంఖ్యలతో IDలను నిర్వహించడానికి కొన్ని ఉత్తమ పద్ధతులు ఏమిటి?
  10. బ్యాకెండ్ ఫంక్షన్ ఉపయోగించండి SanitizeId పూర్ణాంకాలతో ప్రారంభమయ్యే IDలకు చెల్లుబాటు అయ్యే ఉపసర్గను స్వయంచాలకంగా జోడించడానికి.

ఎర్రర్ ఇన్వెస్టిగేషన్‌ను ముగించడం

గుర్తించడం మరియు పరిష్కరించడం querySelector స్థిరమైన ASP.NET MVC యాప్‌ను నిర్వహించడానికి j క్వెరీలో లోపం చాలా కీలకం. గ్లోబల్ స్క్రిప్ట్‌లు ఎలా లోడ్ చేయబడతాయో అర్థం చేసుకోవడం మరియు చెల్లుబాటు అయ్యే సెలెక్టర్‌లను నిర్ధారించడం ద్వారా, డెవలపర్‌లు పునరావృతమయ్యే సమస్యలను పరిష్కరించగలరు.

DevTools, ఫ్రంట్-ఎండ్ మరియు బ్యాక్-ఎండ్ ధ్రువీకరణ మరియు యూనిట్ పరీక్షల సంయుక్త వినియోగంతో, ఆక్షేపణీయ వస్తువును వేరుచేయడం మరియు మొత్తం కోడ్‌బేస్‌ను ఆప్టిమైజ్ చేయడం సులభం అవుతుంది. ఈ విధానం మీ అప్లికేషన్ అన్ని పేజీలలో సజావుగా నడుస్తుందని నిర్ధారిస్తుంది.

మూలాలు మరియు సూచనలు
  1. j క్వెరీకి సంబంధించిన సమాచారం querySelector ఎర్రర్ మరియు సెలెక్టర్ సమస్యలు అధికారిక j క్వెరీ డాక్యుమెంటేషన్ నుండి తీసుకోబడ్డాయి. సందర్శించండి: j క్వెరీ API డాక్యుమెంటేషన్ .
  2. ASP.NET MVC అప్లికేషన్‌లలో డీబగ్గింగ్ ఎర్రర్‌ల గురించిన వివరాలు Microsoft డెవలపర్ గైడ్‌ల నుండి సేకరించబడ్డాయి. మరిన్ని చూడండి: ASP.NET కోర్ డాక్యుమెంటేషన్ .
  3. ఈ వ్యాసం అంతటా ప్రస్తావించబడిన బూట్‌స్ట్రాప్ 5 ఇంటిగ్రేషన్ వివరాలను ఇక్కడ చూడవచ్చు: బూట్స్ట్రాప్ 5 డాక్యుమెంటేషన్ .
  4. JavaScript డీబగ్గింగ్ కోసం Edge DevToolsని ఉపయోగించడం గురించి మరింత సమాచారం ఇక్కడ అందుబాటులో ఉంది: Microsoft Edge DevTools గైడ్ .