JQuery回调没有执行?

时间:2011-08-25 15:36:58

标签: javascript html jquery

我想要一个从服务器获取数据的进度条,所以我创建了2个servlet,第一个(process)启动进程,结束时返回结果;第二个(GetEvent)每隔500毫秒从会话中获取进度信息..

所有这一切正常,进度信息正确显示,但是 进程Servlet的回调永远不会执行。

 <html>
    <head>
      <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

      <script>
      $(document).ready(function() {
      process();
     $("#progressbar").progressbar({ value: 0 });
         $("#progressStatus").html("");

        getEvent();
      });
      function process()
      {
       $.getJSON("process", function(result){
         //never executed
         alert( "Result: " );

       });
      }
      function getEvent()
      {
        $.getJSON("GetProgressEvent", function(data) {     
        $.each(data.ProgressEvents, function(){
        $("#progressbar").progressbar({ value: this.progress });
         $("#progressStatus").html(this.status);
        });
        });
           setTimeout(getEvent, 500);
      }
      </script>
    </head>
    <body style="font-size:62.5%;">

    <div id="progressbar"></div>
    <div id ="progressStatus"></div>
    </body>
    </html>

我刚开始使用JQuery,我不知道这段代码有什么问题。

1 个答案:

答案 0 :(得分:2)

你用url“process”调用$ .getJSON 如果响应有问题或者返回了无效的JSON,则此函数没有错误处理,因此不会调用回调。

http://api.jquery.com/jQuery.getJSON/

jQuery.getJSON(url,[data],[success(data,textStatus,jqXHR)])

url包含发送请求的URL的字符串。

data使用请求发送到服务器的映射或字符串。

success(data,textStatus,jqXHR)请求成功时执行的回调函数。

尝试添加有效的网址代替“进程”,如果失败,请使用 $ .ajax方法如下

$.ajax({
  url: "mydomain.com/url",
  type: "POST",
  dataType: "json",
  data: $.param( $("Element or Expression") ),

  complete: function() {
    //called when complete
  },

  success: function() {
    //called when successful
 },

  error: function() {
    //called when there is an error
  },
});
相关问题