2011-01-26 1 views
1

Я делаю веб-приложение в asp.net mvc 2, которое является своего рода фотогалереей. Мне придется динамически создавать и отображать миниатюры (не сохранять на диске), и я хотел бы сохранить эти эскизы в кеше. Можно ли это сделать в mvc2 и как? Или это может быть, лучше, чтобы сохранить эскизы на диск (хотя я хотел бы избежать этого, потому что должна быть опция для динамического набора размера миниатюр)asp.net mvc2 thumbnails cache

Спасибо,
Ile

ответ

3

Если вам нужны только фиксированные размеры (3 или 4), тогда было бы лучше создавать файлы и сохранять их на диске.

Если вам действительно нужен динамический размер (в качестве параметра), то самым простым решением будет использование ASP .Net Output Cache. Существует OutputCacheAttribute (специальный фильтр действий) для его интеграции в ASP .Net MVC-проекты.

+0

, тогда похоже, что мне нужно будет сохранить их на диск в конце концов. Благодаря :) –

2

Ну статические ресурсы, такие как изображения, обычно кэшируется браузером, поэтому, вероятно, это первый уровень кеша, который вы могли бы использовать. Поскольку вы создаете динамические миниатюры, вы все равно можете установить соответствующие заголовки кеширования, чтобы эти миниатюры были кэшированы пользователем. Если вам нужен общий кэш для всех ваших пользователей, вам нужно будет его сохранить на сервере. Если вы не хотите сохранять миниатюры на диске, вы всегда можете использовать встроенный объект Cache, но это происходит в памяти, и вы можете быстро запустить исчерпание памяти. И когда это произойдет, вы можете отключить кеш, используя провайдеры, такие как memcached или просто сохранить их на диске.

+0

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