0
长话短说,我正在尝试使用ASP.NET MVC和EventHubs显示实时数据。在ASP.NET MVC中实时显示数据的优化
我在我的控制器中有一个异步方法,它不断地从集线器接收消息并将它们放入一个类变量中。另一方面,视图使用JS来检索这个值,并将此值转换为div标签,以便我的基于JS的图表可以检索此值来读取此div的innerHTML值。
我觉得这是不是真的一个工作的好办法,而且感觉像制度,有时不稳定,请看看我为更好地理解代码:
感兴趣方法发现我的控制器:
public async static void updateList()
{
do
{
try
{
var message = await consumer.ReceiveAsync();
if (message != null)
{
//alot of code to receive my needed double
}
}
catch (Exception exception)
{
Console.WriteLine("exception on receive {0}", exception.Message);
}
} while (true);
}
public async Task<ActionResult> RefreshLatest()
{
//code to pass the needed double into a view
return PartialView("Latest", latest);
}
然后是视图,由RefreshLatest方法生成:
@model double
<div id="templivedata" style="display:none;">@Model</div>
并且在另一装载视图图形的JS一部分抓住此值:
setInterval(function() {
try {
line1.append(new Date().getTime(), document.getElementById('templivedata').innerHTML);
}
catch (err) {
console.log("Stream not started");
}
}, 200);
最后但并非最不重要的,这会触发RefreshLatest方法在我的索引视图的代码:
<script type="text/javascript">
$(function() {
setInterval(function() {
$('#latest').load('/Stream/RefreshLatest');
}, 200);
});
</script>
所以我的代码实际上工作,我只是想知道是否有另一种方式来做到这一点。
你看过SignalR吗? http://signalr.net/ – Donal 2015-04-01 14:01:16