同步加载方式:
<%@page import="com.util.json.JSONArray"%>
<%@page import="com.util.json.JSONObject"%>
<%@page import="com.bean.CheckAttenceBean"%>
<%@page import="java.util.List"%>
<%@page import="com.service.impl.CheckAttenceService"%>
<%@page import="com.service.ICheckAttenceService"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
ICheckAttenceService checkAttenceService=new CheckAttenceService();
String beginDate="2012-12-12 00:00:00";
String endDate="2012-12-12 23:59:59";
JSONArray jsonArray = new JSONArray();
List checkBeanList=checkAttenceService.queryCheckEmps(beginDate, endDate);
for(CheckAttenceBean chBean:checkBeanList){
JSONObject jObect = new JSONObject();
jObect.put("empLng", chBean.getCheckAttLng());// 经纬度
jObect.put("empLat", chBean.getCheckAttLat());// 经纬度
jsonArray.put(jObect);
}
%>
调度查堪人员
在上面的同步加载方式中,使用jquery的ajax同步加载可以实现上面的代码
ICheckAttenceService checkAttenceService=new CheckAttenceService();
String beginDate="2012-12-12 00:00:00";
String endDate="2012-12-12 23:59:59";
JSONArray jsonArray = new JSONArray();
List checkBeanList=checkAttenceService.queryCheckEmps(beginDate, endDate);
for(CheckAttenceBean chBean:checkBeanList){
JSONObject jObect = new JSONObject();
jObect.put("empLng", chBean.getCheckAttLng());// 经纬度
jObect.put("empLat", chBean.getCheckAttLat());// 经纬度
jsonArray.put(jObect);
}
function ajaxLoadRequestTask(){
var addPointsArray="";
$.ajax({
type:'post',
url:'task_getRequestTask.action',
dataType:'json',
async:false,//同步加载数据
cache:false,
success:function(json){
addPointsArray=json["sendData"];
/*for(var i=0;i
如果ajax的同步加载(async:false)不使用,采用默认的加载是异步,即async:true,这样加载出的数据不能赋值给一个js数组变量,使用同步加载方式就可以,是我在网上搜了很久,才找到了问题所在.其实说起ajax的同步与异常加载数据,一看就明白,但用起来不一定真的明白使用场景.
此处让我明白了同步与异步使用的不同场景.
异步加载方式:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
调度查堪人员
在上面采用异步加载方式时,在FF浏览器下加载N次地图上的标注点都没问题,但在IE6、7、8、Chrome下只有第一次加载标注点的坐标可以,第二次后就不能了,不知为什么,麻烦知道是怎么回事的兄弟给我说下,目前我在项目中采用同步加载方式.
上面红色字体就是解决我异步加载数据时出现的问题.