실시간 맵은 캐싱하도록 처리
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>
|
<tr><td><?=banner()?> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?=DB::prefix()?>';
|
||||||
|
window.serverID = '<?=UniqueConst::$serverID?>';
|
||||||
reloadWorldMap({
|
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
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
+4
-1
@@ -37,11 +37,14 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
|||||||
<?=WebUtil::printJS('d_shared/base_map.js')?>
|
<?=WebUtil::printJS('d_shared/base_map.js')?>
|
||||||
<?=WebUtil::printJS('js/map.js')?>
|
<?=WebUtil::printJS('js/map.js')?>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?=DB::prefix()?>';
|
||||||
|
window.serverID = '<?=UniqueConst::$serverID?>';
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|
||||||
reloadWorldMap({
|
reloadWorldMap({
|
||||||
neutralView:true,
|
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('d_shared/base_map.js')?>
|
||||||
<?=WebUtil::printJS('js/map.js')?>
|
<?=WebUtil::printJS('js/map.js')?>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?=DB::prefix()?>';
|
||||||
|
window.serverID = '<?=UniqueConst::$serverID?>';
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|
||||||
reloadWorldMap({
|
reloadWorldMap({
|
||||||
neutralView:true,
|
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/map.js')?>
|
||||||
<?=WebUtil::printJS('js/msg.js')?>
|
<?=WebUtil::printJS('js/msg.js')?>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?=DB::prefix()?>';
|
||||||
|
window.serverID = '<?=UniqueConst::$serverID?>';
|
||||||
$(function(){
|
$(function(){
|
||||||
reloadWorldMap({
|
reloadWorldMap({
|
||||||
hrefTemplate:'b_currentCity.php?citylist={0}'
|
hrefTemplate:'b_currentCity.php?citylist={0}',
|
||||||
|
useCachedMap:true
|
||||||
});
|
});
|
||||||
|
|
||||||
setInterval(function(){
|
setInterval(function(){
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ function reloadWorldMap(option){
|
|||||||
clickableAll:false, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.
|
clickableAll:false, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.
|
||||||
selectCallback:null, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행.
|
selectCallback:null, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행.
|
||||||
hrefTemplate:'#', //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨
|
hrefTemplate:'#', //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨
|
||||||
|
useCachedMap:false, //맵 캐시를 사용
|
||||||
|
|
||||||
//아래부터는 post query에 들어갈 녀석
|
//아래부터는 post query에 들어갈 녀석
|
||||||
year:null, //year값, 연감등에 사용
|
year:null, //year값, 연감등에 사용
|
||||||
@@ -25,6 +26,7 @@ function reloadWorldMap(option){
|
|||||||
|
|
||||||
option = $.extend(defaultOption, option);
|
option = $.extend(defaultOption, option);
|
||||||
|
|
||||||
|
var useCachedMap = option.useCachedMap;
|
||||||
var isDetailMap = option.isDetailMap;
|
var isDetailMap = option.isDetailMap;
|
||||||
var clickableAll = option.clickableAll;
|
var clickableAll = option.clickableAll;
|
||||||
var selectCallback = option.selectCallback;
|
var selectCallback = option.selectCallback;
|
||||||
@@ -32,6 +34,7 @@ function reloadWorldMap(option){
|
|||||||
|
|
||||||
var cityPosition = getCityPosition();
|
var cityPosition = getCityPosition();
|
||||||
|
|
||||||
|
var storedOldMapKey = 'sam.{0}.map'.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){
|
||||||
@@ -50,6 +53,12 @@ function reloadWorldMap(option){
|
|||||||
return obj.promise();
|
return obj.promise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(useCachedMap){
|
||||||
|
localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj]));
|
||||||
|
}
|
||||||
|
|
||||||
|
$world_map.removeClass('draw_required');
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,6 +99,7 @@ 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));
|
||||||
|
|
||||||
@@ -470,5 +480,34 @@ function reloadWorldMap(option){
|
|||||||
.then(setMouseWork)
|
.then(setMouseWork)
|
||||||
.then(setCityClickable)
|
.then(setCityClickable)
|
||||||
.then(saveCityInfo);
|
.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('d_shared/base_map.js')?>
|
||||||
<?=WebUtil::printJS('js/map.js')?>
|
<?=WebUtil::printJS('js/map.js')?>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?=DB::prefix()?>';
|
||||||
|
window.serverID = '<?=UniqueConst::$serverID?>';
|
||||||
$(function(){
|
$(function(){
|
||||||
var $target = $("form[name=form1] select[name=double]");
|
var $target = $("form[name=form1] select[name=double]");
|
||||||
console.log($target);
|
console.log($target);
|
||||||
@@ -138,6 +140,7 @@ $(function(){
|
|||||||
isDetailMap:false,
|
isDetailMap:false,
|
||||||
clickableAll:true,
|
clickableAll:true,
|
||||||
neutralView:true,
|
neutralView:true,
|
||||||
|
useCachedMap:true,
|
||||||
selectCallback:function(city){
|
selectCallback:function(city){
|
||||||
$target.val(city.id);
|
$target.val(city.id);
|
||||||
return false;
|
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">
|
<div class="map_title">
|
||||||
<span class="map_title_text">
|
<span class="map_title_text">
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user