실시간 맵은 캐싱하도록 처리
This commit is contained in:
+4
-1
@@ -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
@@ -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
@@ -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
@@ -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(){
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
Reference in New Issue
Block a user