Il semble donc y avoir quelques façons de gérer les images brisées sur une page html. Je voudrais savoir quels sont les moyens d'utilisation courante et quels sont les moyens considérés comme les meilleures pratiques?Quelle est la meilleure façon de gérer les images cassées?
Pour commencer, je l'ai regardé un peu comme moi-même:
function imgErr(source) {
source.src = /images/missing.jpg";
source.onerror = "";
return true;
}
<img src="test.jpg" alt="test" title="test" onerror="imgErr(this);" />
Avantages: fonctionne à chaque fois, l'événement sera toujours pris. L'utilisateur ne voit jamais d'image brisée. Semble bien fonctionner à travers les navigateurs. Inconvénients: tag onerror nécessaire sur chaque image, la fonction imgErr (source) doit être dans la tête pour attraper les erreurs, ralentit les utilisateurs expérimentés temps de chargement
$('img').error(function(){
$(this).attr('src', 'missing.jpg');
});
Plus: très peu de code, fonctionne sur toutes les images sans changer leur balisage, peut être placé en dehors de la tête Inconvénients: peut manquer l'événement d'erreur en fonction de la vitesse des pages d'événements onload, ralentit les utilisateurs expérimentés temps de chargement
$(window).load(function() {
$("img").each(function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
var src = $(this).attr("src");
var suffix = src.substring(src.length - 6, src.length).split('.')[0];
suffix = suffix.charAt(suffix.length - 1);
$(this).attr("src", "/static/images/generic/missing_" + suffix + ".jpg");
}
});
});
Avantages: peut être placé n'importe où sur la page, va réparer les images peu importe quand il arrive à courir, ne ralentit pas l'utilisateur s temps de chargement expérimenté Les inconvénients: montre une image brisée jusqu'à ce qu'il crée une mauvaise expérience utilisateur
Dans mon cas, le temps de chargement est le plus grand problème, mais je ne peux pas obtenir la dernière option pour travailler correctement dans IE car il change cassé et aucune image cassée pareillement!
Cheers, Denis
Une variante de cette réponse peut être de laisser une demande de poignée ISAPI-filtre /-mod apache pour les extensions de fichier d'image communes afin que vous n'avez pas besoin de changer toutes vos img src attributs pour pointer vers votre gestionnaire . – grenade
Je suis d'accord avec ça.Un gestionnaire générique serait mon choix si j'étais catégorique sur la réparation des images cassées. – CeejeeB
Cela pourrait être une option pour moi de regarder avec MVC, mais j'avais espéré que je pourrais rester simple sur le côté serveur! –