且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

7、ctemplate高级【转自1】

更新时间:2022-08-21 20:43:10

1、ctemplate高级【转自1

    Modifier(修改器),普通变量的类型(htmljs或者其他),会进行校验和编码处理,比如html类型会将&转换成&。类型有htmlpreurl queryjavascriptcssjson。如果觉得在模板变量中定义这些麻烦,可以在加载模板是使用google::Template::GetTemplateWithAutoEscaping()方法,使用自动替换模式,指定是Htmljs还是css。你可以编写你自己的modifier,来处理一些特殊的需求。

    Strip(清除器),模板中有一些空行和空白字符,在加载时,可以指定参数,是否需要清除。如google::STRIP_BLANK_LINESgoogle::STRIP_WHITESPACE

    ExpandEmitter,在ctemplate中有这个接口,这个接口是在展开模板时,输出数据用的,默认实现了std::string版本的StringEmitter,这种方式是处理完毕后,才能发送到客户端,std::string性能并不高。如果你要一个高效率的Web服务器,则可以用流式的模式。比如自己实现ExpandEmitter接口,实现数据流式发送到客户浏览器。

    字典copy,如果两个字典很类似,可以copy一个字典,然后修改,调用dict->MakeCopy()

参考

1http://hi.baidu.com/duanmuchun/blog/item/eab82273b1a8861b8701b0bd.html