ext2.0里面有一个非常好用的gird控件,在实际使用的时候grid的数据肯定都是通过ajax请求去服务器上取的,这里对于显示gird有两种方式,第一种是不需要做页面,直接根据返回的数据将gird画到制定容器中,这种方式存在一个问题就是如果页面上不仅仅有gird,则其他的一些内容也得用js画出来,倘若页面结构复杂,js将变得异常恐怖,好处就是不需要做页面,而且也只需要一次请求。第二中方式是首先异步的向服务器请求页面,然后将返回的页面内容append到制定容器中,接着向服务器请求数据画grid,这种方式在页面结构复杂的时候很好用,因为无论界面多复杂都可以用html直接表现出来,缺点就是需要向服务器请求两次,服务器的负担一下子翻了一倍,而且服务器端的代码也更多了。之后想到了一个变通的办法,在采用第二种方式的情形下可以做到只向服务器端请求一次,但是个人感觉做法比较恶心,但是性能功能好了,这里面就存在一个鱼与熊掌的问题了。做法大概是下面这样的,在向服务器发起请求的时候将页面和数据一起写在返回的页面中,只是数据部分包在一个隐藏的自定义标签中,当页面dom加载完毕后,用js读取这一部分的数据,然后用这部分来画grid。用这种方式就得将ext中的reader,HttpProxy等gird底层与读取数据相关的类重新封装一下,现在还存在一个小问题就是分页的问题,不过现在已经确定了不用这种方案,准备用比较优美一点的请求两次的方式,所以也不需要继续去研究分页控件的代码了,等有时间再去看吧。
Leave a Reply