从服务器(playframework)更新视图(Mithriljs)

从服务器(playframework)更新视图(Mithriljs),playframework,mithril.js,Playframework,Mithril.js,首先,我想说,我对web开发是新手,所以我可能会使用错误的词汇表 我想从我的服务器启动一个操作,将数据库修改发送到客户端以更新视图 我试图尊重SPA(单页应用程序)模型,因此我的所有视图都是由mithriljs生成的 我将对我的数据库进行一些外部修改,在不刷新浏览器的情况下更新视图的最佳方式是什么 我在服务器端使用playframework。将Mithril与任何推送技术结合使用非常简单。正如Anton所提到的,您可以建立一个简单的WebSocket连接并侦听函数中的数据。然后你处理它,更新你的

首先,我想说,我对web开发是新手,所以我可能会使用错误的词汇表

我想从我的服务器启动一个操作,将数据库修改发送到客户端以更新视图

我试图尊重SPA(单页应用程序)模型,因此我的所有视图都是由mithriljs生成的

我将对我的数据库进行一些外部修改,在不刷新浏览器的情况下更新视图的最佳方式是什么


我在服务器端使用playframework。

将Mithril与任何推送技术结合使用非常简单。正如Anton所提到的,您可以建立一个简单的WebSocket连接并侦听函数中的数据。然后你处理它,更新你的数据模型,如果一切正常,只要打电话就可以了。类似这样的内容:(使用位于的示例)

那么您的mithril视图将如下所示:

var WebSocketMessages = {
    view: function() { 
        m("ul", messages().map(function(message) {
            return m("li", message);
        }))
    }
}
并显示:

m.mount(document.body, WebSocketMessages);

使用Mithril和任何推送技术都非常简单。正如Anton所提到的,您可以建立一个简单的WebSocket连接并侦听函数中的数据。然后你处理它,更新你的数据模型,如果一切正常,只要打电话就可以了。类似这样的内容:(使用位于的示例)

那么您的mithril视图将如下所示:

var WebSocketMessages = {
    view: function() { 
        m("ul", messages().map(function(message) {
            return m("li", message);
        }))
    }
}
并显示:

m.mount(document.body, WebSocketMessages);

我不熟悉Mithriljs-它的工作原理是否类似于Angular,即在更新基础模型时自动更新视图?如果是,您当然可以使用WebSocket连接-您的Play应用程序将数据推送到客户端->数据放入模型->视图根据模型进行更新是的,它是这样工作的。谢谢你的回答。我来看看WebSocket。你推荐一个专门的javascript websocket库吗?如果Mithriljs有一些组件,你当然可以使用它。但是,即使不是这样,WebSocket连接也可以用简单的JavaScript在几行代码中实现-看这里:-你也可以用它来测试你的服务器端我不熟悉Mithriljs-它的工作原理是否与Angular类似,在底层模型更新时视图会自动更新?如果是,您当然可以使用WebSocket连接-您的Play应用程序将数据推送到客户端->数据放入模型->视图根据模型进行更新是的,它是这样工作的。谢谢你的回答。我来看看WebSocket。你推荐一个专门的javascript websocket库吗?如果Mithriljs有一些组件,你当然可以使用它。但即使不是这样,WebSocket连接也可以用简单的JavaScript实现,看这里:-你也可以用它来测试你的服务器端我得到:“TypeError:m.prop不是一个函数”是的,这个例子已经过时了,来自旧的1.x Mithril。使用普通数组变量来存储消息。我得到:“TypeError:m.prop不是函数”是的,这个例子已经过时了,来自旧的1.x Mithril。使用普通数组变量来存储消息。