模式 + GWT + Ajax = 易用性
2009-09-12 00:00:00 来源:WEB开发网我还需要地区列表框(见 RegionList 类),它的内容应该取决于当前选择的国家。全世界有几千个地区,获取所有地区是不实际的。为了实现缓存(见 RegionListWithCache 类),我使用一个散列映射;当国家改变时(见 changeCountry 方法),首先检查是否已经获取了这个国家的地区。
最后一个示例(见 CitiesGrid 和 CitiesGridWithCache)有点复杂。地区可以有许多城市,所以信息必须分页显示。我使用一个散列映射作为类属性,但是必须构造一个包含国家、地区和页面起点的键,见 LoadCities 方法。
模式:预抓取
当需要从服务器向客户机发送大量数据时,需要采取某种措施。如果提前知道用户将要请求哪些信息,可以使用 Ajax 机制提前请求数据。不一定总能提前猜出用户将要请求什么,所以可能会犯错误,取得一些不需要的数据;必须权衡考虑这种风险和不采用预抓取时肯定会出现的延迟。
但是要注意:不要太过分,不要预抓取所有东西,否则会适得其反!自从低带宽的拨号调制解调器时代以来,浏览器一直限制客户机-服务器连接的数量。这个限制甚至影响了 Hypertext Transfer Protocol (HTTP) 1.1 标准(“一个客户机到任何服务器或代理的连接数量不应该超过两个”)。如果您向主机发送多个请求,只有两个请求会(同时)发出,其他请求会排队,这会导致比一般情况下更长的延迟。
CitiesBrowserWithCacheAndPreFetching 展示实现预抓取所需的修改。首先,修改 loadCities 方法,让它不要总是一装载数据就马上显示在屏幕上:在预抓取时,不显示任何数据。第二,当显示一个页面时(见 showCities 方法),预抓取下一个页面(这是符合逻辑的猜测),但是不显示它。最后,当用户选择一个国家和地区时,预抓取前两个页面以备显示,见清单 4。注意,如果代码请求预抓取已经获得的页面,实现的逻辑会避免不必要的服务器调用。
- ››模式作用域:初级读本和最佳实践
- ››ajax调用后台页面怎样区别ID
- ››Ajax+jQuery实现LightBox与服务器通信
- ››AJAX中利用javascript的split函数处理responseTex...
- ››AjaXplorer 2.6.1 发布,远程文件管理
- ››AJAX + SVG 实现实时监控图表
- ››AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:...
- ››AJAX也有安全隐患 谈谈AJAX的安全性
- ››ajax+asp.net+mssql无刷新聊天室
- ››AJAX中文问题[转]
- ››ajax如何将返回值赋值给js里面的变量们?
- ››ajax 在updatepanel中使用alert提示方法
更多精彩
赞助商链接