$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> JavaScript API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ

JavaScript API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਲਈ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਡ੍ਰੌਪਡਾਉਨ ਬਣਾਉਣਾ

Temp mail SuperHeros
JavaScript API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਲਈ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਡ੍ਰੌਪਡਾਉਨ ਬਣਾਉਣਾ
JavaScript API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਲਈ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਡ੍ਰੌਪਡਾਉਨ ਬਣਾਉਣਾ

ਝਾਂਕੀ ਏਮਬੈਡਡ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਮਾਪਦੰਡਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ

ਟੇਬਲਯੂ ਏਮਬੈਡਿੰਗ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਅੰਦਰ ਟੇਬਲਯੂ ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਨਾ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ, ਡੇਟਾ-ਸੰਚਾਲਿਤ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਧਾਉਣ ਦਾ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਤਰੀਕਾ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਦੁਆਰਾ ਡੈਸ਼ਬੋਰਡ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਗੱਲਬਾਤ ਨੂੰ ਸਮਰੱਥ ਕਰਨਾ ਹੈ।

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਚੁਣੌਤੀ ਇੱਕ ਖਾਸ ਝਾਂਕੀ ਪੈਰਾਮੀਟਰ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਇੱਕ ਡਰਾਪਡਾਉਨ ਮੀਨੂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਵਿੱਚ ਹੈ "ਮੋਏਦਾ". ਫਿਲਟਰਾਂ ਦੇ ਉਲਟ, ਜੋ ਕਿ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਆਸਾਨ ਹਨ, ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਹੀ ਢੰਗ ਨਾਲ ਲੋਡ ਕਰਨ ਅਤੇ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਸਟੀਕ ਹੈਂਡਲਿੰਗ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਭਾਵੇਂ Tableau API ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਲਈ ਢੰਗ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਇਹ ਉਪਲਬਧ ਪੈਰਾਮੀਟਰ ਮੁੱਲਾਂ ਨੂੰ ਡ੍ਰੌਪਡਾਉਨ ਵਿਕਲਪਾਂ ਵਜੋਂ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਔਖਾ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਉਪਭੋਗਤਾਵਾਂ ਦੀ ਚੋਣ ਕਰਨ ਵੇਲੇ ਨਿਰਵਿਘਨ ਅੱਪਡੇਟ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

