Ошибка iPad / iPhone при предварительной загрузке изображения - PullRequest
0 голосов
/ 23 июня 2011

У меня возникли некоторые проблемы с предварительной загрузкой изображения и настройкой содержимого при его загрузке. Я использую событие onLoad (или jQuery $ ("img"). Load () - thingy), чтобы определить, когда изображение загружается. Это прекрасно работает в большинстве браузеров, кроме того, когда я пытаюсь сделать это на iPad / iPhone. Каким-то образом он просто генерирует событие onError (в котором НЕТ описания ЧТО ТАКОЕ, ЧТО ТАКОЕ, что это за ошибка!). Но когда я в своем событии onError перенаправляю изображение, оно показывается очень хорошо. Очень странно и не может понять, что это вызывает.

Код:

if( !limg ) {
    var load = function($img) {
        setTimeout(function() {
            var src = $img.attr("src");
            video.trigger(filmLoad, [s]);
            if (((src.indexOf(url) >= 0 && urlIsString) || !urlIsString) 
                && src.indexOf("_low.") >= 0)
            {
                $img.attr(
                    "src", 
                    urlIsString 
                        ? url.replace("_low.", "_high.") 
                        : set.film.url.high);
                still = stillIsString 
                    ? still.replace("_low.", "_high.") : set.film.still.high;
            }
        }, 0);
    };

    limg = s.loaderimg = $("<img>")
        .appendTo(video)
        .css({opacity: 0, position: "absolute", left: "-200em"})
        .load(function(e) { load($(this)); })
        .error(function(e) { if(e.target.complete) { load($(this)); } })
        .src("src/to/my/image.jpg");
}

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Привет, чтобы ответить на мой собственный вопрос:

Я обнаружил, что у iPad есть ограничение по размеру загружаемых изображений, и, поскольку мои изображения были очень большими (по размерам), он просто не загружал их. Изображения на самом деле представляют собой небольшие полоски, высотой более 14000 пикселей и шириной около 600 пикселей. Таким образом, iPad выдает ошибку при загрузке, а затем пропустил загрузку. Я попытался сделать изображение более квадратным, чтобы изображение не было таким высоким, но оно все равно выдало ошибку. Решение состояло в том, чтобы разделить изображения на более мелкие куски, так как я обнаружил, что iPad допускает изображения размером около 600x6000 пикселей. Поэтому я разделил киноленту на более мелкие изображения с размерами около 600x4500 пикселей, которые работали довольно хорошо.

Итак, в заключение: если iPad отказывается загружать изображение, оно может быть слишком большим, как в байтовом, так и в размерном размере.

1 голос
/ 23 июня 2011

Если вы используете файл .manifest, вам нужно поместить в него URL-адреса изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...