#r #shiny #shiny-server
#r #блестящий #shiny-сервер
Вопрос:
Этот код создает два элемента, в которых в замедленном режиме я записываю значения переменной цикла 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);
}
});
})
Комментарии:
1. Вам пришлось бы обновлять их одновременно в одном и том же наблюдателе.
2. Я объединил код с помощью одного
observe
вызова, но я получаю то же самое обратно.3. циклы, конечно, тоже должны быть объединены.
4. но циклы делают разные вещи.
5. ну, вы должны быть в состоянии объединить их, учитывая, что они оба в основном просто повторяют что-то.