제목 | CI 자바스크립트 로딩 | ||
---|---|---|---|
글쓴이 | 유마 | 작성시각 | 2012/11/26 14:11:07 |
|
|||
일반 php 하고 다른 점이 있나요? <body> <script></script> </body> 이렇게 바디에 넣어도 보고 <head></head> 안에도 넣어도 보고 여러가지 해봤는데.. 뷰 페이지가 너무 빨리 뿌려지는지.. js 파일에서 선언해놓은 함수가 선언되지 않아서 오류가 뜰 때가 있어요. 즉, js 파일이 읽어지지 않아서 그 안에 선언해놓은 게 없다고 뜹니다.. 바디에 넣던 헤드에 넣던... 왠만하면 이런 일이 없는데... CI에서는 이렇네요.. 뭐가 문제일까요? 밑에 뜨는 log가 원래 저 tapImgChange 함수를 실행하면 나오는 메세지입니다. 근데 로딩후 초반에는 간혹 저게 실행되지 않고.. 저렇게 뜰 때가 있습니다. |
|||
다음글 | 어디서부터 시작을 해야할지 모르겠네요.ㅠㅠ (8) | ||
이전글 | 다중 사용자 블로그 만들때 문의 (1) | ||
변종원(웅파)
/
2012/11/26 15:39:46 /
추천
0
|
유마
/
2012/11/26 15:53:24 /
추천
0
// head 로 넘겨줄 데이터 // $data['head'] = array( 'trans_fr' => $trans_fr, 'footer' => $footer, 'head_logo' => logo_display($trans_fr), 'head_info' => $this->ci->common_m->getMetaData($uri_string), 'jtx' => $jtx, 'mem_total' => $this->ci->common_m->getSysMemTypePerCount(), 'login_mem' => $login_mem, 'tap_menu' => getTapmenuImg($this->ci->uri->segment(1)) ); // head 로 넘겨줄 데이터 // // left 로 넘겨줄 데이터 // $data['left'] = array( 'trans_fr' => $trans_fr, 'jtx' => $jtx, 'login_mem' => $login_mem, 'left_evaluation' => getEvaluation($left_evaluation), 'interview' => get_interview() ); // left 로 넘겨줄 데이터 // $data['footer'] = array( 'footer' => $footer ); $view['head'] = $this->ci->load->view('include/head', $data['head'], TRUE); $view['leftLogin'] = $this->ci->load->view('include/leftLogin', $data['left'], TRUE); $view['leftMenu'] = $this->ci->load->view('include/leftMenu', $data['left'], TRUE); $view['footer'] = $this->ci->load->view('include/footer', $data['footer'], TRUE); $this->ci->load->vars($view); unset($data); 이렇게 hook 에서 head, left, footer 값들을 만들어서 던져두고... function _remap($method) { if($method == 'index') { $this->index(); } else { $this->{$method."_method"}(); } } function index() { $this->load->view('speed/speed_trans', $view); } function speeds_method() { $this->load->view('speed/speeds', $view); } 컨트롤러에서 _remap 으로 처리를 합니다... javascript는 footer 에서 </body> 앞에 삽입해보고... <head> 안에도 삽입해보고 하는데.. 로딩될 동안 javascript를 못 읽는 경우가 있는 듯 합니다. |
변종원(웅파)
/
2012/11/26 16:47:20 /
추천
0
$this->output->set_output(); 이걸 컨트롤러의 최종 뷰 다음에 넣어보세요.
hook 시점은 언제인가요? |
유마
/
2012/11/26 16:55:10 /
추천
0
hook 시점은 post_controller_constructor 이때네요.
|
유마
/
2012/11/26 17:04:38 /
추천
0
해보니까.. </body> 앞에 스크립트 넣으니까.. 로딩이 살짝 느린가 보네요..
여전히 선언이 되어 있지 않다고 뜨고요.. 물론, 가끔! <head> 안에 넣으니까.. 아무 문제 없이 잘 되고요.. 그리고, $this->output->set_output(); 로 출력하니깐 속도가 조금 더 빨라졌네요? |
mvc 패턴은 지켜지고 있는거죠? 뷰가 없다거나 컨트롤러에서 처리한다거나 하지는 않는지요?
헤더, 푸터는 어떻게 처리하는지 상황을 알아야 답변이 가능합니다.
_remap 같은 걸 쓰는지 컨트롤러에서 그냥 헤더, 푸터를 선언하여 쓰는지에 따라도 달라집니다.