2013-03-18 1 views
0

Я работаю на сайт для управления облаком файла с CakePHP, где пользователь может загрузить множество файлов, такие как изображения, документы, PDF и т.д., и все эти загруженные файлы будут в aws s3 bucket, ничего в локальном.нагрузки CakePHP вид файл Fastly с большим количеством изображений

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

Теперь проблема заключается в том, что он занимает огромное количество времени для загрузки соответствующих файлов в папку, когда есть множество файлов. Например: у меня есть папка с 50 + изображениями, а также с некоторыми файлами doc. Когда я выбираю эти папки, для загрузки этой папки требуется пару минут, и каждый раз, когда это занимает такое количество времени.

Я уже использовал кеш для этого загруженного представления ajax, а также установил cache : true в настройке jquery ajax для этого файла вида.

Что-то вроде:

public $cacheAction = array(
    'index' => 36000, 
    'ajax_documents' => 3600 // this is the view file that render documents 
); 

..... 
public function ajax_documents() { 
    // Here is all query data that set to corresponding ajax_document.ctp file 
    // I also cached the query result for each folder request 
} 

И JQuery

$.ajax({ 
    type: 'GET', 
    cache: true, 
    ifModified: true, 
    data : {}, 
    url: '..ajax_documents', 
    ...... 
}); 

Но ничего не работает. Тем не менее требуется огромное количество времени для рендеринга ajax_document.ctp. Кэширование файлов работает правильно, потому что я их вижу.

Так что в этой ситуации мне нужна ваша помощь и предложение, как повысить эту кодировку и как лучше всего следовать за такой ситуацией?

Примечание:

Главная проблема заключается загрузка изображений с s3 на каждую временной нагрузке вида. Поэтому мне нужно в основном решение для этого кэша изображений.

Пожалуйста, помогите мне с этим.

+0

Вы пытались сузить узкое место? Не удается ли получить список документов? Загрузка документов? Код, указанный в вашем вопросе, не содержит информации об этой части. – thaJeztah

+0

К сожалению, у меня нет опыта работы с Amazon s3, но быстрый поиск по «управлению кешем для s3»; http://stackoverflow.com/questions/10435334/set-cache-control-for-entire-s3-bucket-automatically-using-bucket-policies и это http://www.labnol.org/internet/lower-amazon -s3-bill-better-website-load-time/5193/Возможно, эти ссылки могут помочь вам? – thaJeztah

ответ

0

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

Я знаю это из опыта на своей работе. Мы используем пирог 1.3. Кэширование от торта ужасно вообще даже с эффективным memcache. Используйте CDN.

+3

Мне действительно интересно, что означает OP, поскольку для загрузки требуется несколько минут. Если сам вид кэшируется в cakephp, рендеринг его может * никогда * принимать минуты. Я подозреваю, что либо загрузка фактических изображений в браузере требует времени, либо что-то еще делается внутри контроллера или просмотра. Также кеширование CakePHP не влияет на загрузку изображений и т. Д., А только на представление. Чтобы кэшировать изображения, правильные заголовки кешей должны быть отправлены веб-сервером – thaJeztah

+0

@thaJeztah да, сэр, моя основная проблема - кэширование изображений.Поэтому, пожалуйста, помогите мне с этой проблемой кэширования изображений, которые загружаются из s3 каждый раз, когда обновляется ajax с выбором папок –

 Смежные вопросы

  • Нет связанных вопросов^_^