2016-07-27 3 views
0

У меня есть интерфейс с javascript, который запрашивает соединение с websocket с помощью nodejs. Websocket часто отправляет данные реального времени, которые он создает для интерфейса.nodejs websocket pagination

Каков наилучший способ или передовая практика для разбивки на страницы для интерфейса.

Не похоже, что я бы добавил все данные, которые сервер нажимает на интерфейс, данные отправляются через 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 - это текущая запись min, а 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); 

} 
}); 

стороне клиента

  • Хранить 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); 

}); 
+0

Итак, я закончил реализацию. –

+0

Сундучок удален. –

Смежные вопросы