我想在每次重新加载时选择一个随机节点。我的融合文件如下所示:
strerror()
不幸的是,结果存储在缓存中。这意味着只有刷新了缓存后,才会返回一个新节点。我该如何预防?我已经对缓存规则做了一些尝试,但是我还没有想出解决方案。
答案 0 :(得分:0)
我要使用的元素在每个页面上。这就是诸如unchached
模式之类的东西真是个坏主意的原因。
在我的情况下,输出仅是字符串数组。所以我在Fusion中确实遵循了。
在Fusion中“几乎”生成一个数组
allMyStrings = Neos.Fusion:Loop {
items = ${q(node).children(Neos.Neos:Document).get()}
itemName = 'node'
itemRenderer = ${"'" + q(node).property('testString') + "'"}
@glue = ','
}
在JS中选择随机数组
<p id='replaceMe'></p>
<script>
var quoteArray = [{allMyStrings -> f:format.raw()}]
var randomIndex = Math.floor(Math.random() * quoteArray.length);
var randomElement = quoteArray[randomIndex];
document.getElementById('replaceMe').outerHTML= '<p>' + randomElement + '</p>';
</script>
有点黑,但它可以工作并且不会损害网站的性能