Javascript 如何将全局变量存储在一个ajax文件中并从另一个ajax文件中获取?
假设我有2个ajax文件。。first.js和second.js 如果我像这样在second.js中写一个全局变量-Javascript 如何将全局变量存储在一个ajax文件中并从另一个ajax文件中获取?,javascript,ajax,Javascript,Ajax,假设我有2个ajax文件。。first.js和second.js 如果我像这样在second.js中写一个全局变量- $(document).ready(function(){ var globalData = null; $.ajax(){ url: //statement, type: //statement, data: //statement, success: { success: fu
$(document).ready(function(){
var globalData = null;
$.ajax(){
url: //statement,
type: //statement,
data: //statement,
success: {
success: function(response){
// Show response
if(condition) // this condition is not a variable but a 'if condition'
{
globalData=1;
}else{
globalData=0;
}
}
}
现在,如何在first.js中获取globalData变量?如果希望变量是全局变量,请删除
var
关键字。请注意,它只在中起作用,通常是一种不好的做法。更喜欢链接异步操作,而不是在它们之间共享变量
实际上,通过编写这种代码,您永远不会知道是否设置了变量
在这方面非常有用,除此之外还有一种选择:
下面是一个简单的示例,说明如何使用全局数据库来确保数据在需要时存在:
// first.js
const first = fetch(firstUrl, { method: ..., body: ... }).then(x => {
// Some logic
return globalData;
});
// second.js
const second = first.then(globalData => fetch(secondUrl, { method: ..., body: ... }));
在本例中,我保留了
globalData
名称,以显示它与您的代码是如何等效的,但它不再准确,应该更改以提高清晰度。您能告诉我们您需要什么吗?而不是如何实施解决方案?为什么需要共享这些变量?也许我们可以找到更好的解决方案。globalData
并不像你想象的那样全球化。@HassenCh。在我的second.js中,我用它来验证用户名是否可用,然后在提交表单可用的first.js中,我想用这个全局变量来检查用户名是否可用,如果不可用,则禁用表单提交按钮。否则让用户提交。这就是问题所在logic@Andy你能告诉我怎么解决吗?@jerry你用错了方法。您应该将“username”参数传递给一个函数,该函数将检查它是否可用。然后使用该输出来确定是否应该让用户提交表单。使用“全局”变量是完全错误的。您能展示一个关于如何获取全局变量的小代码示例吗?我的建议就是不要使用全局变量,但如果您想这样做,只需删除var
传统方法是使用对象名称空间。