1. #1
    Sencha User
    Join Date
    Jan 2012
    Posts
    8
    Answers
    1
    Vote Rating
    0
    garrettweinberg is on a distinguished road

      0  

    Default Answered: how to test for missing resource

    Answered: how to test for missing resource


    Hi all,

    Here's a hopefully quick one for those with more Sencha Touch / Ext experience than I have. How would I programmatically test for the existence of a remote resource, say an image? In other words how do I forestall an HTTP 404 before it happens and perform some default action, say swapping in a default image?

    Thanks in advance,
    Garrett

  2. I ended up fixing this using plain HTML/JS, but would appreciate knowing about a more Ext-ish way to handle this. The idea is to use the onerror attribute of the <img> element to default to your fall-back image. It works fine with tpl's rather than hard-coded html.

    Code:
    
    function ImgError(source): {
        source.src = "resources/images/img_music_generic.png";
        source.onerror = "";
        return true;
    }
    
    <img src="someimage.png" onerror="ImgError(this);" />

  3. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,754
    Answers
    3462
    Vote Rating
    827
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    <img> tag will fire an error event and Ext.Img listens to that and fires an error event on the component if you use Ext.Img.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  4. #3
    Sencha User
    Join Date
    Jan 2012
    Posts
    8
    Answers
    1
    Vote Rating
    0
    garrettweinberg is on a distinguished road

      0  

    Default not using Img

    not using Img


    Thanks, Mitchell. Two things. Rather than Ext.Img, I'm using a plain Ext.Component with an <image> tag in its tpl. I assume that doesn't matter. Secondly, where would I catch this error? Will it be thrown when I invoke setData() on the component?

  5. #4
    Sencha User
    Join Date
    Jan 2012
    Posts
    8
    Answers
    1
    Vote Rating
    0
    garrettweinberg is on a distinguished road

      0  

    Default


    The 404 happens during setData() according to my stack trace, but no exception is thrown.

  6. #5
    Sencha User
    Join Date
    Jan 2012
    Posts
    8
    Answers
    1
    Vote Rating
    0
    garrettweinberg is on a distinguished road

      0  

    Default


    Hello? Mitchell?...Anyone? I cannot catch a 404 during Component.setData() by the normal try{} catch{} means.

  7. #6
    Sencha User
    Join Date
    Jan 2012
    Posts
    8
    Answers
    1
    Vote Rating
    0
    garrettweinberg is on a distinguished road

      0  

    Default fixed using "plain" JS

    fixed using "plain" JS


    I ended up fixing this using plain HTML/JS, but would appreciate knowing about a more Ext-ish way to handle this. The idea is to use the onerror attribute of the <img> element to default to your fall-back image. It works fine with tpl's rather than hard-coded html.

    Code:
    
    function ImgError(source): {
        source.src = "resources/images/img_music_generic.png";
        source.onerror = "";
        return true;
    }
    
    <img src="someimage.png" onerror="ImgError(this);" />

Thread Participants: 1

Tags for this Thread

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..."