43
Visualforce ののののの 2012/10/10

Performance of Visualforce

Embed Size (px)

DESCRIPTION

各Visualforceタグの性能検証を実施してみました。

Citation preview

Page 1: Performance of Visualforce

Visualforce の性能検証

2012/10/10

Page 2: Performance of Visualforce

自己紹介

Page 3: Performance of Visualforce

質問①

Page 4: Performance of Visualforce

質問②

Page 5: Performance of Visualforce

画面表示速度に差がありそうなタグ

Page 6: Performance of Visualforce
Page 7: Performance of Visualforce
Page 8: Performance of Visualforce

対戦カード

Page 9: Performance of Visualforce

検証前提

Page 10: Performance of Visualforce

検証方法

Page 11: Performance of Visualforce
Page 12: Performance of Visualforce
Page 13: Performance of Visualforce
Page 14: Performance of Visualforce

検証結果(まとめ)

Page 15: Performance of Visualforce
Page 16: Performance of Visualforce

inputField / outputField が必要な点

Page 17: Performance of Visualforce

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>

Page 18: Performance of Visualforce

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>

Page 19: Performance of Visualforce

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

Page 20: Performance of Visualforce

新たな疑問

Page 21: Performance of Visualforce
Page 22: Performance of Visualforce
Page 23: Performance of Visualforce

検証結果(まとめ②)

Page 24: Performance of Visualforce

速度・変化の関係図

Page 25: Performance of Visualforce

タグ利用のメリット・デメリット

Page 26: Performance of Visualforce
Page 27: Performance of Visualforce

 

Page 28: Performance of Visualforce

参考

Page 29: Performance of Visualforce

参考: 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; }}

Page 30: Performance of Visualforce

参考: 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>・・・・・

Page 31: Performance of Visualforce

参考: 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>・・・・・

Page 32: Performance of Visualforce

参考: 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}"/>・・・・・

Page 33: Performance of Visualforce

参考: 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>・・・・・

Page 34: Performance of Visualforce

参考: 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>・・・・・

Page 35: Performance of Visualforce

参考: 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>・・・・・

Page 36: Performance of Visualforce

参考: 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>・・・・・

Page 37: Performance of Visualforce

参考: 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}"/>・・・・・

Page 38: Performance of Visualforce

参考: 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>・・・・・

Page 39: Performance of Visualforce

参考: 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>・・・・・

Page 40: Performance of Visualforce

参考: 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>・・・・・

Page 41: Performance of Visualforce

参考: 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>・・・・・

Page 42: Performance of Visualforce

参考: 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>・・・・・

Page 43: Performance of Visualforce

参考: 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>・・・・・