добавить вывод условного html файла с ответом xml - PullRequest
0 голосов
/ 27 марта 2009

Эй, ребята, у меня есть спокойная служба XML, где клиент передает текущую версию HTML, которую они просматривают. если версия на сервере совпадает с версией клиента, я просто отвечаю текущей версией сервера в формате xml. пример: <Response ServerHTMLVersion="1" />

однако, если версия сервера html больше текущей версии клиента, я все равно выкладываю тот же ответ, что и выше, как <Response ServerHTMLVersion="2" />. но проблема в том, что мое клиентское приложение должно выполнить отдельный http-запрос для загрузки html-файла в случае ответа xml-версия больше, чем клиентская версия

по соображениям производительности, я хотел сократить этот http-запрос и узнать, как лучше всего это сделать. Должен ли я просто кодировать HTML, чтобы сделать его безопасным XML, и добавить, что с ответом XML - проблема с этим HTML является FAT, а кодирование делает его еще жирнее

OR

Есть ли лучший способ справиться с этим? обратите внимание, что я уже gziping мой ответ для обоих, XML, а также HTML прямо сейчас

Я хотел знать, как это сделать, помня о производительности. xml-сервис restful реализован через asp.net 3.5 и iis 7

1 Ответ

1 голос
/ 27 марта 2009

Задумывались ли вы об использовании заголовков HTTP? Поскольку на самом деле первичными данными здесь являются HTML, а ServerHTMLVersion является своего рода «метаданными» об этом html, он должен работать.

Лично я бы сделал ответ на запрос 1) пустым, когда версии совпадают, и 2) HTML для несовпадающих версий; затем используйте заголовок Pragma HTTP, чтобы отправить что-то вроде Pragma: «ServerHTMLVersion = 2». Делая это, вы можете легко проверить, отличаются ли версии клиента и сервера, и просто получить полный ответ, если они отличаются.

Некоторые люди обсуждают идею возврата HTML из службы REST, но я лично считаю это полностью допустимым и хорошим чистым способом отделения ваших метаданных от реальных пользовательских данных.

-Jerod

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