我在这个网站上看过很多帖子,以及MSDN,但是找不到我想要的解决方案。这是我的情况:我有一个页面,允许用户“上传”文件。该页面包含一个asp.net fileUpload控件。但是,它所做的只是将字节数组发送到WSE 2.0 Web服务。我无法改变这一点。这可能会在将来更新,但就目前而言,这是我必须要做的。
该页面有一个动画gif,在用户点击提交按钮时启动。并且应该根据Web服务调用返回的结果相应地更新页面。我能够启动gif并成功使用WS。但是,当页面访问Web服务时,gif文件会冻结。
然后我尝试使用单独的线程来使用Web服务。这会加快进程并且不会冻结gif,但在Web服务完成时页面不会更新。如果我让主线程处于休眠状态,页面会更新,但我回到上面提到的同一个问题,即gif冻结了。
我很确定我可以使用javascript进行调用并以这种方式更新页面,但此时,我真的宁愿做服务器端(出于顽固性,如果没别的话)。
有人能指出我正确的方向吗?提前谢谢。
答案 0 :(得分:1)
这也发生在我身上。我已设法通过将img
标记包含在div
内并使用 setTimeout 功能通过JavaScript显示/隐藏div
来解决此问题。 GIF不会以这种方式冻结。
示例:强>
<script type="text/javascript">
function showLoadingIco() {
setTimeout(showLoadingGif, 50);
}
function showLoadingGif() {
// Using jQuery
$('#myDiv').css('display', 'inline');
}
</script>
请注意,您的HTML代码必须如下所示:
<div id="myDiv" style="display:none">
<img src="loading.gif" alt="Loading..." />
</div>
答案 1 :(得分:0)
上传文件控件不适用于更新面板,所以我的猜测是你正在运行一个完整的回发,这就是图像停止旋转的原因。如果您没有使用更新面板(或其他一些Ajax平台),那么您几乎肯定会回复。
尽管与JQuery异步启动并不太难。查看this link以获取示例。