我正在使用Seaside(Squeak 4.2中的2.8)并且通常会像这样更新:
html div
onClick: ((html jQuery: '#asdf') load html: [:h|h text: 'qwer'])
; with: 'asdf'.
但这一次,我必须定期更新div 。
我在另一个项目中使用过PT periodicalEvaluator
,但是在这个项目中我不能,我必须坚持使用JQ。
我尝试在我能想到的所有组合中使用JQInstance的delay:millis
:
onClick: (((html jQuery id: 'chattertext') delay: 1000; yourself) load html: [:h| self renderTextOn: h])
; onClick: (((html jQuery id: 'chattertext') delay: 1000) load html: [:h| self renderTextOn: h])
; onClick: (((html jQuery id: 'chattertext') delay: 1000; load) html: [:h| self renderTextOn: h])
and others
由于某种原因,更新是瞬时的,而不是在 1000毫秒,我需要之后。
答案 0 :(得分:4)
查看JQuery功能测试套件附带的示例:
JQRepeatingFunctionalTest>>#renderContentOn: html
html paragraph
script: (html jQuery this load
html: [ :r | self renderTimeOn: r ];
interval: 1 seconds);
with: [ self renderTimeOn: html ]
示例正在运行here。
答案 1 :(得分:1)
jQuery的delay
函数仅适用于效果[1]。
要实现您的目标,只需使用Javascript的setTimeout或setInterval函数:
onClick: (((html jQuery id: 'chattertext') load html: [:h| self renderTextOn: h]) timeout: 1000)