惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
雷峰网
雷峰网
I
InfoQ
罗磊的独立博客
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
H
Help Net Security
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
WordPress大学
WordPress大学
T
Tenable Blog
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - Franky
A
Arctic Wolf
T
Threatpost
Scott Helme
Scott Helme
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
Security Latest
Security Latest
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
S
Schneier on Security
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com

博客园 - CooS

PowerDesigner使用心得 有意思的图片 到底是顺时针还是逆时针旋转呢? - CooS - 博客园 又是两个小错误 Windows服务 System.StackOverflowException 小错误 大杂烩-今天遇到的问题的总结 .NET相关资源 杀毒 File.Delete不能删除文件的问题 小试Ajax-下拉框联动 笑话 用google搜索时它会告诉你找到多少页面。这里规定找到页面多的一方胜(zz) 人生的状态是由自己心灵的温度决定的 Oracle函数列表速查(zz) 在oracle9i中创建自增序列-触发器(zz) 背上的爱(zz) 程序人生 - 我已经努力了七年(zz) 美女当道,丑女孩会有爱情吗?(zz)
请问:javascript 如何新建一个类的对象 如:work w = new work()
CooS · 2006-05-15 · via 博客园 - CooS

有项目需要解决一个问题

东找找西找找还是找回到了园子里


http://lovecherry.cnblogs.com/archive/2006/03/30/135060.html

这位兄弟的文章很好的解决了我的问题 在此表示感谢

但是每隔几秒刷新一次,我想改成Ajax方式

以下我修改后的内容:

//目的:调用runwork()后,dowork()不断改变currentstatus值,再用GetCurrentStatus()取得currentstatus值,并显示在Label1中
//结果:不成功,runwork()后,dowork()是改变了currentstatus的值,但再次调用GetCurrentStatus()后currentstatus又被初始化了。
//痛苦啊,不知道哪位知不知道,在javascript中有没有像后台代码一像 新建一个类的对象 如:work w = new work()

<script>
function Start()
{
    work.runwork();
    GetCurrent();
}

function GetCurrent()
{
    work.GetCurrentStatus(get_Current_Result_CallBack);
    window.setTimeout("GetCurrent()",10000);
}

function get_Current_Result_CallBack(response)
{
    document.all("Label1").length = 0;
    document.getElementById("Label1").innerText = response.value;
}

</script>

<form id="Form1" method="post" runat="server">
<asp:label id="lab_state" runat="server"></asp:label><br>
<asp:Button id="btn_startwork" runat="server" Text="运行一个长时间的任务"></asp:Button>
<a href="javascript:Start();void(0);">Submit</a>
</form>

后台

先是一些类的申明:
protected System.Web.UI.WebControls.Button btn_startwork;
protected System.Web.UI.WebControls.Label lab_state;
//前面2个是vs.net自己生成的
protected work w;

在Page_Load里面输入以下代码:

Ajax.Utility.RegisterTypeForAjax(typeof(work));


另外建立一个任务类,代码如下:

public class work
 {
  public int State=0;//0-没有开始,1-正在运行,2-成功结束,3-失败结束
        public DateTime StartTime;
  public DateTime FinishTime;
  public DateTime ErrorTime;
    public string currentstatus="test";

[Ajax.AjaxMethod]

  public void runwork()
  {
   lock(this)//确保临界区被一个Thread所占用
   {
    if(State!=1)
    {
     State=1;
     StartTime=DateTime.Now;
     System.Threading.Thread thread=new System.Threading.Thread(new System.Threading.ThreadStart(dowork));
     thread.Start();                        
    }
   }
  }

  private void dowork()
  {
   try
   { 
    int count = 5;
    for(int i=0;i<count;i++)
    {
        currentstatus = "第"+i+"条数据";
                Thread.Sleep(2000);
    }
    State=2;
   }
   catch
   {
    ErrorTime=DateTime.Now;
    State=3;
   }
   finally
   {
    FinishTime=DateTime.Now;
   }
  }
 

[Ajax.AjaxMethod]

public string GetCurrentStatus()
{
    return current;
}
}
}