>웹 프론트엔드 >JS 튜토리얼 >Ajax 응답에서 반환된 JavaScript 함수를 평가하는 방법은 무엇입니까?

Ajax 응답에서 반환된 JavaScript 함수를 평가하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-22 12:44:03268검색

How to Evaluate Returned JavaScript Functions from Ajax Responses?

Ajax에서 반환된 JavaScript 함수 통합

Ajax 응답이 JavaScript 함수가 포함된 스크립트 블록을 전달할 때 문제가 발생합니다. 특정 작업을 실행하려면 이 함수를 실행해야 합니다.

해결책: 함수 코드 평가

요소의 경우 선언 코드가 명시적으로 실행되지 않는 한 브라우저는 새 함수의 존재를 인식하지 못합니다. 이를 달성하려면 eval()을 사용하여 함수의 코드를 평가해야 하며, 함수를 공식적으로 선언하고 페이지 전체 수명 동안 함수에 액세스할 수 있도록 해야 합니다.

다음의 간단한 예를 고려하세요.

<code class="html"><script>
  var newFunc = '<script>function go() { alert("Hello!") }</script>';
  var e = document.getElementById('myElement');
  e.innerHTML = newFunc;
  eval(document.getElementById('newFunc').innerHTML);
</script></code>

이 시나리오에서는 Ajax가 사용되지 않지만 개념은 동일하게 유지됩니다. 스크립트 블록은

eval()을 사용하여 함수 선언을 실행하기 전에.

추가 고려 사항

이 접근 방식이 모든 상황에서 최적이 아닐 수도 있다는 점은 주목할 가치가 있습니다. 반복적인 Ajax 호출 또는 다양한 컨텍스트 내에서 함수 지속성에 대한 우려로 인해 다음과 같은 대체 설계 솔루션이 필요할 수 있습니다.

  • 별도의 JavaScript 파일에 함수 노출
  • krosenvold에서 설명하는 프로토타입 접근 방식 사용( 브라우저 간 호환성, 테스트된 기능)

궁극적으로 최상의 솔루션은 애플리케이션의 특정 요구 사항과 상황에 따라 다릅니다.

위 내용은 Ajax 응답에서 반환된 JavaScript 함수를 평가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.