У меня есть следующая дистанционная команда:Progressbar setInterval с remoteCommand
<p:remoteCommand id="usedCall"
name="queryUsed"
oncomplete="fetchUsedMemory(#{performanceProvider.queryUsedMemory()})"
process="@all" />
Это вызывает функцию боба и передает результат функции fetchUsedMemory JS, определенную в блоке сценария. Я хочу выполнить этот remoteCommand каждые 2 секунды до отмены и отобразить результат на ProgressBar. Я пробовал следующее:
function fetchUsedMemory(usedMemory) {
var maxValue = jQuery('#TotalMemory').val();
var pbClient = PF('pbClient');
var newValue = usedMemory;
var percentg = (newValue/maxValue) * 100;
pbClient.setValue(percentg);
jQuery('#progressText').val('Max: ' + maxValue + ' NEW: ' + newValue + ' %: ' + percentg);
}
Эта функция обновила бы панель прогресса и inputText, чтобы проверить результаты. Тогда функция, которая начинается весь процесс:
function start() {
PF('startButton1').disable();
PF('cancelButton1').enable();
window['progress'] = setInterval(queryUsed, 1000);
}
Я попытался передать здесь имя из remoteCommand, но это только вызывается раз. Никаких дальнейших звонков в отношении фасоли не поступает. Наконец, вот мой HTML:
<p:panel id="mProgressPanel">
<p:progressBar id="progressBar" widgetVar="pbClient" style="width: 500px;" />
<p:inputText id="progressText" style="display: block; width: 1000px;" />
<f:facet name="footer">
<p:commandButton id="StartProgress" disabled="true"
type="button" onclick="start()"
value="Start"
widgetVar="startButton1" />
<p:commandButton id="StopProgress" disabled="true"
type="button" onblur="cancel()"
value="Stop"
widgetVar="cancelButton1"/>
</f:facet>
</p:panel>
Есть ли способ, чтобы заставить его работать так, что setInterval вызывает remoteCommand правильно? Спасибо за помощь!
Вы понимаете, что '# {performanceProvider.queryUsedMemory()}' будет оцениваться только один раз, oncomplete - это просто функция javascript, и передаваемый параметр не будет меняться каждый раз, когда он будет выполнен , –
Что я уже знаю. Вот почему я спросил, как я могу заставить его работать, а не почему это не работает. – Wrath