首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thread.Sleep方法

Thread.Sleep方法
EN

Stack Overflow用户
提问于 2014-06-05 22:03:36
回答 3查看 322关注 0票数 0
代码语言:javascript
复制
    for (i = 0; i < 10; i++)
    {
        len  = (i*30).ToString();
        System.Threading.Thread.Sleep(200);
        progressbar.Style.Add("width", len + "px");
        txtlbl.InnerHtml = len+'%';

        System.Threading.Thread.Sleep(200);
        //htmlDivControl.Style["width"] =Convert.ToString("10");
                 //Item("width") = i.ToString + "px"
    }

这是我用C#编写的代码。我已经在html中创建了一个div标签。并尝试使用睡眠方法周期性地增加宽度,以创建进度条。我只能在循环结束时看到进度条。只想看到进度条的宽度一步一步地增加。here.Please有什么问题?有谁能帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2014-06-05 22:08:23

您将无法使用服务器端代码来完成此操作。这将不得不在客户端完成,很可能是在javascript中。

可以将ASP.NET看作是构建一个发送到浏览器的大字符串。在页面的整个生命周期中,您所做的每一件事都只是构建一个单独的字符串,该字符串在最后发送到浏览器。因此,无论代码在Prerender事件完成时让页面处于什么状态,都是它将被交付给浏览器的状态。这就是为什么你只能看到进度条的“最终”状态。

这里有一个指向jQuery进度条的链接,您可以将其用作起点。http://jqueryui.com/progressbar/

票数 2
EN

Stack Overflow用户

发布于 2014-06-05 22:18:30

您正在尝试使用服务器端代码来执行将在客户端执行的操作。服务器端代码将简单地将静态HTML输出到客户端(即浏览器),然后停止执行。您可以在HTML呈现之前对其进行操作;但在此之后,您需要使用Javascript (如果这是客户端语言)来执行这种对页面的交互式操作。

您的代码基本上是在页面被提供给客户端之前执行的,因此您只能看到此操作的最终结果。

OnLoad事件上(即页面加载到客户端之后),您可以使用Javascript执行此C#代码的变体以实现此效果。但是,使用jQuery进行此操作要简单得多。

票数 1
EN

Stack Overflow用户

发布于 2014-06-05 22:37:39

正如其他人所提到的,ASP技术在服务器上进行一些处理,并将HTML响应发送回客户端。因此,您需要添加客户端Javascript代码来对UI进行更改。

这里有一种方法(使用JQuery),您可以尝试使用(Fiddle:http://jsfiddle.net/5arx/g8kF9/)。基本上,它使用setInterval函数每x毫秒执行一次代码。

代码语言:javascript
复制
<div class='expando' id='expando'>
</div>

<p id='pOut'>0s</p>

var msg = 20;//global

setInterval(
    function ()//the code that will be executed
    {

        $('#pOut').text(msg++ + 's');
        $('#expando').css('height', msg * 1.5);

     } 
     ,    1000);//interval time in milliseconds
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24062321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档