如何在 GWT 中预取图像?
我尝试了以下代码:
RootPanel root = RootPanel.get("root");
root.clear();
final FlowPanel p = new FlowPanel();
root.add(p);
for (int i=0; i<20; ++i) {
String url = "/thumb/"+i;
final Image img = new Image(url);
img.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
p.add(img);
}
});
Image.prefetch(url);
但它对我不起作用。我错过了什么吗?
I tried the following code:
RootPanel root = RootPanel.get("root");
root.clear();
final FlowPanel p = new FlowPanel();
root.add(p);
for (int i=0; i<20; ++i) {
String url = "/thumb/"+i;
final Image img = new Image(url);
img.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
p.add(img);
}
});
Image.prefetch(url);
But it does not work for me. Did I missed something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
仅在图像附加到 DOM 的情况下才会调用图像加载处理程序。所以你必须在 loadHandler 之外将图像添加到 DOM:
Image load handler is called only in the case, when image is attached to the DOM. So you have to add image to the DOM outside the loadHandler:
斯坦说的有道理。
我认为问题是由于某种原因没有调用 LoadHandler。我一直在没有 LoadHandler 的情况下进行管理,但我通常根据 JavaDoc 演示添加一个 errorHandler,如果加载失败,则会触发该错误处理程序。这应该有效:
请参阅 GWT Javadoc 中的示例:http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/user/client/ui/Image.html
What Stan said makes sense.
I think the problem is that the LoadHandler isn't being called for some reason. I've always managed without a LoadHandler, but I usually add an errorHandler as per the JavaDoc demo which is triggered if loading fails. This should work:
See the example in the GWT Javadoc: http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/user/client/ui/Image.html