用ajax创建对象的Javascript新手

时间:2012-02-17 10:33:57

标签: javascript

我有以下代码,并希望将其用作对象。

如何访问对象的属性?目前我总是不确定!

function getLoggerInfo()
{

    $.ajax({
    url: "data.json",
    type: "GET",
    data: {emGetInfo: "logger"},
    dataType: "json",
    success: function(response){
        //alert("1: " + this.loggerName);
        loggerName = response.emGetInfo[0].loggerName;
        protocol = response.emGetInfo[0].protocolVersion;
        $("#console").text("Logger Name: " + loggerName + " - Protocol Version: " + protocol);
        return;
        },
    error: function(jqXHR, textStatus, errorThrown){
        $("#console").text("ERROR: AJAX errors. " + jqXHR + " : " + textStatus + " : " + errorThrown);
        return;
        },
    statusCode: {
        404: function() {
            $("#console").text("404: The requested JSON file was not found.");
        return;
        }
    }
}); 
}

//获取loggerName ...

$(document).ready(function () {

   // Get logger info event...
   $("#ajax").click(function() {
    var loggerInfo = new getLoggerInfo();
    alert("Loggername: "+ loggerInfo.loggerName);
});

});

1 个答案:

答案 0 :(得分:0)

AJAX是异步的 - 因此它不返回数据......以下是使用$.ajax()函数时发生的情况的粗略概述

  1. 将数据发送到网址
  2. 浏览器继续 - 根据需要执行其他代码
  3. 当网址(在步骤1中调用)完成处理后,将执行success回调。
  4. 步骤3可以是1秒,10秒,5分钟后

    您应该在成功回调中处理请求:

    $.ajax({
        url: "data.json",
        type: "GET",
        data: {emGetInfo: "logger"},
        dataType: "json",
        success: function(response){
          // process here
          loggerName = response.emGetInfo[0].loggerName;
          alert(loggerName);
        }
    });