解惑

解己之惑,解人之惑

日:2005年6月8日

优化tomcat

主要是修改http Connector的一些参数,我认为比较主要的有:
maxThreads:可以创建的用来处理请求的最大线程数,这个是在服务器负载没有完全发挥出来时可以调整的最重要的参数,默认是200,建议可以开到500左右。
bufferSize:请求的输入流的缓存大小,默认是2K,建议可以开到10K左右,特别是对于发布大文本内容而言。
connectionTimeout:连接超时的时间,默认是60秒,建议修改为20秒

在其它的地方覆盖元素已经有的事件处理

在某些情况下我们可能需要修改某个表单元素的事件处理机制,但是原有的代码可能不能修改,那么我们可以在原有的代码的后面增加新的代码并覆盖以前的事件处理代码:
<script language="JavaScript" for="elementID" event="eventName">
 …
</script>
 
 这段代码应该位于整个文件的末尾,这样才能比较好的保证可以覆盖已有的事件处理,当然使用这个也可以添加事件处理。
这样的坏处是事件处理和对象分离,如果是别人维护你的代码,他可能会不知道你的事件处理代码到底是怎么加的。不过这个技巧对于开发的灵活性是有很大帮助的,而且可以以一种plugin的方式动态的增加事件处理,而不用在原有的生成elements的地方加判断,可以加在其它的不影响代码阅读的地方。

给body添加事件处理

今天发现可以给body或者其它的element添加事件处理器而原来的可以保留,但是ie和netscape的不兼容,就自己写了一个兼容两种方式的:
 function attachWindowEventHandler(event,func)
  {
    if(navigator.appName == ‘Netscape’)
    {
          window.addEventListener(event,func,false);
   }
   else
   {
         window.attachEvent(‘on’+event,func);
   }
 }
 不知道有没有可以兼容IE和Netscape的javascript?不过现在Netscape的使用范围太小了,可能性不大。

修正了不能留言和查看更多的bug

安装blog的时候忘了在服务器上修改server.xml的配置,今天上网找了一下发现很多人也遇到相同的问题,其实解决也很简单,就是将HTTP Connector和AJP 1.3 Connector的URIEncoding参数都设置为UTF-8,对于apache+tomcat的应用而言,千万不能忘记设置AJP 1.3 Connector的参数,因为一般都是通过这个Connector处理请求的,单纯的使用tomcat的可能没有问题。

不能浮躁

拿到一个新的任务的时候我们往往马上就开始干,特别是曾经接触过的内容,只要是自己感觉可以做,往往就不管三七二十一开始写代码,现在想想很不应该,拿到新的任务,先要研究一下难度,有没有难点和可能的潜在问题,什么样的方案比较好,灵活性、通用性以及可扩展性方面,另外就是看看系统中是否已经有其它的现成的代码。
每个项目我感觉应该有一个公共的功能库,不光是减轻开发的工作量,对于程序的稳定性,可维护性也是莫大的提高,但是往往有两个问题:
一、不愿意用别人写的代码,自己总觉得自己的代码比别人好。…

© 2025 解惑

本主题由Anders Noren提供向上 ↑