Таймер обратного вызова в Pharo smalltalk + Seaside
Я только что перенес свое приложение Dolphin Smalltalk + Seaside на последнюю версию Pharo Smalltalk 4.0 и Seaside 3.1. В нем мне требуется обратный вызов каждую секунду с клиента (браузера) на сервер (Pharo) для обновления представления.
У меня был этот кусок кода, чтобы автоматически нажимать кнопку "Обновить" каждую секунду. Но он больше не работает после порта на Pharo:
html script: (
( html jQuery: '#updateButton' )
call: 'click';
interval: 1000 ).
Я искал в сети другие (более элегантные?) Решения, но не могу заставить их работать. Кто-нибудь может дать мне подсказку о том, как поступить?
Это код JavaScript, сгенерированный приведенным выше кодом и используемый для работы в Dolphin + Seaside:
<script type="text/javascript">
/*
<![CDATA[/setInterval(function(){$("#updateButton").click()},2000)/]]>
*/</script>
1 ответ
Я полагаю, что сервер обратного вызова прикреплен к кнопке с идентификатором #updateButton
? Странно, что у вас есть скрипт, который запускает действие нажатия на эту кнопку, а не вызывает обратный вызов каждые XX секунд.
Следующий скрипт будет обновлять все тело каждые 10 секунд. Учитывая, что вы реализуете правильные методы рендеринга, это, вероятно, более элегантное решение:
html script: (
((html jQuery: 'body') load
html: [ :innerHtml | self renderOn: innerHtml ])
interval: 10000)