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

模式 + GWT + Ajax = 易用性

 2009-09-12 00:00:00 来源:WEB开发网   
核心提示: CitiesGridWithCacheAndPreFetchingAndTimer 类演示这个模式,私有的 TimedCitiesDisplay 类扩展 Timer 类,模式 + GWT + Ajax = 易用性(10),在构造时,它接收一个城市列表并初始化一个迭代器;它还保存当前的国家、地区和

CitiesGridWithCacheAndPreFetchingAndTimer 类演示这个模式。私有的 TimedCitiesDisplay 类扩展 Timer 类。在构造时,它接收一个城市列表并初始化一个迭代器;它还保存当前的国家、地区和页面,以便在以后检查是否必须继续处理。run() 方法处理一批城市;如果还有更多的城市,它会调度下一次运行,下一次运行从原来停止的位置开始继续处理,如图 5 所示。

图 5. 在处理过程期间显示城市(一些城市还没有装载)

模式 + GWT + Ajax = 易用性

图片看不清楚?请点击这里查看原图(大图)。

为了让这个解决方案工作顺畅,要研究每一步可以执行的最大工作量和各步之间的时间间隔。如果采用大量短步骤,那么计算机的响应性更好,但是也意味着要等待更长时间才能得到所有数据。但是,如果步骤长,可能导致 “busy script” 消息,这也不好。必须通过试验找到最佳折衷点。

GWT 自己的延期命令

延期命令(Deferred command) 是 GWT 特有的特性,它可以提供更好的解决方案。延期命令排队等待,当处理器空闲时执行,见清单 6。解决方案:把处理划分为短的步骤,但是用延期命令替代 Timer。GWT 会决定什么时候运行下一个计算步骤。

清单 6. 用延期命令模拟线程

   
define a class that extends IncrementalCommand: 
  define attributes so it can save its parameters 
  define attributes so it can save local variables from run to run 
  define attributes so it can save form field values 
 
  on construction: 
    save the received parameters 
    initialize local variables for the process 
    save the current form field values 
    display a "loading" message 
 
  execute() method: 
    if the current form field values match the saved values: 
      execute some process, updating the local variables 
      if there's still more work to be done 
        return true, so it will run again shortly afterwards 
      otherwise, 
        return false (the job is done) 
    otherwise, 
      return false (situation changed) 
 
whenever you want to simulate a thread with a deferred command: 
  create an object of the new class above, with appropriate parameters 
  use the addCommand() to add your new object to the processing queue 
      

CitiesGridWithCacheAndPreFetchingAndDeferredCommands 类演示这个模式。它与计时器解决方案的主要差异是命令排队等待,如果必须把处理发送回队列等待下一次运行,那么 execute() 方法返回 True。

这个解决方案比计时器解决方案灵活,因为如果用户不做任何事情,它会全速运行,同时不会影响计算机的响应性。但是,不要做得太过分。

结束语

本文讨论了一些设计模式,它们通过在后台使用 Ajax 技术提高 GWT 应用程序的速度。提供了一些解决方案来克服常见的 JavaScript 限制(比如缺少线程),降低向服务器请求数据时的时间延迟(通过预抓取、缓存和在客户机本地预检验)。GWT、Ajax 和一些模式有助于提高应用程序的速度,增强它的易用性,为用户提供响应性更好的网站。

本文示例源代码或素材下载

上一页  5 6 7 8 9 10 

Tags:模式 GWT Ajax

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