javascript - jQuery加载文本文件数据

标签 javascript jquery

我正在尝试使用外部脚本文件中的 $.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都是异步的。您可以使用

进行同步调用
  1. 使用 $.ajaxSetup({ async: false });代码中的任何位置。这将影响您代码中的所有 ajax 调用,因此请小心。

  2. $.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/

相关文章:

javascript - jsTree Contextmenu 获取选中的节点id

javascript - 使用 momentjs 获取以毫秒为单位的时间跨度

javascript - 平滑滚动以搜索栏输入并在比较案例值时排除表达式的字母

javascript - AngularJS 是否可以直接使用通过 html 范围注入(inject)的服务?

javascript - 更快地找到具有频率值的二维关键字数组的出现

javascript - 如何在 jQuery Datepicker ui 中阻止多个日期范围

javascript - 防止代码被利用,保护 Javascript 和表单

javascript - 在javascript中仅返回给定字符串中的数字

javascript - jQuery 函数声明说明

javascript - 检查文本框中是否按下引号