CometD получает опубликованные данные с помощью jquery во внешнем интерфейсе

#javascript #jquery #comet #datatables #cometd

#javascript #jquery #comet #таблицы данных #cometd

Вопрос:

Я занимаюсь веб-проектом по наблюдению за рынком / акциями.

На стороне сервера у меня есть сервлет и служба в реализации cometd-jetty.

Служба (издатель клиента CometD) отправляет опубликованные данные в формате JSON. т.е. [{«Стандартный код»:»ABC»},{«Стандартный код»:»DEF»}]. Временной интервал публикуемых данных составляет почти каждую секунду или даже меньше.

Во внешнем интерфейсе я использую реализацию cometd javascript для извлечения данных и отображения их в html-таблице с помощью jquery.

Вопросы:

1.) Каков наилучший способ отображения данных в таблице (с использованием плагина datatables) с очень быстрым получением данных с сервера publisher / cometd (менее секунды на каждое сообщение)?

2.) Как я могу указать изменение цены через ячейку таблицы hi-lighting при изменении цены акций? Я пытаюсь разобраться в этом, используя js или jquery?

Ваша помощь очень ценится!

Ответ №1:

1) Плагин DataTables может использовать массив JavaScript в качестве источника данных. У вас будет какой-то метод, который обрабатывает входящие данные; поместите это в массив JS, а затем вызовите .DataTable() с этим в качестве источника.

2) Внутри объекта инициализации DataTables вы можете устанавливать функции обратного вызова на различных этапах. Одним из них является fnRowCallback, который позволяет изменять строку и ячейки внутри нее на основе доступных данных. Возьмите данные, запустите функцию сравнения и, когда условия будут выполнены, измените ячейку.

Для обоих вопросов должен быть образец кода, доступный по адресу DataTables.net .

Комментарии:

1. Согласно 1-му ответу, я уже это сделал. Во-вторых, я понимаю, что вы сказали, что я могу получить предыдущее и новое значение ячейки. Это правильно? Если это так, я могу реализовать желаемую функцию hi-lighting. Спасибо за ответ, Грег!

2. Хм, я думаю, у меня сложилось неправильное впечатление. К моменту запуска fnRowCallback предыдущее значение исчезает. Вы запустите функцию сравнения из fnRowCallback, но «предыдущие» данные должны быть доступны где-то еще. Каждый раз, когда данные поступают в таблицы данных, вы должны сохранять их копию в переменной с правильной областью действия.