Caching 如何在TYPO3中禁用图像旋转木马的缓存
我的TYPO3扩展有一个库,可以从总库存中随机生成5张图像,例如100张图像中的5张。每次加载页面时都会随机执行此操作。只有默认情况下才会启用TYPO3缓存,因此每次都会显示相同的5个图像。由于lib位于网站的标题中(在每个页面上也是如此),所以我不想禁用缓存。如何仅禁用这一个库的缓存 打字稿:Caching 如何在TYPO3中禁用图像旋转木马的缓存,caching,typo3,typoscript,extbase,typo3-6.2.x,Caching,Typo3,Typoscript,Extbase,Typo3 6.2.x,我的TYPO3扩展有一个库,可以从总库存中随机生成5张图像,例如100张图像中的5张。每次加载页面时都会随机执行此操作。只有默认情况下才会启用TYPO3缓存,因此每次都会显示相同的5个图像。由于lib位于网站的标题中(在每个页面上也是如此),所以我不想禁用缓存。如何仅禁用这一个库的缓存 打字稿: plugin.tx_ExtName.widgets { Slider = USER Slider { userFunc = TYPO3\CMS\Extbase\Core\Bootstra
plugin.tx_ExtName.widgets {
Slider = USER
Slider {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName = Name
extensionName = ExtName
pluginName = Backend
controller = Customers
action = Slider
switchableControllerActions {
Customers{
1 = Slider
}
}
settings =< plugin.tx_ExtName.settings
persistence =< plugin.tx_ExtName.persistence
view =< plugin.tx_ExtName.view
}
}
lib {
slider < plugin.tx_ExtName.widgets.Slider
}
plugin.tx\u ExtName.widgets{
滑块=用户
滑块{
userFunc=TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName=名称
extensionName=ExtName
pluginName=后端
控制器=客户
动作=滑块
可切换控制器动作{
顾客{
1=滑块
}
}
设置=
在您的ext_localconf.php
中,在添加插件的地方使用configurePlugin
方法的第4个参数
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Vendor.' . $_EXTKEY,
'PluginName',
array('Customers' => 'slider',),
array('Customers' => 'slider',) // List non-cachable action(s)
);
当然,将VendorName
和PluginName
修复为您自己的。这将导致插件的动作不会被缓存,而整个页面仍会被保存在缓存中
替代解决方案
您也可以使用JavaScript实现这一点,只需在源代码中放置一个JS路径数组,并在文档加载时选择5个随机项即可避免非缓存内容。替代解决方案:
plugin.tx\u ExtName.widgets.Slider=USER\u INT
。
这确保了滑块插件始终处于未缓存状态。到底是哪一版本的TYPO3?我的解决方案是简单地接受这样一个事实,即“随机性”只会不时改变(=在缓存重建时)。由于每个页面上仍然随机不同,没有人会介意。我认为“替代解决方案”更可取,就像使用nc_staticfilecache(我发现这对TYPO3非常重要)一样,您只能缓存或不缓存整个页面。但使用此解决方案,所有100个图像都被缓存,然后显示客户端5个随机图像。我相信这会导致很多额外的带宽。因此,服务器端的随机生成。5/100-这很好,它们实际上在服务器上缓存了一次-到客户端,您应该只发送路径,然后使用JavaScript只加载5项。浏览器将缓存下载的图像本身