Лучшая практика для объединения запросов с возможными различными типами возврата - PullRequest
1 голос
/ 25 ноября 2010

Фон

Я работаю над веб-приложением, использующим AJAX для извлечения контента / данных и всего, что у вас есть - ничего необычного.

На стороне сервера некоторые события могутслучается, что клиентская структура JavaScript должна быть уведомлена и наоборот.Эти события не всегда связаны с немедленными действиями пользователей.Невозможно дождаться следующего обновления страницы, чтобы включить их в документ, или вставить их в некоторые скрытые поля, потому что пользователь может никогда не отправить форму.

Сейчас это дизайн таким образомчто события на сервер и с сервера идут долго с запросами пользователей.Например, если пользователь щелкает ссылку «Просмотр сведений», это приводит к тому, что сервер отправляет запрос на получение некоторого HTML или JSON с подробной информацией о выбранном элементе.Наряду с этим запросом или, скорее, ответом, серверное (вызванное) событие вернется с содержимым.

Вопрос / проблема 1:

Я не уверен, как управлять очередьюсобытия идут на сервер.Они могут ездить вместе с вызванными пользователем событиями, но что, если они не произойдут, события будут потеряны.Я представляю себе установку таймера для отправки этих событий на сервер в случае, если пользователь не выполняет какое-либо действие.Как вы думаете?

Вопрос / проблема 2:

Что касается ответов, некоторые из них запрашиваются как HTML, а некоторые как JSON, это немного сложно, так как мне пришлось бы как-то обернуть этоданные для позволяют возвращать клиенту как формализованные (и не связанные) события, так и, возможно, контент HTML, в зависимости от запроса.Какие-либо предложения?что-нибудь, о чем я должен быть в стороне, например, возвращать содержимое HTML, упакованное в JSON-пакет?

Обновление:

Знаете ли вы о какой-либо инфраструктуре, которая использует такой подход, на который я могу посмотретьдля вдохновения (это фреймворк, который упаковывает события / запросы в пакет вместе с данными)?

1 Ответ

0 голосов
/ 25 ноября 2010

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

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

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

Возможно, вы также захотите учесть влияние на производительность нескольких клиентов, регулярно делающих асинхронные вызовы на ваш веб-сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...