Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何在TYPO3中禁用图像旋转木马的缓存_Caching_Typo3_Typoscript_Extbase_Typo3 6.2.x - Fatal编程技术网

Caching 如何在TYPO3中禁用图像旋转木马的缓存

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

我的TYPO3扩展有一个库,可以从总库存中随机生成5张图像,例如100张图像中的5张。每次加载页面时都会随机执行此操作。只有默认情况下才会启用TYPO3缓存,因此每次都会显示相同的5个图像。由于lib位于网站的标题中(在每个页面上也是如此),所以我不想禁用缓存。如何仅禁用这一个库的缓存

打字稿:

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项。浏览器将缓存下载的图像本身