Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当数据尚未加载时才使用AJAX加载数据?_Javascript_Jquery_Json_Ajax - Fatal编程技术网

Javascript 仅当数据尚未加载时才使用AJAX加载数据?

Javascript 仅当数据尚未加载时才使用AJAX加载数据?,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我需要加载JavaScript应用程序要使用的数据。我想加载以下内容: 用户列表JSON 里程碑JSON 标记JSON 用户ACL权限JSON 这4项来自服务器的JSON数据应该使用AJAX加载,但只加载一次 所以我需要代码来检查数据是否已经加载,如果已经加载,就使用它。如果尚未加载,它将发出AJAX请求并加载数据,然后使用它 我有多个JavaScript文件需要访问这些数据,所以我想确保其中任何一个都可以访问它,并且无论哪一次首先调用它,都将使用AJAX加载它,并使其他脚本可以调用它,而无

我需要加载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;

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

var milestoneData = null;

function getMilestoneData() {
  if (milestoneData === null) {
     //make the ajax request, and populate milestoneData variable
  } else return milestoneData;
}
根据你可以查看aka webstorage。如果你能使用它,它可能会解决你的问题。有一个可用的。是另一种选择,在页面底部有一个非常简单的示例。希望这有帮助