2. Написание Rest API
Данный подход сейчас - мэйнстрим в разработке веб-проектов. Производительность высокая, механизм универсален и поддерживается практически всеми языками/фреймворками. Для примера: доводилось переходить со встроенных механизмов обмена данными с сервером GWT, на передачу тех же данных с помощью REST - при тех же объемах данных время возврата ответа значительно снижалось.
Кроме производительности, удобство использования также на высоте - в большинстве случаев код лаконичен и ясен. Обращения к серверу можно осуществлять практически из любого места в вашем JS-клиенте. Главное - не забывать о асинхронности, и строить логику с учетом этого: код, зависящий от результатов запроса обрабатывать в callback-ах, переданных в вызов REST.