2010-11-02 1 views
1

У меня есть веб-страница, где вы можете настроить свой игровой персонаж. Чтобы ускорить просмотр (драгоценные камни), я загружаю всю базу данных драгоценных камней (600 записей, 247 КБ) в отдельный файл .js, поэтому ее можно кэшировать, и мне не нужно ее загружать каждый раз.Хорошая или плохая идея: загрузить базу данных в виде отдельного .js-файла

Я не замечаю задержки, это еще плохая идея?
Должен ли я ajax-получать необходимые записи на лету вместо этого?

FYI: Я использую ASP.NET MVC 2.0, здесь загружается скрипт:

<script type="text/javascript" src='./Data.aspx/Gems'></script> 

А вот действие:

[OutputCache(Duration = 14400, VaryByParam = null)] 
public ActionResult Gems() {...} 

EDIT: Моя главная забота не загружается время, но использование памяти. Это будет иметь заметное влияние, если excra 250 Кбайт javascript загружен/проанализирован браузером?

+0

Сколько записей 600 вам нужно будет получить и как часто? – JeremyWeir

+0

База данных Gems используется каждый раз, когда пользователь посещает страницу (веб-сайт - это сайт с одной страницей). Из 600 пользователей 20-50 –

ответ

2

Я нахожу это довольно хорошей идеей. Кроме того, если вы когда-нибудь нужно «обновить» в базе данных GEMS вы можете просто загрузить сценарии с версии тега как

<script type="text/javascript" src='./Data.aspx/Gems?v=1232'></script> 

Где v=123 заставит пользователя загрузить новую версию, если это необходимо.

0

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

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

+0

Есть * способы сделать эту неблокирующую, ее не нужно останавливать. – annakata

+0

@annakata, можете ли вы указать мне пример неблокирующего тега