Я перетаскиваю запрос JSON из 20 случайных миниатюр в приложение для iPhone. На данный момент я просто включаю URL-адреса большого пальца изображения в массив JSON (см. Ниже), затем iPhone выходит, чтобы получить каждое изображение. Это действительно медленно.
Оригинальный запрос JSON:
{
"item_list": [
{
"item_name": "Item One",
"user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgPDA/67x67",
},
{
"item_name": "Item Two",
"user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgQDA/67x67",
},
{
"item_name": "Item Three",
"user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgRDA/67x67",
}
]
}
Итак, я подумал о том, чтобы использовать Base64 для данных изображения и фактически включить их в запрос JSON, поэтому iPhone требуется только один запрос вместо 21 запроса. Есть смысл?
Итак, как мне это сделать?
Я попытался просто напечатать нижеприведенное изображение в JSON, но это полноразмерные изображения, мне нужно отправить версию Thumbnails для Base64.
Не работает:
f = item.image
f_enc = f.encode ('base64')
Вот как я получаю свои большие пальцы в данный момент, просто создавая их на лету.
http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgSDA/67x67
Это то, что отображает запрос изображения выше:
class Image(webapp.RequestHandler):
def get(self, image_id):
user = db.get(image_id)
if user.image:
picture = user.image
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(picture)
else:
self.response.out.write("No image")
Любые идеи были бы удивительными.
Если есть лучший способ сделать это, я весь в ушах.
Мои проблемы:
- iPhone медленно вытягивает каждое из этих 20 изображений
- Изображения случайные, поэтому кэширование, вероятно, не вариант.
- Base64 - это путь?
Спасибо
Дэнни