当前位置:编程学习 > 网站相关 >>

Ajax实时显示股票信息实例中的问题

Java下有HttpServlet,C#下的一般处理程序
Java下有HashMap,C#下的Dictionary
Java下有Random类有nextBoolean(),C#灵活使用nextDouble()
Java下有Timer使用匿名函数,C#使用委托
 
    不同
    一般处理程序    
    HttpServlet专门用于响应请求的类,最开始我用的是Asp.net下的Web窗体,但Web窗体很明显更倾向于可视,而这个例子所要求的服务端不必有页面,所以使用的是一般处理程序(*.ashx),这个和HttpServlet非常类似,可以专门用于处理简单的请求,相对于Web窗体更省资源且响应速度更快。
 
        Dictionary    
    C#没有HashMap,不过可以使用其Dictionary达到同样的效果,Dictionary存放的同样是键值对组合,当然值可以为对象类型。
 
    NextBoolean()
    Java下可以根据nextBoolean()决定是涨是降。
 
[java] 
<SPAN style="FONT-FAMILY: SimSun; FONT-SIZE: 18px">        // 新建一个生成随机数的对象   
        final Random random = new Random();  
    //上涨或下降   
    if (random.nextBoolean()) {  
        sz = 0 - sz;  
    }</SPAN>  
 
        // 新建一个生成随机数的对象
        final Random random = new Random();
//上涨或下降
if (random.nextBoolean()) {
sz = 0 - sz;
}    C#呢?这可以灵活使用nextDouble(),nextDouble()取值为0~1,与0.5比较同样可以决定是涨还是降。
 
 
[csharp] 
<SPAN style="FONT-FAMILY: SimSun; FONT-SIZE: 18px">        Random rdm = new Random();  
        //上涨浮动   
        if (rdm.NextDouble() > 0.5)  
        {  
            sz = 0 - sz;   
        }</SPAN>  
 
        Random rdm = new Random();
        //上涨浮动
        if (rdm.NextDouble() > 0.5)
        {
            sz = 0 - sz; 
        }    匿名函数
    好吧,前三个问题很简单,第四个就比较困难了,先看一下未解决以前的计时代码(服务端部分代码):
 
[csharp] 
<SPAN style="FONT-FAMILY: SimSun; FONT-SIZE: 18px">  /// <summary>   
    /// 初始化配置数据   
    /// </summary>   
    public  void InitNew()  
    {  
          
        //设定股票字典   
        stock = new Dictionary<string, Stock>();  
         stock.Add("300001", szzs);  
         stock.Add("600000", pfyh);  
         stock.Add("601398", gsyh);  
         stock.Add("601857", zgsy);  
        //设置计时器参数   
        timer = new System.Timers. Timer();  
        timer.Enabled = true;  
        timer.Interval = 50;  
        //执行计时器函数theout   
        timer.Elapsed  +=new System.Timers.ElapsedEventHandler(theout);  
            
    }  
    /// <summary>   
    /// 计时器执行函数   
    /// </summary>   
    /// <param name="source">事件源</param>   
    /// <param name="e">事件参数</param>   
    public void theout( object source,System.Timers.ElapsedEventArgs e)  
    {  
        //股票变动范围   
        Random rdm = new Random();  
        double rdm2 = rdm.NextDouble();  
        //上涨浮动   
        double sz = rdm2 * 30;  
        double pf = rdm2 * 0.5;  
        double gs = rdm2 * 0.1;  
        double zg = rdm2 * 0.3;  
        //下跌浮动   
  
        if (rdm2 > 0.5)  
        {  
            sz = 0 - sz;   
        }  
        if (rdm2 > 0.5)  
        {  
            pf = 0 - pf;  
        }  
        if (rdm2 > 0.5)  
        {  
            gs = 0 - gs;  
        }  
        if (rdm2 > 0.5)  
        {  
            zg = 0 - zg;  
        }  
        //当前股票价格   
        szzs.SetCurrent(Math.Round((szzs.GetCurrent() + sz) * 100) / 100.0);  
        pfyh.SetCurrent(Math.Round((pfyh.GetCurrent() + pf) * 100) / 100.0);  
        gsyh.SetCurrent(Math.Round((gsyh.GetCurrent() + gs) * 100) / 100.0);  
        zgsy.SetCurrent(Math.Round((zgsy.GetCurrent() + zg) * 100) / 100.0);  
    }  </SPAN>  
 
  /// <summary>
    /// 初始化配置数据
    /// </summary>
    public  void InitNew()
    {
        
        //设定股票字典
        stock = new Dictionary<string, Stock>();
         stock.Add("300001", szzs);
         stock.Add("600000", pfyh);
         stock.Add("601398", gsyh);
         stock.Add("601857", zgsy);
        //设置计时器参数
        timer = new System.Timers. Timer();
        timer.Enabled = true;
        timer.Interval = 50;
 
补充:Web开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,