我有一个javascript接口,它使用nodejs请求连接到websocket。 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);
};
有关此的任何参考? 抱歉英文不好。
答案 0 :(得分: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
<强>码强>
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);
}
});
客户端
StartIndex
和EndIndex
<强>码强>
$("#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);
});