Ответ 1
Двусторонняя привязка в AngularJS относится к модели данных ($ scope) и вашему представлению (директивам). Например, если данные изменятся в вашей модели, представление будет автоматически обновляться. Аналогично, если пользователь изменяет данные в представлении, ваша модель будет автоматически обновляться.
Взаимодействие с веб-службами осуществляется через сервисный модуль $http. Таким образом, чтобы получить данные из вашего RESTful API, вы бы сделали что-то вроде:
$http.get('/someUrl').success(successCallback);
Полная документация для $http находится на сайте AngularJS. Я думаю, вы найдете, что он очень похож на методы jQuery $.ajax. Вы легко настраиваете $http.get() для короткого опроса с помощью службы wail > w500 > $(в основном оболочкой для setTimeout).
Для обновлений в реальном времени между клиентом AngularJS и API-интерфейсом сервера вы можете посмотреть Socket.io. Он использует node.js для создания прямого соединения сокетов между браузером и сервером и имеет механизмы возврата (flash, long-polling) для старых браузеров. На GitHub есть проект шаблонов, который демонстрирует, как настроить AngularJS с помощью Socket.io: https://github.com/btford/angular-socket-io-seed
В ответ:
Имеется ли функция двусторонней привязки данных angular ($ resource или $http) автоматически извлекает данные с сервера каждые n секунд?
Нет, двусторонняя привязка между моделями и представлениями angular.
Естественно ли он использует длительный опрос, короткий опрос или веб-сайты?
Angular по умолчанию не включает никаких из них. Вы должны настроить их самостоятельно.
Вам нужен JQuery для достижения синхронизации сервер-клиент или все может быть выполнено с помощью Angular?
$http, в широком смысле, эквивалент angular jQuery $.ajax
Вам нужно добавить дополнительный код, чтобы это произошло? Нужно ли использовать $timeout?
Использовать $timeout для короткого опроса или сворачивать собственное решение для длинных опросов и/или веб-сайтов (см. проект angular-socket-io-seed).