실시간 맵은 캐싱하도록 처리

This commit is contained in:
2018-07-19 01:21:00 +09:00
parent 1d48e7c7ae
commit eb70e51ac1
7 changed files with 59 additions and 5 deletions
+4 -1
View File
@@ -167,10 +167,13 @@ $history = $db->queryFirstRow('SELECT log,genlog,nation,power,gen,city FROM hist
<tr><td><?=banner()?> </td></tr>
</table>
<script>
window.serverNick = '<?=DB::prefix()?>';
window.serverID = '<?=UniqueConst::$serverID?>';
reloadWorldMap({
targetJson:'j_map_history.php?year=<?=$year?>&month=<?=$month?>&serverID=<?=$serverID?>',
showMe:false,
neutralView:true
neutralView:true,
useCachedMap:false
});
</script>
</body>
+4 -1
View File
@@ -37,11 +37,14 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
<?=WebUtil::printJS('d_shared/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
window.serverNick = '<?=DB::prefix()?>';
window.serverID = '<?=UniqueConst::$serverID?>';
$(function(){
reloadWorldMap({
neutralView:true,
showMe:true
showMe:true,
useCachedMap:true
});
});
+4 -1
View File
@@ -86,11 +86,14 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
<?=WebUtil::printJS('d_shared/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
window.serverNick = '<?=DB::prefix()?>';
window.serverID = '<?=UniqueConst::$serverID?>';
$(function(){
reloadWorldMap({
neutralView:true,
showMe:true
showMe:true,
useCachedMap:true
});
});
+4 -1
View File
@@ -95,9 +95,12 @@ $mapTheme = $admin['map_theme'];
<?=WebUtil::printJS('js/map.js')?>
<?=WebUtil::printJS('js/msg.js')?>
<script>
window.serverNick = '<?=DB::prefix()?>';
window.serverID = '<?=UniqueConst::$serverID?>';
$(function(){
reloadWorldMap({
hrefTemplate:'b_currentCity.php?citylist={0}'
hrefTemplate:'b_currentCity.php?citylist={0}',
useCachedMap:true
});
setInterval(function(){
+39
View File
@@ -13,6 +13,7 @@ function reloadWorldMap(option){
clickableAll:false, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.
selectCallback:null, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행.
hrefTemplate:'#', //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨
useCachedMap:false, //맵 캐시를 사용
//아래부터는 post query에 들어갈 녀석
year:null, //year값, 연감등에 사용
@@ -25,6 +26,7 @@ function reloadWorldMap(option){
option = $.extend(defaultOption, option);
var useCachedMap = option.useCachedMap;
var isDetailMap = option.isDetailMap;
var clickableAll = option.clickableAll;
var selectCallback = option.selectCallback;
@@ -32,6 +34,7 @@ function reloadWorldMap(option){
var cityPosition = getCityPosition();
var storedOldMapKey = 'sam.{0}.map'.format(serverNick);
//OBJ : startYear, year, month, cityList, nationList, spyList, shownByGeneralList, myCity
function checkReturnObject(obj){
@@ -50,6 +53,12 @@ function reloadWorldMap(option){
return obj.promise();
}
if(useCachedMap){
localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj]));
}
$world_map.removeClass('draw_required');
return obj;
}
@@ -90,6 +99,7 @@ function reloadWorldMap(option){
else{
$world_map.addClass('map_winter');
}
console.log('haha?');
$map_title.html('{0}年 {1}月'.format(year, month));
@@ -470,5 +480,34 @@ function reloadWorldMap(option){
.then(setMouseWork)
.then(setCityClickable)
.then(saveCityInfo);
if(useCachedMap && $world_map.hasClass('draw_required')){
//일단 불러옴
do{
var storedMap = localStorage.getItem(storedOldMapKey);
if(!storedMap){
break;
}
storedMap = JSON.parse(storedMap);
var storedServerID = storedMap[0];
if(storedServerID != serverID){
break;
}
storedMap = storedMap[1];
storedMap = setMapBackground(storedMap);
storedMap = convertCityObjs(storedMap);
if(isDetailMap){
storedMap = drawDetailWorldMap(storedMap);
}
else{
storedMap = drawBasicWorldMap(storedMap);
}
storedMap = setMouseWork(storedMap);
storedMap = setCityClickable(storedMap);
storedMap = saveCityInfo(storedMap);
}while(false);
}
}
+3
View File
@@ -131,6 +131,8 @@ function starter($name, $type=0) {
<?=WebUtil::printJS('d_shared/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
window.serverNick = '<?=DB::prefix()?>';
window.serverID = '<?=UniqueConst::$serverID?>';
$(function(){
var $target = $("form[name=form1] select[name=double]");
console.log($target);
@@ -138,6 +140,7 @@ $(function(){
isDetailMap:false,
clickableAll:true,
neutralView:true,
useCachedMap:true,
selectCallback:function(city){
$target.val(city.id);
return false;
+1 -1
View File
@@ -1,4 +1,4 @@
<div class="world_map map_theme_<?=$mapTheme?>">
<div class="world_map map_theme_<?=$mapTheme?> draw_required">
<div class="map_title">
<span class="map_title_text">
</span>