Как PivotalTracker.com обновляет свой вид в режиме реального времени? - PullRequest
0 голосов
/ 02 декабря 2009

Я пытаюсь создать представление, похожее на PivotalTracker, в котором есть разные строки в разных сегментах. Есть некоторый опрос на сервере, потому что строки могут обновляться другими пользователями, пока вы работаете над ним, и страница должна обновляться сама по себе, без необходимости ее обновления вручную.

Я знаю, как опрашивать сервер и получать обновленные строки, но это не просто вопрос перерисовки каждой строки на месте, когда она обновляется, потому что строка может изменить расположение или порядок на экране, а также быть удаленной и т. Д. .

Это достаточно сложно, так что я не думаю, что они делают это вручную с помощью JavaScript.

Похоже, что они делают версионное представление, где только разность изменений (в JSON) передается клиенту при опросе, поэтому представление синхронизируется с БД с помощью этих различий.

Я никогда не слышал и не видел библиотеку для "версионного представления", но, может быть, такая библиотека или фреймворк существуют? Или есть какой-то другой способ, которым они делают это? Спасибо!

Кстати, я использую Ruby on Rails для сборки этого.

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Марк Майкл из Pivotal Labs недавно создал запись в блоге, в которой подробно описывается их клиентская архитектура.

http://pivotallabs.com/users/mark/blog/articles/1693-what-powers-pivotal-tracker-client-side-architecture

0 голосов
/ 04 декабря 2009

Электронное письмо от ребят из Pivotal tracker подтверждает, что это решение с индивидуальной кодировкой. Каждый компонент пользовательского интерфейса прослушивает команды от пользователя. Сервер может отправлять команды от других пользователей в опросе. Звучит сложно - домашнее решение.

Я решил создать нечто подобное, используя только RJS. Все еще выясняю это ..

0 голосов
/ 03 декабря 2009

Просто взгляните на источник страницы трекера и похоже, что они используют виджеты YAHOO UI для выполнения задач. Их javascript был сжат (без пробелов), поэтому мучительно разбираться со всем этим, но мне кажется, что они используют библиотеку yui для обновления всех своих представлений.

...