SiteFactory标签解析大揭秘(一)

作者:动易网络 来源:本站原创 点击数: 发布时间:2008年07月17日

    SiteFactory发布以来,对于它所使用的名为Xpower的新模板引擎,很多人尚有疑问,为什么放着06版现成的不用,而去另行开发一套目前看起来晦涩难懂的新方案呢?下面笔者就对Xpower引擎中比较突出的特性进行一下说明,相信您看了以后,就会对上面的问题有一个答案了。

 

一:XPOWER引擎的处理流程
    首先,我们应该理清一个基础概念,SiteFactory的模板处理到底是以什么方式进行的,它的特性如何,根据下面的这张流程图,我们可以很容易的看到目前引擎的处理过程。

X-POWER模板处理引擎流程图


图片点击可在新窗口打开查看此主题相关图片如下:

 

  上图中所有方块型的部件,都是可以让用户自行定义的过程,圆形的部件则是系统内置的不可修改的处理过程。
由于Xpower引擎允许用户自定义的内容很多,就带来了非常大的灵活性和自主性,相对06版引擎,Xpower引擎输出页面的每一个字节都交给了用户进行控制,而不是封装在组件中。

 

二:标准化
  最近几年在网站界内最流行的词语就是标准化,Xpower引擎为WEB标准提供了良好的技术支持,无论是在标签内还是在模板中,都最大限度的引入了数据与表现分离的设计思想,对HTML,XHTML,直至XML,都提供了良好的支持。
也正是由于这个原因,SiteFactory版抛弃了动易一直采用的后台可视化编辑工具,而转而采用在线源码编辑与离线工具相结合的方式进行模板设计。后台可视化是一种很方便快捷的编辑方式,但正如IE和Firefox遵循了不同的标准一样,在线可视的HTML编辑器也充满了微软风格的各种特性和错误,它对代码自作主张的进行了很多不合忽标准的修正,使得本来符合标准的页面在打开编辑一次以后就错误百出。
  出于“用专业的工具做专业的事”这一基本原则,在SiteFactory中我们提供了大量的方便离线编辑的功能,比如标签数据可以下载到DW中进行编辑,页面模板本身就是HTML文件,甚至在源码编辑页面,也研发了可拖逸的标签编辑器,最大限度的简化模板编辑的难度。

 

三,数据多样性
  数据多样性是近期CMS系统的发展方向之一,简单的说就是能够提供多少种数据库读取方式,只有具备了多种数据库的读取方式,CMS才能够称的上是一个完善的产品。
  在SiteFactory的设计思想中,数据的来源没有被限制在主数据库或者某一外连数据库中,而是利用了.NET平台强大的XML转换功能,将不同数据源的数据统一转换为相同的XML格式,再进行后续处理,这样的好处就是,网站的设计人员可以完全抛开主数据库的限制,自行整合任意系统的数据到SiteFactory的前台进行显示。
如下图所示,一套SiteFactory系统可以整合多套其他系统的数据在一起进行显示,但后台数据管理还是分散在各不同系统中,有权限的用户每日只需登陆主站,即可大致了解公司的生产经营状况,而无须分别打开不同的系统。


图片点击可在新窗口打开查看此主题相关图片如下:

 


四:容错性
  正如上面所介绍,Xpower引擎是建立在XML和XSLT基础上的一种体系结构。XSLT和XML规范是一种功能强大,但格式要求非常严格的描述型语言。如果不加改进的直接使用,那入门的难度会相当高,编辑时稍有不慎变会导致整个网页出错,以前动网曾经采用过的XSLT局部模板的技术方案,就是一个明显的反面教材。
  Xpower引擎在容错性方面下了很大的工夫,在页面模板编辑器中,可以完全的忽视XSLT的任何规则要求而不会出错。在标签的容错性方面,也下了很大的工夫,一个标签的错误不会干扰到其他页面元素的解析。


五:分页
  分页是每个CMS必须面对的功能,目前Xpower引擎可以提供CMS历史上最为强悍的分页功能,灵活程度直逼代码编写的分页功能,但实现起来却如普通CMS一样容易,简单处理过程如下图:

分页标签处理流程
 
图片点击可在新窗口打开查看此主题相关图片如下:


  Xpower引擎中的分页标签模板用户可以完全自主编辑,且与具体的数据无关,页面生成引擎则根据分页标签样式和页面中数据源标签给出的分页数据进行处理后的显示。
  另一个亮点是,SiteFactory的这种分页方案,在业内首次统一了数据查询分页和内容分页这两种完全不同的分页方式,用户只需要简单的指定页面中的分页数据源,Xpower引擎即可按照该数据源给出的分页数据进行分页处理,其中分页数据源既可以指定为SQL查询的结果,也可以指定为文章字数,手动分页符号等。

 

六:标签结构
  SiteFactory的新版标签结构,相信大家都已经见识过了,如下例:
{pe.label id=”xx”
Attrib=”xx”
Color=”xx”
Titlelen=”xx”
Ishot=”xx”
Iselite=”xx”
Cachetime=”10”
Span=”div”
/}
这种参数化的标签,从根本上解决了06版以前参数说明不清晰,易读性差的缺点,每个参数都有参数名等属性,而且还可以定义枚举方式的参数,以防止入侵和恶意破坏。


七:数据源标签与内容标签
  普通内容标签,有一定的局限性,比如它在页面中必须以“块”的方式存在,我们用一个文章内容页的标签结构来说明,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:

  其中每个绿色的标签,都需要读取一次数据库,一个内容页需要读取6次数据库,而且读取的内容几乎一样,这种性能上的消耗是完全没有必要的,那么我们引入数据源标签后,页面结构可修改为:


图片点击可在新窗口打开查看此主题相关图片如下:

  这样每个页面只需要在顶部读取一次绿色的数据源内容,下面的淡蓝色数据源字段标签数据均由最上方的数据源标签中取出,而不进行数据库读取,6次数据库读取减少为1次,性能上就会有比较大的提高。

 

八:缓存
  Xpower引擎的缓存方式,非常的个性化和自由,不同于SiteWave版的统一缓存处理,SiteFactory版中缓存是根据每个标签的需求进行定义的,更新少的标签可以设定一个很长的缓存时间,而频繁更新的标签,则可以设置一个相对较短的缓存时间,甚至不对其进行缓存。

通过以上八条的说明,Xpower引擎的特性已经基本介绍完了,能否让它发挥最大的效力,则需要我们与广大用户的通力协作以达到理想的目标,后面笔者将继续以实例的形式介绍具体应用,敬请期待续集...