2013-02-26 2 views
1

Фон: Мы используем grails 2.1.1. На данный момент мы не используем какую-либо БД. Мы делаем вызов веб-службы для каждого ответа на другом сервере.Grails хранит и извлекает данные на стороне клиента

Теперь проблема заключается в том, что есть вызов веб-службы, который возвращает некоторые статические данные в форме XML, и эти данные могут использоваться во всем приложении. Размер xml составляет около 40 КБ. Этот xml содержит статические данные, такие как project_list, status_type_list и т. Д., И мы должны использовать это в различных раскрывающихся списках и пунктах меню на разных страницах gsp.

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

+0

Адрес, от которого вы звоните в веб-сервис: клиента или сервера? если это клиент, который я предполагаю, то плагин кеша не может быть использован. – uchamp

+0

@uchamp: мы вызываем веб-сервисы от наших контроллеров и сервисов, которые в этом случае действуют как клиент, я думаю. – Wasim

ответ

1

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

Если вызовы делаются из серверной стороны, и вы хотите кэшировать результаты обработанном XML, то вы можете сделать что-то вроде:

@Cacheable("staticDataCache") 
def getStaticDataFromXML() {} 

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

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

@CacheFlush("staticDataCache") 
def flushStaticDataCache() {} 
+0

Thanx uchamp :) Я никогда не думал, что все так просто. Но можете ли вы предложить мне (согласно моим требованиям), следует ли использовать кеш или servletContext для хранения моих данных. Поскольку оба работают на меня сейчас. – Wasim

+0

Принимая ваш ответ, хотя я собираюсь использовать servletContext в своем приложении. – Wasim

+0

приятно! Я не знал, что было легко хранить/извлекать вещи из servletContext. Отсроченный путь. Спасибо, что рассказала мне об этом :) – uchamp

1

Используйте cache plugin для кэширования статических данных xml. Затем добавьте некоторую политику относительно того, когда кеш должен быть обновлен ... (т. Е. Используя задание, чтобы проверить, изменился ли xml каждый час)

+0

thanx для вашего ответа. И я думаю, что это лучшая альтернатива, которую мы можем использовать. Я прошел через его документацию, но не смог найти, как кешировать список карт (анализируется и преобразуется из xml, который я получаю из своего веб-сервиса). Могу ли вы, пожалуйста, помогите мне. – Wasim

 Смежные вопросы

  • Нет связанных вопросов^_^