I am trying to decrease the page load times on my two visualforce pages. Both of them are pretty simple queries, I am not sure why it is taking a long time to load each of the pages. The main one I am concerned about is this one:
The controller:
public class EZCampaignEditorExt{
public EZCampaignEditorExt() {
}
// String Qmain = 'Select Id, Topic_Name__c, Name, Status, Expert_Cost__c, Moderator__c, Expert__c, GRI_Event_Type__c, Call_debit__c, Call_date__c from Campaign';
public list<Campaign> PrevWeek = [Select Id, Topic_Name__c, Status, Expert_Cost__c, Moderator__c, Expert__c, GRI_Event_Type__c, Call_date__c from Campaign where Call_date__c = Last_Week Order by Call_date__c ASC];
public list<Campaign> ThisWeek =[Select Id, Topic_Name__c, Status, Expert_Cost__c, Moderator__c, Expert__c, GRI_Event_Type__c, Call_date__c from Campaign where Call_date__c = This_Week Order by Call_date__c ASC];
public list<Campaign> NextWeek =[Select Id, Topic_Name__c, Status, Expert_Cost__c, Moderator__c, Expert__c, GRI_Event_Type__c, Call_date__c from Campaign where Call_date__c = Next_Week Order by Call_date__c ASC];
public PageReference save(){
update PrevWeek;
update ThisWeek;
update NextWeek;
PageReference pageRef = ApexPages.currentPage();
pageRef.setRedirect(true);
return pageRef;
}
public list<Campaign> getPrevWeek(){
Return PrevWeek;
}
public list<Campaign> getThisWeek(){
Return ThisWeek;
}
public list<Campaign> getNextWeek(){
Return NextWeek;
}
}
Here is the VF page:
<apex:page Controller="EZCampaignEditorExt">
<apex:form >
<apex:commandButton value="Save" action="{!save}"/>
<apex:pageBlock mode="InLineEdit">
<apex:pageBlockSection columns="1" Collapsible="True" Title="Previous Week">
<apex:pageBlockTable value="{!PrevWeek}" var="Pweek">
<apex:column headerValue="Call Date">
<apex:outputText value="{0,date,E '-' MM'/'dd'/'yyyy}">
<apex:param value="{!Pweek.Call_Date__c}" />
</apex:outputText>
</apex:column>
<apex:column headerValue="Name">
<apex:outputlink value="/{!Pweek.id}" >{!Pweek.Topic_Name__c}</apex:outputlink>
</apex:column>
<apex:column headerValue="Expert">
<apex:outputfield value="{!Pweek.Expert__c}" />
</apex:column>
<apex:column headerValue="Status">
<apex:outputfield value="{!Pweek.Status}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Expert Cost">
<apex:outputfield value="{!Pweek.Expert_Cost__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Moderator">
<apex:outputfield value="{!Pweek.Moderator__c}" ></apex:outputfield>
</apex:column>
<apex:column headerValue="Event Type">
<apex:outputfield value="{!Pweek.GRI_Event_Type__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Registration">
<apex:outputLink value="/apex/GRIRegistration?id={!Pweek.id}">Registration</apex:outputLink>
</apex:column>
<apex:column headerValue="Attendance">
<apex:outputLink value="/apex/GRIAttendance?id={!Pweek.id}">Attendance</apex:outputLink>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlockSection>
<apex:pageBlockSection columns="1" collapsible="True" Title="This Week">
<apex:pageBlockTable value="{!ThisWeek}" var="Tweek">
<apex:column headerValue="Call Date">
<apex:outputText value="{0,date,E '-' MM'/'dd'/'yyyy}">
<apex:param value="{!Tweek.Call_Date__c}" />
</apex:outputText>
</apex:column>
<apex:column headerValue="Name">
<apex:outputlink value="/{!Tweek.id}" >{!Tweek.Topic_Name__c}</apex:outputlink>
</apex:column>
<apex:column headerValue="Expert">
<apex:outputfield value="{!Tweek.Expert__c}" />
</apex:column>
<apex:column headerValue="Status">
<apex:outputfield value="{!Tweek.Status}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Expert Cost">
<apex:outputfield value="{!Tweek.Expert_Cost__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Moderator">
<apex:outputfield value="{!Tweek.Moderator__c}" ></apex:outputfield>
</apex:column>
<apex:column headerValue="Event Type">
<apex:outputfield value="{!Tweek.GRI_Event_Type__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Registration">
<apex:outputLink value="/apex/GRIRegistration?id={!Tweek.id}">Registration</apex:outputLink>
</apex:column>
<apex:column headerValue="Attendance">
<apex:outputLink value="/apex/GRIAttendance?id={!Tweek.id}">Attendance</apex:outputLink>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlockSection>
<apex:pageBlockSection columns="1" collapsible="True" Title="Next Week">
<apex:pageBlockTable value="{!NextWeek}" var="Nweek">
<apex:column headerValue="Call Date">
<apex:outputText value="{0,date,E '-' MM'/'dd'/'yyyy}">
<apex:param value="{!Nweek.Call_Date__c}" />
</apex:outputText>
</apex:column>
<apex:column headerValue="Name">
<apex:outputlink value="/{!Nweek.id}" >{!Nweek.Topic_Name__c}</apex:outputlink>
</apex:column>
<apex:column headerValue="Expert">
<apex:outputfield value="{!Nweek.Expert__c}" />
</apex:column>
<apex:column headerValue="Status">
<apex:outputfield value="{!Nweek.Status}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Expert Cost">
<apex:outputfield value="{!Nweek.Expert_Cost__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Moderator">
<apex:outputfield value="{!Nweek.Moderator__c}" ></apex:outputfield>
</apex:column>
<apex:column headerValue="Event Type">
<apex:outputfield value="{!Nweek.GRI_Event_Type__c}"></apex:outputfield>
</apex:column>
<apex:column headerValue="Registration">
<apex:outputLink value="/apex/GRIRegistration?id={!Nweek.id}">Registration</apex:outputLink>
</apex:column>
<apex:column headerValue="Attendance">
<apex:outputLink value="/apex/GRIAttendance?id={!Nweek.id}">Attendance</apex:outputLink>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
<apex:commandButton action="{!save}" value="Save"/>
</apex:form>
</apex:page>
Should I investigate maybe using AJAX? All suggestions welcome. Thanks in advanced.
taking a long time
, how long?