2006-06-16

Cocoon的sitemap引擎

Cocoon有两种不同的sitemap引擎,一种是编译(compiled)过的,另外一种是解释型(interpreted)的。两个都在Cocoon的配置文件$CATALINA_HOME/webapps/cocoon/cocoon.xconf里被定义,其中编译过的版本是cocoon默认的sitemap engine(check-reload和reload-method的值都为yes)。Cocoon监视sitemaps,当发现sitemaps发生变化时,Cocoon会重新加载配置文件。当Cocoon重新载入sitemap时,可以以同步或异步两种不同的方式来工作。

同步重载入:

  1. Cocoon接收一个请求

  2. Cocoon检测到从上一个请求后sitemap发生了变化,重新去编译sitemap

  3. 请求被搁置直到sitemap编译完成

  4. 编译完成,请求被处理,结果返回给客户端


异步重载入:

  1. Cocoon接收一个请求

  2. Cocoon检测到从上一个请求后sitemap发生了变化,重新去编译sitemap

  3. 请求按照旧的sitemap配置来处理,结果返回给客户端

  4. 新接收的请求仍旧的sitemap来处理,直到编译新的sitemap完成


通常对于开发人员比较偏爱同步载入的方式,否则开发人员不能立即看到修改配置文件后的结果,但是缺点是根据sitemap的大小和处理器的能力,这个过程有可能比较慢。值得注意的是,在同步重新载入时有可能因为正在编译sitemap而得到Cocoon的错误提示,而不是浏览器简单挂起等待编译完成。

解释型的sitemap在速度上要比编译型的sitemap快,但是默认情况下是被注释了的。

没有评论:

发表评论