Таймер обратного вызова в 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").cl‌​ick()},2000)/]]>
*/</script> 

1 ответ

Решение

Я полагаю, что сервер обратного вызова прикреплен к кнопке с идентификатором #updateButton? Странно, что у вас есть скрипт, который запускает действие нажатия на эту кнопку, а не вызывает обратный вызов каждые XX секунд.

Следующий скрипт будет обновлять все тело каждые 10 секунд. Учитывая, что вы реализуете правильные методы рендеринга, это, вероятно, более элегантное решение:

html script: (
    ((html jQuery: 'body') load
        html: [ :innerHtml | self renderOn: innerHtml ]) 
            interval: 10000)
Другие вопросы по тегам