使用Firefox 10.0.2从这个项目中打开Framework.html:http://code.google.com/p/unitspeeds-vhh/(编辑:我现在预加载图标使用this revision,如果你想尝试调试原始问题。)
命中F5刷新。
非常快地再次点击F5几次。
预期:单位图标(unitIconObj在代码)应该总是呈现。
实际:他们永远不会在第一页加载渲染。第一个F5通常显示所有图标。一些非常快速的F5重复会导致大多数 - 但不是全部 - 图标显示。这些HTML5图像为什么呈现(或不是!)取决于我刷新的速度?
我试图解决的基本问题是第一次渲染图标不正确,我假设这意味着我需要预加载图像。我一直在尝试一些不同的方法来做到这一点,但行为不是严格可重复的,我想我自己对刷新和缓存知之甚少。图标本身是非常小的图像文件,所以我很惊讶地发现这是一个问题。
对于凌乱的代码和问题非常抱歉 - 我是noob!任何的建议都受欢迎。
编辑:在这里我加载镜像文件,并使其部分:
for (var x = 0; x < sortedOutput.length; x++)
{
// Draw the unit icon
var unitIconObj = new Image();
if (sortedOutput[x].Filename == "--") // I don't have real icons for a few units
{
unitIconObj.src = "Icons/Creep.jpg";
} else
{
unitIconObj.src = "Icons/" + sortedOutput[x].Filename + ".jpg";
}
speedContext.drawImage(unitIconObj, ChartBuffer+textBlock+2+4*iconSpace, 50+(x*iconSpace), BarHeight, BarHeight);
}
+0
也许发表您的实际图标加载代码? –
2012-04-16 20:37:27
+0
好的!加载/渲染部分现在列出。 –
2012-04-16 20:43:24
+0
ChartBuffer + textBlock + 2 + 4 * iconSpace可能是问题所在。什么是ChartBuffer?一个方法? –
2012-04-16 20:58:01