Struts Ajax请求需要很长时间

时间:2017-01-04 22:23:53

标签: struts2

我正在使用Struts ajax调用来在JSP中显示数据

<sx:a id="testReport" formId="testform" targets="testdiv">

此请求需要很长时间。如果有一种方法可以显示加载图像或模糊屏幕,直到Struts AJAX请求完成,那么有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

您尚未显示您的ajax通话
假设ajax调用应该是这样的,你可以尝试:
在发出ajax请求之前显示图像,并在Ajax调用完成后隐藏它

$('#loading-image').show();
$.ajax({
    url: uri,
    success: function(html){
        // Code here after success
    },
    complete: function(){
        $('#loading-image').hide();
    }
});

您还可以在图片后面显示模态Div ,以便用户在进行Ajax调用时无法与页面进行交互:

<div id="myModal" class="modal">

</div>

css用于模态div

.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

BTW:这是通过使用 jQuery和css 而不是 struts 问题来完成的

<强>更新

好的,您正在使用struts-dojo plugin
看看这个然后
您正在寻找 indicator 属性,我想是这样的:

    

<img id="loadingImage" src="images/loadingAnimation.gif" style="display:none"/>
<sx:a id="testReport" formId="testform" targets="testdiv" showLoadingText="false" indicator="loadingImage">

此链接可以帮助您AjaxandJavaScriptRecipes-Showindicatorwhilerequestisinprogress