Как не передавать куки в ExtJS HTTPRequest - PullRequest
3 голосов
/ 09 июля 2010

У меня есть приложение, использующее ExtJS на внешнем интерфейсе и TurboGears на сервере. Теперь я начал добавлять куки для обработки лицевой стороны настройки с помощью диспетчера состояния CookieProvider. Это круто, но куки передаются при каждом вызове, и эти куки значительны. У меня есть опасения по поводу производительности.

Если коротко, могу ли я заблокировать отправку определенных файлов cookie при звонках на сервер?

  • Dave

Ответы [ 4 ]

1 голос
/ 10 июля 2010

Если вы знаете, что ваши пользователи используют современные браузеры, вы можете использовать локальное хранилище HTML 5 вместо файлов cookie.

Это именно то, для чего он предназначен - локально хранить такие данные, как настройка на клиенте.

Это освобождает вас от проблем с файлами cookie, таких как отправка на сервер и ограничение по размеру.

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

Вот краткое изложение того, что я в итоге реализовал: Все настройки хранятся в базе данных. При переходе к экрану я читаю настройки экрана для текущего пользователя и использую его для инициализации простого поставщика состояния на основе памяти в процедуре init_component. Поставщик состояния прослушивает соответствующие события и обновляет состояние в памяти. Пользовательский интерфейс имеет меню настроек с параметрами и сохранить / сбросить. Опция сохранения сохраняет состояние памяти на сервере. Сброс удаляет состояние из базы данных и восстанавливает экран с настройками по умолчанию. Кажется, это хорошо работает.

К вашему сведению: другие ошибки, которые я нашел:

  • сетка не имеет события для замены фильтра
  • комбинированные окна (среди прочих) не имеют кода для сохранения состояния, вы должны написать свой собственный.
  • состояние из сетки расточительно (исходная проблема)

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

0 голосов
/ 17 июля 2010

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

Ext.Ajax.Request({
    url: 'path/to/file.htm',
    params: {
        jsessionid:  Ext.util.Cookies.get('jsessionid')
    },
    success: function(result, request) {
        // Callback function for successful request
    }
});
0 голосов
/ 09 июля 2010

Чтобы наше приложение на основе ExtJS работало без включенных файлов cookie (это означает, что каждый запрос от клиента, написанный на JS и использующий AJAX-запросы для связи с сервером на основе Java, будет создавать новый Session-ID и поэтому не может бытьназначенный на любой конкретный сеанс сервером), я выяснил очень простой метод перезаписи AJAX-метода ExtJS и добавления идентификатора сеанса к каждому запросу, что решает эту проблему.Я получил идею из другого потока, где было показано, как перезаписать Ext.Ajax для добавления определенного параметра к каждому вызову, и я использую этот способ для добавления идентификатора сеанса с добавлением "; jsessionid = 'к каждому URL-параметру.

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