코드 복사 코드는 다음과 같습니다.
/* PHP 코드 */
header( "Content- type: text/javascript");
if (!haveCookie('cookieName')) {
// ... 뭔가를 하세요
?> < ;?php
}
?>
얼핏 보면 코드가 완벽해 보이지만 사랑하는 Xiao Ma가 여전히 문제를 발견했습니다. 즉, Javascript에서의 판단은 항상 참입니다
코드를 복사하세요
if ('ununde ' == typeof document.cookie['cookieName']) { // ... }
이 코드는 PHP 측에 if ( !haveCookie('cookieName')), 클라이언트에 표시됩니다. 그러면 이 조건이 충족되지 않으면 이 코드는 당연히 클라이언트에 전달되지 않습니다. 이렇게 말하는 것은 다소 일반적인 것 같으니 먼저 Javascript 코드는 제쳐두고 간단히 PHP 코드를 사용하여 설명하겠습니다
코드 복사
header("Content-type: text/javascript") if (!haveCookie('cookieName')) { if (!haveCookie('cookieName')) { setCookie('cookieName');
}}
?>
이렇게 하면 훨씬 더 명확해집니다. 그러면 문제를 찾기가 쉬울 것입니다. 클라이언트 측에서 Javascript에 의해 실행되었지만 실수로 한 번 더 판단을 내렸습니다.
요약하자면 이 코드에서 생각해낸 말도 안되는 생각은 다음과 같습니다.
코드가 길수록 효율성이 높지 않을 수 있습니다.
여러 판단을 코드에 영향을 주지 않고 최대한 함께 작성하세요.
판단보다 복잡도가 낮은 기능을 먼저 고려하세요
과도한 판단은 프로그램 효율성을 저하시키기 쉽습니다