我做了一个只有一个页面的简单的dwr即时聊天程序,在此页面里的onload里加入了dwr反转的代码dwr.engine.setActiveReverseAjax(true);,问题出现了,如果不加此代码一切正常,加了之后页面就会不停的请求后台,ie的状态栏上的进度条一直保持与服务器连接状态,而且选项卡上的ie图标也不停的刷,等一次连接完了紧接着又练一次,无限循环,我后来在web.xml里加了dwr的初始化配置<param-name>timeToNextPoll</param-name><param-value>30000</param-value>之后,30秒钟连接一次,之前自己想出了一个办法但是不行,就是发送消息时把setActiveReverseAjax置为true,等消息接收完后再置为false,但是失败,有没有好的办法看不到状态栏刷新的效果并且选项卡的图标不让其刷

解决方案 »

  1.   

    把web.xml和dwr.xml文件内容帖出来看看.
      

  2.   


    1】web.xml的dwr配置
    <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
             <param-name>activeReverseAjaxEnabled</param-name>
             <param-value>true</param-value>
            </init-param>
    <init-param>
    <param-name>pollAndCometEnabled</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>initApplicationScopeCreatorsAtStartup</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>maxWaitAfterWrite</param-name>
    <param-value>500</param-value>
    </init-param>
    <init-param>
    <param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>
    <param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>
    </init-param>
    <init-param>
    <!-- <param-name>disconnectedTime</param-name>
    <param-value>30000</param-value> -->
    <param-name>timeToNextPoll</param-name>
    <param-value>30000</param-value>
    </init-param>
    <init-param>
    <param-name>maxCallCount</param-name>
    <param-value>1000</param-value>
    </init-param>
    <init-param>
    <param-name>scriptSessionTimeout</param-name>
    <param-value>1800000</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    2】dwr的配置
    <allow>
    <create creator="new" javascript="BubbleRemindUtil" scope="session">
    <param name="class" value="message.util.BubbleRemindUtil"/>
    </create>
    <convert converter="bean" match="basic.BasicAffiche">
    <param name="exclude" value="afficheDate,afficheAuditDate"/>
    </convert>
    </allow>
      

  3.   

    dwr框架会给每个页面生成一个scriptsession对象,要通过这个对象实现 点对点聊天