2012-06-03 2 views
1

내 질문은 codeigniter의 도우미 함수 인 base_url()을 참조합니다. 아이디어는 내 응용 프로그램의 base_url을 가져 와서 내보기 페이지의 아무 곳에서나 반향시킬 수 있다는 것입니다.codeigniter의 base_url() 사용에 관한 모범 사례/최적화

다음은 base_url()을 사용하는 예입니다.

<script type="text/javascript" language="javascript" src="<?php echo base_url(); ?>assets/js/jquery.js"></script> 

나는 경우에 따라서는 DOM로드에서 여러 번 전화를하고 PHP를 변수로 저장보다는 BASE_URL의 fuynction 때마다 전화를하는 것이 좋습니다 것이 궁금했다. 그래서 같이 :

<?php 
    $this->load->helper('url'); 
    $base_url = base_url(); // Set to variable, so we don't method call each time 
?> 

<script type="text/javascript" language="javascript" src="<?php echo $base_url; ?>assets/js/jquery.js"></script> 

나는이 오히려 초보자 질문 알지만, 나는 꽤 OCD 최적화에 관한 봤는데 코드의 추가는 그 무게 가치가있을 것인지 궁금입니다. 내 머리와 몸 모두에서 base_url()을 사용할 때 변수 정의를 두 번 추가해야합니다. 어떤 도움을 주셔서 감사합니다.

+0

몇 가지 함수 호출의 오버 헤드를 제거하기 위해 임시로 서버의 메모리에 몇 바이트의 데이터를 저장합니다. 좋은 거래처럼 보입니다. 2 천 명이 넘는 사용자가 동시에 페이지를로드하지 않으면 눈에 띄는 변화가 일어날 것입니다. –

+0

$ baseurl을 세션에 저장하여 헤드 태그와 바디 태그 모두에서 호출 할 수 있습니까? – Omegalen

+0

세션? 다른 범위 함수 내에서 var을 사용하고 있습니까? 예, 글로벌 변수를 사용하거나 [superglobal] (http://php.net/manual/en/language.variables.superglobals.php) 인'$ _SESSION'에 저장할 수 있습니다. –

답변

1

성능 측면에서 보면 어느 쪽이든 상관 없습니다. 코드를 읽기/유지하기 쉽게 만드는 모든 것을하십시오. 세션에 배치하지 마십시오.

미세한 최적화가 필요하다면 PHP를 사용하지 말아야합니다. 원시 처리 능력에있어 가장 느린 것 중 하나이기 때문에 PHP를 우선 사용해서는 안됩니다.

+0

PHP를 저주하는 데는 +1하지만 주제에 대해서는'$ _SESSION'을 사용하지 않는 확실한 이유가 있습니까? 그것은 서버 측에 보관 될 것이고 당신이 볼 수있는 한 전역 흉법과 마찬가지로'global myVar; '를 선언 할 필요없이 어떤 범위에서나 액세스 할 수 있습니다. 물론, 그것은 최선의 방법은 아니지만 일해야합니다. –

+0

@ FabrícioMatté 왜냐하면'$ _SESSION'이 디스크/memcache 서버/다른 어떤 해결책보다 훨씬 더 느리거나 가변적 인/함수 호출로 저장되기 때문입니다. – Esailija

+0

오, 내 어리 석음. : P 나는 그들이 서버로부터 더 많은 자원을 사용한다는 것을 알았지 만 그것이 디스크/memcache의 형태로 있다는 것을 깨닫지 못했다. –

관련 문제