연감에서도 비교적 빠르게 동작하도록 설정

This commit is contained in:
2018-07-19 01:31:13 +09:00
parent c50642dd95
commit 3de6687f4e
2 changed files with 49 additions and 25 deletions
+3 -1
View File
@@ -173,7 +173,9 @@ reloadWorldMap({
targetJson:'j_map_history.php?year=<?=$year?>&month=<?=$month?>&serverID=<?=$serverID?>', targetJson:'j_map_history.php?year=<?=$year?>&month=<?=$month?>&serverID=<?=$serverID?>',
showMe:false, showMe:false,
neutralView:true, neutralView:true,
useCachedMap:false useCachedMap:false,
year:<?=$year?>,
month:<?=$month?>,
}); });
</script> </script>
</body> </body>
+46 -24
View File
@@ -21,7 +21,10 @@ function reloadWorldMap(option){
aux:null, //기타 넣고 싶은 값을 입력 aux:null, //기타 넣고 싶은 값을 입력
neutralView:false, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정 neutralView:false, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정
showMe:true, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개 showMe:true, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개
targetJson:'j_map.php' targetJson:'j_map.php',
//기타 보조 값
startYear:null,
}; };
option = $.extend(defaultOption, option); option = $.extend(defaultOption, option);
@@ -35,6 +38,7 @@ function reloadWorldMap(option){
var cityPosition = getCityPosition(); var cityPosition = getCityPosition();
var storedOldMapKey = 'sam.{0}.map'.format(serverNick); var storedOldMapKey = 'sam.{0}.map'.format(serverNick);
var storedStartYear = 'sam.{0}.startYear'.format(serverNick);
//OBJ : startYear, year, month, cityList, nationList, spyList, shownByGeneralList, myCity //OBJ : startYear, year, month, cityList, nationList, spyList, shownByGeneralList, myCity
function checkReturnObject(obj){ function checkReturnObject(obj){
@@ -55,6 +59,7 @@ function reloadWorldMap(option){
if(useCachedMap){ if(useCachedMap){
localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj])); localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj]));
localStorage.setItem(storedStartYear, JSON.stringify(obj.startYear));
} }
$world_map.removeClass('draw_required'); $world_map.removeClass('draw_required');
@@ -99,7 +104,6 @@ function reloadWorldMap(option){
else{ else{
$world_map.addClass('map_winter'); $world_map.addClass('map_winter');
} }
console.log('haha?');
$map_title.html('{0}年 {1}月'.format(year, month)); $map_title.html('{0}年 {1}月'.format(year, month));
@@ -481,32 +485,50 @@ function reloadWorldMap(option){
.then(setCityClickable) .then(setCityClickable)
.then(saveCityInfo); .then(saveCityInfo);
if(useCachedMap && $world_map.hasClass('draw_required')){ if($world_map.hasClass('draw_required')){
//일단 불러옴 if(useCachedMap){
do{ //일단 불러옴
var storedMap = localStorage.getItem(storedOldMapKey); do{
if(!storedMap){ var storedMap = localStorage.getItem(storedOldMapKey);
break; if(!storedMap){
} break;
storedMap = JSON.parse(storedMap); }
var storedServerID = storedMap[0]; storedMap = JSON.parse(storedMap);
if(storedServerID != serverID){ var storedServerID = storedMap[0];
break; if(storedServerID != serverID){
} break;
}
storedMap = storedMap[1]; storedMap = storedMap[1];
storedMap = setMapBackground(storedMap); storedMap = setMapBackground(storedMap);
storedMap = convertCityObjs(storedMap); storedMap = convertCityObjs(storedMap);
if(isDetailMap){ if(isDetailMap){
storedMap = drawDetailWorldMap(storedMap); storedMap = drawDetailWorldMap(storedMap);
}
else{
storedMap = drawBasicWorldMap(storedMap);
}
storedMap = setMouseWork(storedMap);
storedMap = setCityClickable(storedMap);
storedMap = saveCityInfo(storedMap);
}while(false);
}
else if(option.year && option.month){
var startYear = localStorage.getItem(storedStartYear);
if(startYear){
startYear = JSON.parse(startYear);
} }
else{ else{
storedMap = drawBasicWorldMap(storedMap); startYear = option.year;
} }
storedMap = setMouseWork(storedMap); var tmp = {
storedMap = setCityClickable(storedMap); year : option.year,
storedMap = saveCityInfo(storedMap); month : option.month,
}while(false); startYear : startYear
};
setMapBackground(tmp);
}
} }
} }