유지 관리 가능성을 높이기 위해 뷰에 사용자 정의 태그를 사용하여 성공 했습니까?많은 HTML 마크 업과 함께 CFM 파일이 섞이지 않도록 사용자 정의 태그를 사용합니까?
맞춤 태그를 사용하면 기본 문자 <cfinclude>
을 사용하면 어떤 이점이 있습니까?
이전에 작성한 사용자 정의 태그가 HTML 유지 기능을 향상 시켰습니까?
감사합니다.
유지 관리 가능성을 높이기 위해 뷰에 사용자 정의 태그를 사용하여 성공 했습니까?많은 HTML 마크 업과 함께 CFM 파일이 섞이지 않도록 사용자 정의 태그를 사용합니까?
맞춤 태그를 사용하면 기본 문자 <cfinclude>
을 사용하면 어떤 이점이 있습니까?
이전에 작성한 사용자 정의 태그가 HTML 유지 기능을 향상 시켰습니까?
감사합니다.
예 및 예.
맞춤 태그는 재사용 가능한 HTML 요소를 구분하는 데 아주 좋습니다. 장점은 범위에서 안전하다는 것이며, 행동을 바꾸기 위해 인수를 전달할 수 있으며, cfinclude
으로는 할 수 없습니다. 부모를 기반으로 동작을 변경하는 중첩 태그를 만들 수도 있습니다. ColdFusion에서 내 HTML 레이아웃의 대부분은이 같은 모양이 분명히 크게 단순화
<cf_layout>
<cf_head title="My Page>
<!--- Some local head stuff ---->
</cf_head>
<cf_content>
Lots of stuff goes here.
</cf_content>
</cf_layout>
을,하지만 사용자 정의 태그를 변경, 또는 사용자 정의 태그 폴더를 변경하여 사이트의 전체 레이아웃을 변경할 수 있습니다 (생각 this.customTagPaths
레이아웃 바꾸기
사용자 정의 태그는 충분한 사랑을 얻지 못합니다.
<cfset arOrders = OrderService.getOrders() />
<table>
<cfloop array="#arOrders#" index="currentOrder">
<cf_orderrow order="#currentOrder#" />
</cfloop>
</table>
내 OrderRow
사용자 정의 태그는 테이블의 주문에 대한 행을 표시하기위한 표시를 모두 처리합니다
는 여기에 내가 무언가의 또 다른 예입니다. 여기에는 추가/수정/삭제 버튼, 발생해야하는 계산, 디스플레이를 변경해야하는 조건이 포함됩니다. 내가 관리 영역에서 원하는 위치에 행을 표시 할 수 있습니다. 고객 세부 사항 페이지에서 특정 기간의 모든 주문을 보여주는 페이지. 아무런 차이가 없습니다. 내 사용자는 주문을 설명하는 행을 볼 수있는 곳이라면 예상대로 표시됩니다.
다음은 여러 응용 프로그램에서 사용하는 작은 사용자 정의 태그의 몇 가지 구체적인 예입니다.
이 페이지에 jQuery를하고 jQueryUI 포함되지만 응용 프로그램에서 다른 템플릿이 이미이 요청에 jQuery를 추가하지 않은 경우에만
cf_jquery. 이를 통해 페이지에 여러 개의 jQuery 파트를 작성할 수 있으며, 어떤 순서로 호출했는지에 관계없이 jQuery가 문서 헤드에 한 번만 추가되었다는 것을 항상 알게됩니다.
<cfif thisTag.ExecutionMode EQ "end" AND (NOT StructKeyExists(Request, "JQueryInited") OR Request.JQueryInited EQ False)>
<cfparam name="Attributes.IncludeUI" default="False" />
<cfparam name="Request.jQueryUIInited" default="False" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<cfif Attributes.IncludeUI AND Request.jQueryUIInited IS False>
<link href="/shared/css/smoothness/jquery-ui-1.8.11.custom.css" rel="stylesheet" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
<cfset Request.jQueryUIInited = True />
</cfif>
<cfset Request.JQueryInited = True />
</cfif>
I도이 cf_contact
태그 같이 내가 여러 위치에서 응용 프로그램 전체에서 사용됩니다 알고있는 작은 정보 태그 구축 :
<cfif thisTag.ExecutionMode EQ "end">
<cfparam name="Attributes.Phone" default="xxx.xxx.xxxx" />
<cfparam name="Attributes.Email" default="[email protected]" />
<cfparam name="Attributes.EmailName" default="Email Support" />
<h2 style="font: bold 12px Verdana, Geneva, Arial, Helvetica, sans-serif; margin-bottom: 0;">Contact Us</h2>
<p style="text-align: left; margin-top: 0;"><cfoutput>#Attributes.Phone#</cfoutput><br />
<cfoutput><a href="mailto:#Attributes.Email#">#Attributes.EmailName#</a></cfoutput></p>
</cfif>
가 왜 그렇게 작은 일에 대한 태그를 만들를? 왜 안돼? 사용자가 모든 연락처 정보를 응용 프로그램 전체에 걸쳐 스타일을 지정하면 (즉, 사용자가 쉽게 식별 할 수 있도록해야 함) 포함 시키면 쉽게 태그를 만들 수 있습니다. 다른 프로그래밍 방식의 동작이 거기에서 일어나길 원한다면 내 앱이 이미 그것을 사용하도록 설정되어 있습니다.(: mm 고작 HH)
cf_timeblock
이 사용자 정의 태그는 시간 블록을 선택하는 선택 목록의 집합을 보여줍니다. 나는 스케줄링을 다루는 어플리케이션 전체에서 이것을 사용한다. 그래서 나는 한 블록 동안 한 블럭을 표시 할 수있는 태그를 가지고 있으며, 어떤 값을 미리 선택해야하는지 보낼 수있다. (나는 속성에 대한 검증이 없다. 하지만 그냥) 지금은 거기 척 :
<cfif thisTag.ExecutionMode EQ "end">
<cfsilent>
<!--- Get Time Blocks --->
<cfset TimeBlocks = Application.DAO.getTimeQueries() />
</cfsilent>
<select name="hour" style="width: auto; float: none;">
<cfoutput query="TimeBlocks.Hours">
<option value="#TimeBlocks.Hours.Value#"<cfif TimeBlocks.Hours.Value EQ Attributes.Hour> selected="selected"</cfif>>
#TimeBlocks.Hours.Value#
</option>
</cfoutput>
</select>:<select name="min" style="width: auto; float: none;">
<cfoutput query="TimeBlocks.Mins">
<option value="#TimeBlocks.Mins.Value#"<cfif TimeBlocks.Mins.Value EQ Attributes.Min> selected="selected"</cfif>>
#TimeBlocks.Mins.Value#
</option>
</cfoutput>
</select>
<select name="mer" style="width: auto; float: none;">
<cfoutput query="TimeBlocks.Mer">
<option value="#TimeBlocks.Mer.Value#"<cfif TimeBlocks.Mer.Value EQ FORM.mer> selected="selected"</cfif>>
#TimeBlocks.Mer.Value#
</option>
</cfoutput>
</select>
</cfif>
내가 이것보다 더 톤을 사용하지만, 그들은 모두 매우 응용 프로그램/특정 객체입니다. 하나의 페이지에서 다른 페이지로 디스플레이 로직을 복사하는 경우, 필자는 그 코드를 사용자 정의 태그에 넣을 수있는 방법에 대해 생각하기 시작합니다.
다음은 유용하다고 생각되는 맞춤형 태그 라이브러리의 몇 가지 예입니다.
<!--- loop.cfm --->
<cfif (THISTAG.ExecutionMode EQ "Start")>
<cfparam name="attributes.index" type="variablename">
<cfparam name="attributes.iterations" type="integer">
<cfset variables.index = 1>
<cfset caller[attributes.index] = variables.index>
<cfelse>
<cfset variables.index = variables.index + 1>
<cfif variables.index lte attributes.iterations>
<cfset caller[attributes.index] = variables.index>
<cfexit method="loop">
<cfelse>
<cfexit method="exittag">
</cfif>
</cfif>
<!--- testLoop.cfm --->
<cf_loop iterations="10" index="i">
<cfoutput>[#i#]</cfoutput>Hello World<br />
</cf_loop>
: 댄의 다른 훌륭한 노력에서 누락
Dan Short의 답변에 동의합니다. 여전히 사용자 정의 태그를 사용합니다. Dan의 답변을 넘어서는 Railo는 일반 사용자 정의 태그와 함께 CFC 사용자 정의 태그를 사용하여 내장 태그/내장 함수를 작성하므로 자신의 태그/기능을 Railo로 구울 수 있습니다. – webRat
또한 일반적으로 cf_, cfimport prefix = 또는 cfmodule을 사용하여 사용자 정의 태그를 호출합니까? – Henry
"cf_", cf 모듈 또는 cfimport를 사용하면 커스텀 태그는 똑같이 작동합니다. 개인적으로 cfimport 메소드를 정말 좋아하게되었습니다. –
한 예는 매우 강력하지만 아래-활용 능력 사용자 정의 태그 밀폐 된 내용을 반복 할 필요가있다 커스텀 태그를 사용하기 위해 내가 제안 할 한 가지주의 사항은 그들이 메모리를 누출하기 쉽다는 말을 들었다는 것이다. aniate this), 트래픽이 많은 사이트에서 사용한다면, 그것들을 사용하기 전에 철저히 테스트 해보아야합니다.
물론입니다. 항상 Ben Nadel의 date loop 커스텀 태그를 사용합니다 :). 나 또한 * 중첩 * 사용자 정의 태그를 절대적으로 사랑하고 더 복잡한 동작을위한 빌딩 블록을 만듭니다. 일단 거기에 들어가면 많은 힘이 있습니다. –
죄송합니다. from, to, index, step이있는 일반 cfloop과 어떻게 다른가요? – Henry
http://www.bennadel.com/blog/1689-Advanced-ColdFusion-Custom-Tags-With-Ben-Nadel-Video-Presentation-.htm 및 http://www.bennadel.com/blog/927을 확인하십시오. -Generated-Content-And-Looping-ColdFusion-Custom-Tags.htm. 또한 http://www.google.com/#sclient=psy&hl=ko&safe=active&source=hp&q=custom+tag+site:bennadel.com&pbx=1&oq=custom+tag+site:bennadel.com&aq=f&aqi=&aql=&gs_sm = e & gs_upl = 4679l5128l1l5457l2l2l0l0l045ll2l2l0l0l0l0l0l86l152l2l2l0 & bav = on.2 or.r_gc.r_pw.r_cp. & fp = 17d332deb5615e0d & biw = 1255 & bih = 1068 –
''에 비해 유지 관리 능력이 크게 향상되는 다른 예제는 무엇입니까? 감사합니다 –
Henry
망고 블로그는 CT를 매우보기 좋게 사용합니다. http://www.mangoblog.org – Sergii