Это не прямой ответ, а немного другое направление проектирования:
Не отправляйте данные в виде формы, но поскольку объект JSON должен быть непосредственно сопоставлен с серверным объектом, или использовать переменную пути пути REST
Теперь я не знаю, что ни один из вариантов не подходит для вашего случая, поскольку вы пытаетесь передать ключ XSRF. Отображение его в переменной пути, как это, является ужасным дизайном:
http://www.someexample.com/xsrf/{xsrfKey}
Поскольку по своей природе вы хотели бы передать ключ xsrf другому пути, /login
, /book-appointment
и т. Д., И вы не 't хотите испортить ваш симпатичный URL
Интересно добавить его как поле объекта тоже не подходит, потому что теперь на каждом из json-объектов вы переходите на сервер, вы должны добавить поле
{
appointmentId : 23,
name : 'Joe Citizen',
xsrf : '...'
}
Вы, конечно, не хотите добавлять другое поле в свой серверный класс, который не имеет прямой семантической связи с объектом домена.
На мой взгляд, лучший способ передать ваш Ключ xsrf через HTTP-заголовок. Это поддерживает многостраничная веб-библиотека защиты xsrf. Например, в Java Spring вы можете передать его с помощью заголовка X-CSRF-TOKEN
.
Отличная способность Angular связывать объект JS с объектом пользовательского интерфейса означает, что мы можем избавиться от практики публикации сформировать все вместе и вместо этого разместить JSON. JSON можно легко де-сериализовать на серверный объект и поддерживать сложные структуры данных, такие как карта, массивы, вложенные объекты и т. Д.
Как вы размещаете массив в форме полезной нагрузки? Может быть, так:
shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday
или это:
shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday
Оба плохой дизайн ..
Посмотрите на Вас
Подсказка по Оптимизации Lucene: Искатель Повторного использования
Усовершенствованная текстовая Индексация с Lucene
индекс должен быть оптимизирован после возрастающих индексов в Lucene?
Быстрые подсказки:
Обман. Используйте RAMDirectory для загрузки всего индекса в поршень. Впоследствии, все сверкает быстро.:)
Я нашел, что лучший ответ на вопрос о производительности должен представить его. Инструкции являются большими, но существует столько переменных, которые могут повлиять на производительность, такую как размер Вашего набора данных, типы запросов, которые Вы делаете, типы данных, и т.д.
Получают профилировщик Netbeans или что-то подобное и пробуют его различные пути. Используйте статьи, связанные с Mitch, но удостоверьтесь, что Вы на самом деле тестируете то, что помогает и что (часто удивительно) причиняет боль.
существует также хороший шанс, что любые различия в производительности, которые можно получить от Lucene, будут незначительны по сравнению с повышениями производительности в Ваш код. Профилировщик укажет на это также.