사이트를 오래 운영하면서 사용자에게 페이지를 출력해 주는 속도에 관해 많이 고민도 해복 실제 테스트도 해보고 하는 과정에서 우연히 겉보기에는 가장 간결해 보이는 테이블형의 게시판 출력이 오히려 더 복잡해 보이는 웹진,갤러리 등 의 스타일보다 상당한 시간이 더 걸린다는 것을 발견하고 이유를 찾아 보았습니다.
그 이유는 테이블형에서는 운영자의 편의를 위해 목록에서 운영자가 설정한 순서대로 배치할 수 있는 기능이 있습니다.
게시판 설정에서 조회수,추천수,작성일자,확장변수 항목을 순서를 정해주면 이 순성 맞추어 목록에서 정렬을 해 주는 편리한 기능이죠.
그런데 이 순서를 확인하기 위해서 매번 이 게시판 설정을 조회햇 이 순서에 맞추어 게시글 전체를 재배치 하느라 추가적인 작업 부하가 걸리는 거죠..
<thead class="bg_f_f9"> <!--// 테이블 헤더 --> <tr> <block loop="$list_config=>$key,$val"> <th scope="col" cond="$val->type=='no' && $val->idx==-1" class="no"><span><a href="{getUrl('order_type',$order_type)}" title="<!--@if($order_type=="desc")-->{$lang->order_desc}<!--@else-->{$lang->order_asc}<!--@end-->">{$lang->no}</a></span></th> <block cond="$val->type=='title' && $val->idx==-1"> <th scope="col" cond="!$mi->show_cate && $mi->use_category=='Y'" class="m_no"><span>{$lang->category}</span></th> <th scope="col" class="title"><span><a href="{getUrl('sort_index','title','order_type',$order_type)}"><!--@if(!$mi->link_board)-->{$lang->title}<!--@else-->{$lang->link_site}<!--@end--><i cond="$sort_index=='title'" class="arrow {$order_icon}"></i></a></span></th> </block> <th scope="col" cond="$val->type=='nick_name' && $val->idx==-1"><span>{$lang->writer}</span></th> <th scope="col" cond="$val->type=='user_id' && $val->idx==-1"><span>{$lang->user_id}</span></th> <th scope="col" cond="$val->type=='user_name' && $val->idx==-1"><span>{$lang->user_name}</span></th> <th scope="col" cond="$val->type=='regdate' && $val->idx==-1"><span><a href="{getUrl('sort_index','regdate','order_type',$order_type)}">{$lang->date}<i cond="$sort_index=='regdate'" class="arrow {$order_icon}"></i></a></span></th> <th scope="col" cond="$val->type=='last_update' && $val->idx==-1" class="m_no"><span><a href="{getUrl('sort_index','last_update','order_type',$order_type)}">{$lang->last_update}<i cond="$sort_index=='last_update'" class="arrow {$order_icon}"></i></a></span></th> <th scope="col" cond="$val->type=='last_post' && $val->idx==-1" class="m_no"><span>{$lang->last_post}</span></th> <th scope="col" cond="$val->type=='readed_count' && $val->idx==-1" class="m_no"><span><a href="{getUrl('sort_index','readed_count','order_type',$order_type)}">{$lang->readed_count}<i cond="$sort_index=='readed_count'" class="arrow {$order_icon}"></i></a></span></th> <th scope="col" cond="$val->type=='voted_count' && $val->idx==-1" class="m_no"><span><a href="{getUrl('sort_index','voted_count','order_type',$order_type)}">{$lang->voted_count}<i cond="$sort_index=='voted_count'" class="arrow {$order_icon}"></i></a></span></th> <th scope="col" cond="$val->idx!=-1" class="m_no"|cond="$val->eid!='link_url'"><span><a href="{getUrl('sort_index',$val->eid,'order_type',$order_type)}">{$val->name}</a></span></th> </block> <th scope="col" cond="$grant->manager" class="m_no"><span><input type="checkbox" onclick="XE.checkboxToggleAll({ doClick:true });" class="iCheck" title="Check All" /></span></th> </tr> </thead>
스킨마다 조금씩 다르겠지만 스케치북5의 코드를 보면 테이블의 헤더만 보면 저런 부분이 게시판 설정에 순서를 확인한 다음 그 설정된 순서를 가지고 출력하기 위한 코드입니다.
생각보다 저 작업 시간이 많이 소요 됩니다.
개인적으로는 테이블형 보다는 게시글 정보 등의 순서가 임의로 스킨에 작성된 대로 출력되는 다른 스킨을 사용하는게 쾌적한 속도를 제공해주는데 유리하고 다른 스타일이 불편함을 느끼지 못해서 테이블형이 아닌 것을 사용하는 것도 좋다고 생각합니다.
스케치북5 반응형을 사용하는 경우 그냥 모바일 기본형을 PC에서도 쓰는 것도 좋아 보입니다.