只有在尚未加载的情况下才使用AJAX加载数据?

时间:2015-10-17 00:21:36

标签: javascript jquery json ajax

我需要为我的JavaScript应用加载数据才能使用。我想加载以下内容:

  • userlist JSON
  • 里程碑JSON
  • 标签JSON
  • 用户ACL权限JSON

服务器作为JSON的这4项数据应使用AJAX加载,但只加载一次。

所以我需要检查数据是否已经加载的代码,如果是,请使用它。如果它尚未加载,它将发出一个AJAX请求并加载数据,然后使用它。

我有多个需要访问此数据的JavaScript文件,因此我想确保其中的任何一个都可以访问它,并且一旦首先调用它,将使用AJAX加载它并使其可供其他脚本调用它没有多次重复AJAX请求。

我怎样才能使用JavaScript和jQuery进行此操作?

一个基本的例子将是超级赞赏和有用的。谢谢

如果未设置其中任何一项,请使用AJAX加载它们。使用AJAX加载后,为下一个调用者设置这些变量来访问它们而不需要新的AJAX请求...

var userList = userJsonData;

var milestoneList = milestoneJsonData;

var tagList = tagJsonData;

var useAclPermissions = useAclPermissionsJsonData;

2 个答案:

答案 0 :(得分:1)

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

var milestoneData = null;

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

答案 1 :(得分:0)

根据can i use,您可以查看localstorage aka webstorage。如果您可以使用它,它可能会解决您的问题。有一个jQuery plugin可用。 jstorage是另一种选择,在页面底部有一个非常简单的示例。希望这可以帮助。