Большое спасибо за ответ!
Оба способа проверил, но пока что не получилось решить проблему
CS>1) Использовать <picture> элемент вместо <img>. <picture> не кеширует images, предазаначен именно для показа pictures.
После замены img на picture ситуация стала следующей. Если раньше на симуляторе можно было загрузить порядка 4 картинок (в сумме ~150 килобайт), после чего следующие были пустыми, а при возврате на предыдущие эти четыре показывались, то image, действительно, их не кеширует, и в этом случае повторно они не показываются.
Определение глобальной переменной:
dom::element g_photogalleryPicture;
Создание фрейма (однократно):
HELEMENT hPicture;
HTMLayoutCreateElement("picture", L"", &hPicture);
HTMLayoutSetAttributeByName(hPicture, "style", _T("width: 100%; height: auto;"));
HTMLayoutInsertElement(hPicture, g_parent, 0);
g_photogalleryPicture = hPicture;
Обновление картинки (периодическое действие):
wchar_t wImageLink[] = _T("..."); // Здесь из списка берется адрес очередной картинки
g_photogalleryPicture.set_attribute("src", wImageLink);
g_photogalleryPicture.update();
CS>2) Использовать <frame> и загружать в него "<html><body><img src=...></body></html>" через element::load_html() ...
Определение глобальной переменной:
dom::element g_photogalleryImageFrame;
Создание фрейма (однократно):
HELEMENT hFrame;
HTMLayoutCreateElement("frame", L"", &hFrame);
HTMLayoutSetAttributeByName(hFrame, "style", _T("width: 100%; height: 100%"));
HTMLayoutInsertElement(hFrame, g_parent, 0);
g_photogalleryImageFrame = hFrame;
Обновление картинки (периодическое действие):
wchar_t wImageLink[] = _T("..."); // Здесь из списка берется адрес очередной картинки
wchar_t buff[1024];
wsprintf(buff, _T("<html><body><picture src='%ls'/></body></html>"), wImageLink);
w2utf utfBuff = w2utf(buff);
g_photogalleryImageFrame.set_html(utfBuff, utfBuff.length());
Эффект аналогичный. Может быть я неверно применяю дескрипторы и смартпоинтеры? Но ведь по идее в первом варианте меняется лишь атрибут.
Кроме этих способов пробовал и другие:
1. Создавать все картинки галереи сразу, делая видимой в каждый момент времени одну из них. Как показала практика, грузиться начинают сразу все картинки, даже изначально невидимые. Поэтому чтобы расставить точки над i display: none везде поубирал, чтобы просто взглянуть на загрузку галереи как будто просто нужно загрузить все указанные картинки. В результате из, допустим, 15 картинок фактически отобразились около тех же 4. Если не на симуляторе, а на современном телефоне посмотреть, то около 7 картинок — поэтому похоже что дело в памяти.
2. Эксперименторовал с картинками в css, назначая их на дивы. Тоже безрезультатно, несколько кешируются, после этого не грузятся.
3. Пробовал при смене картинки выкидывать из DOM предыдущий элемент и вставлять новый. Тоже не помогло.
Единственное что еще не попробовал — подставлять картинки в base64, но не думаю что это особо хорошая идея
Version language : Русский (Россия)
CompanyName : Terra Informatica Software. Inc.
FileDescription : htmlayout: h-smile core, Windows Mobile wrapper
FileVersion : 3, 3, 2, 1