ਚਮਕਦਾਰ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਟੈਬ ਸਥਿਰਤਾ ਨਾਲ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਧਾਉਣਾ
ਇੱਕ ਗੁੰਝਲਦਾਰ ਡੈਸ਼ਬੋਰਡ 'ਤੇ ਕੰਮ ਕਰਨ ਦੀ ਕਲਪਨਾ ਕਰੋ ਜਿੱਥੇ ਕਈ ਟੈਬਸ ਤੁਹਾਡੇ ਵਰਕਫਲੋ ਦੀ ਅਗਵਾਈ ਕਰਦੇ ਹਨ। ਟੈਬਸੈਟਾਂ ਵਿਚਕਾਰ ਸਵਿਚ ਕਰਨਾ ਅਕਸਰ ਤੁਹਾਡੀ ਪ੍ਰਗਤੀ ਨੂੰ ਰੀਸੈਟ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਨੂੰ ਆਖਰੀ ਟੈਬ 'ਤੇ ਵਾਪਸ ਨੈਵੀਗੇਟ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਕੰਮ ਕਰ ਰਹੇ ਸੀ। ਇਹ ਨਿਰਾਸ਼ਾਜਨਕ ਅਤੇ ਸਮਾਂ ਬਰਬਾਦ ਕਰਨ ਵਾਲਾ ਹੋ ਸਕਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਵੱਡੇ ਡੇਟਾਸੇਟਾਂ ਜਾਂ ਗੁੰਝਲਦਾਰ ਵਿਸ਼ਲੇਸ਼ਣਾਂ ਨਾਲ ਨਜਿੱਠਣਾ ਹੋਵੇ। 🚀
bs4Dash ਨਾਲ ਬਣੇ ਚਮਕਦਾਰ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ, ਟੈਬੈਟਾਂ ਦੇ ਵਿਚਕਾਰ ਜਾਣ ਵੇਲੇ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣਾ ਇੱਕ ਆਮ ਚੁਣੌਤੀ ਹੈ। ਉਪਭੋਗਤਾ ਇੱਕ ਸਹਿਜ ਅਨੁਭਵ ਚਾਹੁੰਦੇ ਹਨ, ਜਿੱਥੇ ਇੱਕ ਟੈਬਸੈੱਟ ਤੇ ਵਾਪਸ ਆਉਣਾ ਉਹਨਾਂ ਨੂੰ ਉਹਨਾਂ ਦੀ ਪਿਛਲੀ ਸਥਿਤੀ ਵਿੱਚ ਵਾਪਸ ਲਿਆਉਂਦਾ ਹੈ. ਜਦੋਂ ਕਿ ਮੈਨੂਅਲ ਹੱਲ ਮੌਜੂਦ ਹਨ, ਉਹ ਡਿਵੈਲਪਰਾਂ ਅਤੇ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਇਕੋ ਜਿਹੇ ਬੋਝਲ ਅਤੇ ਅਕੁਸ਼ਲ ਹੋ ਸਕਦੇ ਹਨ।
ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, `shinyjs` ਅਤੇ ਕਸਟਮ JavaScript ਏਕੀਕਰਣ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਗਤੀਸ਼ੀਲ ਟੈਬ ਸਥਿਰਤਾ ਲਾਗੂ ਹੁੰਦੀ ਹੈ। ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਮੁੱਲਾਂ ਅਤੇ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਦਾ ਲਾਭ ਉਠਾ ਕੇ, ਤੁਸੀਂ ਇੱਕ ਡੈਸ਼ਬੋਰਡ ਬਣਾ ਸਕਦੇ ਹੋ ਜੋ ਹਰੇਕ ਟੈਬਸੈੱਟ ਵਿੱਚ ਤੁਹਾਡੀ ਪਿਛਲੀ ਵਾਰ ਵਿਜ਼ਿਟ ਕੀਤੀ ਟੈਬ ਨੂੰ ਯਾਦ ਰੱਖਦਾ ਹੈ, ਉਪਭੋਗਤਾ ਦੀ ਸੰਤੁਸ਼ਟੀ ਅਤੇ ਉਤਪਾਦਕਤਾ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।
ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕਰਨ ਦੇ ਤਰੀਕੇ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ। ਅਸੀਂ bs4Dash ਵਿੱਚ ਟੈਬ ਸਥਿਤੀਆਂ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਕੋਡ ਸਨਿੱਪਟ, ਮੁੱਖ ਧਾਰਨਾਵਾਂ, ਅਤੇ ਵਿਹਾਰਕ ਸੁਝਾਵਾਂ ਬਾਰੇ ਚਰਚਾ ਕਰਾਂਗੇ। ਆਉ ਡੁਬਕੀ ਕਰੀਏ ਅਤੇ ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਬਣਾਓ ਜੋ ਤੁਹਾਡੇ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਚੁਸਤ ਅਤੇ ਵਧੇਰੇ ਅਨੁਭਵੀ ਮਹਿਸੂਸ ਕਰਦੇ ਹਨ! 💡
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
reactiveValues | ਇਹ ਕਮਾਂਡ ਹਰੇਕ ਟੈਬਸੈੱਟ ਲਈ ਆਖਰੀ ਵਿਜ਼ਿਟ ਕੀਤੀ ਟੈਬ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਇੱਕ ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਸੂਚੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਉਪਭੋਗਤਾ ਦੇ ਆਪਸੀ ਤਾਲਮੇਲ ਵਿੱਚ ਸਥਿਤੀ ਸਥਿਰਤਾ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਯਾਦ ਹੈ ਕਿ ਹਰੇਕ ਟੈਬਸੈੱਟ ਵਿੱਚ ਕਿਹੜੀ ਟੈਬ ਕਿਰਿਆਸ਼ੀਲ ਸੀ। |
shinyjs::onclick | JavaScript ਕਲਿਕ ਇਵੈਂਟਸ ਨੂੰ R ਕੋਡ ਨਾਲ ਬੰਨ੍ਹਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਉਪਭੋਗਤਾ ਕਲਿੱਕਾਂ ਦੇ ਅਧਾਰ ਤੇ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬਸੈੱਟ ਨੂੰ ਬਦਲਦਾ ਹੈ ਅਤੇ ਉਸ ਅਨੁਸਾਰ ਇਨਪੁਟ ਮੁੱਲਾਂ ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹੈ। |
req | ਇੱਕ ਚਮਕਦਾਰ ਫੰਕਸ਼ਨ ਜੋ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ ਜੇਕਰ ਕੋਈ ਇਨਪੁਟ ਜਾਂ ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਮੁੱਲ ਗੈਰ-ਨਲ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਟੈਬਸੈੱਟ ਸਥਿਤੀ ਇਸ ਨੂੰ ਪੇਸ਼ ਕਰਨ ਜਾਂ ਪ੍ਰੋਸੈਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਪਲਬਧ ਹੈ। |
bs4SidebarMenu | ਕਿਰਿਆਸ਼ੀਲ ਟੈਬਸੈੱਟ ਲਈ ਖਾਸ ਇੱਕ ਗਤੀਸ਼ੀਲ ਸਾਈਡਬਾਰ ਮੀਨੂ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਸਿਰਫ਼ ਚੁਣੇ ਗਏ ਟੈਬਸੈੱਟ ਨਾਲ ਸੰਬੰਧਿਤ ਮੀਨੂ ਵਿਕਲਪਾਂ ਨੂੰ ਦੇਖਦੇ ਹਨ। |
session$sendCustomMessage | ਕਲਾਇੰਟ ਸਾਈਡ 'ਤੇ R ਸਰਵਰ ਅਤੇ JavaScript ਵਿਚਕਾਰ ਸੰਚਾਰ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਹਾਈਲਾਈਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਟੈਬਸੈਟਾਂ ਨੂੰ ਬਦਲਦਾ ਹੈ। |
Shiny.addCustomMessageHandler | R ਸਰਵਰ ਤੋਂ ਕਮਾਂਡਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ ਕਸਟਮ JavaScript ਸੁਨੇਹਾ ਹੈਂਡਲਰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਟੈਬਾਂ ਨੂੰ ਬਦਲਣ ਲਈ ਕਮਾਂਡ ਸੁਣਦਾ ਹੈ ਅਤੇ ਕਲਾਇੰਟ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਲੋੜੀਂਦੀਆਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ। |
setTimeout | ਇੱਕ JavaScript ਫੰਕਸ਼ਨ ਖਾਸ ਕੋਡ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਵਿੱਚ ਦੇਰੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਥੇ, UI ਤਿਆਰ ਹੈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਇਨਪੁਟ ਮੁੱਲ ਨੂੰ ਸੈੱਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਲਈ ਉਡੀਕ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
$(document).on('shiny:connected') | ਇੱਕ JavaScript ਇਵੈਂਟ ਲਿਸਨਰ ਉਦੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਚਮਕੀਲਾ ਐਪ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕਨੈਕਟ ਹੁੰਦਾ ਹੈ। ਇਹ ਐਪ ਲੋਡ ਹੋਣ 'ਤੇ ਡਿਫੌਲਟ ਐਕਟਿਵ ਟੈਬਸੈੱਟ ਸੈੱਟ ਕਰਕੇ ਐਪ ਸਟੇਟ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। |
bs4TabItems | ਇੱਕ ਟੈਬਸੈੱਟ ਦੇ ਅੰਦਰ ਕਈ ਟੈਬ ਆਈਟਮਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਹਰੇਕ ਆਈਟਮ ਇੱਕ ਖਾਸ ਸਮਗਰੀ ਖੇਤਰ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਐਪ ਲੇਆਉਟ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਲੋੜਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। |
observeEvent | ਕਿਸੇ ਖਾਸ ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਮੁੱਲ ਜਾਂ ਇਨਪੁਟ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ ਅਤੇ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। ਇਹ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਟੈਬ ਸਥਿਤੀਆਂ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਅਤੇ ਸਰਵਰ ਨੂੰ ਉਪਭੋਗਤਾ ਇੰਟਰਫੇਸ ਨਾਲ ਸਮਕਾਲੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
bs4Dash ਵਿੱਚ ਟੈਬ ਪਰਸਿਸਟੈਂਸ ਨਾਲ ਸਮਾਰਟ ਨੈਵੀਗੇਸ਼ਨ ਬਣਾਉਣਾ
ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਸਕ੍ਰਿਪਟ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦੀ ਹੈ: ਇੱਕ ਤੋਂ ਵੱਧ ਟੈਬਸੈੱਟਾਂ ਵਿਚਕਾਰ ਸਵਿਚ ਕਰਨ ਵੇਲੇ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣਾ। ਇਹ ਖਾਸ ਤੌਰ 'ਤੇ ਗੁੰਝਲਦਾਰ ਵਰਕਫਲੋ ਵਾਲੇ ਡੈਸ਼ਬੋਰਡਾਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜਿੱਥੇ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਆਪਣੇ ਪਿਛਲੇ ਸੰਦਰਭ 'ਤੇ ਵਾਪਸ ਜਾਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਮੁੱਲ ਅਤੇ shinyjs ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਸਕ੍ਰਿਪਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਸਥਿਤੀ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸਟੋਰ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਮੁੜ ਪ੍ਰਾਪਤ ਕੀਤੀ ਗਈ ਹੈ, ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ। ਮੁੱਖ ਵਿਧੀ ਵਿੱਚ ਹਰੇਕ ਟੈਬਸੈੱਟ ਲਈ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਅਤੇ ਤਬਦੀਲੀਆਂ ਹੋਣ 'ਤੇ ਇਸਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਲਾਗੂਕਰਨ ਸਹਿਜ ਕਲਾਇੰਟ-ਸਰਵਰ ਇੰਟਰੈਕਸ਼ਨ ਲਈ ਕਸਟਮ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, R ਨੂੰ ਫਰੰਟ-ਐਂਡ ਟੂਲਸ ਨਾਲ ਜੋੜਨ ਦੀ ਸ਼ਕਤੀ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦਾ ਹੈ। 🌟
ਜਦੋਂ ਇੱਕ ਉਪਭੋਗਤਾ ਇੱਕ ਟੈਬਸੈੱਟ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਇੱਕ JavaScript ਹੈਂਡਲਰ 'shinyjs::onclick' ਰਾਹੀਂ ਸ਼ਾਈਨ ਸਰਵਰ ਨੂੰ ਸਰਗਰਮ ਟੈਬ ਜਾਣਕਾਰੀ ਵਾਪਸ ਭੇਜਦਾ ਹੈ। ਇਹ `reactiveValues` ਵਸਤੂ ਵਿੱਚ ਅੱਪਡੇਟਾਂ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ ਜੋ ਹਰੇਕ ਟੈਬਸੈੱਟ ਦੀ ਸਥਿਤੀ ਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਕੋਈ ਉਪਭੋਗਤਾ "ਟੈਬ ਸੈੱਟ 1" 'ਤੇ ਕਲਿੱਕ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਸ ਟੈਬਸੈੱਟ ਦੀ ਸਥਿਤੀ "ਟੈਬ1_1" ਜਾਂ "ਟੈਬ1_2" ਵਜੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਰੈਂਡਰ ਕੀਤਾ ਗਿਆ ਸਾਈਡਬਾਰ ਮੀਨੂ ਵੀ ਚੁਣੇ ਗਏ ਟੈਬਸੈੱਟ ਦੇ ਆਧਾਰ 'ਤੇ ਢਾਲਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸਿਰਫ਼ ਸੰਬੰਧਿਤ ਵਿਕਲਪ ਹੀ ਪ੍ਰਦਰਸ਼ਿਤ ਹੋਣ। ਇਹ ਡਿਜ਼ਾਈਨ ਵਿਜ਼ੂਅਲ ਲੇਆਉਟ ਅਤੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੋਵਾਂ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ, ਇੰਟਰਫੇਸ ਨੂੰ ਅਨੁਭਵੀ ਅਤੇ ਜਵਾਬਦੇਹ ਬਣਾਉਂਦਾ ਹੈ। 🖥️
'session$sendCustomMessage' ਫੰਕਸ਼ਨ ਇੱਥੇ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਇਹ ਸਰਵਰ ਨੂੰ ਇੱਕ ਟੈਬਸੈੱਟ 'ਤੇ ਵਾਪਸ ਜਾਣ ਵੇਲੇ ਪਿਛਲੀ ਵਿਜ਼ਿਟ ਕੀਤੀ ਟੈਬ ਨੂੰ ਮੁੜ ਸਰਗਰਮ ਕਰਨ ਲਈ ਕਲਾਇੰਟ-ਸਾਈਡ JavaScript ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਉਪਭੋਗਤਾ "ਟੈਬ ਸੈਟ 2" ਤੇ ਨੈਵੀਗੇਟ ਕਰਦਾ ਹੈ ਅਤੇ ਬਾਅਦ ਵਿੱਚ "ਟੈਬ ਸੈਟ 1" ਤੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ, ਤਾਂ ਐਪ "ਟੈਬ ਸੈਟ 1" ਵਿੱਚ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਆਪਣੇ ਆਪ ਰੀਸਟੋਰ ਕਰ ਦੇਵੇਗਾ। ਇਹ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਹੱਥੀਂ ਨੈਵੀਗੇਸ਼ਨ, ਸਮਾਂ ਅਤੇ ਮਿਹਨਤ ਦੀ ਬਚਤ ਦੀ ਜ਼ਰੂਰਤ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ। 'req' ਦੀ ਵਰਤੋਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਸਾਰੀਆਂ ਕਾਰਵਾਈਆਂ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਜਦੋਂ ਲੋੜੀਂਦੀਆਂ ਸ਼ਰਤਾਂ ਪੂਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ, ਬੇਲੋੜੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਰੋਕਦੀਆਂ ਹਨ।
ਕੁੱਲ ਮਿਲਾ ਕੇ, ਇਹ ਸਕ੍ਰਿਪਟ ਡਾਇਨਾਮਿਕ ਫਰੰਟ-ਐਂਡ ਫੰਕਸ਼ਨੈਲਿਟੀ ਦੇ ਨਾਲ R ਦੇ ਬੈਕਐਂਡ ਦੇ ਸਹਿਜ ਏਕੀਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। bs4Dash, Shiny, ਅਤੇ `shinyjs` ਦਾ ਲਾਭ ਲੈ ਕੇ, ਡਿਵੈਲਪਰ ਡੈਸ਼ਬੋਰਡ ਬਣਾ ਸਕਦੇ ਹਨ ਜੋ ਨਾ ਸਿਰਫ਼ ਸੁਹਜ ਪੱਖੋਂ ਪ੍ਰਸੰਨ ਹੁੰਦੇ ਹਨ, ਸਗੋਂ ਉਪਯੋਗਤਾ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਵੀ ਚੁਸਤ ਹੁੰਦੇ ਹਨ। ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਰਿਪੋਰਟ 'ਤੇ ਕੰਮ ਕਰਨ ਦੀ ਕਲਪਨਾ ਕਰੋ, ਅਤੇ ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਟੈਬਾਂ ਵਿਚਕਾਰ ਸਵਿਚ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਤਰੱਕੀ ਉਹੀ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਇਸਨੂੰ ਛੱਡਿਆ ਸੀ। ਇਹ ਪਹੁੰਚ ਨਿਰਾਸ਼ਾ ਨੂੰ ਘਟਾਉਂਦੀ ਹੈ ਅਤੇ ਇੱਕ ਨਿਰਵਿਘਨ ਵਰਕਫਲੋ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ। R ਅਤੇ JavaScript ਐਲੀਮੈਂਟਸ ਦੋਵਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ ਵਿਭਿੰਨ ਸਾਧਨ ਅਸਲ-ਸੰਸਾਰ ਦੀਆਂ ਚੁਣੌਤੀਆਂ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਹੱਲ ਕਰਨ ਲਈ ਮਿਲ ਕੇ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ। 💡
ਮਲਟੀ-ਟੈਬਸੈੱਟ bs4Dash ਸੈੱਟਅੱਪ ਵਿੱਚ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਕਿਵੇਂ ਕਾਇਮ ਰੱਖਿਆ ਜਾਵੇ?
ਸਰਗਰਮ ਟੈਬਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਯਾਦ ਰੱਖਣ ਲਈ ਚਮਕਦਾਰ ਫਰੇਮਵਰਕ ਅਤੇ bs4Dash ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਨਾਲ R ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
# Import necessary libraries
library(shiny)
library(bs4Dash)
library(shinyjs)
# Define the UI
ui <- bs4DashPage(
header = bs4DashNavbar(title = "Remember Last Tab in bs4Dash"),
sidebar = bs4DashSidebar(uiOutput("sidebar_menu")),
body = bs4DashBody(
useShinyjs(),
bs4TabItems(
bs4TabItem(tabName = "tab1_1", h2("Content for Tab 1.1"))
bs4TabItem(tabName = "tab1_2", h2("Content for Tab 1.2"))
)
)
)
# Define the server
server <- function(input, output, session) {
lastTabs <- reactiveValues(tabset1 = "tab1_1")
output$sidebar_menu <- renderUI({
bs4SidebarMenu(
id = "sidebar",
bs4SidebarMenuItem("Tab 1.1", tabName = "tab1_1", icon = icon("dashboard"))
)
})
observeEvent(input$sidebar, {
lastTabs$tabset1 <- input$sidebar
})
}
# Run the app
shinyApp(ui, server)
ਵਿਕਲਪਿਕ ਪਹੁੰਚ: ਨਿਰਵਿਘਨ ਟੈਬ ਪ੍ਰਬੰਧਨ ਲਈ JavaScript ਨੂੰ ਜੋੜਨਾ
ਇਸ ਪਹੁੰਚ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਲਈ R ਅਤੇ bs4Dash ਦੇ ਨਾਲ-ਨਾਲ ਕਸਟਮ JavaScript ਹੈਂਡਲਰ ਦੀ ਵਰਤੋਂ ਸ਼ਾਮਲ ਹੈ।
library(shiny)
library(bs4Dash)
library(shinyjs)
ui <- bs4DashPage(
header = bs4DashNavbar(title = "Remember Last Tab in bs4Dash"),
sidebar = bs4DashSidebar(uiOutput("sidebar_menu")),
body = bs4DashBody(
useShinyjs(),
tags$script(HTML("
$(document).on('shiny:connected', function (event) {
Shiny.setInputValue('activeTabSet', 'tabset1')
})
")),
bs4TabItems(
bs4TabItem(tabName = "tab1_1", h2("Content for Tab 1.1"))
)
)
)
server <- function(input, output, session) {
output$sidebar_menu <- renderUI({
req(input$activeTabSet)
if (input$activeTabSet == "tabset1") {
bs4SidebarMenu(
id = "sidebar",
bs4SidebarMenuItem("Tab 1.1", tabName = "tab1_1", icon = icon("dashboard"))
)
}
})
}
shinyApp(ui, server)
ਉਪਭੋਗਤਾ ਦੀ ਸਹੂਲਤ ਲਈ bs4Dash ਵਿੱਚ ਟੈਬ ਪ੍ਰਬੰਧਨ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨਾ
ਕੁਸ਼ਲ ਡੈਸ਼ਬੋਰਡ ਬਣਾਉਣ ਦੇ ਸਭ ਤੋਂ ਘੱਟ ਦਰਜੇ ਦੇ ਪਹਿਲੂਆਂ ਵਿੱਚੋਂ ਇੱਕ ਉਪਭੋਗਤਾ ਦੇ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਨੂੰ ਵਿਚਾਰ ਰਿਹਾ ਹੈ। bs4Dash ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਏ ਗਏ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ, ਇੱਕ ਤੋਂ ਵੱਧ ਟੈਬਸੈੱਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਮੁਸ਼ਕਲ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਉਪਭੋਗਤਾ ਟੈਬਾਂ ਵਿਚਕਾਰ ਸਵਿਚ ਕਰਨ ਵੇਲੇ ਆਪਣਾ ਸੰਦਰਭ ਗੁਆ ਦਿੰਦੇ ਹਨ। ਇਹ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਯਾਦ ਰੱਖਣ ਲਈ ਇੱਕ ਵਿਧੀ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਚਮਕਦਾ ਹੈ। ਇਹ ਵਰਕਫਲੋ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਰਗੜ ਘਟਾਉਂਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਗੁੰਝਲਦਾਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਜੋ ਡੇਟਾ ਖੋਜ ਜਾਂ ਪ੍ਰਬੰਧਕੀ ਕੰਮਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦੇ ਹਨ। 🚀
ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਤੋਂ ਇਲਾਵਾ, ਇਸ ਸੰਕਲਪ ਨੂੰ ਕਸਟਮ UI ਤੱਤਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਗਤੀਸ਼ੀਲ ਫਿਲਟਰਿੰਗ ਦੇ ਨਾਲ ਟੈਬ ਸਥਿਰਤਾ ਨੂੰ ਜੋੜਨਾ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਪਸੰਦੀਦਾ ਟੈਬ ਅਤੇ ਪਹਿਲਾਂ ਸੈੱਟ ਕੀਤੇ ਫਿਲਟਰਾਂ ਦੋਵਾਂ 'ਤੇ ਵਾਪਸ ਜਾਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਇਹ ਸੁਮੇਲ ਉਪਯੋਗਤਾ ਨੂੰ ਮਹੱਤਵਪੂਰਣ ਰੂਪ ਵਿੱਚ ਵਧਾ ਸਕਦਾ ਹੈ, ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਵਧੇਰੇ ਉਪਭੋਗਤਾ-ਕੇਂਦ੍ਰਿਤ ਬਣਾਉਂਦਾ ਹੈ। ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਫਾਇਦਾ ਇਹ ਹੈ ਕਿ ਇਹ ਬੇਲੋੜੇ ਸਰਵਰ ਕਾਲਾਂ ਤੋਂ ਬਚ ਕੇ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਐਪਲੀਕੇਸ਼ਨ ਅਨੁਮਾਨ ਲਗਾ ਸਕਦੀ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਅੱਗੇ ਕਿੱਥੇ ਨੈਵੀਗੇਟ ਕਰੇਗਾ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਟੈਬ ਪਰਿਵਰਤਨ ਦੌਰਾਨ ਐਨੀਮੇਸ਼ਨ ਜਾਂ ਵਿਜ਼ੂਅਲ ਸੰਕੇਤ ਜੋੜਨਾ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਹੋਰ ਬਿਹਤਰ ਬਣਾ ਸਕਦਾ ਹੈ। ਪਿਛਲੀ ਵਾਰ ਵਿਜ਼ਿਟ ਕੀਤੀ ਗਈ ਟੈਬ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਸੂਖਮ ਹਾਈਲਾਈਟਸ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਜਾਂ ਜਦੋਂ ਟੈਬ ਸਵਿੱਚ ਕਰਨ ਵੇਲੇ ਇੱਕ ਨਿਰਵਿਘਨ ਸਕਰੋਲਿੰਗ ਪ੍ਰਭਾਵ ਪ੍ਰਦਾਨ ਕਰਨਾ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸ਼ਾਨਦਾਰ ਅਤੇ ਅਨੁਭਵੀ ਮਹਿਸੂਸ ਕਰਨ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਹਨ। ਵਿਕਾਸਕਾਰ ਇਹਨਾਂ ਸੁਧਾਰਾਂ ਨੂੰ ਸਹਿਜੇ ਹੀ ਚਮਕਦਾਰ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ `shinyjs` ਵਰਗੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਲਾਭ ਲੈ ਸਕਦੇ ਹਨ, ਕਾਰਜਸ਼ੀਲਤਾ ਅਤੇ ਸੁਹਜ-ਸ਼ਾਸਤਰ ਦੇ ਸੰਤੁਲਿਤ ਮਿਸ਼ਰਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ। 🌟
bs4Dash ਵਿੱਚ ਟੈਬਸੈੱਟਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਬਾਰੇ ਆਮ ਸਵਾਲ
- ਮੈਂ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬਸੈੱਟ ਦੇ ਅਧਾਰ ਤੇ ਸਾਈਡਬਾਰ ਮੀਨੂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਕਿਵੇਂ ਅਪਡੇਟ ਕਰਾਂ?
- ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ renderUI ਦੇ ਅਧਾਰ 'ਤੇ ਸਾਈਡਬਾਰ ਮੀਨੂ ਨੂੰ ਸ਼ਰਤੀਆ ਰੂਪ ਵਿੱਚ ਰੈਂਡਰ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ input$activeTabSet ਮੁੱਲ.
- ਕੀ ਮੈਂ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਸਥਿਤੀ ਤੋਂ ਵੱਧ ਸਟੋਰ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਜੀ, ਵਰਤ ਕੇ reactiveValues, ਤੁਸੀਂ ਵਾਧੂ ਜਾਣਕਾਰੀ ਜਿਵੇਂ ਕਿ ਫਿਲਟਰ, ਉਪਭੋਗਤਾ ਚੋਣ, ਜਾਂ ਹੋਰ ਸਥਿਤੀਆਂ ਨੂੰ ਸਟੋਰ ਕਰ ਸਕਦੇ ਹੋ।
- ਜੇਕਰ ਕੋਈ ਉਪਭੋਗਤਾ ਡੈਸ਼ਬੋਰਡ ਬੰਦ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਦੁਬਾਰਾ ਖੋਲ੍ਹਦਾ ਹੈ ਤਾਂ ਕੀ ਹੋਵੇਗਾ? ਕੀ ਉਨ੍ਹਾਂ ਦੇ ਰਾਜ ਨੂੰ ਯਾਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ?
- ਸੈਸ਼ਨਾਂ ਵਿੱਚ ਰਾਜ ਨੂੰ ਕਾਇਮ ਰੱਖਣ ਲਈ, ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ shinyStore ਉਪਭੋਗਤਾ-ਵਿਸ਼ੇਸ਼ ਸੈਟਿੰਗਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਅਤੇ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪੈਕੇਜ ਜਾਂ ਡੇਟਾਬੇਸ।
- ਮੈਂ ਟੈਬ ਪਰਿਵਰਤਨ ਨੂੰ ਸੁਚਾਰੂ ਕਿਵੇਂ ਬਣਾ ਸਕਦਾ ਹਾਂ?
- ਦੀ ਵਰਤੋਂ ਕਰੋ shinyjs ਐਨੀਮੇਸ਼ਨਾਂ ਜਾਂ ਦੇਰੀ ਨਾਲ ਟੈਬ ਪਰਿਵਰਤਨ ਲਈ ਕਸਟਮ JavaScript ਜੋੜਨ ਲਈ ਲਾਇਬ੍ਰੇਰੀ।
- ਕੀ ਟੈਬ ਤਬਦੀਲੀਆਂ ਦੇ ਆਧਾਰ 'ਤੇ ਸਰਵਰ-ਸਾਈਡ ਐਕਸ਼ਨ ਨੂੰ ਟਰਿੱਗਰ ਕਰਨਾ ਸੰਭਵ ਹੈ?
- ਹਾਂ, ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ observeEvent ਜਦੋਂ ਵੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਬਦਲਦੀ ਹੈ ਤਾਂ ਸਰਵਰ-ਸਾਈਡ ਤਰਕ ਨੂੰ ਚਲਾਉਣ ਲਈ ਫੰਕਸ਼ਨ।
ਬਿਹਤਰ ਡੈਸ਼ਬੋਰਡਾਂ ਲਈ ਸਟ੍ਰੀਮਲਾਈਨਿੰਗ ਟੈਬ ਨੈਵੀਗੇਸ਼ਨ
ਡੈਸ਼ਬੋਰਡਾਂ ਨੂੰ ਉਪਭੋਗਤਾ ਦੀ ਆਖਰੀ ਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਯਾਦ ਰੱਖਣਾ ਯਕੀਨੀ ਬਣਾਉਣਾ ਅਨੁਭਵੀ ਅਤੇ ਕੁਸ਼ਲ ਇੰਟਰਫੇਸ ਬਣਾਉਣ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਕਦਮ ਹੈ। JavaScript ਦੇ ਨਾਲ R ਦੀਆਂ ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਸਮਰੱਥਾਵਾਂ ਨੂੰ ਜੋੜ ਕੇ, ਡਿਵੈਲਪਰ ਉਹਨਾਂ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵੱਖਰਾ ਬਣਾਉਂਦੇ ਹੋਏ, ਇੱਕ ਨਿਰਵਿਘਨ ਅਤੇ ਚੁਸਤ ਨੇਵੀਗੇਸ਼ਨ ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੇ ਹਨ। 🌟
ਟੈਬ ਸਥਿਰਤਾ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ ਉਪਭੋਗਤਾਵਾਂ ਦਾ ਸਮਾਂ ਬਚਾਉਂਦਾ ਹੈ ਅਤੇ ਗੁੰਝਲਦਾਰ ਸੈੱਟਅੱਪਾਂ ਵਿੱਚ ਵੀ, ਵਰਕਫਲੋ ਨਿਰੰਤਰਤਾ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਇਹ ਪਹੁੰਚ ਡੈਸ਼ਬੋਰਡ ਡਿਜ਼ਾਇਨ ਵਿੱਚ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਨੂੰ ਤਰਜੀਹ ਦੇਣ ਦੇ ਮਹੱਤਵ ਨੂੰ ਉਜਾਗਰ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਹਰ ਕਲਿੱਕ ਅਰਥਪੂਰਨ ਅਤੇ ਲਾਭਕਾਰੀ ਮਹਿਸੂਸ ਕਰੇ। bs4Dash ਅਤੇ shinyjs ਵਰਗੇ ਟੂਲਸ ਦੇ ਨਾਲ, ਬੁੱਧੀਮਾਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ ਕਦੇ ਵੀ ਆਸਾਨ ਨਹੀਂ ਰਿਹਾ।
ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
- ਇਹ ਲੇਖ ਅਧਿਕਾਰਤ bs4Dash ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਪ੍ਰੇਰਿਤ ਸੀ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, ਵੇਖੋ bs4Dash ਦਸਤਾਵੇਜ਼ .
- ਵਾਧੂ ਉਦਾਹਰਨਾਂ ਅਤੇ ਸਪੱਸ਼ਟੀਕਰਨਾਂ ਨੂੰ ਸ਼ਾਈਨ ਆਰ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਸਰੋਤਾਂ ਤੋਂ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਗਿਆ ਸੀ ਜੋ ਇੱਥੇ ਉਪਲਬਧ ਹਨ ਚਮਕਦਾਰ ਆਰ ਅਧਿਕਾਰਤ ਸਾਈਟ .
- ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਨੂੰ ਸ਼ਾਇਨੀ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਨ shinyjs ਪੈਕੇਜ ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਇੱਥੇ ਦਿੱਤਾ ਗਿਆ ਸੀ shinyjs ਦਸਤਾਵੇਜ਼ .
- ਕਸਟਮ JavaScript ਅਤੇ UI ਇੰਟਰੈਕਸ਼ਨ ਰਣਨੀਤੀਆਂ ਨੂੰ ਕਮਿਊਨਿਟੀ ਵਿਚਾਰ ਵਟਾਂਦਰੇ ਦੁਆਰਾ ਸੂਚਿਤ ਕੀਤਾ ਗਿਆ ਸੀ RStudio ਕਮਿਊਨਿਟੀ .