1

我想这将是我的第一个封闭问题,但无论如何:我开始使用 BackboneJS、ASP.NET MVC + SignalR 服务器端实时开发实时单页应用程序(因为 Web 3.7)。想法是这样的:

  • 应用程序通过 SignalR 加载并启动与服务器的连接。
  • 导航到某个页面后,页面设置 SignalR 客户端功能,该功能将处理传入数据并将其显示给用户,并告诉服务器发送有关该数据的更新等。

现在,服务器端对我来说非常清楚。但与客户端无关 - 我什么都不懂。官方 BackboneJS 文档非常基础,所有其他教程都涉及静态模型和 REST api。

Wiews - 所有示例都显示视图存在于“index.html”中,并使用来自 REST api 的静态模型进行渲染。我将拥有至少 7 个包含大量 HTML 和脚本的非常大的视图,因此将它们保存在我的“index.html”中并不是一个真正的选择。关于加载远程视图,我一无所获,我自己只是想调用 jQuery 的load函数来加载视图。

因此,只有静态页脚、页眉和菜单,并将视图加载到#content DIV 不是真正的 SPA?这并不是真正来自“普通”网络应用程序,除非使用 jQuery +load我可以保持恒定的 SignalR 连接,而不会真正远离“index.html”。

基本上我使用 Backbone 只是为了路由,而不是整页请求,我将部分视图加载到主要内容 div 中 - 我在这里设计了某种可憎的东西,做 SPA 完全错误吗?

关于如何进行适当的实时单页应用程序的任何建议?

4

2 回答 2

0

您是否考虑过将 Backbone.js 与PubNub(发布者订阅者概念)之类的东西结合使用?
这是一个关于如何使主干、js 与它一起工作的链接,Backbone 与 PubNub
我希望尽快尝试使用我一直作为宠物项目从事的 SPA,其中主要的 index.html 只是头部中的一堆行,然后调用一个包含所有查看模板、主干模型和路由器。我的目标是让模型链接到来自其他地方发布的数据的订阅事件。不确定这是否有帮助,但如果您有兴趣,请加载我的网站,然后查看它是如何构建的,将其拆开,也许它与您想要做的事情有点相似,HydroSolar
目前,它仍然通过this.myModel.fetch({async:true});周期性定时事件的方法提取数据,效果很好,但就像我提到的,我很想让它与来自 PubNub 的推送技术一起工作。

于 2013-10-15T12:00:08.600 回答
0

看看 KO + Durandal,或者如果你想要一个更小的库,看看我的 KO 小 SPA 库

https://github.com/AndersMalmgren/Knockout.Bootstrap.Demo

我还为 SignalR 制作了一个事件聚合器代理,它与 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
于 2013-10-15T09:31:14.813 回答