站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
EZ Publish/EZ Publish 视图缓存
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== 视图缓存智能清除 == 智能视图缓存清除系统(在本章中简称"svcs"),允许您设置自定义的规则来控制当对象被发布时,哪些节点的视图缓存应该被清除。这个特性默认被禁用,因此当某个对象被发布时,系统只会清除以下节点的视图缓存: • 这个对象的所有被发布的节点 • 父节点 • 与这个对象有相同关键字的对象节点(如果至少有一个关键字类型的属性) 此外,以下节点的视图缓存也会被清除: • “一般”类型的关联和逆向关联对象节点 • “XML 嵌入”类型的逆向关联对象节点 这是由"ClearRelationType"控制的。 如果希望启用智能视图缓存清除系统,确保"viewcache.ini"重设文件中包含以下内容: <pre> [ViewCacheSettings] SmartCacheClear=enabled </pre> 以上配置会要求系统在默认缓存清除规则的基础上,根据这个文件中的规则清除其它节点的视图缓存。这个配置文件通常包含一个通用配置"[ViewCacheSettings]"和多个特殊的章节,这些章节定义了哪些附加节点的视图缓存应该被清除。 <font color="red">注意:这些附加节点的视图缓存也会根据svcs 规则被清除(参阅例5)。</font> 这些特殊的配置章节由类标识符命名。 当一个已发布的对象被修改时,svcs 将对象的类标识符作为一个输入参数。它会检查这个对象的类标识符并在"viewcache.ini"重设文件中找与类标识符相同的章节。在匹配到的章节下定义的规则会应用到这个节点的所有祖先节点(在节点的"path_string"中列出的节点)。如果发布的对象有多个节点/位置,svcs会对它们逐个处理。以下的列表揭示了svcs 如何处理发布对象的每个节点: 1. 自下向上扫描节点"path_string"中的祖先节点(扫描的最大数由"MaxParents"配置指定) 2. 对每个祖先节点执行以下操作: • 检查节点的类标识符 • 如果标识符在"DependentClassIdentifier[]"数组中,将这个祖先节点加入到“附加节点”中 3. 如果"ObjectFilter[]"配置为空,清除附加节点的视图缓存。否则,检查附加节点的类标识符,然后之清除那些类标识符在"ObjectFilter[]"数组中列出的节点的视图缓存。在两种情况下,缓存都会通过"ClearCacheMethod[]"中定义的方法来清除。 从eZ Publish 3.9 版本开始,当特定类型的对象被修改时,还可以清除一组特定对象的视图缓存。如果"AdditionalObjectIDs[]"数组包含一组对象ID(不是节点ID),系统会清除这些对象所有位置(节点)的视图缓存,不论这些节点是否是被发布的对象节点的祖先节点。 下表详细解释了以上讨论过的各种配置。 [[Image:ezpublishSTHC2.jpg]] [[Image:ezpublishSTHC3.jpg]] '''例1''' 假设对如下的内容结构,视图缓存与svcs 都被启用: [[Image:ezpublishSTHC4.jpg]] 如果不指定任何svcs 规则,修改一篇文章会导致如下节点的视图被清除(默认的svcs 行为): • 它所有发布的节点 • 他们的父节点 • 包含相同关键字的对象节点的视图缓存 • “一般”类型的关联和逆向关联对象节点的视图缓存 • “XML 嵌入”类型的关联对象节点的视图缓存。 如果"article2"对象只有一个位置,不包含关键字且不与任何其它对象关联,那么修改它会清除文章本身以及"News"文件夹的视图缓存。"About"和"Company"节点的视图缓存不会被清除。 但是,可以通过在管理站点入口(例:admin)的"viewcache.ini.append.php“中添加如下配置来扩展系统的默认行为: <pre> [article] DependentClassIdentifier[] DependentClassIdentifier[]=folder ClearCacheMethod[] ClearCacheMethod[]=object </pre> 现在,如果一篇文章被修改,系统会根据它的"path_string"从下向上依次提取它的祖先节点("article2"的"path_string"为"/77/78/80/82/"),检查它们中哪些是文件夹节点,并清除这些文件夹节点的视图缓存。这意味着修改"article2"会导致清除"article2","News","About","Company"以及所有位于"Company"节点之上的祖先节点的视图缓存。 '''例2''' 您可以限制提取祖先节点的深度: <pre> [article] DependentClassIdentifier[] DependentClassIdentifier[]=folder ClearCacheMethod[] ClearCacheMethod[]=object MaxParents=2 </pre> 这会要求系统只处理节点的最下两级祖先节点。这意味着修改"article2"会导致"article2","News"和"About"节点的视图缓存被清除。"Company"节点的视图缓存不会被删除。 '''例3''' 您可以用"ObjectFilter[]"数组来指定一组对象ID,从而在"path_string"中列出的所有文件夹祖先节点中,只有那些对象ID 在"ObjectFilter[]"中列出的节点的视图缓存才会被清除。 <pre> ObjectFilter[] ObjectFilter[]=<object_id1> ObjectFilter[]=<object_id2> ... </pre> 假设在例1 中的"Company"对象ID 为74(它的节点ID 为77),您可以在管理站点入口(例:admin)的"viewcache.ini.append.php"中指定如下设置: <pre> [article] DependentClassIdentifier[] DependentClassIdentifier[]=folder ClearCacheMethod[] ClearCacheMethod[]=object ObjectFilter[] ObjectFilter[]=74 </pre> 如果"article2"被修改,svcs 会扫描"path_string"中的祖先节点(节点80,78,77,...)并检查它们的对象ID 是否在"ObjectFilter[]"数组中列出,因此"Company"页面会被包含在附加节点中。系统将只会清除"article2","News"和"Company"节点的视图缓存(根据默认的行为以及附加的svcs 规则)。"About"页面的视图缓存不会被清除,因为它的对象ID 不是74。 '''例4''' 如果您希望在特殊类型的对象被修改时,清除一组特定对象的视图缓存,必须在"AdditionalObjectIDs[]"数组中指定一组对象ID。假设"Archive"文件夹和"CD"商品的对象ID 为64 和69,可以在管理站点入口(例:admin)的"viewcache.ini.append.php"中指定以下配置: <pre> [article] AdditionalObjectIDs[] AdditionalObjectIDs[]=64 AdditionalObjectIDs[]=69 </pre> 这会要求系统当一篇文章(任何文章)被修改时,总是清除"Archive"文件夹和"CD"商品的视图缓存。这意味着修改"article2"会导致"article2","News","Archive"和"CD"的视图缓存。 '''例5''' 假设已经在管理站点入口的"viewcache.ini.append.php"中指定了如下配置: <pre> [article] AdditionalObjectIDs[] AdditionalObjectIDs[]=69 [product] AdditionalObjectIDs[] AdditionalObjectIDs[]=64 </pre> "[article]"配置块中的配置会要求系统当一篇文章被修改时,总是清除"CD"商品的视图缓存。这意味着。修改"article2“会导致"article2","News"和"CD"的视图缓存被清除。当清除"CD"商品的缓存时,svcs 会应用"[product]"配置块内的规则,因此"Archive"文件夹的视图缓存也会被清除。
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)