我想这将是我的第一个封闭式问题,但无论如何: 我开始用BackboneJS,ASP.NET MVC + SignalR服务器端实时开发实时单页面应用程序(因为Web 3.7)。想法是这样的:
现在,服务器端对我来说非常清楚。但与客户方面不同 - 我什么都不懂。官方BackboneJS文档非常基础,所有其他教程都涉及静态模型和REST API。
Wiews - 所有示例都显示视图存在于“index.html”中,并使用REST API中的静态模型进行渲染。我将拥有至少7个非常大的HTML和脚本视图,因此将它们保存在我的“index.html”中并不是一个真正的选择。我没有发现任何关于加载远程视图的问题,而我自己只是想调用jQuery的load
函数来加载视图。
所以只有静态页脚,标题和菜单,并将视图加载到#content DIV中真的不是SPA吗?这并非真正来自“正常”的Web应用程序,除了使用jQuery + load
我得保持常量SignalR连接而不会真正导航离开“index.html”。
基本上我只使用Backbone进行路由而不是整页请求我将部分视图加载到主内容div中 - 我在这里设计了某种令人厌恶的东西,完全错误的SPA吗?
有关如何进行适当的实时单页应用的任何建议吗?
答案 0 :(得分:0)
看看KO + Durandal,或者如果你想要一个更小的足迹库,看看我的小型SPA lib for KO
https://github.com/AndersMalmgren/Knockout.Bootstrap.Demo
我还为SignalR制作了一个Event聚合器代理,它与MVVM配合得非常好,一旦配置它就会自动将消息直接转发到VM。像
一样使用TestViewModel = function () {
signalR.eventAggregator.subscribe(MyApp.MyEvent, this.onMyEvent, this)
};
TestViewModel.prototype = {
onMyEvent: function (message) {
//act on my event
}
};
维基:
https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki
使用nuget安装
Install-Package SignalR.EventAggregatorProxy
答案 1 :(得分:0)
你有没有看过使用Backbone.js和PubNub这样的发布商订阅者概念?这是一个链接,讨论如何使骨干,js与它一起工作,{{3} }。我希望尽快尝试使用我作为宠物项目工作的SPA,其中主要的index.html只是头部的一堆行,然后调用单个js文件包含所有视图模板,骨干模型和路由器。我的目标是将模型链接到来自其他地方发布的数据的订阅事件。不确定这是否有帮助,但是如果你感兴趣的话,请加载我的网站,然后看看它是如何构建的,将它拆开,也许它与你想要做的事情有点类似,Backbone with PubNub。目前,它仍然通过this.myModel.fetch({async:true});
方法在周期性定时事件中提取数据,这很有效,但正如我所提到的,我很想让它使用像PubNub这样的推送技术。