제목 | 자바스크립트 두번호출이 됩니다. | ||
---|---|---|---|
글쓴이 | 짱구 | 작성시각 | 2013/05/31 15:47:58 |
|
|||
날코딩으로만 열심히 하다가 프레임웍 공부를 하려고 하는 중 최초 구조를 잡아보고자 하여 top,left,content,footer를 나눠놨습니다. public function index(){ $this->load->view('top'); $this->load->view('left'); $this->load->view('notice/write'); $this->load->view('footer'); }이런식으로 뿌리도록 하였는데요. [top] 페이지에는 공통으로 쓰는 javascript가 있고, [notice/write ] 이 페이지내부에서 [write] 페이지에서 사용할 javascript를 또 작성하였는데. 페이지 호출이 write 페이지가 연속으로 두번 호출이 되더라구요. 어떤 부분이 잘못 된건지를 몰라서요. 애초에 구조를 저렇게 잡지 말고, 파일 내부에서 include 방식으로 가야하는건지 궁금해서 여쭙습니다. |
|||
다음글 | url/변수 질문이요 (3) | ||
이전글 | 컴포넌트 작성 질문. (3) | ||
키
/
2013/05/31 15:58:00 /
추천
0
|
변종원(웅파)
/
2013/05/31 16:01:57 /
추천
0
키님 말씀처럼 어디선가 한번 더 호출했을 겁니다.
|
짱구
/
2013/05/31 16:07:00 /
추천
0
음.. 이렇게 사용해본건 처음이라서요^^; 일단 저렇게 나눠서 하는게 맞다니 다행이군여.. top.php 부분에서 $(function(){ // 다른 스크립트 }); write.php 부분에서 $(function(){ //write 부분 스크립트 });이와같이 onload가 두번 존재해서 그런거 같은데요... top에서도 onload해서 써야할 함수가 있고 write에서도 onload 해서 써야 할 함수가 있는데 이럴땐 어떻게 처리를 해야 할까요.. ㅜㅜ onload가 두개 있어서 호출이 두번 되는거 같더라구요. |
변종원(웅파)
/
2013/05/31 16:27:34 /
추천
0
그럴때는 top에서만 onload 실행하고 주소에 따라 write 부분을 실행하게 해주면 됩니다.
주소가 a.com/write/post 라면 <script> $(function(){ <?php if ($this->uri->segment(1) == 'write') { //write 스크립트 } ?> }); </script> |
짱구
/
2013/05/31 16:42:49 /
추천
0
키: 감사합니다.( _ _ ) |
키
/
2013/05/31 17:46:12 /
추천
0
짱구 //
답을 찾으셨다니 다행입니다 다만 보다가 조금 의아한 부분이 있어서 추가 댓글을 조금 답니다. 작성된 코드상에 파일에 네이밍되어있는 것으로 보아서는 top 파일은 공용으로 불러지는 파일이 될것 같은데 이렇게 되면 write파일에서 해당 스크립트는 당연히 같이 사용 가능할테구요 write 파일에 있는 스크립트를 지우면 쉽게 해결이 될 것 같은데요?;; 만약 write 파일이 top 없이 단독 호출되는 경우가 있고 이 경우에도 스크립트가 사용되어져야 한다면 또 다른 방법으로 처리되어야 할 것이구요 별것 아니지만 보다보니 생각나서 조금 더 적었습니다 ^^; |
짱구
/
2013/06/01 01:51:09 /
추천
0
키 // |
혹시 다른파일에서 write를 include 해오는게 아닌지..
또는 페이지를 분할하시면서 다른곳에 소스가 겹쳐서 작성된게 아닌지 싶네요
그리고 ci구조라면 include를 사용할 일은 거의 없을 것 같네요
해당 파일도 mvc 구조에 맞게 분할 후 ci에서 호출하면 될테니까요
가급적이면 코딩의 일관성을 위해 include는 자제 하심이 좋을 듯 합니다.
(라고 말하지만 저 역시 초보..)