javascript - 有没有比调用多个 ajax 查询更快的方法来比较列表中的项目?
问题描述
我正在一个Sharepoint
站点上工作,并且有一个 JS 函数,如果与该项目关联的用户(一个用户可以拥有多个项目)不再有权访问该站点,则该函数可以从一系列 Sharepoint 列表中删除项目。不幸的是,因为用户的总列表被分成 3 个不同的 Sharepoint 列表,这意味着我必须对每个项目进行 3 次 ajax 调用,以查看用户是否存在于其中任何一个中。这会导致整个过程需要很长时间才能执行,尽管它确实按预期工作。有没有更快的方法来做这个比较?我应该提到我只能访问共享点列表,而不是它们从中上传的 sql 数据库,并且不能更改列表的组织。
这是我当前的代码(为了项目隐私更改了一些变量名):
function clearItems(){
var tempListname;
var modalLists = ["CList","AList","VList","WList","GList","LList"];
for(i = 0; i < modalLists.length; i++){
tempListname = modalLists[i];
urlTEMP = "../_api/web/lists/getbytitle('" + tempListname + "')/items?$top=10";
clearOldStudents(modalLists[i], urlTEMP);
}
}
var counter = 0;
function clearOldItems(listname, url){
$.ajax({ //Starts the ajax call
url: url,
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
async: false,
success: function(data) {
while(counter<data.d.results.length){
console.log(data.d.results[counter].username);
if(!isInES(data.d.results[counter].username) &&
!isInMS(data.d.results[counter].username)){
getItemC("userlis3",data.d.results[counter].username);
if(resultsClub[0] == null){
if(listname == "CList"){
deleteCItem(data.d.results[counter].Id);
}
else if(listname == "AList"){
deleteAItem(data.d.results[counter].Id);
}
else if(listname == "VList"){
deleteVItem(data.d.results[counter].Id);
}
else if(listname == "WList"){
deleteWItem(data.d.results[counter].Id);
}
else if(listname == "GList"){
deleteGItem(data.d.results[counter].Id);
}
else if(listname == "LList"){
deleteCItem(data.d.results[counter].Id);
}
}
}
counter++;
}
counter=0;
if (data.d.__next) {
url = data.d.__next;
clearOldStudents(listname, url);
}
},
error: function(data) {
alert("error");
}
});
}
、isInMS
和函数都会isInES
调用以检查学生是否在 3 个用户列表之一中getItemC
ajax
解决方案
推荐阅读
- spring-boot - Autowire Bean 和 application.yml 文件在另一个 jar 文件中
- python - 框架不显示
- visual-studio-code - 如何撤消我使用 .reg 脚本所做的事情?(标题可能会混淆,所以只需检查这篇文章的内容)
- java - 当我尝试开始我的春季项目时,我得到了这个例外......任何想法
- node.js - 为什么我的 NPM 缓存文件夹在 ./false/_cacache 中?
- c# - 我如何使用 microsoft graph 获取通话记录
- json - 保存到文件后,REST JSON 响应显示在单行中
- linux - 使用 shell 脚本操作文本文件
- java - 在 JVM 级别控制 2 的平方?
- netcdf - 使用“自以来”的时间单位解码 netcdf 数据时出现 xarray 错误