我正在研究泽西岛应用程序。 当客户端向我的服务器询问某些内容时(通过按钮/单击),我没有问题。但现在我想添加一个按钮" loading"有些sql请求正在执行。它通常是客户端询问的东西,然后服务器发送一些东西,但这次我需要服务器发送一些东西,是否可以这样做?
我有一个由id,名称定义的作业列表......我添加了@Transient加载。我需要在load = true时显示加载GIF,在load = false时显示任何内容。
我的代码摘录:
@Entity
@Table(name = "T_JOB")
@SequenceGenerator(name = "seqJob", sequenceName = "SEQ_JOB", initialValue = 1,
allocationSize = 1)
@Getter
@Setter
public class Job{
@Id
@GeneratedValue(generator = "seqJob", strategy = GenerationType.SEQUENCE)
@Column(name = "T_JOB_ID")
private int id;
@Column(name = "name")
private String name;
@Transient
private boolean load;
}
这是我的功能改变负载值:
public void execute(){
job.setLoad(true);
// some functions taking few seconds/minuts...
job.setLoad(false);
}
如何动态地与客户的工作价值沟通?
我在泽西岛尝试了类似的东西:
@POST
@Path("/getLoad")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public boolean getLoad() {
return load;
}
服务:
srv.getLoad = function(){
return $http.post(baseService + 'getLoad');
}
return srv;
然后在JS:
Services.getLoad().success(function(data, status, headers, config){
$scope.load = data;
});
问题:它可以工作,但我需要更新/点击才能获得负载值。我知道我可以使用setInterval,但这样做会很糟糕!有人有想法吗?非常感谢你!