0

我们最近一直在为我们的 Web 应用程序开发一个仪表板。Dashboard 主要使用 ASP.NET SignalR,因此信息可以实时更改,而无需刷新浏览器。

要求之一是拥有一个显示留言板概览的 facebook 风格的新闻自动收报机。我最近遇到了一个名为 Easy ticker 的 jQuery 插件。基本上它时不时地在 div 中显示元素。

最初,div 内容是空的,并且在信息可用时被注入,这是通过 SignalR 完成的。但是每当我引用easyticker插件时,什么都没有出现。我使用了萤火虫,所以看看输出,一切似乎都很好,我做错了什么吗?谢谢

 <html>

<body>
<div id="latest-messages">

   <div class="message-content" style="position: absolute; margin: 0px; top:      51.911805555555546px;">
   </div>

</div>


<script src="js/json2.js" type="text/javascript"></script>
<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>

<script src="js/jquery.easy-ticker.js" type="text/javascript"></script>
<script src="js/jquery.signalR-1.0.1.min.js" type="text/javascript"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">

      $('#latest-messages').easyTicker({

            direction: 'down',
            interval: 7000          

      });

      // Declare a proxy to reference the hub
      var hub = $.connection.messageHub;

      // Create a function the hub can call to send messages
      hub.client.receiveMessage = function (message) {

      // Html encode the message
      var encodedMessage = $('<div />').text(message).html();

      var data = JSON.parse(encodedMessage);

      // Clear previous messages
      $('.message-content').empty();

       // Display each item
       // in the json-array
       $.each(data, function () {

           $('.message-content').append(
              '<div>' +
              '<b>' + this['Subject'] + '</b>' + '<br/>'
              + 'Date Created: ' + this['DateCreated'] + '<br/>'
              + 'Sent by: ' + this['SentBy'] + '</div>'

              );

           });


        };

        // Start the connection
        $.connection.hub.start();
</script>

</body>
</html>
4

1 回答 1

0

从 SignalR 发送到您的 receiveMessage 客户端方法的数据可能不是stringified普通的 JavaScript 对象。stringify在 HTML 编码之前尝试一下:

  hub.client.receiveMessage = function (message) {

      // Html encode the message
      var stringifiedMessage = JSON.stringify(message);
      var encodedMessage = $('<div />').text(stringifiedMessage).html();
      // ...
于 2013-03-07T19:33:04.720 回答