Как создать временные файлы на клиентском компьютере из веб-приложения? - PullRequest
0 голосов
/ 01 апреля 2010

Я создаю веб-приложение с использованием JSP, Struts, EJB и сервлетов. Приложение представляет собой комбинированный пакет CRM и учета, поэтому размер базы данных очень велик. Итак, чтобы ускорить выполнение, я хочу предотвратить обходные пути к базе данных.
Для этого я хочу создать несколько временных XML-файлов на клиентском компьютере и использовать их при необходимости. Как я могу это сделать, так как Javascript не позволяет мне это сделать. Есть ли способ сделать это? Или есть какое-то другое решение, которое я могу принять, чтобы сделать мое приложение быстрее?

Ответы [ 4 ]

2 голосов
/ 01 апреля 2010

У вас нет беспрепятственного доступа к клиентской файловой системе для создания временного файла на клиенте. Песочница в браузере предотвращает это по очень веским причинам.

Возможно, вы сможете творчески использовать кеширование в браузере. jQuery data метод является примером этого. Общий интерфейс TIBCO широко использует кэш браузера для данных XML. Их код с открытым исходным кодом, и вы можете посмотреть, как они реализовали свой кеш браузера.

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

1 голос
/ 01 апреля 2010

Вы должны кэшировать на веб-сервере.

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

0 голосов
/ 01 апреля 2010

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

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

0 голосов
/ 01 апреля 2010

Вы можете заставить свое приложение использовать плагин браузера Google Gears, который позволяет вам иметь реальное хранилище на стороне клиента.

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

@ justkt На самом деле, нет веских причин не разрешать веб-приложению хранить данные. Действительно, спецификации HTML5 включают в себя базу данных, аналогичную той, что предлагается Google Gears, поддержка браузеров слишком спорадична, чтобы полагаться на эту функцию.

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