Jquery $ .get get方法不起作用

时间:2011-08-28 02:45:48

标签: php javascript jquery get

<html>
      <head>
          <script type="text/javascript" src="jquery.js"></script>
      </head>
      <body>
          <script type="text/javascript">
               var currenttime;
               function getDateInfo() { 
                 $.get("time.php?a=" + Math.random() , function(data) {
                   return data;
                  });

                }

                currenttime = getDateInfo();
                alert(currenttime);
         </script>
    </body>
</html>
/**************file time.php contains following code************/
<?php
    echo "August 27, 2011 19:30:52";
?>

朋友您好,请帮忙解释为什么这段代码不起作用..

2 个答案:

答案 0 :(得分:2)

get调用是异步的。一旦请求浏览器启动远程请求,它就会返回到您的代码。然后,您的代码会在不等待请求完成的情况下显示警报 - 因此当时还没有结果。

这就是函数采用回调参数而不是仅返回结果的原因。您的回调将在getDateInfo()返回后很长时间内运行,并且您必须安排一些事情,使得依赖于答案的操作由回调函数启动,而不是通过调用{{ 1}}。

答案 1 :(得分:0)

您正在尝试将数据返回到匿名函数。您必须在$ .get操作的回调中设置当前时间。

var currentTime;
$.get("time.php?a=" + Math.random() , 
      function(data) { // this will execute when the server request is complete & successful.
          currentTime = data;
          alert(currentTime);
    });