2011-04-24 3 views
0

Я пытаюсь улучшить производительность своего приложения gwt.GWT-кеширование - куки-апплет

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

Каждый запрос rpc возвращает список записей (нормальный 100 записей). Я храню их в клиенте в виде списка Java, но я замечаю, что браузер не может нормально поддерживать это количество объектов. Это производительность трещины.

Я собираюсь записать результат каждого запроса в файл cookie с использованием какого-то JSON и получить его, когда это необходимо. Другими словами, кэширование запроса в файлах cookie лучше, чем в ОЗУ клиентского браузера.

Может кто-нибудь предложить мне что-нибудь? Будет ли я успехом, следуя этому подходу или это глупо думать? Есть ли у кого-нибудь лучшее решение?

Заранее спасибо и, пожалуйста, извините мой английский.

+0

Как вы сохраняете результат на стороне клиента с помощью списка Java? – Premraj

ответ

0

Куки отправляются как поле в заголовке HTTP-ответа веб-сервером в веб-браузер, а затем каждый раз, когда он обращается к этому серверу, отправляются обратно без изменений.

думать о трафике ...

1

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

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

Редактировать

GWT не имеет встроенной поддержки для локального хранения данных (что я знаю), но вы всегда можете использовать JSNI для этого.

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

0

@darkporter Я полностью согласен и хотел бы добавить, что поддержка Web Storage приходят в следующей версии GWT 2.3. Поэтому, если вам это нужно прямо сейчас, вы можете вытащить эти классы из магистрали gwt и использовать их в своем проекте.