是否可以 运行 我的前端脚本在后台每隔几分钟更新一次变量?

Is it possible to run a script on my frontend, in the background, that'll update a variable every few minutes?

我有一个带有下拉 select 输入字段的表单。 此 select 字段的选项最好与后端保持同步。

我在后端有一个脚本,每 5 分钟更新一次选项列表。

作为最初的简单解决方案,我在 select 文件中添加了一个 'on focus' 事件侦听器,它会触发获取请求并使用返回的列表更新下拉列表。

这个偏离路线引入了一个小的延迟,当我的菜单根据第一个下拉菜单做出反应时,总体上使用起来不愉快。

有没有办法 运行 在前端后台创建一个脚本,该脚本将获取变量的选项并每隔几分钟更新一次下拉列表?

(我使用的是 vanilla JS)

提前致谢!

您可以像这样每 10 秒更新一次:

function getOptions(){
  setInterval(async function(){
    const response = await fetch(/*whatever you want to fetch*/);  
    const options = await response.text();
    /*use the data here*/
  }, 10000);
}

你也可以做一个函数,当它使用 fetch().then() 完成获取数据时自动触发,我认为这是首选。

fetch() 可以使用 .then().catch().finally(),因此您可以 运行 在 .finally().[=16 处再次使用该函数=]