Свифт 3 версии ответа @Alexey Globchastyy:
class func getGenres(completionHandler: @escaping (genres: NSArray) -> ()) {
...
let task = session.dataTask(with:url) {
data, response, error in
...
resultsArray = results
completionHandler(genres: resultsArray)
}
...
task.resume()
}
Сохраните изображения в файловой системе и местоположениях изображения в базе данных.
, Почему? Поскольку...
В моих недавно разработанных проектах я сохранил изображения (и все виды двоичных документов) как столбцы типа image в таблицах базы данных.
преимущество хранения файлов в базе данных состоит, очевидно в том, что Вы не заканчиваете с не имеющими ссылки файлами на жестком диске, если запись удалена, начиная с синхронизации между базой данных (= метаданные) и жестким диском (= хранилище файлов) не встроено и должен быть запрограммирован вручную.
Используя сегодняшнюю технологию, я предлагаю, чтобы Вы сохранили изображения в столбцах SQL Server 2008 FILESTREAM (по крайней мере это - то, что я собираюсь сделать со своим следующим проектом), так как они комбинируют преимущество того, чтобы хранить данные в базе данных И наличии больших двоичных файлов в отдельных файлах (по крайней мере, согласно рекламе ;))
Пословица всегда была "Файлами в файловой системе, метаданными файла в базе данных"
мне обычно нравится иметь двоичные файлы в базе данных потому что:
Для веб-приложений Вы собираетесь вытащить лучшую производительность из использования файловой системы для хранения Ваших изображений. Выполнение так позволит Вам легко реализовывать кэширование изображений на нескольких уровнях в рамках Вашего приложения. Существуют некоторые преимущества для хранения изображений в базе данных, но большую часть времени те преимущества идут с клиентскими приложениями.
Только добавить еще немного к уже хорошим ответам до сих пор. Можно все еще извлечь пользу из кэширования и от веб-уровня , возможно и от уровня базы данных при движении пути, сохраняющего Вас изображения в базе данных.
я думаю для базы данных, можно достигнуть этого тем, как Вы снабжаете изображения отношением к текстовым данным, связанным с ними и если Вы можете доступ к изображениям в конкретный запрос так, чтобы база данных могла кэшировать запрос (просто теория, хотя, так не стесняйтесь уничтожать меня на той части).
С веб-стороной, я предположил бы, так как Вы - вопрос, отмечен с asp.net, что Вы пошли бы путем использования http обработчика для подавания изображений. Затем Вы обладаете всеми преимуществами платформы в Вашем распоряжении, и можно сохранить Вас доменным логическим инструментом для очистки только с необходимостью передать ключ к Вашему изображению к http обработчику.
Лучше хранить файлы как файлы. Различные databses обрабатывают данные Блоба по-другому, поэтому если необходимо переместить бэкэнд, Вы могли бы попасть в беду.
При обслуживании impages < img src = в файл, который уже существует на сервере, вероятно, будет более быстрым, чем создание временного файла от поля базы данных и указания на < тег img к этому.
я нашел этот ответ от поиска с помощью Google Вашего вопроса и чтения комментариев в http://databases.aspfaq.com/database/should-i-store-images-in-the-database-or-the-filesystem.html
Хранение изображений в базе данных добавляет DB наверху для обслуживания единственных изображений и мешает разгружаться для чередования устройства хранения данных (S3, Akami), если Вы растете до того уровня. Хранение их в базе данных делает намного легче переместить Ваше приложение в другой сервер, так как это - только DB, который должен переместиться теперь.
изображения Хранения на диске помогают разгрузиться для чередования устройства хранения данных, делает изображения статическими элементами, таким образом, Вы не должны иметь предосудительные отношения с HTTP-заголовками в своем веб-приложении для создания изображений кэшируемыми. Оборотная сторона - то, если Вы когда-либо перемещаете свое приложение в другой сервер, необходимо не забыть перемещать изображения также; что-то об этом легко забывают.
CustomerService
' s таблица данных Customers
(по причинам производительности) к OrderService
, я заканчиваю с " spaghetti" проблема, если дизайн Customers
потребности изменить---я тогда должен обновить OrderService
' s код. И с SOA that' s, от чего я хочу переехать.
– Gruber
2 December 2011 в 19:19