局部刷新 != 局部提交
最近也尝试着使用了UpdatePanel.总体感觉它只给了我不"刷新"页面的感觉!我这里说的不刷新只是指没有闪屏,白屏.
其它说是提高了速度,暂时没有体现出来! 可能是没有充分使用到ScriptManager和UpdatePanel的功能.
我也发现一个问题,使用UpdatePanel,其实还是进行整页提交到服务器(这一点可以从服务端可以访问非UpdatePanel中的数据来判断). 只是在获取服务器数据,进行更新的页面的时候,只更新了UpdatePanel内的内容. 要说UpdatePanel减少了数据传输量,只能说是从服务器到页面的传输中. 在页面提交到服务的过程中,非但没有减少,还是略有增加的! 因为提交到服务器的过程中,在请求中添加了一些有关局部刷新所需要的指令数据.
所以,如果有这么一种情况,一些查询条件,及一个显示查询结果的TABLE. 且查询条件有一个三级联动.
之前我的做法是将查询结果放在一个UpdatePanel中,查询条件放在一个UpdatePanel中. 初衷是三级联动只刷新条件中的UpdatePanel,不会刷新大数据量的结果中的UpdatePanel.
这种初衷表面上是达到了.但是实际上,三级联动提交页面请求的过程中,还是将大数据量的页面整页提交到服务器了.
这是一个很耗带宽的浪费.
所以,UpdatePanel不是万能,我们还是得手动编写JavaScript来实现某些刷新或数据加载!