JavaScud | Forum | JIRA | Blog |
  Dashboard > DWR中文文档 > Home > Hints and Tips
  DWR中文文档 Log In View a printable version of the current page.  
  Hints and Tips
Added by 黑灵, last edited by 黑灵 on Sep 25, 2006
Labels: 
(None)

使用DWR的一些技巧

这里有些东西可以帮你使用DWR。如果你也有什么使用技巧,也添加进来吧。

创建一个"Google Suggest"组件

我不建议你做自己的suggest组件。让一些基础的东西工作起来是很容易的,但是让键盘导航正常的工作却不那么容易。有一些库里面已经包含的suggest组件:

Script.aculo.us 里有一个 Autocompleter.Local 函数,可以和DWR整合起来。让Local版的组件和DWR的远程调用结合起来要比直接让Remote版的组件工作起来更容易一些,因为Remote版的组件一般对服务器上的工作又特殊要求。你会可以在DWR的用户邮件列表中找到相关的信息,也可以看Rubens的blog

另外,Rimu Hosting的Peter实现了一个自己的Suggest组件,也是可以和DWR一起用的,查看这里

增强文件上传

Pierre Losson写了一个如何把DWR和Commons-Fileupload组件结合起来的文章。很不错,并且源码和演示都有。

改进加载信息

DWR 1.0 中的useLoadingMessage()函数有点问题,你可以自己定义这一信息,但是要小心调用。你也可以把这个函数中的问题修正一下。更多信息可以参看useLoadingMessage()的文档

使用Server控制台

DWR可以报告出详细的错误信息,这些信息可以帮你找出你的程序错在哪里。如果你的程序出现什么异常,你应该仔细查看你的web容器开始或运行过程中出现的错误信息。一般错误信息会在WARNING或ERROR级别,但是INFO级别的信息也很有用。

如果你的log信息中又什么错误,但是你想知道的更详细的信息,可以查看INFO级别的信息,因为有时错误信息和后台信息会被一起输出到log里。

使用debug/test页面

debug/test页面对于查找错误也很有用。查看

http://localhost:8080/[YOUR-WEBAPP ]/

开始指南中有基本使用方法。但是一定要记住在发现错误时可以在这些页面找到有用的信息。

访问HttpServletRequest

详细参见这里

向回调函数传递参数

通常我们需要把额外的信息传递给callback函数,但是所有的callback函数只有一个参数(远程方法的返回码),这就需要一些技巧了。这里有一整篇文章阐述这个问题。

服务器性能优化

CPU瓶颈:经过严格的测试DWR的性能没什么问题。DWR上性能消耗同web服务器和网络比起来可以忽略不计。如果你真的需要提升DWR的性能的话,可以把log级别设置ERROR或FATAL,但是主要还是要看你的编码情况。

Network瓶颈: DWR没有管理你的浏览器缓存的功能,所以它会不断的重复读取DWR的javascript文件。这里有一个简单的解决办法,把javascript文件复制到你的web-app中,这样web服务器就可以更好的利用它了。你也可以考虑把所有的javascript文件合并成一个文件,然后用DOJO的压缩程序处理一个来节省流量。

我们可以做一个补丁,让DWR在web-app启动的时候用时间做为javascript文件的时间戳,但是这个并不十分重要,因为上面的补丁太简单了而且可以压缩合并Javascript文件。

Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators