我正在尝试使用外部脚本文件中的 $.get() 函数从我服务器上的文本文件加载数据。我的代码如下:
/*
* Load sample date
*/
var stringData;
$.get("http://localhost/webpath/graphing/sample_data.txt", function(data){
stringData = data;
//alert("Data Loaded: " + stringData);
});
//Split values of string data
var stringArray = stringData.split(",");
alert("Data Loaded: " + stringData);
当我在 $.get() 函数中时,我可以看到 stringData var 得到了很好的填充,并且对 alert 的调用确认它包含示例文本文件中的数据。但是,当我离开 $.get() 函数时,stringData var 不再显示。我不太了解这个函数是如何工作的,不知道为什么它没有按我预期的那样工作。我想让它做的就是将文本数据加载到一个变量中,这样我就可以使用它了。感谢您的帮助。
最佳答案
get 是异步的,这意味着它调用服务器并继续执行其余代码。这就是为什么你有回调方法。无论您打算对返回数据做什么,都在回调方法(您放置警报的位置)中进行。
get、post都是异步的。您可以使用
进行同步调用使用
$.ajaxSetup({ async: false });
代码中的任何位置。这将影响您代码中的所有 ajax 调用,因此请小心。$.ajax
使用async: false
例如如下所示。
查看下面的代码和上面提到的 API 文档链接来解决您的问题。
/*
* Load sample date
*/
var stringData = $.ajax({
url: "http://localhost/webpath/graphing/sample_data.txt",
async: false
}).responseText;
//Split values of string data
var stringArray = stringData.split(",");
alert("Data Loaded: " + stringData);
关于javascript - jQuery加载文本文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6338797/