DWR请求异步改为同步
今天写CODE的时候,依靠DWR实现下拉框选择查询并分页显示.在遍历后台传回的LIST时,需要用到其他关联表信息(事实上可以依靠HIBERNATE实现关系查询的,由于本人OSIV配置不合理,OSIV没有设置/dwr/*路径过滤,所有DWR的不能正确解析PO,导致返回值的LIST里面各元素为NULL,不是LIST为NULL),所以再次调用另一个SERVICE从后台传回数据到前台. 但由于异步性,后台数据还未传回,页面元素已被更新.需要第二次SERVICE传回的数据值全部显示为NULL.
查阅资料发现DWR可以通过配置将方法的调用有异步改为同步.
要设置全局同步机制: DWREngine.setAsync(true);
或者设置单次调用同步:
Service.method(params, { callback:function(data) { ... }, async:false });
-------------------------------------------
第一次写文章.