解决方案 »

  1.   

    求助啊各位大大们!!!求HELP!!别沉了!!
      

  2.   


    可怜的新人完全没有人鸟啊啊啊啊啊!求大大们HELP啊= =!
      

  3.   

    百度下jquery 进度条就有很多例子啦,然后每次加的值用ajax从后台取
      

  4.   

    有啥推荐的么~用的人比较多的DEMO完善的那种= =~~
      

  5.   

    参考: 让ajax更加友好,实时显示后台处理进度。
      

  6.   

      你搜索吧,网上很多这个的
     关键字     Js 进度条。  Jquery 进度条  都行。 
      

  7.   

    看到标题就激动了一下,看到前面的话就更激动了简直就是我心中所想的资料。
    结果后面来句IE不能用,瞬间心都碎了……这MIS系统只能用IE…………
      

  8.   

    网上有jquery的插件,你还是用插件把省事,不然的话,你得用ajax自己写进度条。挺麻烦的
      

  9.   

    其实我都不一定要进度条,后台是在遍历验证数据,能把 当前数/总数的字段回发给前台都行。
    现在我写了个测试页,按钮事件是用JQ访问后台的一个方法,用全局变量去保存循环的数字。
    同时还弄了setInterval定时执行一个新方法,新方法也是用AJAX去访问后台,想这样子去拿全局变量然后返回到前台,各种出不来……返回出来的数字始终是0/0……还是对这个机制不太理解 哎。。
      

  10.   

    其实我都不一定要进度条,后台是在遍历验证数据,能把 当前数/总数的字段回发给前台都行。
    现在我写了个测试页,按钮事件是用JQ访问后台的一个方法,用全局变量去保存循环的数字。
    同时还弄了setInterval定时执行一个新方法,新方法也是用AJAX去访问后台,想这样子去拿全局变量然后返回到前台,各种出不来……返回出来的数字始终是0/0……还是对这个机制不太理解 哎。。
    你返回的是字符串吗?断点看一下你返回给前台的数据是什么。
      

  11.   

    我把测试代码发上来吧,烦请大大们分析一下……
    JS里的(原谅小白连怎么JQ里写自定义函数都不知道……)
    var xmlHttp;   
        if (window.ActiveXObject) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            xmlHttp = new XMLHTTPRequest();
        }       function createRequest()//向服务器发出请求也就是向Default.aspx页面发出请求;
        {
            xmlHttp.onreadystatechange = DoResponse; //DoResponse是个回调函数
            xmlHttp.open("GET", "AjaxDownload.aspx?Down=T", true);
            xmlHttp.send(null);
        }    function DoResponse()//服务器Default.aspx响应本页面并从服务器带回xmlHttp.responseText;
        {
            if (xmlHttp.readystate == 4 && xmlHttp.status == 200) {
                document.getElementById("ResponseText").innerHTML = xmlHttp.responseText;
            }        
        }    
        function clock() {
            createRequest();
        }    $(function() { 
            var clearflag; 
            $("#btn2").click(function() {
                clearflag = self.setInterval("clock()", 500);
                $.ajax({
                    type: "Get",
                    url: "AjaxDownload.aspx",
                    dataType: "text",
                    data: "Down=C",
                    success: function(data) {
                        window.clearInterval(clearflag);
                        alert(data);
                    }
                });
            }); //btn2 click end    });            //jq end
    HTML的
     <input type="button" id="btn2" value="AjaxThread" />
      

  12.   

    再发下后台的和页面截图……
     private int cur;
            private int total;        protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                { 
                    if (Request.QueryString["Down"] == "C")
                    {
                        ThreadTest();
                    }
                    if (Request.QueryString["Down"] == "T")
                    {
                        ResponseProgress();
                    }
                }
            }        private void ThreadTest()
            {
                for (int i = 0; i < 5; i++)
                {
                    this.cur = i+1;
                    this.total = 5;
                    Thread.Sleep(1000);
                }
                Response.Write("Complete!" + this.cur + "/" + this.total);
                Response.End();
            }        private void ResponseProgress()
            {
                Response.Buffer = true;
                Response.Write(this.cur + "/" + this.total);
                Response.Flush();
                Response.End();
            }
      

  13.   

    显示的结果让我很郁闷,小白的个人感觉,是不是按钮的AJAX事件和定时的AJAX事件是不同的请求,所以服务器那里是分别处理的,全局变量都不能共通的= =?对网络方面的知识也是各种一知半解,说的有问题请大大们不要嘲笑……
    我想明白其中涉及到的原理,为啥这个代码不能按预期的结果工作,应该如何解决,而不单单是用控件解决……(控件的代码也看不懂 T_T)
      

  14.   

    用.net的ajax控件应该好些。
    .net ajax里面有个timer控件,用这个控件实时的更新你的进度条,视乎能简单些。
      

  15.   

    http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html在博客园看到的关于多线程的文章,讲的很详细,希望对你有帮助
      

  16.   

    参考: COMET Streaming in Internet Explorer
    因为这个MIS系统只能使用IE,那么是否可以确保用户能够升级到IE8(这个版本也可以支持Win XP)或以上?如果可以,那么应该可以实现你的需求,你可以点击上面文章里面提供的一个演示页面中的第二个按钮"Try XDR with prelude",看看是否可以看到1-10的进度。具体的js代码,可以在浏览器里面查看网页的源码。
    注意因为IE浏览器和某些版本的Chrome的浏览器的原因,浏览器在收到2KB数据之前不会给出下载提示,所以服务器可以在相应中先发送2KB的空格。
    看到标题就激动了一下,看到前面的话就更激动了简直就是我心中所想的资料。
    结果后面来句IE不能用,瞬间心都碎了……这MIS系统只能用IE…………
      

  17.   


    我想大多数人都喜欢拿“数据库表”来理解内容通讯,那么我们就拿数据库表来理解。比如说你可以创建一个数据库表:进度条(id,总长度,当前长度)。这其实就完毕了!然后你的ajax去把这个信息读取出来显示,而已。ajax只能单向轮询,这是所有(现在的)网页程序的硬伤。各种新奇的什么“连接”,还没有达到靠谱的程度。不然也就不用花了好几年还有那么一大帮人到处在忽悠什么“html5、websocket”等等名词儿了,如果它不是因为技术上可靠性低早就应该普及了。所以你也不用过多跟风去折腾这些代码,那类代码对于你来说只能说是“学习”,根本不实用。而从你的“后台”架构设计来看,进行所谓的“数据验证”如果是长时间的任务,那么你应该设计一个通用的“进度条”系统。这就是把进度条记录在上述数据库中表中,等待各种前端系统来查询。不要纠结在一起,想什么复杂的思路。
      

  18.   

    如果你画出一个前后台通讯时序设计图,其实大概也就是:1. 前端通知后台开启一个“数据验证任务”,然后立刻获取一个id号。
    2. 前端然后定时轮询这个id号的任务的进度条,显示出来。就这么简单。(貌似)更好的方案当然是存在的!但是,如果技术上不有足够把握,如果根本不稳定可靠,如果没有经过大规模的测试,再时髦也不能在实际产品中采用。
      

  19.   


    你的后台程序还 Response 输出?搞复杂了,太技术化了,你其实被技术给玩儿“坏”了。简单傻瓜的方法(后台程序根本不需要 Response 任何信息),首先能够达到目的。然后有空闲时间时再去重构。
      

  20.   


    两个变量用session或viewstate来存取
      

  21.   

    http://www.cnblogs.com/xionglee/articles/1340277.html
      

  22.   


    你的后台程序还 Response 输出?搞复杂了,太技术化了,你其实被技术给玩儿“坏”了。简单傻瓜的方法(后台程序根本不需要 Response 任何信息),首先能够达到目的。然后有空闲时间时再去重构。
    多谢SP大大指点!不甚感激!新人小白表示现在就懂点皮毛,太容易迷茫……
      

  23.   

    SESSION我 也试过,依然没出来的样子= =!后来我用了APPLICATION或者静态变量才出来……
    现在是只会显示输出一次的数字 1/5 然后数字就不变了……