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

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

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

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

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

Вопросы:

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

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

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


person prokaryote    schedule 06.10.2011    source источник


Ответы (1)


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

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

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

person Greg Pettit    schedule 07.10.2011
comment
Согласно 1-му ответу, я уже сделал это. Во-вторых, я понимаю, что вы сказали, что я могу получить предыдущее и новое значение ячейки. Это правильно? Если это так, я могу реализовать желаемую функцию Hi-Lighting. Спасибо за ответ Грег! - person prokaryote; 07.10.2011
comment
Хм, я произвел неправильное впечатление, я думаю. К моменту срабатывания fnRowCallback предыдущее значение исчезнет. Вы запустите функцию сравнения из fnRowCallback, но предыдущие данные должны быть доступны где-то еще. Каждый раз, когда данные поступают в DataTables, вы должны сохранять их копию в переменной с правильной областью действия. - person Greg Pettit; 07.10.2011