제목 | view에서 ajax호출시 생성자 중복 호출 관련 문제 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 게구리 | 작성시각 | 2017/11/02 11:10:03 |
|
|||
안녕하세요.
제목대로 view에서 ajax로 컨트롤러 메소드 호출시에 생성자가 두 번 호출되는 현상인데 혹시 이게 정상적인 건가요?
윈도우10 php 버전 7 ci 버전 3.1.5 아파치 2.4
사용중입니다.
코드내용은 ---------------------------컨트롤러---------------------------------------------------------------- <?php if (! defined('BASEPATH')) exit('No direct script access allowed'); class test_curl extends CI_Controller{ public function __construct(){ parent::__construct(); echo "test"; $fp = fopen("C:\\dev\\test_".mt_rand().".txt","w") or die("Unable to open file!"); fwrite($fp,"123123"); fwrite($fp,"123123"); fclose($fp); } public function index(){ $data = array(); $this->load->view('test_curl',$data); } public function test(){ } } --------------------------------------------------------------------------------------------------
---------------------------뷰--------------------------------------------------------------------- <html> <head></head> <body> <div>view입니다</div> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script><script> $(document).ready( function () { alert(); $.post("http://localhost/ci/index.php/test_curl/test",'',function (res) { alert(); }); }); </script> </body> </html> ------------------------------------------------------------------------------------------------------
페이지로드시 경로에 파일 하나를 생성하는데 뷰에서 ajax요청시 파일이 하나 더 생성됩니다.. 그래서 위의 페이지 접근시 파일이 두개가 생성되는데요
이게 원래 정상적인 동작인 건가요...혹시 코드에 무슨 문제가 있을까요 |
|||
태그 | php,ci,ajax | ||
다음글 | index 없애기 이후 메인->다른페이지이동시 문... (1) | ||
이전글 | 액티브 레코드 update에서 테이블과 컬럼이름에 공백... (2) | ||
닥
/
2017/11/02 11:19:50 /
추천
0
|
게구리
/
2017/11/02 11:31:04 /
추천
0
아하..댓글감사드립니다 로직을 생성자에 넣지않는 방법을 고민해봐야겠네요 ㅠㅠ |
우선 클레스의 개념에 대해서 아셔야 할듯 하네요.
__construct 이 함수의 경우 class 가 인스턴스화 될 때, 자동 실행 되는 함수 입니다.
이 함수가 최초 페이지 접근했을 때 __construct를 실행할것이며, 페이지 접근 후에 비동기로 다시 이 클레스에 포함된 메소드를 호출 하시는데,
이때 또 한번 __construct가 실행이 되므로, 그 안에 있는 파일을 생성하는 구문이 총 2번 실행되서 발생하는 문제 입니다.