我有一个要求,我必须开发一个页面,通过JavaScript在服务器上运行服务。现在我还需要显示正在完成的工作的更新(例如,已完成%)。
这是我的代码结构。
[WebMethod (true)]
//Below method takes around 5-10 minutes in execution
public string[] GenerateXMLSiteMap()
{
SiteMapGenerator siteMapGen = new SiteMapGenerator();
siteMapGen.SiteMapNodeAddedSuccessfully += new SiteMapNodeAdded(siteMapGen_SiteMapNodeAddedSuccessfully);
siteMapGen.GenerateSiteMap();
return GetStats();
}
void siteMapGen_SiteMapNodeAddedSuccessfully(string[] infos)
{
Session["CurrentPage"] = infos[0];
Session["PageScanned"] = infos[1];
Session["Time"] = infos[2];
}
[WebMethod (true)]
public string[] GetStats()
{
string[] stats = new string[4];
if (Session["CurrentPage"] != null)
{
stats[0] = Session["LinkDepth"].ToString();
stats[1] = Session["CurrentPage"].ToString();
stats[2] = Session["Time"].ToString();
}
return stats;
}
我从客户端调用GetStats()方法,但从不调用它。我想它,因为我正在调用仍在执行的GenerateXMLSiteMap()。谁能告诉我如何以这种方式获得静力学。
答案 0 :(得分:0)
WebMethod必须是静态的,如果使用MS Ajax,则必须设置ScriptMethod属性。