ਇਸ ਲੇਖ ਦਾ ਟੀਚਾ ਤੁਹਾਨੂੰ ਸੈਟ ਅਪ ਕਰਨ ਦੇ ਕਦਮਾਂ ਦੁਆਰਾ ਮਾਰਗਦਰਸ਼ਨ ਕਰਨਾ ਹੈ "ਮੋਏਦਾ" ਇੱਕ ਡ੍ਰੌਪਡਾਉਨ ਦੇ ਨਾਲ ਪੈਰਾਮੀਟਰ. ਤੁਸੀਂ ਸਿੱਖੋਗੇ ਕਿ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੁੱਲਾਂ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ ਕਿਵੇਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਹੈ, ਅਤੇ ਚੋਣ ਕੀਤੇ ਜਾਣ 'ਤੇ ਪੈਰਾਮੀਟਰ ਅੱਪਡੇਟ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ, ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਵਾਲੀਆਂ ਆਮ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
viz.workbook.getParametersAsync() ਇਹ ਅਸਿੰਕ੍ਰੋਨਸ ਵਿਧੀ ਝਾਂਕੀ ਵਰਕਬੁੱਕ ਵਿੱਚ ਉਪਲਬਧ ਸਾਰੇ ਮਾਪਦੰਡਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ। ਏਮਬੈਡਡ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਉਹਨਾਂ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੈਰਾਮੀਟਰ ਡੇਟਾ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਲੋਡ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ।
viz.workbook.changeParameterValueAsync() ਝਾਂਕੀ ਵਿੱਚ ਇੱਕ ਖਾਸ ਪੈਰਾਮੀਟਰ ਦੇ ਮੁੱਲ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਉਪਭੋਗਤਾ ਡ੍ਰੌਪਡਾਉਨ ਚੋਣ ਨੂੰ ਬਦਲਦਾ ਹੈ, ਤਾਂ ਵਰਕਬੁੱਕ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਅਸਲ-ਸਮੇਂ ਵਿੱਚ ਅੱਪਡੇਟ ਹੁੰਦਾ ਹੈ।
allowableValues ਇਹ ਸੰਪੱਤੀ ਇੱਕ ਝਾਂਕੀ ਪੈਰਾਮੀਟਰ ਲਈ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੁੱਲ ਰੱਖਦੀ ਹੈ। ਇਹ ਸਾਰੇ ਵੈਧ ਪੈਰਾਮੀਟਰ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਨੂੰ ਤਿਆਰ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਉਪਭੋਗਤਾ ਚੁਣ ਸਕਦੇ ਹਨ।
currentValue.value ਇੱਕ ਝਾਂਕੀ ਪੈਰਾਮੀਟਰ ਦੇ ਮੌਜੂਦਾ ਮੁੱਲ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਡ੍ਰੌਪਡਾਉਨ ਦੀ ਡਿਫੌਲਟ ਚੋਣ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ।
document.createElement("select") JavaScript ਦੁਆਰਾ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਇੱਕ
dropdown.addEventListener("change") ਉਪਭੋਗਤਾ ਚੋਣ ਤਬਦੀਲੀਆਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ ਇੱਕ ਇਵੈਂਟ ਲਿਸਨਰ ਨੂੰ ਜੋੜਦਾ ਹੈ। ਜਦੋਂ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਹ ਟੇਬਲਯੂ ਵਰਕਬੁੱਕ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਅੱਪਡੇਟ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
find((p) =>find((p) => p.name === "Moeda") ਖਾਸ "Moeda" ਪੈਰਾਮੀਟਰ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਪੈਰਾਮੀਟਰ ਐਰੇ 'ਤੇ find() ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਅੱਪਡੇਟ ਲਈ ਸਹੀ ਪੈਰਾਮੀਟਰ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਇਆ ਗਿਆ ਹੈ।
viz.addEventListener(TableauEventType.FirstInteractive) ਇਹ ਕਮਾਂਡ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਪੈਰਾਮੀਟਰ ਡ੍ਰੌਪਡਾਉਨ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਸਿਰਫ ਉਦੋਂ ਹੀ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਝਾਂਕੀ ਡੈਸ਼ਬੋਰਡ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋ ਜਾਂਦਾ ਹੈ, ਸਮੇਂ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਤੋਂ ਬਚਿਆ ਜਾਂਦਾ ਹੈ।
option.value = value.value ਅਨੁਸਾਰੀ ਪੈਰਾਮੀਟਰ ਮੁੱਲ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਇੱਕ
jest.fn().mockResolvedValue() ਅਸਿੰਕਰੋਨਸ ਫੰਕਸ਼ਨਾਂ ਦੇ ਵਿਹਾਰ ਦਾ ਮਖੌਲ ਬਣਾਉਣ ਲਈ ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਪੈਰਾਮੀਟਰ ਅੱਪਡੇਟ ਤਰਕ ਨੂੰ ਲਾਈਵ ਝਾਂਕੀ ਵਾਤਾਵਰਨ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਟੈਸਟਿੰਗ ਦੌਰਾਨ ਸਹੀ ਢੰਗ ਨਾਲ ਨਕਲ ਕੀਤਾ ਗਿਆ ਹੈ।

ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਟੇਬਲਯੂ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਕਿਵੇਂ ਨਿਯੰਤਰਿਤ ਕਰਨਾ ਹੈ

ਉੱਪਰ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਇੱਕ ਝਾਂਕੀ ਡੈਸ਼ਬੋਰਡ ਅਤੇ ਇੱਕ ਕਸਟਮ HTML ਵਿਚਕਾਰ ਇੱਕ ਨਿਰਵਿਘਨ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਡਰਾਪ ਡਾਉਨ ਮੀਨੂ। ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਟੇਬਲਯੂ ਏਮਬੈਡਿੰਗ API ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਜੋ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਅੰਦਰ ਟੇਬਲਯੂ ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਇੰਟਰਐਕਟੀਵਿਟੀ ਨੂੰ ਵਧਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀਆਂ ਹਨ। ਪ੍ਰਾਇਮਰੀ ਫੋਕਸ JavaScript ਦੁਆਰਾ "Moeda" ਨਾਮ ਦੇ ਪੈਰਾਮੀਟਰ ਨੂੰ ਇਸ ਦੇ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੁੱਲਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਕੇ ਅਤੇ ਪੈਰਾਮੀਟਰ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਕੋਈ ਚੋਣ ਕਰਦਾ ਹੈ।

ਸਕ੍ਰਿਪਟ ਦਾ ਪਹਿਲਾ ਭਾਗ "Moeda" ਪੈਰਾਮੀਟਰ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਦਾ ਲਾਭ ਉਠਾਉਂਦਾ ਹੈ getParametersAsync() ਵਰਕਬੁੱਕ ਵਿੱਚ ਸਾਰੇ ਉਪਲਬਧ ਮਾਪਦੰਡਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦਾ ਤਰੀਕਾ। ਇੱਕ ਵਾਰ ਪੈਰਾਮੀਟਰ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਖਾਸ "ਮੋਏਡਾ" ਪੈਰਾਮੀਟਰ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ ਲੱਭੋ() ਢੰਗ. ਜੇਕਰ ਪੈਰਾਮੀਟਰ ਨਹੀਂ ਮਿਲਦਾ ਹੈ, ਤਾਂ ਇਹ ਬਾਕੀ ਦੇ ਕੋਡ ਨੂੰ ਤੋੜਨ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ ਗਲਤੀ ਲੌਗ ਕਰਦਾ ਹੈ। ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਇਹ ਜਾਣਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਕੀ ਉਹ ਹੋਰ ਤਰਕ ਨਾਲ ਅੱਗੇ ਵਧਣ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦ ਹਨ।

ਪੈਰਾਮੀਟਰ ਦੀ ਪਛਾਣ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਏ ਡਰਾਪ ਡਾਉਨ ਮੇਨੂ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੇ DOM ਹੇਰਾਫੇਰੀ ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਪੈਰਾਮੀਟਰ ਦੇ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੁੱਲਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਮੁੱਲ ਨੂੰ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ ਇੱਕ ਵਿਕਲਪ ਵਜੋਂ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਡ੍ਰੌਪਡਾਉਨ ਪੈਰਾਮੀਟਰ ਦੇ ਮੌਜੂਦਾ ਮੁੱਲ ਲਈ ਚੁਣੇ ਗਏ ਵਿਕਲਪ ਨੂੰ ਸੈੱਟ ਕਰਕੇ ਪੈਰਾਮੀਟਰ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਕਦਮ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਨਵੀਨਤਮ ਮੁੱਲ ਦੇਖਦਾ ਹੈ, ਡੈਸ਼ਬੋਰਡ ਦੀ ਸਥਿਤੀ ਅਤੇ ਡ੍ਰੌਪਡਾਉਨ ਦੇ ਡਿਫੌਲਟ ਵਿਕਲਪ ਦੇ ਵਿਚਕਾਰ ਇਕਸਾਰਤਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।

ਸਕ੍ਰਿਪਟ ਦੇ ਆਖਰੀ ਹਿੱਸੇ ਵਿੱਚ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ ਇੱਕ ਇਵੈਂਟ ਲਿਸਨਰ ਸ਼ਾਮਲ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਇਵੈਂਟ ਲਿਸਨਰ ਖੋਜਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਚੁਣੇ ਹੋਏ ਵਿਕਲਪ ਨੂੰ ਬਦਲਦਾ ਹੈ ਅਤੇ ਟ੍ਰਿਗਰ ਕਰਦਾ ਹੈ changeParameterValueAsync() ਝਾਂਕੀ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਕ੍ਰਿਪਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਡ੍ਰੌਪਡਾਉਨ ਕੇਵਲ ਡੈਸ਼ਬੋਰਡ ਦੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਪੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ ਪਹਿਲਾ ਇੰਟਰਐਕਟਿਵ ਘਟਨਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਡ੍ਰੌਪਡਾਉਨ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਤਿਆਰ ਨਹੀਂ ਹੋਇਆ ਹੈ, ਗਲਤੀਆਂ ਜਾਂ ਗੁੰਮ ਪੈਰਾਮੀਟਰ ਮੁੱਲਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ। ਹੱਲ ਮਾਡਿਊਲਰ ਅਤੇ ਸਕੇਲੇਬਲ ਦੋਵੇਂ ਤਰ੍ਹਾਂ ਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਉਸੇ ਤਰਕ ਢਾਂਚੇ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਕੇ ਦੂਜੇ ਪੈਰਾਮੀਟਰਾਂ ਜਾਂ ਡੈਸ਼ਬੋਰਡਾਂ ਲਈ ਅਨੁਕੂਲ ਹੋਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।

ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਡ੍ਰੌਪਡਾਉਨ ਬਣਾਉਣਾ

ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕਰਨ ਅਤੇ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਟੇਬਲਯੂ ਏਮਬੈਡਿੰਗ API ਦੇ ਨਾਲ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਨਾ

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

ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਝਾਂਕੀ ਪੈਰਾਮੀਟਰ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਦੀ ਜਾਂਚ ਕਰਨਾ

ਪੈਰਾਮੀਟਰ ਅੱਪਡੇਟਾਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ JavaScript ਨਾਲ ਯੂਨਿਟ ਟੈਸਟ ਲਿਖਣਾ

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

JavaScript ਨਾਲ ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵਧੀਆ ਅਭਿਆਸ

ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਝਾਂਕੀ ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਦੇ ਸਮੇਂ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਕਸਰ ਉਪਭੋਗਤਾ ਇੰਟਰਐਕਟੀਵਿਟੀ ਨੂੰ ਵਧਾਉਣ ਲਈ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਮੁੱਖ ਚੁਣੌਤੀ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ ਜਿਵੇਂ ਕਿ "ਮੋਏਦਾ" ਫਿਲਟਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਬਜਾਏ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਰਾਹੀਂ। ਪੈਰਾਮੀਟਰ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਹਨ ਕਿਉਂਕਿ ਉਹਨਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੁੱਲਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ API ਕਾਲਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਰਾਹੀਂ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ changeParameterValueAsync(). ਇਹ ਪਹੁੰਚ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਪੰਨੇ ਨੂੰ ਤਾਜ਼ਾ ਕੀਤੇ ਬਿਨਾਂ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਖਾਸ ਡੇਟਾ ਦ੍ਰਿਸ਼ਾਂ 'ਤੇ ਵਧੇਰੇ ਨਿਯੰਤਰਣ ਦਿੰਦੀ ਹੈ।

ਝਾਂਕੀ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਮਾਪਦੰਡਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਉਹਨਾਂ ਦੀ ਸਹੀ ਪਛਾਣ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ getParametersAsync(). ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਕੁਝ ਪੈਰਾਮੀਟਰ ਉਪਲਬਧ ਨਹੀਂ ਹੋ ਸਕਦੇ ਹਨ ਜਾਂ ਵਰਕਬੁੱਕ ਸੰਰਚਨਾ ਦੇ ਆਧਾਰ 'ਤੇ ਵੱਖ-ਵੱਖ ਪਹੁੰਚ ਪੱਧਰਾਂ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਇਸ ਲਈ, ਜੇਕਰ ਕੋਈ ਪੈਰਾਮੀਟਰ ਨਹੀਂ ਮਿਲਦਾ ਹੈ ਤਾਂ ਡਰਾਪਡਾਉਨ ਤਰਕ ਨੂੰ ਤੋੜਨ ਤੋਂ ਰੋਕਣ ਲਈ ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਵਿਚਾਰਨ ਵਾਲਾ ਇੱਕ ਹੋਰ ਪਹਿਲੂ ਡੈਸ਼ਬੋਰਡ ਦੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਡ੍ਰੌਪਡਾਉਨ ਨੂੰ ਰੈਂਡਰ ਕਰਨਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪਹਿਲਾ ਇੰਟਰਐਕਟਿਵ ਇਵੈਂਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ ਲਾਗੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਡੈਸ਼ਬੋਰਡ ਤੱਤ ਤਿਆਰ ਹਨ।

ਕਾਰਜਕੁਸ਼ਲਤਾ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਵੀ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਕਈ ਪੈਰਾਮੀਟਰਾਂ ਵਾਲੇ ਵੱਡੇ ਡੇਟਾਸੇਟਾਂ ਜਾਂ ਡੈਸ਼ਬੋਰਡਾਂ ਨਾਲ ਨਜਿੱਠਦੇ ਹੋ। ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਫੰਕਸ਼ਨ ਜਿਵੇਂ ਲੱਭੋ() ਪੈਰਾਮੀਟਰ ਖੋਜ ਨੂੰ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਪਰ ਭਵਿੱਖ ਦੀ ਮਾਪਯੋਗਤਾ ਦੀ ਆਗਿਆ ਦੇਣ ਲਈ ਕੋਡ ਨੂੰ ਮਾਡਿਊਲਰ ਰਹਿਣਾ ਚਾਹੀਦਾ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਉਪਭੋਗਤਾ ਇੰਟਰਫੇਸ ਅਤੇ ਡੈਸ਼ਬੋਰਡ ਡੇਟਾ ਵਿੱਚ ਅਸੰਗਤਤਾਵਾਂ ਤੋਂ ਬਚਣ ਲਈ ਉਹਨਾਂ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੈਰਾਮੀਟਰ ਮੁੱਲਾਂ ਨੂੰ ਵੀ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਹਨਾਂ ਰਣਨੀਤੀਆਂ ਦੇ ਨਾਲ, ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਦਾ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਅਤੇ ਸਹਿਜ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨਾਲ ਡੈਸ਼ਬੋਰਡ ਬਣਾਉਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।

Tableau API ਵਿੱਚ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ

  1. ਝਾਂਕੀ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਅਤੇ ਫਿਲਟਰ ਵਿੱਚ ਕੀ ਅੰਤਰ ਹੈ?
  2. ਪੈਰਾਮੀਟਰ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਖਾਸ ਮੁੱਲਾਂ ਨੂੰ ਪਾਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਫਿਲਟਰ ਮਾਪਦੰਡ ਦੇ ਆਧਾਰ 'ਤੇ ਦਿਖਾਏ ਗਏ ਡੇਟਾ ਨੂੰ ਸੀਮਿਤ ਕਰਦੇ ਹਨ। ਫਿਲਟਰ ਡੇਟਾਸੇਟਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਪੈਰਾਮੀਟਰ ਖਾਸ ਖੇਤਰਾਂ ਜਾਂ ਗਣਨਾਵਾਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੇ ਹਨ।
  3. ਪੈਰਾਮੀਟਰ ਪ੍ਰਾਪਤ ਕਰਨ ਵੇਲੇ ਮੇਰਾ ਡ੍ਰੌਪਡਾਉਨ ਖਾਲੀ ਕਿਉਂ ਰਹਿੰਦਾ ਹੈ?
  4. ਯਕੀਨੀ ਬਣਾਓ ਕਿ getParametersAsync() ਫੰਕਸ਼ਨ ਪੈਰਾਮੀਟਰ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਅਜਿਹਾ ਨਹੀਂ ਹੁੰਦਾ, ਤਾਂ ਪੈਰਾਮੀਟਰ ਲੁਕਿਆ ਹੋਇਆ ਜਾਂ ਵਰਕਬੁੱਕ ਪਾਬੰਦੀਆਂ ਕਾਰਨ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।
  5. ਮੈਂ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾਵਾਂ ਕਿ ਡਰਾਪਡਾਉਨ ਪੈਰਾਮੀਟਰ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ?
  6. ਦੀ ਵਰਤੋਂ ਕਰੋ currentValue.value ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ ਡਿਫੌਲਟ ਵਿਕਲਪ ਸੈੱਟ ਕਰਨ ਲਈ ਵਿਸ਼ੇਸ਼ਤਾ। ਇਹ UI ਅਤੇ ਡੈਸ਼ਬੋਰਡ ਨੂੰ ਇਕਸਾਰ ਰੱਖਦਾ ਹੈ।
  7. ਝਾਂਕੀ ਵਿੱਚ ਮਾਪਦੰਡਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦੇ ਸਮੇਂ ਮੈਂ ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲ ਸਕਦਾ ਹਾਂ?
  8. ਨੂੰ ਸਮੇਟਣਾ changeParameterValueAsync() ਅੰਦਰ ਕਾਲ ਕਰੋ try-catch ਪੈਰਾਮੀਟਰ ਅੱਪਡੇਟ ਹੋਣ 'ਤੇ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਤਰੁੱਟੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਬਲਾਕ ਕਰੋ।
  9. ਕਿਹੜੀ ਘਟਨਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਡੈਸ਼ਬੋਰਡ ਤਿਆਰ ਹੈ?
  10. FirstInteractive Tableau API ਵਿੱਚ ਇਵੈਂਟ ਸੰਕੇਤ ਦਿੰਦਾ ਹੈ ਕਿ ਡੈਸ਼ਬੋਰਡ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋ ਗਿਆ ਹੈ ਅਤੇ ਇੱਕ ਡ੍ਰੌਪਡਾਉਨ ਜੋੜਨ ਵਰਗੇ ਹੋਰ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਲਈ ਤਿਆਰ ਹੈ।

ਇੰਟਰਐਕਟਿਵ ਪੈਰਾਮੀਟਰ ਹੈਂਡਲਿੰਗ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ

ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਡ੍ਰੌਪਡਾਉਨ ਦੇ ਨਾਲ ਇੰਟਰਐਕਟਿਵ ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਨਾ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਵਧੇਰੇ ਲਚਕਤਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇੱਕ ਸਹੀ ਸੈੱਟਅੱਪ ਦੇ ਨਾਲ, ਡਿਵੈਲਪਰ ਵਰਗੇ ਪੈਰਾਮੀਟਰ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ ਮੋਏਦਾ ਅਤੇ ਡੈਸ਼ਬੋਰਡ ਨਿਯੰਤਰਣ ਨੂੰ ਵਧਾਉਣ ਲਈ ਝਾਂਕੀ API ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਸੈੱਟਅੱਪ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਵਧੇਰੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਡੇਟਾ ਦੀ ਪੜਚੋਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।

ਮੁੱਖ ਤੱਤ, ਜਿਵੇਂ ਕਿ ਪਹਿਲਾ ਇੰਟਰਐਕਟਿਵ ਇਵੈਂਟ ਅਤੇ ਮਜਬੂਤ ਗਲਤੀ ਹੈਂਡਲਿੰਗ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਅੰਦਰ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ। ਇਸ ਪਹੁੰਚ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਅੰਤਮ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਇੱਕ ਗਤੀਸ਼ੀਲ ਅਤੇ ਜਵਾਬਦੇਹ ਡੈਸ਼ਬੋਰਡ ਅਨੁਭਵ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰ ਸਕਦੇ ਹਨ।

ਝਾਂਕੀ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
  1. ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਨ ਅਤੇ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਬਾਰੇ ਵੇਰਵੇ ਅਧਿਕਾਰੀ ਤੋਂ ਦਿੱਤੇ ਗਏ ਸਨ ਝਾਂਕੀ JavaScript API ਦਸਤਾਵੇਜ਼ .
  2. ਇਵੈਂਟ ਸਰੋਤਿਆਂ ਦੀ ਸੂਝ, ਜਿਵੇਂ ਕਿ ਪਹਿਲਾ ਇੰਟਰਐਕਟਿਵ'ਤੇ ਪਾਈਆਂ ਗਈਆਂ ਉਦਾਹਰਣਾਂ ਤੋਂ ਲਿਆ ਗਿਆ ਸੀ ਝਾਂਕੀ ਕਮਿਊਨਿਟੀ ਫੋਰਮ .
  3. JavaScript ਵਿੱਚ ਗਤੀਸ਼ੀਲ UI ਤੱਤਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਆਮ ਧਾਰਨਾਵਾਂ ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਤੋਂ ਲਿਆ ਗਿਆ ਸੀ MDN ਵੈੱਬ ਡੌਕਸ .