Javascript 浏览器刷新时的数据复制-Nodejs
我正在使用和Nodejs将选项列表加载到我站点上的下拉框中。每次刷新页面时,我都会在下拉框中获得重复的数据。如何防止这种情况。我希望我的问题是清楚的 您可以在下面的html代码片段中看到我是如何使用Mustache的Javascript 浏览器刷新时的数据复制-Nodejs,javascript,node.js,mustache,Javascript,Node.js,Mustache,我正在使用和Nodejs将选项列表加载到我站点上的下拉框中。每次刷新页面时,我都会在下拉框中获得重复的数据。如何防止这种情况。我希望我的问题是清楚的 您可以在下面的html代码片段中看到我是如何使用Mustache的 <div class="cd-filter-block"> <h4>Branches</h4> <div class="cd-filter-content">
<div class="cd-filter-block">
<h4>Branches</h4>
<div class="cd-filter-content">
<div class="cd-select cd-filters">
<select class="filter" name="selectThis" type="radio" id="branches">
{{#branches}}
<option>{{name}}</option>
{{/branches}}
</select>
</div>
</div>
</div>
每次在服务器上调用
ListBranchs()
时,您都会向filelist
数组中添加更多的项,因此项将累积在该变量中,并且由于ListBranchs()
返回该变量,因此每次调用该变量时,它将返回一个越来越长的数组
我并不完全清楚您的代码试图做什么,但您至少可以通过更改以下内容来解决该问题:
var filelist = [];
function listBranches() {
var files = glob.sync(path).filter(isFolder);
for (var i = files.length - 1; i >= 0; i--) {
filelist.push({
name: files[i].split('/')[3],
});
};
return filelist;
}
为此:
function listBranches() {
var filelist = [];
var files = glob.sync(path).filter(isFolder);
for (var i = files.length - 1; i >= 0; i--) {
filelist.push({
name: files[i].split('/')[3],
});
};
return filelist;
}
请记住,服务器上的模块级或全局变量从一个请求持续到下一个请求,并由所有请求共享。因此,不要使用模块级变量,除非这是预期的行为。非常感谢,我非常感谢您的回答。它成功了,我现在知道如何做了,以备将来参考。非常感谢:)
function listBranches() {
var filelist = [];
var files = glob.sync(path).filter(isFolder);
for (var i = files.length - 1; i >= 0; i--) {
filelist.push({
name: files[i].split('/')[3],
});
};
return filelist;
}