我有一个SignalR(v0.5.2)Hub向JavaScript客户端发送消息。
C#
public Task SendData(ClassName classData){
return Clients["groupid"].renderData(classData);
}
的javascript
var _client = $.connection.myHub;
_client.renderData = function(data){
/* do stuff */
};
$.connection.hub.start({ transport:activeTransport }, function(){ });
一切正常,只是在IE9中一段时间不活动后,JavaScript方法无法运行。
我查看了IE9开发人员工具中/signalr/connect?transport=foreverFrame
网络日志的响应正文,可以看到我收到的消息:
<script>r(c, {"MessageId":"54","Messages":[{"Hub":"myHub","Method":"renderData","Args":[....]]}],"Disconnect":false,"TimedOut":false,"TransportData":{"Groups":["LiveBid.999"]}});</script>
<div>{"MessageId":"54","Messages":[{"Hub":"myHub","Method":"renderData","Args":[....]]}],"Disconnect":false,"TimedOut":false,"TransportData":{"Groups":["LiveBid.999"]}}</div>
然而,JavaScript方法永远不会发生?
答案 0 :(得分:0)
经过大量时间调试后,事实证明它是我的Modernizr文件的版本导致了问题。
我并不熟悉Modernizer的内部工作方式,但是我创建了一个只有css / html5元素功能的文件的自定义版本,这个目前似乎与SignalR和foreverFrame一起使用。