$lang['tuto'] = "ट्यूटोरियल"; ?> जावास्क्रिप्ट एपीआई

जावास्क्रिप्ट एपीआई का उपयोग करके झांकी पैरामीटर्स के लिए एक इंटरैक्टिव ड्रॉपडाउन बनाना

Temp mail SuperHeros
जावास्क्रिप्ट एपीआई का उपयोग करके झांकी पैरामीटर्स के लिए एक इंटरैक्टिव ड्रॉपडाउन बनाना
जावास्क्रिप्ट एपीआई का उपयोग करके झांकी पैरामीटर्स के लिए एक इंटरैक्टिव ड्रॉपडाउन बनाना

उपयोगकर्ता-संचालित पैरामीटर्स को झांकी एंबेडेड डैशबोर्ड में एकीकृत करना

Tableau एंबेडिंग एपीआई का उपयोग करके वेब अनुप्रयोगों के भीतर Tableau डैशबोर्ड को एम्बेड करने से डेवलपर्स को गतिशील, डेटा-संचालित समाधान देने की अनुमति मिलती है। उपयोगकर्ता अनुभव को बढ़ाने का एक शक्तिशाली तरीका ड्रॉपडाउन मेनू के माध्यम से डैशबोर्ड मापदंडों के साथ इंटरैक्शन को सक्षम करना है।

इस उदाहरण में, चुनौती एक विशिष्ट Tableau पैरामीटर में हेरफेर करने के लिए ड्रॉपडाउन मेनू को कॉन्फ़िगर करने में निहित है "मोएदा". फ़िल्टर के विपरीत, जिन्हें एकीकृत करना आसान है, पैरामीटर को जावास्क्रिप्ट का उपयोग करके सही ढंग से लोड और अपडेट करने के लिए सटीक हैंडलिंग की आवश्यकता होती है।

भले ही टेबलो एपीआई मापदंडों तक पहुंचने के तरीके प्रदान करता है, लेकिन उपलब्ध पैरामीटर मानों को ड्रॉपडाउन विकल्पों के रूप में ठीक से प्रदर्शित करना और उपयोगकर्ताओं द्वारा चयन करते समय निर्बाध अपडेट सुनिश्चित करना मुश्किल हो सकता है।

इस लेख का लक्ष्य इसे स्थापित करने के चरणों के माध्यम से आपका मार्गदर्शन करना है "मोएदा" ड्रॉपडाउन के साथ पैरामीटर. आप सीखेंगे कि स्वीकार्य मान कैसे प्राप्त करें, उन्हें ड्रॉपडाउन में कैसे प्रदर्शित करें, और चयन होने पर पैरामीटर को प्रभावी ढंग से अपडेट करना सुनिश्चित करें, जिससे डेवलपर्स के सामने आने वाली सामान्य समस्याओं का समाधान हो सके।

