jQuery加载文本文件数据

kin*_*005 3 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);
Run Code Online (Sandbox Code Playgroud)

当我在$ .get()函数内部时,我可以看到stringData var得到了很好的人选,并且对alert的调用确认它包含来自示例文本文件的数据.但是,当我离开$ .get()函数时,stringData var不再显示.我不太了解该函数如何工作以了解它为什么没有像我预期的那样做.我想要它做的就是将文本数据加载到变量中,以便我可以使用它.任何帮助表示赞赏.

Pra*_*obo 16

get是异步的意思是它调用服务器并继续执行其余的代码.这就是你有回调方法的原因.无论你打算如何处理返回数据,都要在回调方法(你已经发出警报)中进行.

get,post都是异步的.您可以使用进行同步呼叫

  1. $.ajaxSetup({ async: false });在代码中的任何位置使用.这会影响代码中的所有ajax调用,所以要小心.

  2. $.ajaxasync: 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);
Run Code Online (Sandbox Code Playgroud)


joe*_*arl 5

$ .get函数是异步的.您需要对回调函数中返回的数据执行任何操作.您可以将该函数移动到不内联以清理代码.

    function parseData(data){
        //do something with the data
        alert("data is: " + data);
    }

    $.get("http://localhost/webpath/graphing/sample_data.txt",parseData);
Run Code Online (Sandbox Code Playgroud)