#object #caching #coldfusion-10
#объект #Кэширование #coldfusion-10
Вопрос:
Я пытаюсь кэшировать блок кода, который создает экземпляры двух объектов (основной объект расширяет общий абстрактный объект.
Без специфичного для кэша кода все работает нормально. Но когда я запускаю приведенный ниже код, я получаю только пустую страницу. Я не уверен, что это ожидаемое поведение, но я сомневаюсь в этом.
Я называю это так:
test.cfm
<cfset foobar = CreateObject("foo") />
<cfset foobar.pushLeads(
a = 1,
b = 2
) />
foo.cfc
<cffunction name="pushLeads" access="public" returntype="void">
<cfargument name="a" required="true" />
<cfargument name="b" required="true" />
<cfset local.cachedVendorData = cacheGet("vendorExport") />
<cfif IsNull(local.cachedVendorData)>
<cfsavecontent variable="local.vendorCFC">
<cfset local.leadsObj = createobject("baz").init() />
<!--- Take leads and pass into cfc for pushing to remote server --->
<cfset test = local.leadsObj.pushLeadData(
a = arguments.a,
b = arguments.b
) />
<cfdump var="#test#">
</cfsavecontent>
<cfoutput>#local.vendorCFC#</cfoutput>
<cfset cachePut("vendorExport", local.vendorCFC, CreateTimeSpan(0,0,1,0))>
</cfif>
</cffunction>
Редактировать — я забыл добавить до этого, перед кэшированием у меня был CFDUMP, который показывал бы все возвращенные результаты. Теперь, когда я добавил кэширование, результаты дампа не отображаются.
Комментарии:
1. Вы устанавливаете переменную, но я не вижу выходных данных. Возможно, ваш пример кода отображается недостаточно.
2. Я действительно опустил. Что-то. Я изменил сообщение выше.
3. Я не вижу примеров cfdump. Пожалуйста, опубликуйте больше (или полный) пример кода.