interesting .. coldbox.xml - ajax - caching

I'm a recent CB convert coming from one of the "other" CF
frameworks...... so I've been breezing thouth the conversion my
project to run WITH coldbox.... I have a small test application i
would like to deploy soon and I've just begun testing my production
code on my production server..

My current brick wall is this....

I show a view which is largely based on CF8's ajax functionality and
controls.. my CB handler simply sets the view to render in my
layout... then ajax communicates with my Service/Model Layers via the
coldboxproxy to build up the grids, selects, and so forth.....

Although slow (because of the dev environment settings) all of the
ajax and rendering works as expected when I have ConfigAutoReload =
false

I am finding an issue after i change settings for production that
right after the first rendering of any CF8 ajax dependent page (after
i have reinited the FW) that the pages will render and display fine on
the first load... HOWEVER, ALL subsequent page views are no good....
I did a view source and noticed that all of the heavy coldfusion CF8
Ajax/JS stuff that gets included at the top of the page is missing,
and the Debug panel says that the rendered view is coming from the
cache.... even though I have set setView(cache='false') in my handlers
event.setView() function call...

I isolated the breaking point to be changing the ConfigAutoReload
value=true.. after that rendered views are from cache and missing the
CF8 Ajax stuff.... Im not sure if there is something else I'm missing,
but I've played with all the settings, and it all works fine until
ConfigAutoReload = false... seems strange to me.

I have to be missing something stupid so i figured i would ask if
anybody hs run into this at some point?
or do you need some code examples to research my issue further?

THANKS for the ColdBox Project.. I used to be tied to another
framework but then found ColdBox had everything i was missing in the
other.... Thanks Again!

Correction:
Everything works as expected when I have - ConfigAutoReload =
TRUE......

Please send your config/coldbox.xml.cfm

Ernst

<Settings>
    <!--The name of your application.-->
    <Setting name="AppName" value="cbETIBMS"/>
    <Setting name="AppMapping" value="/cbETIBMS"/>
    <Setting name="AppMapping" value="/MyApp"/>

    <!--Default Debugmode boolean flag (Set to false in production
environments)-->
    <Setting name="DebugMode" value="false/>
    <Setting name="HandlersIndexAutoReload" value="false" />
    <Setting name="HandlerCaching" value="true"/>
    <Setting name="EventCaching" value="true"/>
    <Setting name="IOCObjectCaching" value="true" />
    <Setting name="ConfigAutoReload" value="true" />
<!-- CF8 ajax views break down coming from cache when i change to
false -->

    <Setting name="DebugPassword" value=""/>
    <Setting name="ReinitPassword" value=""/>
    <Setting name="EventName" value="event"/>
    <Setting name="EnableDumpVar" value="true" />
    <Setting name="EnableColdfusionLogging" value="false" />
    <Setting name="EnableColdboxLogging" value="true" />
    <Setting name="ColdboxLogsLocation" value="logs" />
    <Setting name="DefaultEvent" value="general.index"/>
    <Setting name="RequestStartHandler"
value="main.onRequestStart"/>
    <Setting name="RequestEndHandler" value="main.onRequestEnd"/>
    <Setting name="ApplicationStartHandler"
value="main.onAppInit"/>
    <Setting name="SessionStartHandler"
value="main.onSessionStart"/>
    <Setting name="SessionEndHandler" value="main.onSessionEnd"/>
    <Setting name="OwnerEmail" value="adam@domain.com" />
    <Setting name="EnableBugReports" value="true"/>
    <Setting name="UDFLibraryFile" value="" />
    <Setting name="ExceptionHandler" value="main.onException" />
    <Setting name="onInvalidEvent" value="main.invalidEvent" />
    <Setting name="CustomErrorTemplate" value="includes/
generic_error.cfm" />
    <Setting name="MessageboxStyleOverride" value="false" />
    <Setting name="MyPluginsLocation" value="" />
    <Setting name="ViewsExternalLocation" value=""/>
    <Setting name="HandlersExternalLocation" value="" />
    <Setting name="IOCFramework" value="coldspring" />
    <Setting name="IOCDefinitionFile" value="config/
coldspring.xml.cfm" />
    <Setting name="RequestContextDecorator" value=""/>
    <Setting name="ProxyReturnCollection" value="false"/>
    <Setting name="FlashURLPersistScope" value="session"/>
  </Settings>

      <!--- company.cfc ColdBox Handler :: listEquipment --->
  <cffunction name="listEquipment" access="public" returntype="void"
output="false" hint="I list all calibrations">
    <cfargument name="Event" type="coldbox.system.beans.requestContext"
required="yes">
      <cfscript>
        event.setView(name="company/equipment/list",cache="false");
      </cfscript>
  </cffunction>

Adam,

Have you tried doing this with EventCaching turned off?

Tom

Adam,

Looks like a caching problem.
Try the CF8Ajax sample application and see if that works.

Ernst

Yes.... every combination of settings works fine.. until the
ConfigAutoReload.

CFAjax app has ConfigAutoReload=false , just check if that app works

the ajax sample app works.. argh what could i be doing wrong.

Ok, did you check the layout/Layout.Main.cfm?

Ernst, Thanks!!!!

Im my Layout.Public.cfm.. I had renderView(name="", cache="true") ...
i figured that setting the view in the handler with cache = false was
good enough and forgot about the render().. my guess my lack of
familiarity with Coldbox View/OCM caused this issue...

Even though I setView(cache = false.) in my handler, my layout was
rendering from cache...... i knew it was something stupid.

I changed the Layout render().. that and changed ConfigAutoReload =
false in the config and reinited the FW.... and the page renders
correctly!

I am very grateful for the efforts of the CF Community... you all have
been invaluable to me over the past few years...
Thanks to you all!

Hi Adam,

this is something with CFC cached instance issue. /coldbox/plugins/
rendrer.cfc.

--- THE cache='false' SHOULD BE IN renderer.cfc ---
<cfcomponent name="renderer"
       hint="This service renders layouts, views, framework includes,
etc."
       extends="coldbox.system.plugin"
       output="false"
       cache="false">

You're welcome Adam.

FYI... the CB version was Faith... 2.6.1

Sana..

Just so i'm clear on what your saying.. do you mean that If i have
that cache="false" in the rendrer.cfc.. I could/should be able to then
have, as I did before, setView(cache=false) in the handler and
render(name="",cache="true") in the layout ... and get the results i
desire if i have ConfigAutoReload="False" in the config?

yes please post it. Also, are you using event caching?
I have found that the cf8 ajax stuff, sometimes does caching on its own. But if you have some view caching, then maybe there is something missing.

Luis

No, don’t modify the core files. The renderview() has caching parameters also apart from the setView() methods. These are in place in order to allow you to render multiple HTML pieces and be able to do caching. As best practice, I would never set any caching parameters for the default location of the view rendering. This is usually marked by the simple: #renderView()# code.