是否可以 运行 我的前端脚本在后台每隔几分钟更新一次变量?
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 处再次使用该函数=]
我有一个带有下拉 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 处再次使用该函数=]