0

我在预加载图像和动态创建元素时遇到问题。该脚本加载图像 URL 列表、创建画布元素等。

问题在于,在随后的“软”刷新或提交相同的 URL 时,不会启动预加载循环,因此不会创建画布元素等。我很确定这与资源缓存有关 - 但是 - 为什么脚本没有按预期迭代图像 URL 列表并构建 DOM 我不确定......这是一个例子

页面上的 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?random=37436464”类型的修复。在 Ubuntu 12.10 上的夜间版本的 Chrome 和 Firefox 上进行了测试。

4

1 回答 1

0

经过进一步调查(在 IE9 中测试),问题似乎是由 JavaScript 的异步加载和滞后变量启动引起的。

于 2013-02-23T16:06:14.900 回答