B/S结构的程序从数据库中取出来很多条记录,然后对这些记录进行操作如果放到DataSet中,就会不停的根服务器进行交互,因为操作会非常的频繁能不能这样:通过什么形式,把这些数据以某种格式保存到客户端计算机,用JS来对这些数据进行操作,然后最后才一次性的提交给服务器?

解决方案 »

  1.   

    DataSet本身就将数据放到内存里了,不在数据库里,你要放到哪里?
      

  2.   

    DataSet好像是在服务器的内存里吧!
      

  3.   

    " 如果放到DataSet中,就会不停的根服务器进行交互,因为操作会非常的频繁" 
    不是这样的哦,DataSet是放在内存里的,一断fill后,就可以断开连接,然后编辑DataSet(可以编辑里面的DataTable等),编辑好后一次性提交更新。
      

  4.   

    我的意思大家可能没有理解我上面说的操作不光是对DataSet的操作,而是对页面的操作导致DataSet变化,而对页面的操作会非常频繁,每分钟可能会有几十次之多,这样就会有很多无谓的交互,我希望的是这些过程都在客户端,通过JS来完成,当然包括这些数据!谢谢大家
      

  5.   

    what kind of operations? output an xml island, and databind it to some controls, then post the xml back to the server, seehttp://www.w3schools.com/xml/xml_data_island.asphttp://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/xml/xml_data_islands/default.asphttp://msdn.microsoft.com/workshop/author/dhtml/reference/objects/xml.asp?frame=true
      

  6.   

    saucer大哥:
        见笑了,小弟英文太差,有中文的介绍么?
      

  7.   

    创建的xml在服务器上的是么?可以用JS操作这些xml么?
      

  8.   

    我上面的想法是想改进我的考试系统,目前的情况是,每做一道题就要提交一次,很多用户的时候就非常不好了,速度非常慢.
    如果这个想法可行,就可以在考试之前,把试卷都加载到客户端,而考试的过程中只在本地操作,不跟服务器进行交互,直到最后的提交.
    照思归大哥的说法,好像是把数据写到xml文档,我想问的问题就是创建的xml在服务器上的是么?可以用JS操作这些xml么?可以实现最后把这个在客户端的xml在提交到服务器,并更新数据库?
      

  9.   

    可以将数据以数组的形式写在客户端。
    比如:
    string path=Server.MapPath("tree.mdb");
    string selSql="select * from tree";
    string connectionString="Provider=Microsoft.Jet.OLEDB.4.0; data source="+path;
    OleDbConnection mdbconn=new OleDbConnection(connectionString);
    mdbconn.Open();
    OleDbCommand mycomm=new OleDbCommand(selSql,mdbconn);
    OleDbDataAdapter myAdapter=new OleDbDataAdapter();
    myAdapter.SelectCommand=mycomm;
    DataSet ds=new DataSet();
    myAdapter.Fill(ds,"tree"); DataTable dt=new DataTable();
    dt=ds.Tables[0];
    int recCount=dt.Rows.Count;
    int fieldCount=dt.Columns.Count; string jsStr="(";
    jsStr+="[0,'',0,1,'','',0],";
    for(int i=0;i<recCount;i++)
    {
    jsStr+="[";
    jsStr+=dt.Rows[i]["ID"]+","+(Char)34+dt.Rows[i]["name"]+(Char)34+","+dt.Rows[i]["parentid"]+","+dt.Rows[i]["NODETYPE"]+",'','',1";
    jsStr+="],";
    }
    jsStr=jsStr.Substring(0,jsStr.Length-1);
    jsStr+=")"; Response.Write("<script language='javascript'>var records=new Array"+jsStr+";</script>");