Erlang 在网页上显示n2o框架中外部进程的信息
如何在N2O framefork中显示来自外部进程的信息 代码如下:Erlang 在网页上显示n2o框架中外部进程的信息,erlang,n2o,Erlang,N2o,如何在N2O framefork中显示来自外部进程的信息 代码如下: tokyoWeather() -> timer:sleep(10000), Data = getTokyoWeater(), ??? SHOW_ON_PAGES, tokyoWeather(). lisbonWeather() -> timer:sleep(10000), Data = getLisbonWeater(), ??? SHOW_ON
tokyoWeather() ->
timer:sleep(10000),
Data = getTokyoWeater(),
??? SHOW_ON_PAGES,
tokyoWeather().
lisbonWeather() ->
timer:sleep(10000),
Data = getLisbonWeater(),
??? SHOW_ON_PAGES,
lisbonWeather().
第1页:
body() ->
[ #panel { id=TokyoWeather text= <<>> },
#panel { id=LisbonWeather, text= <<>> },
...].
body()->
[#面板{id=TokyoWeather text=},
#面板{id=LisbonWeather,text=},
...].
第2页:
body() ->
[ #panel { id=TokyoWeather text= <<>> },
#panel { id=LisbonWeather, text= <<>> },
...].
body()->
[#面板{id=TokyoWeather text=},
#面板{id=LisbonWeather,text=},
...].
提前感谢。使用wf:reg和wf:flush功能。例如:
事件(初始)->wf:reg(房间)…
wf:flush(房间)
文档建议使用wf:reg/1和wf:flush。然而,这要求您将进程注册到一个池中,当您想要一次操作多个进程时,这非常方便,但在其他方面则非常冗余 N2O书中提到的另一个有趣的功能是wf:flush/1。它的描述声称它做了与wf:flush/0完全不同的事情,而实际上它没有。它实际上只是收集放置在“缓冲区”中的wf操作,并通过wf:send/2将它们发送到注册的假定websocket进程。同时,websocket进程位于一个定时的接收循环中 经过N2O的代码检查,我认为有一个非常简单的解决方案:
async_render() ->
Pid = self(),
spawn(fun() -> update(Pid) end).
{flush,actions}
的元组发送到父进程
update(Pid) ->
%% Your wf:insert..., update, etc. code here
Actions = wf:actions(),
wf:actions([]),
Pid ! {flush, Actions}.