Ajax调用在Java Thread完成执行任务之前完成

时间:2017-07-02 13:38:41

标签: javascript jquery ajax multithreading servlets

这就是现在发生的事情

  1. 使用jquery Ajax调用服务器端Servlet代码

  2. 使用线程从远程位置读取属性文件并将其写入Servlet响应对象的Servlet代码。

  3. 启动线程时Ajax调用已完成。
  4. 我希望Ajax调用等待线程完成其任务。我尝试在方法时使用JQuery但是没有调用它(使用jquery版本2+)。

      $.when(loadProperty()).done(function(a1){
        alert('load proeprty finished  :'+a1);
    });

    function loadProperty(){
    	  var webappName = $('#webapps').val();
    	  var proeprty_type = $( "#property_type option:selected" ).text();
    	  $("#property_table").empty();
    	  $.ajax({
              url: "UDEPropertyManager?mode=getProperty",
              dataType: "json",
              type: "POST",
              contentType: "application/json; charset=utf-8",
              dataFilter: function(data) { return data; },
              success: function(data) {
              
    					}
    				});
    				
    			}
    			
    			
    
    			

1 个答案:

答案 0 :(得分:0)

同样,永远不要直接在servlet中运行线程,在你的情况下它完全没有意义。

新线程意味着,新工作应该异步启动。这意味着当你运行一个新线程时,servlet继续工作并响应客户端,这可以比新线程初始化更早完成。

您可能无法为此案例运行新主题。

如果结果/消息准备就绪,那么尽快响应它,客户端就会得到它。

您可以阅读有关servlet上下文和线程的更多信息。一个不是简单地在servlet上下文中以这种方式运行线程