我正在寻找一种在调用异步服务时自动显示和隐藏“正在加载”消息的方法,所以不要这样做:
showLoadingWidget();
service.getShapes(dbName, new AsyncCallback() {
public void onSuccess(Shape[] result) {
hideLoadingWidget();
// more here...
}
public void onFailure(Throwable caught) {
hideLoadingWidget();
//more here
}
});
我只想这样做,但是仍然在完成时显示和隐藏消息。
// this should be gone: showLoadingWidget();
service.getShapes(dbName, new AsyncCallback() {
public void onSuccess(Shape[] result) {
// this should be gone: hideLoadingWidget();
// more here...
}
public void onFailure(Throwable caught) {
//this should be gone: hideLoadingWidget();
//more here
}
});
简而言之,我想更改异步调用的行为。感谢您提出的所有建议。
丹尼尔
您可以将调用本身包装在处理显示加载消息的对象中,也许对错误或其他原因重试几次。像这样:
public abstract class AsyncCall<T> implements AsyncCallback<T> {
/** Call the service method using cb as the callback. */
protected abstract void callService(AsyncCallback<T> cb);
public void go(int retryCount) {
showLoadingMessage();
execute(retryCount);
}
private void execute(final int retriesLeft) {
callService(new AsyncCallback<T>() {
public void onFailure(Throwable t) {
GWT.log(t.toString(), t);
if (retriesLeft <= 0) {
hideLoadingMessage();
AsyncCall.this.onFailure(t);
} else {
execute(retriesLeft - 1);
}
}
public void onSuccess(T result) {
hideLoadingMessage();
AsyncCall.this.onSuccess(result);
}
});
}
public void onFailure(Throwable t) {
// standard error handling
}
...
}
要进行呼叫,请执行以下操作:
new AsyncCall<DTO>() {
protected void callService(AsyncCallback<DTO> cb) {
DemoService.App.get().someService("bla", cb);
}
public void onSuccess(DTO result) {
// do something with result
}
}.go(3); // 3 retries
您可以使用代码扩展它,以检测花费很长时间的呼叫并显示某种繁忙指示等。
本文向大家介绍jQuery Ajax 加载数据时异步显示加载动画,包括了jQuery Ajax 加载数据时异步显示加载动画的使用技巧和注意事项,需要的朋友参考一下 ajax加载后台数据就不说的那么细了。 看下面代码首先前台上放置代码 在js脚本文件中首先把这个图片动画隐藏 代码如下 然后异步ajax提交请求代码如下 ..................... 注意: async: true, 当
问题内容: 我对Flask还是比较陌生,总体而言有点网络菜鸟,但是到目前为止,我取得了一些不错的成绩。现在,我已经有了一个表单,用户可以在其中输入查询,该查询被赋予一个函数,该函数可能需要5到30秒的时间才能返回结果(使用Freebase API查找数据)。 问题是我无法让用户知道他们的查询正在这段时间内加载,因为结果页面仅在函数完成工作后才加载。有什么办法可以显示正在加载的消息吗?我发现一些Ja
问题内容: 我正在努力解决从iPhone到iPhone显示相册的问题。 如果某人在画廊内有50张照片,则一切正常。问题是,当某人有数千张照片时,图库会加载10秒钟,这对我的应用程序不利。 当我从Facebook加载图像时,会发生相同的问题。该应用程序正在等待下载所有照片,然后显示出来。我想在加载过程中一一显示图像,而不是等待它全部加载。 我知道我应该使用并且确实使用过,但是有一些我看不到的错误。
本文向大家介绍leaflet加载geojson叠加显示功能代码,包括了leaflet加载geojson叠加显示功能代码的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了leaflet加载geojson叠加显示功能代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 geojson需要先制作shp,然后导入下面网站生成geojson。 ht
问题内容: 示例:转到Facebook墙,滚动页面的末尾,Facebook将 异步 加载更多墙帖。或者,只需单击墙上的帖子中的图片即可。图像对话框(带有注释和较大图像)也将 异步 加载。(您可以使用firebug查看GET请求)。 但是通过查看和Firefox标签,您会看到加载指示器,就像发生回发时一样。 我知道可以通过使用an 并更改其src 来实现。就像iGoogle一样。但是我不确定Face
我想在页面加载时显示1个工具提示,然后在几秒钟后隐藏它和/或在另一个工具提示悬停时隐藏它。 我已经找到了几种方法来做到这一点,但我使用了一个Elementor插件作为我的工具提示,所以它嵌套在几个div中,这让我感到困惑。 当您悬停在“div.eael-tooltip”上时-“span.eael-tooltip-text”显示(这是我想自动显示几秒钟的内容) 我知道我可能需要一些jQuery,有谁