Я бы сказал, что большинство из этих предложений ... довольно средние.За исключением использования сжатия.Обязательно включите сжатие на веб-сервере, который вы используете.Вы определенно не хотите сохранить соединение открытым или иметь несколько соединений.Самой большой проблемой для мобильных устройств является задержка, а не пропускная способность, поэтому использование нескольких соединений не поможет, но быстро разряжает батарею.Что касается сохранения соединения, даже не думайте об этом.Это один из важнейших постулатов мобильной разработки - оставляйте соединение открытым только тогда, когда вам это нужно.
Практическое правило для мобильных тонких клиентов - загружать как можно меньше данных, когда это абсолютно необходимо.Вот несколько советов:
- Не отправляйте много метаданных со своими данными.В случае JSON подумайте об изменении структуры, чтобы не отправлять имена полей для каждой записи.Для примера рассмотрим приведенный ниже JSON:
{
success: true,
data:[
{ProductName: "Coca-Cola can", Weight: 380, imageUrl: "http://path.to/image.png"},
{ProductName: "Gillete deodarant", Weight: 500, imageUrl: "http://path.to/image.png"}
]
}
Как вы видите, существует множество дублированных имен полей, вы можете избавиться от них, чтобы уменьшить полезную нагрузку, например:*
Уменьшите объем данных, которые отправляются каждый раз.Не отправляйте достаточно данных для 10 экранов одновременно.Предоставьте, может быть, два или три экрана и используйте бесконечную прокрутку или какую-то подкачку.
Изучите HTTP-кэширование.Убедитесь, что заголовки кэширования установлены, и убедитесь, что используемый веб-клиент уважает эти заголовки.
Кэширование агрессивно.Взгляните на любой твиттер-клиент для iPhone / Android.Они не загружают все видимые твиты каждый раз при запуске, они хранятся локально.