ajax loading 总结
1. 使用timer+ multiview, 先显示view1, 待timer中的执行完成之后,再显示view2即可. view1即loading提示内容,view2为真正要显示的内容.
可以针对整个页面使用.如果VIEW2中的内容显示失败,则显示VIEW3(错误提示),
通过模拟btn_Click,这样在page_load时候就可以调用ajax-loading. 从而可以实现整个页面上的所有postback control显示ajax-loading.
通过使用master页面,自定义一个Page基类,
可以针对button_click, gridview_pageindex触发master中的timer对象,从而间接实现需要显示loading的服务器控件
如果需要做成框架化,即只要是postback事件,则显示ajax-loading. 也许可以通过httphandler实现.不过网上也应该有类似的框架了.
2. 使用http://msmvps.com/blogs/omar/archive/2007/11/09/on-demand-ui-loading-on-ajax-websites.aspx
中说的技术,即将内容放在另一个网页,然后在主页面中使用xmlhttp调用内容,然后输出到主页面的div中.此方法可以将一个页面分成
多个部分同时异步调用,效果很好.而且能单独load某个部分,做到partial render. 可以针对整个页面使用. 同时输出某一部分之后,提示当前加载进度.
示例: www.dropthings.com
3. 使用updatePanel/UpdateProgess刷新局部内容,如一个查询按钮.同时可以结合ModalProgess或UpdatePanelAnimationExtender产生一些效果,
如禁用当前背景页面.针对局部页面使用.
4. 使用ajax的控件.如calendarExtender, autoComplete. cascading dropdownlist. 针对单个控件使用.
5. 另外一种应用就是扩展某些ajax-control,如使用cascading dropdownlist与user control, cache结合, 将这些几乎固定不变的数据包装成直接使用的web control,放到任何一个页面上均可以使用,也减少了代码量
涉及到的示例下载: /Files/margiex/ajax.rar
ref
使用timer的示例:
http://www.codeproject.com/KB/ajax/DelayedContentLoading.aspx
部分加载的示例
http://msmvps.com/blogs/omar/archive/2007/11/09/on-demand-ui-loading-on-ajax-websites.aspx