+ -
当前位置:首页 → 问答吧 → ajax动态读取数据库

ajax动态读取数据库

时间:2010-11-26

来源:互联网

用AJAX做了些菜单 ,要的是最新的数据, 我采取的方法是先读取数据库生成XML ,再用AJAX请求该XML,但是这样做有点麻烦, 且页面读取速度有点慢 (打开页面就生成XML一次请求一次)

用AJAX,要求是最新的数据 有什么方法好一点的吗?

作者: specturn   发布时间: 2010-11-26

如果你需要的数据必须是最新的话,做法基本上都是大同小异,只能从优化代码的角度来解决这个问题。

你可以把几个时间都打印出来,看看是哪里慢,后台生成xml慢?or 前台js展示慢?然后针对性的对相关代码优化。

作者: fokker   发布时间: 2010-11-26

改用JSON數據類型
JScript code

       $(function(){       
            var opsite = getopsite();
            var chgno = getchgno();
            $('input[type=text]').add($('textarea')).css('color','maroon');
            $('#<%= lbl_chgno.ClientID %>').text(chgno);
            $.getJSON("ECOGeneral.ashx?fun=GetECOHeaderJson&opsite="+opsite+"&chgno="+chgno,function(data){  
                            $.each(data,function(entryIndex,entry){
                            $('#create_date').val(entry['C_Date']);
     
                    });
                });
       });   




ECOGeneral.ashx
C# code

    private string GetECOHeaderInfoJSON()
    {
        string ret = string.Empty;
        string chgno = HttpContext.Current.Request.QueryString["chgno"].Trim();
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("select *from v_ehead5 where chgno=@chgno ");

        cl_comm.AddParameter("@chgno", chgno);
        cl_comm.CommandText = sb.ToString();
        DataTable dt = new DataTable();
        dt = cl_comm.ExecQuery();
        if (dt.Rows.Count > 0)
        {
            ret = "[{";
            foreach (DataColumn dc in dt.Columns)
            {
                string colname = dc.ColumnName.Trim();
                ret +="\""+colname+"\":\""+ dt.Rows[0][colname].ToString().Trim() + "\",";
            }
            ret = ret.TrimEnd(',');
            ret += "}]";
        }
        return ret;
    }

作者: teerhu   发布时间: 2010-11-26

ghfgh

作者: chenwoyu   发布时间: 2010-11-26

还有,菜单的要展示的数据量大么?是树形的?

如果是,最好做成延时加载的,点击相关的节点,才去读取数据。

一般来说,大数据量的菜单或树显示在前台解析会很慢的

作者: fokker   发布时间: 2010-11-26

引用 1 楼 fokker 的回复:
如果你需要的数据必须是最新的话,做法基本上都是大同小异,只能从优化代码的角度来解决这个问题。

你可以把几个时间都打印出来,看看是哪里慢,后台生成xml慢?or 前台js展示慢?然后针对性的对相关代码优化。


要最新的数据的话 ,基本的做法是什么? 像我这样的 是后台生成XML 再前台读取 
有没别的方法???

作者: specturn   发布时间: 2010-11-26

热门下载

更多