同时更新Shiny中的两个元素

时间:2014-07-02 13:37:52

标签: r shiny shiny-server

这段代码生成两个元素,在慢动作中我写了for循环变量的值。问题在于我认为这两个写操作会同时发生,而不是一个接一个地发生,就像目前发生的那样。如何让两个元素同时更新?

我的 index.html

<html>
    <head>
        <script type="text/javascript" src="shared/jquery.js"></script>
        <script type="text/javascript" src="shared/shiny.js"></script>
        <link rel="stylesheet" type="text/css" href="shared/shiny.css"/> 
        <style>
            .shiny-text-output { border: 1px solid green; }
        </style>
    </head>

    <body>
        <pre id="results2" class="shiny-text-output"></pre>
        <pre id="results4" class="shiny-text-output"></pre>
    </body>

    <script type="text/javascript">
        Shiny.addCustomMessageHandler ("myCallbackHandler",
            function (value) {
                document.getElementById ("results2").innerHTML = value;
            }
        );

        Shiny.addCustomMessageHandler ("myOtherCallbackHandler",
            function (value) {
                document.getElementById ("results4").innerHTML = value;
            }
        );
    </script>
</html>

我的 server.R

shinyServer (function (input, output, session)
{
    observe ({
        for (i in 1:3)
        {
            session$sendCustomMessage (type="myCallbackHandler", i);
            Sys.sleep (2);
        }
    });

    observe ({
        for (i in 1:4)
        {
            session$sendCustomMessage (type="myOtherCallbackHandler", i);
            Sys.sleep (1);
        }
    });
})

0 个答案:

没有答案