测试Sencha Touch中缺少的资源

时间:2012-03-27 14:02:25

标签: javascript sencha-touch sencha-touch-2

对于那些拥有比我更多的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 :(得分:0)

您是否可以让服务器返回默认图像,而不是等待404然后重新请求默认图像?您将保存请求并简化客户端

答案 1 :(得分:0)

你可以做这样的事情来在加载gimage时发生错误时显示默认图像

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

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

或者如果你是usihg jquery那么

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

<强>参考:

jQuery/JavaScript to replace broken images