WEB开发网
开发学院网页设计JavaScript 模式 + GWT + Ajax = 易用性 阅读

模式 + GWT + Ajax = 易用性

 2009-09-12 00:00:00 来源:WEB开发网   
核心提示: 我还需要地区列表框(见 RegionList 类),它的内容应该取决于当前选择的国家,模式 + GWT + Ajax = 易用性(7),全世界有几千个地区,获取所有地区是不实际的,注意,如果代码请求预抓取已经获得的页面,为了实现缓存(见 RegionListWithCache 类),我使用一个散

我还需要地区列表框(见 RegionList 类),它的内容应该取决于当前选择的国家。全世界有几千个地区,获取所有地区是不实际的。为了实现缓存(见 RegionListWithCache 类),我使用一个散列映射;当国家改变时(见 changeCountry 方法),首先检查是否已经获取了这个国家的地区。

最后一个示例(见 CitiesGrid 和 CitiesGridWithCache)有点复杂。地区可以有许多城市,所以信息必须分页显示。我使用一个散列映射作为类属性,但是必须构造一个包含国家、地区和页面起点的键,见 LoadCities 方法。

模式:预抓取

当需要从服务器向客户机发送大量数据时,需要采取某种措施。如果提前知道用户将要请求哪些信息,可以使用 Ajax 机制提前请求数据。不一定总能提前猜出用户将要请求什么,所以可能会犯错误,取得一些不需要的数据;必须权衡考虑这种风险和不采用预抓取时肯定会出现的延迟。

但是要注意:不要太过分,不要预抓取所有东西,否则会适得其反!自从低带宽的拨号调制解调器时代以来,浏览器一直限制客户机-服务器连接的数量。这个限制甚至影响了 Hypertext Transfer Protocol (HTTP) 1.1 标准(“一个客户机到任何服务器或代理的连接数量不应该超过两个”)。如果您向主机发送多个请求,只有两个请求会(同时)发出,其他请求会排队,这会导致比一般情况下更长的延迟。

CitiesBrowserWithCacheAndPreFetching 展示实现预抓取所需的修改。首先,修改 loadCities 方法,让它不要总是一装载数据就马上显示在屏幕上:在预抓取时,不显示任何数据。第二,当显示一个页面时(见 showCities 方法),预抓取下一个页面(这是符合逻辑的猜测),但是不显示它。最后,当用户选择一个国家和地区时,预抓取前两个页面以备显示,见清单 4。注意,如果代码请求预抓取已经获得的页面,实现的逻辑会避免不必要的服务器调用。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:模式 GWT Ajax

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接