2011-05-18 70 views
0

我唯一的问题是,我想重新加载WebView中的一些图像。
因此,我添加了一个简单JavaScript方法,这样做:通过加载本地图像到uiwebview

[webView stringByBlehBleyJAvascript:@"replaceImage(....);"]; 

瞧* rataplan * ... *击鼓*

function replaceImage(id, src) { 
    document.getElementById('img'+id).src=src; 
} 

调用它 - 我可以看到的新形象 - 图像完全消失约1秒后。 现在我想知道 - 我加载的图像大小约为30KByte。不要太多,至少不要太多,需要60秒。
我也尝试了JS-Image-Object来loadit,并将dom-image-str属性设置为加载的属性。相同的结果:/
dom元素的完整数量约为12-15。所以getElementById不是瓶颈。
任何想法如何加载静态文件W/O延迟?
顺便说一句:刚刚在模拟器中测试它,因为我的手机坏了。

回答

0

把这个在你的HTML的底部:

<div style="display: none"><img src='img.png'/></div> 

我也有类似的问题,一个非常小的,本地存储的图像,当通过JavaScript显示将需要2-3秒来显示。即

document.getElementById(id).innerHTML = "<img src='img.png'/>"; 

但是,如果图像包含在HTML中,它显然会被缓存。然后当你用JS显示它时,它立即显示出来。

+0

解决了它与此类似,只是发现这个老问题和你的匹配答案;)谢谢彼得 – thedanielhanke 2012-03-20 11:52:59

0

为什么不直接调用web视图的reload方法?

或者直接告诉webView以与第一次相同的方式再次加载内容。这可能是因为你要求Web视图运行一些JavaScript,这可能涉及一堆无关的东西。

+0

嘿查理,我有3个图像,每个代表一个状态。我只想改变1状态。现在,这不能通过CSS来完成,因为状态更改是通过从外部服务器加载照片(实时图像)来完成的。 – thedanielhanke 2011-05-18 19:39:45