0

最近、Webアプリケーションのダッシュボードに取り組んでいます。ダッシュボードは主にASP.NETSignalRを使用するため、ブラウザーを更新しなくても情報をリアルタイムで変更できます。

要件の1つは、メッセージボードの概要を示すフェイスブックスタイルのニュースティッカーを用意することです。最近、Easyティッカーと呼ばれるjQueryプラグインに出くわしました。基本的に、それは時々div内の要素を表示します。

最初はdivコンテンツが空で、情報が利用可能になると挿入されます。これはSignalRを介して行われます。しかし、簡単なティッカープラグインを参照すると、何も表示されません。私はfirebugを使用したので、出力を確認してください。すべて問題ないようです。何か間違っていることはありますか?ありがとうございました

 <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オブジェクトではなく、通常のJavaScriptオブジェクトである可能性があります。stringifyHTMLエンコーディングの前に試してみてください。

  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 に答える