Visualforce の性能検証
2012/10/10
自己紹介
質問①
質問②
画面表示速度に差がありそうなタグ
対戦カード
検証前提
検証方法
検証結果(まとめ)
inputField / outputField が必要な点
inputField / outputField の代替案
<a href="../{!Reference__r.Id}" target="_blank"> {!Reference__r.Name}</a>
<apex:outputText value="{0,date,yyyy/MM/dd HH:mm:ss}"> <apex:param value="{!DateTime1__c}" /></apex:outputText>
inputField / outputField の代替案
<apex:outputText value="{0, number, ###,###.##}"> <apex:param value="{!Number1__c}" /> </apex:outputText>
<apex:outputText value="{0, number, currency}"> <apex:param value="{!Currency1__c}" /></apex:outputText>
inputField / outputField の代替案
<apex:outputText value="{0, number, percent}"> <apex:param value="{!Percent1__c}/100" /></apex:outputText>
◇ 参考: apex:outputTexthttp://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_outputText.htm
新たな疑問
検証結果(まとめ②)
速度・変化の関係図
タグ利用のメリット・デメリット
参考
参考: Apex クラスpublic class PerformanceController { public List<Performance__c> performance; public void exec() { performance = [SELECT Name, Text1__c, Text2__c, Text3__c, Text4__c, Text5__c, Text6__c, Text7__c, Text8__c, Text9__c, Text10__c FROM Performance__c ORDER BY Name limit 1000]; } public LIST<Performance__c> getPerformance() { return performance; }}
参考: Visualforce ページ (pageBlockTable × inputField)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <apex:pageBlockTable value="{!performance}" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:inputField value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:inputField value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (pageBlockTable × inputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <apex:pageBlockTable value="{!performance}" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:inputText value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:inputText value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (pageBlockTable × column)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:pageBlockTable value="{!performance}" var="item"> <apex:column value="{!item.Name}"/> <apex:column value="{!item.Text1__c}"/>・・・・・
参考: Visualforce ページ (pageBlockTable × outputField)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:pageBlockTable value="{!performance}" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:outputField value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:outputField value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (pageBlockTable × outputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:pageBlockTable value="{!performance}" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:outputText value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:outputText value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (dataTable × inputField)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <apex:dataTable value="{!performance}" border="1" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:inputField value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:inputField value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (dataTable × inputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <apex:dataTable value="{!performance}" border="1" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:inputText value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:inputText value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (dataTable × column)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:dataTable value="{!performance}" border="1" var="item"> <apex:column value="{!item.Name}"/> <apex:column value="{!item.Text1__c}"/>・・・・・
参考: Visualforce ページ (dataTable × outputField)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:dataTable value="{!performance}" border="1" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:outputField value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:outputField value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (dataTable × outputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <apex:dataTable value="{!performance}" border="1" var="item"> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Name.label}</apex:facet> <apex:outputText value="{!item.Name}"/> </apex:column> <apex:column > <apex:facet name="header">{!$ObjectType.Performance__c.fields.Text1__c.label}</apex:facet> <apex:outputText value="{!item.Text1__c}"/> </apex:column>・・・・・
参考: Visualforce ページ (repeat × inputField)
<apex:page controller="PerformanceController"> <apex:form> <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <TABLE border="1"> <TR> <TH>{!$ObjectType.Performance__c.fields.Name.label}</TH> <TH>{!$ObjectType.Performance__c.fields.Text1__c.label}</TH> </TR> <apex:repeat value="{!performance}" var="item"> <TR> <TD><apex:inputField value="{!item.Name}"/></TD> <TD><apex:inputField value="{!item.Text1__c}"/></TD>・・・・・
参考: Visualforce ページ (repeat × inputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> <apex:pageBlock id="block"> <TABLE border="1"> <TR> <TH>{!$ObjectType.Performance__c.fields.Name.label}</TH> <TH>{!$ObjectType.Performance__c.fields.Text1__c.label}</TH> </TR> <apex:repeat value="{!performance}" var="item"> <TR> <TD><apex:inputText value="{!item.Name}"/></TD> <TD><apex:inputText value="{!item.Text1__c}"/></TD>・・・・・
参考: Visualforce ページ (repeat × outputField)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <TABLE border="1"> <TR> <TH>{!$ObjectType.Performance__c.fields.Name.label}</TH> <TH>{!$ObjectType.Performance__c.fields.Text1__c.label}</TH> </TR> <apex:repeat value="{!performance}" var="item"> <TR> <TD><apex:outputField value="{!item.Name}"/></TD> <TD><apex:outputField value="{!item.Text1__c}"/></TD>・・・・・
参考: Visualforce ページ (repeat × outputText)
<apex:page controller="PerformanceController"> <apex:form > <apex:commandButton value=" リスト表示 " action="{!exec}" reRender="block" /> </apex:form> <apex:pageBlock id="block"> <TABLE border="1"> <TR> <TH>{!$ObjectType.Performance__c.fields.Name.label}</TH> <TH>{!$ObjectType.Performance__c.fields.Text1__c.label}</TH> </TR> <apex:repeat value="{!performance}" var="item"> <TR> <TD><apex:outputText value="{!item.Name}"/></TD> <TD><apex:outputText value="{!item.Text1__c}"/></TD>・・・・・