Asp.net mvc BackboneJS/实时SPA-我不知道';你不明白吗?
我想这将是我的第一个封闭式问题,但无论如何: 我开始使用BackboneJS、ASP.NETMVC+SignalR服务器端开发实时单页应用程序(因为是Web3.7)。这个想法是:Asp.net mvc BackboneJS/实时SPA-我不知道';你不明白吗?,asp.net-mvc,backbone.js,signalr,Asp.net Mvc,Backbone.js,Signalr,我想这将是我的第一个封闭式问题,但无论如何: 我开始使用BackboneJS、ASP.NETMVC+SignalR服务器端开发实时单页应用程序(因为是Web3.7)。这个想法是: 应用程序通过信号器加载并启动与服务器的连接 导航到某个页面后,页面设置SignalR客户端功能,该功能将处理输入数据并将其显示给用户,并告诉服务器发送有关该数据的更新,等等 现在,服务器端对我来说非常清楚。但客户方面就不那么多了——我什么都不懂。BackboneJS官方文档非常基础,所有其他教程都涉及静态模型和RE
- 应用程序通过信号器加载并启动与服务器的连接李>
- 导航到某个页面后,页面设置SignalR客户端功能,该功能将处理输入数据并将其显示给用户,并告诉服务器发送有关该数据的更新,等等
load
函数来加载视图
因此,只有静态页脚、页眉和菜单,并将视图加载到#content DIV中,这不是真正的SPA吗?这并不是真正的“普通”web应用程序,除了jQuery+load
I可以保持恒定的信号器连接,而不必真正离开“index.html”
基本上,我使用主干网只是为了路由,而不是整页请求,我将部分视图加载到主内容分区中-我在这里设计了某种讨厌的东西,做SPA完全错了吗
关于如何进行适当的实时单页应用程序,有什么建议吗?请查看KO+Durandal,或者如果您想要更小的内存库,请查看我的小型SPA库 我还为SignalR制作了一个事件聚合器代理,它与MVVM配合得非常好,一旦配置好,它将自动将消息直接转发到VM。像
TestViewModel = function () {
signalR.eventAggregator.subscribe(MyApp.MyEvent, this.onMyEvent, this)
};
TestViewModel.prototype = {
onMyEvent: function (message) {
//act on my event
}
};
维基:
使用nuget安装
Install-Package SignalR.EventAggregatorProxy
您是否考虑过将Backbone.js与发布者-订阅者概念结合使用?
这里有一个链接,介绍如何使Backbone.js与之配合使用
我希望很快就可以在一个我一直作为宠物项目工作的SPA中试用,其中main index.html只是head部分的一堆行,然后调用一个包含所有视图模板、主干模型和路由器的js文件。我的目标是让一个模型从别处发布的数据链接到订阅的事件。不确定这是否有帮助,但如果你感兴趣,加载我的网站,然后看看它是如何建立的,把它拆开,也许它有点类似于你想做的事情
目前,它仍然通过
this.myModel.fetch({async:true})提取数据定期定时事件上的代码>方法,效果很好,但正如我所提到的,我很想让它与push技术(如PubNub)一起工作。我发现DurandalJS(使用Knockout作为MVC/MVVM层,不指定数据层)在SPA框架中效果很好。它利用RequireJS可以轻松地将不同的视图/模型/控制器保存在不同的资源(文件)中—所有加载(如果需要)和资源管理都是自动的。不管怎样,使用DurandalJS/Knockout,一旦定义了模型(并在视图中合理地使用了模型),这只是一个更新模型并离开的问题——微风或信号器或任何自定义访问层,其实并不重要。同样形式的模型更新也是DurandalJS处理不同(主要)视图之间导航的方式。我将进一步研究它,到目前为止,我想要的是可绑定的淘汰对象,它将得到更新和视图管理。主干是为REST API构建的,因此它没有现成的WebSocket处理。主干+Socket.io有和这样的插件;我认为您可以采取类似的方法,用Signaler修补主干网。但使用支持开箱即用的双向绑定的框架可能更方便。