仅在数据未加载时使用AJAX加载数据?

3
我需要为我的JavaScript应用程序加载数据。我想要加载以下内容:
  • 用户列表JSON
  • 里程碑JSON
  • 标签JSON
  • 用户ACL权限JSON
这4个作为JSON格式从服务器上获取的数据应该使用AJAX进行加载,但仅需加载一次。
所以我需要编写代码来检查数据是否已经加载,如果已加载则使用它。 如果尚未加载,则会发出AJAX请求并加载数据,然后使用它。
我有多个JavaScript文件需要访问此数据,因此我希望确保它们中的任何一个都可以访问它,并且调用它的脚本将首先使用AJAX加载它并使其可供其他脚本调用,而无需多次重复AJAX请求。
我该如何使用JavaScript和jQuery实现这一点?
如果没有设置其中任何一个,则使用AJAX加载它们。 在AJAX加载后,为下一个调用者设置这些变量,以便他们可以在不进行新的AJAX请求的情况下访问它们...
var userList = userJsonData;

var milestoneList = milestoneJsonData;

var tagList = tagJsonData;

var useAclPermissions = useAclPermissionsJsonData;
2个回答

1

只需将数据存储在一个全局的JavaScript变量中,在页面加载时将其设置为null。第一个加载数据的脚本将其存储在变量中,所有其他脚本尝试访问变量的内容,如果未设置,则加载它:

var milestoneData = null;

function getMilestoneData() {
  if (milestoneData === null) {
     //make the ajax request, and populate milestoneData variable
  } else return milestoneData;
}

0

根据can i use,您可以查看localstorage,也称为WebStorage。如果您可以使用它,它可能会解决您的问题。有一个jQuery插件可用。jstorage是一种替代方案,并且在页面底部有一个非常简单的示例。希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接