2016-07-27 83 views
0

我有一個JavaScript接口,請求使用nodejs連接到websocket。 WebSocket經常將它產生的實時數據發送到接口。nodejs websocket分頁

什麼是界面分頁的最佳方式或最佳做法。

它不像我會追加所有的數據,服務器推接口,數據通過websocket一個接一個地發送,所以它的某種喜歡日誌記錄。

代碼

connection.onmessage = function (message) { 
    console.log(message.data); 
    //var json = JSON.parse(message.data.text); 
    content.prepend('<p><span style="color:red"></span> @ '+ message.data + '</p>'); 
    console.log(message.data.text);  
}; 

本中的任何參考的一些示例? 對不起,英語不好。

回答

1

這個例子還有一些事情正在進行,然後就是所請求的關於分頁的信息。

  • 客戶端,我們正在設置listRequest_Message,並且將消息傳遞到服務器的套接字事件。 SessionID僅用於知道要回復哪個用戶。 UseIndexStart是當前最小記錄,UseIndexEnd是當前最大記錄。

    listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]] 
    
  • 的示例返回21條記錄每

    //Page Back 
    var UseIndexStart = StartIndex - 21 
    var UseIndexEnd = UseIndexStart + 22 
    
    //Page Forward 
    var UseIndexStart = parseInt(StartIndex) + 21; 
    var UseIndexEnd = UseIndexStart + 22; 
    

服務器應用

  • 變化與指數之間的記錄響應的響應。
  • 插座事件的客戶端調用是動態的,但我已經包含了一個與尋呼以下稱爲listRequest_news
  • 被解析爲包含電影,電視節目的列表的文本文件中的JSON對象,和一般的媒體。

代碼:

socket.on('listRequest_news', function(msg, body){ 
for(var i = 0; i < mediaObj.length; i++){ 
    var thisobj = mediaObj[i]; 

    var JSONmsg = JSON.parse(msg[0]); 
    var ClientIndex = clientkeyIndex.indexOf(JSONmsg); 

    var startindex = msg[1]; 
    var endindex = msg[2]; 

    if (i > startindex && i < endindex) 
    { 
     clientID = parseInt(ClientIndex); 
     client[clientID].emit('list_RequestGenericMedia', thisobj); 
    } 

    clientID = parseInt(ClientIndex); 
    client[clientID].emit('list_RequestGenericMedia', thisobj); 

} 
}); 

客戶端

  • 商店StartIndexEndIndex所選記錄
  • 安裝這些值Previous和Next按鈕

代碼:

$("#listviewcontrolller_prev").on("click", "", function(event){ 

var selectedOption = localStorage.getItem('selectedOption') 

var StartIndex = $("#prevpage").text(); 
var EndIndex = $("#nextpage").text(); 

var UseIndexStart = StartIndex - 21 
var UseIndexEnd = UseIndexStart + 22 

$("#prevpage").text(UseIndexStart); 
$("#nextpage").text(UseIndexEnd); 

var SessionID = localStorage.getItem('SocketID') 
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]]; 

$("#newsOutPut").empty(); 
socket.emit(selectedOption, listRequest_Message); 
}); 

$("#listviewcontrolller_next").on("click", "", function(event){ 

var selectedOption = localStorage.getItem('selectedOption'); 

var StartIndex = $("#prevpage").text(); 
var EndIndex = $("#nextpage").text(); 

var UseIndexStart = parseInt(StartIndex) + 21; 
var UseIndexEnd = UseIndexStart + 22; 

$("#prevpage").text(UseIndexStart); 
$("#nextpage").text(UseIndexEnd); 

var SessionID = localStorage.getItem('SocketID') 
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]]; 

$("#newsOutPut").empty(); 
socket.emit(selectedOption, listRequest_Message); 

}); 
+0

好了,我已經完成了實施。 –

+0

已將Downvote刪除。 –