How to set Vaadin 8 LoadingIndicatorConfiguration in a button click(如何在按钮点击中设置Vaadin 8 LoadingIndicator配置)
问题描述
我正在使用Vaadin 8,而LoadingIndicator给我带来了一些问题。在90%的时间内,我需要相应地设置它:
- 第一个延迟==300ms
- 第二个延迟==600ms
- 第三延迟==
Integer.MAX
编辑:目前,我想出的可行的(不是最好的)解决方案是创建一个模仿v-loading-indicator
的CSS类,并创建一个在body
元素的开头添加div
元素的JavaScript方法,然后将这个CSS类添加到div
元素。然后,当创建按钮时,我对这个div
执行addEventListener
(再次使用JS-这很关键),并添加方法以显示加载指示器。
推荐答案
通常只有在请求完全处理后才会更新浏览器中的UI。因此,设置按钮被点击前的延迟是有效的,但在点击之后完成时不起作用。要更改这一点,您需要启用推送以立即更新用户界面。尝试使用和不使用推送的以下代码,您应该会看到加载指示器行为的不同。
@Push
public class DemoUI extends UI {
protected void init(VaadinRequest vaadinRequest) {
VerticalLayout layout = new VerticalLayout();
layout.setSizeFull();
Button loadingButton = new Button();
loadingButton.addClickListener(e -> {
getLoadingIndicatorConfiguration().setFirstDelay(0);
getLoadingIndicatorConfiguration().setSecondDelay(1000);
getLoadingIndicatorConfiguration().setThirdDelay(2500);
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
});
layout.addComponent(button);
setContent(layout);
}
}
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = DemoUI.class)
public static class Servlet extends VaadinServlet {
}
这篇关于如何在按钮点击中设置Vaadin 8 LoadingIndicator配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在按钮点击中设置Vaadin 8 LoadingIndicator配置


- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01