проверить отсутствующий ресурс в Sencha Touch - PullRequest
2 голосов
/ 27 марта 2012

Надеюсь, что это быстрый способ для тех, у кого больше опыта Sencha Touch / Ext / JS, чем у меня.Как бы я программно проверил наличие удаленного ресурса, скажем, изображения?Другими словами, как мне предупредить HTTP 404 до того, как он произойдет, и выполнить какое-то действие по умолчанию, скажем, обмен изображениями по умолчанию?

Вот что я сейчас делаю (блок catch (e) никогда не срабатывает):

albumArtArea.setTpl('<img class="cover_art" src="{iconUrl}"/>');
try {
    albumArtArea.setData(itemData);
}
catch (e) {
    // this block is never executed
    // 404 for missing album art; use the generic image
    itemData.iconUrl = "resources/images/img_music_generic.png";
    albumArtArea.setData(itemData);
}

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

вы можете сделать что-то вроде этого, чтобы показать изображение по умолчанию при возникновении ошибки при загрузке gimage

function ImgError(source){
    source.src = "resources/images/img_music_generic.png";
    source.onerror = "";
    return true;
}

<img src="someimage.png" onerror="ImgError(this);" />

или если вы используете jquery, то

$('img').one('error', function() { 
       this.src = 'resources/images/img_music_generic.png';
});

Справка:

jQuery / JavaScript для замены поврежденных изображений

0 голосов
/ 28 марта 2012

Вместо ожидания 404 и повторного запроса образа по умолчанию, вы можете позволить серверу вернуть изображение по умолчанию? Вы сохраните запрос, а также упростите свой клиент

...