크롬과 엣지에서 결과값이 다른데, 어느 부분이 문제인지 알 수 있을까요?
본문
안녕하세요.
크롬과 엣지에서 결과값이 다르게 나오는데, 무엇이 문제인지 알 수 있을까요?
https://rotcmuseum.or.kr 에서 상단 메뉴에서 "자료관"을 클릭하면,
크롬에서는 데이터가 잘 나오는데 엣지에서는 안 나옵니다.
검색 버튼을 클릭하거나 최근 등록일자/이전 등록일자 등 selectbox를 선택하면 잘 나옵니다.
또는 접속 후 주소창에 www를 붙여서 클릭하면, 한번은 잘 나옵니다. 또 클릭하면 안 나옵니다.
어떤 사람은 잘 된다고 하고.
어떤 사람은 몇번 하다보면 한번씩 안나온다고 하고.
저는 아예 안나오고.
어느 부분이 문제인지 알 수 있을까요...
부탁드립니다.
[code]
<?php
$sub = ' sub';
$mobile_title = '자료관';
include_once('../common.php');
include_once('../head.php');
?>
<!--CONTAINER : main 별도 사용, sub page는 rotc_sub_container 로 교체-->
<div class="rotc_sub_container" id="list" v-cloak>
<!--CONTENTS : main, sub page 모두 동일-->
<div class="rotc_contents">
<!--통합검색-->
<div class="rotc_archive_search archive_search_sub">
<div class="archive_small_wrap">
<div class="rotc_search_header">
<div class="search_header_title">
<h2>통합검색</h2>
</div>
</div>
<div class="archive_search_wrap">
<input type="search" name="searchText" id="searchText" value="<?php echo $_POST['searchText']?>" placeholder="검색어를 입력하세요">
<a href="javascript:void(0)" onclick="museum_search(1);">검색</a>
</div>
<div class="archive_filter_wrap">
<a href="javascript:void(0)" class="btn_filter" v-bind:class="{'active':search_gubun==='detail'}">
<span>상세검색</span>
<i class="icon_filter"></i>
</a>
</div>
</div>
</div>
<!--상세검색-->
<div class="rotc_archive_detail_search" v-bind:class="{'on':search_gubun==='detail'}">
<div class="archive_small_wrap">
<!--상세검색 타이틀-->
<div class="rotc_search_detail_header">
<div class="search_header_title">
<h2>상세검색</h2>
<a href="javascript:void(0)" class="search_refresh_box" onclick="search_refresh();">
<i class="icon_refresh"></i>
<span>초기화</span>
</a>
</div>
<a href="javascript:void(0)" class="search_detail_close">
<i class="icon_search_close"></i>
</a>
</div>
<!--상세검색 리스트-->
<div class="search_detail_item">
<dl>
<dt>유형</dt>
<dd>
<div class="search_item_chk_group">
<div class="search_item_chk" v-for="fileCode in fileCodeList">
<input type="checkbox" name="fileCode" v-bind:id="'fileCode_'+fileCode.fileCode" v-on:click="item_selected('fileCode', fileCode.fileCode);">
<label v-bind:for="'fileCode_'+fileCode.fileCode">{{fileCode.fileCodeName}}</label>
</div>
</div>
</dd>
</dl>
<dl>
<dt>대분류</dt>
<dd>
<div class="search_item_chk_group">
<div class="search_item_chk" v-for="cate in cateList">
<input type="radio" name="cateCode" v-bind:id="'cateCode_'+cate.itemItemCode" v-on:click="item_selected('cateCode', cate.itemItemCode);">
<label v-bind:for="'cateCode_'+cate.itemItemCode">{{cate.itemItemName}}</label>
</div>
</div>
</dd>
</dl>
<dl id="subCate" style="display:none">
<dt>소분류</dt>
<dd>
<div class="search_small_item">
<div class="small_item_header" v-if="cateCode === '0004' || cateCode === '0005'">
<a href="javascript:void(0)" class="checked" onclick="chosung_selected(0)">ㄱ</a>
<a href="javascript:void(0)" onclick="chosung_selected(1)">ㄴ</a>
<a href="javascript:void(0)" onclick="chosung_selected(2)">ㄷ</a>
<a href="javascript:void(0)" onclick="chosung_selected(3)">ㄹ</a>
<a href="javascript:void(0)" onclick="chosung_selected(4)">ㅁ</a>
<a href="javascript:void(0)" onclick="chosung_selected(5)">ㅂ</a>
<a href="javascript:void(0)" onclick="chosung_selected(6)">ㅅ</a>
<a href="javascript:void(0)" onclick="chosung_selected(7)">ㅇ</a>
<a href="javascript:void(0)" onclick="chosung_selected(8)">ㅈ</a>
<a href="javascript:void(0)" onclick="chosung_selected(9)">ㅊ</a>
<a href="javascript:void(0)" onclick="chosung_selected(10)">ㅋ</a>
<a href="javascript:void(0)" onclick="chosung_selected(11)">ㅌ</a>
<a href="javascript:void(0)" onclick="chosung_selected(12)">ㅍ</a>
<a href="javascript:void(0)" onclick="chosung_selected(13)">ㅎ</a>
</div>
<div class="small_item_body" v-for="(itemList, idx) in departCateList" v-bind:id="'chosung_'+idx" v-show="idx===0" v-if="cateCode === '0004' || cateCode === '0005'">
<label class="checkbox_normal" v-for="item in itemList">
<input type="checkbox" name="departCateCode" v-bind:id="'departCateCode_'+item.code" v-on:click="item_selected('departCateCode', item.code);">
<span>{{item.name}}</span>
</label>
</div>
<div class="small_item_body" v-if="cateCode != '0004' && cateCode != '0005'">
<label class="checkbox_normal" v-for="departCate in departCateList">
<input type="checkbox" name="departCateCode" v-bind:id="'departCateCode_'+departCate.itemItemCode" v-on:click="item_selected('departCateCode', departCate.itemItemCode);">
<span>{{departCate.itemItemName}}</span >
</label>
</div>
</div>
</dd>
</dl>
<dl id="subjectCate" style="display:none">
<dt>주제</dt>
<dd>
<div class="search_item_chk_group">
<div class="search_item_chk" v-for="subjectCate in subjectCateList">
<input type="checkbox" name="subjectCateCode" v-bind:id="'subjectCateCode_'+subjectCate.itemItemCode" v-on:click="item_selected('subjectCateCode', subjectCate.itemItemCode);">
<label v-bind:for="'subjectCateCode_'+subjectCate.itemItemCode">{{subjectCate.itemItemName}}</label>
</div>
</div>
</dd>
</dl>
<dl>
<dt>자료생산연도</dt>
<dd>
<div class="search_input_item">
<span class="search_input_item_title">기간</span>
<div class="search_input_itembox">
<input type="text" name="productStartYear" id="detail_productStartYear" value="<?php echo $_POST['productStartYear']?>">
<span>년</span>
</div>
<span class="search_input_item_dash">~</span>
<div class="search_input_itembox">
<input type="text" name="productEndYear" id="detail_productEndYear" value="<?php echo $_POST['detail_productEndYear']?>">
<span>년</span>
</div>
</div>
</dd>
</dl>
</div>
<!--상세 검색 선택된 항목-->
<div class="search_detail_selected" id="search_detail_selected" style="display:none">
</div>
<!--검색 버튼-->
<div class="search_footer_button">
<a href="javascript:void(0)" onclick="search_detail(1)">검색</a>
</div>
</div>
</div>
<!--최신자료-->
<div class="center_view">
<div class="archive_gallery_wrap">
<div class="archive_gallery_header">
<div class="gallery_header_count">
<span>총</span>
<span class="count">{{pageTotalCount}}</span>
<span>건</span>
</div>
<div class="gallery_header_select">
<select name="orderType" id="orderType" v-on:change="search(1)" v-model="orderType">
<option value="">최근 등록일자</option>
<option value="REGDATE:ASC">이전 등록일자</option>
<option value="PRODUCTDATE:ASC">이전 생산일자</option>
<option value="PRODUCTDATE:DESC">최근 생산일자</option>
</select>
</div>
</div>
<!--리스트 없을 때-->
<div class="archive_no_list" v-if="itemList.length === 0">
<img src="../images/icon_thumbnail.svg">
<p>검색 조건에 맞는 데이터가 없습니다.</p>
</div>
<div class="archive_gallery_list" v-else>
<div class="archive_gallery_box" v-for="item in itemList">
<a href="javascript:void(0)" v-on:click="museum_detail(item.iidx)">
<div class="archive_board_img">
<div class="vedio_cover" v-if="item.imgCnt ===0 && item.videoCnt>0">
<div class="icon_vedio"></div>
</div>
<img v-bind:src="item.imgFileUrl" v-if="item.imgFileUrl != ''">
</div>
<div class="archive_board_contents">
<div class="archive_board_title">{{item.title}}</div>
<div class="archive_organization">{{item.productDepartName}}</div>
<div class="archive_board_date">
<div>{{item.regdate}}</div>
<div class="">
<span>조회수</span>
<span>{{item.refercount}}</span>
</div>
</div>
<div class="archive_board_images">
<div class="board_images_box" v-if="item.imgCnt>0">
<span class="board_images icon_photo" title="사진"></span>
<span class="board_count">{{item.imgCnt}}</span>
</div>
<div class="board_images_box" v-if="item.videoCnt>0">
<span class="board_images icon_video" title="동영상"></span>
<span class="board_count">{{item.videoCnt}}</span>
</div>
<div class="board_images_box" v-if="item.docCnt>0">
<span class="board_images icon_document" title="문서"></span>
<span class="board_count">{{item.docCnt}}</span>
</div>
<div class="board_images_box" v-if="item.publicationCnt>0">
<span class="board_images icon_publication" title="간행물"></span>
<span class="board_count">{{item.publicationCnt}}</span>
</div>
<div class="board_images_box" v-if="item.audioCnt>0">
<span class="board_images icon_audio" title="오디오"></span>
<span class="board_count">{{item.audioCnt}}</span>
</div>
</div>
</div>
</a>
</div>
</div>
<!--이전/다음 버튼-->
<div class="gallery_pagination">
<div class="gallery_pagination_group">
<a href="javascript:void(0)" class="gallery_page_prev" v-on:click="search(pageNum-1);" v-if="pageNum > 1"></a>
<div class="gallery_pagination_count">
<span>{{pageNum}}</span>
<span>/</span>
<span>{{lastPageNum}}</span>
</div>
<a href="javascript:void(0)" class="gallery_page_next" v-on:click="search(pageNum+1);" v-if="pageNum < lastPageNum"></a>
</div>
</div>
</div>
</div>
</div>
</div>
<form name="fparams" id="fparams" method="post">
<input type="hidden" name="pageNum" id="pageNum" value="<?php echo $_POST['pageNum']?>">
<input type="hidden" name="search_gubun" id="search_gubun" value="<?php echo $_POST['search_gubun']?>">
<input type="hidden" name="searchText" id="search_text" value="<?php echo $_POST['searchText']?>">
<input type="hidden" name="productStartYear" id="productStartYear" value="<?php echo $_POST['productStartYear']?>">
<input type="hidden" name="productEndYear" id="productEndYear" value="<?php echo $_POST['productEndYear']?>">
<input type="hidden" name="orderType" id="search_orderType" value="<?php echo $_POST['orderType']?>">
<input type="hidden" name="param" id="param" value="<?php echo $_POST['param']?>">
</form>
<script>
var vueObj;
var pageRowCount = 15;
$(document).ready(function () {
//Vue 선언
vueObj = new Vue({
el : '#list',
data : {
fileCodeList : [],
cateList : [],
cateCode : '',
departCateList : [],
subjectCateList : [],
itemList : [],
pageTotalCount: 0,
pageNum : 0,
lastPageNum : 0,
totalPage : 0,
chosungList : [],
search_gubun : "",
orderType : ""
},
updated() {
search_detail_checked();
}
});
$("input").on('keydown', function(e) {
if(e.keyCode == 13) {
museum_search(1);
}
});
init();
});
document.onreadystatechange = function(){
if (document.readyState === "complete") {
search_cond();
}
}
function init() {
var params = {};
getResponseData('fileCodeList', params, file_code_list);
getResponseData('cateList', params, cate_list);
}
// 파일 코드 목록
function file_code_list(data) {
vueObj.fileCodeList = data.fileCodeList;
}
// 대분류 목록
function cate_list(data) {
vueObj.cateList = data.cateList;
}
// 소분류 분류 목록
function depart_cate_list(data) {
if (vueObj.cateCode == '0004' || vueObj.cateCode == '0005') {
chosung_sort(data.departCateList);
} else {
vueObj.departCateList = data.departCateList;
}
$("#subCate").show();
}
// 주제 분류 목록
function subject_cate_list(data) {
vueObj.subjectCateList = data.subjectCateList;
$("#subjectCate").show();
}
function search_cond() {
var search_gubun = $("#search_gubun").val();
<?php if (!is_mobile()) {?>
vueObj.search_gubun = search_gubun;
<?php }?>
if (trim($("#param").val()) != "") {
var params = $("#param").val().split(",");
for (k=0; k<params.length; k++) {
item_selected_param(params[k]);
}
}
vueObj.orderType = $("#search_orderType").val();
var param = $("#param").val();
var pageNum = $("#pageNum").val();
if (pageNum == "") pageNum = 1;
search(pageNum);
}
// 아이템 목록
function item_list(data) {
vueObj.itemList = data.resultMap.data;
vueObj.pageTotalCount = data.resultMap.pagingInfo.pageTotalCount;
vueObj.pageNum = data.resultMap.pagingInfo.pageNum;
vueObj.lastPageNum = data.resultMap.pagingInfo.lastPageNum;
if (vueObj.pageTotalCount == 0) {
vueObj.totalPage = 1;
} else {
vueObj.totalPage = parseInt((vueObj.pageTotalCount-1)/vueObj.pageTotalCount)+1;
}
$("#search_text").val($("#searchText").val());
$("#productStartYear").val($("#detail_productStartYear").val());
$("#productEndYear").val($("#detail_productEndYear").val());
var array_param = [];
var f = $("#search_detail_selected").find("input");
f.each(function() {
var code = $(this).prop("name");
var val = $(this).val();
var name = $(this).next().text();
var param = code+"_"+val+"_"+name;
array_param.push(param);
});
$("#param").val(array_param.join());
}
function museum_detail(iidx) {
$("#fparams").prop("action", "<?php echo $root;?>/museum/museum_detail.php?iidx="+iidx);
$("#fparams").submit();
}
function search(pageNum) {
$("#pageNum").val(pageNum);
$("#search_orderType").val($("#orderType").val());
var sg = $("#search_gubun").val();
if (sg == "detail") {
search_detail(pageNum);
} else {
museum_search(pageNum);
}
}
function museum_search(pageNum) {
var searchText = $("#searchText").val();
$("#search_gubun").val("");
$("#search_text").val(searchText);
var params = {};
params.sdata = searchText;
params.orderType = $("#orderType").val();
params.pageNum = pageNum;
params.pageRowCount = pageRowCount;
getResponseData('itemSearch', params, item_list);
}
/* 상세검색 */
// 초기화
function search_refresh() {
$("#search_detail_selected").html("");
$("#search_detail_selected").hide();
$("input[type='checkbox']").prop("checked",false);
$("input[type='radio']").prop("checked",false);
$("#detail_productStartYear").val("");
$("#detail_productEndYear").val("");
$("#subCate").hide();
$("#subjectCate").hide();
}
function item_selected(codes, val) {
var id = codes + "_" + val;
var selected_id = "selected_" + id;
var item = $("#"+id+"").next().text();
var q = $("#search_detail_selected > div");
if ($("#"+id).is(":checked")) {
var check_cnt = 0;
for (i=0; i<q.length; i++) {
var check_id = q[i].id.substring(9);
if (check_id==id) check_cnt++;
}
if (check_cnt == 0) {
$("#search_detail_selected").show();
var html = '';
html += '<div class="search_selected_box" id="' + selected_id + '">';
html += ' <input type="hidden" name="' + codes + '" value = "' + val + '">';
html += ' <span>' + item + '</span>';
html += ' <a href="javascript:void(0)" onclick="delete_selectedbox(\'' + id + '\', \'' + selected_id + '\');"></a>';
html += ' </div>';
$(".search_detail_selected").append(html);
}
} else {
$("#selected_"+id).remove();
}
if (codes == "cateCode") {
vueObj.cateCode = val;
var params = {}
params["cateCode"] = val;
getResponseData('departCateList', params, depart_cate_list);
getResponseData('subjectCateList', params, subject_cate_list);
}
for (i=0; i<q.length; i++) {
if (q[i].id.substring(9,14) == "cateCode_") { // 대분류
} else {
var id = q[i].id.substring(9);
}
}
}
function item_selected_param(params) {
var array_param = params.split("_");
var codes = array_param[0];
var val = array_param[1];
var id = codes + "_" + val;
var name = array_param[2];
var selected_id = "selected_" + id;
$("#search_detail_selected").show();
var html = '';
html += '<div class="search_selected_box" id="' + selected_id + '">';
html += ' <input type="hidden" name="' + codes + '" value = "' + val + '">';
html += ' <span>' + name + '</span>';
html += ' <a href="javascript:void(0)" onclick="delete_selectedbox(\'' + id + '\', \'' + selected_id + '\');"></a>';
html += ' </div>';
$(".search_detail_selected").append(html);
$("#"+id).prop("checked", true);
if (codes == "cateCode") {
var params = {};
params["cateCode"] = val;
console.log(val);
getResponseData('departCateList', params, depart_cate_list);
getResponseData('subjectCateList', params, subject_cate_list);
} else {
}
}
function delete_selectedbox(id, selected_id){
$("#"+id).prop("checked", false);
$("#"+selected_id).remove();
var q = $("#search_detail_selected > div");
if (q.length == 0) {
$("#search_detail_selected").hide();
}
}
var chosung = ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"];
function chosung_hangul(str) {
result = "";
for(k=0;k<str.length;k++) {
var code = str.charCodeAt(k)-44032;
if(code>-1 && code<11172) result += chosung[Math.floor(code/588)];
}
return result;
}
function chosung_sort(data) {
var departCateList = [];
var idx = 0;
for (i=0; i<chosung.length; i++) {
arrItem = [];
for (j=0; j<data.length; j++) {
var itemName = data[j].itemItemName;
if (vueObj.cateCode == '0004') {
var arr = data[j].itemItemName.split(" ");
itemName = arr[0];
}
var item = {};
item["name"] = itemName;
item["code"] = data[j].itemItemCode;
if (chosung[i] == chosung_hangul(itemName.substring(0,1))) {
arrItem.push(item);
}
}
if (i!=1 && i!=4 && i!=8 && i!=10 & i!=13) {
departCateList[idx] = arrItem;
idx++;
}
}
vueObj.departCateList = departCateList;
}
&
답변 3
Ctrl + F5 로 새로고침 할경우 www 든 클릭 후 든 잘 나옵니다.
그러다는것은 결국 cache 문제로 보여지네요...
최상위 head 쪽에
@header("Cache-Control: no-store, no-cache, must-revalidate");
@header("Cache-Control: post-check=0, pre-check=0", false);
@header("Pragma: no-cache");
를 걸어보세요
네 크롬 안되네요;--;; 그리고 전체적으로 볼때 크롬이네 엣지나 보면 새로 고침이나 메뉴 이동시 리셋 되서 하단 푸터 정보가 순간 보입니다. 일부로 그렇게 표현한건 아닌듯합니다. 확인 해보셔요 뭐 코딩후 리턴값 오류나듯이요