2013-02-22 2 views
0

У меня возникают проблемы при предварительной загрузке изображений и создании элементов на лету. Скрипт загружает список URL-адресов изображений, создает элементы холста и т. Д.Chrome/Firefox Кэшированные изображения Выпуск

Проблема в том, что при последующих «мягких» обновлениях или представлении одного и того же URL-кода цикл предварительной загрузки не инициируется, поэтому элементы холста и т. Д. Не являются создано. Я почти уверен, что это как-то связано с кэшированием ресурсов - однако, почему сценарий не выполняет итерацию через список URL-адресов изображений и построение DOM, как ожидалось, я не уверен ... Here's an example

JavaScript на страница оптимизируется выход, но цикл предварительной нагрузки выглядит следующим образом:

// Images array 
var images = []; 

for (var i = 0; i < l.length; ++i) { 
    // Create canvas element 
    var canvas = document.createElement('canvas'); 
    // Canvas element properties 
    canvas.width = l[i].w; 
    canvas.height = l[i].h; 
    canvas.style.display = 'none'; 
    // Image element + mouse over event 
    images[i] = document.getElementById('i' + i).getElementsByTagName('img')[0]; 
    images[i].addEventListener('mouseover', function() { 
     handleCanvas(this); 
    }, false); 
    // Push canvas into DOM 
    images[i].parentNode.insertBefore(canvas, images[i]); 
    // Preload item from processed images list 
    var image = new Image; 
    image.src = l[i].i; 
} 

Я бы предпочел не прибегать к заголовкам или «URL случайным = 37436464?» исправлениям типа, если это возможно. Протестировано на ночных версиях Chrome и Firefox на Ubuntu 12.10.

ответ

0

После дальнейшего исследования (тестирование в IE9), похоже, проблема была вызвана асинхронной загрузкой инициации JavaScript и задержки.

Смежные вопросы