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