最近遇到一件恶心的事情,客户给了一份表格,表格大概有7张子表组成,每张子表有大概8~20列不等,30行左右的数据。
客户希望按照这个表格作一样的页面,以便能用web页面取代值钱excel表格的工作。。
这一下可麻烦了,我一个页面里有7个div层,用7个标签表示7个表,每个div引用一个子页,每个子页一张表,大概几百个text框要填写。这样用标签模拟excel表格底下的标签,text框作为单元格,这一下可麻烦了,虽然做了延迟加载,点哪个子页,哪个子页才加载,但是就是只有一个页面,几百个text,每当鼠标拖动滚动条或者想在某一个text框里写点东西都要延迟1~2秒如果7个页都加载完成的话过去听说js太多导致浏览器执行缓慢,现在知道了元素太多也可以导致谁来分析一下慢的原因?另外我知道肯定有折中方法能达到很快的速度,几百个数据提交到服务器上快慢不谈,我就想要页面在客户端浏览器内修改个text框,拖动下滚动条能和其他页面一样快,一般你们是怎么处理的?

解决方案 »

  1.   

    dom 过大了,我想最好和用户充分沟通,找一种变通方案,比如用户先用excel做好保存成csv格式,然后上传保存到数据库
      

  2.   

    几百个TEXT框要填写 形式主义害死人啊。。
      

  3.   

    可以采用dhtmlxGrid加dhtmlxTabbar试一下;
    另外可以改变一下界面加载方式,比如采用向导式,这样每次加载的数据量就少很多了。
      

  4.   

    一个太慢 多用iframe处理一下+div 
    提交数据是用js控制每个iframe的form.submit()
    这样才快
      

  5.   


    我们是用Excel导入,其实是这样,客户的数据用Excel导入不能直接存储到数据库,还要经过页面,因为Excel中有些数据可能是错误的,需要在真正存储到数据库之前进行逐个验证,所以点击导入,选择Excel文件,“确定”之后的下一个页面是所有几百项数据都在页面填好的页面,点击“提交”才是真的保存,如果Excel个别数据错误,比如该填写的缺失,那么这份数据不完整,要在页面校验,填写完整才让提交。
      

  6.   


    其实他们并不真的会填这些数据,我刚才也说了,他们会通过Excel导入,导入之后所有数据在表格中已经填写好了,然后修改个别不合格的数据。
      

  7.   

    如果只是修改的话最好可以分页,一个html不要太大。然后你可以看一下EXTJS中的Grid的sample
    最初显示table 点击需要修改的记录可以修改