如何阻止 Cloudflare Workers 缓存响应?

How to stop Cloudflare Workers from caching response?

这是我的工人:

var myArray = [
  "q2dl3fY.jpg",
  "rLNsDHr.jpg",
  "FsvOJHJ.jpg"
];

var socialPost = myArray[Math.floor(Math.random()*myArray.length)];

addEventListener("fetch", event => {
  return event.respondWith(
    fetch("https://i.imgur.com/" + socialPost)
  )
})

我想做的就是从 Imgur 中随机抽取一张图片。脚本运行正常。

但是,结果似乎已缓存。它只是一遍又一遍地显示相同的图像,而不是在我列出的图像之间随机轮换。

However, the results appear to be cached.

不完全是。发生这种情况是因为您在整个脚本中仅 设置了 socialPost 一次 。相反,您似乎想要做的是在每次触发 fetch 事件时选择一个随机数组元素。要解决这个问题,请将 socialPost 变量的计算 放在 事件侦听器回调中:

var myArray = [
  "q2dl3fY.jpg",
  "rLNsDHr.jpg",
  "FsvOJHJ.jpg"
];

addEventListener("fetch", event => {
  var socialPost = myArray[Math.floor(Math.random()*myArray.length)];
  return event.respondWith(
    fetch("https://i.imgur.com/" + socialPost)
  )
})