Re[4]: Изменение src
От: DirectX  
Дата: 16.05.10 10:13
Оценка:
Всем спасибо за ответы, вроде бы нащупал откуда грабли.

Прежде всего сделал простейший проект, с простейшим документом:
<html><body><picture style='width: 100%; height: auto;' /></body></html>

Далее записал интересующие проблемные линки в массив:
wchar_t* images[] = { _T("..."), _T("...") };
int imagesCount = sizeof(images) / sizeof(wchar_t*);
int currentImage = 0;

// Обычным образом назначаются после создания документа
dom::element root;
dom::element picture;

и сделал смену картинки по меню (вместо About в простейшем WinMobile приложении):
if (currentImage < imagesCount - 1)
{
    wchar_t* link = images[++currentImage];
    picture.set_attribute("src", link);
    picture.update();
}


Результат — даже на минимальном приложении глюк хорошо воспроизводится — показ нескольких изображений из моей подборки (каждое изображение около 35 килобайт, редко больше!) вызывает залипание дальнейшей смены картинок.

Пошёл дальше: залез на Яндекс.Фотки, выбрал там RSS-поток и покопировал ссылки из него в свой массив. Получилось вроде такого:

wchar_t* images[] = { _T("http://img-fotki.yandex.ru/getx/10000/photohistory.2010.5/16_M"),
    _T("http://img-fotki.yandex.ru/getx/10000/photohistory.2010.5/15_M"),
    _T("http://img-fotki.yandex.ru/getx/10000/photohistory.2010.5/14_M"),
    ... }
};


И, о чудо, стало все работать как надо

После такого успеха поменял суффиксы в данных ссылках на XL, чтобы изображение бралось в максимальном качестве. При этом средняя картинка стала около 130 килобайт (каждая). Результат — всё так же работает.

Осталось две версии:

1. Хостинг.
2. Формат файла.

Сейчас разбираюсь в деталях.

Здесь нужно заметить, что хостинг уже был причиной глюков в работе приложения на HTMLayout. Но в тот раз у меня закралось подозрение, что виной тому использованный было по началу gzip. Сейчас получается что не только это. Самое интересное, что сервер, на котором расположены картинки далеко не детский, и в браузере они грузятся чуть быстрее, чем моментально. Любая!

Ладно, настроил на другом сервере (выделенный) каталог с теми же картинками. Что характерно, после этого ситуация значительно улучшилась. Можно просматривать серии из 20 картинок и все ОК.

Но до конца вопрос не решился — в некоторых галереях затыки стабильно происходят, но не 100% детерминированно. Поэтому продолжаю изыскания. Не исключено, что и с форматом файлов что-то не то. А возможно имеет значение порядок следования файлов (чередование соотношений сторон, например). Буду делать серверное перекодирование через Python Image Library. Поэкспериментирую также и с серверами (lighttpd, nginx). Сейчас на скорую руку все крутится из-под Апача.

Как удастся локализовать причину, напишу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.