JavaScript 코드에 서버 측 태그를 포함하는 것에 대해 논쟁을 벌여 왔지만 확신이없는 개발자가 오늘 당장 발표했습니다.JavaScript 코드 블록에 서버 측 스크립팅을 포함하는 것에 대한 논쟁은 무엇입니까?
문제의 코드는 기존 ASP 응용 프로그램 이었지만 ASP.NET이나 PHP (예를 들어)에 똑같이 적용될 수 있기 때문에 크게 중요하지 않습니다.
예제는 ServerSide 코드에서 정의한 상수의 사용을 중심으로 진행되었습니다. 이에 대한
'VB
Const MY_CONST: MY_CONST = 1
If sMyVbVar = MY_CONST Then
'Do Something
End If
//JavaScript
if (sMyJsVar === "<%= MY_CONST%>"){
//DoSomething
}
내 표준 인수는 다음과 같습니다
- 스크립트 주입 : 서버 측 태그는 자바 스크립트 코드를
- 단위 테스트를 깰 수있는 코드를 포함 할 수있다. 테스트 용 코드 단위를 분리하는 것이 더 힘들다.
- 코드 분리 : 가능한 한 웹 페이지 기술을 분리해야한다.
이렇게하는 이유는 개발자가 두 곳에서 상수를 정의 할 필요가 없었기 때문입니다. 그들은 그것이 통제하는 가치 였기 때문에 스크립트 주입의 대상이 아니라고 추론했습니다. 이것은 (1) "표준을 단순하게 유지하려고 노력하고 예외 사례를 정의하는 것이 사람들을 혼란스럽게 할 것"이라고 내 정당성을 감소시켰다. 단위 테스트와 코드 분리 인수는 페이지 자체가 HTML, 자바 스크립트, ASP.NET, CSS, XML 등의 끔찍한 아말감이 있습니다. 이 페이지에 포함될 모든 코드는 단위 테스트를 거칠 수 없습니다.
그래서 나는 상황이 주어지면 코드가 변경되었다고 주장하는 약간의 느낌이 들었다.
내 추론을 뒷받침 해줄 수있는 또 다른 주장이 있습니까, 아니면 제가이 주장에서 실제로 약간의 의미를 지니고 있습니까?
HTML을 출력하기 위해 서버 측 코드를 사용하는 것과 달리 서버 측 코드를 사용하여 javascript를 출력하는 것의 차이점은 무엇입니까? 필요한 경우 필요합니다. – Paddy
귀하의 가정에 결함이 있습니다 - 귀하가 제공 한 코드 예제에는 아무런 문제가 없습니다. – meagar
@Paddy, @meagar : 귀하의 의견에 감사 드리며, 나는 훌륭한 답변에서 @Pointy가 제공 한 "왜?"에 대해 더 많은 논의를하기를 바랬습니다. 저의 원래 질문은 @ Paddy의 질문 ("What 's the Difference ...")을 직접적으로 다루면서 @ meagar의 주장 ("귀하의 가정에 결함이있는")이 그 자체로 결함이있는 이유를 설명합니다. –