आज्ञा उपयोग का उदाहरण
viz.workbook.getParametersAsync() यह अतुल्यकालिक विधि Tableau कार्यपुस्तिका में उपलब्ध सभी मापदंडों की एक सूची पुनर्प्राप्त करती है। एम्बेडेड डैशबोर्ड में उनके साथ इंटरैक्ट करने से पहले पैरामीटर डेटा को गतिशील रूप से लोड करना आवश्यक है।
viz.workbook.changeParameterValueAsync() Tableau में किसी विशिष्ट पैरामीटर का मान अद्यतन करता है। यह सुनिश्चित करता है कि जब उपयोगकर्ता ड्रॉपडाउन चयन बदलता है, तो कार्यपुस्तिका में पैरामीटर वास्तविक समय में अपडेट हो जाता है।
allowableValues यह संपत्ति टेबलौ पैरामीटर के लिए अनुमेय मान रखती है। इसका उपयोग ड्रॉपडाउन मेनू को उन सभी वैध पैरामीटर विकल्पों से भरने के लिए किया जाता है जिन्हें उपयोगकर्ता चुन सकते हैं।
currentValue.value Tableau पैरामीटर के वर्तमान मान तक पहुँचता है। यह सुनिश्चित करता है कि ड्रॉपडाउन का डिफ़ॉल्ट चयन डैशबोर्ड में पैरामीटर की वर्तमान स्थिति से मेल खाता है।
document.createElement("select") जावास्क्रिप्ट के माध्यम से गतिशील रूप से एक
dropdown.addEventListener("change") उपयोगकर्ता चयन परिवर्तनों का पता लगाने के लिए ड्रॉपडाउन में एक ईवेंट श्रोता जोड़ता है। ट्रिगर होने पर, यह Tableau कार्यपुस्तिका में पैरामीटर अद्यतन प्रक्रिया आरंभ करता है।
find((p) =>find((p) => p.name === "Moeda") विशिष्ट "मोएडा" पैरामीटर का पता लगाने के लिए पैरामीटर सरणी पर खोज() विधि का उपयोग करता है। यह सुनिश्चित करता है कि अपडेट के लिए सही पैरामीटर लक्षित है।
viz.addEventListener(TableauEventType.FirstInteractive) यह कमांड सुनिश्चित करता है कि पैरामीटर ड्रॉपडाउन को लोड करने का कार्य केवल तभी निष्पादित किया जाता है जब टेबलू डैशबोर्ड पूरी तरह से लोड हो जाता है, समय संबंधी समस्याओं से बचा जाता है।
option.value = value.value संबंधित पैरामीटर मान से मेल खाने के लिए <विकल्प> तत्व की मान विशेषता सेट करता है, जिससे ड्रॉपडाउन सही डेटा स्थिति को प्रतिबिंबित करने में सक्षम होता है।
jest.fn().mockResolvedValue() एसिंक्रोनस फ़ंक्शंस के व्यवहार का अनुकरण करने के लिए यूनिट परीक्षणों में उपयोग किया जाता है। यह सुनिश्चित करता है कि लाइव टेबलौ वातावरण की आवश्यकता के बिना परीक्षण के दौरान पैरामीटर अपडेट तर्क सही ढंग से सिम्युलेटेड है।

जावास्क्रिप्ट का उपयोग करके टेबलौ पैरामीटर्स को गतिशील रूप से कैसे नियंत्रित करें

ऊपर दी गई स्क्रिप्ट्स को टेबलू डैशबोर्ड और कस्टम HTML के बीच सहज इंटरैक्शन को सक्षम करने के लिए डिज़ाइन किया गया है ड्रॉप डाउन मेनू. ये स्क्रिप्ट्स Tableau Embedding API का उपयोग करती हैं, जो डेवलपर्स को वेब एप्लिकेशन के भीतर Tableau डैशबोर्ड को एम्बेड करने और उनकी इंटरैक्टिविटी बढ़ाने की अनुमति देती है। प्राथमिक फोकस जावास्क्रिप्ट के माध्यम से "मोएडा" नामक पैरामीटर में हेरफेर करना है, इसके स्वीकार्य मूल्यों को प्राप्त करना और उपयोगकर्ता द्वारा चयन करने पर पैरामीटर को गतिशील रूप से अपडेट करना है।

स्क्रिप्ट का पहला भाग "मोएडा" पैरामीटर को लोड करने के फ़ंक्शन से शुरू होता है। यह फ़ंक्शन इसका लाभ उठाता है getParametersAsync() कार्यपुस्तिका में सभी उपलब्ध मापदंडों को पुनः प्राप्त करने की विधि। एक बार पैरामीटर लोड हो जाने के बाद, स्क्रिप्ट इसका उपयोग करके विशिष्ट "मोएडा" पैरामीटर की पहचान करती है खोजो() तरीका। यदि पैरामीटर नहीं मिलता है, तो यह शेष कोड को तोड़ने से बचने के लिए एक त्रुटि लॉग करता है। यह महत्वपूर्ण है क्योंकि मापदंडों के साथ काम करने के लिए आगे तर्क के साथ आगे बढ़ने से पहले यह जानना आवश्यक है कि क्या वे मौजूद हैं।

पैरामीटर की पहचान करने के बाद, a ड्रॉप डाउन मेनू को जावास्क्रिप्ट की DOM हेरफेर विधियों का उपयोग करके गतिशील रूप से बनाया गया है। पैरामीटर के स्वीकार्य मानों में से प्रत्येक मान को ड्रॉपडाउन के भीतर एक विकल्प के रूप में जोड़ा जाता है। स्क्रिप्ट यह सुनिश्चित करती है कि ड्रॉपडाउन चयनित विकल्प को पैरामीटर के वर्तमान मान पर सेट करके पैरामीटर की वर्तमान स्थिति को दर्शाता है। यह कदम यह सुनिश्चित करने के लिए आवश्यक है कि उपयोगकर्ता डैशबोर्ड में नवीनतम मान देखता है, जिससे डैशबोर्ड की स्थिति और ड्रॉपडाउन के डिफ़ॉल्ट विकल्प के बीच स्थिरता मिलती है।

स्क्रिप्ट के अंतिम भाग में ड्रॉपडाउन में एक इवेंट श्रोता को जोड़ना शामिल है। यह इवेंट श्रोता यह पता लगाता है कि उपयोगकर्ता कब चयनित विकल्प बदलता है और ट्रिगर करता है ChangeParameterValueAsync() Tableau में पैरामीटर को अद्यतन करने के लिए फ़ंक्शन। इसके अतिरिक्त, स्क्रिप्ट यह सुनिश्चित करती है कि डैशबोर्ड का उपयोग करके पूरी तरह से लोड होने के बाद ही ड्रॉपडाउन प्रस्तुत किया जाता है फर्स्टइंटरैक्टिव आयोजन। यह सुनिश्चित करता है कि ड्रॉपडाउन समय से पहले पॉप्युलेट न हो, त्रुटियों या गुम पैरामीटर मानों को रोका जा सके। समाधान मॉड्यूलर और स्केलेबल दोनों है, जिससे समान तर्क संरचना का पुन: उपयोग करके अन्य मापदंडों या डैशबोर्ड के लिए अनुकूलन करना आसान हो जाता है।

झांकी के मापदंडों को नियंत्रित करने के लिए एक इंटरैक्टिव ड्रॉपडाउन बनाना

पैरामीटर को गतिशील रूप से लोड और अपडेट करने के लिए टेबलो एंबेडिंग एपीआई के साथ जावास्क्रिप्ट का उपयोग करना

// Solution 1: Basic Implementation Using Async/Await and Tableau API
async function loadMoedaParameter() {
  try {
    const parameters = await viz.workbook.getParametersAsync();
    const moedaParam = parameters.find((p) => p.name === "Moeda");
    if (!moedaParam) {
      console.error("Parameter 'Moeda' not found!");
      return;
    }
    const dropdown = document.createElement("select");
    moedaParam.allowableValues.forEach((value) => {
      const option = document.createElement("option");
      option.text = value.formattedValue;
      option.value = value.value;
      dropdown.appendChild(option);
    });
    dropdown.value = moedaParam.currentValue.value;
    dropdown.addEventListener("change", async (e) => {
      const selectedMoeda = e.target.value;
      try {
        await viz.workbook.changeParameterValueAsync("Moeda", selectedMoeda);
        console.log("Moeda changed to:", selectedMoeda);
      } catch (error) {
        console.error("Error changing the Moeda parameter:", error);
      }
    });
    document.getElementById("Moeda-container-desktop").appendChild(dropdown);
  } catch (error) {
    console.error("Error loading the Moeda parameter:", error);
  }
}
viz.addEventListener(TableauEventType.FirstInteractive, loadMoedaParameter);

झांकी पैरामीटर अपडेट के लिए मॉड्यूलर ड्रॉपडाउन लॉजिक लागू करना

मॉड्यूलर फ़ंक्शंस और उन्नत त्रुटि प्रबंधन का उपयोग करके अनुकूलित दृष्टिकोण

// Solution 2: Modular and Reusable Code with Error Handling
function createDropdown(options, onChangeCallback) {
  const dropdown = document.createElement("select");
  dropdown.style.cssText = "border:none; width:100%; height:40px; background:#FFF;";
  options.forEach(({ text, value }) => {
    const option = document.createElement("option");
    option.text = text;
    option.value = value;
    dropdown.appendChild(option);
  });
  dropdown.addEventListener("change", (e) => onChangeCallback(e.target.value));
  return dropdown;
}

async function updateParameter(parameterName, value) {
  try {
    await viz.workbook.changeParameterValueAsync(parameterName, value);
    console.log(\`${parameterName} changed to: \${value}\`);
  } catch (error) {
    console.error("Error updating parameter:", error);
  }
}

async function loadParameterDropdown(containerId, parameterName) {
  try {
    const parameters = await viz.workbook.getParametersAsync();
    const param = parameters.find((p) => p.name === parameterName);
    if (!param) throw new Error(\`Parameter '\${parameterName}' not found!\`);
    const options = param.allowableValues.map((val) => ({
      text: val.formattedValue,
      value: val.value,
    }));
    const dropdown = createDropdown(options, (value) => {
      updateParameter(parameterName, value);
    });
    document.getElementById(containerId).appendChild(dropdown);
  } catch (error) {
    console.error("Error loading parameter dropdown:", error);
  }
}

viz.addEventListener(TableauEventType.FirstInteractive, () => {
  loadParameterDropdown("Moeda-container-desktop", "Moeda");
});

विभिन्न वातावरणों में झांकी पैरामीटर इंटरैक्शन का परीक्षण करना

पैरामीटर अपडेट को मान्य करने के लिए जावास्क्रिप्ट के साथ यूनिट टेस्ट लिखना

// Solution 3: Unit Test to Validate Parameter Changes
function mockVizWorkbook() {
  return {
    parameters: [{
      name: "Moeda",
      allowableValues: [{ value: "USD", formattedValue: "USD" }],
      currentValue: { value: "USD" },
    }],
    changeParameterValueAsync: jest.fn().mockResolvedValue(),
  };
}

test("Dropdown updates Moeda parameter correctly", async () => {
  const vizMock = { workbook: mockVizWorkbook() };
  const updateSpy = vizMock.workbook.changeParameterValueAsync;
  document.body.innerHTML = '<div id="Moeda-container-desktop"></div>'; 

  await loadParameterDropdown("Moeda-container-desktop", "Moeda");
  const dropdown = document.querySelector("select");
  dropdown.value = "USD";
  dropdown.dispatchEvent(new Event("change"));

  expect(updateSpy).toHaveBeenCalledWith("Moeda", "USD");
});

जावास्क्रिप्ट के साथ झांकी पैरामीटर्स को संभालने के लिए सर्वोत्तम अभ्यास

वेब अनुप्रयोगों में टेबलो डैशबोर्ड को एम्बेड करते समय, डेवलपर्स को अक्सर उपयोगकर्ता इंटरैक्टिविटी को बढ़ाने के लिए पैरामीटर को गतिशील बनाने की आवश्यकता होती है। एक प्रमुख चुनौती जैसे मापदंडों को संभालना है "मोएदा" फ़िल्टर का उपयोग करने के बजाय ड्रॉपडाउन मेनू के माध्यम से। पैरामीटर अधिक जटिल हैं क्योंकि उन्हें अपने स्वीकार्य मूल्यों को पुनः प्राप्त करने के लिए एपीआई कॉल की आवश्यकता होती है और उन्हें फ़ंक्शंस के माध्यम से अपडेट करने की आवश्यकता होती है, जैसे ChangeParameterValueAsync(). यह दृष्टिकोण उपयोगकर्ताओं को पृष्ठ को ताज़ा किए बिना डैशबोर्ड में विशिष्ट डेटा दृश्यों पर अधिक नियंत्रण देता है।

टेबल्यू डैशबोर्ड में पैरामीटर प्रबंधित करने में उन्हें सही ढंग से पहचानना शामिल है getParametersAsync(). एक सामान्य समस्या यह है कि कुछ पैरामीटर उपलब्ध नहीं हो सकते हैं या कार्यपुस्तिका कॉन्फ़िगरेशन के आधार पर विभिन्न पहुंच स्तरों की आवश्यकता हो सकती है। इसलिए, यदि कोई पैरामीटर नहीं मिलता है तो ड्रॉपडाउन लॉजिक को टूटने से बचाने के लिए त्रुटि प्रबंधन को शामिल करना महत्वपूर्ण है। विचार करने योग्य एक अन्य पहलू डैशबोर्ड पूरी तरह से लोड होने के बाद ही ड्रॉपडाउन प्रस्तुत करना है। का उपयोग फर्स्टइंटरैक्टिव इवेंट यह सुनिश्चित करता है कि अनुकूलन लागू करने से पहले डैशबोर्ड तत्व तैयार हैं।

प्रदर्शन अनुकूलन भी महत्वपूर्ण है, खासकर जब बड़े डेटासेट या कई मापदंडों वाले डैशबोर्ड से निपटना हो। जावास्क्रिप्ट जैसे कार्य करता है खोजो() पैरामीटर खोज को कम करने में मदद करें, लेकिन भविष्य में स्केलेबिलिटी की अनुमति देने के लिए कोड मॉड्यूलर रहना चाहिए। उपयोगकर्ता इंटरफ़ेस और डैशबोर्ड डेटा के बीच विसंगतियों से बचने के लिए डेवलपर्स को अपडेट करने से पहले पैरामीटर मानों को भी मान्य करना चाहिए। इन रणनीतियों के साथ, Tableau मापदंडों को कुशलतापूर्वक प्रबंधित करना और सहज उपयोगकर्ता अनुभव के साथ डैशबोर्ड बनाना आसान हो जाता है।

टेबल्यू एपीआई में पैरामीटर्स का उपयोग करने के बारे में अक्सर पूछे जाने वाले प्रश्न

  1. Tableau में पैरामीटर और फ़िल्टर के बीच क्या अंतर है?
  2. पैरामीटर उपयोगकर्ताओं को डैशबोर्ड में विशिष्ट मान पारित करने की अनुमति देते हैं, जबकि फ़िल्टर मानदंड के आधार पर दिखाए गए डेटा को सीमित करते हैं। फ़िल्टर डेटासेट पर कार्य करते हैं, जबकि पैरामीटर विशिष्ट फ़ील्ड या गणना को प्रभावित करते हैं।
  3. पैरामीटर लाते समय मेरा ड्रॉपडाउन खाली क्यों रहता है?
  4. सुनिश्चित करें getParametersAsync() फ़ंक्शन सफलतापूर्वक पैरामीटर पुनर्प्राप्त करता है। यदि ऐसा नहीं होता है, तो कार्यपुस्तिका प्रतिबंधों के कारण पैरामीटर छिपा हो सकता है या पहुंच योग्य नहीं हो सकता है।
  5. मैं यह कैसे सुनिश्चित करूँ कि ड्रॉपडाउन पैरामीटर की वर्तमान स्थिति से मेल खाता है?
  6. उपयोग currentValue.value ड्रॉपडाउन में डिफ़ॉल्ट विकल्प सेट करने के लिए प्रॉपर्टी। यह यूआई और डैशबोर्ड को संरेखित रखता है।
  7. Tableau में पैरामीटर अपडेट करते समय मैं त्रुटियों को कैसे संभाल सकता हूं?
  8. लपेटें changeParameterValueAsync() अंदर बुलाओ ए try-catch पैरामीटर अद्यतन होने पर होने वाली किसी भी त्रुटि को संभालने के लिए ब्लॉक करें।
  9. कौन सी घटना सुनिश्चित करती है कि डैशबोर्ड अनुकूलन से पहले तैयार है?
  10. FirstInteractive टेबलौ एपीआई में ईवेंट संकेत देता है कि डैशबोर्ड पूरी तरह से लोड हो गया है और ड्रॉपडाउन जोड़ने जैसे आगे के इंटरैक्शन के लिए तैयार है।

इंटरएक्टिव पैरामीटर हैंडलिंग पर अंतिम विचार

पैरामीटरयुक्त ड्रॉपडाउन के साथ इंटरैक्टिव डैशबोर्ड एम्बेड करने से उपयोगकर्ताओं को अधिक लचीलापन मिलता है। उचित सेटअप के साथ, डेवलपर्स जैसे पैरामीटर ला सकते हैं मोएदा और डैशबोर्ड नियंत्रण को बढ़ाने के लिए टेबलौ एपीआई का उपयोग करें। यह सेटअप उपयोगकर्ताओं को डेटा को अधिक प्रभावी ढंग से एक्सप्लोर करने की अनुमति देता है।

प्रमुख तत्व, जैसे कि फर्स्टइंटरैक्टिव इवेंट और मजबूत त्रुटि प्रबंधन, सुनिश्चित करें कि ड्रॉपडाउन मेनू एप्लिकेशन के भीतर सुचारू रूप से काम करें। इस दृष्टिकोण का पालन करके, डेवलपर्स मापदंडों को कुशलतापूर्वक प्रबंधित कर सकते हैं और अंतिम उपयोगकर्ताओं को एक गतिशील और उत्तरदायी डैशबोर्ड अनुभव प्रदान कर सकते हैं।

झांकी पैरामीटर्स को लागू करने के लिए स्रोत और संदर्भ
  1. डैशबोर्ड को एम्बेड करने और मापदंडों के साथ इंटरैक्ट करने का विवरण अधिकारी से संदर्भित किया गया था झांकी जावास्क्रिप्ट एपीआई दस्तावेज़ीकरण .
  2. घटना श्रोताओं में अंतर्दृष्टि, जैसे फर्स्टइंटरैक्टिव, पर पाए गए उदाहरणों से प्राप्त किए गए थे झांकी सामुदायिक मंच .
  3. जावास्क्रिप्ट में गतिशील यूआई तत्वों के साथ काम करने के लिए सामान्य अवधारणाएं और सर्वोत्तम अभ्यास यहां से लिए गए थे एमडीएन वेब डॉक्स .