在使用百度地图做项目的时候,因为加载js在没有网络的时候,是非常缓慢的,时间约有20s了,在这期间,页面一片空白,造成了不好的用户体验,所以这里想到用异步加载,但是在查看文档使用代码之后,页面一直不调用回调函数init();
最后自己手动调用,以下是代码
domReady(function(){
window.areaArr=[];
require(['ztree.excheck'],function(excheck){
initTreeLoad();
setTimeout(loadJScript,100);
});
});
function loadJScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://api.map.baidu.com/api?v=2.0&ak=SLrOIdVUUI5fbvsZTMqTFshsG993NBAG&callback=init";
document.body.appendChild(script);
setTimeout(init,400)//此处进行手动调用
}
function init(){
window.map = new BMap.Map("allmap", {enableMapClick: false});//实例化一个地图,并且其他位置不可点击
$.post(path+'/sys/companyInfo/findAllcomInfo').done(function(data){
var bigArr=[];
var rowData=data;
for(var i=0;i<rowData.length;i++){
var obj={};
obj.name=rowData[i].areaName;
obj.lgt=rowData[i].longituge;
obj.lat=rowData[i].latitude;
obj.areaCode=rowData[i].areaCode;
obj.areaId=rowData[i].areaId;
bigArr.push(obj);
}
renderMap(bigArr);
})
clickMap();
}